From 8ad4098b5308b94d9984573fa9399047a25e04f1 Mon Sep 17 00:00:00 2001 From: Alexander Onnikov Date: Wed, 12 Aug 2026 18:54:33 +0700 Subject: [PATCH 01/55] chore: update dependencies Signed-off-by: Alexander Onnikov (ported from TraceX 910cb63656) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- desktop-package/package.json | 2 +- desktop/package.json | 2 +- dev/prod/package.json | 2 +- qms-desktop-package/package.json | 2 +- services/export/pod-export/package.json | 2 +- services/sign/pod-sign/package.json | 12 ++++++------ templates/package/package.json | 2 +- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/desktop-package/package.json b/desktop-package/package.json index 348624383c..ad1173cffe 100644 --- a/desktop-package/package.json +++ b/desktop-package/package.json @@ -30,7 +30,7 @@ "typescript": "^5.9.3", "electron": "^38.2.2", "@types/node": "^24.13.3", - "electron-builder": "^25.1.8", + "electron-builder": "^26.15.3", "@electron/notarize": "^2.3.2", "@typescript-eslint/eslint-plugin": "^6.21.0", "eslint-plugin-import": "^2.26.0", diff --git a/desktop/package.json b/desktop/package.json index c6d740a1ae..440df2be99 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -41,7 +41,7 @@ "svelte-loader": "^3.2.0", "svelte-preprocess": "^5.1.4", "css-loader": "^5.2.1", - "webpack-dev-server": "^4.15.2", + "webpack-dev-server": "^5.2.6", "style-loader": "^3.3.1", "file-loader": "^6.2.0", "sass": "^1.80.0", diff --git a/dev/prod/package.json b/dev/prod/package.json index 4df37adc3f..df965e0901 100644 --- a/dev/prod/package.json +++ b/dev/prod/package.json @@ -58,7 +58,7 @@ "webpack": "^5.97.1", "webpack-bundle-analyzer": "^4.10.2", "webpack-cli": "^5.1.4", - "webpack-dev-server": "^4.15.2" + "webpack-dev-server": "^5.2.6" }, "dependencies": { "@hcengineering/achievement": "workspace:^0.7.0", diff --git a/qms-desktop-package/package.json b/qms-desktop-package/package.json index fc456cc200..182a4f0f30 100644 --- a/qms-desktop-package/package.json +++ b/qms-desktop-package/package.json @@ -30,7 +30,7 @@ "typescript": "^5.9.3", "electron": "^38.2.2", "@types/node": "^24.13.3", - "electron-builder": "^25.1.8", + "electron-builder": "^26.15.3", "@electron/notarize": "^2.3.2", "@typescript-eslint/eslint-plugin": "^6.21.0", "eslint-plugin-import": "^2.26.0", diff --git a/services/export/pod-export/package.json b/services/export/pod-export/package.json index 2d5bb357ac..7b4ff644f9 100644 --- a/services/export/pod-export/package.json +++ b/services/export/pod-export/package.json @@ -87,7 +87,7 @@ "@hcengineering/export": "workspace:^0.7.0", "@hcengineering/products": "workspace:^0.7.0", "uuid": "^8.3.2", - "tar": "^7.5.2", + "tar": "^7.5.21", "archiver": "^7.0.1", "js-yaml": "^4.1.0", "csv-stringify": "^6.5.2" diff --git a/services/sign/pod-sign/package.json b/services/sign/pod-sign/package.json index e54616301e..17e4b32219 100644 --- a/services/sign/pod-sign/package.json +++ b/services/sign/pod-sign/package.json @@ -66,12 +66,12 @@ "cors": "^2.8.5", "dotenv": "^16.4.5", "express": "^4.21.2", - "@signpdf/signpdf": "^3.2.4", - "@signpdf/placeholder-pdf-lib": "^3.2.4", - "@signpdf/signer-p12": "^3.2.4", - "@signpdf/utils": "^3.2.4", - "node-forge": "^1.3.1", - "pdf-lib": "^1.12.0", + "@signpdf/signpdf": "^3.3.0", + "@signpdf/placeholder-pdf-lib": "^3.3.0", + "@signpdf/signer-p12": "^3.3.0", + "@signpdf/utils": "^3.3.0", + "node-forge": "^1.3.3", + "pdf-lib": "^1.17.1", "mongodb": "^6.16.0", "@hcengineering/analytics-service": "workspace:^0.7.19" } diff --git a/templates/package/package.json b/templates/package/package.json index 6c5295781c..60a9554b32 100644 --- a/templates/package/package.json +++ b/templates/package/package.json @@ -12,7 +12,7 @@ "ts-loader": "^9.2.5", "svelte-loader": "^3.2.0", "css-loader": "^5.2.1", - "webpack-dev-server": "^4.15.2", + "webpack-dev-server": "^5.2.6", "style-loader": "^3.3.1", "file-loader": "^6.2.0", "sass-loader": "^14.0.0", From d975c0ca87c55e0aeddf84eb3af5b42bc3ed7b40 Mon Sep 17 00:00:00 2001 From: Alexander Onnikov Date: Wed, 19 Aug 2026 15:19:45 +0700 Subject: [PATCH 02/55] chore: update sharp in base images Signed-off-by: Alexander Onnikov (ported from TraceX 6e5021f2b1) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- dev/base-image/front.Dockerfile | 2 +- dev/base-image/preview.Dockerfile | 2 +- dev/base-image/rekoni.Dockerfile | 16 ++++++++++++++-- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/dev/base-image/front.Dockerfile b/dev/base-image/front.Dockerfile index 871877cf3c..82ef578178 100644 --- a/dev/base-image/front.Dockerfile +++ b/dev/base-image/front.Dockerfile @@ -9,5 +9,5 @@ ENV MALLOC_CONF=dirty_decay_ms:1000,narenas:2,background_thread:true WORKDIR /app ENV NODE_ENV=production -RUN npm install --ignore-scripts=false --verbose bufferutil sharp@v0.34.3 utf-8-validate snappy --unsafe-perm +RUN npm install --ignore-scripts=false --verbose bufferutil sharp@v0.35.3 utf-8-validate snappy --unsafe-perm diff --git a/dev/base-image/preview.Dockerfile b/dev/base-image/preview.Dockerfile index 1e4f3b7fdc..5dc23b985b 100644 --- a/dev/base-image/preview.Dockerfile +++ b/dev/base-image/preview.Dockerfile @@ -17,4 +17,4 @@ ENV MALLOC_CONF=dirty_decay_ms:1000,narenas:2,background_thread:true WORKDIR /app ENV NODE_ENV=production -RUN npm install --ignore-scripts=false --verbose bufferutil sharp@v0.34.3 utf-8-validate snappy --unsafe-perm +RUN npm install --ignore-scripts=false --verbose bufferutil sharp@v0.35.3 utf-8-validate snappy --unsafe-perm diff --git a/dev/base-image/rekoni.Dockerfile b/dev/base-image/rekoni.Dockerfile index 18214a706f..eae031ee8f 100644 --- a/dev/base-image/rekoni.Dockerfile +++ b/dev/base-image/rekoni.Dockerfile @@ -1,4 +1,15 @@ -FROM platformcollective/base +FROM node:24 + +RUN apt-get update +RUN apt-get install libjemalloc2 dumb-init +RUN apt-get clean + +ENV LD_PRELOAD=libjemalloc.so.2 +ENV MALLOC_CONF=dirty_decay_ms:1000,narenas:2,background_thread:true + +WORKDIR /usr/src/app +ENV NODE_ENV=production +RUN npm install --ignore-scripts=false --verbose bufferutil utf-8-validate snappy msgpackr msgpackr-extract --unsafe-perm RUN apt-get update && \ apt-get install -y --no-install-recommends \ @@ -7,4 +18,5 @@ RUN apt-get update && \ poppler-utils \ html2text \ unrtf -RUN npm install --ignore-scripts=false --verbose sharp@v0.34.3 pdfjs-dist@v2.12.313 --unsafe-perm \ No newline at end of file + +RUN npm install --ignore-scripts=false --verbose sharp@v0.35.3 pdfjs-dist@v2.12.313 --unsafe-perm \ No newline at end of file From 0423c3a9d7414a39098314ac61566b0b7102a354 Mon Sep 17 00:00:00 2001 From: Alexander Onnikov Date: Wed, 19 Aug 2026 13:02:19 +0700 Subject: [PATCH 03/55] chore: update electron to v43 Signed-off-by: Alexander Onnikov (ported from TraceX d5ad8ad448) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- desktop-package/package.json | 4 ++-- desktop/package.json | 10 +++++----- qms-desktop-package/package.json | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/desktop-package/package.json b/desktop-package/package.json index ad1173cffe..aeb9d622c1 100644 --- a/desktop-package/package.json +++ b/desktop-package/package.json @@ -28,7 +28,7 @@ "node-loader": "~2.0.0", "cross-env": "~7.0.3", "typescript": "^5.9.3", - "electron": "^38.2.2", + "electron": "^43.4.1", "@types/node": "^24.13.3", "electron-builder": "^26.15.3", "@electron/notarize": "^2.3.2", @@ -41,7 +41,7 @@ "eslint-config-standard-with-typescript": "^40.0.0" }, "dependencies": { - "electron-squirrel-startup": "~1.0.0", + "electron-squirrel-startup": "~1.0.1", "dotenv": "^16.4.5" }, "homepage": "https://huly.io/", diff --git a/desktop/package.json b/desktop/package.json index 440df2be99..bfacd6db7b 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -60,7 +60,7 @@ "typescript": "^5.9.3", "ts-node": "^10.9.2", "ts-node-dev": "^2.0.0", - "electron": "^38.2.2", + "electron": "^43.4.1", "@types/node": "^24.13.3", "copy-webpack-plugin": "^11.0.0", "@typescript-eslint/eslint-plugin": "^6.21.0", @@ -283,15 +283,15 @@ "@hcengineering/rating": "workspace:^0.7.0", "@hcengineering/rating-assets": "workspace:^0.7.0", "@hcengineering/rating-resources": "workspace:^0.7.0", - "electron-squirrel-startup": "~1.0.0", + "electron-squirrel-startup": "~1.0.1", "dotenv": "^16.4.5", - "electron-context-menu": "^4.0.4", + "electron-context-menu": "^4.1.2", "electron-windows-badge": "^1.1.0", "svelte": "^4.2.20", "commander": "^14.0.0", "electron-store": "^8.2.0", - "electron-log": "^5.1.7", - "electron-updater": "^6.3.4", + "electron-log": "^5.4.4", + "electron-updater": "^6.8.9", "livekit-client": "^2.19.0", "@hcengineering/server-backup": "workspace:^0.7.0", "@hcengineering/communication-types": "workspace:^0.7.12", diff --git a/qms-desktop-package/package.json b/qms-desktop-package/package.json index 182a4f0f30..6b1b3f96d2 100644 --- a/qms-desktop-package/package.json +++ b/qms-desktop-package/package.json @@ -28,7 +28,7 @@ "node-loader": "~2.0.0", "cross-env": "~7.0.3", "typescript": "^5.9.3", - "electron": "^38.2.2", + "electron": "^43.4.1", "@types/node": "^24.13.3", "electron-builder": "^26.15.3", "@electron/notarize": "^2.3.2", @@ -41,7 +41,7 @@ "eslint-config-standard-with-typescript": "^40.0.0" }, "dependencies": { - "electron-squirrel-startup": "~1.0.0", + "electron-squirrel-startup": "~1.0.1", "dotenv": "^16.4.5" }, "homepage": "https://tracex.co/", From dac3bd8ce1ea6c41533a4b1b54e46308488c5a5e Mon Sep 17 00:00:00 2001 From: Alexander Onnikov Date: Wed, 19 Aug 2026 16:41:37 +0700 Subject: [PATCH 04/55] chore: update sharp to 0.35.3 Signed-off-by: Alexander Onnikov (ported from TraceX 06afcf67ac) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- common/scripts/package.json | 2 +- dev/import-tool/Dockerfile | 2 +- dev/tool/Dockerfile | 2 +- pods/account/Dockerfile | 2 +- pods/backup/Dockerfile | 2 +- pods/collaborator/Dockerfile | 2 +- pods/front/Dockerfile | 2 +- pods/front/package.json | 2 +- pods/fulltext/Dockerfile | 2 +- pods/link-preview/Dockerfile | 2 +- pods/media/Dockerfile | 2 +- pods/preview/Dockerfile | 2 +- pods/preview/package.json | 2 +- pods/preview/src/utils/sharp.ts | 14 +++++++------- pods/stats/Dockerfile | 2 +- pods/workspace/Dockerfile | 2 +- server/front/package.json | 2 +- services/ai-bot/love-agent/Dockerfile | 2 +- services/ai-bot/pod-ai-bot/Dockerfile | 2 +- .../pod-analytics-collector/Dockerfile | 2 +- services/backup/backup-api-pod/Dockerfile | 2 +- services/backup/backup-api-pod/package.json | 2 +- services/billing/pod-billing/Dockerfile | 2 +- services/calendar/pod-calendar-mailer/Dockerfile | 2 +- services/calendar/pod-calendar/Dockerfile | 2 +- services/datalake/pod-datalake/Dockerfile | 2 +- services/export/pod-export/Dockerfile | 2 +- services/github/pod-github/Dockerfile | 2 +- services/gmail/pod-gmail/Dockerfile | 2 +- services/love/Dockerfile | 2 +- services/mail/pod-mail-worker/Dockerfile | 2 +- services/mail/pod-mail/Dockerfile | 2 +- .../notification/pod-events-processor/Dockerfile | 2 +- services/notification/pod-notification/Dockerfile | 2 +- services/payment/pod-payment/Dockerfile | 2 +- services/print/pod-print/Dockerfile | 2 +- services/process/Dockerfile | 2 +- services/rating/Dockerfile | 2 +- services/rekoni/Dockerfile | 2 +- services/rekoni/package.json | 2 +- services/sign/pod-sign/Dockerfile | 2 +- services/telegram-bot/pod-telegram-bot/Dockerfile | 2 +- services/telegram/pod-telegram/Dockerfile | 2 +- services/translate/Dockerfile | 2 +- services/worker/Dockerfile | 2 +- 45 files changed, 51 insertions(+), 51 deletions(-) diff --git a/common/scripts/package.json b/common/scripts/package.json index b493155449..bf8d1444d8 100644 --- a/common/scripts/package.json +++ b/common/scripts/package.json @@ -9,7 +9,7 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "esbuild": "^0.25.10", - "sharp": "~0.34.3", + "sharp": "~0.35.3", "@typescript-eslint/eslint-plugin": "^6.21.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-promise": "^6.1.1", diff --git a/dev/import-tool/Dockerfile b/dev/import-tool/Dockerfile index 47105486d8..08299ad354 100644 --- a/dev/import-tool/Dockerfile +++ b/dev/import-tool/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/dev/tool/Dockerfile b/dev/tool/Dockerfile index 47105486d8..08299ad354 100644 --- a/dev/tool/Dockerfile +++ b/dev/tool/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/pods/account/Dockerfile b/pods/account/Dockerfile index cda29ffb2e..be32464786 100644 --- a/pods/account/Dockerfile +++ b/pods/account/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/pods/backup/Dockerfile b/pods/backup/Dockerfile index b72a02ed08..975a3d1394 100644 --- a/pods/backup/Dockerfile +++ b/pods/backup/Dockerfile @@ -1,5 +1,5 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/pods/collaborator/Dockerfile b/pods/collaborator/Dockerfile index bb0a7d09ab..9ea51d2fca 100644 --- a/pods/collaborator/Dockerfile +++ b/pods/collaborator/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/pods/front/Dockerfile b/pods/front/Dockerfile index 9e5e569a34..ac982bd94f 100644 --- a/pods/front/Dockerfile +++ b/pods/front/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/front-base:v20260811 +FROM platformcollective/front-base:v20260819 WORKDIR /app COPY bundle/bundle.js ./ diff --git a/pods/front/package.json b/pods/front/package.json index e48ca09709..285e07ea25 100644 --- a/pods/front/package.json +++ b/pods/front/package.json @@ -71,7 +71,7 @@ "@hcengineering/server-token": "workspace:^0.7.18", "@hcengineering/attachment": "workspace:^0.7.0", "body-parser": "^1.20.3", - "sharp": "~0.34.3", + "sharp": "~0.35.3", "@hcengineering/analytics": "workspace:^0.7.19", "@hcengineering/analytics-service": "workspace:^0.7.19" } diff --git a/pods/fulltext/Dockerfile b/pods/fulltext/Dockerfile index 9a0d838d20..1100c0cbe9 100644 --- a/pods/fulltext/Dockerfile +++ b/pods/fulltext/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/pods/link-preview/Dockerfile b/pods/link-preview/Dockerfile index 69e2bc1088..2718915969 100644 --- a/pods/link-preview/Dockerfile +++ b/pods/link-preview/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /app diff --git a/pods/media/Dockerfile b/pods/media/Dockerfile index 8743136c15..3b3e90948b 100644 --- a/pods/media/Dockerfile +++ b/pods/media/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/pods/preview/Dockerfile b/pods/preview/Dockerfile index 1c3d1bbb64..6405fa8765 100644 --- a/pods/preview/Dockerfile +++ b/pods/preview/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/preview-base:v20260811 +FROM platformcollective/preview-base:v20260819 WORKDIR /app diff --git a/pods/preview/package.json b/pods/preview/package.json index 8d6862dc55..22f6f32f6f 100644 --- a/pods/preview/package.json +++ b/pods/preview/package.json @@ -63,7 +63,7 @@ "@hcengineering/server-client": "workspace:^0.7.16", "@hcengineering/server-storage": "workspace:^0.7.16", "@hcengineering/server-token": "workspace:^0.7.18", - "sharp": "~0.34.3", + "sharp": "~0.35.3", "blurhash": "^2.0.5", "dotenv": "^16.4.5", "express": "^4.21.2", diff --git a/pods/preview/src/utils/sharp.ts b/pods/preview/src/utils/sharp.ts index e33da81af0..2ce80c21de 100644 --- a/pods/preview/src/utils/sharp.ts +++ b/pods/preview/src/utils/sharp.ts @@ -13,33 +13,33 @@ // limitations under the License. // -import sharp from 'sharp' +import sharp, { AvifOptions, JpegOptions, HeifOptions, PngOptions, WebpOptions, Sharp } from 'sharp' const QualityConfig = { jpeg: { quality: 85, // default + 5 progressive: true, chromaSubsampling: '4:4:4' - } satisfies sharp.JpegOptions, + } satisfies JpegOptions, avif: { quality: 60, // default + 10 effort: 5, // default + 1 chromaSubsampling: '4:4:4' // default - } satisfies sharp.AvifOptions, + } satisfies AvifOptions, webp: { quality: 80, // default alphaQuality: 100, // default smartSubsample: true, // Better sharpness effort: 5 // default + 1 - } satisfies sharp.WebpOptions, + } satisfies WebpOptions, heif: { quality: 80, // default + 30 effort: 5 // default + 1 - } satisfies sharp.HeifOptions, + } satisfies HeifOptions, png: { quality: 100, // default effort: 7 // default - } satisfies sharp.PngOptions + } satisfies PngOptions } export interface ImageTransformParams { @@ -56,7 +56,7 @@ export async function transformImage ( ): Promise<{ contentType: string, size: number }> { const { format, width, height, fit } = params - let pipeline: sharp.Sharp | undefined + let pipeline: Sharp | undefined try { pipeline = sharp(srcFile, { sequentialRead: true }) diff --git a/pods/stats/Dockerfile b/pods/stats/Dockerfile index 674f03040f..c81d69e783 100644 --- a/pods/stats/Dockerfile +++ b/pods/stats/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/pods/workspace/Dockerfile b/pods/workspace/Dockerfile index 3deb6b75f9..897b37af5e 100644 --- a/pods/workspace/Dockerfile +++ b/pods/workspace/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/server/front/package.json b/server/front/package.json index a95a3d1e17..7189fe3519 100644 --- a/server/front/package.json +++ b/server/front/package.json @@ -60,7 +60,7 @@ "@hcengineering/server-token": "workspace:^0.7.18", "@hcengineering/attachment": "workspace:^0.7.0", "body-parser": "^1.20.3", - "sharp": "~0.34.3", + "sharp": "~0.35.3", "@hcengineering/minio": "workspace:^0.7.18", "@hcengineering/mongo": "workspace:^0.7.16", "morgan": "^1.10.0", diff --git a/services/ai-bot/love-agent/Dockerfile b/services/ai-bot/love-agent/Dockerfile index 96ec249161..88f86bc731 100644 --- a/services/ai-bot/love-agent/Dockerfile +++ b/services/ai-bot/love-agent/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /usr/src/app RUN npm install -g pnpm@10 diff --git a/services/ai-bot/pod-ai-bot/Dockerfile b/services/ai-bot/pod-ai-bot/Dockerfile index 7f0e9976a8..6b1810f8bb 100644 --- a/services/ai-bot/pod-ai-bot/Dockerfile +++ b/services/ai-bot/pod-ai-bot/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/analytics-collector/pod-analytics-collector/Dockerfile b/services/analytics-collector/pod-analytics-collector/Dockerfile index 7cd540ba1f..ca4411043c 100644 --- a/services/analytics-collector/pod-analytics-collector/Dockerfile +++ b/services/analytics-collector/pod-analytics-collector/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/backup/backup-api-pod/Dockerfile b/services/backup/backup-api-pod/Dockerfile index 71c9f093d5..016bb1db16 100644 --- a/services/backup/backup-api-pod/Dockerfile +++ b/services/backup/backup-api-pod/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /app COPY bundle/bundle.js ./ diff --git a/services/backup/backup-api-pod/package.json b/services/backup/backup-api-pod/package.json index 479de7fa72..caace882fb 100644 --- a/services/backup/backup-api-pod/package.json +++ b/services/backup/backup-api-pod/package.json @@ -69,7 +69,7 @@ "dotenv": "^16.4.5", "express": "^4.21.2", "postgres": "^3.4.7", - "sharp": "~0.34.3", + "sharp": "~0.35.3", "morgan": "^1.10.0" } } diff --git a/services/billing/pod-billing/Dockerfile b/services/billing/pod-billing/Dockerfile index 71c9f093d5..016bb1db16 100644 --- a/services/billing/pod-billing/Dockerfile +++ b/services/billing/pod-billing/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /app COPY bundle/bundle.js ./ diff --git a/services/calendar/pod-calendar-mailer/Dockerfile b/services/calendar/pod-calendar-mailer/Dockerfile index 65bedc3dd6..08fe748c6d 100644 --- a/services/calendar/pod-calendar-mailer/Dockerfile +++ b/services/calendar/pod-calendar-mailer/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/calendar/pod-calendar/Dockerfile b/services/calendar/pod-calendar/Dockerfile index 65bedc3dd6..08fe748c6d 100644 --- a/services/calendar/pod-calendar/Dockerfile +++ b/services/calendar/pod-calendar/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/datalake/pod-datalake/Dockerfile b/services/datalake/pod-datalake/Dockerfile index 71c9f093d5..016bb1db16 100644 --- a/services/datalake/pod-datalake/Dockerfile +++ b/services/datalake/pod-datalake/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /app COPY bundle/bundle.js ./ diff --git a/services/export/pod-export/Dockerfile b/services/export/pod-export/Dockerfile index 346d08a218..71f8334e6d 100644 --- a/services/export/pod-export/Dockerfile +++ b/services/export/pod-export/Dockerfile @@ -1,5 +1,5 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/github/pod-github/Dockerfile b/services/github/pod-github/Dockerfile index bb0a7d09ab..9ea51d2fca 100644 --- a/services/github/pod-github/Dockerfile +++ b/services/github/pod-github/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/gmail/pod-gmail/Dockerfile b/services/gmail/pod-gmail/Dockerfile index 86a8177268..84422de485 100644 --- a/services/gmail/pod-gmail/Dockerfile +++ b/services/gmail/pod-gmail/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/love/Dockerfile b/services/love/Dockerfile index 017ad4884e..a2379f3954 100644 --- a/services/love/Dockerfile +++ b/services/love/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/mail/pod-mail-worker/Dockerfile b/services/mail/pod-mail-worker/Dockerfile index 679d624232..4a7139c013 100644 --- a/services/mail/pod-mail-worker/Dockerfile +++ b/services/mail/pod-mail-worker/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/mail/pod-mail/Dockerfile b/services/mail/pod-mail/Dockerfile index e5f10e58c5..6dae1bbc37 100644 --- a/services/mail/pod-mail/Dockerfile +++ b/services/mail/pod-mail/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/notification/pod-events-processor/Dockerfile b/services/notification/pod-events-processor/Dockerfile index 8743136c15..3b3e90948b 100644 --- a/services/notification/pod-events-processor/Dockerfile +++ b/services/notification/pod-events-processor/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/notification/pod-notification/Dockerfile b/services/notification/pod-notification/Dockerfile index f8d53f608c..58e5c4cd40 100644 --- a/services/notification/pod-notification/Dockerfile +++ b/services/notification/pod-notification/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/payment/pod-payment/Dockerfile b/services/payment/pod-payment/Dockerfile index 71c9f093d5..016bb1db16 100644 --- a/services/payment/pod-payment/Dockerfile +++ b/services/payment/pod-payment/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /app COPY bundle/bundle.js ./ diff --git a/services/print/pod-print/Dockerfile b/services/print/pod-print/Dockerfile index 1829a92190..79a7be0403 100644 --- a/services/print/pod-print/Dockerfile +++ b/services/print/pod-print/Dockerfile @@ -1,5 +1,5 @@ -FROM platformcollective/print-base:v20260811 +FROM platformcollective/print-base:v20260819 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/process/Dockerfile b/services/process/Dockerfile index 8743136c15..3b3e90948b 100644 --- a/services/process/Dockerfile +++ b/services/process/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/rating/Dockerfile b/services/rating/Dockerfile index 9a0d838d20..1100c0cbe9 100644 --- a/services/rating/Dockerfile +++ b/services/rating/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/rekoni/Dockerfile b/services/rekoni/Dockerfile index 0513d4b80b..80ced06e06 100644 --- a/services/rekoni/Dockerfile +++ b/services/rekoni/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/rekoni-base:v20260811 +FROM platformcollective/rekoni-base:v20260819 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/rekoni/package.json b/services/rekoni/package.json index b3f1333585..d1be2b432c 100644 --- a/services/rekoni/package.json +++ b/services/rekoni/package.json @@ -80,7 +80,7 @@ "mammoth": "^1.9.0", "mime-types": "~2.1.34", "pdfjs-dist": "2.12.313", - "sharp": "~0.34.3", + "sharp": "~0.35.3", "morgan": "^1.10.0", "@hcengineering/server-core": "workspace:^0.7.19", "@hcengineering/server-token": "workspace:^0.7.18", diff --git a/services/sign/pod-sign/Dockerfile b/services/sign/pod-sign/Dockerfile index e8a66a23f8..0be4ebb461 100644 --- a/services/sign/pod-sign/Dockerfile +++ b/services/sign/pod-sign/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/telegram-bot/pod-telegram-bot/Dockerfile b/services/telegram-bot/pod-telegram-bot/Dockerfile index af5ec4b948..50b374c53e 100644 --- a/services/telegram-bot/pod-telegram-bot/Dockerfile +++ b/services/telegram-bot/pod-telegram-bot/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/telegram/pod-telegram/Dockerfile b/services/telegram/pod-telegram/Dockerfile index eaace8b96b..14328405e5 100644 --- a/services/telegram/pod-telegram/Dockerfile +++ b/services/telegram/pod-telegram/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/translate/Dockerfile b/services/translate/Dockerfile index 8743136c15..3b3e90948b 100644 --- a/services/translate/Dockerfile +++ b/services/translate/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/worker/Dockerfile b/services/worker/Dockerfile index 8743136c15..3b3e90948b 100644 --- a/services/worker/Dockerfile +++ b/services/worker/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260811 +FROM platformcollective/base-slim:v20260819 WORKDIR /usr/src/app COPY bundle/bundle.js ./ From 0abd75226cbe168d1fe97bf5691a14ef95008171 Mon Sep 17 00:00:00 2001 From: Alexander Onnikov Date: Fri, 21 Aug 2026 19:14:39 +0700 Subject: [PATCH 05/55] bump base images Signed-off-by: Alexander Onnikov (ported from TraceX bd6908153a) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- dev/import-tool/Dockerfile | 2 +- dev/tool/Dockerfile | 2 +- pods/account/Dockerfile | 2 +- pods/api/Dockerfile | 9 +++++++++ pods/backup/Dockerfile | 2 +- pods/collaborator/Dockerfile | 2 +- pods/front/Dockerfile | 2 +- pods/fulltext/Dockerfile | 2 +- pods/link-preview/Dockerfile | 2 +- pods/media/Dockerfile | 2 +- pods/preview/Dockerfile | 2 +- pods/server/Dockerfile | 2 +- pods/stats/Dockerfile | 2 +- pods/workspace/Dockerfile | 2 +- services/ai-bot/love-agent/Dockerfile | 2 +- services/ai-bot/pod-ai-bot/Dockerfile | 2 +- .../pod-analytics-collector/Dockerfile | 2 +- services/backup/backup-api-pod/Dockerfile | 2 +- services/billing/pod-billing/Dockerfile | 2 +- services/calendar/pod-calendar-mailer/Dockerfile | 2 +- services/calendar/pod-calendar/Dockerfile | 2 +- services/datalake/pod-datalake/Dockerfile | 2 +- services/export/pod-export/Dockerfile | 2 +- services/github-next/github-next-service/Dockerfile | 6 ++++++ services/github/pod-github/Dockerfile | 2 +- services/gmail/pod-gmail/Dockerfile | 2 +- services/love/Dockerfile | 2 +- services/mail/pod-mail-worker/Dockerfile | 2 +- services/mail/pod-mail/Dockerfile | 2 +- services/mcp/pod-mcp/Dockerfile | 7 +++++++ services/notification/pod-events-processor/Dockerfile | 2 +- services/notification/pod-notification/Dockerfile | 2 +- services/payment/pod-payment/Dockerfile | 2 +- services/print/pod-print/Dockerfile | 2 +- services/process/Dockerfile | 2 +- services/rating/Dockerfile | 2 +- services/rekoni/Dockerfile | 2 +- services/sign/pod-sign/Dockerfile | 2 +- services/telegram-bot/pod-telegram-bot/Dockerfile | 2 +- services/telegram/pod-telegram/Dockerfile | 2 +- services/translate/Dockerfile | 2 +- services/worker/Dockerfile | 2 +- 42 files changed, 61 insertions(+), 39 deletions(-) create mode 100644 pods/api/Dockerfile create mode 100644 services/github-next/github-next-service/Dockerfile create mode 100644 services/mcp/pod-mcp/Dockerfile diff --git a/dev/import-tool/Dockerfile b/dev/import-tool/Dockerfile index 08299ad354..82ad4e6a63 100644 --- a/dev/import-tool/Dockerfile +++ b/dev/import-tool/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/dev/tool/Dockerfile b/dev/tool/Dockerfile index 08299ad354..82ad4e6a63 100644 --- a/dev/tool/Dockerfile +++ b/dev/tool/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/pods/account/Dockerfile b/pods/account/Dockerfile index be32464786..877202a830 100644 --- a/pods/account/Dockerfile +++ b/pods/account/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/pods/api/Dockerfile b/pods/api/Dockerfile new file mode 100644 index 0000000000..4eeca1b7a8 --- /dev/null +++ b/pods/api/Dockerfile @@ -0,0 +1,9 @@ +FROM tracexapp/base-slim:v20260821 + +WORKDIR /app + +COPY bundle/bundle.js ./ +COPY bundle/bundle.js.map ./ + +EXPOSE 8080 +CMD ["dumb-init", "node", "bundle.js"] diff --git a/pods/backup/Dockerfile b/pods/backup/Dockerfile index 975a3d1394..039d5bdac9 100644 --- a/pods/backup/Dockerfile +++ b/pods/backup/Dockerfile @@ -1,5 +1,5 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/pods/collaborator/Dockerfile b/pods/collaborator/Dockerfile index 9ea51d2fca..73822e4d26 100644 --- a/pods/collaborator/Dockerfile +++ b/pods/collaborator/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/pods/front/Dockerfile b/pods/front/Dockerfile index ac982bd94f..267d0e53f5 100644 --- a/pods/front/Dockerfile +++ b/pods/front/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/front-base:v20260819 +FROM platformcollective/front-base:v20260821 WORKDIR /app COPY bundle/bundle.js ./ diff --git a/pods/fulltext/Dockerfile b/pods/fulltext/Dockerfile index 1100c0cbe9..1ce168b5f0 100644 --- a/pods/fulltext/Dockerfile +++ b/pods/fulltext/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/pods/link-preview/Dockerfile b/pods/link-preview/Dockerfile index 2718915969..ae5c1c1210 100644 --- a/pods/link-preview/Dockerfile +++ b/pods/link-preview/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /app diff --git a/pods/media/Dockerfile b/pods/media/Dockerfile index 3b3e90948b..414459c22c 100644 --- a/pods/media/Dockerfile +++ b/pods/media/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/pods/preview/Dockerfile b/pods/preview/Dockerfile index 6405fa8765..5730b268f5 100644 --- a/pods/preview/Dockerfile +++ b/pods/preview/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/preview-base:v20260819 +FROM platformcollective/preview-base:v20260821 WORKDIR /app diff --git a/pods/server/Dockerfile b/pods/server/Dockerfile index 8b3e88399b..6434c2b238 100644 --- a/pods/server/Dockerfile +++ b/pods/server/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base:v20260811 +FROM platformcollective/base:v20260821 WORKDIR /usr/src/app COPY bundle/model.json ./ diff --git a/pods/stats/Dockerfile b/pods/stats/Dockerfile index c81d69e783..7e22067cba 100644 --- a/pods/stats/Dockerfile +++ b/pods/stats/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/pods/workspace/Dockerfile b/pods/workspace/Dockerfile index 897b37af5e..5c259125ce 100644 --- a/pods/workspace/Dockerfile +++ b/pods/workspace/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/ai-bot/love-agent/Dockerfile b/services/ai-bot/love-agent/Dockerfile index 88f86bc731..a3b14a31a3 100644 --- a/services/ai-bot/love-agent/Dockerfile +++ b/services/ai-bot/love-agent/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /usr/src/app RUN npm install -g pnpm@10 diff --git a/services/ai-bot/pod-ai-bot/Dockerfile b/services/ai-bot/pod-ai-bot/Dockerfile index 6b1810f8bb..64d5f37479 100644 --- a/services/ai-bot/pod-ai-bot/Dockerfile +++ b/services/ai-bot/pod-ai-bot/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/analytics-collector/pod-analytics-collector/Dockerfile b/services/analytics-collector/pod-analytics-collector/Dockerfile index ca4411043c..fa3057ec81 100644 --- a/services/analytics-collector/pod-analytics-collector/Dockerfile +++ b/services/analytics-collector/pod-analytics-collector/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/backup/backup-api-pod/Dockerfile b/services/backup/backup-api-pod/Dockerfile index 016bb1db16..cd420f0916 100644 --- a/services/backup/backup-api-pod/Dockerfile +++ b/services/backup/backup-api-pod/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /app COPY bundle/bundle.js ./ diff --git a/services/billing/pod-billing/Dockerfile b/services/billing/pod-billing/Dockerfile index 016bb1db16..cd420f0916 100644 --- a/services/billing/pod-billing/Dockerfile +++ b/services/billing/pod-billing/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /app COPY bundle/bundle.js ./ diff --git a/services/calendar/pod-calendar-mailer/Dockerfile b/services/calendar/pod-calendar-mailer/Dockerfile index 08fe748c6d..2cb8d8ffdd 100644 --- a/services/calendar/pod-calendar-mailer/Dockerfile +++ b/services/calendar/pod-calendar-mailer/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/calendar/pod-calendar/Dockerfile b/services/calendar/pod-calendar/Dockerfile index 08fe748c6d..2cb8d8ffdd 100644 --- a/services/calendar/pod-calendar/Dockerfile +++ b/services/calendar/pod-calendar/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/datalake/pod-datalake/Dockerfile b/services/datalake/pod-datalake/Dockerfile index 016bb1db16..cd420f0916 100644 --- a/services/datalake/pod-datalake/Dockerfile +++ b/services/datalake/pod-datalake/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /app COPY bundle/bundle.js ./ diff --git a/services/export/pod-export/Dockerfile b/services/export/pod-export/Dockerfile index 71f8334e6d..e798818d9c 100644 --- a/services/export/pod-export/Dockerfile +++ b/services/export/pod-export/Dockerfile @@ -1,5 +1,5 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/github-next/github-next-service/Dockerfile b/services/github-next/github-next-service/Dockerfile new file mode 100644 index 0000000000..b07dc307ff --- /dev/null +++ b/services/github-next/github-next-service/Dockerfile @@ -0,0 +1,6 @@ +FROM tracexapp/base-slim:v20260821 +WORKDIR /usr/src/app + +COPY bundle/bundle.js ./ + +CMD [ "dumb-init", "node", "bundle.js" ] diff --git a/services/github/pod-github/Dockerfile b/services/github/pod-github/Dockerfile index 9ea51d2fca..73822e4d26 100644 --- a/services/github/pod-github/Dockerfile +++ b/services/github/pod-github/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/gmail/pod-gmail/Dockerfile b/services/gmail/pod-gmail/Dockerfile index 84422de485..d5d50bb11b 100644 --- a/services/gmail/pod-gmail/Dockerfile +++ b/services/gmail/pod-gmail/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/love/Dockerfile b/services/love/Dockerfile index a2379f3954..1438af50c0 100644 --- a/services/love/Dockerfile +++ b/services/love/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/mail/pod-mail-worker/Dockerfile b/services/mail/pod-mail-worker/Dockerfile index 4a7139c013..b57e5f5ecc 100644 --- a/services/mail/pod-mail-worker/Dockerfile +++ b/services/mail/pod-mail-worker/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/mail/pod-mail/Dockerfile b/services/mail/pod-mail/Dockerfile index 6dae1bbc37..8b7846eb2b 100644 --- a/services/mail/pod-mail/Dockerfile +++ b/services/mail/pod-mail/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/mcp/pod-mcp/Dockerfile b/services/mcp/pod-mcp/Dockerfile new file mode 100644 index 0000000000..bcb9adef37 --- /dev/null +++ b/services/mcp/pod-mcp/Dockerfile @@ -0,0 +1,7 @@ +FROM tracexapp/base-slim:v20260821 +WORKDIR /usr/src/app + +COPY bundle/bundle.js ./ + +EXPOSE 4020 +CMD [ "node", "bundle.js" ] diff --git a/services/notification/pod-events-processor/Dockerfile b/services/notification/pod-events-processor/Dockerfile index 3b3e90948b..414459c22c 100644 --- a/services/notification/pod-events-processor/Dockerfile +++ b/services/notification/pod-events-processor/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/notification/pod-notification/Dockerfile b/services/notification/pod-notification/Dockerfile index 58e5c4cd40..70c37168ba 100644 --- a/services/notification/pod-notification/Dockerfile +++ b/services/notification/pod-notification/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/payment/pod-payment/Dockerfile b/services/payment/pod-payment/Dockerfile index 016bb1db16..cd420f0916 100644 --- a/services/payment/pod-payment/Dockerfile +++ b/services/payment/pod-payment/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /app COPY bundle/bundle.js ./ diff --git a/services/print/pod-print/Dockerfile b/services/print/pod-print/Dockerfile index 79a7be0403..8c42b5a653 100644 --- a/services/print/pod-print/Dockerfile +++ b/services/print/pod-print/Dockerfile @@ -1,5 +1,5 @@ -FROM platformcollective/print-base:v20260819 +FROM platformcollective/print-base:v20260821 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/process/Dockerfile b/services/process/Dockerfile index 3b3e90948b..414459c22c 100644 --- a/services/process/Dockerfile +++ b/services/process/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/rating/Dockerfile b/services/rating/Dockerfile index 1100c0cbe9..1ce168b5f0 100644 --- a/services/rating/Dockerfile +++ b/services/rating/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/rekoni/Dockerfile b/services/rekoni/Dockerfile index 80ced06e06..e40e580bdc 100644 --- a/services/rekoni/Dockerfile +++ b/services/rekoni/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/rekoni-base:v20260819 +FROM platformcollective/rekoni-base:v20260821 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/sign/pod-sign/Dockerfile b/services/sign/pod-sign/Dockerfile index 0be4ebb461..f83458bf3c 100644 --- a/services/sign/pod-sign/Dockerfile +++ b/services/sign/pod-sign/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/telegram-bot/pod-telegram-bot/Dockerfile b/services/telegram-bot/pod-telegram-bot/Dockerfile index 50b374c53e..1f9478d2dc 100644 --- a/services/telegram-bot/pod-telegram-bot/Dockerfile +++ b/services/telegram-bot/pod-telegram-bot/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/telegram/pod-telegram/Dockerfile b/services/telegram/pod-telegram/Dockerfile index 14328405e5..79e71bfbfa 100644 --- a/services/telegram/pod-telegram/Dockerfile +++ b/services/telegram/pod-telegram/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/translate/Dockerfile b/services/translate/Dockerfile index 3b3e90948b..414459c22c 100644 --- a/services/translate/Dockerfile +++ b/services/translate/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/worker/Dockerfile b/services/worker/Dockerfile index 3b3e90948b..414459c22c 100644 --- a/services/worker/Dockerfile +++ b/services/worker/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260819 +FROM platformcollective/base-slim:v20260821 WORKDIR /usr/src/app COPY bundle/bundle.js ./ From 811125b5133d9fd6cf2c61aee242ae9a38536346 Mon Sep 17 00:00:00 2001 From: Alexander Onnikov Date: Fri, 21 Aug 2026 23:23:05 +0700 Subject: [PATCH 06/55] chore: update pdfjs uuid debpack-dev-server Signed-off-by: Alexander Onnikov (ported from TraceX c67ed27b88) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- desktop/package.json | 2 +- dev/base-image/rekoni.Dockerfile | 2 +- dev/prod/package.json | 2 +- foundations/core/packages/token/package.json | 2 +- foundations/net/packages/backrpc/package.json | 2 +- foundations/net/packages/client/package.json | 2 +- foundations/net/packages/core/package.json | 2 +- foundations/net/packages/server/package.json | 2 +- foundations/net/pods/network-pod/package.json | 2 +- foundations/net/pods/network-tool/package.json | 2 +- foundations/server/packages/core/package.json | 2 +- packages/importer/package.json | 2 +- packages/integration-client/package.json | 2 +- packages/presentation/package.json | 2 +- pods/front/package.json | 2 +- server/front/package.json | 2 +- server/tool/package.json | 2 +- services/ai-bot/pod-ai-bot/package.json | 2 +- services/billing/pod-billing/package.json | 2 +- services/datalake/pod-datalake/package.json | 2 +- services/export/pod-export/package.json | 2 +- services/gmail/pod-gmail/package.json | 2 +- services/love/package.json | 2 +- services/mail/mail-common/package.json | 2 +- services/mail/pod-mail-worker/package.json | 2 +- services/payment/pod-payment/package.json | 2 +- services/rekoni/Dockerfile | 2 ++ services/rekoni/package.json | 2 +- services/telegram/pod-telegram/package.json | 2 +- templates/package/package.json | 2 +- 30 files changed, 31 insertions(+), 29 deletions(-) diff --git a/desktop/package.json b/desktop/package.json index bfacd6db7b..4e0e34eebe 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -41,7 +41,7 @@ "svelte-loader": "^3.2.0", "svelte-preprocess": "^5.1.4", "css-loader": "^5.2.1", - "webpack-dev-server": "^5.2.6", + "webpack-dev-server": "^6.0.0", "style-loader": "^3.3.1", "file-loader": "^6.2.0", "sass": "^1.80.0", diff --git a/dev/base-image/rekoni.Dockerfile b/dev/base-image/rekoni.Dockerfile index eae031ee8f..de17889af3 100644 --- a/dev/base-image/rekoni.Dockerfile +++ b/dev/base-image/rekoni.Dockerfile @@ -19,4 +19,4 @@ RUN apt-get update && \ html2text \ unrtf -RUN npm install --ignore-scripts=false --verbose sharp@v0.35.3 pdfjs-dist@v2.12.313 --unsafe-perm \ No newline at end of file +RUN npm install --ignore-scripts=false --verbose sharp@v0.35.3 pdfjs-dist@v6.2.108 --unsafe-perm \ No newline at end of file diff --git a/dev/prod/package.json b/dev/prod/package.json index df965e0901..556e9afe42 100644 --- a/dev/prod/package.json +++ b/dev/prod/package.json @@ -58,7 +58,7 @@ "webpack": "^5.97.1", "webpack-bundle-analyzer": "^4.10.2", "webpack-cli": "^5.1.4", - "webpack-dev-server": "^5.2.6" + "webpack-dev-server": "^6.0.0" }, "dependencies": { "@hcengineering/achievement": "workspace:^0.7.0", diff --git a/foundations/core/packages/token/package.json b/foundations/core/packages/token/package.json index dfbbe56c57..aa78ac0570 100644 --- a/foundations/core/packages/token/package.json +++ b/foundations/core/packages/token/package.json @@ -45,7 +45,7 @@ "@hcengineering/core": "workspace:^0.7.26", "@hcengineering/platform": "workspace:^0.7.20", "jwt-simple": "^0.5.6", - "uuid": "^8.3.2" + "uuid": "^14.0.2" }, "repository": { "type": "git", diff --git a/foundations/net/packages/backrpc/package.json b/foundations/net/packages/backrpc/package.json index 29fa8659c8..6392311d2b 100644 --- a/foundations/net/packages/backrpc/package.json +++ b/foundations/net/packages/backrpc/package.json @@ -48,7 +48,7 @@ "dependencies": { "@hcengineering/network-core": "workspace:^0.7.10", "zeromq": "^6.5.0", - "uuid": "^8.3.2" + "uuid": "^14.0.2" }, "repository": "https://github.com/hcengineering/huly.net", "exports": { diff --git a/foundations/net/packages/client/package.json b/foundations/net/packages/client/package.json index b26bce9811..5de9db9272 100644 --- a/foundations/net/packages/client/package.json +++ b/foundations/net/packages/client/package.json @@ -48,7 +48,7 @@ "dependencies": { "@hcengineering/network-core": "workspace:^0.7.10", "@hcengineering/network-backrpc": "workspace:^0.7.10", - "uuid": "^8.3.2" + "uuid": "^14.0.2" }, "repository": "https://github.com/hcengineering/huly.net", "exports": { diff --git a/foundations/net/packages/core/package.json b/foundations/net/packages/core/package.json index 1132010bcb..3102a9ce47 100644 --- a/foundations/net/packages/core/package.json +++ b/foundations/net/packages/core/package.json @@ -46,7 +46,7 @@ "@types/node": "^24.13.3" }, "dependencies": { - "uuid": "^8.3.2" + "uuid": "^14.0.2" }, "repository": "https://github.com/hcengineering/huly.net", "exports": { diff --git a/foundations/net/packages/server/package.json b/foundations/net/packages/server/package.json index 235950e467..ff9025a611 100644 --- a/foundations/net/packages/server/package.json +++ b/foundations/net/packages/server/package.json @@ -49,7 +49,7 @@ "@hcengineering/network-core": "workspace:^0.7.10", "@hcengineering/network-backrpc": "workspace:^0.7.10", "@hcengineering/network-client": "workspace:^0.7.10", - "uuid": "^8.3.2" + "uuid": "^14.0.2" }, "repository": "https://github.com/hcengineering/huly.net", "exports": { diff --git a/foundations/net/pods/network-pod/package.json b/foundations/net/pods/network-pod/package.json index 8794213e21..ac89bf1db3 100644 --- a/foundations/net/pods/network-pod/package.json +++ b/foundations/net/pods/network-pod/package.json @@ -65,7 +65,7 @@ "dependencies": { "@hcengineering/network-core": "workspace:^0.7.10", "@hcengineering/network-server": "workspace:^0.7.10", - "uuid": "^8.3.2" + "uuid": "^14.0.2" }, "repository": "https://github.com/hcengineering/huly.net", "exports": { diff --git a/foundations/net/pods/network-tool/package.json b/foundations/net/pods/network-tool/package.json index b2d5224e53..a3d76ce49b 100644 --- a/foundations/net/pods/network-tool/package.json +++ b/foundations/net/pods/network-tool/package.json @@ -66,7 +66,7 @@ "dependencies": { "@hcengineering/network-core": "workspace:^0.7.10", "@hcengineering/network-client": "workspace:^0.7.10", - "uuid": "^8.3.2", + "uuid": "^14.0.2", "commander": "^14.0.0", "zeromq": "^6.5.0" }, diff --git a/foundations/server/packages/core/package.json b/foundations/server/packages/core/package.json index ed77e9e537..83df0983af 100644 --- a/foundations/server/packages/core/package.json +++ b/foundations/server/packages/core/package.json @@ -44,7 +44,7 @@ "@hcengineering/server-token": "workspace:^0.7.18", "@hcengineering/storage": "workspace:^0.7.18", "fast-equals": "^5.2.2", - "uuid": "^8.3.2" + "uuid": "^14.0.2" }, "repository": { "type": "git", diff --git a/packages/importer/package.json b/packages/importer/package.json index 26fc85d47a..ad8ed9e896 100644 --- a/packages/importer/package.json +++ b/packages/importer/package.json @@ -60,7 +60,7 @@ "csvtojson": "^2.0.10", "js-yaml": "^4.1.0", "image-size": "^1.2.1", - "uuid": "^8.3.2" + "uuid": "^14.0.2" }, "repository": { "type": "git", diff --git a/packages/integration-client/package.json b/packages/integration-client/package.json index 5378f9a9dc..1b3739b590 100644 --- a/packages/integration-client/package.json +++ b/packages/integration-client/package.json @@ -46,7 +46,7 @@ "@hcengineering/core": "workspace:^0.7.26", "@hcengineering/platform": "workspace:^0.7.20", "@hcengineering/kvs-client": "workspace:^0.7.0", - "uuid": "^8.3.2" + "uuid": "^14.0.2" }, "repository": { "type": "git", diff --git a/packages/presentation/package.json b/packages/presentation/package.json index c0c70f8c84..d63af6fe0b 100644 --- a/packages/presentation/package.json +++ b/packages/presentation/package.json @@ -68,7 +68,7 @@ "fast-equals": "^5.2.2", "png-chunks-extract": "^1.0.0", "svelte": "^4.2.20", - "uuid": "^8.3.2", + "uuid": "^14.0.2", "yjs": "^13.6.27" }, "repository": { diff --git a/pods/front/package.json b/pods/front/package.json index 285e07ea25..3e34d38c5e 100644 --- a/pods/front/package.json +++ b/pods/front/package.json @@ -65,7 +65,7 @@ "@hcengineering/platform": "workspace:^0.7.20", "express": "^4.21.2", "express-fileupload": "^1.5.1", - "uuid": "^8.3.2", + "uuid": "^14.0.2", "cors": "^2.8.5", "@hcengineering/server-core": "workspace:^0.7.19", "@hcengineering/server-token": "workspace:^0.7.18", diff --git a/server/front/package.json b/server/front/package.json index 7189fe3519..583ace3550 100644 --- a/server/front/package.json +++ b/server/front/package.json @@ -51,7 +51,7 @@ "express": "^4.21.2", "express-fileupload": "^1.5.1", "express-static-gzip": "^2.2.0", - "uuid": "^8.3.2", + "uuid": "^14.0.2", "cors": "^2.8.5", "@hcengineering/account-client": "workspace:^0.7.25", "@hcengineering/server-core": "workspace:^0.7.19", diff --git a/server/tool/package.json b/server/tool/package.json index efa4060f40..6f8e99bdf3 100644 --- a/server/tool/package.json +++ b/server/tool/package.json @@ -47,7 +47,7 @@ "@hcengineering/importer": "workspace:^0.7.0", "@hcengineering/model": "workspace:^0.7.17", "@hcengineering/rank": "workspace:^0.7.18", - "uuid": "^8.3.2", + "uuid": "^14.0.2", "@hcengineering/server-token": "workspace:^0.7.18", "@hcengineering/server-core": "workspace:^0.7.19", "@hcengineering/server-client": "workspace:^0.7.16", diff --git a/services/ai-bot/pod-ai-bot/package.json b/services/ai-bot/pod-ai-bot/package.json index e8ea0b6972..8485c88b43 100644 --- a/services/ai-bot/pod-ai-bot/package.json +++ b/services/ai-bot/pod-ai-bot/package.json @@ -94,7 +94,7 @@ "js-tiktoken": "^1.0.14", "mongodb": "^6.16.0", "openai": "^4.56.0", - "uuid": "^8.3.2", + "uuid": "^14.0.2", "ws": "^8.21.0" } } diff --git a/services/billing/pod-billing/package.json b/services/billing/pod-billing/package.json index 0a4fa32484..8b3ccc259e 100644 --- a/services/billing/pod-billing/package.json +++ b/services/billing/pod-billing/package.json @@ -75,6 +75,6 @@ "morgan": "^1.10.0", "postgres": "^3.4.7", "on-headers": "^1.0.2", - "uuid": "^8.3.2" + "uuid": "^14.0.2" } } diff --git a/services/datalake/pod-datalake/package.json b/services/datalake/pod-datalake/package.json index 9834ce5c65..e668b76473 100644 --- a/services/datalake/pod-datalake/package.json +++ b/services/datalake/pod-datalake/package.json @@ -79,6 +79,6 @@ "morgan": "^1.10.0", "on-headers": "^1.0.2", "lru-cache": "^11.1.0", - "uuid": "^8.3.2" + "uuid": "^14.0.2" } } diff --git a/services/export/pod-export/package.json b/services/export/pod-export/package.json index 7b4ff644f9..b46348c8d2 100644 --- a/services/export/pod-export/package.json +++ b/services/export/pod-export/package.json @@ -86,7 +86,7 @@ "@hcengineering/drive": "workspace:^0.7.0", "@hcengineering/export": "workspace:^0.7.0", "@hcengineering/products": "workspace:^0.7.0", - "uuid": "^8.3.2", + "uuid": "^14.0.2", "tar": "^7.5.21", "archiver": "^7.0.1", "js-yaml": "^4.1.0", diff --git a/services/gmail/pod-gmail/package.json b/services/gmail/pod-gmail/package.json index 966d20a604..19d055c8d7 100644 --- a/services/gmail/pod-gmail/package.json +++ b/services/gmail/pod-gmail/package.json @@ -88,7 +88,7 @@ "google-auth-library": "^8.0.2", "gaxios": "^5.0.1", "jwt-simple": "^0.5.6", - "uuid": "^8.3.2", + "uuid": "^14.0.2", "ws": "^8.21.0", "@hcengineering/analytics-service": "workspace:^0.7.19", "sanitize-html": "^2.15.0" diff --git a/services/love/package.json b/services/love/package.json index 5e383a2cf5..3f54be881b 100644 --- a/services/love/package.json +++ b/services/love/package.json @@ -80,7 +80,7 @@ "express": "^4.21.2", "jwt-simple": "^0.5.6", "livekit-server-sdk": "^2.13.3", - "uuid": "^8.3.2", + "uuid": "^14.0.2", "ws": "^8.21.0" } } diff --git a/services/mail/mail-common/package.json b/services/mail/mail-common/package.json index 1df419c31c..2ce1941993 100644 --- a/services/mail/mail-common/package.json +++ b/services/mail/mail-common/package.json @@ -66,7 +66,7 @@ "markdown-it": "^14.0.0", "sanitize-html": "^2.15.0", "turndown": "^7.2.0", - "uuid": "^8.3.2", + "uuid": "^14.0.2", "striptags": "^3.2.0" } } diff --git a/services/mail/pod-mail-worker/package.json b/services/mail/pod-mail-worker/package.json index 452dcbedb9..ca686a6872 100644 --- a/services/mail/pod-mail-worker/package.json +++ b/services/mail/pod-mail-worker/package.json @@ -82,6 +82,6 @@ "lru-cache": "^11.1.0", "sanitize-html": "^2.15.0", "turndown": "^7.2.0", - "uuid": "^8.3.2" + "uuid": "^14.0.2" } } diff --git a/services/payment/pod-payment/package.json b/services/payment/pod-payment/package.json index ceac21c186..34736fed95 100644 --- a/services/payment/pod-payment/package.json +++ b/services/payment/pod-payment/package.json @@ -76,6 +76,6 @@ "morgan": "^1.10.0", "postgres": "^3.4.7", "on-headers": "^1.0.2", - "uuid": "^8.3.2" + "uuid": "^14.0.2" } } diff --git a/services/rekoni/Dockerfile b/services/rekoni/Dockerfile index e40e580bdc..bf2d0887bb 100644 --- a/services/rekoni/Dockerfile +++ b/services/rekoni/Dockerfile @@ -1,6 +1,8 @@ FROM platformcollective/rekoni-base:v20260821 WORKDIR /usr/src/app +RUN npm install --ignore-scripts=false --verbose pdfjs-dist@v6.2.108 --unsafe-perm + COPY bundle/bundle.js ./ EXPOSE 4004 CMD [ "node", "./bundle.js" ] diff --git a/services/rekoni/package.json b/services/rekoni/package.json index d1be2b432c..5e411b5d5d 100644 --- a/services/rekoni/package.json +++ b/services/rekoni/package.json @@ -79,7 +79,7 @@ "libphonenumber-js": "^1.9.46", "mammoth": "^1.9.0", "mime-types": "~2.1.34", - "pdfjs-dist": "2.12.313", + "pdfjs-dist": "6.2.108", "sharp": "~0.35.3", "morgan": "^1.10.0", "@hcengineering/server-core": "workspace:^0.7.19", diff --git a/services/telegram/pod-telegram/package.json b/services/telegram/pod-telegram/package.json index e4b94a4498..1a5852f2a9 100644 --- a/services/telegram/pod-telegram/package.json +++ b/services/telegram/pod-telegram/package.json @@ -77,7 +77,7 @@ "mime": "^3.0.0", "mongodb": "^6.16.0", "telegram": "2.22.2", - "uuid": "^8.3.2", + "uuid": "^14.0.2", "ws": "^8.21.0", "@hcengineering/analytics-service": "workspace:^0.7.19" } diff --git a/templates/package/package.json b/templates/package/package.json index 60a9554b32..d3d69ca582 100644 --- a/templates/package/package.json +++ b/templates/package/package.json @@ -12,7 +12,7 @@ "ts-loader": "^9.2.5", "svelte-loader": "^3.2.0", "css-loader": "^5.2.1", - "webpack-dev-server": "^5.2.6", + "webpack-dev-server": "^6.0.0", "style-loader": "^3.3.1", "file-loader": "^6.2.0", "sass-loader": "^14.0.0", From 4ae2c50fbf954072ddecd63675fb5f5ad9f43a2b Mon Sep 17 00:00:00 2001 From: Alexander Onnikov Date: Sun, 23 Aug 2026 11:37:02 +0700 Subject: [PATCH 07/55] fix: downgrade uuid to commonjs supported Signed-off-by: Alexander Onnikov (ported from TraceX 0945f375fc) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- foundations/net/packages/backrpc/package.json | 5 ++--- foundations/net/packages/client/package.json | 1 - foundations/net/packages/core/package.json | 3 +-- foundations/net/packages/server/package.json | 5 ++--- foundations/net/pods/network-pod/package.json | 3 +-- foundations/net/pods/network-tool/package.json | 3 +-- foundations/server/packages/client/package.json | 1 - foundations/server/packages/core/package.json | 3 +-- packages/importer/package.json | 5 ++--- packages/integration-client/package.json | 5 ++--- packages/presentation/package.json | 5 ++--- pods/front/package.json | 3 +-- server/front/package.json | 3 +-- server/indexer/package.json | 3 +-- server/tool/package.json | 3 +-- services/ai-bot/pod-ai-bot/package.json | 3 +-- services/billing/pod-billing/package.json | 3 +-- services/datalake/pod-datalake/package.json | 5 ++--- services/export/pod-export/package.json | 3 +-- services/github/pod-github/package.json | 1 - services/gmail/pod-gmail/package.json | 3 +-- services/love/package.json | 3 +-- services/mail/mail-common/package.json | 3 +-- services/mail/pod-mail-worker/package.json | 3 +-- services/payment/pod-payment/package.json | 5 ++--- services/process/package.json | 1 - services/telegram/pod-telegram/package.json | 5 ++--- services/worker/package.json | 1 - 28 files changed, 31 insertions(+), 59 deletions(-) diff --git a/foundations/net/packages/backrpc/package.json b/foundations/net/packages/backrpc/package.json index 6392311d2b..d6d58c8ada 100644 --- a/foundations/net/packages/backrpc/package.json +++ b/foundations/net/packages/backrpc/package.json @@ -42,13 +42,12 @@ "jest": "^29.7.0", "ts-jest": "^29.1.1", "@types/jest": "^29.5.5", - "@types/node": "^24.13.3", - "@types/uuid": "^8.3.1" + "@types/node": "^24.13.3" }, "dependencies": { "@hcengineering/network-core": "workspace:^0.7.10", "zeromq": "^6.5.0", - "uuid": "^14.0.2" + "uuid": "^11.1.1" }, "repository": "https://github.com/hcengineering/huly.net", "exports": { diff --git a/foundations/net/packages/client/package.json b/foundations/net/packages/client/package.json index 5de9db9272..224f3f065b 100644 --- a/foundations/net/packages/client/package.json +++ b/foundations/net/packages/client/package.json @@ -42,7 +42,6 @@ "jest": "^29.7.0", "ts-jest": "^29.1.1", "@types/jest": "^29.5.5", - "@types/uuid": "^8.3.1", "@types/node": "^24.13.3" }, "dependencies": { diff --git a/foundations/net/packages/core/package.json b/foundations/net/packages/core/package.json index 3102a9ce47..4e69eeceb1 100644 --- a/foundations/net/packages/core/package.json +++ b/foundations/net/packages/core/package.json @@ -42,11 +42,10 @@ "jest": "^29.7.0", "ts-jest": "^29.1.1", "@types/jest": "^29.5.5", - "@types/uuid": "^8.3.1", "@types/node": "^24.13.3" }, "dependencies": { - "uuid": "^14.0.2" + "uuid": "^11.1.1" }, "repository": "https://github.com/hcengineering/huly.net", "exports": { diff --git a/foundations/net/packages/server/package.json b/foundations/net/packages/server/package.json index ff9025a611..4fc1492990 100644 --- a/foundations/net/packages/server/package.json +++ b/foundations/net/packages/server/package.json @@ -42,14 +42,13 @@ "jest": "^29.7.0", "ts-jest": "^29.1.1", "@types/jest": "^29.5.5", - "@types/node": "^24.13.3", - "@types/uuid": "^8.3.1" + "@types/node": "^24.13.3" }, "dependencies": { "@hcengineering/network-core": "workspace:^0.7.10", "@hcengineering/network-backrpc": "workspace:^0.7.10", "@hcengineering/network-client": "workspace:^0.7.10", - "uuid": "^14.0.2" + "uuid": "^11.1.1" }, "repository": "https://github.com/hcengineering/huly.net", "exports": { diff --git a/foundations/net/pods/network-pod/package.json b/foundations/net/pods/network-pod/package.json index ac89bf1db3..bc23dafc57 100644 --- a/foundations/net/pods/network-pod/package.json +++ b/foundations/net/pods/network-pod/package.json @@ -58,14 +58,13 @@ "ts-jest": "^29.1.1", "@types/jest": "^29.5.5", "@types/node": "^24.13.3", - "@types/uuid": "^8.3.1", "esbuild": "^0.24.2", "ts-node": "^10.9.2" }, "dependencies": { "@hcengineering/network-core": "workspace:^0.7.10", "@hcengineering/network-server": "workspace:^0.7.10", - "uuid": "^14.0.2" + "uuid": "^11.1.1" }, "repository": "https://github.com/hcengineering/huly.net", "exports": { diff --git a/foundations/net/pods/network-tool/package.json b/foundations/net/pods/network-tool/package.json index a3d76ce49b..7dc842d2d1 100644 --- a/foundations/net/pods/network-tool/package.json +++ b/foundations/net/pods/network-tool/package.json @@ -59,14 +59,13 @@ "ts-jest": "^29.1.1", "@types/jest": "^29.5.5", "@types/node": "^24.13.3", - "@types/uuid": "^8.3.1", "esbuild": "^0.24.2", "ts-node": "^10.9.2" }, "dependencies": { "@hcengineering/network-core": "workspace:^0.7.10", "@hcengineering/network-client": "workspace:^0.7.10", - "uuid": "^14.0.2", + "uuid": "^11.1.1", "commander": "^14.0.0", "zeromq": "^6.5.0" }, diff --git a/foundations/server/packages/client/package.json b/foundations/server/packages/client/package.json index 44463a927d..8467a90ace 100644 --- a/foundations/server/packages/client/package.json +++ b/foundations/server/packages/client/package.json @@ -28,7 +28,6 @@ "eslint-config-standard-with-typescript": "^40.0.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "@types/uuid": "^8.3.1", "@types/ws": "^8.18.1", "jest": "^29.7.0", "ts-jest": "^29.1.1", diff --git a/foundations/server/packages/core/package.json b/foundations/server/packages/core/package.json index 83df0983af..5003cdaeb3 100644 --- a/foundations/server/packages/core/package.json +++ b/foundations/server/packages/core/package.json @@ -32,7 +32,6 @@ "jest": "^29.7.0", "ts-jest": "^29.1.1", "@types/jest": "^29.5.5", - "@types/uuid": "^8.3.1", "eslint-plugin-svelte": "^2.35.1" }, "dependencies": { @@ -44,7 +43,7 @@ "@hcengineering/server-token": "workspace:^0.7.18", "@hcengineering/storage": "workspace:^0.7.18", "fast-equals": "^5.2.2", - "uuid": "^14.0.2" + "uuid": "^11.1.1" }, "repository": { "type": "git", diff --git a/packages/importer/package.json b/packages/importer/package.json index ad8ed9e896..03bab30fe3 100644 --- a/packages/importer/package.json +++ b/packages/importer/package.json @@ -33,8 +33,7 @@ "@types/jest": "^29.5.5", "@types/node": "^24.13.3", "@types/mime-types": "~2.1.1", - "@types/js-yaml": "^4.0.9", - "@types/uuid": "^8.3.1" + "@types/js-yaml": "^4.0.9" }, "dependencies": { "@hcengineering/attachment": "workspace:^0.7.0", @@ -60,7 +59,7 @@ "csvtojson": "^2.0.10", "js-yaml": "^4.1.0", "image-size": "^1.2.1", - "uuid": "^14.0.2" + "uuid": "^11.1.1" }, "repository": { "type": "git", diff --git a/packages/integration-client/package.json b/packages/integration-client/package.json index 1b3739b590..0abe725168 100644 --- a/packages/integration-client/package.json +++ b/packages/integration-client/package.json @@ -38,15 +38,14 @@ "jest": "^29.7.0", "jest-fetch-mock": "^3.0.3", "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "@types/uuid": "^8.3.1" + "@types/jest": "^29.5.5" }, "dependencies": { "@hcengineering/account-client": "workspace:^0.7.25", "@hcengineering/core": "workspace:^0.7.26", "@hcengineering/platform": "workspace:^0.7.20", "@hcengineering/kvs-client": "workspace:^0.7.0", - "uuid": "^14.0.2" + "uuid": "^11.1.1" }, "repository": { "type": "git", diff --git a/packages/presentation/package.json b/packages/presentation/package.json index d63af6fe0b..e9f6e4e300 100644 --- a/packages/presentation/package.json +++ b/packages/presentation/package.json @@ -39,8 +39,7 @@ "@testing-library/jest-dom": "^6.6.3", "jest-environment-jsdom": "^30.2.0", "svelte-eslint-parser": "^0.33.1", - "@types/png-chunks-extract": "^1.0.2", - "@types/uuid": "^8.3.1" + "@types/png-chunks-extract": "^1.0.2" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", @@ -68,7 +67,7 @@ "fast-equals": "^5.2.2", "png-chunks-extract": "^1.0.0", "svelte": "^4.2.20", - "uuid": "^14.0.2", + "uuid": "^11.1.1", "yjs": "^13.6.27" }, "repository": { diff --git a/pods/front/package.json b/pods/front/package.json index 3e34d38c5e..1172f7b522 100644 --- a/pods/front/package.json +++ b/pods/front/package.json @@ -45,7 +45,6 @@ "eslint": "^8.54.0", "@types/express": "^4.17.13", "@types/express-fileupload": "^1.1.7", - "@types/uuid": "^8.3.1", "@types/cors": "^2.8.12", "esbuild": "^0.25.10", "prettier": "^3.6.2", @@ -65,7 +64,7 @@ "@hcengineering/platform": "workspace:^0.7.20", "express": "^4.21.2", "express-fileupload": "^1.5.1", - "uuid": "^14.0.2", + "uuid": "^11.1.1", "cors": "^2.8.5", "@hcengineering/server-core": "workspace:^0.7.19", "@hcengineering/server-token": "workspace:^0.7.18", diff --git a/server/front/package.json b/server/front/package.json index 583ace3550..d19daef04f 100644 --- a/server/front/package.json +++ b/server/front/package.json @@ -33,7 +33,6 @@ "eslint": "^8.54.0", "@types/express": "^4.17.13", "@types/express-fileupload": "^1.1.7", - "@types/uuid": "^8.3.1", "@types/cors": "^2.8.12", "prettier": "^3.6.2", "typescript": "^5.9.3", @@ -51,7 +50,7 @@ "express": "^4.21.2", "express-fileupload": "^1.5.1", "express-static-gzip": "^2.2.0", - "uuid": "^14.0.2", + "uuid": "^11.1.1", "cors": "^2.8.5", "@hcengineering/account-client": "workspace:^0.7.25", "@hcengineering/server-core": "workspace:^0.7.19", diff --git a/server/indexer/package.json b/server/indexer/package.json index 9a75b32f7b..cf27e053a4 100644 --- a/server/indexer/package.json +++ b/server/indexer/package.json @@ -31,8 +31,7 @@ "typescript": "^5.9.3", "jest": "^29.7.0", "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "@types/uuid": "^8.3.1" + "@types/jest": "^29.5.5" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server/tool/package.json b/server/tool/package.json index 6f8e99bdf3..5b5b213811 100644 --- a/server/tool/package.json +++ b/server/tool/package.json @@ -28,7 +28,6 @@ "eslint-config-standard-with-typescript": "^40.0.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "@types/uuid": "^8.3.1", "@types/ws": "^8.18.1", "jest": "^29.7.0", "ts-jest": "^29.1.1", @@ -47,7 +46,7 @@ "@hcengineering/importer": "workspace:^0.7.0", "@hcengineering/model": "workspace:^0.7.17", "@hcengineering/rank": "workspace:^0.7.18", - "uuid": "^14.0.2", + "uuid": "^11.1.1", "@hcengineering/server-token": "workspace:^0.7.18", "@hcengineering/server-core": "workspace:^0.7.19", "@hcengineering/server-client": "workspace:^0.7.16", diff --git a/services/ai-bot/pod-ai-bot/package.json b/services/ai-bot/pod-ai-bot/package.json index 8485c88b43..87b5f2f720 100644 --- a/services/ai-bot/pod-ai-bot/package.json +++ b/services/ai-bot/pod-ai-bot/package.json @@ -49,7 +49,6 @@ "eslint-plugin-n": "^15.4.0", "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^6.1.1", - "@types/uuid": "^8.3.1", "jest": "^29.7.0", "prettier": "^3.6.2", "ts-jest": "^29.1.1", @@ -94,7 +93,7 @@ "js-tiktoken": "^1.0.14", "mongodb": "^6.16.0", "openai": "^4.56.0", - "uuid": "^14.0.2", + "uuid": "^11.1.1", "ws": "^8.21.0" } } diff --git a/services/billing/pod-billing/package.json b/services/billing/pod-billing/package.json index 8b3ccc259e..6ed350c500 100644 --- a/services/billing/pod-billing/package.json +++ b/services/billing/pod-billing/package.json @@ -54,7 +54,6 @@ "typescript": "^5.9.3", "@types/morgan": "~1.9.9", "@types/on-headers": "^1.0.2", - "@types/uuid": "^8.3.1", "cross-env": "~7.0.3" }, "dependencies": { @@ -75,6 +74,6 @@ "morgan": "^1.10.0", "postgres": "^3.4.7", "on-headers": "^1.0.2", - "uuid": "^14.0.2" + "uuid": "^11.1.1" } } diff --git a/services/datalake/pod-datalake/package.json b/services/datalake/pod-datalake/package.json index e668b76473..d15f57d65c 100644 --- a/services/datalake/pod-datalake/package.json +++ b/services/datalake/pod-datalake/package.json @@ -54,8 +54,7 @@ "ts-node": "^10.9.2", "typescript": "^5.9.3", "@types/morgan": "~1.9.9", - "@types/on-headers": "^1.0.2", - "@types/uuid": "^8.3.1" + "@types/on-headers": "^1.0.2" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", @@ -79,6 +78,6 @@ "morgan": "^1.10.0", "on-headers": "^1.0.2", "lru-cache": "^11.1.0", - "uuid": "^14.0.2" + "uuid": "^11.1.1" } } diff --git a/services/export/pod-export/package.json b/services/export/pod-export/package.json index b46348c8d2..2ea8b2fa3c 100644 --- a/services/export/pod-export/package.json +++ b/services/export/pod-export/package.json @@ -49,7 +49,6 @@ "jest": "^29.7.0", "ts-jest": "^29.1.1", "@types/jest": "^29.5.5", - "@types/uuid": "^8.3.1", "prettier": "^3.6.2", "ts-node": "^10.9.2", "typescript": "^5.9.3", @@ -86,7 +85,7 @@ "@hcengineering/drive": "workspace:^0.7.0", "@hcengineering/export": "workspace:^0.7.0", "@hcengineering/products": "workspace:^0.7.0", - "uuid": "^14.0.2", + "uuid": "^11.1.1", "tar": "^7.5.21", "archiver": "^7.0.1", "js-yaml": "^4.1.0", diff --git a/services/github/pod-github/package.json b/services/github/pod-github/package.json index f0f8206efe..652a55c7fa 100644 --- a/services/github/pod-github/package.json +++ b/services/github/pod-github/package.json @@ -51,7 +51,6 @@ "graphql-binding": "^2.5.2", "@types/express": "^4.17.13", "@types/express-fileupload": "^1.1.7", - "@types/uuid": "^8.3.1", "@types/cors": "^2.8.12", "@types/body-parser": "~1.19.2", "@types/compression": "~1.7.2", diff --git a/services/gmail/pod-gmail/package.json b/services/gmail/pod-gmail/package.json index 19d055c8d7..f973a0ff0f 100644 --- a/services/gmail/pod-gmail/package.json +++ b/services/gmail/pod-gmail/package.json @@ -52,7 +52,6 @@ "prettier": "^3.6.2", "ts-node-dev": "^2.0.0", "typescript": "^5.9.3", - "@types/uuid": "^8.3.1", "ts-node": "^10.9.2", "cross-env": "~7.0.3" }, @@ -88,7 +87,7 @@ "google-auth-library": "^8.0.2", "gaxios": "^5.0.1", "jwt-simple": "^0.5.6", - "uuid": "^14.0.2", + "uuid": "^11.1.1", "ws": "^8.21.0", "@hcengineering/analytics-service": "workspace:^0.7.19", "sanitize-html": "^2.15.0" diff --git a/services/love/package.json b/services/love/package.json index 3f54be881b..932692394c 100644 --- a/services/love/package.json +++ b/services/love/package.json @@ -41,7 +41,6 @@ "jest": "^29.7.0", "ts-jest": "^29.1.1", "@types/jest": "^29.5.5", - "@types/uuid": "^8.3.1", "@typescript-eslint/parser": "^6.21.0", "esbuild": "^0.25.10", "eslint": "^8.54.0", @@ -80,7 +79,7 @@ "express": "^4.21.2", "jwt-simple": "^0.5.6", "livekit-server-sdk": "^2.13.3", - "uuid": "^14.0.2", + "uuid": "^11.1.1", "ws": "^8.21.0" } } diff --git a/services/mail/mail-common/package.json b/services/mail/mail-common/package.json index 2ce1941993..adb85f3012 100644 --- a/services/mail/mail-common/package.json +++ b/services/mail/mail-common/package.json @@ -29,7 +29,6 @@ "@types/node": "^24.13.3", "@types/sanitize-html": "^2.15.0", "@types/turndown": "^5.0.5", - "@types/uuid": "^8.3.1", "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", "esbuild": "^0.25.10", @@ -66,7 +65,7 @@ "markdown-it": "^14.0.0", "sanitize-html": "^2.15.0", "turndown": "^7.2.0", - "uuid": "^14.0.2", + "uuid": "^11.1.1", "striptags": "^3.2.0" } } diff --git a/services/mail/pod-mail-worker/package.json b/services/mail/pod-mail-worker/package.json index ca686a6872..ae0088bdd7 100644 --- a/services/mail/pod-mail-worker/package.json +++ b/services/mail/pod-mail-worker/package.json @@ -39,7 +39,6 @@ "@types/node": "^24.13.3", "@types/turndown": "^5.0.5", "@types/sanitize-html": "^2.15.0", - "@types/uuid": "^8.3.1", "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", "cross-env": "~7.0.3", @@ -82,6 +81,6 @@ "lru-cache": "^11.1.0", "sanitize-html": "^2.15.0", "turndown": "^7.2.0", - "uuid": "^14.0.2" + "uuid": "^11.1.1" } } diff --git a/services/payment/pod-payment/package.json b/services/payment/pod-payment/package.json index 34736fed95..4309eb3c64 100644 --- a/services/payment/pod-payment/package.json +++ b/services/payment/pod-payment/package.json @@ -55,8 +55,7 @@ "ts-node": "^10.9.2", "typescript": "^5.9.3", "@types/morgan": "~1.9.9", - "@types/on-headers": "^1.0.2", - "@types/uuid": "^8.3.1" + "@types/on-headers": "^1.0.2" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", @@ -76,6 +75,6 @@ "morgan": "^1.10.0", "postgres": "^3.4.7", "on-headers": "^1.0.2", - "uuid": "^14.0.2" + "uuid": "^11.1.1" } } diff --git a/services/process/package.json b/services/process/package.json index a992d8b23a..7b9482e53b 100644 --- a/services/process/package.json +++ b/services/process/package.json @@ -38,7 +38,6 @@ "jest": "^29.7.0", "ts-jest": "^29.1.1", "@types/jest": "^29.5.5", - "@types/uuid": "^8.3.1", "@typescript-eslint/parser": "^6.21.0", "esbuild": "^0.25.10", "eslint": "^8.54.0", diff --git a/services/telegram/pod-telegram/package.json b/services/telegram/pod-telegram/package.json index 1a5852f2a9..06b12d4d67 100644 --- a/services/telegram/pod-telegram/package.json +++ b/services/telegram/pod-telegram/package.json @@ -51,8 +51,7 @@ "eslint-plugin-import": "^2.26.0", "eslint-plugin-n": "^15.4.0", "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", - "@types/uuid": "^8.3.1" + "eslint": "^8.54.0" }, "dependencies": { "@hcengineering/attachment": "workspace:^0.7.0", @@ -77,7 +76,7 @@ "mime": "^3.0.0", "mongodb": "^6.16.0", "telegram": "2.22.2", - "uuid": "^14.0.2", + "uuid": "^11.1.1", "ws": "^8.21.0", "@hcengineering/analytics-service": "workspace:^0.7.19" } diff --git a/services/worker/package.json b/services/worker/package.json index f3327f3b26..b4a6f4d274 100644 --- a/services/worker/package.json +++ b/services/worker/package.json @@ -42,7 +42,6 @@ "jest": "^29.7.0", "ts-jest": "^29.1.1", "@types/jest": "^29.5.5", - "@types/uuid": "^8.3.1", "@typescript-eslint/parser": "^6.21.0", "esbuild": "^0.25.10", "eslint": "^8.54.0", From 55773727704317e80f0d8b69cbe4ee663b214321 Mon Sep 17 00:00:00 2001 From: Alexander Onnikov Date: Sun, 23 Aug 2026 11:39:47 +0700 Subject: [PATCH 08/55] chore: update cors Signed-off-by: Alexander Onnikov (ported from TraceX 6ebca7b022) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- foundations/core/packages/token/package.json | 3 +-- foundations/net/tests/package.json | 2 +- pods/front/package.json | 4 ++-- pods/link-preview/package.json | 4 ++-- pods/preview/package.json | 4 ++-- pods/server/package.json | 4 ++-- server/collaborator/package.json | 4 ++-- server/front/package.json | 4 ++-- services/ai-bot/pod-ai-bot/package.json | 4 ++-- .../analytics-collector/pod-analytics-collector/package.json | 4 ++-- services/backup/backup-api-pod/package.json | 4 ++-- services/billing/pod-billing/package.json | 4 ++-- services/calendar/pod-calendar/package.json | 4 ++-- services/datalake/pod-datalake/package.json | 4 ++-- services/export/pod-export/package.json | 4 ++-- services/github/pod-github/package.json | 4 ++-- services/gmail/pod-gmail/package.json | 4 ++-- services/love/package.json | 4 ++-- services/mail/pod-mail-worker/package.json | 4 ++-- services/mail/pod-mail/package.json | 4 ++-- services/notification/pod-notification/package.json | 4 ++-- services/payment/pod-payment/package.json | 4 ++-- services/print/pod-print/package.json | 4 ++-- services/rekoni/package.json | 4 ++-- services/sign/pod-sign/package.json | 4 ++-- services/telegram-bot/pod-telegram-bot/package.json | 4 ++-- services/telegram/pod-telegram/package.json | 4 ++-- ws-tests/api-tests/package.json | 2 +- 28 files changed, 53 insertions(+), 54 deletions(-) diff --git a/foundations/core/packages/token/package.json b/foundations/core/packages/token/package.json index aa78ac0570..d69b35fd82 100644 --- a/foundations/core/packages/token/package.json +++ b/foundations/core/packages/token/package.json @@ -38,14 +38,13 @@ "jest": "^29.7.0", "ts-jest": "^29.1.1", "@types/jest": "^29.5.5", - "@types/uuid": "^8.3.1", "eslint-plugin-svelte": "^2.35.1" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", "@hcengineering/platform": "workspace:^0.7.20", "jwt-simple": "^0.5.6", - "uuid": "^14.0.2" + "uuid": "^11.1.1" }, "repository": { "type": "git", diff --git a/foundations/net/tests/package.json b/foundations/net/tests/package.json index d295099d52..4b0d464be3 100644 --- a/foundations/net/tests/package.json +++ b/foundations/net/tests/package.json @@ -21,7 +21,7 @@ "devDependencies": { "@hcengineering/platform-rig": "^0.7.8", "@types/compression": "~1.7.2", - "@types/cors": "^2.8.12", + "@types/cors": "^2.8.19", "@types/express": "^4.17.13", "@types/jest": "^29.5.5", "@types/node": "^24.13.3", diff --git a/pods/front/package.json b/pods/front/package.json index 1172f7b522..96af070bbd 100644 --- a/pods/front/package.json +++ b/pods/front/package.json @@ -45,7 +45,7 @@ "eslint": "^8.54.0", "@types/express": "^4.17.13", "@types/express-fileupload": "^1.1.7", - "@types/cors": "^2.8.12", + "@types/cors": "^2.8.19", "esbuild": "^0.25.10", "prettier": "^3.6.2", "typescript": "^5.9.3", @@ -65,7 +65,7 @@ "express": "^4.21.2", "express-fileupload": "^1.5.1", "uuid": "^11.1.1", - "cors": "^2.8.5", + "cors": "^2.8.6", "@hcengineering/server-core": "workspace:^0.7.19", "@hcengineering/server-token": "workspace:^0.7.18", "@hcengineering/attachment": "workspace:^0.7.0", diff --git a/pods/link-preview/package.json b/pods/link-preview/package.json index 244b2682b8..13140a47ce 100644 --- a/pods/link-preview/package.json +++ b/pods/link-preview/package.json @@ -50,7 +50,7 @@ "ts-node": "^10.9.2", "typescript": "^5.9.3", "@types/express": "^4.17.13", - "@types/cors": "^2.8.12", + "@types/cors": "^2.8.19", "@types/morgan": "~1.9.9" }, "dependencies": { @@ -63,7 +63,7 @@ "@hcengineering/server-token": "workspace:^0.7.18", "dotenv": "^16.4.5", "express": "^4.21.2", - "cors": "^2.8.5", + "cors": "^2.8.6", "morgan": "^1.10.0", "cheerio": "^1.1.2", "image-size": "^1.2.1", diff --git a/pods/preview/package.json b/pods/preview/package.json index 22f6f32f6f..15e8c2dc09 100644 --- a/pods/preview/package.json +++ b/pods/preview/package.json @@ -50,7 +50,7 @@ "ts-node": "^10.9.2", "typescript": "^5.9.3", "@types/express": "^4.17.13", - "@types/cors": "^2.8.12", + "@types/cors": "^2.8.19", "@types/morgan": "~1.9.9", "@types/heic-decode": "^1.1.2" }, @@ -67,7 +67,7 @@ "blurhash": "^2.0.5", "dotenv": "^16.4.5", "express": "^4.21.2", - "cors": "^2.8.5", + "cors": "^2.8.6", "morgan": "^1.10.0", "node-poppler": "^8.0.4", "lru-cache": "^11.1.0", diff --git a/pods/server/package.json b/pods/server/package.json index e6eb6c0515..f36a653070 100644 --- a/pods/server/package.json +++ b/pods/server/package.json @@ -60,7 +60,7 @@ "snappyjs": "^0.7.0", "@types/body-parser": "~1.19.2", "@types/morgan": "~1.9.9", - "@types/cors": "^2.8.12", + "@types/cors": "^2.8.19", "@types/express": "^4.17.13" }, "dependencies": { @@ -99,7 +99,7 @@ "@hcengineering/account-client": "workspace:^0.7.25", "morgan": "^1.10.0", "body-parser": "^1.20.3", - "cors": "^2.8.5", + "cors": "^2.8.6", "express": "^4.21.2" } } diff --git a/server/collaborator/package.json b/server/collaborator/package.json index 9077d62a21..f2b58302ee 100644 --- a/server/collaborator/package.json +++ b/server/collaborator/package.json @@ -38,7 +38,7 @@ "typescript": "^5.9.3", "@types/body-parser": "~1.19.2", "@types/express": "^4.17.13", - "@types/cors": "^2.8.12", + "@types/cors": "^2.8.19", "@types/compression": "~1.7.2", "@types/ws": "^8.18.1", "jest": "^29.7.0", @@ -74,7 +74,7 @@ "yjs": "^13.6.27", "express": "^4.21.2", "body-parser": "^1.20.3", - "cors": "^2.8.5", + "cors": "^2.8.6", "ws": "^8.21.0" } } diff --git a/server/front/package.json b/server/front/package.json index d19daef04f..4d5f5b90e2 100644 --- a/server/front/package.json +++ b/server/front/package.json @@ -33,7 +33,7 @@ "eslint": "^8.54.0", "@types/express": "^4.17.13", "@types/express-fileupload": "^1.1.7", - "@types/cors": "^2.8.12", + "@types/cors": "^2.8.19", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/body-parser": "~1.19.2", @@ -51,7 +51,7 @@ "express-fileupload": "^1.5.1", "express-static-gzip": "^2.2.0", "uuid": "^11.1.1", - "cors": "^2.8.5", + "cors": "^2.8.6", "@hcengineering/account-client": "workspace:^0.7.25", "@hcengineering/server-core": "workspace:^0.7.19", "@hcengineering/storage": "workspace:^0.7.18", diff --git a/services/ai-bot/pod-ai-bot/package.json b/services/ai-bot/pod-ai-bot/package.json index 87b5f2f720..b88fcd72b1 100644 --- a/services/ai-bot/pod-ai-bot/package.json +++ b/services/ai-bot/pod-ai-bot/package.json @@ -35,7 +35,7 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@tsconfig/node16": "^1.0.4", - "@types/cors": "^2.8.12", + "@types/cors": "^2.8.19", "@types/express": "^4.17.13", "@types/jest": "^29.5.5", "@types/node": "^24.13.3", @@ -85,7 +85,7 @@ "@hcengineering/text-html": "workspace:^0.7.19", "@hcengineering/text-markdown": "workspace:^0.7.21", "@hcengineering/workbench": "workspace:^0.7.0", - "cors": "^2.8.5", + "cors": "^2.8.6", "dotenv": "^16.4.5", "express": "^4.21.2", "fast-equals": "^5.2.2", diff --git a/services/analytics-collector/pod-analytics-collector/package.json b/services/analytics-collector/pod-analytics-collector/package.json index 46f3d7f1b9..0037b56ea5 100644 --- a/services/analytics-collector/pod-analytics-collector/package.json +++ b/services/analytics-collector/pod-analytics-collector/package.json @@ -35,7 +35,7 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@tsconfig/node16": "^1.0.4", - "@types/cors": "^2.8.12", + "@types/cors": "^2.8.19", "@types/express": "^4.17.13", "@types/node": "^24.13.3", "@typescript-eslint/eslint-plugin": "^6.21.0", @@ -64,7 +64,7 @@ "@hcengineering/server-client": "workspace:^0.7.16", "@hcengineering/server-core": "workspace:^0.7.19", "@hcengineering/server-token": "workspace:^0.7.18", - "cors": "^2.8.5", + "cors": "^2.8.6", "dotenv": "^16.4.5", "express": "^4.21.2", "maxmind": "^4.3.6" diff --git a/services/backup/backup-api-pod/package.json b/services/backup/backup-api-pod/package.json index caace882fb..ba6b005d8c 100644 --- a/services/backup/backup-api-pod/package.json +++ b/services/backup/backup-api-pod/package.json @@ -33,7 +33,7 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@tsconfig/node16": "^1.0.4", - "@types/cors": "^2.8.12", + "@types/cors": "^2.8.19", "@types/express": "^4.17.13", "@types/express-fileupload": "^1.1.7", "@types/node": "^24.13.3", @@ -65,7 +65,7 @@ "@hcengineering/core": "workspace:^0.7.26", "@hcengineering/platform": "workspace:^0.7.20", "@hcengineering/account-client": "workspace:^0.7.25", - "cors": "^2.8.5", + "cors": "^2.8.6", "dotenv": "^16.4.5", "express": "^4.21.2", "postgres": "^3.4.7", diff --git a/services/billing/pod-billing/package.json b/services/billing/pod-billing/package.json index 6ed350c500..70a9e6d62a 100644 --- a/services/billing/pod-billing/package.json +++ b/services/billing/pod-billing/package.json @@ -33,7 +33,7 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@tsconfig/node16": "^1.0.4", - "@types/cors": "^2.8.12", + "@types/cors": "^2.8.19", "@types/express": "^4.17.13", "@types/node": "^24.13.3", "@types/ws": "^8.18.1", @@ -68,7 +68,7 @@ "@hcengineering/datalake": "workspace:^0.7.18", "@hcengineering/account-client": "workspace:^0.7.25", "@hcengineering/platform": "workspace:^0.7.20", - "cors": "^2.8.5", + "cors": "^2.8.6", "dotenv": "^16.4.5", "express": "^4.21.2", "morgan": "^1.10.0", diff --git a/services/calendar/pod-calendar/package.json b/services/calendar/pod-calendar/package.json index 487f374313..e870d02c56 100644 --- a/services/calendar/pod-calendar/package.json +++ b/services/calendar/pod-calendar/package.json @@ -31,7 +31,7 @@ }, "devDependencies": { "@tsconfig/node16": "^1.0.4", - "@types/cors": "^2.8.12", + "@types/cors": "^2.8.19", "@types/express": "^4.17.13", "@types/node": "^24.13.3", "@types/ws": "^8.18.1", @@ -70,7 +70,7 @@ "@hcengineering/server-token": "workspace:^0.7.18", "@hcengineering/integration-client": "workspace:^0.7.0", "dotenv": "^16.4.5", - "cors": "^2.8.5", + "cors": "^2.8.6", "express": "^4.21.2", "fast-equals": "^5.2.2", "file-api": "^0.10.4", diff --git a/services/datalake/pod-datalake/package.json b/services/datalake/pod-datalake/package.json index d15f57d65c..6d2e65f8bf 100644 --- a/services/datalake/pod-datalake/package.json +++ b/services/datalake/pod-datalake/package.json @@ -33,7 +33,7 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@tsconfig/node16": "^1.0.4", - "@types/cors": "^2.8.12", + "@types/cors": "^2.8.19", "@types/express": "^4.17.13", "@types/express-fileupload": "^1.1.7", "@types/node": "^24.13.3", @@ -66,7 +66,7 @@ "@hcengineering/kafka": "workspace:^0.7.18", "@hcengineering/platform": "workspace:^0.7.20", "@hcengineering/account-client": "workspace:^0.7.25", - "cors": "^2.8.5", + "cors": "^2.8.6", "dotenv": "^16.4.5", "express": "^4.21.2", "express-fileupload": "^1.5.1", diff --git a/services/export/pod-export/package.json b/services/export/pod-export/package.json index 2ea8b2fa3c..c2e6474091 100644 --- a/services/export/pod-export/package.json +++ b/services/export/pod-export/package.json @@ -33,7 +33,7 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@tsconfig/node16": "^1.0.4", - "@types/cors": "^2.8.12", + "@types/cors": "^2.8.19", "@types/express": "^4.17.13", "@types/node": "^24.13.3", "@types/ws": "^8.18.1", @@ -78,7 +78,7 @@ "@hcengineering/analytics-service": "workspace:^0.7.19", "@hcengineering/postgres": "workspace:^0.7.22", "@hcengineering/attachment": "workspace:^0.7.0", - "cors": "^2.8.5", + "cors": "^2.8.6", "dotenv": "^16.4.5", "express": "^4.21.2", "ws": "^8.21.0", diff --git a/services/github/pod-github/package.json b/services/github/pod-github/package.json index 652a55c7fa..37323c837b 100644 --- a/services/github/pod-github/package.json +++ b/services/github/pod-github/package.json @@ -51,7 +51,7 @@ "graphql-binding": "^2.5.2", "@types/express": "^4.17.13", "@types/express-fileupload": "^1.1.7", - "@types/cors": "^2.8.12", + "@types/cors": "^2.8.19", "@types/body-parser": "~1.19.2", "@types/compression": "~1.7.2", "jest": "^29.7.0", @@ -113,7 +113,7 @@ "@tiptap/extension-bubble-menu": "^2.11.7", "@hcengineering/task": "workspace:^0.7.0", "express": "^4.21.2", - "cors": "^2.8.5", + "cors": "^2.8.6", "body-parser": "^1.20.3", "mongodb": "^6.16.0", "@hcengineering/setting": "workspace:^0.7.0", diff --git a/services/gmail/pod-gmail/package.json b/services/gmail/pod-gmail/package.json index f973a0ff0f..3197ae69ef 100644 --- a/services/gmail/pod-gmail/package.json +++ b/services/gmail/pod-gmail/package.json @@ -32,7 +32,7 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@tsconfig/node16": "^1.0.4", - "@types/cors": "^2.8.12", + "@types/cors": "^2.8.19", "@types/express": "^4.17.13", "@types/node": "^24.13.3", "@types/sanitize-html": "^2.15.0", @@ -78,7 +78,7 @@ "@hcengineering/server-token": "workspace:^0.7.18", "@hcengineering/integration-client": "workspace:^0.7.0", "@hcengineering/kafka": "workspace:^0.7.18", - "cors": "^2.8.5", + "cors": "^2.8.6", "dotenv": "^16.4.5", "express": "^4.21.2", "fast-equals": "^5.2.2", diff --git a/services/love/package.json b/services/love/package.json index 932692394c..2c3d8f1749 100644 --- a/services/love/package.json +++ b/services/love/package.json @@ -32,7 +32,7 @@ "devDependencies": { "@tsconfig/node16": "^1.0.4", "cross-env": "~7.0.3", - "@types/cors": "^2.8.12", + "@types/cors": "^2.8.19", "@types/express": "^4.17.13", "@types/node": "^24.13.3", "@types/ws": "^8.18.1", @@ -74,7 +74,7 @@ "@hcengineering/server-core": "workspace:^0.7.19", "@hcengineering/server-storage": "workspace:^0.7.16", "@hcengineering/server-token": "workspace:^0.7.18", - "cors": "^2.8.5", + "cors": "^2.8.6", "dotenv": "^16.4.5", "express": "^4.21.2", "jwt-simple": "^0.5.6", diff --git a/services/mail/pod-mail-worker/package.json b/services/mail/pod-mail-worker/package.json index ae0088bdd7..f3637f3edd 100644 --- a/services/mail/pod-mail-worker/package.json +++ b/services/mail/pod-mail-worker/package.json @@ -33,7 +33,7 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@tsconfig/node16": "^1.0.4", - "@types/cors": "^2.8.12", + "@types/cors": "^2.8.19", "@types/express": "^4.17.13", "@types/jest": "^29.5.5", "@types/node": "^24.13.3", @@ -74,7 +74,7 @@ "@hcengineering/server-core": "workspace:^0.7.19", "@hcengineering/server-storage": "workspace:^0.7.16", "@hcengineering/server-token": "workspace:^0.7.18", - "cors": "^2.8.5", + "cors": "^2.8.6", "dotenv": "^16.4.5", "eml-parse-js": "^1.2.0-beta.0", "express": "^4.21.2", diff --git a/services/mail/pod-mail/package.json b/services/mail/pod-mail/package.json index 1e68568bc7..20db10199e 100644 --- a/services/mail/pod-mail/package.json +++ b/services/mail/pod-mail/package.json @@ -47,7 +47,7 @@ "ts-jest": "^29.1.1", "@types/jest": "^29.5.5", "@tsconfig/node16": "^1.0.4", - "@types/cors": "^2.8.12", + "@types/cors": "^2.8.19", "@types/express": "^4.17.13", "eslint-plugin-node": "^11.1.0", "typescript": "^5.9.3" @@ -59,7 +59,7 @@ "@hcengineering/analytics-service": "workspace:^0.7.19", "@hcengineering/core": "workspace:^0.7.26", "@hcengineering/server-core": "workspace:^0.7.19", - "cors": "^2.8.5", + "cors": "^2.8.6", "dotenv": "^16.4.5", "express": "^4.21.2", "lru-cache": "^11.1.0", diff --git a/services/notification/pod-notification/package.json b/services/notification/pod-notification/package.json index 765ca3dac4..f63963ba34 100644 --- a/services/notification/pod-notification/package.json +++ b/services/notification/pod-notification/package.json @@ -48,7 +48,7 @@ "ts-jest": "^29.1.1", "@types/jest": "^29.5.5", "@tsconfig/node16": "^1.0.4", - "@types/cors": "^2.8.12", + "@types/cors": "^2.8.19", "@types/express": "^4.17.13", "eslint-plugin-node": "^11.1.0", "@types/web-push": "^3.6.4" @@ -63,7 +63,7 @@ "@hcengineering/platform": "workspace:^0.7.20", "@hcengineering/server-core": "workspace:^0.7.19", "@hcengineering/server-token": "workspace:^0.7.18", - "cors": "^2.8.5", + "cors": "^2.8.6", "dotenv": "^16.4.5", "express": "^4.21.2", "web-push": "^3.6.7" diff --git a/services/payment/pod-payment/package.json b/services/payment/pod-payment/package.json index 4309eb3c64..6524e4d70f 100644 --- a/services/payment/pod-payment/package.json +++ b/services/payment/pod-payment/package.json @@ -33,7 +33,7 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@tsconfig/node16": "^1.0.4", - "@types/cors": "^2.8.12", + "@types/cors": "^2.8.19", "@types/express": "^4.17.13", "@types/express-rate-limit": "^6.0.0", "@types/node": "^24.13.3", @@ -68,7 +68,7 @@ "@hcengineering/platform": "workspace:^0.7.20", "@polar-sh/sdk": "^0.37.0", "stripe": "^17.3.1", - "cors": "^2.8.5", + "cors": "^2.8.6", "dotenv": "^16.4.5", "express": "^4.21.2", "express-rate-limit": "^7.4.0", diff --git a/services/print/pod-print/package.json b/services/print/pod-print/package.json index 07cd7b7704..1306a7f446 100644 --- a/services/print/pod-print/package.json +++ b/services/print/pod-print/package.json @@ -33,7 +33,7 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@tsconfig/node16": "^1.0.4", - "@types/cors": "^2.8.12", + "@types/cors": "^2.8.19", "@types/express": "^4.17.13", "@types/node": "^24.13.3", "@types/ws": "^8.18.1", @@ -63,7 +63,7 @@ "@hcengineering/server-guest-resources": "workspace:^0.7.0", "@hcengineering/platform": "workspace:^0.7.20", "@hcengineering/account-client": "workspace:^0.7.25", - "cors": "^2.8.5", + "cors": "^2.8.6", "dotenv": "^16.4.5", "express": "^4.21.2", "puppeteer": "^25.3.0", diff --git a/services/rekoni/package.json b/services/rekoni/package.json index 5e411b5d5d..78b14d1e20 100644 --- a/services/rekoni/package.json +++ b/services/rekoni/package.json @@ -38,7 +38,7 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/cors": "^2.8.12", + "@types/cors": "^2.8.19", "@types/express": "^4.17.13", "@types/html-to-text": "^8.1.1", "@types/node": "^24.13.3", @@ -68,7 +68,7 @@ "@anticrm/skillset": "^0.6.0", "@hcengineering/core": "workspace:^0.7.26", "body-parser": "^1.20.3", - "cors": "^2.8.5", + "cors": "^2.8.6", "dotenv": "^16.4.5", "email-addresses": "^5.0.0", "express": "^4.21.2", diff --git a/services/sign/pod-sign/package.json b/services/sign/pod-sign/package.json index 17e4b32219..3b3b3d4034 100644 --- a/services/sign/pod-sign/package.json +++ b/services/sign/pod-sign/package.json @@ -33,7 +33,7 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@tsconfig/node16": "^1.0.4", - "@types/cors": "^2.8.12", + "@types/cors": "^2.8.19", "@types/express": "^4.17.13", "@types/node": "^24.13.3", "@typescript-eslint/eslint-plugin": "^6.21.0", @@ -63,7 +63,7 @@ "@hcengineering/client-resources": "workspace:^0.7.19", "@hcengineering/server-client": "workspace:^0.7.16", "@hcengineering/account-client": "workspace:^0.7.25", - "cors": "^2.8.5", + "cors": "^2.8.6", "dotenv": "^16.4.5", "express": "^4.21.2", "@signpdf/signpdf": "^3.3.0", diff --git a/services/telegram-bot/pod-telegram-bot/package.json b/services/telegram-bot/pod-telegram-bot/package.json index 61c38297f0..28e0f8d24e 100644 --- a/services/telegram-bot/pod-telegram-bot/package.json +++ b/services/telegram-bot/pod-telegram-bot/package.json @@ -31,7 +31,7 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@tsconfig/node16": "^1.0.4", - "@types/cors": "^2.8.12", + "@types/cors": "^2.8.19", "@types/express": "^4.17.13", "@types/jest": "^29.5.5", "@types/node": "^24.13.3", @@ -78,7 +78,7 @@ "@hcengineering/text": "workspace:^0.7.19", "@hcengineering/api-client": "workspace:^0.7.25", "@telegraf/entity": "^0.5.0", - "cors": "^2.8.5", + "cors": "^2.8.6", "dotenv": "^16.4.5", "express": "^4.21.2", "htmlparser2": "^9.0.0", diff --git a/services/telegram/pod-telegram/package.json b/services/telegram/pod-telegram/package.json index 06b12d4d67..1c69b634d7 100644 --- a/services/telegram/pod-telegram/package.json +++ b/services/telegram/pod-telegram/package.json @@ -32,7 +32,7 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@tsconfig/node16": "^1.0.4", - "@types/cors": "^2.8.12", + "@types/cors": "^2.8.19", "@types/express": "^4.17.13", "@types/mime": "^3.0.1", "@types/node": "^24.13.3", @@ -69,7 +69,7 @@ "@hcengineering/mongo": "workspace:^0.7.16", "big-integer": "^1.6.51", "dotenv": "^16.4.5", - "cors": "^2.8.5", + "cors": "^2.8.6", "express": "^4.21.2", "htmlparser2": "^9.0.0", "jwt-simple": "^0.5.6", diff --git a/ws-tests/api-tests/package.json b/ws-tests/api-tests/package.json index dbb71e2702..3b98bf5c17 100644 --- a/ws-tests/api-tests/package.json +++ b/ws-tests/api-tests/package.json @@ -21,7 +21,7 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/compression": "~1.7.2", - "@types/cors": "^2.8.12", + "@types/cors": "^2.8.19", "@types/express": "^4.17.13", "@types/jest": "^29.5.5", "@types/node": "^24.13.3", From 09ca8ffbd9ed63fcef689a235f17c70aefc815d4 Mon Sep 17 00:00:00 2001 From: Alexander Onnikov Date: Sun, 23 Aug 2026 16:38:48 +0700 Subject: [PATCH 09/55] fix: replacde pdfjs with unpdf Signed-off-by: Alexander Onnikov (ported from TraceX 7065b79eed) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- services/rekoni/Dockerfile | 2 +- services/rekoni/esbuild.js | 4 +- services/rekoni/package.json | 9 +- .../rekoni/src/__tests__/docx.smoke.test.ts | 5 +- .../rekoni/src/__tests__/extractor.test_.ts | 7 +- services/rekoni/src/extractors/docx.ts | 4 +- services/rekoni/src/extractors/index.ts | 9 +- services/rekoni/src/extractpdf.ts | 166 +++++------------- services/rekoni/src/find-skills.ts | 89 ---------- services/rekoni/src/process.ts | 3 +- services/rekoni/src/server.ts | 32 ++-- 11 files changed, 89 insertions(+), 241 deletions(-) delete mode 100644 services/rekoni/src/find-skills.ts diff --git a/services/rekoni/Dockerfile b/services/rekoni/Dockerfile index bf2d0887bb..b8d10acd62 100644 --- a/services/rekoni/Dockerfile +++ b/services/rekoni/Dockerfile @@ -1,7 +1,7 @@ FROM platformcollective/rekoni-base:v20260821 WORKDIR /usr/src/app -RUN npm install --ignore-scripts=false --verbose pdfjs-dist@v6.2.108 --unsafe-perm +RUN npm install --ignore-scripts=false --verbose pdfjs-dist@v6.2.108 unpdf@~1.8.1 --unsafe-perm COPY bundle/bundle.js ./ EXPOSE 4004 diff --git a/services/rekoni/esbuild.js b/services/rekoni/esbuild.js index 2d0c6ca175..07d3c1a1e4 100644 --- a/services/rekoni/esbuild.js +++ b/services/rekoni/esbuild.js @@ -11,5 +11,5 @@ void esbuild.build({ loader: { ".node": "file" }, platform: 'node', outfile: 'bundle/bundle.js', - external: ['canvas', 'sharp', 'pdfjs-dist'] -}) \ No newline at end of file + external: ['canvas', 'sharp', 'pdfjs-dist', 'unpdf'] +}) diff --git a/services/rekoni/package.json b/services/rekoni/package.json index 78b14d1e20..14c2eb35e7 100644 --- a/services/rekoni/package.json +++ b/services/rekoni/package.json @@ -27,11 +27,10 @@ "check-ts": "tsc --noEmit", "lint": "eslint src", "lint:fix": "eslint --fix src", - "test": "jest --passWithNoTests --silent", + "test": "NODE_OPTIONS=--experimental-vm-modules jest --passWithNoTests --silent", "format": "format src", - "find-skills": "ts-node ./src/find-skills.ts", "_phase:build": "compile transpile src", - "_phase:test": "jest --passWithNoTests --silent", + "_phase:test": "NODE_OPTIONS=--experimental-vm-modules jest --passWithNoTests --silent", "_phase:format": "format src", "_phase:validate": "compile validate", "build:watch": "compile" @@ -83,9 +82,11 @@ "sharp": "~0.35.3", "morgan": "^1.10.0", "@hcengineering/server-core": "workspace:^0.7.19", + "@hcengineering/server-client": "workspace:^0.7.16", "@hcengineering/server-token": "workspace:^0.7.18", "@hcengineering/platform": "workspace:^0.7.20", - "@hcengineering/analytics-service": "workspace:^0.7.19" + "@hcengineering/analytics-service": "workspace:^0.7.19", + "unpdf": "~1.8.1" }, "description": "Document recognition service" } diff --git a/services/rekoni/src/__tests__/docx.smoke.test.ts b/services/rekoni/src/__tests__/docx.smoke.test.ts index 499ae6f49a..c000528a99 100644 --- a/services/rekoni/src/__tests__/docx.smoke.test.ts +++ b/services/rekoni/src/__tests__/docx.smoke.test.ts @@ -11,6 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import { MeasureMetricsContext } from '@hcengineering/core' import { readFile } from 'fs/promises' import { join } from 'path' import { extract } from '../extractors' @@ -18,11 +19,13 @@ import { extract } from '../extractors' const DOCX_TYPE = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' describe('docx extractor smoke', () => { + const ctx = new MeasureMetricsContext('test', {}) + it('extracts plain text from a minimal docx', async () => { const fName = join(__dirname, 'fixtures', 'minimal-smoke.docx') const data = await readFile(fName) - const { matched, content, error } = await extract('minimal-smoke.docx', DOCX_TYPE, data) + const { matched, content, error } = await extract(ctx, 'minimal-smoke.docx', DOCX_TYPE, data) expect(error).toBeUndefined() expect(matched).toBe(true) diff --git a/services/rekoni/src/__tests__/extractor.test_.ts b/services/rekoni/src/__tests__/extractor.test_.ts index 578e4e50a6..b00e89932c 100644 --- a/services/rekoni/src/__tests__/extractor.test_.ts +++ b/services/rekoni/src/__tests__/extractor.test_.ts @@ -16,14 +16,17 @@ import { readFile } from 'fs/promises' import { lookup } from 'mime-types' import { extract } from '../extractors' +import { MeasureMetricsContext } from '@hcengineering/core' describe('extractor-tests', () => { + const ctx = new MeasureMetricsContext('test', {}) + it('check docx', async () => { const fName = './demo/Резюме Власова Анатолия.docx' const data = await readFile(fName) const type = lookup(fName) - const { matched, content } = await extract(fName, type, data) + const { matched, content } = await extract(ctx, fName, type, data) expect(matched).toBe(true) expect(content).toContain('садовник') @@ -34,7 +37,7 @@ describe('extractor-tests', () => { const data = await readFile(fName) const type = lookup(fName) - const { matched, content } = await extract(fName, type, data) + const { matched, content } = await extract(ctx, fName, type, data) expect(matched).toBe(true) expect(content).toContain('kibana') diff --git a/services/rekoni/src/extractors/docx.ts b/services/rekoni/src/extractors/docx.ts index af581e44c4..2871affabc 100644 --- a/services/rekoni/src/extractors/docx.ts +++ b/services/rekoni/src/extractors/docx.ts @@ -35,10 +35,10 @@ export const docxExtractor: DocumentExtractor = { } ) - const text = convertString(htmlData.value) - return text + return convertString(htmlData.value) } } + function isType (type: string): boolean { return type === 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' } diff --git a/services/rekoni/src/extractors/index.ts b/services/rekoni/src/extractors/index.ts index f6ee170a1e..470b099726 100644 --- a/services/rekoni/src/extractors/index.ts +++ b/services/rekoni/src/extractors/index.ts @@ -5,6 +5,7 @@ import { htmlExtractor } from './html' import { pdfExtractor } from './pdf' import { rtfExtractor } from './rtf' import { DocumentExtractor } from './types' +import { MeasureContext } from '@hcengineering/core' export * from './types' const extractors: Record = { @@ -16,6 +17,7 @@ const extractors: Record = { } export async function extract ( + ctx: MeasureContext, fileName: string, type: string | false, data: Buffer @@ -23,17 +25,20 @@ export async function extract ( if (type === false) { return { matched: true, content: '', error: new Error('Unknown file type') } } - console.log('extracting text ', fileName, type) + + ctx.info('extracting text ', { fileName, type }) + for (const ex of Object.entries(extractors)) { if (await ex[1].isMatch(fileName, type, data)) { try { const content = await ex[1].extract(fileName, type, data) return { matched: true, content } } catch (err: any) { - console.log(err) + ctx.error('extract error', { err }) return { matched: true, content: '', error: err } } } } + return { matched: false, content: '' } } diff --git a/services/rekoni/src/extractpdf.ts b/services/rekoni/src/extractpdf.ts index 5ee052327c..b985ce1223 100644 --- a/services/rekoni/src/extractpdf.ts +++ b/services/rekoni/src/extractpdf.ts @@ -1,5 +1,6 @@ // // Copyright © 2022 Hardcore Engineering Inc. +// Copyright © 2026 TraceX SAS. // // 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 @@ -13,73 +14,50 @@ // limitations under the License. // -import { getDocument, OPS, type PDFPageProxy } from 'pdfjs-dist/legacy/build/pdf' -import { type TextItem, type TypedArray } from 'pdfjs-dist/types/src/display/api' import sharp from 'sharp' +import { + extractImages, + extractLinks, + extractTextItems, + getDocumentProxy, + getMeta, + type StructuredTextItem +} from 'unpdf' import { type RekoniModel } from './types' import { isPrivateCharCode } from './utils' -// Some PDFs need external cmaps. -const CMAP_URL = './node_modules/pdfjs-dist/cmaps/' -const CMAP_PACKED = true - -// Where the standard fonts are located. -const STANDARD_FONT_DATA_URL = './node_modules/pdfjs-dist/standard_fonts/' - /** * @public */ -export async function extractData (data: string | TypedArray): Promise { - const doc = await getDocument({ - data, - cMapUrl: CMAP_URL, - cMapPacked: CMAP_PACKED, - standardFontDataUrl: STANDARD_FONT_DATA_URL - }).promise - const meta = await doc.getMetadata() +export async function extractData (data: string | Uint8Array): Promise { + const doc = await getDocumentProxy(Buffer.isBuffer(data) ? new Uint8Array(data) : data) + const [meta, textItems, links] = await Promise.all([getMeta(doc), extractTextItems(doc), extractLinks(doc)]) const text: RekoniModel = { lines: [], annotations: [], images: [], - author: (meta.info as any).Author + author: typeof meta.info.Author === 'string' ? meta.info.Author : undefined } - const imageOps = [ - OPS.paintJpegXObject, - OPS.paintImageMaskXObject, - OPS.paintImageMaskXObjectGroup, - OPS.paintImageXObject, - OPS.paintInlineImageXObject, - OPS.paintInlineImageXObjectGroup, - OPS.paintImageXObjectRepeat, - OPS.paintImageMaskXObjectRepeat, - OPS.paintSolidColorImageMask - ] - - for (let i = 1; i <= doc.numPages; i++) { - const page = await doc.getPage(i) + for (const link of links.links) { + text.annotations.push({ type: 'link', value: link }) + } - await processAnnotations(page, text) - await processImages(page, imageOps, text) - await processPage(text, page) + for (const [pageIndex, items] of textItems.items.entries()) { + processPage(text, items) + await processImages(await extractImages(doc, pageIndex + 1), text) } return text } -async function processPage (text: RekoniModel, page: PDFPageProxy): Promise { - const textContent = await page.getTextContent({ - normalizeWhitespace: true, - disableCombineTextItems: false, - includeMarkedContent: false - }) - +function processPage (text: RekoniModel, items: StructuredTextItem[]): void { let lastY: number = 0 let ctext: string[] = [] let widths: number[] = [] let maxH = 0 - for (const item of textContent.items as TextItem[]) { + for (const item of items) { const str = item.str if (str.length === 1) { const code = str.charCodeAt(0) @@ -88,7 +66,7 @@ async function processPage (text: RekoniModel, page: PDFPageProxy): Promise 0) { ctext.push(item.str) widths.push(item.width) @@ -108,87 +86,33 @@ async function processPage (text: RekoniModel, page: PDFPageProxy): Promise { - const annotations = await page.getAnnotations({ intent: 'any' }) - for (const ann of annotations) { - if ((ann.subtype ?? '').toLowerCase() === 'link' && ann.url !== undefined) { - text.annotations.push({ type: ann.subtype.toLowerCase(), value: ann.url }) - } - } -} - -async function processImages (page: PDFPageProxy, imageOps: number[], text: RekoniModel): Promise { - const operators = await page.getOperatorList() - for (let i = 0; i < operators.fnArray.length; i++) { - const tt = operators.fnArray[i] - if (imageOps.includes(tt)) { - const obj = operators.argsArray[i][0] as string - let objData: any - if (obj.startsWith('g_')) { - objData = page.commonObjs.get(obj) - } else { - objData = page.objs.get(obj) +async function processImages (images: Awaited>, text: RekoniModel): Promise { + for (const image of images) { + const imageBuffer = Buffer.from(image.data.buffer, image.data.byteOffset, image.data.byteLength) + const img = sharp(imageBuffer, { + raw: { + width: image.width, + height: image.height, + channels: image.channels } - if (objData !== undefined) { - const width = objData.width - const height = objData.height - - const rawBuffer = processImageData(objData) - - const img = sharp(rawBuffer, { - raw: { - width, - height, - channels: 4 - } - }) - - const pngBuffer = await img.toFormat('png').toBuffer() - const buffer = await img.toFormat('jpeg').toBuffer() - - text.images.push({ - name: obj + '.jpeg', - width, - height, - buffer, - pngBuffer, - format: 'image/jpeg', - potentialAvatar: true - }) - } - } - } -} - -function processImageData (objData: any): Buffer { - const result = Buffer.alloc(objData.width * objData.height * 4) - if (objData.kind === 2) { - // ImageKind.RGB_24BPP) { - let pos = 0 - for (let i = 0; i < objData.data.length; i += 3) { - result[pos] = objData.data[i] - result[pos + 1] = objData.data[i + 1] - result[pos + 2] = objData.data[i + 2] - result[pos + 3] = 0xff - - pos += 4 - } - } else if (objData.kind === 3) { - // Util.ImageKind.RGBA_32BPP) { - let pos = 0 - for (let i = 0; i < objData.data.length; i += 4) { - result[pos] = objData.data[i] - result[pos + 1] = objData.data[i + 1] - result[pos + 2] = objData.data[i + 2] - result[pos + 3] = objData.data[i + 3] - - pos += 4 - } + }) + + const pngBuffer = await img.toFormat('png').toBuffer() + const buffer = await img.toFormat('jpeg').toBuffer() + + text.images.push({ + name: image.key + '.jpeg', + width: image.width, + height: image.height, + buffer, + pngBuffer, + format: 'image/jpeg', + potentialAvatar: true + }) } - return result } diff --git a/services/rekoni/src/find-skills.ts b/services/rekoni/src/find-skills.ts deleted file mode 100644 index ac82552210..0000000000 --- a/services/rekoni/src/find-skills.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { getCategories, SkillCategory } from '@anticrm/skillset' -import { existsSync, mkdirSync, readdirSync, readFileSync } from 'fs' -import { writeFile } from 'fs/promises' -import { join } from 'path' -import { extractDocument } from './process' - -const pdfDir = process.argv[2] - -const files = readdirSync(pdfDir) - -const skills = new Map() - -const formats = new Map() - -const resumesRoot = './resumes' -if (!existsSync(resumesRoot)) { - mkdirSync(resumesRoot) -} - -const categories = getCategories() - -async function readFiles (): Promise { - for (const filename of files) { - const pdfFile = join(pdfDir, filename) - const data = readFileSync(pdfFile) - - const { resume, model } = await extractDocument(data) - if (resume !== undefined) { - formats.set(resume.format, (formats.get(resume.format) ?? 0) + 1) - - console.log('resume for', resume.format, resume.firstName, resume.lastName) - if (resume.skills.length > 0) { - for (const s of resume.skills) { - // Check - const es = skills.get(s) ?? { count: 0, category: undefined } - es.count++ - if (es.category === undefined) { - // Try find category. - for (const c of categories) { - if (c.skills.findIndex((it) => it.toLowerCase() === s.toLowerCase()) !== -1) { - es.category = c - break - } - } - } - skills.set(s, es) - } - } - const path = [resumesRoot, resume.format] - if (resume.skills.length === 0) { - path.push('no-skills') - } else { - path.push('skills') - } - if (!existsSync(join(...path))) { - mkdirSync(join(...path), { recursive: true }) - } - await writeFile(join(...path, filename), data) - await writeFile(join(...path, filename + '.resume.json'), JSON.stringify(resume, undefined, 2)) - for (const img of model.images) { - await writeFile(join(...path, filename + '._' + img.name + '.png'), img.pngBuffer) - } - model.images = [] - await writeFile(join(...path, filename + '.model.json'), JSON.stringify(model, undefined, 2)) - } - } - const filteredSkills = Array.from(skills.entries()) - .filter((it) => it[1].count > 1) - .map((it) => it[0]) - - const raw = Array.from(skills.entries()) - raw.sort((a, b) => b[1].count - a[1].count) - - await writeFile('./skills.json', JSON.stringify(filteredSkills, undefined, 2)) - await writeFile( - './skills_raw.json', - JSON.stringify( - raw.map((it) => `${it[0]}-${it[1].count}-${(it[1].category?.label as string) ?? 'Unknown'}`), - undefined, - 2 - ) - ) - - console.log('Formats', Array.from(formats.entries())) -} - -readFiles().catch((err) => { - console.error(err) -}) diff --git a/services/rekoni/src/process.ts b/services/rekoni/src/process.ts index 09c71c20da..7c06ff9b73 100644 --- a/services/rekoni/src/process.ts +++ b/services/rekoni/src/process.ts @@ -13,7 +13,6 @@ // limitations under the License. // -import { type TypedArray } from 'pdfjs-dist/types/src/display/api' import { extractData } from './extractpdf' import { parseGenericResume } from './generic' import { isHeadHunter, parseHeadHunter } from './headhunter' @@ -23,7 +22,7 @@ import { isLinkedin, parseLinkedin } from './linkedin' import { capitalizeName } from './utils' export async function extractDocument ( - data: string | TypedArray + data: string | Uint8Array ): Promise<{ resume: ReconiDocument, model: RekoniModel }> { const resume: ReconiDocument = { format: 'unknown', diff --git a/services/rekoni/src/server.ts b/services/rekoni/src/server.ts index 43f9138a04..e2483d41fe 100644 --- a/services/rekoni/src/server.ts +++ b/services/rekoni/src/server.ts @@ -17,12 +17,13 @@ import { createOpenTelemetryMetricsContext, SplitLogger } from '@hcengineering/a import { newMetrics } from '@hcengineering/core' import { setMetadata } from '@hcengineering/platform' import { initStatisticsContext } from '@hcengineering/server-core' +import { extractToken } from '@hcengineering/server-client' import serverToken from '@hcengineering/server-token' import bodyParser from 'body-parser' import cors from 'cors' import express from 'express' import formData from 'express-form-data' -import { type IncomingHttpHeaders, type Server } from 'http' +import { type Server } from 'http' import morgan from 'morgan' import os from 'os' import { join } from 'path' @@ -31,24 +32,16 @@ import config from './config' import { ApiError } from './error' import { extract } from './extractors' import { parseGenericResume } from './generic' -import { decode } from './jwt' import { extractDocument } from './process' import { type ReconiDocument } from './types' // eslint-disable-next-line @typescript-eslint/no-var-requires -const extractToken = (header: IncomingHttpHeaders): any => { - try { - return header.authorization?.slice(7) ?? '' - } catch { - return undefined - } -} - export const startServer = async (): Promise => { const app = express() setMetadata(serverToken.metadata.Secret, process.env.SECRET) setMetadata(serverToken.metadata.Service, 'rekoni') + const ctx = initStatisticsContext('rekoni', { factory: () => createOpenTelemetryMetricsContext( @@ -127,9 +120,14 @@ export const startServer = async (): Promise => { // eslint-disable-next-line @typescript-eslint/no-misused-promises app.post('/recognize', async (req, res) => { const token = extractToken(req.headers) - decode(token) + if (token === undefined) { + res.status(401).send() + return + } + const params = req.body - console.log('recognize from', params.fileUrl) + + ctx.info('recognize', { url: params.fileUrl }) const contentType = req.body.type as string const name = req.body.name as string @@ -164,7 +162,7 @@ export const startServer = async (): Promise => { await extractQueue.add(async () => { res.set('Cache-Control', 'no-cache') try { - const { content, error } = await extract(name, contentType, body) + const { content, error } = await extract(ctx, name, contentType, body) if (error !== undefined) { res.status(400) res.json({ error: JSON.stringify(error) }) @@ -215,7 +213,11 @@ export const startServer = async (): Promise => { app.post('/toText', async (req, res) => { try { const token = extractToken(req.headers) - decode(token) + if (token === undefined) { + res.status(401).send() + return + } + const name = req.query.name as string const contentType = req.query.type as string const body = typeof req.body === 'string' ? Buffer.from(req.body, 'base64') : (req.body as Buffer) @@ -226,7 +228,7 @@ export const startServer = async (): Promise => { {}, () => extractQueue.add(async () => { - const { matched, content, error } = await extract(name, contentType, body) + const { matched, content, error } = await extract(ctx, name, contentType, body) if (error !== undefined) { res.status(400) } else { From 0729b6c9501d1aa19f26fd0d517b751f4856ee36 Mon Sep 17 00:00:00 2001 From: Alexander Onnikov Date: Mon, 24 Aug 2026 11:46:13 +0700 Subject: [PATCH 10/55] chore: update stream dependencies Signed-off-by: Alexander Onnikov (ported from TraceX 141d9a0b1f) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- foundations/stream/Dockerfile | 2 +- foundations/stream/go.mod | 113 ++++++++++++++++----------------- foundations/stream/go.sum | 114 ++++++++++++++++++++++++++++++++++ 3 files changed, 172 insertions(+), 57 deletions(-) diff --git a/foundations/stream/Dockerfile b/foundations/stream/Dockerfile index 20f502f8ad..b6cfcb6af8 100644 --- a/foundations/stream/Dockerfile +++ b/foundations/stream/Dockerfile @@ -11,7 +11,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM golang:1.24.4 AS base +FROM golang:1.26.7 AS base WORKDIR /app diff --git a/foundations/stream/go.mod b/foundations/stream/go.mod index 3c814adfa5..a5a743c28f 100644 --- a/foundations/stream/go.mod +++ b/foundations/stream/go.mod @@ -1,77 +1,78 @@ module github.com/hcengineering/stream -go 1.24.1 +go 1.26.7 require ( - github.com/aws/aws-sdk-go-v2 v1.36.1 - github.com/aws/aws-sdk-go-v2/config v1.29.6 - github.com/aws/aws-sdk-go-v2/credentials v1.17.59 - github.com/aws/aws-sdk-go-v2/service/s3 v1.77.0 - github.com/golang-jwt/jwt/v5 v5.2.2 + github.com/aws/aws-sdk-go-v2 v1.43.7 + github.com/aws/aws-sdk-go-v2/config v1.32.38 + github.com/aws/aws-sdk-go-v2/credentials v1.19.37 + github.com/aws/aws-sdk-go-v2/service/s3 v1.107.3 + github.com/golang-jwt/jwt/v5 v5.3.1 github.com/google/uuid v1.6.0 github.com/kelseyhightower/envconfig v1.4.0 github.com/pkg/errors v0.9.1 - github.com/segmentio/kafka-go v0.4.48 - github.com/stretchr/testify v1.11.1 - github.com/tus/tusd/v2 v2.6.0 - github.com/valyala/fasthttp v1.59.0 - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 - go.opentelemetry.io/otel v1.39.0 - go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.14.0 - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.38.0 - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0 - go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.14.0 - go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.38.0 - go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0 - go.opentelemetry.io/otel/log v0.14.0 - go.opentelemetry.io/otel/sdk v1.39.0 - go.opentelemetry.io/otel/sdk/log v0.14.0 - go.opentelemetry.io/otel/sdk/metric v1.39.0 - go.opentelemetry.io/otel/trace v1.39.0 - go.uber.org/zap v1.27.0 - golang.org/x/exp v0.0.0-20250215185904-eff6e970281f - gopkg.in/vansante/go-ffprobe.v2 v2.2.1 - k8s.io/utils v0.0.0-20241210054802-24370beab758 + github.com/segmentio/kafka-go v0.4.51 + github.com/stretchr/testify v1.12.1 + github.com/tus/tusd/v2 v2.10.0 + github.com/valyala/fasthttp v1.73.0 + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.67.0 + go.opentelemetry.io/otel v1.45.0 + go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.21.0 + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.45.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.45.0 + go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.21.0 + go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.45.0 + go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.45.0 + go.opentelemetry.io/otel/log v0.21.0 + go.opentelemetry.io/otel/sdk v1.45.0 + go.opentelemetry.io/otel/sdk/log v0.21.0 + go.opentelemetry.io/otel/sdk/metric v1.45.0 + go.opentelemetry.io/otel/trace v1.45.0 + go.uber.org/zap v1.28.0 + golang.org/x/exp v0.0.0-20260820142414-ca536658362e + gopkg.in/vansante/go-ffprobe.v2 v2.3.0 + k8s.io/utils v0.0.0-20260707023825-cf1189d6abe3 ) require ( - github.com/andybalholm/brotli v1.1.1 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.9 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.28 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.32 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.32 // indirect + github.com/andybalholm/brotli v1.2.2 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.18 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.38 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.38 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.38 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.2 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.32 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.6.0 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.13 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.13 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.24.15 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.14 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.33.14 // indirect - github.com/aws/smithy-go v1.22.3 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.39 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.17 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.31 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.38 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.39 // indirect + github.com/aws/aws-sdk-go-v2/service/signin v1.5.7 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.33.7 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.38.7 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.45.7 // indirect + github.com/aws/smithy-go v1.27.8 // indirect github.com/cenkalti/backoff/v5 v5.0.3 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/felixge/httpsnoop v1.0.4 // indirect - github.com/go-logr/logr v1.4.3 // indirect + github.com/go-logr/logr v1.4.4 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 // indirect - github.com/klauspost/compress v1.18.0 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0 // indirect + github.com/klauspost/compress v1.19.1 // indirect github.com/pierrec/lz4/v4 v4.1.22 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect go.opentelemetry.io/auto/sdk v1.2.1 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 // indirect - go.opentelemetry.io/otel/metric v1.39.0 // indirect - go.opentelemetry.io/proto/otlp v1.7.1 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.45.0 // indirect + go.opentelemetry.io/otel/metric v1.45.0 // indirect + go.opentelemetry.io/proto/otlp v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/net v0.48.0 // indirect - golang.org/x/sys v0.39.0 // indirect - golang.org/x/text v0.32.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 // indirect - google.golang.org/grpc v1.79.3 // indirect - google.golang.org/protobuf v1.36.10 // indirect + golang.org/x/net v0.57.0 // indirect + golang.org/x/sys v0.47.0 // indirect + golang.org/x/text v0.40.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20260803160001-6ac0973c030d // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260803160001-6ac0973c030d // indirect + google.golang.org/grpc v1.83.0 // indirect + google.golang.org/protobuf v1.36.11 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/foundations/stream/go.sum b/foundations/stream/go.sum index 60c4aadd18..44285c9c4e 100644 --- a/foundations/stream/go.sum +++ b/foundations/stream/go.sum @@ -2,42 +2,80 @@ github.com/Acconut/go-httptest-recorder v1.0.0 h1:TAv2dfnqp/l+SUvIaMAUK4GeN4+wqb github.com/Acconut/go-httptest-recorder v1.0.0/go.mod h1:CwQyhTH1kq/gLyWiRieo7c0uokpu3PXeyF/nZjUNtmM= github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= +github.com/andybalholm/brotli v1.2.2 h1:HzTuoo2ErYQqf5qvcJInB8uvqSVxRttzkFexPWtnceM= +github.com/andybalholm/brotli v1.2.2/go.mod h1:rzTDkvFWvIrjDXZHkuS16NPggd91W3kUSvPlQ1pLaKY= github.com/aws/aws-sdk-go-v2 v1.36.1 h1:iTDl5U6oAhkNPba0e1t1hrwAo02ZMqbrGq4k5JBWM5E= github.com/aws/aws-sdk-go-v2 v1.36.1/go.mod h1:5PMILGVKiW32oDzjj6RU52yrNrDPUHcbZQYr1sM7qmM= +github.com/aws/aws-sdk-go-v2 v1.43.7 h1:msCzvkeYJA9ehbV8mRRmkZLo/zJg/+yDVLNtflg83hQ= +github.com/aws/aws-sdk-go-v2 v1.43.7/go.mod h1:tXpPM+v0D1lndmga+HqqLDIzUFJlEeR21aspVklHF00= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.9 h1:VZPDrbzdsU1ZxhyWrvROqLY0nxFWgMCAzhn/nYz3X48= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.9/go.mod h1:3XkePX5dSaxveLAYY7nsbsZZrKxCyEuE5pM4ziFxyGg= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.18 h1:LAfOuhAH331fmOjTQpAaOlH+Ftn7RzSDJ2VFwjdMMy4= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.18/go.mod h1:4e5xhuXHx1e4U9EthvbPP1r/DIMp5c2823OL8karzcM= github.com/aws/aws-sdk-go-v2/config v1.29.6 h1:fqgqEKK5HaZVWLQoLiC9Q+xDlSp+1LYidp6ybGE2OGg= github.com/aws/aws-sdk-go-v2/config v1.29.6/go.mod h1:Ft+WLODzDQmCTHDvqAH1JfC2xxbZ0MxpZAcJqmE1LTQ= +github.com/aws/aws-sdk-go-v2/config v1.32.38 h1:n4yPHBjtQ3BrIIUyk0/LAqf/BL2iv0Tw6XZcMRzM0ps= +github.com/aws/aws-sdk-go-v2/config v1.32.38/go.mod h1:dencYsOS1R7rBy8zehCvwBYzdxxL4Q/nRK7In03wjN8= github.com/aws/aws-sdk-go-v2/credentials v1.17.59 h1:9btwmrt//Q6JcSdgJOLI98sdr5p7tssS9yAsGe8aKP4= github.com/aws/aws-sdk-go-v2/credentials v1.17.59/go.mod h1:NM8fM6ovI3zak23UISdWidyZuI1ghNe2xjzUZAyT+08= +github.com/aws/aws-sdk-go-v2/credentials v1.19.37 h1:FJ8Iz4/xISMB/rwLlgfWujfGDFWr0oneQgtA6KPcYLY= +github.com/aws/aws-sdk-go-v2/credentials v1.19.37/go.mod h1:Q6pWOgVUp49x4g5QVi29wHofUoICnZ+Zq4jHbRN/7ec= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.28 h1:KwsodFKVQTlI5EyhRSugALzsV6mG/SGrdjlMXSZSdso= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.28/go.mod h1:EY3APf9MzygVhKuPXAc5H+MkGb8k/DOSQjWS0LgkKqI= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.38 h1:Nqo2jU1wz5rnBM9XQyXfVD1RP8txkbP3EDx8hR/hbCE= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.38/go.mod h1:PzJFHhjR2vWFKHe8HmY5Lxhvwyxnr5MERtk0nDxWNbk= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.32 h1:BjUcr3X3K0wZPGFg2bxOWW3VPN8rkE3/61zhP+IHviA= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.32/go.mod h1:80+OGC/bgzzFFTUmcuwD0lb4YutwQeKLFpmt6hoWapU= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.38 h1:MBMg0zJ6i4TkAJ0dVFLKKn2cOkY6FkicmUDM67BRr6g= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.38/go.mod h1:9MWuJbyiUyj6eA7W1/zm1zuePDPSB3g+xcgRQeMWsXc= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.32 h1:m1GeXHVMJsRsUAqG6HjZWx9dj7F5TR+cF1bjyfYyBd4= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.32/go.mod h1:IitoQxGfaKdVLNg0hD8/DXmAqNy0H4K2H2Sf91ti8sI= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.38 h1:lHm4jPf3k1Lz5ZWc+Vcn3MKVwym+26kWCba9FkJ4f0Y= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.38/go.mod h1:Rn+P2XR+FbyZzjmWKjg/KUZNxmGfr5oZwh5jQiE+CzI= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.2 h1:Pg9URiobXy85kgFev3og2CuOZ8JZUBENF+dcgWBaYNk= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.2/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.32 h1:OIHj/nAhVzIXGzbAE+4XmZ8FPvro3THr6NlqErJc3wY= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.32/go.mod h1:LiBEsDo34OJXqdDlRGsilhlIiXR7DL+6Cx2f4p1EgzI= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.39 h1:vo4xvMRs/F6h1E52qsgLqCQgWIQXgIJUauG6rlZEh4U= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.39/go.mod h1:jB03R1ij/A+OE2e1dz6vgj076gd7vlYcfstAzj3HcnU= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2 h1:D4oz8/CzT9bAEYtVhSBmFj2dNOtaHOtMKc2vHBwYizA= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2/go.mod h1:Za3IHqTQ+yNcRHxu1OFucBh0ACZT4j4VQFF0BqpZcLY= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.17 h1:OvYZOB3qA6zvfdRFiRFRzVSiElMYrz3GdntkXZxlp1o= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.17/go.mod h1:JgR/2Ew50ACfIWau1oeMRX59tMtC0kM+PYQGEaT04cY= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.6.0 h1:kT2WeWcFySdYpPgyqJMSUE7781Qucjtn6wBvrgm9P+M= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.6.0/go.mod h1:WYH1ABybY7JK9TITPnk6ZlP7gQB8psI4c9qDmMsnLSA= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.31 h1:uZOinZb+h7lZw8IYzP1z1IuEnueB76/EFkcf/fEW4Ag= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.31/go.mod h1:NRtwAM/p5VRt03TlEUs0pH3TeWamWdf4YyJpSrzPYLc= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.13 h1:SYVGSFQHlchIcy6e7x12bsrxClCXSP5et8cqVhL8cuw= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.13/go.mod h1:kizuDaLX37bG5WZaoxGPQR/LNFXpxp0vsUnqfkWXfNE= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.38 h1:H/5TI1jqaHsNoDQ60UwvPvJBg4GURkinXI3Qga29t2w= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.38/go.mod h1:PTVFf+XH++7NJOky+RLBYQx0QA5NcaeEYFQ2fsi0nwo= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.13 h1:OBsrtam3rk8NfBEq7OLOMm5HtQ9Yyw32X4UQMya/wjw= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.13/go.mod h1:3U4gFA5pmoCOja7aq4nSaIAGbaOHv2Yl2ug018cmC+Q= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.39 h1:HLPAVrlLDaN2boN0xJx7MgaQDNEO3Q+c9L6kl/8m47Q= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.39/go.mod h1:Pg/dVfsNkm1hsIDK/gMvCKtmyNfNTV12mrgHqVE/6Oo= github.com/aws/aws-sdk-go-v2/service/s3 v1.77.0 h1:RCOi1rDmLqOICym/6UeS2cqKED4T4m966w2rl1HfL+g= github.com/aws/aws-sdk-go-v2/service/s3 v1.77.0/go.mod h1:VC4EKSHqT3nzOcU955VWHMGsQ+w67wfAUBSjC8NOo8U= +github.com/aws/aws-sdk-go-v2/service/s3 v1.107.3 h1:IKoCZqfWfZzSBi16QFQ+QcbQ3LRQ7QgB1S5tDAyPBQQ= +github.com/aws/aws-sdk-go-v2/service/s3 v1.107.3/go.mod h1:RBpRcXiM4s2pOInVs32GsBonnje+fiAj4mcrStRmlCA= +github.com/aws/aws-sdk-go-v2/service/signin v1.5.7 h1:YcczQ6zNH/ojIzD/ikDrO+RfW06wmdMp18d4NH5hXY4= +github.com/aws/aws-sdk-go-v2/service/signin v1.5.7/go.mod h1:nl9RVnb9ulgAYzOkjLq1NyFxmWcnH2maCUEuOdESy98= github.com/aws/aws-sdk-go-v2/service/sso v1.24.15 h1:/eE3DogBjYlvlbhd2ssWyeuovWunHLxfgw3s/OJa4GQ= github.com/aws/aws-sdk-go-v2/service/sso v1.24.15/go.mod h1:2PCJYpi7EKeA5SkStAmZlF6fi0uUABuhtF8ILHjGc3Y= +github.com/aws/aws-sdk-go-v2/service/sso v1.33.7 h1:P+bMNiA93gyuYT3Oh+4dWtvrnGcu2bd9Uy5hRJM8BNo= +github.com/aws/aws-sdk-go-v2/service/sso v1.33.7/go.mod h1:zy+397isDFLvleg9H18Zq2MGzMso7uKyJyzR7DWSgFk= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.14 h1:M/zwXiL2iXUrHputuXgmO94TVNmcenPHxgLXLutodKE= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.14/go.mod h1:RVwIw3y/IqxC2YEXSIkAzRDdEU1iRabDPaYjpGCbCGQ= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.38.7 h1:WWkehGZ4nWtOKLMy0yi8+RqzzVqAGe60hGaxwF06JAw= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.38.7/go.mod h1:T8AI4SbQYm9ybcVmki2T3n7Qg1g3kfWoeQlNwNYOyO8= github.com/aws/aws-sdk-go-v2/service/sts v1.33.14 h1:TzeR06UCMUq+KA3bDkujxK1GVGy+G8qQN/QVYzGLkQE= github.com/aws/aws-sdk-go-v2/service/sts v1.33.14/go.mod h1:dspXf/oYWGWo6DEvj98wpaTeqt5+DMidZD0A9BYTizc= +github.com/aws/aws-sdk-go-v2/service/sts v1.45.7 h1:yU/9y2r7s9kSUPbHXbpQTa4LA8kt+CMgpu1OBrhx8p4= +github.com/aws/aws-sdk-go-v2/service/sts v1.45.7/go.mod h1:0lQTDEBArMevQXpxu443LVGjKxxEeSsSnrw9n8YiTMg= github.com/aws/smithy-go v1.22.3 h1:Z//5NuZCSW6R4PhQ93hShNbyBbn8BWCmCVCt+Q8Io5k= github.com/aws/smithy-go v1.22.3/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI= +github.com/aws/smithy-go v1.27.8 h1:FR0dxZfIlV7Z8eh2iHfIofdunw382XsDV3Mxt9nUvRY= +github.com/aws/smithy-go v1.27.8/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM= github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= @@ -45,15 +83,21 @@ github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XL github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.4 h1:tG4xh9yMsRCAiodLVTxyrkzSZ9+o0L1Kg/+cPVcbP/8= +github.com/go-logr/logr v1.4.4/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8= github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= +github.com/golang-jwt/jwt/v5 v5.3.1 h1:kYf81DTWFe7t+1VvL7eS+jKFVWaUnK9cB1qbwn63YCY= +github.com/golang-jwt/jwt/v5 v5.3.1/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= @@ -64,11 +108,15 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 h1:8Tjv8EJ+pM1xP8mK6egEbD1OgnVTyacbefKhmbLhIhU= github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2/go.mod h1:pkJQ2tZHJ0aFOVEEot6oZmaVEZcRme73eIFmhiVuRWs= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0 h1:5VipnvEpbqr2gA2VbM+nYVbkIF28c5ZQfqCBQ5g2xfk= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0/go.mod h1:Hyl3n6Twe1hvtd9XUXDec4pTvgMSEixRuQKPTMH2bNs= github.com/kelseyhightower/envconfig v1.4.0 h1:Im6hONhd3pLkfDFsbRgu68RDNkGF1r3dvMUtDTo2cv8= github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg= github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= +github.com/klauspost/compress v1.19.1 h1:VsB4HPswih7mmZ8WleSFQ75c/Ui1M4trX5oAsJnhSlk= +github.com/klauspost/compress v1.19.1/go.mod h1:cwPg85FWrGar70rWktvGQj8/hthj3wpl0PGDogxkrSQ= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -80,22 +128,32 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= github.com/segmentio/kafka-go v0.4.48 h1:9jyu9CWK4W5W+SroCe8EffbrRZVqAOkuaLd/ApID4Vs= github.com/segmentio/kafka-go v0.4.48/go.mod h1:HjF6XbOKh0Pjlkr5GVZxt6CsjjwnmhVOfURM5KMd8qg= +github.com/segmentio/kafka-go v0.4.51 h1:JgDPPG75tC1rWIS2Me6MwcvXJ6f49UQ4HjAOef71Hno= +github.com/segmentio/kafka-go v0.4.51/go.mod h1:Y1gn60kzLEEaW28YshXyk2+VCUKbJ3Qr6DrnT3i4+9E= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= +github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= github.com/tus/tusd/v2 v2.6.0 h1:Je243QDKnFTvm/WkLH2bd1oQ+7trolrflRWyuI0PdWI= github.com/tus/tusd/v2 v2.6.0/go.mod h1:1Eb1lBoSRBfYJ/mQfFVjyw8ZdNMdBqW17vgQKl3Ah9g= +github.com/tus/tusd/v2 v2.10.0 h1:2yOGmkrDl9RQmRIt/00DR2WvYWOoiEu3CoygILb+WRw= +github.com/tus/tusd/v2 v2.10.0/go.mod h1:T/OuJHIAC2NHpkEUyQyyaoWyDNRDcQVpJzWl8tX5GY4= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasthttp v1.59.0 h1:Qu0qYHfXvPk1mSLNqcFtEk6DpxgA26hy6bmydotDpRI= github.com/valyala/fasthttp v1.59.0/go.mod h1:GTxNb9Bc6r2a9D0TWNSPwDz78UxnTGBViY3xZNEqyYU= +github.com/valyala/fasthttp v1.73.0 h1:ocTOORnBWtJ+P8t/6wAjdkchMzdfHmWx2VD/DPbgZ7s= +github.com/valyala/fasthttp v1.73.0/go.mod h1:EtXQDHaR+5P18p8wqDRFpUhxr108Ga9mXvVJXHRrN2k= github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY= @@ -109,49 +167,86 @@ go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 h1:RbKq8BG0FI8OiXhBfcRtqqHcZcka+gU3cskNuf05R18= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0/go.mod h1:h06DGIukJOevXaj/xrNjhi/2098RZzcLTbc0jDAUbsg= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.67.0 h1:OyrsyzuttWTSur2qN/Lm0m2a8yqyIjUVBZcxFPuXq2o= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.67.0/go.mod h1:C2NGBr+kAB4bk3xtMXfZ94gqFDtg/GkI7e9zqGh5Beg= go.opentelemetry.io/otel v1.39.0 h1:8yPrr/S0ND9QEfTfdP9V+SiwT4E0G7Y5MO7p85nis48= go.opentelemetry.io/otel v1.39.0/go.mod h1:kLlFTywNWrFyEdH0oj2xK0bFYZtHRYUdv1NklR/tgc8= +go.opentelemetry.io/otel v1.45.0 h1:pdrWmLHofpubmArBv1LgFSv1Z0Ie/ppdZzu+kUN5EeU= +go.opentelemetry.io/otel v1.45.0/go.mod h1:XZxIqPapzEYnhNSScF5DIqXhm/rYi0FzCe2XddAwZfQ= go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.14.0 h1:QQqYw3lkrzwVsoEX0w//EhH/TCnpRdEenKBOOEIMjWc= go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.14.0/go.mod h1:gSVQcr17jk2ig4jqJ2DX30IdWH251JcNAecvrqTxH1s= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.21.0 h1:fvNHGyo3CdRv/DQveXqhqBxnKTDyRaC5sMSQxilX/A0= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.21.0/go.mod h1:zyGrjRKL2B/6+Jc/m4/otPoZqV2MY9ZjC/aBraRO7zc= go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.38.0 h1:Oe2z/BCg5q7k4iXC3cqJxKYg0ieRiOqF0cecFYdPTwk= go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.38.0/go.mod h1:ZQM5lAJpOsKnYagGg/zV2krVqTtaVdYdDkhMoX6Oalg= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.45.0 h1:pnxy6c/kvNBWdNNFzqpjuJLm9Hjhgk/Q0nY221rwuk0= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.45.0/go.mod h1:qw6YsFapotRwoDhXRZvljzaOvCQB7UfnafEJagpN2TA= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 h1:GqRJVj7UmLjCVyVJ3ZFLdPRmhDUp2zFmQe3RHIOsw24= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0/go.mod h1:ri3aaHSmCTVYu2AWv44YMauwAQc0aqI9gHKIcSbI1pU= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.45.0 h1:QRefszxJmfPdjXUUm3j6iDzY03mTPXMjqErFqQ67vUg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.45.0/go.mod h1:Tiz03lTBVBrm7eWZBOidzEaYaJa8tjwGUGv6d8mlTyk= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0 h1:aTL7F04bJHUlztTsNGJ2l+6he8c+y/b//eR0jjjemT4= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0/go.mod h1:kldtb7jDTeol0l3ewcmd8SDvx3EmIE7lyvqbasU3QC4= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.45.0 h1:QBajQ2SrwQijzHyZbQlPsuIzpl/ll8DY6wPWsajeGcI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.45.0/go.mod h1:08ZQLjrPLQ6R4kAXvuOvODEer5Yh4CoFvll5qB2BCI8= go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.14.0 h1:B/g+qde6Mkzxbry5ZZag0l7QrQBCtVm7lVjaLgmpje8= go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.14.0/go.mod h1:mOJK8eMmgW6ocDJn6Bn11CcZ05gi3P8GylBXEkZtbgA= +go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.21.0 h1:2lpf4hnrasYIsUyEXwnTZq5lsxrMm4T2Bwb06IctAZQ= +go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.21.0/go.mod h1:YWOW6h7jwApz9Pl76ie/izUsSPj0s2MdIlpqbPqaf3U= go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.38.0 h1:wm/Q0GAAykXv83wzcKzGGqAnnfLFyFe7RslekZuv+VI= go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.38.0/go.mod h1:ra3Pa40+oKjvYh+ZD3EdxFZZB0xdMfuileHAm4nNN7w= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.45.0 h1:dm9iyzn6tioYZtwqaiBSU0TSI8Yu/8dTIbfG0+B49DY= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.45.0/go.mod h1:xAvxYjYK28qvt+yu4BYZ/zMmAjwMXINXD6JiMyeB8iI= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0 h1:kJxSDN4SgWWTjG/hPp3O7LCGLcHXFlvS2/FFOrwL+SE= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0/go.mod h1:mgIOzS7iZeKJdeB8/NYHrJ48fdGc71Llo5bJ1J4DWUE= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.45.0 h1:lsA/S1bxgdbyFGkTj+3meEdJ6ADVU7QoFstV6MXgE68= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.45.0/go.mod h1:L7u+MirGoB1bjeLH66+xDykF4RC8C3RN7lIFpBiewUo= go.opentelemetry.io/otel/log v0.14.0 h1:2rzJ+pOAZ8qmZ3DDHg73NEKzSZkhkGIua9gXtxNGgrM= go.opentelemetry.io/otel/log v0.14.0/go.mod h1:5jRG92fEAgx0SU/vFPxmJvhIuDU9E1SUnEQrMlJpOno= +go.opentelemetry.io/otel/log v0.21.0 h1:SLsVDGmtyBrdw8/a2Z0bOIxou/+bN4z56GebH7T0LvA= +go.opentelemetry.io/otel/log v0.21.0/go.mod h1:iReetQrZL9Wyg84cCkOoCmqDHS5RCFfyxC7J+r8fn8g= go.opentelemetry.io/otel/metric v1.39.0 h1:d1UzonvEZriVfpNKEVmHXbdf909uGTOQjA0HF0Ls5Q0= go.opentelemetry.io/otel/metric v1.39.0/go.mod h1:jrZSWL33sD7bBxg1xjrqyDjnuzTUB0x1nBERXd7Ftcs= +go.opentelemetry.io/otel/metric v1.45.0 h1:7Eg1uH7CJ5cXv9is6tnBe1FI6rj1nwUdbFypRm3br/M= +go.opentelemetry.io/otel/metric v1.45.0/go.mod h1:HAPbm1nd3p1PmFH7v2dR+6BjXxw+Lq4a2+pndMAm08s= go.opentelemetry.io/otel/sdk v1.39.0 h1:nMLYcjVsvdui1B/4FRkwjzoRVsMK8uL/cj0OyhKzt18= go.opentelemetry.io/otel/sdk v1.39.0/go.mod h1:vDojkC4/jsTJsE+kh+LXYQlbL8CgrEcwmt1ENZszdJE= +go.opentelemetry.io/otel/sdk v1.45.0 h1:4VVSMgQ83dUgW2aoX5f6JgLvHwIvzcuLnF9lUdCSpCw= +go.opentelemetry.io/otel/sdk v1.45.0/go.mod h1:Sr40LgXV7DsKMMJMKOhUWOgMWTfAaqvm2kF0g7ilwuA= go.opentelemetry.io/otel/sdk/log v0.14.0 h1:JU/U3O7N6fsAXj0+CXz21Czg532dW2V4gG1HE/e8Zrg= go.opentelemetry.io/otel/sdk/log v0.14.0/go.mod h1:imQvII+0ZylXfKU7/wtOND8Hn4OpT3YUoIgqJVksUkM= +go.opentelemetry.io/otel/sdk/log v0.21.0 h1:QsE7XSR0ktQdKmRKGnR+f1ObGF32WG+7MER/P9KgmYc= +go.opentelemetry.io/otel/sdk/log v0.21.0/go.mod h1:m9mApjCoD2/1QuKCAptjv+BrG9WKOvQLVdNx+iBldTo= go.opentelemetry.io/otel/sdk/log/logtest v0.14.0 h1:Ijbtz+JKXl8T2MngiwqBlPaHqc4YCaP/i13Qrow6gAM= go.opentelemetry.io/otel/sdk/log/logtest v0.14.0/go.mod h1:dCU8aEL6q+L9cYTqcVOk8rM9Tp8WdnHOPLiBgp0SGOA= +go.opentelemetry.io/otel/sdk/log/logtest v0.21.0 h1:X+JBBgKlswCGYsmgL0CnoUUtlE//VB345c84jYAYkdQ= go.opentelemetry.io/otel/sdk/metric v1.39.0 h1:cXMVVFVgsIf2YL6QkRF4Urbr/aMInf+2WKg+sEJTtB8= go.opentelemetry.io/otel/sdk/metric v1.39.0/go.mod h1:xq9HEVH7qeX69/JnwEfp6fVq5wosJsY1mt4lLfYdVew= +go.opentelemetry.io/otel/sdk/metric v1.45.0 h1:oVFszMfyj1Am6s24Vtc7wBb8BKLcwepJjNEYILuiE3o= +go.opentelemetry.io/otel/sdk/metric v1.45.0/go.mod h1:vUWUxDZvu1WVRj8JA8S0AdhsPrZoDpA2DdZauIh4mDA= go.opentelemetry.io/otel/trace v1.39.0 h1:2d2vfpEDmCJ5zVYz7ijaJdOF59xLomrvj7bjt6/qCJI= go.opentelemetry.io/otel/trace v1.39.0/go.mod h1:88w4/PnZSazkGzz/w84VHpQafiU4EtqqlVdxWy+rNOA= +go.opentelemetry.io/otel/trace v1.45.0 h1:l/mP6Uv7oNO7/TblbhpbgMidxhq1uO/rPsikOyVhxag= +go.opentelemetry.io/otel/trace v1.45.0/go.mod h1:qoJJA2xNMnxRrdISU/kLtfUH2wNeQbiv+jhs/CxI8bc= go.opentelemetry.io/proto/otlp v1.7.1 h1:gTOMpGDb0WTBOP8JaO72iL3auEZhVmAQg4ipjOVAtj4= go.opentelemetry.io/proto/otlp v1.7.1/go.mod h1:b2rVh6rfI/s2pHWNlB7ILJcRALpcNDzKhACevjI+ZnE= +go.opentelemetry.io/proto/otlp v1.11.0 h1:5rrYs0Ykyj50sdU/JU0x8etU+LubXWb+gED6TbEdMIk= +go.opentelemetry.io/proto/otlp v1.11.0/go.mod h1:SmVizdCOAm3XBtG1g1NnOdhW6jtddT72hLMhv8VwA8E= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= +go.uber.org/zap v1.28.0 h1:IZzaP1Fv73/T/pBMLk4VutPl36uNC+OSUh3JLG3FIjo= +go.uber.org/zap v1.28.0/go.mod h1:rDLpOi171uODNm/mxFcuYWxDsqWSAVkFdX4XojSKg/Q= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/exp v0.0.0-20250215185904-eff6e970281f h1:oFMYAjX0867ZD2jcNiLBrI9BdpmEkvPyi5YrBGXbamg= golang.org/x/exp v0.0.0-20250215185904-eff6e970281f/go.mod h1:BHOTPb3L19zxehTsLoJXVaTktb06DFgmdW6Wb9s8jqk= +golang.org/x/exp v0.0.0-20260820142414-ca536658362e h1:01Ju2A/fZKkci4zqx0eZxw//DnRYOnBiGJG14hFBhO8= +golang.org/x/exp v0.0.0-20260820142414-ca536658362e/go.mod h1:zeBbvyFKDaLwa7CH/zI8KXt7gTl14SF7sO08Pl5jBCM= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -162,6 +257,8 @@ golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU= golang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY= +golang.org/x/net v0.57.0 h1:K5+3DljvIuDG9/Jv9rvyMywYNFCQ9RSUY6OOTTkT+tE= +golang.org/x/net v0.57.0/go.mod h1:KpXc8iv+r3XplLAG/f7Jsf9RPszJzdR0f58q9vGOuEU= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -175,6 +272,8 @@ golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.39.0 h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk= golang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs= +golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= @@ -189,6 +288,8 @@ golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.32.0 h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU= golang.org/x/text v0.32.0/go.mod h1:o/rUWzghvpD5TXrTIBuJU77MTaN0ljMWE47kxGJQ7jY= +golang.org/x/text v0.40.0 h1:Ub2Z6/xjgF1WrYQz2nuITOEegKFtiIy+rieRJ5lHZKs= +golang.org/x/text v0.40.0/go.mod h1:hpnzDAfGV753zIKo+wk3u1bVKCGPbrnF7+7LBF/UHVY= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= @@ -196,21 +297,34 @@ golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= +gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217 h1:fCvbg86sFXwdrl5LgVcTEvNC+2txB5mgROGmRL5mrls= google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:+rXWjjaukWZun3mLfjmVnQi18E1AsFbDN9QdJ5YXLto= +google.golang.org/genproto/googleapis/api v0.0.0-20260803160001-6ac0973c030d h1:FarXi840EJWSHYTN3ERkADbPWjl307+FGrA22KAVjjc= +google.golang.org/genproto/googleapis/api v0.0.0-20260803160001-6ac0973c030d/go.mod h1:K/+WGbmBY7aNW1HDw1fJnKYo10i0DkAX6pows00dLig= google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 h1:gRkg/vSppuSQoDjxyiGfN4Upv/h/DQmIR10ZU8dh4Ww= google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260803160001-6ac0973c030d h1:IL4hdHzcUv2l/gcg98/Rj3FbtE6axwqslOW8SW0C+S0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260803160001-6ac0973c030d/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE= google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= +google.golang.org/grpc v1.83.0 h1:JeNZEKJFbQxArAMl+hiytHauacDNqJUllNfmIMmpqnQ= +google.golang.org/grpc v1.83.0/go.mod h1:kDyl6SKsiHKt0uylY5gtn5cEjkrIOhQOGDgIc4JGwzQ= google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE= google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= +google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= +google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/vansante/go-ffprobe.v2 v2.2.1 h1:sFV08OT1eZ1yroLCZVClIVd9YySgCh9eGjBWO0oRayI= gopkg.in/vansante/go-ffprobe.v2 v2.2.1/go.mod h1:qF0AlAjk7Nqzqf3y333Ly+KxN3cKF2JqA3JT5ZheUGE= +gopkg.in/vansante/go-ffprobe.v2 v2.3.0 h1:YhEzASq5eN8m73j/WqhRbqzJrx5gaqRueHZ9ZC53o/o= +gopkg.in/vansante/go-ffprobe.v2 v2.3.0/go.mod h1:qF0AlAjk7Nqzqf3y333Ly+KxN3cKF2JqA3JT5ZheUGE= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= k8s.io/utils v0.0.0-20241210054802-24370beab758 h1:sdbE21q2nlQtFh65saZY+rRM6x6aJJI8IUa1AmH/qa0= k8s.io/utils v0.0.0-20241210054802-24370beab758/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/utils v0.0.0-20260707023825-cf1189d6abe3 h1:jVkFFVfXdXP74B/zbO3hM3hpSFD0xvhQ5U686DPurkE= +k8s.io/utils v0.0.0-20260707023825-cf1189d6abe3/go.mod h1:M2s5JB1lIYP3jzZdorPLHXIPJzt9vv2muW5a6L9DtNM= From 52884cc6994c77e48abaa25cadf31f02a854c864 Mon Sep 17 00:00:00 2001 From: Alexander Onnikov Date: Mon, 24 Aug 2026 12:11:06 +0700 Subject: [PATCH 11/55] chore: update link-preview dependencies Signed-off-by: Alexander Onnikov (ported from TraceX 5f157b3198) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- .../net/common/config/rush/pnpm-lock.yaml | 1153 ++++++++++++----- foundations/net/packages/backrpc/package.json | 2 +- foundations/net/packages/client/package.json | 2 +- foundations/net/packages/core/package.json | 2 +- foundations/net/packages/server/package.json | 2 +- foundations/net/pods/network-pod/package.json | 2 +- .../net/pods/network-tool/package.json | 2 +- foundations/net/tests/package.json | 2 +- .../utils/common/config/rush/pnpm-lock.yaml | 86 +- pods/link-preview/package.json | 6 +- pods/preview/package.json | 2 +- pods/server/package.json | 2 +- server/front/package.json | 2 +- services/backup/backup-api-pod/package.json | 2 +- services/billing/pod-billing/package.json | 2 +- services/datalake/pod-datalake/package.json | 2 +- services/payment/pod-payment/package.json | 2 +- services/rekoni/package.json | 2 +- 18 files changed, 876 insertions(+), 399 deletions(-) diff --git a/foundations/net/common/config/rush/pnpm-lock.yaml b/foundations/net/common/config/rush/pnpm-lock.yaml index a1a1947a1f..3ebbd85b07 100644 --- a/foundations/net/common/config/rush/pnpm-lock.yaml +++ b/foundations/net/common/config/rush/pnpm-lock.yaml @@ -23,11 +23,11 @@ importers: version: link:../packages/server devDependencies: '@types/node': - specifier: ^22.18.1 - version: 22.18.1 + specifier: ^24.13.3 + version: 24.13.3 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@22.18.1)(typescript@5.9.2) + version: 10.9.2(@types/node@24.13.3)(typescript@5.9.2) typescript: specifier: ^5.9.2 version: 5.9.2 @@ -38,36 +38,33 @@ importers: specifier: workspace:^0.7.10 version: link:../core uuid: - specifier: ^8.3.2 - version: 8.3.2 + specifier: ^11.1.1 + version: 11.1.1 zeromq: specifier: ^6.5.0 version: 6.5.0 devDependencies: '@hcengineering/platform-rig': - specifier: ^0.7.8 - version: 0.7.8(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2))(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint-config-standard-with-typescript@40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.2))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.6.2) + specifier: ^0.7.21 + version: 0.7.423(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.26)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.26)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/jest': specifier: ^29.5.5 version: 29.5.14 '@types/node': - specifier: ^22.15.29 - version: 22.18.1 - '@types/uuid': - specifier: ^8.3.1 - version: 8.3.4 + specifier: ^24.13.3 + version: 24.13.3 '@typescript-eslint/eslint-plugin': specifier: ^6.11.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2) + version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^6.11.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.2) + version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) eslint: specifier: ^8.54.0 version: 8.57.1 eslint-config-standard-with-typescript: specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.2) + version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) eslint-plugin-import: specifier: ^2.26.0 version: 2.32.0(eslint@8.57.1) @@ -79,19 +76,19 @@ importers: version: 6.6.0(eslint@8.57.1) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.1)(ts-node@10.9.2(@types/node@22.18.1)(typescript@5.9.2)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) prettier: - specifier: ^3.1.0 + specifier: ^3.6.2 version: 3.6.2 simplytyped: specifier: ^3.3.0 - version: 3.3.0(typescript@5.9.2) + version: 3.3.0(typescript@5.9.3) ts-jest: specifier: ^29.1.1 - version: 29.4.1(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.24.2)(jest-util@29.7.0)(jest@29.7.0(@types/node@22.18.1)(ts-node@10.9.2(@types/node@22.18.1)(typescript@5.9.2)))(typescript@5.9.2) + version: 29.4.1(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.24.2)(jest-util@29.7.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) typescript: - specifier: ^5.8.3 - version: 5.9.2 + specifier: ^5.9.3 + version: 5.9.3 ../../packages/client: dependencies: @@ -102,33 +99,30 @@ importers: specifier: workspace:^0.7.10 version: link:../core uuid: - specifier: ^8.3.2 - version: 8.3.2 + specifier: ^14.0.2 + version: 14.0.2 devDependencies: '@hcengineering/platform-rig': - specifier: ^0.7.8 - version: 0.7.8(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2))(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint-config-standard-with-typescript@40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.2))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.6.2) + specifier: ^0.7.21 + version: 0.7.423(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.26)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.26)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/jest': specifier: ^29.5.5 version: 29.5.14 '@types/node': - specifier: ^22.15.29 - version: 22.18.1 - '@types/uuid': - specifier: ^8.3.1 - version: 8.3.4 + specifier: ^24.13.3 + version: 24.13.3 '@typescript-eslint/eslint-plugin': specifier: ^6.11.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2) + version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^6.11.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.2) + version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) eslint: specifier: ^8.54.0 version: 8.57.1 eslint-config-standard-with-typescript: specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.2) + version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) eslint-plugin-import: specifier: ^2.26.0 version: 2.32.0(eslint@8.57.1) @@ -140,50 +134,47 @@ importers: version: 6.6.0(eslint@8.57.1) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.1)(ts-node@10.9.2(@types/node@22.18.1)(typescript@5.9.2)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) prettier: - specifier: ^3.1.0 + specifier: ^3.6.2 version: 3.6.2 simplytyped: specifier: ^3.3.0 - version: 3.3.0(typescript@5.9.2) + version: 3.3.0(typescript@5.9.3) ts-jest: specifier: ^29.1.1 - version: 29.4.1(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.24.2)(jest-util@29.7.0)(jest@29.7.0(@types/node@22.18.1)(ts-node@10.9.2(@types/node@22.18.1)(typescript@5.9.2)))(typescript@5.9.2) + version: 29.4.1(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.24.2)(jest-util@29.7.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) typescript: - specifier: ^5.8.3 - version: 5.9.2 + specifier: ^5.9.3 + version: 5.9.3 ../../packages/core: dependencies: uuid: - specifier: ^8.3.2 - version: 8.3.2 + specifier: ^11.1.1 + version: 11.1.1 devDependencies: '@hcengineering/platform-rig': - specifier: ^0.7.8 - version: 0.7.8(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2))(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint-config-standard-with-typescript@40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.2))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.6.2) + specifier: ^0.7.21 + version: 0.7.423(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.26)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.26)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/jest': specifier: ^29.5.5 version: 29.5.14 '@types/node': - specifier: ^22.15.29 - version: 22.18.1 - '@types/uuid': - specifier: ^8.3.1 - version: 8.3.4 + specifier: ^24.13.3 + version: 24.13.3 '@typescript-eslint/eslint-plugin': specifier: ^6.11.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2) + version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^6.11.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.2) + version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) eslint: specifier: ^8.54.0 version: 8.57.1 eslint-config-standard-with-typescript: specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.2) + version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) eslint-plugin-import: specifier: ^2.26.0 version: 2.32.0(eslint@8.57.1) @@ -195,19 +186,19 @@ importers: version: 6.6.0(eslint@8.57.1) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.1)(ts-node@10.9.2(@types/node@22.18.1)(typescript@5.9.2)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) prettier: - specifier: ^3.1.0 + specifier: ^3.6.2 version: 3.6.2 simplytyped: specifier: ^3.3.0 - version: 3.3.0(typescript@5.9.2) + version: 3.3.0(typescript@5.9.3) ts-jest: specifier: ^29.1.1 - version: 29.4.1(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.24.2)(jest-util@29.7.0)(jest@29.7.0(@types/node@22.18.1)(ts-node@10.9.2(@types/node@22.18.1)(typescript@5.9.2)))(typescript@5.9.2) + version: 29.4.1(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.24.2)(jest-util@29.7.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) typescript: - specifier: ^5.8.3 - version: 5.9.2 + specifier: ^5.9.3 + version: 5.9.3 ../../packages/server: dependencies: @@ -221,33 +212,30 @@ importers: specifier: workspace:^0.7.10 version: link:../core uuid: - specifier: ^8.3.2 - version: 8.3.2 + specifier: ^11.1.1 + version: 11.1.1 devDependencies: '@hcengineering/platform-rig': - specifier: ^0.7.8 - version: 0.7.8(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2))(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint-config-standard-with-typescript@40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.2))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.6.2) + specifier: ^0.7.21 + version: 0.7.423(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.26)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.26)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/jest': specifier: ^29.5.5 version: 29.5.14 '@types/node': - specifier: ^22.15.29 - version: 22.18.1 - '@types/uuid': - specifier: ^8.3.1 - version: 8.3.4 + specifier: ^24.13.3 + version: 24.13.3 '@typescript-eslint/eslint-plugin': specifier: ^6.11.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2) + version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^6.11.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.2) + version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) eslint: specifier: ^8.54.0 version: 8.57.1 eslint-config-standard-with-typescript: specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.2) + version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) eslint-plugin-import: specifier: ^2.26.0 version: 2.32.0(eslint@8.57.1) @@ -259,19 +247,19 @@ importers: version: 6.6.0(eslint@8.57.1) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.1)(ts-node@10.9.2(@types/node@22.18.1)(typescript@5.9.2)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) prettier: - specifier: ^3.1.0 + specifier: ^3.6.2 version: 3.6.2 simplytyped: specifier: ^3.3.0 - version: 3.3.0(typescript@5.9.2) + version: 3.3.0(typescript@5.9.3) ts-jest: specifier: ^29.1.1 - version: 29.4.1(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.24.2)(jest-util@29.7.0)(jest@29.7.0(@types/node@22.18.1)(ts-node@10.9.2(@types/node@22.18.1)(typescript@5.9.2)))(typescript@5.9.2) + version: 29.4.1(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.24.2)(jest-util@29.7.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) typescript: - specifier: ^5.8.3 - version: 5.9.2 + specifier: ^5.9.3 + version: 5.9.3 ../../pods/network-pod: dependencies: @@ -282,27 +270,24 @@ importers: specifier: workspace:^0.7.10 version: link:../../packages/server uuid: - specifier: ^8.3.2 - version: 8.3.2 + specifier: ^11.1.1 + version: 11.1.1 devDependencies: '@hcengineering/platform-rig': - specifier: ^0.7.8 - version: 0.7.8(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2))(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint-config-standard-with-typescript@40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.2))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.6.2) + specifier: ^0.7.21 + version: 0.7.423(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.26)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.26)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/jest': specifier: ^29.5.5 version: 29.5.14 '@types/node': - specifier: ^22.15.29 - version: 22.18.1 - '@types/uuid': - specifier: ^8.3.1 - version: 8.3.4 + specifier: ^24.13.3 + version: 24.13.3 '@typescript-eslint/eslint-plugin': specifier: ^6.11.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2) + version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^6.11.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.2) + version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) esbuild: specifier: ^0.24.2 version: 0.24.2 @@ -311,7 +296,7 @@ importers: version: 8.57.1 eslint-config-standard-with-typescript: specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.2) + version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) eslint-plugin-import: specifier: ^2.26.0 version: 2.32.0(eslint@8.57.1) @@ -323,22 +308,22 @@ importers: version: 6.6.0(eslint@8.57.1) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.1)(ts-node@10.9.2(@types/node@22.18.1)(typescript@5.9.2)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) prettier: - specifier: ^3.1.0 + specifier: ^3.6.2 version: 3.6.2 simplytyped: specifier: ^3.3.0 - version: 3.3.0(typescript@5.9.2) + version: 3.3.0(typescript@5.9.3) ts-jest: specifier: ^29.1.1 - version: 29.4.1(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.24.2)(jest-util@29.7.0)(jest@29.7.0(@types/node@22.18.1)(ts-node@10.9.2(@types/node@22.18.1)(typescript@5.9.2)))(typescript@5.9.2) + version: 29.4.1(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.24.2)(jest-util@29.7.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@22.18.1)(typescript@5.9.2) + version: 10.9.2(@types/node@24.13.3)(typescript@5.9.3) typescript: - specifier: ^5.8.3 - version: 5.9.2 + specifier: ^5.9.3 + version: 5.9.3 ../../pods/network-tool: dependencies: @@ -352,30 +337,27 @@ importers: specifier: ^14.0.0 version: 14.0.0 uuid: - specifier: ^8.3.2 - version: 8.3.2 + specifier: ^11.1.1 + version: 11.1.1 zeromq: specifier: ^6.5.0 version: 6.5.0 devDependencies: '@hcengineering/platform-rig': - specifier: ^0.7.8 - version: 0.7.8(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2))(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint-config-standard-with-typescript@40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.2))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.6.2) + specifier: ^0.7.21 + version: 0.7.423(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.26)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.26)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/jest': specifier: ^29.5.5 version: 29.5.14 '@types/node': - specifier: ^22.15.29 - version: 22.18.1 - '@types/uuid': - specifier: ^8.3.1 - version: 8.3.4 + specifier: ^24.13.3 + version: 24.13.3 '@typescript-eslint/eslint-plugin': specifier: ^6.11.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2) + version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^6.11.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.2) + version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) esbuild: specifier: ^0.24.2 version: 0.24.2 @@ -384,7 +366,7 @@ importers: version: 8.57.1 eslint-config-standard-with-typescript: specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.2) + version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) eslint-plugin-import: specifier: ^2.26.0 version: 2.32.0(eslint@8.57.1) @@ -396,22 +378,22 @@ importers: version: 6.6.0(eslint@8.57.1) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.1)(ts-node@10.9.2(@types/node@22.18.1)(typescript@5.9.2)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) prettier: - specifier: ^3.1.0 + specifier: ^3.6.2 version: 3.6.2 simplytyped: specifier: ^3.3.0 - version: 3.3.0(typescript@5.9.2) + version: 3.3.0(typescript@5.9.3) ts-jest: specifier: ^29.1.1 - version: 29.4.1(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.24.2)(jest-util@29.7.0)(jest@29.7.0(@types/node@22.18.1)(ts-node@10.9.2(@types/node@22.18.1)(typescript@5.9.2)))(typescript@5.9.2) + version: 29.4.1(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.24.2)(jest-util@29.7.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@22.18.1)(typescript@5.9.2) + version: 10.9.2(@types/node@24.13.3)(typescript@5.9.3) typescript: - specifier: ^5.8.3 - version: 5.9.2 + specifier: ^5.9.3 + version: 5.9.3 ../../tests: dependencies: @@ -423,8 +405,8 @@ importers: version: link:../packages/core devDependencies: '@hcengineering/platform-rig': - specifier: ^0.7.8 - version: 0.7.8(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2))(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint-config-standard-with-typescript@40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.2))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.6.2) + specifier: ^0.7.21 + version: 0.7.423(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.26)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.26)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/body-parser': specifier: ~1.19.2 version: 1.19.6 @@ -432,7 +414,7 @@ importers: specifier: ~1.7.2 version: 1.7.5 '@types/cors': - specifier: ^2.8.12 + specifier: ^2.8.19 version: 2.8.19 '@types/express': specifier: ^4.17.13 @@ -444,23 +426,23 @@ importers: specifier: ~1.9.9 version: 1.9.10 '@types/node': - specifier: ^22.15.29 - version: 22.18.1 + specifier: ^24.13.3 + version: 24.13.3 '@types/ws': - specifier: ^8.5.11 + specifier: ^8.18.1 version: 8.18.1 '@typescript-eslint/eslint-plugin': specifier: ^6.11.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2) + version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^6.11.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.2) + version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) eslint: specifier: ^8.54.0 version: 8.57.1 eslint-config-standard-with-typescript: specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.2) + version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) eslint-plugin-import: specifier: ^2.26.0 version: 2.32.0(eslint@8.57.1) @@ -472,16 +454,16 @@ importers: version: 6.6.0(eslint@8.57.1) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.1)(ts-node@10.9.2(@types/node@22.18.1)(typescript@5.9.2)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) prettier: - specifier: ^3.1.0 + specifier: ^3.6.2 version: 3.6.2 ts-jest: specifier: ^29.1.1 - version: 29.4.1(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.24.2)(jest-util@29.7.0)(jest@29.7.0(@types/node@22.18.1)(ts-node@10.9.2(@types/node@22.18.1)(typescript@5.9.2)))(typescript@5.9.2) + version: 29.4.1(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.24.2)(jest-util@29.7.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) typescript: - specifier: ^5.8.3 - version: 5.9.2 + specifier: ^5.9.3 + version: 5.9.3 ../scripts: devDependencies: @@ -491,6 +473,10 @@ importers: packages: + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + '@babel/code-frame@7.27.1': resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} @@ -666,8 +652,8 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.25.9': - resolution: {integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==} + '@esbuild/aix-ppc64@0.25.12': + resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] @@ -678,8 +664,8 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.25.9': - resolution: {integrity: sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==} + '@esbuild/android-arm64@0.25.12': + resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -690,8 +676,8 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.25.9': - resolution: {integrity: sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==} + '@esbuild/android-arm@0.25.12': + resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} engines: {node: '>=18'} cpu: [arm] os: [android] @@ -702,8 +688,8 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.25.9': - resolution: {integrity: sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==} + '@esbuild/android-x64@0.25.12': + resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} engines: {node: '>=18'} cpu: [x64] os: [android] @@ -714,8 +700,8 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.25.9': - resolution: {integrity: sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==} + '@esbuild/darwin-arm64@0.25.12': + resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] @@ -726,8 +712,8 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.25.9': - resolution: {integrity: sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==} + '@esbuild/darwin-x64@0.25.12': + resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} engines: {node: '>=18'} cpu: [x64] os: [darwin] @@ -738,8 +724,8 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.25.9': - resolution: {integrity: sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==} + '@esbuild/freebsd-arm64@0.25.12': + resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] @@ -750,8 +736,8 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.9': - resolution: {integrity: sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==} + '@esbuild/freebsd-x64@0.25.12': + resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] @@ -762,8 +748,8 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.25.9': - resolution: {integrity: sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==} + '@esbuild/linux-arm64@0.25.12': + resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} engines: {node: '>=18'} cpu: [arm64] os: [linux] @@ -774,8 +760,8 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.25.9': - resolution: {integrity: sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==} + '@esbuild/linux-arm@0.25.12': + resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} engines: {node: '>=18'} cpu: [arm] os: [linux] @@ -786,8 +772,8 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.25.9': - resolution: {integrity: sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==} + '@esbuild/linux-ia32@0.25.12': + resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -798,8 +784,8 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.25.9': - resolution: {integrity: sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==} + '@esbuild/linux-loong64@0.25.12': + resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} engines: {node: '>=18'} cpu: [loong64] os: [linux] @@ -810,8 +796,8 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.25.9': - resolution: {integrity: sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==} + '@esbuild/linux-mips64el@0.25.12': + resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] @@ -822,8 +808,8 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.25.9': - resolution: {integrity: sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==} + '@esbuild/linux-ppc64@0.25.12': + resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] @@ -834,8 +820,8 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.25.9': - resolution: {integrity: sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==} + '@esbuild/linux-riscv64@0.25.12': + resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] @@ -846,8 +832,8 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.25.9': - resolution: {integrity: sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==} + '@esbuild/linux-s390x@0.25.12': + resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -858,8 +844,8 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.25.9': - resolution: {integrity: sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==} + '@esbuild/linux-x64@0.25.12': + resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} engines: {node: '>=18'} cpu: [x64] os: [linux] @@ -870,8 +856,8 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-arm64@0.25.9': - resolution: {integrity: sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==} + '@esbuild/netbsd-arm64@0.25.12': + resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] @@ -882,8 +868,8 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.9': - resolution: {integrity: sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==} + '@esbuild/netbsd-x64@0.25.12': + resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] @@ -894,8 +880,8 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.25.9': - resolution: {integrity: sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==} + '@esbuild/openbsd-arm64@0.25.12': + resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] @@ -906,14 +892,14 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.9': - resolution: {integrity: sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==} + '@esbuild/openbsd-x64@0.25.12': + resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openharmony-arm64@0.25.9': - resolution: {integrity: sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==} + '@esbuild/openharmony-arm64@0.25.12': + resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] @@ -924,8 +910,8 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.25.9': - resolution: {integrity: sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==} + '@esbuild/sunos-x64@0.25.12': + resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} engines: {node: '>=18'} cpu: [x64] os: [sunos] @@ -936,8 +922,8 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.25.9': - resolution: {integrity: sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==} + '@esbuild/win32-arm64@0.25.12': + resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} engines: {node: '>=18'} cpu: [arm64] os: [win32] @@ -948,8 +934,8 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.25.9': - resolution: {integrity: sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==} + '@esbuild/win32-ia32@0.25.12': + resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} engines: {node: '>=18'} cpu: [ia32] os: [win32] @@ -960,8 +946,8 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.25.9': - resolution: {integrity: sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==} + '@esbuild/win32-x64@0.25.12': + resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -984,18 +970,9 @@ packages: resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@hcengineering/platform-rig@0.7.8': - resolution: {integrity: sha512-w19uz2e+pCsn6nuDGvpw5Gl33foVMYo6FaHRL1icVDAxaA9RMRE3SNYuroxOv4XzjNu/mhFo9XU6QuJB2ta1Xg==} + '@hcengineering/platform-rig@0.7.423': + resolution: {integrity: sha512-eWiQDvW+WZw7phCwdu0bCDXwPmacBj0YW1hZdoFqxBEjcw2U8A7retanJJyuKSegGhRewjy7Vhp0n6VTFBx/+w==} hasBin: true - peerDependencies: - '@typescript-eslint/eslint-plugin': ^6.11.0 - '@typescript-eslint/parser': ^6.11.0 - eslint: ^8.54.0 - eslint-config-standard-with-typescript: ^40.0.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-n: ^15.4.0 - eslint-plugin-promise: ^6.1.1 - prettier: ^3.0.0 '@humanwhocodes/config-array@0.13.0': resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} @@ -1163,6 +1140,9 @@ packages: '@types/cors@2.8.19': resolution: {integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==} + '@types/estree@1.0.9': + resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} + '@types/express-serve-static-core@4.19.6': resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} @@ -1199,8 +1179,11 @@ packages: '@types/morgan@1.9.10': resolution: {integrity: sha512-sS4A1zheMvsADRVfT0lYbJ4S9lmsey8Zo2F7cnbYjWHP67Q0AwMYuuzLlkIM2N8gAbb9cubhIVFwcIN2XyYCkA==} - '@types/node@22.18.1': - resolution: {integrity: sha512-rzSDyhn4cYznVG+PCzGe1lwuMYJrcBS1fc3JqSa2PvtABwWo+dZ1ij5OVok3tqfpEBCBoaR4d7upFJk73HRJDw==} + '@types/node@24.13.3': + resolution: {integrity: sha512-Dh8vAsV36ig5wa9OX4pXvMc9D3Veibfw2wix0CUwYODLD8nkj9UsLjASr49nPg+2eKzxhBV+v7L8pXvT4e639Q==} + + '@types/pug@2.0.10': + resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==} '@types/qs@6.14.0': resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==} @@ -1220,9 +1203,6 @@ packages: '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} - '@types/uuid@8.3.4': - resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} - '@types/ws@8.18.1': resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} @@ -1339,6 +1319,10 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} + array-buffer-byte-length@1.0.2: resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} @@ -1375,6 +1359,10 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + babel-jest@29.7.0: resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1429,6 +1417,10 @@ packages: bser@2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + buffer-crc32@1.0.0: + resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} + engines: {node: '>=8.0.0'} + buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -1493,6 +1485,9 @@ packages: resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + code-red@1.0.4: + resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} + collect-v8-coverage@1.0.2: resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} @@ -1525,6 +1520,15 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} + css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + data-view-buffer@1.0.2: resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} engines: {node: '>= 0.4'} @@ -1549,6 +1553,9 @@ packages: supports-color: optional: true + dedent-js@1.0.1: + resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==} + dedent@1.7.0: resolution: {integrity: sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==} peerDependencies: @@ -1572,6 +1579,10 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} + detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + detect-newline@3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} @@ -1641,18 +1652,28 @@ packages: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} + es6-promise@3.3.1: + resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} + esbuild-plugin-copy@2.1.1: resolution: {integrity: sha512-Bk66jpevTcV8KMFzZI1P7MZKZ+uDcrZm2G2egZ2jNIvVnivDpodZI+/KnpL3Jnap0PBdIHU7HwFGB8r+vV5CVw==} peerDependencies: esbuild: '>= 0.14.0' + esbuild-svelte@0.9.5: + resolution: {integrity: sha512-16FUSj64aiS28CCxYeK3hVxCyU4PwGBSkeArawAtnWSV7l0Gc+frIOP88MNj8Q7tDAGyEJAHT6OpOvM24BG46w==} + engines: {node: '>=18'} + peerDependencies: + esbuild: '>=0.17.0' + svelte: '>=4.2.1 <6' + esbuild@0.24.2: resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} engines: {node: '>=18'} hasBin: true - esbuild@0.25.9: - resolution: {integrity: sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==} + esbuild@0.25.12: + resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} engines: {node: '>=18'} hasBin: true @@ -1668,6 +1689,12 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} + eslint-compat-utils@0.5.1: + resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + eslint-config-standard-with-typescript@40.0.0: resolution: {integrity: sha512-GXUJcwIXiTQaS3H4etv8a1lejVVdZYaxZNz3g7vt6GoJosQqMTurbmSC4FVGyHiGT/d1TjFr3+47A3xsHhsG+Q==} deprecated: Please use eslint-config-love, instead. @@ -1724,6 +1751,16 @@ packages: peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 + eslint-plugin-svelte@2.46.1: + resolution: {integrity: sha512-7xYr2o4NID/f9OEYMqxsEQsCsj4KaMy4q5sANaKkAb6/QeCjYFxRmDm2S3YC3A3pl1kyPZ/syOx/i7LcWYSbIw==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0-0 || ^9.0.0-0 + svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + svelte: + optional: true + eslint-scope@7.2.2: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1777,6 +1814,9 @@ packages: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -2073,6 +2113,9 @@ packages: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} + is-reference@3.0.3: + resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==} + is-regex@1.2.1: resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} engines: {node: '>= 0.4'} @@ -2319,6 +2362,9 @@ packages: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} + known-css-properties@0.35.0: + resolution: {integrity: sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==} + leven@3.1.0: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} @@ -2327,9 +2373,16 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} + lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + locate-character@3.0.0: + resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -2347,6 +2400,9 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} @@ -2361,6 +2417,9 @@ packages: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} + mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -2376,6 +2435,10 @@ packages: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -2386,9 +2449,18 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + nanoid@3.3.18: + resolution: {integrity: sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -2499,6 +2571,9 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} + periscopic@3.1.0: + resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} + picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -2518,10 +2593,48 @@ packages: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} + postcss-load-config@3.1.4: + resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} + engines: {node: '>= 10'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + + postcss-safe-parser@6.0.0: + resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.3.3 + + postcss-scss@4.0.9: + resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.4.29 + + postcss-selector-parser@6.1.4: + resolution: {integrity: sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ==} + engines: {node: '>=4'} + + postcss@8.5.26: + resolution: {integrity: sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==} + engines: {node: ^10 || ^12 || >=14} + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} + prettier-plugin-svelte@3.5.2: + resolution: {integrity: sha512-ItFouLvzSFE3ulNl4DKoWM3BGcbDCNVpIyy/Y3F2gC3aNiGLxtFUdffVqO5Z5hhYG+DFT5KULWaxmeFFpdbvaQ==} + peerDependencies: + prettier: ^3.0.0 + svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0 + prettier@3.6.2: resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==} engines: {node: '>=14'} @@ -2593,6 +2706,11 @@ packages: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + rimraf@2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} deprecated: Rimraf versions prior to v4 are no longer supported @@ -2613,6 +2731,12 @@ packages: resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} engines: {node: '>= 0.4'} + sander@0.5.1: + resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==} + + scule@1.3.0: + resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} + semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -2673,6 +2797,14 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} + sorcery@0.11.1: + resolution: {integrity: sha512-o7npfeJE6wi6J9l0/5LKshFzZ2rMatRiCDwYeDQaOzqdzRJwALhX7mk/A/ecg6wjMu7wdZbmXfD2S/vpOg0bdQ==} + hasBin: true + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + source-map-support@0.5.13: resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} @@ -2727,6 +2859,10 @@ packages: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} + strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -2743,6 +2879,71 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} + svelte-eslint-parser@0.33.1: + resolution: {integrity: sha512-vo7xPGTlKBGdLH8T5L64FipvTrqv3OQRx9d2z5X05KKZDlF4rQk8KViZO4flKERY+5BiVdOh7zZ7JGJWo5P0uA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + svelte: ^3.37.0 || ^4.0.0 + peerDependenciesMeta: + svelte: + optional: true + + svelte-eslint-parser@0.43.0: + resolution: {integrity: sha512-GpU52uPKKcVnh8tKN5P4UZpJ/fUDndmq7wfsvoVXsyP+aY0anol7Yqo01fyrlaWGMFfm4av5DyrjlaXdLRJvGA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + svelte: + optional: true + + svelte-preprocess@5.1.4: + resolution: {integrity: sha512-IvnbQ6D6Ao3Gg6ftiM5tdbR6aAETwjhHV+UKGf5bHGYR69RQvF1ho0JKPcbUON4vy4R7zom13jPjgdOWCQ5hDA==} + engines: {node: '>= 16.0.0'} + peerDependencies: + '@babel/core': ^7.10.2 + coffeescript: ^2.5.1 + less: ^3.11.3 || ^4.0.0 + postcss: ^7 || ^8 + postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 + pug: ^3.0.0 + sass: ^1.26.8 + stylus: ^0.55.0 + sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0 + svelte: ^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 + typescript: '>=3.9.5 || ^4.0.0 || ^5.0.0' + peerDependenciesMeta: + '@babel/core': + optional: true + coffeescript: + optional: true + less: + optional: true + postcss: + optional: true + postcss-load-config: + optional: true + pug: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + typescript: + optional: true + + svelte2tsx@0.7.61: + resolution: {integrity: sha512-EpQ/+UHITBULeUojx/LLD3uTYasZXcX1BrqlrzfLUnT9vdUhaOWK59a3ryWcFU8L0sY1SP+gRhJ2Beiis98+qw==} + peerDependencies: + svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0 + typescript: ^4.9.4 || ^5.0.0 || ^6.0.0 + + svelte@4.2.20: + resolution: {integrity: sha512-eeEgGc2DtiUil5ANdtd8vPwt9AgaMdnuUFnPft9F5oMvU/FHu5IHFic+p1dR/UOB7XU2mX2yHW+NcTch4DCh5Q==} + engines: {node: '>=16'} + test-exclude@6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} @@ -2848,6 +3049,11 @@ packages: engines: {node: '>=14.17'} hasBin: true + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + uglify-js@3.19.3: resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} engines: {node: '>=0.8.0'} @@ -2857,8 +3063,8 @@ packages: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} engines: {node: '>= 0.4'} - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + undici-types@7.18.2: + resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} @@ -2873,8 +3079,15 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + uuid@11.1.1: + resolution: {integrity: sha512-vIYxrBCC/N/K+Js3qSN88go7kIfNPssr/hHCesKCQNAjmgvYS2oqr69kIufEG+O4+PfezOH4EbIeHCfFov8ZgQ==} + hasBin: true + + uuid@14.0.2: + resolution: {integrity: sha512-xZe/16rV4aa+HGSOCiY2YeLT1OybRLrrkL/Rqaq7p7GMVXjFh+6wN4oMYgjFmnSnhY8t6Xpdl2l9qmnHYuMHwQ==} hasBin: true v8-compile-cache-lib@3.0.1: @@ -2933,6 +3146,10 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + yaml@1.10.3: + resolution: {integrity: sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==} + engines: {node: '>= 6'} + yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -2955,6 +3172,11 @@ packages: snapshots: + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.30 + '@babel/code-frame@7.27.1': dependencies: '@babel/helper-validator-identifier': 7.27.1 @@ -3151,154 +3373,154 @@ snapshots: '@esbuild/aix-ppc64@0.24.2': optional: true - '@esbuild/aix-ppc64@0.25.9': + '@esbuild/aix-ppc64@0.25.12': optional: true '@esbuild/android-arm64@0.24.2': optional: true - '@esbuild/android-arm64@0.25.9': + '@esbuild/android-arm64@0.25.12': optional: true '@esbuild/android-arm@0.24.2': optional: true - '@esbuild/android-arm@0.25.9': + '@esbuild/android-arm@0.25.12': optional: true '@esbuild/android-x64@0.24.2': optional: true - '@esbuild/android-x64@0.25.9': + '@esbuild/android-x64@0.25.12': optional: true '@esbuild/darwin-arm64@0.24.2': optional: true - '@esbuild/darwin-arm64@0.25.9': + '@esbuild/darwin-arm64@0.25.12': optional: true '@esbuild/darwin-x64@0.24.2': optional: true - '@esbuild/darwin-x64@0.25.9': + '@esbuild/darwin-x64@0.25.12': optional: true '@esbuild/freebsd-arm64@0.24.2': optional: true - '@esbuild/freebsd-arm64@0.25.9': + '@esbuild/freebsd-arm64@0.25.12': optional: true '@esbuild/freebsd-x64@0.24.2': optional: true - '@esbuild/freebsd-x64@0.25.9': + '@esbuild/freebsd-x64@0.25.12': optional: true '@esbuild/linux-arm64@0.24.2': optional: true - '@esbuild/linux-arm64@0.25.9': + '@esbuild/linux-arm64@0.25.12': optional: true '@esbuild/linux-arm@0.24.2': optional: true - '@esbuild/linux-arm@0.25.9': + '@esbuild/linux-arm@0.25.12': optional: true '@esbuild/linux-ia32@0.24.2': optional: true - '@esbuild/linux-ia32@0.25.9': + '@esbuild/linux-ia32@0.25.12': optional: true '@esbuild/linux-loong64@0.24.2': optional: true - '@esbuild/linux-loong64@0.25.9': + '@esbuild/linux-loong64@0.25.12': optional: true '@esbuild/linux-mips64el@0.24.2': optional: true - '@esbuild/linux-mips64el@0.25.9': + '@esbuild/linux-mips64el@0.25.12': optional: true '@esbuild/linux-ppc64@0.24.2': optional: true - '@esbuild/linux-ppc64@0.25.9': + '@esbuild/linux-ppc64@0.25.12': optional: true '@esbuild/linux-riscv64@0.24.2': optional: true - '@esbuild/linux-riscv64@0.25.9': + '@esbuild/linux-riscv64@0.25.12': optional: true '@esbuild/linux-s390x@0.24.2': optional: true - '@esbuild/linux-s390x@0.25.9': + '@esbuild/linux-s390x@0.25.12': optional: true '@esbuild/linux-x64@0.24.2': optional: true - '@esbuild/linux-x64@0.25.9': + '@esbuild/linux-x64@0.25.12': optional: true '@esbuild/netbsd-arm64@0.24.2': optional: true - '@esbuild/netbsd-arm64@0.25.9': + '@esbuild/netbsd-arm64@0.25.12': optional: true '@esbuild/netbsd-x64@0.24.2': optional: true - '@esbuild/netbsd-x64@0.25.9': + '@esbuild/netbsd-x64@0.25.12': optional: true '@esbuild/openbsd-arm64@0.24.2': optional: true - '@esbuild/openbsd-arm64@0.25.9': + '@esbuild/openbsd-arm64@0.25.12': optional: true '@esbuild/openbsd-x64@0.24.2': optional: true - '@esbuild/openbsd-x64@0.25.9': + '@esbuild/openbsd-x64@0.25.12': optional: true - '@esbuild/openharmony-arm64@0.25.9': + '@esbuild/openharmony-arm64@0.25.12': optional: true '@esbuild/sunos-x64@0.24.2': optional: true - '@esbuild/sunos-x64@0.25.9': + '@esbuild/sunos-x64@0.25.12': optional: true '@esbuild/win32-arm64@0.24.2': optional: true - '@esbuild/win32-arm64@0.25.9': + '@esbuild/win32-arm64@0.25.12': optional: true '@esbuild/win32-ia32@0.24.2': optional: true - '@esbuild/win32-ia32@0.25.9': + '@esbuild/win32-ia32@0.25.12': optional: true '@esbuild/win32-x64@0.24.2': optional: true - '@esbuild/win32-x64@0.25.9': + '@esbuild/win32-x64@0.25.12': optional: true '@eslint-community/eslint-utils@4.9.0(eslint@8.57.1)': @@ -3324,18 +3546,38 @@ snapshots: '@eslint/js@8.57.1': {} - '@hcengineering/platform-rig@0.7.8(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2))(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint-config-standard-with-typescript@40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.2))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.6.2)': + '@hcengineering/platform-rig@0.7.423(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.26)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.26)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3))': dependencies: - '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2) - '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.9.2) - esbuild: 0.25.9 - esbuild-plugin-copy: 2.1.1(esbuild@0.25.9) + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.9.3) + esbuild: 0.25.12 + esbuild-plugin-copy: 2.1.1(esbuild@0.25.12) + esbuild-svelte: 0.9.5(esbuild@0.25.12)(svelte@4.2.20) eslint: 8.57.1 - eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.2) + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) eslint-plugin-import: 2.32.0(eslint@8.57.1) eslint-plugin-n: 15.7.0(eslint@8.57.1) eslint-plugin-promise: 6.6.0(eslint@8.57.1) + eslint-plugin-svelte: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) prettier: 3.6.2 + prettier-plugin-svelte: 3.5.2(prettier@3.6.2)(svelte@4.2.20) + svelte: 4.2.20 + svelte-eslint-parser: 0.33.1(svelte@4.2.20) + svelte-preprocess: 5.1.4(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.26)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.26)(svelte@4.2.20)(typescript@5.9.3) + svelte2tsx: 0.7.61(svelte@4.2.20)(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - '@babel/core' + - coffeescript + - less + - postcss + - postcss-load-config + - pug + - sass + - stylus + - sugarss + - supports-color + - ts-node '@humanwhocodes/config-array@0.13.0': dependencies: @@ -3362,27 +3604,27 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 22.18.1 + '@types/node': 24.13.3 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(ts-node@10.9.2(@types/node@22.18.1)(typescript@5.9.2))': + '@jest/core@29.7.0(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.18.1 + '@types/node': 24.13.3 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.18.1)(ts-node@10.9.2(@types/node@22.18.1)(typescript@5.9.2)) + jest-config: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -3407,7 +3649,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.18.1 + '@types/node': 24.13.3 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -3425,7 +3667,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.18.1 + '@types/node': 24.13.3 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -3447,7 +3689,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.30 - '@types/node': 22.18.1 + '@types/node': 24.13.3 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -3517,7 +3759,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.18.1 + '@types/node': 24.13.3 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -3601,7 +3843,7 @@ snapshots: '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.18.1 + '@types/node': 24.13.3 '@types/compression@1.7.5': dependencies: @@ -3609,15 +3851,17 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 22.18.1 + '@types/node': 24.13.3 '@types/cors@2.8.19': dependencies: - '@types/node': 22.18.1 + '@types/node': 24.13.3 + + '@types/estree@1.0.9': {} '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 22.18.1 + '@types/node': 24.13.3 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 '@types/send': 0.17.5 @@ -3631,7 +3875,7 @@ snapshots: '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.18.1 + '@types/node': 24.13.3 '@types/http-errors@2.0.5': {} @@ -3658,11 +3902,13 @@ snapshots: '@types/morgan@1.9.10': dependencies: - '@types/node': 22.18.1 + '@types/node': 24.13.3 - '@types/node@22.18.1': + '@types/node@24.13.3': dependencies: - undici-types: 6.21.0 + undici-types: 7.18.2 + + '@types/pug@2.0.10': {} '@types/qs@6.14.0': {} @@ -3673,21 +3919,19 @@ snapshots: '@types/send@0.17.5': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.18.1 + '@types/node': 24.13.3 '@types/serve-static@1.15.8': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 22.18.1 + '@types/node': 24.13.3 '@types/send': 0.17.5 '@types/stack-utils@2.0.3': {} - '@types/uuid@8.3.4': {} - '@types/ws@8.18.1': dependencies: - '@types/node': 22.18.1 + '@types/node': 24.13.3 '@types/yargs-parser@21.0.3': {} @@ -3695,13 +3939,13 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2)': + '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.9.2) + '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.9.3) '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.1)(typescript@5.9.2) - '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.9.2) + '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.9.3) '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.4.1 eslint: 8.57.1 @@ -3709,22 +3953,22 @@ snapshots: ignore: 5.3.2 natural-compare: 1.4.0 semver: 7.7.2 - ts-api-utils: 1.4.3(typescript@5.9.2) + ts-api-utils: 1.4.3(typescript@5.9.3) optionalDependencies: - typescript: 5.9.2 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2)': + '@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3)': dependencies: '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.9.2) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.9.3) '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.4.1 eslint: 8.57.1 optionalDependencies: - typescript: 5.9.2 + typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -3733,21 +3977,21 @@ snapshots: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 - '@typescript-eslint/type-utils@6.21.0(eslint@8.57.1)(typescript@5.9.2)': + '@typescript-eslint/type-utils@6.21.0(eslint@8.57.1)(typescript@5.9.3)': dependencies: - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.9.2) - '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.9.2) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.9.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.9.3) debug: 4.4.1 eslint: 8.57.1 - ts-api-utils: 1.4.3(typescript@5.9.2) + ts-api-utils: 1.4.3(typescript@5.9.3) optionalDependencies: - typescript: 5.9.2 + typescript: 5.9.3 transitivePeerDependencies: - supports-color '@typescript-eslint/types@6.21.0': {} - '@typescript-eslint/typescript-estree@6.21.0(typescript@5.9.2)': + '@typescript-eslint/typescript-estree@6.21.0(typescript@5.9.3)': dependencies: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 @@ -3756,20 +4000,20 @@ snapshots: is-glob: 4.0.3 minimatch: 9.0.3 semver: 7.7.2 - ts-api-utils: 1.4.3(typescript@5.9.2) + ts-api-utils: 1.4.3(typescript@5.9.3) optionalDependencies: - typescript: 5.9.2 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@6.21.0(eslint@8.57.1)(typescript@5.9.2)': + '@typescript-eslint/utils@6.21.0(eslint@8.57.1)(typescript@5.9.3)': dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.1) '@types/json-schema': 7.0.15 '@types/semver': 7.7.1 '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.9.2) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.9.3) eslint: 8.57.1 semver: 7.7.2 transitivePeerDependencies: @@ -3825,6 +4069,8 @@ snapshots: argparse@2.0.1: {} + aria-query@5.3.2: {} + array-buffer-byte-length@1.0.2: dependencies: call-bound: 1.0.4 @@ -3883,6 +4129,8 @@ snapshots: dependencies: possible-typed-array-names: 1.1.0 + axobject-query@4.1.0: {} + babel-jest@29.7.0(@babel/core@7.28.4): dependencies: '@babel/core': 7.28.4 @@ -3970,6 +4218,8 @@ snapshots: dependencies: node-int64: 0.4.0 + buffer-crc32@1.0.0: {} + buffer-from@1.1.2: {} builtins@5.1.0: @@ -4034,6 +4284,14 @@ snapshots: co@4.6.0: {} + code-red@1.0.4: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@types/estree': 1.0.9 + acorn: 8.15.0 + estree-walker: 3.0.3 + periscopic: 3.1.0 + collect-v8-coverage@1.0.2: {} color-convert@2.0.1: @@ -4048,13 +4306,13 @@ snapshots: convert-source-map@2.0.0: {} - create-jest@29.7.0(@types/node@22.18.1)(ts-node@10.9.2(@types/node@22.18.1)(typescript@5.9.2)): + create-jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.18.1)(ts-node@10.9.2(@types/node@22.18.1)(typescript@5.9.2)) + jest-config: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -4071,6 +4329,13 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + css-tree@2.3.1: + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.2.1 + + cssesc@3.0.0: {} + data-view-buffer@1.0.2: dependencies: call-bound: 1.0.4 @@ -4097,6 +4362,8 @@ snapshots: dependencies: ms: 2.1.3 + dedent-js@1.0.1: {} + dedent@1.7.0: {} deep-is@0.1.4: {} @@ -4115,6 +4382,8 @@ snapshots: has-property-descriptors: 1.0.2 object-keys: 1.1.1 + detect-indent@6.1.0: {} + detect-newline@3.1.0: {} diff-sequences@29.6.3: {} @@ -4231,14 +4500,22 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 - esbuild-plugin-copy@2.1.1(esbuild@0.25.9): + es6-promise@3.3.1: {} + + esbuild-plugin-copy@2.1.1(esbuild@0.25.12): dependencies: chalk: 4.1.2 chokidar: 3.6.0 - esbuild: 0.25.9 + esbuild: 0.25.12 fs-extra: 10.1.0 globby: 11.1.0 + esbuild-svelte@0.9.5(esbuild@0.25.12)(svelte@4.2.20): + dependencies: + '@jridgewell/trace-mapping': 0.3.30 + esbuild: 0.25.12 + svelte: 4.2.20 + esbuild@0.24.2: optionalDependencies: '@esbuild/aix-ppc64': 0.24.2 @@ -4267,34 +4544,34 @@ snapshots: '@esbuild/win32-ia32': 0.24.2 '@esbuild/win32-x64': 0.24.2 - esbuild@0.25.9: + esbuild@0.25.12: optionalDependencies: - '@esbuild/aix-ppc64': 0.25.9 - '@esbuild/android-arm': 0.25.9 - '@esbuild/android-arm64': 0.25.9 - '@esbuild/android-x64': 0.25.9 - '@esbuild/darwin-arm64': 0.25.9 - '@esbuild/darwin-x64': 0.25.9 - '@esbuild/freebsd-arm64': 0.25.9 - '@esbuild/freebsd-x64': 0.25.9 - '@esbuild/linux-arm': 0.25.9 - '@esbuild/linux-arm64': 0.25.9 - '@esbuild/linux-ia32': 0.25.9 - '@esbuild/linux-loong64': 0.25.9 - '@esbuild/linux-mips64el': 0.25.9 - '@esbuild/linux-ppc64': 0.25.9 - '@esbuild/linux-riscv64': 0.25.9 - '@esbuild/linux-s390x': 0.25.9 - '@esbuild/linux-x64': 0.25.9 - '@esbuild/netbsd-arm64': 0.25.9 - '@esbuild/netbsd-x64': 0.25.9 - '@esbuild/openbsd-arm64': 0.25.9 - '@esbuild/openbsd-x64': 0.25.9 - '@esbuild/openharmony-arm64': 0.25.9 - '@esbuild/sunos-x64': 0.25.9 - '@esbuild/win32-arm64': 0.25.9 - '@esbuild/win32-ia32': 0.25.9 - '@esbuild/win32-x64': 0.25.9 + '@esbuild/aix-ppc64': 0.25.12 + '@esbuild/android-arm': 0.25.12 + '@esbuild/android-arm64': 0.25.12 + '@esbuild/android-x64': 0.25.12 + '@esbuild/darwin-arm64': 0.25.12 + '@esbuild/darwin-x64': 0.25.12 + '@esbuild/freebsd-arm64': 0.25.12 + '@esbuild/freebsd-x64': 0.25.12 + '@esbuild/linux-arm': 0.25.12 + '@esbuild/linux-arm64': 0.25.12 + '@esbuild/linux-ia32': 0.25.12 + '@esbuild/linux-loong64': 0.25.12 + '@esbuild/linux-mips64el': 0.25.12 + '@esbuild/linux-ppc64': 0.25.12 + '@esbuild/linux-riscv64': 0.25.12 + '@esbuild/linux-s390x': 0.25.12 + '@esbuild/linux-x64': 0.25.12 + '@esbuild/netbsd-arm64': 0.25.12 + '@esbuild/netbsd-x64': 0.25.12 + '@esbuild/openbsd-arm64': 0.25.12 + '@esbuild/openbsd-x64': 0.25.12 + '@esbuild/openharmony-arm64': 0.25.12 + '@esbuild/sunos-x64': 0.25.12 + '@esbuild/win32-arm64': 0.25.12 + '@esbuild/win32-ia32': 0.25.12 + '@esbuild/win32-x64': 0.25.12 escalade@3.2.0: {} @@ -4302,16 +4579,21 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-standard-with-typescript@40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.2): + eslint-compat-utils@0.5.1(eslint@8.57.1): + dependencies: + eslint: 8.57.1 + semver: 7.7.2 + + eslint-config-standard-with-typescript@40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2) - '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.9.2) + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.9.3) eslint: 8.57.1 eslint-config-standard: 17.1.0(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1) eslint-plugin-import: 2.32.0(eslint@8.57.1) eslint-plugin-n: 15.7.0(eslint@8.57.1) eslint-plugin-promise: 6.6.0(eslint@8.57.1) - typescript: 5.9.2 + typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -4379,6 +4661,25 @@ snapshots: dependencies: eslint: 8.57.1 + eslint-plugin-svelte@2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)): + dependencies: + '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.1) + '@jridgewell/sourcemap-codec': 1.5.5 + eslint: 8.57.1 + eslint-compat-utils: 0.5.1(eslint@8.57.1) + esutils: 2.0.3 + known-css-properties: 0.35.0 + postcss: 8.5.26 + postcss-load-config: 3.1.4(postcss@8.5.26)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) + postcss-safe-parser: 6.0.0(postcss@8.5.26) + postcss-selector-parser: 6.1.4 + semver: 7.7.2 + svelte-eslint-parser: 0.43.0(svelte@4.2.20) + optionalDependencies: + svelte: 4.2.20 + transitivePeerDependencies: + - ts-node + eslint-scope@7.2.2: dependencies: esrecurse: 4.3.0 @@ -4460,6 +4761,10 @@ snapshots: estraverse@5.3.0: {} + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.9 + esutils@2.0.3: {} execa@5.1.1: @@ -4775,6 +5080,10 @@ snapshots: is-path-inside@3.0.3: {} + is-reference@3.0.3: + dependencies: + '@types/estree': 1.0.9 + is-regex@1.2.1: dependencies: call-bound: 1.0.4 @@ -4873,7 +5182,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.18.1 + '@types/node': 24.13.3 chalk: 4.1.2 co: 4.6.0 dedent: 1.7.0 @@ -4893,16 +5202,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@22.18.1)(ts-node@10.9.2(@types/node@22.18.1)(typescript@5.9.2)): + jest-cli@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@22.18.1)(typescript@5.9.2)) + '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.18.1)(ts-node@10.9.2(@types/node@22.18.1)(typescript@5.9.2)) + create-jest: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@22.18.1)(ts-node@10.9.2(@types/node@22.18.1)(typescript@5.9.2)) + jest-config: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -4912,7 +5221,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@22.18.1)(ts-node@10.9.2(@types/node@22.18.1)(typescript@5.9.2)): + jest-config@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)): dependencies: '@babel/core': 7.28.4 '@jest/test-sequencer': 29.7.0 @@ -4937,8 +5246,8 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.18.1 - ts-node: 10.9.2(@types/node@22.18.1)(typescript@5.9.2) + '@types/node': 24.13.3 + ts-node: 10.9.2(@types/node@24.13.3)(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -4967,7 +5276,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.18.1 + '@types/node': 24.13.3 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -4977,7 +5286,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 22.18.1 + '@types/node': 24.13.3 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -5016,7 +5325,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.18.1 + '@types/node': 24.13.3 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -5051,7 +5360,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.18.1 + '@types/node': 24.13.3 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -5079,7 +5388,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.18.1 + '@types/node': 24.13.3 chalk: 4.1.2 cjs-module-lexer: 1.4.3 collect-v8-coverage: 1.0.2 @@ -5125,7 +5434,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.18.1 + '@types/node': 24.13.3 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -5144,7 +5453,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.18.1 + '@types/node': 24.13.3 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -5153,17 +5462,17 @@ snapshots: jest-worker@29.7.0: dependencies: - '@types/node': 22.18.1 + '@types/node': 24.13.3 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@22.18.1)(ts-node@10.9.2(@types/node@22.18.1)(typescript@5.9.2)): + jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@22.18.1)(typescript@5.9.2)) + '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@22.18.1)(ts-node@10.9.2(@types/node@22.18.1)(typescript@5.9.2)) + jest-cli: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -5209,6 +5518,8 @@ snapshots: kleur@3.0.3: {} + known-css-properties@0.35.0: {} + leven@3.1.0: {} levn@0.4.1: @@ -5216,8 +5527,12 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 + lilconfig@2.1.0: {} + lines-and-columns@1.2.4: {} + locate-character@3.0.0: {} + locate-path@5.0.0: dependencies: p-locate: 4.1.0 @@ -5234,6 +5549,10 @@ snapshots: dependencies: yallist: 3.1.1 + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + make-dir@4.0.0: dependencies: semver: 7.7.2 @@ -5246,6 +5565,8 @@ snapshots: math-intrinsics@1.1.0: {} + mdn-data@2.0.30: {} + merge-stream@2.0.0: {} merge2@1.4.1: {} @@ -5257,6 +5578,8 @@ snapshots: mimic-fn@2.1.0: {} + min-indent@1.0.1: {} + minimatch@3.1.2: dependencies: brace-expansion: 1.1.12 @@ -5267,8 +5590,14 @@ snapshots: minimist@1.2.8: {} + mkdirp@0.5.6: + dependencies: + minimist: 1.2.8 + ms@2.1.3: {} + nanoid@3.3.18: {} + natural-compare@1.4.0: {} neo-async@2.6.2: {} @@ -5380,6 +5709,12 @@ snapshots: path-type@4.0.0: {} + periscopic@3.1.0: + dependencies: + '@types/estree': 1.0.9 + estree-walker: 3.0.3 + is-reference: 3.0.3 + picocolors@1.1.1: {} picomatch@2.3.1: {} @@ -5392,8 +5727,40 @@ snapshots: possible-typed-array-names@1.1.0: {} + postcss-load-config@3.1.4(postcss@8.5.26)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)): + dependencies: + lilconfig: 2.1.0 + yaml: 1.10.3 + optionalDependencies: + postcss: 8.5.26 + ts-node: 10.9.2(@types/node@24.13.3)(typescript@5.9.3) + + postcss-safe-parser@6.0.0(postcss@8.5.26): + dependencies: + postcss: 8.5.26 + + postcss-scss@4.0.9(postcss@8.5.26): + dependencies: + postcss: 8.5.26 + + postcss-selector-parser@6.1.4: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss@8.5.26: + dependencies: + nanoid: 3.3.18 + picocolors: 1.1.1 + source-map-js: 1.2.1 + prelude-ls@1.2.1: {} + prettier-plugin-svelte@3.5.2(prettier@3.6.2)(svelte@4.2.20): + dependencies: + prettier: 3.6.2 + svelte: 4.2.20 + prettier@3.6.2: {} pretty-format@29.7.0: @@ -5461,6 +5828,10 @@ snapshots: reusify@1.1.0: {} + rimraf@2.7.1: + dependencies: + glob: 7.2.3 + rimraf@3.0.2: dependencies: glob: 7.2.3 @@ -5488,6 +5859,15 @@ snapshots: es-errors: 1.3.0 is-regex: 1.2.1 + sander@0.5.1: + dependencies: + es6-promise: 3.3.1 + graceful-fs: 4.2.11 + mkdirp: 0.5.6 + rimraf: 2.7.1 + + scule@1.3.0: {} + semver@6.3.1: {} semver@7.7.2: {} @@ -5550,14 +5930,23 @@ snapshots: signal-exit@3.0.7: {} - simplytyped@3.3.0(typescript@5.9.2): + simplytyped@3.3.0(typescript@5.9.3): dependencies: - typescript: 5.9.2 + typescript: 5.9.3 sisteransi@1.0.5: {} slash@3.0.0: {} + sorcery@0.11.1: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + buffer-crc32: 1.0.0 + minimist: 1.2.8 + sander: 0.5.1 + + source-map-js@1.2.1: {} + source-map-support@0.5.13: dependencies: buffer-from: 1.1.2 @@ -5620,6 +6009,10 @@ snapshots: strip-final-newline@2.0.0: {} + strip-indent@3.0.0: + dependencies: + min-indent: 1.0.1 + strip-json-comments@3.1.1: {} supports-color@7.2.0: @@ -5632,6 +6025,64 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} + svelte-eslint-parser@0.33.1(svelte@4.2.20): + dependencies: + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + postcss: 8.5.26 + postcss-scss: 4.0.9(postcss@8.5.26) + optionalDependencies: + svelte: 4.2.20 + + svelte-eslint-parser@0.43.0(svelte@4.2.20): + dependencies: + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + postcss: 8.5.26 + postcss-scss: 4.0.9(postcss@8.5.26) + optionalDependencies: + svelte: 4.2.20 + + svelte-preprocess@5.1.4(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.26)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.26)(svelte@4.2.20)(typescript@5.9.3): + dependencies: + '@types/pug': 2.0.10 + detect-indent: 6.1.0 + magic-string: 0.30.21 + sorcery: 0.11.1 + strip-indent: 3.0.0 + svelte: 4.2.20 + optionalDependencies: + '@babel/core': 7.28.4 + postcss: 8.5.26 + postcss-load-config: 3.1.4(postcss@8.5.26)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) + typescript: 5.9.3 + + svelte2tsx@0.7.61(svelte@4.2.20)(typescript@5.9.3): + dependencies: + dedent-js: 1.0.1 + scule: 1.3.0 + svelte: 4.2.20 + typescript: 5.9.3 + + svelte@4.2.20: + dependencies: + '@ampproject/remapping': 2.3.0 + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.30 + '@types/estree': 1.0.9 + acorn: 8.15.0 + aria-query: 5.3.2 + axobject-query: 4.1.0 + code-red: 1.0.4 + css-tree: 2.3.1 + estree-walker: 3.0.3 + is-reference: 3.0.3 + locate-character: 3.0.0 + magic-string: 0.30.21 + periscopic: 3.1.0 + test-exclude@6.0.0: dependencies: '@istanbuljs/schema': 0.1.3 @@ -5646,22 +6097,22 @@ snapshots: dependencies: is-number: 7.0.0 - ts-api-utils@1.4.3(typescript@5.9.2): + ts-api-utils@1.4.3(typescript@5.9.3): dependencies: - typescript: 5.9.2 + typescript: 5.9.3 - ts-jest@29.4.1(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.24.2)(jest-util@29.7.0)(jest@29.7.0(@types/node@22.18.1)(ts-node@10.9.2(@types/node@22.18.1)(typescript@5.9.2)))(typescript@5.9.2): + ts-jest@29.4.1(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.24.2)(jest-util@29.7.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 handlebars: 4.7.9 - jest: 29.7.0(@types/node@22.18.1)(ts-node@10.9.2(@types/node@22.18.1)(typescript@5.9.2)) + jest: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 semver: 7.7.2 type-fest: 4.41.0 - typescript: 5.9.2 + typescript: 5.9.3 yargs-parser: 21.1.1 optionalDependencies: '@babel/core': 7.28.4 @@ -5671,14 +6122,14 @@ snapshots: esbuild: 0.24.2 jest-util: 29.7.0 - ts-node@10.9.2(@types/node@22.18.1)(typescript@5.9.2): + ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.2): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.18.1 + '@types/node': 24.13.3 acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -5689,6 +6140,24 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 + ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 24.13.3 + acorn: 8.15.0 + acorn-walk: 8.3.4 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.9.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + tsconfig-paths@3.15.0: dependencies: '@types/json5': 0.0.29 @@ -5743,6 +6212,8 @@ snapshots: typescript@5.9.2: {} + typescript@5.9.3: {} + uglify-js@3.19.3: optional: true @@ -5753,7 +6224,7 @@ snapshots: has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 - undici-types@6.21.0: {} + undici-types@7.18.2: {} universalify@2.0.1: {} @@ -5767,7 +6238,11 @@ snapshots: dependencies: punycode: 2.3.1 - uuid@8.3.2: {} + util-deprecate@1.0.2: {} + + uuid@11.1.1: {} + + uuid@14.0.2: {} v8-compile-cache-lib@3.0.1: {} @@ -5847,6 +6322,8 @@ snapshots: yallist@3.1.1: {} + yaml@1.10.3: {} + yargs-parser@21.1.1: {} yargs@17.7.2: diff --git a/foundations/net/packages/backrpc/package.json b/foundations/net/packages/backrpc/package.json index d6d58c8ada..a3eae56b13 100644 --- a/foundations/net/packages/backrpc/package.json +++ b/foundations/net/packages/backrpc/package.json @@ -28,7 +28,7 @@ "_phase:validate": "compile validate" }, "devDependencies": { - "@hcengineering/platform-rig": "^0.7.8", + "@hcengineering/platform-rig": "^0.7.21", "@typescript-eslint/eslint-plugin": "^6.11.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-promise": "^6.1.1", diff --git a/foundations/net/packages/client/package.json b/foundations/net/packages/client/package.json index 224f3f065b..8314f07956 100644 --- a/foundations/net/packages/client/package.json +++ b/foundations/net/packages/client/package.json @@ -28,7 +28,7 @@ "_phase:validate": "compile validate" }, "devDependencies": { - "@hcengineering/platform-rig": "^0.7.8", + "@hcengineering/platform-rig": "^0.7.21", "@typescript-eslint/eslint-plugin": "^6.11.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-promise": "^6.1.1", diff --git a/foundations/net/packages/core/package.json b/foundations/net/packages/core/package.json index 4e69eeceb1..94ba73c50d 100644 --- a/foundations/net/packages/core/package.json +++ b/foundations/net/packages/core/package.json @@ -28,7 +28,7 @@ "_phase:validate": "compile validate" }, "devDependencies": { - "@hcengineering/platform-rig": "^0.7.8", + "@hcengineering/platform-rig": "^0.7.21", "@typescript-eslint/eslint-plugin": "^6.11.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-promise": "^6.1.1", diff --git a/foundations/net/packages/server/package.json b/foundations/net/packages/server/package.json index 4fc1492990..bc879112db 100644 --- a/foundations/net/packages/server/package.json +++ b/foundations/net/packages/server/package.json @@ -28,7 +28,7 @@ "_phase:validate": "compile validate" }, "devDependencies": { - "@hcengineering/platform-rig": "^0.7.8", + "@hcengineering/platform-rig": "^0.7.21", "@typescript-eslint/eslint-plugin": "^6.11.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-promise": "^6.1.1", diff --git a/foundations/net/pods/network-pod/package.json b/foundations/net/pods/network-pod/package.json index bc23dafc57..f23ddf7c9b 100644 --- a/foundations/net/pods/network-pod/package.json +++ b/foundations/net/pods/network-pod/package.json @@ -43,7 +43,7 @@ "start-flame": "rush bundle --to @hcengineering/network-pod && cross-env NODE_ENV=production MODEL_VERSION=$(node ../../common/scripts/show_version.js) ACCOUNTS_URL=http://localhost:3000 REKONI_URL=http://localhost:4004 MONGO_URL=mongodb://localhost:27017 FRONT_URL=http://localhost:8087 UPLOAD_URL=/upload MINIO_ENDPOINT=localhost MINIO_ACCESS_KEY=minioadmin MINIO_SECRET_KEY=minioadmin METRICS_CONSOLE=true SERVER_SECRET=secret MODEL_JSON=../../models/all/bundle/model.json clinic flame --dest ./out -- node --nolazy -r ts-node/register --enable-source-maps src/__start.ts" }, "devDependencies": { - "@hcengineering/platform-rig": "^0.7.8", + "@hcengineering/platform-rig": "^0.7.21", "@typescript-eslint/eslint-plugin": "^6.11.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-promise": "^6.1.1", diff --git a/foundations/net/pods/network-tool/package.json b/foundations/net/pods/network-tool/package.json index 7dc842d2d1..ee29bd1bba 100644 --- a/foundations/net/pods/network-tool/package.json +++ b/foundations/net/pods/network-tool/package.json @@ -44,7 +44,7 @@ "run": "(rushx bundle || true) && node bundle/bundle.js" }, "devDependencies": { - "@hcengineering/platform-rig": "^0.7.8", + "@hcengineering/platform-rig": "^0.7.21", "@typescript-eslint/eslint-plugin": "^6.11.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-promise": "^6.1.1", diff --git a/foundations/net/tests/package.json b/foundations/net/tests/package.json index 4b0d464be3..4157b455e6 100644 --- a/foundations/net/tests/package.json +++ b/foundations/net/tests/package.json @@ -19,7 +19,7 @@ "_phase:validate": "compile validate" }, "devDependencies": { - "@hcengineering/platform-rig": "^0.7.8", + "@hcengineering/platform-rig": "^0.7.21", "@types/compression": "~1.7.2", "@types/cors": "^2.8.19", "@types/express": "^4.17.13", diff --git a/foundations/utils/common/config/rush/pnpm-lock.yaml b/foundations/utils/common/config/rush/pnpm-lock.yaml index 6b016ac1c8..0f34961854 100644 --- a/foundations/utils/common/config/rush/pnpm-lock.yaml +++ b/foundations/utils/common/config/rush/pnpm-lock.yaml @@ -22,7 +22,7 @@ importers: specifier: ^0.25.10 version: 0.25.10 esbuild-plugin-copy: - specifier: ^2.1.1 + specifier: ~2.1.1 version: 2.1.1(esbuild@0.25.10) esbuild-svelte: specifier: ^0.9.3 @@ -49,7 +49,7 @@ importers: specifier: ^3.6.2 version: 3.6.2 prettier-plugin-svelte: - specifier: ^3.2.0 + specifier: ^3.4.0 version: 3.4.0(prettier@3.6.2)(svelte@4.2.20) svelte: specifier: ^4.2.20 @@ -80,8 +80,8 @@ importers: specifier: ^29.5.5 version: 29.5.14 '@types/node': - specifier: ^22.15.29 - version: 22.18.1 + specifier: ^24.13.3 + version: 24.13.3 '@typescript-eslint/eslint-plugin': specifier: ^6.21.0 version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) @@ -108,19 +108,19 @@ importers: version: 6.6.0(eslint@8.57.1) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.1) + version: 29.7.0(@types/node@24.13.3) sass: - specifier: ^1.53.0 + specifier: ^1.80.0 version: 1.93.2 svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: - specifier: ^5.1.3 + specifier: ^5.1.4 version: 5.1.4(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6))(postcss@8.5.6)(sass@1.93.2)(svelte@4.2.20)(typescript@5.9.3) ts-jest: specifier: ^29.1.1 - version: 29.4.1(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0(@types/node@22.18.1))(typescript@5.9.3) + version: 29.4.1(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0(@types/node@24.13.3))(typescript@5.9.3) ../scripts: devDependencies: @@ -739,8 +739,8 @@ packages: '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/node@22.18.1': - resolution: {integrity: sha512-rzSDyhn4cYznVG+PCzGe1lwuMYJrcBS1fc3JqSa2PvtABwWo+dZ1ij5OVok3tqfpEBCBoaR4d7upFJk73HRJDw==} + '@types/node@24.13.3': + resolution: {integrity: sha512-Dh8vAsV36ig5wa9OX4pXvMc9D3Veibfw2wix0CUwYODLD8nkj9UsLjASr49nPg+2eKzxhBV+v7L8pXvT4e639Q==} '@types/pug@2.0.10': resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==} @@ -2618,8 +2618,8 @@ packages: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} engines: {node: '>= 0.4'} - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + undici-types@7.18.2: + resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} @@ -3028,7 +3028,7 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 22.18.1 + '@types/node': 24.13.3 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -3041,14 +3041,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.18.1 + '@types/node': 24.13.3 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.18.1) + jest-config: 29.7.0(@types/node@24.13.3) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -3073,7 +3073,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.18.1 + '@types/node': 24.13.3 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -3091,7 +3091,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.18.1 + '@types/node': 24.13.3 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -3113,7 +3113,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.30 - '@types/node': 22.18.1 + '@types/node': 24.13.3 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -3183,7 +3183,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.18.1 + '@types/node': 24.13.3 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -3316,7 +3316,7 @@ snapshots: '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.18.1 + '@types/node': 24.13.3 '@types/istanbul-lib-coverage@2.0.6': {} @@ -3337,9 +3337,9 @@ snapshots: '@types/json5@0.0.29': {} - '@types/node@22.18.1': + '@types/node@24.13.3': dependencies: - undici-types: 6.21.0 + undici-types: 7.18.2 '@types/pug@2.0.10': {} @@ -3716,13 +3716,13 @@ snapshots: convert-source-map@2.0.0: {} - create-jest@29.7.0(@types/node@22.18.1): + create-jest@29.7.0(@types/node@24.13.3): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.18.1) + jest-config: 29.7.0(@types/node@24.13.3) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -4586,7 +4586,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.18.1 + '@types/node': 24.13.3 chalk: 4.1.2 co: 4.6.0 dedent: 1.7.0 @@ -4606,16 +4606,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@22.18.1): + jest-cli@29.7.0(@types/node@24.13.3): dependencies: '@jest/core': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.18.1) + create-jest: 29.7.0(@types/node@24.13.3) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@22.18.1) + jest-config: 29.7.0(@types/node@24.13.3) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -4625,7 +4625,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@22.18.1): + jest-config@29.7.0(@types/node@24.13.3): dependencies: '@babel/core': 7.28.4 '@jest/test-sequencer': 29.7.0 @@ -4650,7 +4650,7 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.18.1 + '@types/node': 24.13.3 transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -4679,7 +4679,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.18.1 + '@types/node': 24.13.3 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -4689,7 +4689,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 22.18.1 + '@types/node': 24.13.3 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -4728,7 +4728,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.18.1 + '@types/node': 24.13.3 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -4763,7 +4763,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.18.1 + '@types/node': 24.13.3 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -4791,7 +4791,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.18.1 + '@types/node': 24.13.3 chalk: 4.1.2 cjs-module-lexer: 1.4.3 collect-v8-coverage: 1.0.2 @@ -4837,7 +4837,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.18.1 + '@types/node': 24.13.3 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -4856,7 +4856,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.18.1 + '@types/node': 24.13.3 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -4865,17 +4865,17 @@ snapshots: jest-worker@29.7.0: dependencies: - '@types/node': 22.18.1 + '@types/node': 24.13.3 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@22.18.1): + jest@29.7.0(@types/node@24.13.3): dependencies: '@jest/core': 29.7.0 '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@22.18.1) + jest-cli: 29.7.0(@types/node@24.13.3) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -5530,12 +5530,12 @@ snapshots: dependencies: typescript: 5.9.3 - ts-jest@29.4.1(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0(@types/node@22.18.1))(typescript@5.9.3): + ts-jest@29.4.1(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0(@types/node@24.13.3))(typescript@5.9.3): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 handlebars: 4.7.9 - jest: 29.7.0(@types/node@22.18.1) + jest: 29.7.0(@types/node@24.13.3) json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 @@ -5614,7 +5614,7 @@ snapshots: has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 - undici-types@6.21.0: {} + undici-types@7.18.2: {} universalify@2.0.1: {} diff --git a/pods/link-preview/package.json b/pods/link-preview/package.json index 13140a47ce..bb837957ef 100644 --- a/pods/link-preview/package.json +++ b/pods/link-preview/package.json @@ -64,9 +64,9 @@ "dotenv": "^16.4.5", "express": "^4.21.2", "cors": "^2.8.6", - "morgan": "^1.10.0", - "cheerio": "^1.1.2", + "morgan": "^1.11.0", + "cheerio": "^1.2.0", "image-size": "^1.2.1", - "oembed-providers": "~1.0.20260106" + "oembed-providers": "~1.0.20260604" } } diff --git a/pods/preview/package.json b/pods/preview/package.json index 15e8c2dc09..0b3f3f938f 100644 --- a/pods/preview/package.json +++ b/pods/preview/package.json @@ -68,7 +68,7 @@ "dotenv": "^16.4.5", "express": "^4.21.2", "cors": "^2.8.6", - "morgan": "^1.10.0", + "morgan": "^1.11.0", "node-poppler": "^8.0.4", "lru-cache": "^11.1.0", "heic-decode": "^2.1.0", diff --git a/pods/server/package.json b/pods/server/package.json index f36a653070..ff923df7d7 100644 --- a/pods/server/package.json +++ b/pods/server/package.json @@ -97,7 +97,7 @@ "snappy": "^7.2.2", "ws": "^8.21.0", "@hcengineering/account-client": "workspace:^0.7.25", - "morgan": "^1.10.0", + "morgan": "^1.11.0", "body-parser": "^1.20.3", "cors": "^2.8.6", "express": "^4.21.2" diff --git a/server/front/package.json b/server/front/package.json index 4d5f5b90e2..16d681773d 100644 --- a/server/front/package.json +++ b/server/front/package.json @@ -62,7 +62,7 @@ "sharp": "~0.35.3", "@hcengineering/minio": "workspace:^0.7.18", "@hcengineering/mongo": "workspace:^0.7.16", - "morgan": "^1.10.0", + "morgan": "^1.11.0", "@hcengineering/analytics": "workspace:^0.7.19" } } diff --git a/services/backup/backup-api-pod/package.json b/services/backup/backup-api-pod/package.json index ba6b005d8c..8663dacd58 100644 --- a/services/backup/backup-api-pod/package.json +++ b/services/backup/backup-api-pod/package.json @@ -70,6 +70,6 @@ "express": "^4.21.2", "postgres": "^3.4.7", "sharp": "~0.35.3", - "morgan": "^1.10.0" + "morgan": "^1.11.0" } } diff --git a/services/billing/pod-billing/package.json b/services/billing/pod-billing/package.json index 70a9e6d62a..cbec6238af 100644 --- a/services/billing/pod-billing/package.json +++ b/services/billing/pod-billing/package.json @@ -71,7 +71,7 @@ "cors": "^2.8.6", "dotenv": "^16.4.5", "express": "^4.21.2", - "morgan": "^1.10.0", + "morgan": "^1.11.0", "postgres": "^3.4.7", "on-headers": "^1.0.2", "uuid": "^11.1.1" diff --git a/services/datalake/pod-datalake/package.json b/services/datalake/pod-datalake/package.json index 6d2e65f8bf..a5deb72174 100644 --- a/services/datalake/pod-datalake/package.json +++ b/services/datalake/pod-datalake/package.json @@ -75,7 +75,7 @@ "@aws-sdk/s3-request-presigner": "^3.1107.0", "@aws-sdk/lib-storage": "^3.1107.0", "@smithy/node-http-handler": "^4.0.2", - "morgan": "^1.10.0", + "morgan": "^1.11.0", "on-headers": "^1.0.2", "lru-cache": "^11.1.0", "uuid": "^11.1.1" diff --git a/services/payment/pod-payment/package.json b/services/payment/pod-payment/package.json index 6524e4d70f..5840db49af 100644 --- a/services/payment/pod-payment/package.json +++ b/services/payment/pod-payment/package.json @@ -72,7 +72,7 @@ "dotenv": "^16.4.5", "express": "^4.21.2", "express-rate-limit": "^7.4.0", - "morgan": "^1.10.0", + "morgan": "^1.11.0", "postgres": "^3.4.7", "on-headers": "^1.0.2", "uuid": "^11.1.1" diff --git a/services/rekoni/package.json b/services/rekoni/package.json index 14c2eb35e7..29e8d4ffd3 100644 --- a/services/rekoni/package.json +++ b/services/rekoni/package.json @@ -80,7 +80,7 @@ "mime-types": "~2.1.34", "pdfjs-dist": "6.2.108", "sharp": "~0.35.3", - "morgan": "^1.10.0", + "morgan": "^1.11.0", "@hcengineering/server-core": "workspace:^0.7.19", "@hcengineering/server-client": "workspace:^0.7.16", "@hcengineering/server-token": "workspace:^0.7.18", From 9407a271e2189669514de976c38cdba70da2ba69 Mon Sep 17 00:00:00 2001 From: Alexander Onnikov Date: Mon, 24 Aug 2026 12:23:52 +0700 Subject: [PATCH 12/55] chore: update postcss dependency Signed-off-by: Alexander Onnikov (ported from TraceX 0b7af71091) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- desktop/package.json | 2 +- dev/prod/package.json | 2 +- .../net/common/config/rush/pnpm-lock.yaml | 41 +++---------------- foundations/net/examples/package.json | 2 +- foundations/net/packages/client/package.json | 2 +- plugins/achievement-resources/package.json | 2 +- plugins/communication-resources/package.json | 2 +- templates/package/package.json | 2 +- 8 files changed, 12 insertions(+), 43 deletions(-) diff --git a/desktop/package.json b/desktop/package.json index 4e0e34eebe..362ce97398 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -49,7 +49,7 @@ "webpack-bundle-analyzer": "^4.10.2", "svgo-loader": "^3.0.0", "autoprefixer": "^10.4.14", - "postcss": "^8.4.20", + "postcss": "^8.5.26", "postcss-loader": "^7.0.2", "postcss-load-config": "^4.0.1", "compression-webpack-plugin": "^10.0.0", diff --git a/dev/prod/package.json b/dev/prod/package.json index 556e9afe42..bd292313a3 100644 --- a/dev/prod/package.json +++ b/dev/prod/package.json @@ -43,7 +43,7 @@ "fork-ts-checker-webpack-plugin": "^9.0.2", "html-webpack-plugin": "^5.5.0", "mini-css-extract-plugin": "^2.2.0", - "postcss": "^8.4.20", + "postcss": "^8.5.26", "postcss-load-config": "^4.0.1", "postcss-loader": "^7.0.2", "sass": "^1.80.0", diff --git a/foundations/net/common/config/rush/pnpm-lock.yaml b/foundations/net/common/config/rush/pnpm-lock.yaml index 3ebbd85b07..e44f778ccc 100644 --- a/foundations/net/common/config/rush/pnpm-lock.yaml +++ b/foundations/net/common/config/rush/pnpm-lock.yaml @@ -27,10 +27,10 @@ importers: version: 24.13.3 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@24.13.3)(typescript@5.9.2) + version: 10.9.2(@types/node@24.13.3)(typescript@5.9.3) typescript: - specifier: ^5.9.2 - version: 5.9.2 + specifier: ^5.9.3 + version: 5.9.3 ../../packages/backrpc: dependencies: @@ -99,8 +99,8 @@ importers: specifier: workspace:^0.7.10 version: link:../core uuid: - specifier: ^14.0.2 - version: 14.0.2 + specifier: ^11.1.1 + version: 11.1.1 devDependencies: '@hcengineering/platform-rig': specifier: ^0.7.21 @@ -3044,11 +3044,6 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} - typescript@5.9.2: - resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==} - engines: {node: '>=14.17'} - hasBin: true - typescript@5.9.3: resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} @@ -3086,10 +3081,6 @@ packages: resolution: {integrity: sha512-vIYxrBCC/N/K+Js3qSN88go7kIfNPssr/hHCesKCQNAjmgvYS2oqr69kIufEG+O4+PfezOH4EbIeHCfFov8ZgQ==} hasBin: true - uuid@14.0.2: - resolution: {integrity: sha512-xZe/16rV4aa+HGSOCiY2YeLT1OybRLrrkL/Rqaq7p7GMVXjFh+6wN4oMYgjFmnSnhY8t6Xpdl2l9qmnHYuMHwQ==} - hasBin: true - v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} @@ -6122,24 +6113,6 @@ snapshots: esbuild: 0.24.2 jest-util: 29.7.0 - ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.2): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 24.13.3 - acorn: 8.15.0 - acorn-walk: 8.3.4 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.9.2 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -6210,8 +6183,6 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript@5.9.2: {} - typescript@5.9.3: {} uglify-js@3.19.3: @@ -6242,8 +6213,6 @@ snapshots: uuid@11.1.1: {} - uuid@14.0.2: {} - v8-compile-cache-lib@3.0.1: {} v8-to-istanbul@9.3.0: diff --git a/foundations/net/examples/package.json b/foundations/net/examples/package.json index 0b2f2a54ac..86821827e6 100644 --- a/foundations/net/examples/package.json +++ b/foundations/net/examples/package.json @@ -28,6 +28,6 @@ "devDependencies": { "@types/node": "^24.13.3", "ts-node": "^10.9.2", - "typescript": "^5.9.2" + "typescript": "^5.9.3" } } diff --git a/foundations/net/packages/client/package.json b/foundations/net/packages/client/package.json index 8314f07956..79fe7cf734 100644 --- a/foundations/net/packages/client/package.json +++ b/foundations/net/packages/client/package.json @@ -47,7 +47,7 @@ "dependencies": { "@hcengineering/network-core": "workspace:^0.7.10", "@hcengineering/network-backrpc": "workspace:^0.7.10", - "uuid": "^14.0.2" + "uuid": "^11.1.1" }, "repository": "https://github.com/hcengineering/huly.net", "exports": { diff --git a/plugins/achievement-resources/package.json b/plugins/achievement-resources/package.json index 9e4efa79ac..b046f3e871 100644 --- a/plugins/achievement-resources/package.json +++ b/plugins/achievement-resources/package.json @@ -34,7 +34,7 @@ "svelte-check": "^3.6.9", "svelte-preprocess": "^5.1.4", "svelte-loader": "^3.2.0", - "postcss": "^8.4.20", + "postcss": "^8.5.26", "autoprefixer": "^10.4.14", "tailwindcss": "^3.3.5", "sass": "^1.80.0", diff --git a/plugins/communication-resources/package.json b/plugins/communication-resources/package.json index b3bd449fc2..e49539df1e 100644 --- a/plugins/communication-resources/package.json +++ b/plugins/communication-resources/package.json @@ -34,7 +34,7 @@ "svelte-check": "^3.6.9", "svelte-preprocess": "^5.1.4", "svelte-loader": "^3.2.0", - "postcss": "^8.4.20", + "postcss": "^8.5.26", "autoprefixer": "^10.4.14", "tailwindcss": "^3.3.5", "sass": "^1.80.0", diff --git a/templates/package/package.json b/templates/package/package.json index d3d69ca582..f7cb1a1d33 100644 --- a/templates/package/package.json +++ b/templates/package/package.json @@ -20,7 +20,7 @@ "webpack-bundle-analyzer": "^4.10.2", "svgo-loader": "^3.0.0", "autoprefixer": "^10.4.14", - "postcss": "^8.4.20", + "postcss": "^8.5.26", "postcss-loader": "^7.0.2", "postcss-load-config": "^4.0.1", "compression-webpack-plugin": "^10.0.0", From cc808426f8cd5aca48cc8ba24f87b32b14810cb2 Mon Sep 17 00:00:00 2001 From: Alexander Onnikov Date: Mon, 24 Aug 2026 12:27:42 +0700 Subject: [PATCH 13/55] chore: update docx4js Signed-off-by: Alexander Onnikov (ported from TraceX 6824712b0b) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- dev/doc-import-tool/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/doc-import-tool/package.json b/dev/doc-import-tool/package.json index 81a511ab24..5a003b3dfe 100644 --- a/dev/doc-import-tool/package.json +++ b/dev/doc-import-tool/package.json @@ -60,7 +60,7 @@ "domutils": "^3.1.0", "htmlparser2": "^9.0.0", "mammoth": "^1.9.0", - "docx4js": "^3.2.20", + "docx4js": "^3.3.0", "zod": "^3.22.4" } } From 6f4d4d7c6c39cc2d8d0493e1e3abf39d896becb4 Mon Sep 17 00:00:00 2001 From: Alexander Onnikov Date: Mon, 24 Aug 2026 12:34:55 +0700 Subject: [PATCH 14/55] chore: update js-yaml Signed-off-by: Alexander Onnikov (ported from TraceX 8f5e2fd401) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- dev/import-tool/package.json | 2 +- packages/importer/package.json | 2 +- server/tool/package.json | 2 +- services/export/pod-export/package.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dev/import-tool/package.json b/dev/import-tool/package.json index d647e89eb3..d9ca1167eb 100644 --- a/dev/import-tool/package.json +++ b/dev/import-tool/package.json @@ -61,7 +61,7 @@ "@hcengineering/server-client": "workspace:^0.7.16", "@hcengineering/importer": "workspace:^0.7.0", "commander": "^14.0.0", - "js-yaml": "^4.1.0", + "js-yaml": "^4.3.1", "mammoth": "^1.9.0" } } diff --git a/packages/importer/package.json b/packages/importer/package.json index 03bab30fe3..16830a600f 100644 --- a/packages/importer/package.json +++ b/packages/importer/package.json @@ -57,7 +57,7 @@ "commander": "^14.0.0", "mime-types": "~2.1.34", "csvtojson": "^2.0.10", - "js-yaml": "^4.1.0", + "js-yaml": "^4.3.1", "image-size": "^1.2.1", "uuid": "^11.1.1" }, diff --git a/server/tool/package.json b/server/tool/package.json index 5b5b213811..60266fbd7d 100644 --- a/server/tool/package.json +++ b/server/tool/package.json @@ -58,6 +58,6 @@ "fast-equals": "^5.2.2", "@hcengineering/text": "workspace:^0.7.19", "@hcengineering/text-markdown": "workspace:^0.7.21", - "js-yaml": "^4.1.0" + "js-yaml": "^4.3.1" } } diff --git a/services/export/pod-export/package.json b/services/export/pod-export/package.json index c2e6474091..2f66135ffb 100644 --- a/services/export/pod-export/package.json +++ b/services/export/pod-export/package.json @@ -88,7 +88,7 @@ "uuid": "^11.1.1", "tar": "^7.5.21", "archiver": "^7.0.1", - "js-yaml": "^4.1.0", + "js-yaml": "^4.3.1", "csv-stringify": "^6.5.2" } } From c306cc671fa7711b7f5362ae0beaebf9bcbb3206 Mon Sep 17 00:00:00 2001 From: Alexander Onnikov Date: Mon, 24 Aug 2026 14:36:05 +0700 Subject: [PATCH 15/55] fix: downgrade postcss to 8.5.16 Signed-off-by: Alexander Onnikov (ported from TraceX 846895bf86) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- desktop/package.json | 2 +- dev/prod/package.json | 2 +- .../net/common/config/rush/pnpm-lock.yaml | 41 ++++++++++++++++--- foundations/net/examples/package.json | 2 +- foundations/net/packages/client/package.json | 2 +- plugins/achievement-resources/package.json | 2 +- plugins/communication-resources/package.json | 2 +- templates/package/package.json | 2 +- 8 files changed, 43 insertions(+), 12 deletions(-) diff --git a/desktop/package.json b/desktop/package.json index 362ce97398..c9bf21b593 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -49,7 +49,7 @@ "webpack-bundle-analyzer": "^4.10.2", "svgo-loader": "^3.0.0", "autoprefixer": "^10.4.14", - "postcss": "^8.5.26", + "postcss": "8.5.16", "postcss-loader": "^7.0.2", "postcss-load-config": "^4.0.1", "compression-webpack-plugin": "^10.0.0", diff --git a/dev/prod/package.json b/dev/prod/package.json index bd292313a3..02dbc51517 100644 --- a/dev/prod/package.json +++ b/dev/prod/package.json @@ -43,7 +43,7 @@ "fork-ts-checker-webpack-plugin": "^9.0.2", "html-webpack-plugin": "^5.5.0", "mini-css-extract-plugin": "^2.2.0", - "postcss": "^8.5.26", + "postcss": "8.5.16", "postcss-load-config": "^4.0.1", "postcss-loader": "^7.0.2", "sass": "^1.80.0", diff --git a/foundations/net/common/config/rush/pnpm-lock.yaml b/foundations/net/common/config/rush/pnpm-lock.yaml index e44f778ccc..3ebbd85b07 100644 --- a/foundations/net/common/config/rush/pnpm-lock.yaml +++ b/foundations/net/common/config/rush/pnpm-lock.yaml @@ -27,10 +27,10 @@ importers: version: 24.13.3 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@24.13.3)(typescript@5.9.3) + version: 10.9.2(@types/node@24.13.3)(typescript@5.9.2) typescript: - specifier: ^5.9.3 - version: 5.9.3 + specifier: ^5.9.2 + version: 5.9.2 ../../packages/backrpc: dependencies: @@ -99,8 +99,8 @@ importers: specifier: workspace:^0.7.10 version: link:../core uuid: - specifier: ^11.1.1 - version: 11.1.1 + specifier: ^14.0.2 + version: 14.0.2 devDependencies: '@hcengineering/platform-rig': specifier: ^0.7.21 @@ -3044,6 +3044,11 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} + typescript@5.9.2: + resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==} + engines: {node: '>=14.17'} + hasBin: true + typescript@5.9.3: resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} @@ -3081,6 +3086,10 @@ packages: resolution: {integrity: sha512-vIYxrBCC/N/K+Js3qSN88go7kIfNPssr/hHCesKCQNAjmgvYS2oqr69kIufEG+O4+PfezOH4EbIeHCfFov8ZgQ==} hasBin: true + uuid@14.0.2: + resolution: {integrity: sha512-xZe/16rV4aa+HGSOCiY2YeLT1OybRLrrkL/Rqaq7p7GMVXjFh+6wN4oMYgjFmnSnhY8t6Xpdl2l9qmnHYuMHwQ==} + hasBin: true + v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} @@ -6113,6 +6122,24 @@ snapshots: esbuild: 0.24.2 jest-util: 29.7.0 + ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.2): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 24.13.3 + acorn: 8.15.0 + acorn-walk: 8.3.4 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.9.2 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -6183,6 +6210,8 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 + typescript@5.9.2: {} + typescript@5.9.3: {} uglify-js@3.19.3: @@ -6213,6 +6242,8 @@ snapshots: uuid@11.1.1: {} + uuid@14.0.2: {} + v8-compile-cache-lib@3.0.1: {} v8-to-istanbul@9.3.0: diff --git a/foundations/net/examples/package.json b/foundations/net/examples/package.json index 86821827e6..0b2f2a54ac 100644 --- a/foundations/net/examples/package.json +++ b/foundations/net/examples/package.json @@ -28,6 +28,6 @@ "devDependencies": { "@types/node": "^24.13.3", "ts-node": "^10.9.2", - "typescript": "^5.9.3" + "typescript": "^5.9.2" } } diff --git a/foundations/net/packages/client/package.json b/foundations/net/packages/client/package.json index 79fe7cf734..8314f07956 100644 --- a/foundations/net/packages/client/package.json +++ b/foundations/net/packages/client/package.json @@ -47,7 +47,7 @@ "dependencies": { "@hcengineering/network-core": "workspace:^0.7.10", "@hcengineering/network-backrpc": "workspace:^0.7.10", - "uuid": "^11.1.1" + "uuid": "^14.0.2" }, "repository": "https://github.com/hcengineering/huly.net", "exports": { diff --git a/plugins/achievement-resources/package.json b/plugins/achievement-resources/package.json index b046f3e871..e515ba066a 100644 --- a/plugins/achievement-resources/package.json +++ b/plugins/achievement-resources/package.json @@ -34,7 +34,7 @@ "svelte-check": "^3.6.9", "svelte-preprocess": "^5.1.4", "svelte-loader": "^3.2.0", - "postcss": "^8.5.26", + "postcss": "8.5.16", "autoprefixer": "^10.4.14", "tailwindcss": "^3.3.5", "sass": "^1.80.0", diff --git a/plugins/communication-resources/package.json b/plugins/communication-resources/package.json index e49539df1e..a8a73a6450 100644 --- a/plugins/communication-resources/package.json +++ b/plugins/communication-resources/package.json @@ -34,7 +34,7 @@ "svelte-check": "^3.6.9", "svelte-preprocess": "^5.1.4", "svelte-loader": "^3.2.0", - "postcss": "^8.5.26", + "postcss": "8.5.16", "autoprefixer": "^10.4.14", "tailwindcss": "^3.3.5", "sass": "^1.80.0", diff --git a/templates/package/package.json b/templates/package/package.json index f7cb1a1d33..8f34e08ab7 100644 --- a/templates/package/package.json +++ b/templates/package/package.json @@ -20,7 +20,7 @@ "webpack-bundle-analyzer": "^4.10.2", "svgo-loader": "^3.0.0", "autoprefixer": "^10.4.14", - "postcss": "^8.5.26", + "postcss": "8.5.16", "postcss-loader": "^7.0.2", "postcss-load-config": "^4.0.1", "compression-webpack-plugin": "^10.0.0", From 8629365d69cb26973a4bf5fabeebe51799707fe4 Mon Sep 17 00:00:00 2001 From: Alexander Onnikov Date: Thu, 3 Sep 2026 22:30:54 +0700 Subject: [PATCH 16/55] chore: update nodemailer Signed-off-by: Alexander Onnikov (ported from TraceX ba49502091) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- services/mail/pod-mail/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/mail/pod-mail/package.json b/services/mail/pod-mail/package.json index 20db10199e..b9288503df 100644 --- a/services/mail/pod-mail/package.json +++ b/services/mail/pod-mail/package.json @@ -49,12 +49,12 @@ "@tsconfig/node16": "^1.0.4", "@types/cors": "^2.8.19", "@types/express": "^4.17.13", + "@types/nodemailer": "^8.0.1", "eslint-plugin-node": "^11.1.0", "typescript": "^5.9.3" }, "dependencies": { "@aws-sdk/client-ses": "^3.1107.0", - "@types/nodemailer": "^6.4.17", "@hcengineering/analytics": "workspace:^0.7.19", "@hcengineering/analytics-service": "workspace:^0.7.19", "@hcengineering/core": "workspace:^0.7.26", @@ -63,6 +63,6 @@ "dotenv": "^16.4.5", "express": "^4.21.2", "lru-cache": "^11.1.0", - "nodemailer": "^6.10.0" + "nodemailer": "^9.1.1" } } From 56bb8ccdd80eab2fb3949355359928a638abb948 Mon Sep 17 00:00:00 2001 From: Alexander Onnikov Date: Thu, 3 Sep 2026 23:01:39 +0700 Subject: [PATCH 17/55] chore: update love-agent dependencies Signed-off-by: Alexander Onnikov (ported from TraceX d6b4f4e5dc) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- services/ai-bot/love-agent/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/services/ai-bot/love-agent/package.json b/services/ai-bot/love-agent/package.json index 52e891e8e9..f84840cc4a 100644 --- a/services/ai-bot/love-agent/package.json +++ b/services/ai-bot/love-agent/package.json @@ -34,9 +34,9 @@ "typescript": "^5.9.3" }, "dependencies": { - "@deepgram/sdk": "^4.11.2", - "@livekit/agents": "^0.7.4", - "@livekit/rtc-node": "^0.13.11", + "@deepgram/sdk": "^5.9.0", + "@livekit/agents": "^1.7.1", + "@livekit/rtc-node": "^0.13.34", "dotenv": "^16.4.5", "ws": "^8.21.0" }, From 256ab29de093aefbb13ea62a579b5e33fcef67a9 Mon Sep 17 00:00:00 2001 From: Alexander Onnikov Date: Fri, 4 Sep 2026 10:08:55 +0700 Subject: [PATCH 18/55] fix: update bitrix and rekoni dependencies Signed-off-by: Alexander Onnikov (ported from TraceX 5d632af0b7) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- plugins/bitrix-resources/package.json | 2 +- plugins/bitrix/package.json | 2 +- plugins/text-editor-resources/package.json | 2 +- services/rekoni/package.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/bitrix-resources/package.json b/plugins/bitrix-resources/package.json index 59c7cc6c55..3933731794 100644 --- a/plugins/bitrix-resources/package.json +++ b/plugins/bitrix-resources/package.json @@ -54,7 +54,7 @@ "@hcengineering/setting-resources": "workspace:^0.7.0", "@hcengineering/chunter": "workspace:^0.7.0", "p-queue": "~7.3.0", - "qs": "~6.11.0", + "qs": "~6.16.0", "@hcengineering/tags": "workspace:^0.7.0", "@hcengineering/tags-resources": "workspace:^0.7.0", "fast-equals": "^5.2.2", diff --git a/plugins/bitrix/package.json b/plugins/bitrix/package.json index c55cc50a03..797ac6f681 100644 --- a/plugins/bitrix/package.json +++ b/plugins/bitrix/package.json @@ -49,7 +49,7 @@ "@hcengineering/tags": "workspace:^0.7.0", "@hcengineering/task": "workspace:^0.7.0", "fast-equals": "^5.2.2", - "qs": "~6.11.0" + "qs": "~6.16.0" }, "repository": { "type": "git", diff --git a/plugins/text-editor-resources/package.json b/plugins/text-editor-resources/package.json index b5d3b89c92..8c82d16ba1 100644 --- a/plugins/text-editor-resources/package.json +++ b/plugins/text-editor-resources/package.json @@ -98,7 +98,7 @@ "slugify": "^1.6.6", "lib0": "^0.2.109", "lowlight": "^3.3.0", - "mermaid": "^11.12.0", + "mermaid": "^11.17.2", "@hcengineering/theme": "workspace:^0.7.0", "tippy.js": "~6.3.7", "@hcengineering/activity": "workspace:^0.7.0", diff --git a/services/rekoni/package.json b/services/rekoni/package.json index 29e8d4ffd3..bb22ae3b4d 100644 --- a/services/rekoni/package.json +++ b/services/rekoni/package.json @@ -71,7 +71,7 @@ "dotenv": "^16.4.5", "email-addresses": "^5.0.0", "express": "^4.21.2", - "express-form-data": "^2.0.22", + "express-form-data": "^3.0.1", "html-to-text": "^9.0.3", "jimp": "^0.16.1", "jwt-simple": "^0.5.6", From 4eb23bd32451700834634819e6225facc13f65f4 Mon Sep 17 00:00:00 2001 From: Artem Savchenko Date: Wed, 19 Aug 2026 20:28:57 +0700 Subject: [PATCH 19/55] chore: update ESLint and Jest Signed-off-by: Artem Savchenko (ported from TraceX a9e08f3d80) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- common/scripts/package.json | 14 +- desktop-package/package.json | 14 +- desktop/package.json | 22 +- dev/doc-import-tool/package.json | 22 +- dev/import-tool/package.json | 22 +- dev/prod/package.json | 7 + dev/tool/package.json | 22 +- .../core/common/config/rush/pnpm-lock.yaml | 3830 +++++++++-------- foundations/core/common/scripts/package.json | 16 +- .../core/packages/account-client/package.json | 21 +- .../packages/analytics-service/package.json | 21 +- .../core/packages/analytics/package.json | 21 +- .../core/packages/api-client/package.json | 21 +- .../packages/client-resources/package.json | 21 +- foundations/core/packages/client/package.json | 21 +- .../packages/collaborator-client/package.json | 21 +- foundations/core/packages/core/package.json | 21 +- .../core/src/__tests__/client.test.ts | 38 +- .../packages/core/src/__tests__/connection.ts | 36 +- .../core/src/__tests__/hierarchy.test.ts | 46 +- .../src/__tests__/limiter-edge-cases.test.ts | 5 +- .../core/src/__tests__/limits.test.ts | 4 +- .../packages/core/src/__tests__/memdb.test.ts | 18 +- .../packages/core/src/__tests__/minmodel.ts | 12 +- .../packages/core/src/__tests__/query.test.ts | 2 +- .../core/src/__tests__/rate-limiter.test.ts | 4 +- .../packages/core/src/__tests__/time.test.ts | 6 +- .../core/packages/core/src/autoJoinRoles.ts | 2 +- foundations/core/packages/core/src/backup.ts | 4 +- .../core/packages/core/src/benchmark.ts | 10 +- foundations/core/packages/core/src/classes.ts | 16 +- foundations/core/packages/core/src/client.ts | 56 +- foundations/core/packages/core/src/clone.ts | 12 +- .../core/packages/core/src/collaboration.ts | 8 +- .../core/packages/core/src/collaborators.ts | 2 +- foundations/core/packages/core/src/common.ts | 6 +- .../core/packages/core/src/component.ts | 4 +- .../core/packages/core/src/hierarchy.ts | 104 +- foundations/core/packages/core/src/index.ts | 6 +- foundations/core/packages/core/src/memdb.ts | 44 +- .../core/packages/core/src/objvalue.ts | 12 +- .../core/packages/core/src/operations.ts | 116 +- .../core/packages/core/src/operator.ts | 36 +- .../core/packages/core/src/predicate.ts | 86 +- foundations/core/packages/core/src/proxy.ts | 24 +- foundations/core/packages/core/src/query.ts | 32 +- foundations/core/packages/core/src/server.ts | 14 +- foundations/core/packages/core/src/status.ts | 4 +- foundations/core/packages/core/src/storage.ts | 24 +- foundations/core/packages/core/src/time.ts | 16 +- foundations/core/packages/core/src/tx.ts | 40 +- foundations/core/packages/core/src/utils.ts | 145 +- .../packages/hulylake-client/package.json | 21 +- .../packages/measurements-otlp/package.json | 21 +- .../core/packages/measurements/package.json | 21 +- foundations/core/packages/model/package.json | 21 +- .../core/packages/platform/package.json | 21 +- .../platform/src/__tests__/ident.test.ts | 4 +- .../core/packages/postgres-base/package.json | 21 +- foundations/core/packages/query/package.json | 21 +- foundations/core/packages/rank/package.json | 21 +- foundations/core/packages/retry/package.json | 21 +- foundations/core/packages/rpc/package.json | 21 +- .../core/packages/storage-client/package.json | 20 +- .../core/packages/storage/package.json | 21 +- .../core/packages/text-core/package.json | 21 +- .../core/packages/text-html/package.json | 21 +- .../core/packages/text-markdown/package.json | 21 +- .../core/packages/text-ydoc/package.json | 21 +- foundations/core/packages/text/package.json | 21 +- foundations/core/packages/token/package.json | 21 +- .../server/packages/client/package.json | 21 +- .../packages/collaboration/package.json | 21 +- foundations/server/packages/core/package.json | 21 +- .../src/__tests__/performance-benchmark.ts | 2 +- .../core/src/__tests__/shared-integration.ts | 8 +- .../packages/core/src/__tests__/utils.test.ts | 2 +- foundations/server/packages/core/src/base.ts | 28 +- .../packages/core/src/benchmark/index.ts | 8 +- .../server/packages/core/src/content.ts | 6 +- .../packages/core/src/dbAdapterManager.ts | 24 +- .../server/packages/core/src/domainHelper.ts | 6 +- foundations/server/packages/core/src/index.ts | 4 +- foundations/server/packages/core/src/mem.ts | 32 +- .../server/packages/core/src/nullAdapter.ts | 2 +- .../server/packages/core/src/pipeline.ts | 20 +- .../packages/core/src/queue/dummyQueue.ts | 20 +- .../server/packages/core/src/queue/users.ts | 4 +- .../server/packages/core/src/queue/utils.ts | 2 +- .../server/packages/core/src/service.ts | 10 +- foundations/server/packages/core/src/stats.ts | 6 +- .../server/packages/core/src/storage.ts | 26 +- .../server/packages/core/src/triggers.ts | 16 +- foundations/server/packages/core/src/types.ts | 26 +- foundations/server/packages/core/src/utils.ts | 66 +- .../server/packages/datalake/package.json | 21 +- .../server/packages/elastic/package.json | 21 +- .../server/packages/hulylake/package.json | 21 +- .../server/packages/kafka/package.json | 21 +- .../server/packages/middleware/package.json | 21 +- .../server/packages/middleware/src/applyTx.ts | 14 +- .../packages/middleware/src/broadcast.ts | 14 +- .../packages/middleware/src/configuration.ts | 6 +- .../packages/middleware/src/contextName.ts | 6 +- .../packages/middleware/src/dbAdapter.ts | 8 +- .../middleware/src/dbAdapterHelper.ts | 2 +- .../packages/middleware/src/derivedEntry.ts | 2 +- .../packages/middleware/src/domainFind.ts | 4 +- .../packages/middleware/src/domainTx.ts | 6 +- .../packages/middleware/src/findSecurity.ts | 4 +- .../packages/middleware/src/fulltext.ts | 28 +- .../middleware/src/guestPermissions.ts | 37 +- .../packages/middleware/src/identifier.ts | 14 +- .../packages/middleware/src/identity.ts | 8 +- .../packages/middleware/src/liveQuery.ts | 12 +- .../server/packages/middleware/src/lookup.ts | 10 +- .../packages/middleware/src/lowLevel.ts | 14 +- .../server/packages/middleware/src/model.ts | 20 +- .../packages/middleware/src/modified.ts | 8 +- .../packages/middleware/src/normalizeTx.ts | 28 +- .../packages/middleware/src/pluginConfig.ts | 8 +- .../server/packages/middleware/src/private.ts | 10 +- .../packages/middleware/src/queryJoin.ts | 12 +- .../server/packages/middleware/src/queue.ts | 6 +- .../server/packages/middleware/src/rank.ts | 10 +- .../middleware/src/spacePermissions.ts | 55 +- .../packages/middleware/src/spaceSecurity.ts | 65 +- .../src/tests/guestPermissions.test.ts | 28 +- .../src/tests/liveQuery.race.test.ts | 24 +- .../middleware/src/tests/txOrdering.test.ts | 20 +- .../packages/middleware/src/transient.ts | 10 +- .../packages/middleware/src/triggers.ts | 36 +- .../packages/middleware/src/txOrdering.ts | 6 +- .../server/packages/middleware/src/txPush.ts | 6 +- .../packages/middleware/src/userStatus.ts | 8 +- .../server/packages/middleware/src/utils.ts | 6 +- .../packages/middleware/src/versioning.ts | 8 +- .../server/packages/minio/package.json | 21 +- .../server/packages/mongo/package.json | 21 +- .../server/packages/postgres/package.json | 21 +- foundations/server/packages/s3/package.json | 21 +- .../packages/server-storage/package.json | 21 +- .../server/packages/server/package.json | 21 +- .../server/packages/server/src/client.ts | 72 +- ...-eslint-dependencies_2026-08-19-12-00.json | 10 + .../utils/packages/platform-rig/bin/format.js | 59 +- .../utils/packages/platform-rig/package.json | 17 +- .../profiles/legacy-compatibility-rules.json | 124 + .../utils/packages/ui-test/package.json | 21 +- models/achievement/package.json | 20 +- models/activity/package.json | 20 +- models/activity/src/index.ts | 40 +- models/ai-assistant/package.json | 20 +- models/ai-bot/package.json | 20 +- models/all/package.json | 20 +- models/analytics-collector/package.json | 20 +- models/attachment/package.json | 20 +- models/attachment/src/index.ts | 22 +- models/billing/package.json | 20 +- models/bitrix/package.json | 20 +- models/board/package.json | 20 +- models/calendar/package.json | 20 +- models/card/package.json | 20 +- models/chunter/package.json | 20 +- models/chunter/src/index.ts | 2 +- models/communication/package.json | 20 +- models/contact/package.json | 20 +- models/contact/src/index.ts | 66 +- models/controlled-documents/package.json | 20 +- models/controlled-documents/src/index.ts | 12 +- models/converter/package.json | 20 +- models/core/package.json | 20 +- models/core/src/index.ts | 2 +- models/core/src/security.ts | 50 +- models/core/src/spaceType.ts | 2 +- models/desktop-downloads/package.json | 20 +- models/desktop-preferences/package.json | 20 +- models/document/package.json | 20 +- models/drive/package.json | 20 +- models/emoji/package.json | 20 +- models/export/package.json | 20 +- models/gmail/package.json | 20 +- models/guest/package.json | 20 +- models/guest/src/index.ts | 2 +- models/hr/package.json | 20 +- models/hr/src/index.ts | 42 +- models/huly-mail/package.json | 20 +- models/inbox/package.json | 20 +- models/inventory/package.json | 20 +- models/lead/package.json | 20 +- models/love/package.json | 20 +- models/love/src/index.ts | 72 +- models/mail/package.json | 20 +- models/media/package.json | 20 +- models/notification/package.json | 20 +- models/notification/src/index.ts | 52 +- models/preference/package.json | 20 +- models/presence/package.json | 20 +- models/presentation/package.json | 20 +- models/print/package.json | 20 +- models/process/package.json | 20 +- models/products/package.json | 20 +- models/pulse/package.json | 20 +- models/pulse/src/index.ts | 2 +- models/questions/package.json | 22 +- models/rating/package.json | 20 +- models/recorder/package.json | 20 +- models/recruit/package.json | 20 +- models/request/package.json | 20 +- models/server-activity/package.json | 20 +- models/server-ai-bot/package.json | 20 +- models/server-attachment/package.json | 20 +- models/server-calendar/package.json | 20 +- models/server-card/package.json | 20 +- models/server-chunter/package.json | 20 +- models/server-collaboration/package.json | 20 +- models/server-contact/package.json | 20 +- .../server-controlled-documents/package.json | 20 +- models/server-core/package.json | 20 +- models/server-document/package.json | 20 +- models/server-drive/package.json | 20 +- models/server-gmail/package.json | 20 +- models/server-guest/package.json | 20 +- models/server-hr/package.json | 20 +- models/server-inventory/package.json | 20 +- models/server-lead/package.json | 20 +- models/server-love/package.json | 20 +- models/server-notification/package.json | 20 +- models/server-process/package.json | 20 +- models/server-products/package.json | 20 +- models/server-recruit/package.json | 20 +- models/server-request/package.json | 20 +- models/server-setting/package.json | 20 +- models/server-tags/package.json | 20 +- models/server-task/package.json | 20 +- models/server-telegram/package.json | 20 +- models/server-templates/package.json | 20 +- models/server-time/package.json | 20 +- models/server-tracker/package.json | 20 +- models/server-training/package.json | 20 +- models/server-view/package.json | 20 +- models/setting/package.json | 20 +- models/support/package.json | 20 +- models/survey/package.json | 20 +- models/tags/package.json | 20 +- models/task/package.json | 20 +- models/telegram/package.json | 20 +- models/templates/package.json | 20 +- models/test-management/package.json | 20 +- models/text-editor/package.json | 20 +- models/time/package.json | 20 +- models/tracker/package.json | 20 +- models/training/package.json | 22 +- models/uploader/package.json | 20 +- models/view/package.json | 20 +- models/workbench/package.json | 20 +- packages/analytics-providers/package.json | 20 +- packages/billing-client/package.json | 20 +- packages/highlight/package.json | 23 +- packages/hls/package.json | 25 +- packages/importer/package.json | 20 +- packages/integration-client/package.json | 20 +- packages/kanban/package.json | 23 +- packages/kvs-client/package.json | 20 +- packages/panel/package.json | 23 +- packages/payment-client/package.json | 20 +- packages/presentation/package.json | 23 +- packages/rekoni/package.json | 20 +- packages/theme/package.json | 23 +- packages/ui/package.json | 25 +- plugins/achievement-assets/package.json | 22 +- plugins/achievement-resources/package.json | 23 +- plugins/achievement/package.json | 20 +- plugins/activity-assets/package.json | 20 +- plugins/activity-resources/package.json | 25 +- plugins/activity/package.json | 22 +- plugins/ai-assistant-assets/package.json | 20 +- plugins/ai-assistant-resources/package.json | 23 +- plugins/ai-assistant/package.json | 20 +- plugins/ai-bot-resources/package.json | 25 +- plugins/ai-bot/package.json | 22 +- .../analytics-collector-assets/package.json | 22 +- .../package.json | 25 +- plugins/analytics-collector/package.json | 22 +- plugins/attachment-assets/package.json | 22 +- plugins/attachment-resources/package.json | 25 +- plugins/attachment/package.json | 20 +- plugins/billing-assets/package.json | 22 +- plugins/billing-resources/package.json | 25 +- plugins/billing/package.json | 20 +- plugins/bitrix-assets/package.json | 22 +- plugins/bitrix-resources/package.json | 23 +- plugins/bitrix/package.json | 20 +- plugins/board-assets/package.json | 22 +- plugins/board-resources/package.json | 23 +- plugins/board/package.json | 20 +- plugins/calendar-assets/package.json | 22 +- plugins/calendar-resources/package.json | 23 +- plugins/calendar/package.json | 20 +- plugins/card-assets/package.json | 22 +- plugins/card-resources/package.json | 25 +- plugins/card/package.json | 20 +- plugins/chat-assets/package.json | 22 +- plugins/chat/package.json | 20 +- plugins/chunter-assets/package.json | 22 +- plugins/chunter-resources/package.json | 25 +- plugins/chunter/package.json | 20 +- plugins/communication-resources/package.json | 23 +- plugins/communication/package.json | 20 +- plugins/contact-assets/package.json | 22 +- plugins/contact-resources/package.json | 25 +- plugins/contact/package.json | 20 +- .../controlled-documents-assets/package.json | 22 +- .../package.json | 23 +- .../src/components/Categories.svelte | 2 +- .../src/components/CreateDocument.svelte | 4 +- .../components/CreateDocumentCategory.svelte | 16 +- .../src/components/DocumentBoxItems.svelte | 4 +- .../src/components/DocumentItem.svelte | 2 +- .../components/DocumentMetaPresenter.svelte | 2 +- .../src/components/DocumentTemplates.svelte | 2 +- .../components/DocumentVersionsPopup.svelte | 2 +- .../src/components/Documents.svelte | 2 +- .../src/components/EditDoc.svelte | 2 +- .../src/components/EditDocPanel.svelte | 24 +- .../components/EditDocumentCategory.svelte | 2 +- .../src/components/NewDocumentHeader.svelte | 4 +- .../src/components/SignatureDialog.svelte | 8 +- .../src/components/TeamPopup.svelte | 2 +- .../popups/DeleteCategoryPopup.svelte | 2 +- .../presenters/CategoryPresenter.svelte | 2 +- .../components/create-doc/CreateFolder.svelte | 6 +- .../create-doc/QmsDocumentWizard.svelte | 8 +- .../create-doc/QmsTemplateWizard.svelte | 8 +- .../create-doc/steps/InfoStep.svelte | 8 +- .../create-doc/steps/LocationStep.svelte | 14 +- .../create-doc/steps/TeamStep.svelte | 4 +- .../docspace/CreateDocumentSpaceType.svelte | 2 +- .../docspace/CreateDocumentsSpace.svelte | 44 +- .../src/components/document/DocTeam.svelte | 2 +- .../document/DocumentDiffViewer.svelte | 4 +- .../document/DocumentHistory.svelte | 2 +- .../document/DocumentSignatories.svelte | 4 +- .../components/document/EditDocContent.svelte | 34 +- .../document/EditDocReasonAndImpact.svelte | 4 +- .../components/document/EditDocRelease.svelte | 14 +- .../components/document/EditDocTeam.svelte | 4 +- .../document/popups/AddCommentPopup.svelte | 6 +- .../popups/ChangeCategoryPopup.svelte | 2 +- .../document/popups/ChangeDocCodePopup.svelte | 2 +- .../popups/ChangeDocPrefixPopup.svelte | 2 +- .../popups/CommentFilterSettingsPopup.svelte | 4 +- .../popups/TransferDocumentPopup.svelte | 18 +- .../presenters/CategoryPresenter.svelte | 2 +- .../presenters/DocumentPrefixPresenter.svelte | 2 +- .../presenters/DocumentPresenter.svelte | 2 +- .../document/presenters/OwnerPresenter.svelte | 2 +- .../document/presenters/StatePresenter.svelte | 2 +- .../DocumentApprovalGuideItem.svelte | 2 +- .../right-panel/DocumentApprovalItem.svelte | 6 +- .../right-panel/DocumentCommentThread.svelte | 2 +- .../right-panel/DocumentInfoTab.svelte | 4 +- .../info/DocumentFlatTreeElement.svelte | 2 +- .../hierarchy/DocHierarchyLevel.svelte | 2 +- .../hierarchy/DocumentParentSelector.svelte | 2 +- .../hierarchy/DocumentSpacePresenter.svelte | 30 +- .../print/DocumentTemplateHeader.svelte | 4 +- .../components/project/ProjectSelector.svelte | 2 +- .../project/ProjectSelectorPopup.svelte | 6 +- .../components/project/ProjectsView.svelte | 2 +- .../requests/DocumentRequestPresenter.svelte | 2 +- .../src/docTableFormatter.ts | 16 +- .../src/docutils.ts | 24 +- .../src/index.ts | 30 +- .../src/navigation.ts | 18 +- .../src/plugin.ts | 2 +- .../src/stores/editors/document.ts | 2 +- .../editors/document/documentComments.ts | 6 +- .../src/stores/editors/document/query.ts | 8 +- .../src/text.ts | 18 +- .../src/utils.ts | 132 +- plugins/controlled-documents/package.json | 20 +- plugins/controlled-documents/src/docutils.ts | 50 +- plugins/controlled-documents/src/types.ts | 2 +- plugins/controlled-documents/src/utils.ts | 68 +- plugins/converter-resources/package.json | 25 +- plugins/converter/package.json | 20 +- plugins/desktop-downloads-assets/package.json | 22 +- .../desktop-downloads-resources/package.json | 25 +- plugins/desktop-downloads/package.json | 20 +- .../desktop-preferences-assets/package.json | 22 +- .../package.json | 23 +- plugins/desktop-preferences/package.json | 20 +- plugins/devmodel-resources/package.json | 25 +- plugins/devmodel/package.json | 22 +- plugins/diffview-assets/package.json | 22 +- plugins/diffview-resources/package.json | 23 +- plugins/diffview/package.json | 20 +- plugins/document-assets/package.json | 22 +- plugins/document-resources/package.json | 23 +- plugins/document/package.json | 20 +- plugins/drive-assets/package.json | 22 +- plugins/drive-resources/package.json | 23 +- plugins/drive/package.json | 20 +- plugins/emoji-assets/package.json | 22 +- plugins/emoji-resources/package.json | 25 +- plugins/emoji/package.json | 20 +- plugins/export-assets/package.json | 22 +- plugins/export-resources/package.json | 23 +- plugins/export/package.json | 22 +- plugins/global-profile-assets/package.json | 22 +- plugins/global-profile-resources/package.json | 23 +- plugins/global-profile/package.json | 20 +- plugins/gmail-assets/package.json | 20 +- plugins/gmail-resources/package.json | 23 +- plugins/gmail/package.json | 20 +- plugins/guest-assets/package.json | 22 +- plugins/guest-resources/package.json | 23 +- plugins/guest/package.json | 20 +- plugins/hr-assets/package.json | 22 +- plugins/hr-resources/package.json | 23 +- plugins/hr/package.json | 20 +- plugins/huly-mail-assets/package.json | 20 +- plugins/huly-mail-resources/package.json | 23 +- plugins/huly-mail/package.json | 20 +- plugins/image-cropper-resources/package.json | 23 +- plugins/image-cropper/package.json | 20 +- plugins/inventory-assets/package.json | 20 +- plugins/inventory-resources/package.json | 23 +- plugins/inventory/package.json | 20 +- plugins/lead-assets/package.json | 22 +- plugins/lead-resources/package.json | 23 +- plugins/lead/package.json | 20 +- plugins/login-assets/package.json | 22 +- plugins/login-resources/package.json | 23 +- plugins/login/package.json | 22 +- plugins/love-assets/package.json | 22 +- plugins/love-resources/package.json | 23 +- plugins/love/package.json | 22 +- plugins/mail-assets/package.json | 20 +- plugins/mail/package.json | 20 +- plugins/media-assets/package.json | 22 +- plugins/media-resources/package.json | 25 +- plugins/media/package.json | 22 +- plugins/notification-assets/package.json | 22 +- plugins/notification-resources/package.json | 25 +- plugins/notification/package.json | 22 +- plugins/onboard-assets/package.json | 22 +- plugins/onboard-resources/package.json | 23 +- plugins/onboard/package.json | 20 +- plugins/openai/package.json | 22 +- plugins/preference-assets/package.json | 20 +- plugins/preference/package.json | 20 +- plugins/presence-resources/package.json | 23 +- plugins/presence/package.json | 20 +- plugins/print-assets/package.json | 22 +- plugins/print-resources/package.json | 23 +- plugins/print/package.json | 22 +- plugins/process-assets/package.json | 22 +- plugins/process-resources/package.json | 25 +- plugins/process/package.json | 20 +- plugins/products-assets/package.json | 22 +- plugins/products-resources/package.json | 23 +- plugins/products/package.json | 20 +- plugins/pulse/package.json | 20 +- plugins/questions-assets/package.json | 22 +- plugins/questions-resources/package.json | 25 +- plugins/questions/package.json | 22 +- plugins/rating-assets/package.json | 22 +- plugins/rating-resources/package.json | 23 +- plugins/rating/package.json | 20 +- plugins/recorder-assets/package.json | 22 +- plugins/recorder-resources/package.json | 25 +- plugins/recorder/package.json | 22 +- plugins/recruit-assets/package.json | 22 +- plugins/recruit-resources/package.json | 23 +- plugins/recruit/package.json | 20 +- plugins/request-assets/package.json | 22 +- plugins/request-resources/package.json | 23 +- plugins/request/package.json | 20 +- plugins/setting-assets/package.json | 22 +- plugins/setting-resources/package.json | 25 +- .../src/components/EditAttribute.svelte | 30 +- plugins/setting/package.json | 20 +- plugins/sign/package.json | 22 +- plugins/support-assets/package.json | 22 +- plugins/support-resources/package.json | 23 +- plugins/support/package.json | 20 +- plugins/survey-assets/package.json | 22 +- plugins/survey-resources/package.json | 23 +- plugins/survey/package.json | 20 +- plugins/tags-assets/package.json | 20 +- plugins/tags-resources/package.json | 23 +- plugins/tags/package.json | 20 +- plugins/task-assets/package.json | 22 +- plugins/task-resources/package.json | 25 +- plugins/task/package.json | 20 +- plugins/telegram-assets/package.json | 20 +- plugins/telegram-resources/package.json | 23 +- plugins/telegram/package.json | 20 +- plugins/templates-assets/package.json | 20 +- plugins/templates-resources/package.json | 23 +- plugins/templates/package.json | 20 +- plugins/test-management-assets/package.json | 22 +- .../test-management-resources/package.json | 23 +- plugins/test-management/package.json | 20 +- plugins/text-editor-assets/package.json | 20 +- plugins/text-editor-resources/package.json | 23 +- plugins/text-editor/package.json | 20 +- plugins/time-assets/package.json | 22 +- plugins/time-resources/package.json | 23 +- plugins/time/package.json | 20 +- plugins/tracker-assets/package.json | 22 +- plugins/tracker-resources/package.json | 23 +- plugins/tracker-resources/src/utils.ts | 46 +- plugins/tracker/package.json | 20 +- plugins/training-assets/package.json | 22 +- plugins/training-resources/package.json | 25 +- plugins/training/package.json | 22 +- plugins/uploader-assets/package.json | 22 +- plugins/uploader-resources/package.json | 25 +- plugins/uploader/package.json | 20 +- plugins/view-assets/package.json | 22 +- plugins/view-resources/package.json | 23 +- plugins/view-resources/src/middleware.ts | 46 +- plugins/view-resources/src/permissions.ts | 8 +- plugins/view/package.json | 20 +- plugins/workbench-assets/package.json | 20 +- plugins/workbench-resources/package.json | 23 +- plugins/workbench-resources/src/connect.ts | 6 +- plugins/workbench/package.json | 20 +- pods/account/package.json | 20 +- pods/authProviders/package.json | 22 +- pods/backup/package.json | 22 +- pods/collaborator/package.json | 20 +- pods/external/package.json | 14 +- pods/front/package.json | 20 +- pods/fulltext/package.json | 22 +- pods/link-preview/package.json | 21 +- pods/media/package.json | 23 +- pods/preview/package.json | 23 +- pods/server/package.json | 20 +- pods/stats/package.json | 20 +- pods/workspace/package.json | 20 +- qms-desktop-package/package.json | 14 +- qms-tests/sanity/package.json | 18 +- .../activity-resources/package.json | 22 +- server-plugins/activity/package.json | 20 +- server-plugins/ai-bot-resources/package.json | 22 +- server-plugins/ai-bot/package.json | 22 +- .../package.json | 22 +- .../analytics-collector/package.json | 22 +- .../attachment-resources/package.json | 20 +- server-plugins/attachment/package.json | 20 +- .../calendar-resources/package.json | 20 +- server-plugins/calendar/package.json | 20 +- server-plugins/card-resources/package.json | 20 +- server-plugins/card/package.json | 20 +- server-plugins/chunter-resources/package.json | 20 +- server-plugins/chunter/package.json | 20 +- .../collaboration-resources/package.json | 20 +- server-plugins/collaboration/package.json | 20 +- server-plugins/contact-resources/package.json | 20 +- server-plugins/contact-resources/src/index.ts | 36 +- server-plugins/contact/package.json | 20 +- .../package.json | 22 +- .../controlled-documents/package.json | 20 +- .../document-resources/package.json | 22 +- server-plugins/document/package.json | 20 +- server-plugins/drive-resources/package.json | 20 +- server-plugins/drive/package.json | 20 +- server-plugins/gmail-resources/package.json | 20 +- server-plugins/gmail/package.json | 20 +- server-plugins/guest-resources/package.json | 20 +- server-plugins/guest/package.json | 20 +- server-plugins/hr-resources/package.json | 20 +- server-plugins/hr/package.json | 20 +- .../inventory-resources/package.json | 20 +- server-plugins/inventory/package.json | 20 +- server-plugins/lead-resources/package.json | 20 +- server-plugins/lead/package.json | 20 +- server-plugins/love-resources/package.json | 22 +- server-plugins/love/package.json | 22 +- .../notification-resources/package.json | 20 +- server-plugins/notification/package.json | 20 +- server-plugins/preference/package.json | 20 +- server-plugins/process-resources/package.json | 22 +- server-plugins/process/package.json | 22 +- server-plugins/rating/package.json | 20 +- server-plugins/recruit-resources/package.json | 20 +- server-plugins/recruit/package.json | 20 +- server-plugins/request-resources/package.json | 20 +- server-plugins/request/package.json | 20 +- server-plugins/setting-resources/package.json | 20 +- server-plugins/setting/package.json | 20 +- server-plugins/tags-resources/package.json | 20 +- server-plugins/tags/package.json | 20 +- server-plugins/task-resources/package.json | 20 +- server-plugins/task/package.json | 20 +- .../telegram-resources/package.json | 20 +- server-plugins/telegram/package.json | 20 +- server-plugins/templates/package.json | 20 +- server-plugins/time-resources/package.json | 20 +- server-plugins/time/package.json | 20 +- server-plugins/tracker-resources/package.json | 20 +- server-plugins/tracker/package.json | 20 +- .../training-resources/package.json | 22 +- server-plugins/training/package.json | 22 +- server-plugins/view-resources/package.json | 20 +- server-plugins/view/package.json | 20 +- server/account-service/package.json | 20 +- server/account/package.json | 22 +- server/backup-service/package.json | 20 +- server/backup/package.json | 20 +- server/collaborator/package.json | 20 +- server/front/package.json | 22 +- server/indexer/package.json | 20 +- server/server-pipeline/package.json | 20 +- server/tool/package.json | 22 +- server/workspace-service/package.json | 20 +- services/ai-bot/pod-ai-bot/package.json | 21 +- .../pod-analytics-collector/package.json | 23 +- services/backup/backup-api-pod/package.json | 23 +- services/billing/pod-billing/package.json | 21 +- .../calendar/pod-calendar-mailer/package.json | 23 +- services/calendar/pod-calendar/package.json | 23 +- services/datalake/pod-datalake/package.json | 21 +- services/export/pod-export/package.json | 21 +- services/github/github-assets/package.json | 22 +- services/github/github-resources/package.json | 23 +- services/github/github/package.json | 20 +- services/github/model-github/package.json | 20 +- services/github/pod-github/package.json | 20 +- .../github/server-github-model/package.json | 20 +- .../server-github-resources/package.json | 20 +- services/github/server-github/package.json | 20 +- services/gmail/pod-gmail/package.json | 23 +- services/love/package.json | 21 +- services/mail/mail-common/package.json | 21 +- services/mail/pod-mail-worker/package.json | 21 +- services/mail/pod-mail/package.json | 21 +- .../pod-events-processor/package.json | 23 +- .../pod-notification/package.json | 23 +- services/payment/pod-payment/package.json | 21 +- services/print/pod-print/package.json | 23 +- services/process/package.json | 21 +- services/rating/package.json | 22 +- services/rekoni/package.json | 23 +- services/sign/pod-sign/package.json | 23 +- .../pod-telegram-bot/package.json | 23 +- services/telegram/pod-telegram/package.json | 20 +- services/worker/package.json | 21 +- templates/ui/package.json | 2 +- tests/sanity/package.json | 18 +- ws-tests/api-tests/package.json | 22 +- ws-tests/sanity/package.json | 18 +- 656 files changed, 8629 insertions(+), 8427 deletions(-) create mode 100644 foundations/utils/common/changes/@hcengineering/platform-rig/upgrade-eslint-dependencies_2026-08-19-12-00.json create mode 100644 foundations/utils/packages/platform-rig/profiles/legacy-compatibility-rules.json diff --git a/common/scripts/package.json b/common/scripts/package.json index bf8d1444d8..ad7d8b7789 100644 --- a/common/scripts/package.json +++ b/common/scripts/package.json @@ -7,16 +7,16 @@ }, "template": "none", "devDependencies": { + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0", "@hcengineering/platform-rig": "workspace:^0.7.21", "esbuild": "^0.25.10", "sharp": "~0.35.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0" + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0" }, "private": true } diff --git a/desktop-package/package.json b/desktop-package/package.json index aeb9d622c1..3665c3e1e4 100644 --- a/desktop-package/package.json +++ b/desktop-package/package.json @@ -32,13 +32,13 @@ "@types/node": "^24.13.3", "electron-builder": "^26.15.3", "@electron/notarize": "^2.3.2", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0" + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "electron-squirrel-startup": "~1.0.1", diff --git a/desktop/package.json b/desktop/package.json index c9bf21b593..9aaaa3b446 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -63,22 +63,22 @@ "electron": "^43.4.1", "@types/node": "^24.13.3", "copy-webpack-plugin": "^11.0.0", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "esbuild": "^0.25.10", "esbuild-loader": "^4.3.0", "@types/ws": "^8.18.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "@testing-library/jest-dom": "^6.6.3", - "jest-environment-jsdom": "^30.2.0" + "jest-environment-jsdom": "^30.2.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/dev/doc-import-tool/package.json b/dev/doc-import-tool/package.json index 5a003b3dfe..aca54596a2 100644 --- a/dev/doc-import-tool/package.json +++ b/dev/doc-import-tool/package.json @@ -23,24 +23,24 @@ "devDependencies": { "cross-env": "~7.0.3", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "ts-node": "^10.9.2", "esbuild": "^0.25.10", "@types/minio": "~7.0.11", "@types/node": "^24.13.3", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "@types/htmlparser2": "^3.10.7", - "@types/domhandler": "^2.4.5" + "@types/domhandler": "^2.4.5", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/controlled-documents": "workspace:^0.7.0", diff --git a/dev/import-tool/package.json b/dev/import-tool/package.json index d9ca1167eb..af12464368 100644 --- a/dev/import-tool/package.json +++ b/dev/import-tool/package.json @@ -38,22 +38,22 @@ "devDependencies": { "cross-env": "~7.0.3", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint": "^9.39.5", "ts-node": "^10.9.2", "esbuild": "^0.25.10", "@types/node": "^24.13.3", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/parser": "^8.67.0", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", "prettier": "^3.6.2", - "@types/js-yaml": "^4.0.9" + "@types/js-yaml": "^4.0.9", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/dev/prod/package.json b/dev/prod/package.json index 02dbc51517..1288ad49f7 100644 --- a/dev/prod/package.json +++ b/dev/prod/package.json @@ -29,6 +29,13 @@ "deploy": "cp -p public/* dist && aws s3 sync dist s3://anticrm-platform --delete --acl public-read" }, "devDependencies": { + "eslint": "^9.39.5", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint-config-love": "^155.0.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-svelte": "^3.23.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", "autoprefixer": "^10.4.14", diff --git a/dev/tool/package.json b/dev/tool/package.json index 98b1dedba1..12e8c10317 100644 --- a/dev/tool/package.json +++ b/dev/tool/package.json @@ -43,26 +43,26 @@ "devDependencies": { "cross-env": "~7.0.3", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "ts-node": "^10.9.2", "esbuild": "^0.25.10", "@types/minio": "~7.0.11", "@types/node": "^24.13.3", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/ws": "^8.18.1", "@types/mime-types": "~2.1.1", "@types/request": "~2.48.8", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "@types/js-yaml": "^4.0.9" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "@types/js-yaml": "^4.0.9", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@elastic/elasticsearch": "^7.17.14", diff --git a/foundations/core/common/config/rush/pnpm-lock.yaml b/foundations/core/common/config/rush/pnpm-lock.yaml index e3aeaad995..0614703015 100644 --- a/foundations/core/common/config/rush/pnpm-lock.yaml +++ b/foundations/core/common/config/rush/pnpm-lock.yaml @@ -21,19 +21,19 @@ importers: devDependencies: '@hcengineering/platform-rig': specifier: ^0.7.21 - version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/jest': specifier: ^29.5.5 version: 29.5.14 '@types/node': - specifier: ^22.18.1 - version: 22.18.10 + specifier: ^24.13.3 + version: 24.13.3 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(eslint@9.39.5)(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -41,32 +41,29 @@ importers: specifier: ^0.25.10 version: 0.25.11 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5 + eslint-config-love: + specifier: ^155.0.0 + version: 155.0.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.3.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -79,43 +76,40 @@ importers: devDependencies: '@hcengineering/platform-rig': specifier: ^0.7.21 - version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/jest': specifier: ^29.5.5 version: 29.5.14 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(eslint@9.39.5)(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5 + eslint-config-love: + specifier: ^155.0.0 + version: 155.0.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.3.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -143,43 +137,40 @@ importers: devDependencies: '@hcengineering/platform-rig': specifier: ^0.7.21 - version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/jest': specifier: ^29.5.5 version: 29.5.14 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(eslint@9.39.5)(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5 + eslint-config-love: + specifier: ^155.0.0 + version: 155.0.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.3.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -216,62 +207,59 @@ importers: devDependencies: '@hcengineering/platform-rig': specifier: ^0.7.21 - version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/jest': specifier: ^29.5.5 version: 29.5.14 '@types/node': - specifier: ^22.18.1 - version: 22.18.10 + specifier: ^24.13.3 + version: 24.13.3 '@types/snappyjs': specifier: ^0.7.1 version: 0.7.1 '@types/ws': - specifier: ^8.5.12 + specifier: ^8.18.1 version: 8.18.1 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(eslint@9.39.5)(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5 + eslint-config-love: + specifier: ^155.0.0 + version: 155.0.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.3.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@22.18.10)(typescript@5.9.3) + version: 10.9.2(@types/node@24.13.3)(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 optionalDependencies: ws: - specifier: ^8.18.2 - version: 8.18.3 + specifier: ^8.21.0 + version: 8.21.3 ../../packages/client: dependencies: @@ -284,46 +272,43 @@ importers: devDependencies: '@hcengineering/platform-rig': specifier: ^0.7.21 - version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/jest': specifier: ^29.5.5 version: 29.5.14 '@types/node': - specifier: ^22.18.1 - version: 22.18.10 + specifier: ^24.13.3 + version: 24.13.3 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(eslint@9.39.5)(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5 + eslint-config-love: + specifier: ^155.0.0 + version: 155.0.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.3.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -351,58 +336,55 @@ importers: devDependencies: '@hcengineering/platform-rig': specifier: ^0.7.21 - version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/jest': specifier: ^29.5.5 version: 29.5.14 '@types/node': - specifier: ^22.18.1 - version: 22.18.10 + specifier: ^24.13.3 + version: 24.13.3 '@types/snappyjs': specifier: ^0.7.1 version: 0.7.1 '@types/ws': - specifier: ^8.5.12 + specifier: ^8.18.1 version: 8.18.1 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(eslint@9.39.5)(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5 + eslint-config-love: + specifier: ^155.0.0 + version: 155.0.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.3.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 ws: - specifier: ^8.18.2 - version: 8.18.3 + specifier: ^8.21.0 + version: 8.21.3 ../../packages/collaborator-client: dependencies: @@ -412,19 +394,19 @@ importers: devDependencies: '@hcengineering/platform-rig': specifier: ^0.7.21 - version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/jest': specifier: ^29.5.5 version: 29.5.14 '@types/node': - specifier: ^22.18.1 - version: 22.18.10 + specifier: ^24.13.3 + version: 24.13.3 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(eslint@9.39.5)(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -432,32 +414,29 @@ importers: specifier: ^0.25.10 version: 0.25.11 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5 + eslint-config-love: + specifier: ^155.0.0 + version: 155.0.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.3.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -479,46 +458,43 @@ importers: devDependencies: '@hcengineering/platform-rig': specifier: ^0.7.21 - version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/jest': specifier: ^29.5.5 version: 29.5.14 '@types/node': - specifier: ^22.18.1 - version: 22.18.10 + specifier: ^24.13.3 + version: 24.13.3 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(eslint@9.39.5)(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5 + eslint-config-love: + specifier: ^155.0.0 + version: 155.0.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.3.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -534,19 +510,19 @@ importers: devDependencies: '@hcengineering/platform-rig': specifier: ^0.7.21 - version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/jest': specifier: ^29.5.5 version: 29.5.14 '@types/node': - specifier: ^22.18.1 - version: 22.18.10 + specifier: ^24.13.3 + version: 24.13.3 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(eslint@9.39.5)(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -554,32 +530,29 @@ importers: specifier: ^0.25.10 version: 0.25.11 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5 + eslint-config-love: + specifier: ^155.0.0 + version: 155.0.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.3.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -588,40 +561,37 @@ importers: devDependencies: '@hcengineering/platform-rig': specifier: ^0.7.21 - version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/jest': specifier: ^29.5.5 version: 29.5.14 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(eslint@9.39.5)(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5 + eslint-config-love: + specifier: ^155.0.0 + version: 155.0.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.3.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) ts-jest: specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) ../../packages/measurements-otlp: dependencies: @@ -629,84 +599,81 @@ importers: specifier: workspace:^0.7.19 version: link:../measurements '@opentelemetry/api': - specifier: ^1.9.0 - version: 1.9.0 + specifier: ^1.9.1 + version: 1.9.1 '@opentelemetry/api-logs': - specifier: ^0.203.0 - version: 0.203.0 + specifier: ^0.221.0 + version: 0.221.0 '@opentelemetry/auto-instrumentations-node': - specifier: ^0.62.0 - version: 0.62.2(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0)) + specifier: ^0.79.0 + version: 0.79.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.10.0(@opentelemetry/api@1.9.1)) '@opentelemetry/core': - specifier: ^2.0.1 - version: 2.1.0(@opentelemetry/api@1.9.0) + specifier: ^2.10.0 + version: 2.10.0(@opentelemetry/api@1.9.1) '@opentelemetry/exporter-logs-otlp-http': - specifier: ^0.203.0 - version: 0.203.0(@opentelemetry/api@1.9.0) + specifier: ^0.221.0 + version: 0.221.0(@opentelemetry/api@1.9.1) '@opentelemetry/exporter-metrics-otlp-http': - specifier: ^0.203.0 - version: 0.203.0(@opentelemetry/api@1.9.0) + specifier: ^0.221.0 + version: 0.221.0(@opentelemetry/api@1.9.1) '@opentelemetry/exporter-trace-otlp-http': - specifier: ^0.203.0 - version: 0.203.0(@opentelemetry/api@1.9.0) + specifier: ^0.221.0 + version: 0.221.0(@opentelemetry/api@1.9.1) '@opentelemetry/id-generator-aws-xray': - specifier: ^2.0.0 - version: 2.0.3(@opentelemetry/api@1.9.0) + specifier: ^2.1.0 + version: 2.1.0(@opentelemetry/api@1.9.1) '@opentelemetry/otlp-exporter-base': - specifier: ^0.203.0 - version: 0.203.0(@opentelemetry/api@1.9.0) + specifier: ^0.221.0 + version: 0.221.0(@opentelemetry/api@1.9.1) '@opentelemetry/resources': - specifier: ^2.0.1 - version: 2.1.0(@opentelemetry/api@1.9.0) + specifier: ^2.10.0 + version: 2.10.0(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-logs': - specifier: ^0.203.0 - version: 0.203.0(@opentelemetry/api@1.9.0) + specifier: ^0.221.0 + version: 0.221.0(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-metrics': - specifier: ^2.0.1 - version: 2.1.0(@opentelemetry/api@1.9.0) + specifier: ^2.10.0 + version: 2.10.0(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-node': - specifier: ^0.203.0 - version: 0.203.0(@opentelemetry/api@1.9.0) + specifier: ^0.221.0 + version: 0.221.0(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-trace-node': - specifier: ^2.0.1 - version: 2.1.0(@opentelemetry/api@1.9.0) + specifier: ^2.10.0 + version: 2.10.0(@opentelemetry/api@1.9.1) devDependencies: '@hcengineering/platform-rig': specifier: ^0.7.21 - version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/jest': specifier: ^29.5.5 version: 29.5.14 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(eslint@9.39.5)(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5 + eslint-config-love: + specifier: ^155.0.0 + version: 155.0.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.3.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) ts-jest: specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) ../../packages/model: dependencies: @@ -737,49 +704,46 @@ importers: devDependencies: '@hcengineering/platform-rig': specifier: ^0.7.21 - version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/jest': specifier: ^29.5.5 version: 29.5.14 '@types/node': - specifier: ^22.18.1 - version: 22.18.10 + specifier: ^24.13.3 + version: 24.13.3 '@types/toposort': specifier: ^2.0.3 version: 2.0.7 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(eslint@9.39.5)(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5 + eslint-config-love: + specifier: ^155.0.0 + version: 155.0.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.3.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -792,43 +756,40 @@ importers: devDependencies: '@hcengineering/platform-rig': specifier: ^0.7.21 - version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/jest': specifier: ^29.5.5 version: 29.5.14 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(eslint@9.39.5)(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5 + eslint-config-love: + specifier: ^155.0.0 + version: 155.0.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.3.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -841,43 +802,40 @@ importers: devDependencies: '@hcengineering/platform-rig': specifier: ^0.7.21 - version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/jest': specifier: ^29.5.5 version: 29.5.14 '@types/node': - specifier: ^22.18.1 - version: 22.18.10 + specifier: ^24.13.3 + version: 24.13.3 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(eslint@9.39.5)(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5 + eslint-config-love: + specifier: ^155.0.0 + version: 155.0.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.3.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) ts-jest: specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) ../../packages/query: dependencies: @@ -896,43 +854,40 @@ importers: devDependencies: '@hcengineering/platform-rig': specifier: ^0.7.21 - version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/jest': specifier: ^29.5.5 version: 29.5.14 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(eslint@9.39.5)(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5 + eslint-config-love: + specifier: ^155.0.0 + version: 155.0.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.3.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -948,43 +903,40 @@ importers: devDependencies: '@hcengineering/platform-rig': specifier: ^0.7.21 - version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/jest': specifier: ^29.5.5 version: 29.5.14 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(eslint@9.39.5)(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5 + eslint-config-love: + specifier: ^155.0.0 + version: 155.0.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.3.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -993,46 +945,43 @@ importers: devDependencies: '@hcengineering/platform-rig': specifier: ^0.7.21 - version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/jest': specifier: ^29.5.5 version: 29.5.14 '@types/node': - specifier: ^22.18.1 - version: 22.18.10 + specifier: ^24.13.3 + version: 24.13.3 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(eslint@9.39.5)(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5 + eslint-config-love: + specifier: ^155.0.0 + version: 155.0.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.3.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -1051,46 +1000,43 @@ importers: devDependencies: '@hcengineering/platform-rig': specifier: ^0.7.21 - version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/jest': specifier: ^29.5.5 version: 29.5.14 '@types/node': - specifier: ^22.18.1 - version: 22.18.10 + specifier: ^24.13.3 + version: 24.13.3 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(eslint@9.39.5)(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5 + eslint-config-love: + specifier: ^155.0.0 + version: 155.0.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.3.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -1109,46 +1055,43 @@ importers: devDependencies: '@hcengineering/platform-rig': specifier: ^0.7.21 - version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/jest': specifier: ^29.5.5 version: 29.5.14 '@types/node': - specifier: ^22.18.1 - version: 22.18.10 + specifier: ^24.13.3 + version: 24.13.3 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(eslint@9.39.5)(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5 + eslint-config-love: + specifier: ^155.0.0 + version: 155.0.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.3.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -1161,19 +1104,19 @@ importers: devDependencies: '@hcengineering/platform-rig': specifier: ^0.7.21 - version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/jest': specifier: ^29.5.5 version: 29.5.14 '@types/node': - specifier: ^22.18.1 - version: 22.18.10 + specifier: ^24.13.3 + version: 24.13.3 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(eslint@9.39.5)(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -1181,29 +1124,29 @@ importers: specifier: ^0.25.10 version: 0.25.11 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5 + eslint-config-love: + specifier: ^155.0.0 + version: 155.0.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.3.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -1279,6 +1222,12 @@ importers: '@tiptap/extension-strike': specifier: ^2.11.7 version: 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3)) + '@tiptap/extension-subscript': + specifier: ^2.11.7 + version: 2.27.2(@tiptap/core@2.26.3(@tiptap/pm@2.26.3)) + '@tiptap/extension-superscript': + specifier: ^2.11.7 + version: 2.27.2(@tiptap/core@2.26.3(@tiptap/pm@2.26.3)) '@tiptap/extension-table': specifier: ^2.11.7 version: 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3) @@ -1333,7 +1282,7 @@ importers: devDependencies: '@hcengineering/platform-rig': specifier: ^0.7.21 - version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/jest': specifier: ^29.5.5 version: 29.5.14 @@ -1341,38 +1290,35 @@ importers: specifier: ~13.0.0 version: 13.0.9 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(eslint@9.39.5)(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5 + eslint-config-love: + specifier: ^155.0.0 + version: 155.0.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.3.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -1391,7 +1337,7 @@ importers: devDependencies: '@hcengineering/platform-rig': specifier: ^0.7.21 - version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/jest': specifier: ^29.5.5 version: 29.5.14 @@ -1399,32 +1345,29 @@ importers: specifier: ~13.0.0 version: 13.0.9 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(eslint@9.39.5)(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5 + eslint-config-love: + specifier: ^155.0.0 + version: 155.0.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.3.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest-environment-jsdom: specifier: ^30.2.0 version: 30.2.0 @@ -1433,7 +1376,7 @@ importers: version: 3.6.2 ts-jest: specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -1449,43 +1392,40 @@ importers: devDependencies: '@hcengineering/platform-rig': specifier: ^0.7.21 - version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/jest': specifier: ^29.5.5 version: 29.5.14 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(eslint@9.39.5)(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5 + eslint-config-love: + specifier: ^155.0.0 + version: 155.0.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.3.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -1507,7 +1447,7 @@ importers: devDependencies: '@hcengineering/platform-rig': specifier: ^0.7.21 - version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/jest': specifier: ^29.5.5 version: 29.5.14 @@ -1515,38 +1455,35 @@ importers: specifier: ~13.0.0 version: 13.0.9 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(eslint@9.39.5)(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5 + eslint-config-love: + specifier: ^155.0.0 + version: 155.0.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.3.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -1571,40 +1508,37 @@ importers: devDependencies: '@hcengineering/platform-rig': specifier: ^0.7.21 - version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/jest': specifier: ^29.5.5 version: 29.5.14 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(eslint@9.39.5)(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5 + eslint-config-love: + specifier: ^155.0.0 + version: 155.0.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.3.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) fast-equals: specifier: ^5.2.2 version: 5.3.2 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest-environment-jsdom: specifier: ^30.2.0 version: 30.2.0 @@ -1613,7 +1547,7 @@ importers: version: 3.6.2 ts-jest: specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -1638,49 +1572,46 @@ importers: devDependencies: '@hcengineering/platform-rig': specifier: ^0.7.21 - version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@types/jest': specifier: ^29.5.5 version: 29.5.14 '@types/node': - specifier: ^22.18.1 - version: 22.18.10 + specifier: ^24.13.3 + version: 24.13.3 '@types/uuid': specifier: ^8.3.1 version: 8.3.4 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(eslint@9.39.5)(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5 + eslint-config-love: + specifier: ^155.0.0 + version: 155.0.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.3.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -1689,31 +1620,31 @@ importers: devDependencies: '@hcengineering/platform-rig': specifier: ^0.7.21 - version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + version: 0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.67.0(eslint@9.39.5)(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^9.39.5 + version: 9.39.5 + eslint-config-love: + specifier: ^155.0.0 + version: 155.0.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^2.32.0 + version: 2.32.0(eslint@9.39.5) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.3.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) packages: @@ -2084,6 +2015,18 @@ packages: cpu: [x64] os: [win32] + '@eslint-community/eslint-plugin-eslint-comments@4.7.2': + resolution: {integrity: sha512-LF03qURSwEWm2dz5wtdDCzNk+7Opl0X7q6I3undsaIuNsEiNvRV3BCtqu14Q/6Pzg1tBj44LcxpW2EpSLZStZw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 + + '@eslint-community/eslint-utils@4.10.1': + resolution: {integrity: sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/eslint-utils@4.9.0': resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2094,13 +2037,37 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint-community/regexpp@4.12.2': + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/js@8.57.1': - resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/config-array@0.21.2': + resolution: {integrity: sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/config-helpers@0.4.2': + resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.17.0': + resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.3.6': + resolution: {integrity: sha512-l2Ul9PrHsPCKcEY/ac7VgFj9D80C7S68sOKc618SyHDPK36s1XcFebXY0iTzUVn4Yq+YbwvSnDmCz9yxjX+QrA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.39.5': + resolution: {integrity: sha512-QywQuszQh77pIXCsq998c8hbhSTI/azTty1Z6N53dmAudKHhy573j3yvRLsX2BSp8YpLtoCEG8E9DJe+8zUh4A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.7': + resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.4.1': + resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@formatjs/ecma402-abstract@2.3.6': resolution: {integrity: sha512-HJnTFeRM2kVFVr5gr5kH1XP6K0JcJtE7Lzvtr3FS/so5f1kpsqqqxy5JF+FRaO6H2qmcMfAUIox7AJteieRtVw==} @@ -2117,8 +2084,8 @@ packages: '@formatjs/intl-localematcher@0.6.2': resolution: {integrity: sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA==} - '@grpc/grpc-js@1.14.0': - resolution: {integrity: sha512-N8Jx6PaYzcTRNzirReJCtADVoq4z7+1KQ4E70jTg/koQiMoUSN1kbNjPOqpPbhMFhfU1/l7ixspPl8dNY+FoUg==} + '@grpc/grpc-js@1.14.4': + resolution: {integrity: sha512-k9Dj3DV/itK9D06Y8f190Qgop7/Ui+D0njFV3LHMPwPT75DpXLQohE9Wmz0QElrJnzsjB7KPWiKJbOl7IPDArQ==} engines: {node: '>=12.10.0'} '@grpc/proto-loader@0.8.0': @@ -2127,21 +2094,32 @@ packages: hasBin: true '@hcengineering/platform-rig@0.7.21': - resolution: {integrity: sha512-niaCihZZdmM7WYk5/UznA0St8BbjI3pbTeqPCnmM5TxP+ZRf3t1BV8XQpWOvIuhj7aRdVWUOPYIBKufQMoQ1TQ==} + resolution: {directory: ../../../utils/packages/platform-rig, type: directory} hasBin: true - '@humanwhocodes/config-array@0.13.0': - resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead + '@humanfs/core@0.19.2': + resolution: {integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.8': + resolution: {integrity: sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==} + engines: {node: '>=18.18.0'} + + '@humanfs/types@0.15.0': + resolution: {integrity: sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==} + engines: {node: '>=18.18.0'} '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - deprecated: Use @eslint/object-schema instead + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + engines: {node: '>=18.18'} + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} '@istanbuljs/load-nyc-config@1.1.0': resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} @@ -2311,432 +2289,438 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@opentelemetry/api-logs@0.203.0': - resolution: {integrity: sha512-9B9RU0H7Ya1Dx/Rkyc4stuBZSGVQF27WigitInx2QQoj6KUpEFYPKoWjdFTunJYxmXmh17HeBvbMa1EhGyPmqQ==} + '@opentelemetry/api-logs@0.221.0': + resolution: {integrity: sha512-OlanaW1vv7ufTqQ3/fPLI4arGt5ZoM+P8abOMki6uEYnpRazepSWDwDnnw+la7kE26SHVC18//SMccrDvLKOXQ==} engines: {node: '>=8.0.0'} - '@opentelemetry/api@1.9.0': - resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} + '@opentelemetry/api@1.9.1': + resolution: {integrity: sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==} engines: {node: '>=8.0.0'} - '@opentelemetry/auto-instrumentations-node@0.62.2': - resolution: {integrity: sha512-Ipe6X7ddrCiRsuewyTU83IvKiSFT4piqmv9z8Ovg1E7v98pdTj1pUE6sDrHV50zl7/ypd+cONBgt+EYSZu4u9Q==} + '@opentelemetry/auto-instrumentations-node@0.79.0': + resolution: {integrity: sha512-qL53aIjdw56sRDqz6LXD9h15vPTJgPpqv80rbsnRjzhuC9VqZ58fgk/lx0SdECJ2rcu8keeji5ZgjzJwiQZ0fg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.4.1 '@opentelemetry/core': ^2.0.0 - '@opentelemetry/context-async-hooks@2.0.1': - resolution: {integrity: sha512-XuY23lSI3d4PEqKA+7SLtAgwqIfc6E/E9eAQWLN1vlpC53ybO3o6jW4BsXo1xvz9lYyyWItfQDDLzezER01mCw==} + '@opentelemetry/configuration@0.221.0': + resolution: {integrity: sha512-uE9y56Zdi9Gt/RdxYnVOo3YmFZkKJJMA0gqtBe8wh8gdtF5Asqe+Oh/TWiDtFb1s+31jNY4CWgnfIB1KOITfFA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' + '@opentelemetry/api': ^1.9.0 - '@opentelemetry/context-async-hooks@2.1.0': - resolution: {integrity: sha512-zOyetmZppnwTyPrt4S7jMfXiSX9yyfF0hxlA8B5oo2TtKl+/RGCy7fi4DrBfIf3lCPrkKsRBWZZD7RFojK7FDg==} + '@opentelemetry/context-async-hooks@2.10.0': + resolution: {integrity: sha512-bvyMcgLEkozzSzpEEEo1OMoeQ97bxj6Qs2uN3mPrSdDvObMI1myffD/BPqcLlzZO9//d1SqQA/WPw7Cz2AiqhA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/core@2.0.1': - resolution: {integrity: sha512-MaZk9SJIDgo1peKevlbhP6+IwIiNPNmswNL4AF0WaQJLbHXjr9SrZMgS12+iqr9ToV4ZVosCcc0f8Rg67LXjxw==} + '@opentelemetry/core@2.1.0': + resolution: {integrity: sha512-RMEtHsxJs/GiHHxYT58IY57UXAQTuUnZVco6ymDEqTNlJKTimM4qPUPVe8InNFyBjhHBEAx4k3Q8LtNayBsbUQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/core@2.1.0': - resolution: {integrity: sha512-RMEtHsxJs/GiHHxYT58IY57UXAQTuUnZVco6ymDEqTNlJKTimM4qPUPVe8InNFyBjhHBEAx4k3Q8LtNayBsbUQ==} + '@opentelemetry/core@2.10.0': + resolution: {integrity: sha512-/wNZ8twnEQQA4HoHu22+vcsdru6pWPWxW+7w+FlxT6Id7PE/WIbZmVKkte+PF72e0F2dnImFeHD2syyE1Mw6MQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/exporter-logs-otlp-grpc@0.203.0': - resolution: {integrity: sha512-g/2Y2noc/l96zmM+g0LdeuyYKINyBwN6FJySoU15LHPLcMN/1a0wNk2SegwKcxrRdE7Xsm7fkIR5n6XFe3QpPw==} + '@opentelemetry/exporter-logs-otlp-grpc@0.221.0': + resolution: {integrity: sha512-txG1G0IrYSsKKMeiWZfj/i5cQmWB+h+hf3HzPpF3RqZVwp+iQQEIsv8Vtmzy6RWVdHdJZfygmVrBI39YTBvWcw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/exporter-logs-otlp-http@0.203.0': - resolution: {integrity: sha512-s0hys1ljqlMTbXx2XiplmMJg9wG570Z5lH7wMvrZX6lcODI56sG4HL03jklF63tBeyNwK2RV1/ntXGo3HgG4Qw==} + '@opentelemetry/exporter-logs-otlp-http@0.221.0': + resolution: {integrity: sha512-nKXkr4Tomi6fjYVOf+ytcW3dZAVr4v4Bv5gsT6dr2gvpUPJpKgHB4XbMufMsPotRE3g0XH2GwVVCkN2w6SON+Q==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/exporter-logs-otlp-proto@0.203.0': - resolution: {integrity: sha512-nl/7S91MXn5R1aIzoWtMKGvqxgJgepB/sH9qW0rZvZtabnsjbf8OQ1uSx3yogtvLr0GzwD596nQKz2fV7q2RBw==} + '@opentelemetry/exporter-logs-otlp-proto@0.221.0': + resolution: {integrity: sha512-AH6EY+47gXFaWYgG3hfeOneGiE9xIZGtDBk+9g0sM8NZWzsQhhmqPbQQXJzS7pyCh5jRRr2nYNXVrkCmoojRvQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/exporter-metrics-otlp-grpc@0.203.0': - resolution: {integrity: sha512-FCCj9nVZpumPQSEI57jRAA89hQQgONuoC35Lt+rayWY/mzCAc6BQT7RFyFaZKJ2B7IQ8kYjOCPsF/HGFWjdQkQ==} + '@opentelemetry/exporter-metrics-otlp-grpc@0.221.0': + resolution: {integrity: sha512-KOgCtO15FC6C1T/xOqBcr7EyUs7B+7yomGNb5Y97d3s38rPbCCk5sewkmE2b0/itOkQ/PptX8CLlD+kn2mEtTg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/exporter-metrics-otlp-http@0.203.0': - resolution: {integrity: sha512-HFSW10y8lY6BTZecGNpV3GpoSy7eaO0Z6GATwZasnT4bEsILp8UJXNG5OmEsz4SdwCSYvyCbTJdNbZP3/8LGCQ==} + '@opentelemetry/exporter-metrics-otlp-http@0.221.0': + resolution: {integrity: sha512-sRfCKbOzgy8xZQV2as0RzIZlnCmCseCKZGLfRcrpo2CBngJDr+rPtX0zkG0+oUCV5kfQPUoW3W3C96Ag3Y/Clg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/exporter-metrics-otlp-proto@0.203.0': - resolution: {integrity: sha512-OZnhyd9npU7QbyuHXFEPVm3LnjZYifuKpT3kTnF84mXeEQ84pJJZgyLBpU4FSkSwUkt/zbMyNAI7y5+jYTWGIg==} + '@opentelemetry/exporter-metrics-otlp-proto@0.221.0': + resolution: {integrity: sha512-YMF4LveY2I3yhw61rn6nmC9FE8U24IZHPeKU1Duc5+sbwjMd8FwZAwba318ImdThCg/HuVQvhm2y6bfgNPnfYg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/exporter-prometheus@0.203.0': - resolution: {integrity: sha512-2jLuNuw5m4sUj/SncDf/mFPabUxMZmmYetx5RKIMIQyPnl6G6ooFzfeE8aXNRf8YD1ZXNlCnRPcISxjveGJHNg==} + '@opentelemetry/exporter-prometheus@0.221.0': + resolution: {integrity: sha512-kW79a20qWESIuAdDrxzg9WKM98twV/NBWBFRAH57ap/+ssZhiCo0hckzKT0zpuwR/gSHrFAQhJL0bYDrnEM34g==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/exporter-trace-otlp-grpc@0.203.0': - resolution: {integrity: sha512-322coOTf81bm6cAA8+ML6A+m4r2xTCdmAZzGNTboPXRzhwPt4JEmovsFAs+grpdarObd68msOJ9FfH3jxM6wqA==} + '@opentelemetry/exporter-trace-otlp-grpc@0.221.0': + resolution: {integrity: sha512-zXminlZedtq9LvOW64CnNkOqk15zV75k8JgtdTuWFge6+jk2m4GmAUm6L2eIiG1o2a2bZxXw2PDrszm+bps0IA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/exporter-trace-otlp-http@0.203.0': - resolution: {integrity: sha512-ZDiaswNYo0yq/cy1bBLJFe691izEJ6IgNmkjm4C6kE9ub/OMQqDXORx2D2j8fzTBTxONyzusbaZlqtfmyqURPw==} + '@opentelemetry/exporter-trace-otlp-http@0.221.0': + resolution: {integrity: sha512-AySXiKoC+meiWm6zdVj5T2LnPDZuatveBby1cMOeQteIWsYXAUxs8Sru13G2pVSPrUXz6vF+og7QVBX6GdC/oQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/exporter-trace-otlp-proto@0.203.0': - resolution: {integrity: sha512-1xwNTJ86L0aJmWRwENCJlH4LULMG2sOXWIVw+Szta4fkqKVY50Eo4HoVKKq6U9QEytrWCr8+zjw0q/ZOeXpcAQ==} + '@opentelemetry/exporter-trace-otlp-proto@0.221.0': + resolution: {integrity: sha512-Z9i2T7vgZbWe9rSLYxXVIbeW+XyzUq4rZanW3ZyVNwVDqCsh0EJKUgBWWQ0CZfeuUA+RQPzKgJQHMuWAUnKqXw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/exporter-zipkin@2.0.1': - resolution: {integrity: sha512-a9eeyHIipfdxzCfc2XPrE+/TI3wmrZUDFtG2RRXHSbZZULAny7SyybSvaDvS77a7iib5MPiAvluwVvbGTsHxsw==} + '@opentelemetry/exporter-zipkin@2.10.0': + resolution: {integrity: sha512-7gsvgf0UDoJ4l9ObrwBmz5G/ZogiPk+lq+g5GpLp24YQF/vPM/BSsnOfcLnfinast5ASUgLo78uSC/ObjlnXgg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.0.0 - '@opentelemetry/id-generator-aws-xray@2.0.3': - resolution: {integrity: sha512-IoJiHlNAYn/XetYUwWR2HvAQxzoh7Ef/V2toKjnRz26RckfywhJAGlzKMWc0D7XyKMbBxGGg8K9IcDVu1JuJXQ==} + '@opentelemetry/id-generator-aws-xray@2.1.0': + resolution: {integrity: sha512-hyyEpR6cwxmrXRSQPCIOUkTY+RQRM+zSUpzF3wnu56Ow7Rv+yU0N18b64cVoX2Ir98lFeesF6nrynEa4eN4gfw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.0.0 - '@opentelemetry/instrumentation-amqplib@0.50.0': - resolution: {integrity: sha512-kwNs/itehHG/qaQBcVrLNcvXVPW0I4FCOVtw3LHMLdYIqD7GJ6Yv2nX+a4YHjzbzIeRYj8iyMp0Bl7tlkidq5w==} + '@opentelemetry/instrumentation-amqplib@0.68.0': + resolution: {integrity: sha512-U9Fc3C061q+AGxP3xEJTIAJtBduY1GL21J4SjOSxCmmls4UUva16jzQ5ZkunQe0pKalrRjZ/DlZ+wgfgQxqjBw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-aws-lambda@0.54.1': - resolution: {integrity: sha512-qm8pGSAM1mXk7unbrGktWWGJc6IFI58ZsaHJ+i420Fp5VO3Vf7GglIgaXTS8CKBrVB4LHFj3NvzJg31PtsAQcA==} + '@opentelemetry/instrumentation-aws-lambda@0.73.0': + resolution: {integrity: sha512-N2BZFlWmVt2zjpiqPnfmIlj7tV/wfKSZCFF/laLAnJSTZjSEdc9JYSXW+KUV0FMUNDfpLCeAcI1xDMdGLdxFJg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-aws-sdk@0.58.0': - resolution: {integrity: sha512-9vFH7gU686dsAeLMCkqUj9y0MQZ1xrTtStSpNV2UaGWtDnRjJrAdJLu9Y545oKEaDTeVaob4UflyZvvpZnw3Xw==} + '@opentelemetry/instrumentation-aws-sdk@0.76.0': + resolution: {integrity: sha512-gg2QaDtWeFezRt2mAl9vBQ38y60tzUShKg1KA9uTgsMJimUHaBnB3X8kEH9Of8jKWT4DDoDcSA37gPcoEc0hiA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-bunyan@0.49.0': - resolution: {integrity: sha512-ky5Am1y6s3Ex/3RygHxB/ZXNG07zPfg9Z6Ora+vfeKcr/+I6CJbWXWhSBJor3gFgKN3RvC11UWVURnmDpBS6Pg==} + '@opentelemetry/instrumentation-bunyan@0.66.0': + resolution: {integrity: sha512-IqYQC1dav35NHlD5nYnpBXK8tI6KJ9/MIt8LYKFxwlhMIwfBCfavaklyP8NtVKoJ0WZKzX2v9Sh+xGK1XvSniQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-cassandra-driver@0.49.0': - resolution: {integrity: sha512-BNIvqldmLkeikfI5w5Rlm9vG5NnQexfPoxOgEMzfDVOEF+vS6351I6DzWLLgWWR9CNF/jQJJi/lr6am2DLp0Rw==} + '@opentelemetry/instrumentation-cassandra-driver@0.66.0': + resolution: {integrity: sha512-4ksN7PfXLg7raDyXIjIrtxxzuuDlUx6Fh0s8VXojdl+nn2o0xkYa9jrq1f9Bfqhm+Sce3GOa1RjE3ycvAwk6Xw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-connect@0.47.0': - resolution: {integrity: sha512-pjenvjR6+PMRb6/4X85L4OtkQCootgb/Jzh/l/Utu3SJHBid1F+gk9sTGU2FWuhhEfV6P7MZ7BmCdHXQjgJ42g==} + '@opentelemetry/instrumentation-connect@0.64.0': + resolution: {integrity: sha512-D1Tpom3BpY8g29FFOEQ2FZioVFjyXwXHsh3BOn2BHcg7Taipg+yc+DPGUwvdR4WZrKnNMAG/+FBXNa0S0KhJYA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-cucumber@0.19.0': - resolution: {integrity: sha512-99ms8kQWRuPt5lkDqbJJzD+7Tq5TMUlBZki4SA2h6CgK4ncX+tyep9XFY1e+XTBLJIWmuFMGbWqBLJ4fSKIQNQ==} + '@opentelemetry/instrumentation-cucumber@0.37.0': + resolution: {integrity: sha512-ezhn6D0DSUZkwLBGdfnr+PAENvB92AhbEH/dkcSLYB8dbQiw/NQ8y19jOn3E6MZTt0+FD1YyHtrJS2skDO4nDQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.0.0 - '@opentelemetry/instrumentation-dataloader@0.21.1': - resolution: {integrity: sha512-hNAm/bwGawLM8VDjKR0ZUDJ/D/qKR3s6lA5NV+btNaPVm2acqhPcT47l2uCVi+70lng2mywfQncor9v8/ykuyw==} + '@opentelemetry/instrumentation-dataloader@0.38.0': + resolution: {integrity: sha512-OmOVadK0m7sdlvMwbt1gb2iVUCyvVNDo3x5JLGgnKggLTJBgTcQxgMl3pAhFAMzWGo9URuMxuh3Bphy9Pb9nZw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-dns@0.47.0': - resolution: {integrity: sha512-775fOnewWkTF4iXMGKgwvOGqEmPrU1PZpXjjqvTrEErYBJe7Fz1WlEeUStHepyKOdld7Ghv7TOF/kE3QDctvrg==} + '@opentelemetry/instrumentation-dns@0.64.0': + resolution: {integrity: sha512-La6s9SdKgojZQVFD7AclQBYe3WioVe6zicJswM3QPPPHpCufJYnw8rO/G9o2Yl/OUeS7PYpzwHh4N6lexzbEcA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-express@0.52.0': - resolution: {integrity: sha512-W7pizN0Wh1/cbNhhTf7C62NpyYw7VfCFTYg0DYieSTrtPBT1vmoSZei19wfKLnrMsz3sHayCg0HxCVL2c+cz5w==} + '@opentelemetry/instrumentation-express@0.69.0': + resolution: {integrity: sha512-91pHMujQgDyhEQrdg8RriMBrRZ/qPaJ0Y2dopQ6lHjW5YjoeytWi8ruM//T6f5o0D95hnqRlv79Pel1lGPqaYg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-fastify@0.48.0': - resolution: {integrity: sha512-3zQlE/DoVfVH6/ycuTv7vtR/xib6WOa0aLFfslYcvE62z0htRu/ot8PV/zmMZfnzpTQj8S/4ULv36R6UIbpJIg==} + '@opentelemetry/instrumentation-fs@0.40.0': + resolution: {integrity: sha512-p39axaaYVKhnl5l4M+1aiXmxrAG2HuTti7DHxs2jDJRst828y5iwqUZLC1UWIKIhW9FfdV5gogXg+nRRhSc0EA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-fs@0.23.0': - resolution: {integrity: sha512-Puan+QopWHA/KNYvDfOZN6M/JtF6buXEyD934vrb8WhsX1/FuM7OtoMlQyIqAadnE8FqqDL4KDPiEfCQH6pQcQ==} + '@opentelemetry/instrumentation-generic-pool@0.64.0': + resolution: {integrity: sha512-wM939j8Ox5BBHoA0r/p9etdpyS3GcUf/sfrUx1dtZdqGKU4ZcBxLyPD8QntwFkSI9PHql+rRejTCA6Btktz8Kg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-generic-pool@0.47.0': - resolution: {integrity: sha512-UfHqf3zYK+CwDwEtTjaD12uUqGGTswZ7ofLBEdQ4sEJp9GHSSJMQ2hT3pgBxyKADzUdoxQAv/7NqvL42ZI+Qbw==} + '@opentelemetry/instrumentation-graphql@0.69.0': + resolution: {integrity: sha512-vyKzuiBoEulV1FjMSe4iiuwZedt+nNAuaSVOh/3WxjDIuGQ9WsH+0ohd9snhIY6guAjYOGjqvTiYLs6K+OTQQg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-graphql@0.51.0': - resolution: {integrity: sha512-LchkOu9X5DrXAnPI1+Z06h/EH/zC7D6sA86hhPrk3evLlsJTz0grPrkL/yUJM9Ty0CL/y2HSvmWQCjbJEz/ADg==} + '@opentelemetry/instrumentation-grpc@0.221.0': + resolution: {integrity: sha512-1U45172SiPWG1MPfrgLItIuXZO/RfJqt5sxsrdlKN1NRV0pUtv7lbpgB1nShwP/SGSKaAFkovbVg3a1hfy3mpQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-grpc@0.203.0': - resolution: {integrity: sha512-Qmjx2iwccHYRLoE4RFS46CvQE9JG9Pfeae4EPaNZjvIuJxb/pZa2R9VWzRlTehqQWpAvto/dGhtkw8Tv+o0LTg==} + '@opentelemetry/instrumentation-hapi@0.67.0': + resolution: {integrity: sha512-cIXIN4vZXm6aI4yz+4oUIRnkiAxCIpONrMhnGTI+ILKKEsIXP8Uselfr9663+TnisrgRLB7kKp+SoOuGJRHGtw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-hapi@0.50.0': - resolution: {integrity: sha512-5xGusXOFQXKacrZmDbpHQzqYD1gIkrMWuwvlrEPkYOsjUqGUjl1HbxCsn5Y9bUXOCgP1Lj6A4PcKt1UiJ2MujA==} + '@opentelemetry/instrumentation-host-metrics@0.4.0': + resolution: {integrity: sha512-jnFyX2sTn2B+9mjsL3qgAHzpxdaia4/FV2GSlf9QrpaiMi6O0M0lA9JZTsf4FTvuOwrIngCk+MeVXjsxgBXXyg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-http@0.203.0': - resolution: {integrity: sha512-y3uQAcCOAwnO6vEuNVocmpVzG3PER6/YZqbPbbffDdJ9te5NkHEkfSMNzlC3+v7KlE+WinPGc3N7MR30G1HY2g==} + '@opentelemetry/instrumentation-http@0.221.0': + resolution: {integrity: sha512-oIP91CPIANuYr09tGFElPFKAh6JUar+awJf1kBRYlaeo9b0gDwZHEB2zBfFlvdNFHm0wAVutMZODVi5smKT30g==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-ioredis@0.51.0': - resolution: {integrity: sha512-9IUws0XWCb80NovS+17eONXsw1ZJbHwYYMXiwsfR9TSurkLV5UNbRSKb9URHO+K+pIJILy9wCxvyiOneMr91Ig==} + '@opentelemetry/instrumentation-ioredis@0.69.0': + resolution: {integrity: sha512-I9sZtxXWZ1tRXtRNTEVxpokGtXy6RL1SZhtPVh7zxH78t8ar71V5Dx4bnQiUjKTDzItpC73krD8c0/cEWA9oLg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-kafkajs@0.13.0': - resolution: {integrity: sha512-FPQyJsREOaGH64hcxlzTsIEQC4DYANgTwHjiB7z9lldmvua1LRMVn3/FfBlzXoqF179B0VGYviz6rn75E9wsDw==} + '@opentelemetry/instrumentation-kafkajs@0.30.0': + resolution: {integrity: sha512-/p/D4etxJpJGB0VrS+kqF8WfVAMFWf5ybhY0mjzIEd/d/T68+nxTWJaI5MJXFiyOnBUFuMlun12VJt+QJDCSZA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-knex@0.48.0': - resolution: {integrity: sha512-V5wuaBPv/lwGxuHjC6Na2JFRjtPgstw19jTFl1B1b6zvaX8zVDYUDaR5hL7glnQtUSCMktPttQsgK4dhXpddcA==} + '@opentelemetry/instrumentation-knex@0.65.0': + resolution: {integrity: sha512-rJTT12VlDnL6wOWfxnBvkTUIzW2ju+7nqlToMy1tlqL0j6ohlVPxryMCS5h6UqE3CFpq7HtHqVObQHZgrA37KA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-koa@0.51.0': - resolution: {integrity: sha512-XNLWeMTMG1/EkQBbgPYzCeBD0cwOrfnn8ao4hWgLv0fNCFQu1kCsJYygz2cvKuCs340RlnG4i321hX7R8gj3Rg==} + '@opentelemetry/instrumentation-koa@0.69.0': + resolution: {integrity: sha512-fxuA8jFOdqQzJV9Sitd0dk+zns7RQCFe19ia3LHex5oLiQPaaQovBv37jndX/zAZw6EBORATePHE8OQUwraPCQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.9.0 + + '@opentelemetry/instrumentation-lru-memoizer@0.65.0': + resolution: {integrity: sha512-s2KisLZ82iDvCF2QbsV1k1wrz3DMSBP9OiMfmNn5oSyaNT7jcNphR4uxr7WjwH+ssucuvhKWqKzJ2vdx7KRMVA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-lru-memoizer@0.48.0': - resolution: {integrity: sha512-KUW29wfMlTPX1wFz+NNrmE7IzN7NWZDrmFWHM/VJcmFEuQGnnBuTIdsP55CnBDxKgQ/qqYFp4udQFNtjeFosPw==} + '@opentelemetry/instrumentation-memcached@0.64.0': + resolution: {integrity: sha512-ek34tp7Qjci4CLahXybJ3aaixU1d2j28X5JSXSXbp6/rIiFGjMCAXJWw3FeiYmA82D/gV/wzPhL7r7m/p4gUzw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-memcached@0.47.0': - resolution: {integrity: sha512-vXDs/l4hlWy1IepPG1S6aYiIZn+tZDI24kAzwKKJmR2QEJRL84PojmALAEJGazIOLl/VdcCPZdMb0U2K0VzojA==} + '@opentelemetry/instrumentation-mongodb@0.74.0': + resolution: {integrity: sha512-GRnHu69YLQUYgguuYkKi6wpizMY4r7gLC08rSq8cg41p6t7+1YIy5nXoGC61NA7KCZUE9jbcDnzd45i32IblZg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mongodb@0.56.0': - resolution: {integrity: sha512-YG5IXUUmxX3Md2buVMvxm9NWlKADrnavI36hbJsihqqvBGsWnIfguf0rUP5Srr0pfPqhQjUP+agLMsvu0GmUpA==} + '@opentelemetry/instrumentation-mongoose@0.67.0': + resolution: {integrity: sha512-iEBgNrychD36qI16X/V8WZb2JabjQPE+pyrkLU320ApZyhGVsYU9LH3Nqt4Mkg1nFsa9qWhRQrCfhoANCgT6EA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mongoose@0.50.0': - resolution: {integrity: sha512-Am8pk1Ct951r4qCiqkBcGmPIgGhoDiFcRtqPSLbJrUZqEPUsigjtMjoWDRLG1Ki1NHgOF7D0H7d+suWz1AAizw==} + '@opentelemetry/instrumentation-mysql2@0.67.0': + resolution: {integrity: sha512-AmviR7l0xMxhC83scY3u+NkkT6blhD/xK9tPi9nYtjNG1gwPtMgZjYOa3f9lGOwpXs/EwN7wiyAgxiO4KTcENA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mysql2@0.50.0': - resolution: {integrity: sha512-PoOMpmq73rOIE3nlTNLf3B1SyNYGsp7QXHYKmeTZZnJ2Ou7/fdURuOhWOI0e6QZ5gSem18IR1sJi6GOULBQJ9g==} + '@opentelemetry/instrumentation-mysql@0.67.0': + resolution: {integrity: sha512-G4aRrVKcd2Aodqi7WzRZ3LQJNKrM8BpsXEVMHrOb9s8Lg0jZXNvlLY0NWL1yVJrjnqI/unwEsp2aVHkVImPMeA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mysql@0.49.0': - resolution: {integrity: sha512-QU9IUNqNsrlfE3dJkZnFHqLjlndiU39ll/YAAEvWE40sGOCi9AtOF6rmEGzJ1IswoZ3oyePV7q2MP8SrhJfVAA==} + '@opentelemetry/instrumentation-nestjs-core@0.67.0': + resolution: {integrity: sha512-lXb7pjobd2i/9Gmihf9wrOM0MgnDYBxOJq7uWEhZOqULodNFLyPCRUnWxSIbPQdUzlU36QtHjuAeaEBUJnqXkA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-nestjs-core@0.49.0': - resolution: {integrity: sha512-1R/JFwdmZIk3T/cPOCkVvFQeKYzbbUvDxVH3ShXamUwBlGkdEu5QJitlRMyVNZaHkKZKWgYrBarGQsqcboYgaw==} + '@opentelemetry/instrumentation-net@0.65.0': + resolution: {integrity: sha512-W82H8UvaSrWynpI510CNJbq2Aq6L4/zuR/dAvoCZVYeRiChi0LHMI8i3rPe3Tmau2WBwE0jimaWgOs0GCfIHbQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-net@0.47.0': - resolution: {integrity: sha512-csoJ++Njpf7C09JH+0HNGenuNbDZBqO1rFhMRo6s0rAmJwNh9zY3M/urzptmKlqbKnf4eH0s+CKHy/+M8fbFsQ==} + '@opentelemetry/instrumentation-openai@0.19.0': + resolution: {integrity: sha512-zHz7m/aUMDyAap7UMzaaxDkbmxEyUOfMBfh+7KICNwTBmIOypMnuUWwXWAfIJLgl+2dnZlNzxZRknULeS4YIhg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-oracledb@0.29.0': - resolution: {integrity: sha512-2aHLiJdkyiUbooIUm7FaZf+O4jyqEl+RfFpgud1dxT87QeeYM216wi+xaMNzsb5yKtRBqbA3qeHBCyenYrOZwA==} + '@opentelemetry/instrumentation-oracledb@0.46.0': + resolution: {integrity: sha512-nqxQvbp7HvsVPyDdgiZADPQX6B6ZUtLfm+XPuJHtQ3anxIcqU6qhJlrDIEM2LrZMShqf7bs84RHfDt2rgsp7hg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-pg@0.56.1': - resolution: {integrity: sha512-0/PiHDPVaLdcXNw6Gqb3JBdMxComMEwh444X8glwiynJKJHRTR49+l2cqJfoOVzB8Sl1XRl3Yaqw6aDi3s8e9w==} + '@opentelemetry/instrumentation-pg@0.73.0': + resolution: {integrity: sha512-yf3tBVwLHB9cZNNPSToNrthx36ouPe4FctFxy7ya6vSJ6gaiKjNfA/IgFFeuBpZflEQhy6aesPqzZo8ZjFkvNg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-pino@0.50.1': - resolution: {integrity: sha512-pBbvuWiHA9iAumAuQ0SKYOXK7NRlbnVTf/qBV0nMdRnxBPrc/GZTbh0f7Y59gZfYsbCLhXLL1oRTEnS+PwS3CA==} + '@opentelemetry/instrumentation-pino@0.67.0': + resolution: {integrity: sha512-Hb6phi2x1bq23OIiesj4imQvXs9Y5MMLtpgXH9hOuMm9LpBYz2cxPNgpgZ/XATuRclP1eRPoSl399o5XKwfoIA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-redis@0.52.0': - resolution: {integrity: sha512-R8Y7cCZlJ2Vl31S2i7bl5SqyC/aul54ski4wCFip/Tp9WGtLK1xVATi2rwy2wkc8ZCtjdEe9eEVR+QFG6gGZxg==} + '@opentelemetry/instrumentation-redis@0.69.0': + resolution: {integrity: sha512-lyCIEW89cYhMwaUSMBzsKHdwH2wOoqmuwXOARJneo9UL55govLIUCbYYAJ457oM8kdKADymlY4+SUW0DKQeIHw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-restify@0.49.0': - resolution: {integrity: sha512-tsGZZhS4mVZH7omYxw5jpsrD3LhWizqWc0PYtAnzpFUvL5ZINHE+cm57bssTQ2AK/GtZMxu9LktwCvIIf3dSmw==} + '@opentelemetry/instrumentation-restify@0.66.0': + resolution: {integrity: sha512-9zbnL0ML2jFgJmmG1XPQTqwopCogC8eAtUQ0SXvYb+Ux2yuOBOvSg9XvRk/hcQf6WsRMll47cELCMC+IaI9I+g==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-router@0.48.0': - resolution: {integrity: sha512-Wixrc8CchuJojXpaS/dCQjFOMc+3OEil1H21G+WLYQb8PcKt5kzW9zDBT19nyjjQOx/D/uHPfgbrT+Dc7cfJ9w==} + '@opentelemetry/instrumentation-router@0.65.0': + resolution: {integrity: sha512-ti9tDLFLhLoev5U/cGeQpFTlOjFFwrFbieZmwTFql9z8EijXDzFE7a3+3mgnxGl9CZR0luKCwFD/o51NPU+Ngg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-runtime-node@0.17.1': - resolution: {integrity: sha512-c1FlAk+bB2uF9a8YneGmNPTl7c/xVaan4mmWvbkWcOmH/ipKqR1LaKUlz/BMzLrJLjho1EJlG2NrS2w2Arg+nw==} + '@opentelemetry/instrumentation-runtime-node@0.34.0': + resolution: {integrity: sha512-Yb3PcmuK/iIOWY49GSEcSGl7fR4r6UqhZnuy5EWvFaqKqqs9SYnQeyQUEAbnBnSougRpwFBDbdN1SSGcvMhbtQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-socket.io@0.50.0': - resolution: {integrity: sha512-6JN6lnKN9ZuZtZdMQIR+no1qHzQvXSZUsNe3sSWMgqmNRyEXuDUWBIyKKeG0oHRHtR4xE4QhJyD4D5kKRPWZFA==} + '@opentelemetry/instrumentation-socket.io@0.68.0': + resolution: {integrity: sha512-Bhd0KApVBYV4WQMZZbKRYfvev7SudvCtSn6b36uyUbKowOMEoGpnVoIvm0rlrrBR0KmkcV3Y37SngCGUrTm3lg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-tedious@0.22.0': - resolution: {integrity: sha512-XrrNSUCyEjH1ax9t+Uo6lv0S2FCCykcF7hSxBMxKf7Xn0bPRxD3KyFUZy25aQXzbbbUHhtdxj3r2h88SfEM3aA==} + '@opentelemetry/instrumentation-tedious@0.40.0': + resolution: {integrity: sha512-zTNNxs+KUJf1J+lHzeTDxAIZdVJYvQ8mvGUfyiWcVFgVdl7+4XV+wOBMSd1tZcRRlopfcVODDCOVMx/N7+zvcA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-undici@0.14.0': - resolution: {integrity: sha512-2HN+7ztxAReXuxzrtA3WboAKlfP5OsPA57KQn2AdYZbJ3zeRPcLXyW4uO/jpLE6PLm0QRtmeGCmfYpqRlwgSwg==} + '@opentelemetry/instrumentation-undici@0.31.0': + resolution: {integrity: sha512-qunCfgSFV+bjRdAYkWIjVX38jIN/Xj80CiERXXdzYAmdigCFvJPB3AY3j43bjJlkhgbJJSCGdbvQUSut8QIiyQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.7.0 - '@opentelemetry/instrumentation-winston@0.48.1': - resolution: {integrity: sha512-XyOuVwdziirHHYlsw+BWrvdI/ymjwnexupKA787zQQ+D5upaE/tseZxjfQa7+t4+FdVLxHICaMTmkSD4yZHpzQ==} + '@opentelemetry/instrumentation-winston@0.65.0': + resolution: {integrity: sha512-hWSPnS530deRa+ttzY+QiGmgsK7aQHpqxbQRm56yO1j4qnIXuYYHaoSJ8/4lLOEcXB+hZs0mAAJ6QiMl1aaiGA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation@0.203.0': - resolution: {integrity: sha512-ke1qyM+3AK2zPuBPb6Hk/GCsc5ewbLvPNkEuELx/JmANeEp6ZjnZ+wypPAJSucTw0wvCGrUaibDSdcrGFoWxKQ==} + '@opentelemetry/instrumentation@0.221.0': + resolution: {integrity: sha512-cCk80Z/iRDf/5gfsKMB4f74LqVA5yKETB/9ojPzVW/6/f70iu89nJvGxsFCxx4XfSohaOofkU19kiYm84AiAlw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/otlp-exporter-base@0.203.0': - resolution: {integrity: sha512-Wbxf7k+87KyvxFr5D7uOiSq/vHXWommvdnNE7vECO3tAhsA2GfOlpWINCMWUEPdHZ7tCXxw6Epp3vgx3jU7llQ==} + '@opentelemetry/otlp-exporter-base@0.221.0': + resolution: {integrity: sha512-UFPIq80OH3Ns/oPFHRj14d4DTOxUo+MUFU8hUiCq5jTqFhdeJnfVSANHT+xp92409cA+oxzvlZCe6NM1wvCuBA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/otlp-grpc-exporter-base@0.203.0': - resolution: {integrity: sha512-te0Ze1ueJF+N/UOFl5jElJW4U0pZXQ8QklgSfJ2linHN0JJsuaHG8IabEUi2iqxY8ZBDlSiz1Trfv5JcjWWWwQ==} + '@opentelemetry/otlp-grpc-exporter-base@0.221.0': + resolution: {integrity: sha512-rQDmNgyiGCTrescjnzH2ntVyUKVIq6I2UjuK8+stT/Xg0ZOT71FVJqwjFdspQl6Yol/Yqsut9bDo+ame8oTmDQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/otlp-transformer@0.203.0': - resolution: {integrity: sha512-Y8I6GgoCna0qDQ2W6GCRtaF24SnvqvA8OfeTi7fqigD23u8Jpb4R5KFv/pRvrlGagcCLICMIyh9wiejp4TXu/A==} + '@opentelemetry/otlp-transformer@0.221.0': + resolution: {integrity: sha512-lg6lkOU08Az23jVcn/0Els9HP+V8PnR4Km6p0KgpTggS0n/WuhnmY64rSh83Of9iR9nD+dpWr6adlcX8KzAwjg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/propagator-b3@2.0.1': - resolution: {integrity: sha512-Hc09CaQ8Tf5AGLmf449H726uRoBNGPBL4bjr7AnnUpzWMvhdn61F78z9qb6IqB737TffBsokGAK1XykFEZ1igw==} + '@opentelemetry/propagator-aws-xray@2.2.0': + resolution: {integrity: sha512-Yjvt2EjL+tfpkVOdKbhTPgpM4SIAez9nG6Q/QjQ3yfcJcjIWp59ph70SLfvmkSL6++3DCnuBG3iWcB18PwWavQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/propagator-jaeger@2.0.1': - resolution: {integrity: sha512-7PMdPBmGVH2eQNb/AtSJizQNgeNTfh6jQFqys6lfhd6P4r+m/nTh3gKPPpaCXVdRQ+z93vfKk+4UGty390283w==} + '@opentelemetry/propagator-b3@2.10.0': + resolution: {integrity: sha512-GnA5B24H+1w8BO21J0q+IWNB0z1v+AGbcquTdIt/dufibhnhgxaA8YKvz0I3akRZhB1jHT+/tlzK+qlAjEDybQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/redis-common@0.38.2': - resolution: {integrity: sha512-1BCcU93iwSRZvDAgwUxC/DV4T/406SkMfxGqu5ojc3AvNI+I9GhV7v0J1HljsczuuhcnFLYqD5VmwVXfCGHzxA==} + '@opentelemetry/propagator-jaeger@2.10.0': + resolution: {integrity: sha512-yw/IX8DL470dSMZJoE82ScfYGp7JWZ/G8kFJo35ZILUVTB2jFPTOaioN+8s09pH0RHsWNhweVZb+ZnjJJpCChg==} engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/resource-detector-alibaba-cloud@0.31.9': - resolution: {integrity: sha512-V+HbpICyzmJoQHYpiN0xRlj7QqeR9pPo+JZiZztV77L2MdlUCa/Cq7h0gdFNIKc0P9u9rYYYW21oaqdhhC5LZg==} + '@opentelemetry/redis-common@0.38.3': + resolution: {integrity: sha512-VCghU1JYs/4gP6Gqf/xro9MEsZ7LrMv2uONVsaESKL38ZOB9BqnI98FfS23wjMnHlpuE+TTaWSoAVNpTwYXzjw==} engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - '@opentelemetry/resource-detector-aws@2.6.0': - resolution: {integrity: sha512-atZ9/HNXh9ZJuMZUH2TPl89imFZBaoiU0Mksa70ysVhYRzhk3hfJyiu+eETjZ7NhGjBPrd3sfVYEq/St/7+o3g==} + '@opentelemetry/resource-detector-alibaba-cloud@0.36.0': + resolution: {integrity: sha512-s75zJV1ShpYL5nk2cODfZY05Haw2hGxcfEFMu3ymvh2QU3HrhXaCW+rmNkhXhRrO8YophMFTyVdb7iCDleC/JQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.0.0 - '@opentelemetry/resource-detector-azure@0.10.0': - resolution: {integrity: sha512-5cNAiyPBg53Uxe/CW7hsCq8HiKNAUGH+gi65TtgpzSR9bhJG4AEbuZhbJDFwe97tn2ifAD1JTkbc/OFuaaFWbA==} + '@opentelemetry/resource-detector-aws@2.21.0': + resolution: {integrity: sha512-Veavy+khoywR+Hv065SU5jucFTGTiW1KXo39CsJ+8wqdYYz8jiRJPnQ20Kd+X9HbV2+Abb0l5CrJIdxK1ZOqBg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.0.0 - '@opentelemetry/resource-detector-container@0.7.9': - resolution: {integrity: sha512-BiS14kCylLzh/mayN/sjnOdhnpfgiekaEsIzaL29MErfQR0mFCZjAE2uu8jMjShva9bSDFs65ouuAFft+vBthg==} + '@opentelemetry/resource-detector-azure@0.29.0': + resolution: {integrity: sha512-lWm0vjjlQMoc4Xvvd+dW/OZWT/SI4w+cIN7kbm8KimIZCr1EpAyvyQ7WEOrGoBoXCpQCrsZ18uKTooDgiBCGIw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.0.0 - '@opentelemetry/resource-detector-gcp@0.37.0': - resolution: {integrity: sha512-LGpJBECIMsVKhiulb4nxUw++m1oF4EiDDPmFGW2aqYaAF0oUvJNv8Z/55CAzcZ7SxvlTgUwzewXDBsuCup7iqw==} + '@opentelemetry/resource-detector-container@0.8.12': + resolution: {integrity: sha512-EJRFfIY26whY0w5RDxMRXlfBDgDS001JYMHuOVuDBBsRrV4MBqoVajR9B0L9Vy728+w/HNVnSQkpJFacFr+klg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.0.0 - '@opentelemetry/resources@2.0.1': - resolution: {integrity: sha512-dZOB3R6zvBwDKnHDTB4X1xtMArB/d324VsbiPkX/Yu0Q8T2xceRthoIVFhJdvgVM2QhGVUyX9tzwiNxGtoBJUw==} + '@opentelemetry/resource-detector-gcp@0.56.0': + resolution: {integrity: sha512-H8yNeqTsuapbXs6MLZTtelfUCk+5D8jD3+KosCJaXOyx5gl3EWWvs70HbNXTUO4VYLxccySFYJYVCd8YMM0NJw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.10.0' + '@opentelemetry/api': ^1.0.0 '@opentelemetry/resources@2.1.0': resolution: {integrity: sha512-1CJjf3LCvoefUOgegxi8h6r4B/wLSzInyhGP2UmIBYNlo4Qk5CZ73e1eEyWmfXvFtm1ybkmfb2DqWvspsYLrWw==} @@ -2744,64 +2728,72 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' - '@opentelemetry/sdk-logs@0.203.0': - resolution: {integrity: sha512-vM2+rPq0Vi3nYA5akQD2f3QwossDnTDLvKbea6u/A2NZ3XDkPxMfo/PNrDoXhDUD/0pPo2CdH5ce/thn9K0kLw==} + '@opentelemetry/resources@2.10.0': + resolution: {integrity: sha512-q6MMm2zhggzsHVNbabYwut+a6nbuQQe3URUoxaojM/8K1IBfwwPzvxIjNi2/lI1TFe+fMHMW9MWhrtDLEXEnkA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: - '@opentelemetry/api': '>=1.4.0 <1.10.0' + '@opentelemetry/api': '>=1.3.0 <1.10.0' - '@opentelemetry/sdk-metrics@2.0.1': - resolution: {integrity: sha512-wf8OaJoSnujMAHWR3g+/hGvNcsC16rf9s1So4JlMiFaFHiE4HpIA3oUh+uWZQ7CNuK8gVW/pQSkgoa5HkkOl0g==} + '@opentelemetry/sdk-logs@0.221.0': + resolution: {integrity: sha512-FaDcazjyMp7TZZZAsqbo4IkovP0UegoCu0EBkiNt+qCqvUf7FPAsfcrZ3+ZEkKgXZ/jHafop+JoGPDk3A0SmLg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: - '@opentelemetry/api': '>=1.9.0 <1.10.0' + '@opentelemetry/api': '>=1.4.0 <1.10.0' - '@opentelemetry/sdk-metrics@2.1.0': - resolution: {integrity: sha512-J9QX459mzqHLL9Y6FZ4wQPRZG4TOpMCyPOh6mkr/humxE1W2S3Bvf4i75yiMW9uyed2Kf5rxmLhTm/UK8vNkAw==} + '@opentelemetry/sdk-metrics@2.10.0': + resolution: {integrity: sha512-t6r1VSvXNtSDnPXU1FbZeetJb7yyovHmgu0wRSoftxtE0g2rSNhQZQUy69sRUCL+iioJpX8SN/S6wq6ZtvLySQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.9.0 <1.10.0' - '@opentelemetry/sdk-node@0.203.0': - resolution: {integrity: sha512-zRMvrZGhGVMvAbbjiNQW3eKzW/073dlrSiAKPVWmkoQzah9wfynpVPeL55f9fVIm0GaBxTLcPeukWGy0/Wj7KQ==} + '@opentelemetry/sdk-node@0.221.0': + resolution: {integrity: sha512-UbYuvtBrQQB5Prsh9KOKy4kxzexFxfMs5MkteHeWMoswsEB7kiNhyUVkAOFW/qsEzNHtrkgyghrD2ilZJa+5YA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' - '@opentelemetry/sdk-trace-base@2.0.1': - resolution: {integrity: sha512-xYLlvk/xdScGx1aEqvxLwf6sXQLXCjk3/1SQT9X9AoN5rXRhkdvIFShuNNmtTEPRBqcsMbS4p/gJLNI2wXaDuQ==} + '@opentelemetry/sdk-trace-base@2.1.0': + resolution: {integrity: sha512-uTX9FBlVQm4S2gVQO1sb5qyBLq/FPjbp+tmGoxu4tIgtYGmBYB44+KX/725RFDe30yBSaA9Ml9fqphe1hbUyLQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' - '@opentelemetry/sdk-trace-base@2.1.0': - resolution: {integrity: sha512-uTX9FBlVQm4S2gVQO1sb5qyBLq/FPjbp+tmGoxu4tIgtYGmBYB44+KX/725RFDe30yBSaA9Ml9fqphe1hbUyLQ==} + '@opentelemetry/sdk-trace-base@2.10.0': + resolution: {integrity: sha512-GuYQQT7QD2EeO8lcZLRQzcbOyhqAzL+6WWTKTU9mSUBYBazkEDl+VrQcXQhbB08OWM9anD1aHleVadzulpOaUQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' - '@opentelemetry/sdk-trace-node@2.0.1': - resolution: {integrity: sha512-UhdbPF19pMpBtCWYP5lHbTogLWx9N0EBxtdagvkn5YtsAnCBZzL7SjktG+ZmupRgifsHMjwUaCCaVmqGfSADmA==} + '@opentelemetry/sdk-trace-node@2.10.0': + resolution: {integrity: sha512-GZK/G6oZyBLGlH1pUgeDch7D91KoHd2uotUGIkWCPi9GI5T9X0p4L7nNAMDR1BQjkRYoDqo+ddfVx9t5Uhys+Q==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/sdk-trace-node@2.1.0': - resolution: {integrity: sha512-SvVlBFc/jI96u/mmlKm86n9BbTCbQ35nsPoOohqJX6DXH92K0kTe73zGY5r8xoI1QkjR9PizszVJLzMC966y9Q==} + '@opentelemetry/sdk-trace@2.10.0': + resolution: {integrity: sha512-MfQGq3GRmTh5fM/y+OjaO0vj6+luCB1XO2gfXCalKCfgKw0eHL++sm75DNweC6ohlp+aFvACqeE0fYayqdRaoQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' + '@opentelemetry/api': '>=1.3.0 <1.10.0' '@opentelemetry/semantic-conventions@1.37.0': resolution: {integrity: sha512-JD6DerIKdJGmRp4jQyX5FlrQjA4tjOw1cvfsPAZXfOOEErMUHjPcPSICS+6WnM0nB0efSFARh0KAZss+bvExOA==} engines: {node: '>=14'} - '@opentelemetry/sql-common@0.41.2': - resolution: {integrity: sha512-4mhWm3Z8z+i508zQJ7r6Xi7y4mmoJpdvH0fZPFRkWrdp5fq7hhZ2HhYokEOLkfqSMgPR4Z9EyB3DBkbKGOqZiQ==} + '@opentelemetry/semantic-conventions@1.43.0': + resolution: {integrity: sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg==} + engines: {node: '>=14'} + + '@opentelemetry/sql-common@0.42.0': + resolution: {integrity: sha512-nwUwUU+8O8a4bnLqk6CodWeegGMEANgC94KTAhXcpGWLrW/2/hek/0ajNbjXnSOoNuCX+nteUPs46HFHhou9Xw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.1.0 + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + '@protobufjs/aspromise@1.1.2': resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} @@ -2969,6 +2961,16 @@ packages: peerDependencies: '@tiptap/core': ^2.7.0 + '@tiptap/extension-subscript@2.27.2': + resolution: {integrity: sha512-x2Oz7hrI4KvzzB9pWChFRm6JnKdYAUQDyrlSROngtzXT7VpNQNoD5s8OlICzDeNsaRKzhR8omIz2z17S1VB48g==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-superscript@2.27.2': + resolution: {integrity: sha512-VTGJDuNqdesibSVW94Q71VaGVGr/bwBppdaNLn7k6beOegALfIH7ncArlkD/eihOlJ2qaWiT7FoWNLTb/Fdv1w==} + peerDependencies: + '@tiptap/core': ^2.7.0 + '@tiptap/extension-table-cell@2.26.3': resolution: {integrity: sha512-m/uZSeXuRAJaLedq0MOu9ZGibh4kkovXX0i5Oj6K9lT+TtBLQBNCSABQeOCe2FFPXhpWRpnhZrqhJgdo/n9BSg==} peerDependencies: @@ -3061,8 +3063,8 @@ packages: '@tsconfig/node16@1.0.4': resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - '@types/aws-lambda@8.10.152': - resolution: {integrity: sha512-soT/c2gYBnT5ygwiHPmd9a1bftj462NWVk2tKCc1PYHSIacB2UwbTS2zYG4jzag1mRDuzg/OjtxQjQ2NKRB6Rw==} + '@types/aws-lambda@8.10.162': + resolution: {integrity: sha512-Fn658grtLOci1oxi1391vvDWJRKNGWRSqfxRkmN/Iy3c0tQH1USMKEXcPYHLvope+ZgTFocx9FRQJx1muBL6qw==} '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} @@ -3133,24 +3135,21 @@ packages: '@types/mysql@2.15.27': resolution: {integrity: sha512-YfWiV16IY0OeBfBCk8+hXKmdTKrKlwKN1MNKAPBu5JYxLwBEZl7QzeEpGnlZb3VMGJrrGmB84gXiH+ofs/TezA==} - '@types/node@22.18.10': - resolution: {integrity: sha512-anNG/V/Efn/YZY4pRzbACnKxNKoBng2VTFydVu8RRs5hQjikP8CQfaeAV59VFSCzKNp90mXiVXW2QzV56rwMrg==} + '@types/node@24.13.3': + resolution: {integrity: sha512-Dh8vAsV36ig5wa9OX4pXvMc9D3Veibfw2wix0CUwYODLD8nkj9UsLjASr49nPg+2eKzxhBV+v7L8pXvT4e639Q==} '@types/oracledb@6.5.2': resolution: {integrity: sha512-kK1eBS/Adeyis+3OlBDMeQQuasIDLUYXsi2T15ccNJ0iyUpQ4xDF7svFu3+bGVrI0CMBUclPciz+lsQR3JX3TQ==} - '@types/pg-pool@2.0.6': - resolution: {integrity: sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==} + '@types/pg-pool@2.0.7': + resolution: {integrity: sha512-U4CwmGVQcbEuqpyju8/ptOKg6gEC+Tqsvj2xS9o1g71bUh8twxnC6ZL5rZKCsGN0iyH0CwgUyc9VR5owNQF9Ng==} - '@types/pg@8.15.5': - resolution: {integrity: sha512-LF7lF6zWEKxuT3/OR8wAZGzkg4ENGXFNyiV/JeOt9z5B+0ZVwbql9McqX5c/WStFq1GaGso7H1AzP/qSzmlCKQ==} + '@types/pg@8.15.6': + resolution: {integrity: sha512-NoaMtzhxOrubeL/7UZuNTrejB4MPAJ0RpxZqXQf2qXuVlTPuG6Y8p4u9dKRaue4yjmC7ZhzVO2/Yyyn25znrPQ==} '@types/pug@2.0.10': resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==} - '@types/semver@7.7.1': - resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} - '@types/snappyjs@0.7.1': resolution: {integrity: sha512-OxjzJ6cQZstysMh6PEwZWmK9qlKZyezHJKOkcUkZDooSFuog2votUEKkxMaTq51UQF3cJkXKQ+XGlj4FSl8JQQ==} @@ -3181,71 +3180,64 @@ packages: '@types/yargs@17.0.33': resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} - '@typescript-eslint/eslint-plugin@6.21.0': - resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/eslint-plugin@8.67.0': + resolution: {integrity: sha512-Un7Heoyj65NREbKAyIrFxeM143NZpExWmy1Nep4DLeQOeLlTeumPjoNKnBrU5D5moWXbPJgRa5Uwcdu0faVNGQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/parser': ^8.67.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@6.21.0': - resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/parser@8.67.0': + resolution: {integrity: sha512-fUBfTuuEulWqX6V8+O3PtScV01tzYYRUDTAirHFKoRAt7nOzoGiPt0M/bB47wWNy0coOOcgEwAMUtBpykMxl6w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/scope-manager@6.21.0': - resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/type-utils@6.21.0': - resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/project-service@8.67.0': + resolution: {integrity: sha512-cvE8c7ulYeXN9fYuszhCeCsbzyVEXuhrRCybnBre7TUmqb5nRmBfQAwCj0O3WJFDeyAZt4VYv51vMCC9LHSdYw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/types@6.21.0': - resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/scope-manager@8.67.0': + resolution: {integrity: sha512-EgvsleTwS4E+WzzSvem8fAUubLwatMNF1B5hHSLQxcvs7q2dtRhGyujHwLJSYlG41niJ7GP24Aha2+0mb1b2kg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@6.21.0': - resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/tsconfig-utils@8.67.0': + resolution: {integrity: sha512-vV+LUSv5njUWsknE71fqKTlXUva+R76SaeORd6Zojcunk/6DvKFXONU3BrAs2H49mbygUXt6gbYunzwqNwlhdg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@6.21.0': - resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/type-utils@8.67.0': + resolution: {integrity: sha512-aVWDXbRmdXO9siTfX4ditQI1T9+zVcNazT48EJCD0v40/9RIFoUgZ05CmGEq9H2gixRpjUn/iplwvlcvutJW/Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/visitor-keys@6.21.0': - resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/types@8.67.0': + resolution: {integrity: sha512-sBtgslww8nsMYUjhdPBiSyUqSzT8uR6g93A2QXnQC8+cGdjz0CyaOdqHDRJb1AtORbZCNUJBBeFA/tNR2uQmww==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@ungap/structured-clone@1.3.0': - resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + '@typescript-eslint/typescript-estree@8.67.0': + resolution: {integrity: sha512-EKQBCE9yNlRJYm7jdTW5AhDacDUmSwQb0FAJAmK2EKYrNXIsa2vxcSZx6PvJ/dEdI6lS+Y9W+EXckLj0iPFGcw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' - acorn-import-attributes@1.9.5: - resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + '@typescript-eslint/utils@8.67.0': + resolution: {integrity: sha512-U9D1FdwEWBwok3hxxSdhclMb0twvt9QnjIQ0VfQ1AiX2epnpSgv2ubVDsayOFyY8K6FX+AQ7E0FKWVG3iKsj1A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - acorn: ^8 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/visitor-keys@8.67.0': + resolution: {integrity: sha512-fkv8dHRDqfGtTHuJeebdrQ7cX6Ad4WAS00rgHh9UGvMycF1mjBfsxry1XsLIFhWZ6Judlh6UdzK+TYlbpCXgnA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} @@ -3265,8 +3257,8 @@ packages: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ajv@6.15.0: + resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==} ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} @@ -3276,6 +3268,10 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} + ansi-regex@6.3.0: + resolution: {integrity: sha512-WpDfL7NO6j7tH88IDBNVdUJxDh9nmCteAVW9dsep846XdwF4naCBK+/tGLX3KJgcpgMRXCFlTM2hKGoK9FsdrQ==} + engines: {node: '>=12'} + ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} @@ -3284,6 +3280,10 @@ packages: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} engines: {node: '>=10'} + ansi-styles@6.2.3: + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} + engines: {node: '>=12'} + anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -3372,6 +3372,10 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + baseline-browser-mapping@2.8.16: resolution: {integrity: sha512-OMu3BGQ4E7P1ErFsIPpbJh0qvDudM/UuJeHgkAvfWe+0HFJCXh+t/l8L6fVLR55RI/UbKrVLnAXZSVwd9ysWYw==} hasBin: true @@ -3389,6 +3393,10 @@ packages: brace-expansion@2.0.2: resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + brace-expansion@5.0.9: + resolution: {integrity: sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==} + engines: {node: 20 || >=22} + braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -3412,9 +3420,6 @@ packages: buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - builtins@5.1.0: - resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} - call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} @@ -3465,6 +3470,9 @@ packages: cjs-module-lexer@1.4.3: resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + cjs-module-lexer@2.2.1: + resolution: {integrity: sha512-Ca8swihM+/4yKecYHY52kgJd300hi2lADU/a1RxNTRe+RJ9jvqQlESpbz9DnG9mowez8qwXHB8qYdIUw9e+F5Q==} + cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -3545,6 +3553,10 @@ packages: resolution: {integrity: sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==} engines: {node: '>=18'} + data-uri-to-buffer@4.0.1: + resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} + engines: {node: '>= 12'} + data-urls@5.0.0: resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} engines: {node: '>=18'} @@ -3630,10 +3642,6 @@ packages: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} @@ -3651,6 +3659,9 @@ packages: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + electron-to-chromium@1.5.237: resolution: {integrity: sha512-icUt1NvfhGLar5lSWH3tHNzablaA5js3HVHacQimfP8ViEBOQv+L7DKEuHdbTZ0SKCO1ogTJTIL1Gwk9S6Qvcg==} @@ -3661,9 +3672,16 @@ packages: emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + enabled@2.0.0: resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} + enhanced-resolve@5.24.5: + resolution: {integrity: sha512-L1l8TNvomm6UVW5B253AGxQagSQr+vGwhMlrrfRS2qmhx46AMpMVJKQYLvWYbysTMY8VoicOvzHzoHMbyzB+4A==} + engines: {node: '>=10.13.0'} + entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -3691,6 +3709,9 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} + es-module-lexer@2.3.2: + resolution: {integrity: sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==} + es-object-atoms@1.1.1: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} @@ -3745,26 +3766,12 @@ packages: peerDependencies: eslint: '>=6.0.0' - eslint-config-standard-with-typescript@40.0.0: - resolution: {integrity: sha512-GXUJcwIXiTQaS3H4etv8a1lejVVdZYaxZNz3g7vt6GoJosQqMTurbmSC4FVGyHiGT/d1TjFr3+47A3xsHhsG+Q==} - deprecated: Please use eslint-config-love, instead. + eslint-config-love@155.0.0: + resolution: {integrity: sha512-3FNiSSfnR5ypBNALxcVXVMQIrEJV4KouUxdeV/8fMT74wCuMa/DL9vgDOneM7LQMn05U8DsqfKQ0uO0MCigxLw==} peerDependencies: - '@typescript-eslint/eslint-plugin': ^6.4.0 - eslint: ^8.0.1 - eslint-plugin-import: ^2.25.2 - eslint-plugin-n: '^15.0.0 || ^16.0.0 ' - eslint-plugin-promise: ^6.0.0 + eslint: ^9.35.0 typescript: '*' - eslint-config-standard@17.1.0: - resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} - engines: {node: '>=12.0.0'} - peerDependencies: - eslint: ^8.0.1 - eslint-plugin-import: ^2.25.2 - eslint-plugin-n: '^15.0.0 || ^16.0.0 ' - eslint-plugin-promise: ^6.0.0 - eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} @@ -3777,17 +3784,11 @@ packages: eslint: optional: true - eslint-plugin-es@3.0.1: - resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} - engines: {node: '>=8.10.0'} + eslint-plugin-es-x@7.8.0: + resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - eslint: '>=4.19.1' - - eslint-plugin-es@4.1.0: - resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} - engines: {node: '>=8.10.0'} - peerDependencies: - eslint: '>=4.19.1' + eslint: '>=8' eslint-plugin-import@2.32.0: resolution: {integrity: sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==} @@ -3795,69 +3796,64 @@ packages: peerDependencies: eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 - eslint-plugin-n@15.7.0: - resolution: {integrity: sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==} - engines: {node: '>=12.22.0'} + eslint-plugin-n@18.3.0: + resolution: {integrity: sha512-cPVguuDe6DrIPb/qUXHf8P89MaVTUmiYWwpt5gX5AILsvRIiZAxMFXcFR6QHYBksqKJpjfUBlL/RleCJUWcD7w==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} peerDependencies: - eslint: '>=7.0.0' - - eslint-plugin-node@11.1.0: - resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} - engines: {node: '>=8.10.0'} - peerDependencies: - eslint: '>=5.16.0' + eslint: '>=8.57.1' + ts-declaration-location: ^1.0.6 + typescript: '>=5.0.0' + peerDependenciesMeta: + ts-declaration-location: + optional: true + typescript: + optional: true - eslint-plugin-promise@6.6.0: - resolution: {integrity: sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-plugin-promise@7.3.0: + resolution: {integrity: sha512-6uGiOR0INuujr6PEQmeSSP7GbIMJ/ebEXXiEzb/nOj68LknH5Pxzb/AbZivmr6VE6TkTE8rTjRK9zhKpK6HsRA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 - eslint-plugin-svelte@2.46.1: - resolution: {integrity: sha512-7xYr2o4NID/f9OEYMqxsEQsCsj4KaMy4q5sANaKkAb6/QeCjYFxRmDm2S3YC3A3pl1kyPZ/syOx/i7LcWYSbIw==} - engines: {node: ^14.17.0 || >=16.0.0} + eslint-plugin-svelte@3.23.0: + resolution: {integrity: sha512-n9jRklDqy0+W834568a4ZIZTK7DHXxvvHHxxGP8nNq7N//pOZMubttskHOquyGgfTR4Z05q2NdGNlsTpIEA48w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0-0 || ^9.0.0-0 + eslint: ^8.57.1 || ^9.0.0 || ^10.0.0 svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 peerDependenciesMeta: svelte: optional: true - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-utils@2.1.0: - resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} - engines: {node: '>=6'} - - eslint-utils@3.0.0: - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' - - eslint-visitor-keys@1.3.0: - resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} - engines: {node: '>=4'} - - eslint-visitor-keys@2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} + eslint-scope@8.4.0: + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint@8.57.1: - resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@5.0.1: + resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + eslint@9.39.5: + resolution: {integrity: sha512-DgZS62aPLXKlnxILS/AYCoRvHaZeXceIzlXPkkGGzJWSow1aEk0lbTlxUSlyjC8jcaKxAdOnTDz+o1JFSBsyjw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + espree@10.4.0: + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} @@ -3921,12 +3917,25 @@ packages: fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + fecha@4.2.3: resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + fetch-blob@3.2.0: + resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} + engines: {node: ^12.20 || >= 14.13} + + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} file-stream-rotator@0.6.1: resolution: {integrity: sha512-u+dBid4PvZw17PmDeRcNOtCP9CCK/9lRN2w+r1xIS7yOL9JFrIBKTvrYsxT4P0pGtThYTn++QS5ChHaUov3+zQ==} @@ -3943,9 +3952,9 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} flatted@3.3.3: resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} @@ -3957,6 +3966,14 @@ packages: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + + formdata-polyfill@4.0.10: + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} + engines: {node: '>=12.20.0'} + forwarded-parse@2.1.2: resolution: {integrity: sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw==} @@ -3982,13 +3999,13 @@ packages: functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - gaxios@6.7.1: - resolution: {integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==} - engines: {node: '>=14'} + gaxios@7.1.3: + resolution: {integrity: sha512-YGGyuEdVIjqxkxVH1pUTMY/XtmmsApXrCVv5EU25iX6inEPbV+VakJfLealkBtJN69AQmh1eGOdCl9Sm1UP6XQ==} + engines: {node: '>=18'} - gcp-metadata@6.1.1: - resolution: {integrity: sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==} - engines: {node: '>=14'} + gcp-metadata@8.1.4: + resolution: {integrity: sha512-iJ9KMsiu+xKtNRX0PmGLSaIU3bUBAyzWTyqKemKPzNPsmmsBCQYmlNg+brEbES7IHSXtdVwzBPzx1vz3FAaipw==} + engines: {node: '>=18'} generator-function@2.0.1: resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} @@ -4022,6 +4039,9 @@ packages: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} + get-tsconfig@4.14.3: + resolution: {integrity: sha512-++QEw4DIY7WGoukz+/+A/8dGYPT9l9yIadnmSgZ8Rjr3YVSVDipQSO9CdnJo9ePqFqUUqh+wk9uIaoiAwsiPkA==} + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -4030,13 +4050,26 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} + glob@10.5.0: + resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + hasBin: true + glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + globals@15.15.0: + resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} + engines: {node: '>=18'} + + globals@16.5.0: + resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==} + engines: {node: '>=18'} globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} @@ -4046,8 +4079,11 @@ packages: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} - google-logging-utils@0.0.2: - resolution: {integrity: sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==} + globrex@0.1.2: + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + + google-logging-utils@1.1.3: + resolution: {integrity: sha512-eAmLkjDjAFCVXg7A1unxHsLf961m6y17QFqXqAXGj/gVkKFrEICfStRfwUlGNfeCEjNRa32JEWOUTlYXPyyKvA==} engines: {node: '>=14'} gopd@1.2.0: @@ -4057,9 +4093,6 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - handlebars@4.7.9: resolution: {integrity: sha512-4E71E0rpOaQuJR2A3xDZ+GM1HyWYv1clR58tC8emQNeQe3RH7MAzSbat+V0wG78LQBo6m6bzSG/L4pBuCsgnUQ==} engines: {node: '>=0.4.7'} @@ -4125,12 +4158,17 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} + ignore@7.0.6: + resolution: {integrity: sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==} + engines: {node: '>= 4'} + import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} - import-in-the-middle@1.15.0: - resolution: {integrity: sha512-bpQy+CrsRmYmoPMAE/0G33iwRqwW4ouqdRg8jgbH3aKuCtOc8lxgmYXg2dMM92CRiGP660EtBcymH/eVUpCSaA==} + import-in-the-middle@3.3.3: + resolution: {integrity: sha512-AiohS3H80sXO6owEltjGX+glb7qXaDhBoJb9XcQVH4UI207xu/bDLUcadVKp7Qe576reg9yr/PXZjV5qx8gfbA==} + engines: {node: '>=18'} import-local@3.2.0: resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} @@ -4234,10 +4272,6 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} @@ -4317,6 +4351,9 @@ packages: resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} engines: {node: '>=8'} + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jest-changed-files@29.7.0: resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -4478,8 +4515,8 @@ packages: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + js-yaml@4.3.1: + resolution: {integrity: sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ==} hasBin: true jsdom@26.1.0: @@ -4534,8 +4571,8 @@ packages: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} - known-css-properties@0.35.0: - resolution: {integrity: sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==} + known-css-properties@0.37.0: + resolution: {integrity: sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==} kuler@2.0.0: resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} @@ -4648,16 +4685,27 @@ packages: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} + minimatch@10.2.6: + resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==} + engines: {node: 18 || 20 || >=22} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + minimatch@3.1.5: + resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} + + minimatch@9.0.9: + resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} engines: {node: '>=16 || 14 >=14.17'} minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} + engines: {node: '>=16 || 14 >=14.17'} + mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true @@ -4689,14 +4737,14 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true + node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + deprecated: Use your platform's native DOMException instead + + node-fetch@3.3.2: + resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} node-gyp-build-optional-packages@5.2.2: resolution: {integrity: sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==} @@ -4788,6 +4836,9 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -4814,6 +4865,10 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -4843,6 +4898,10 @@ packages: resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} + picomatch@4.0.5: + resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} + engines: {node: '>=12'} + pirates@4.0.7: resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} engines: {node: '>= 6'} @@ -4867,11 +4926,11 @@ packages: ts-node: optional: true - postcss-safe-parser@6.0.0: - resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} - engines: {node: '>=12.0'} + postcss-safe-parser@7.0.1: + resolution: {integrity: sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==} + engines: {node: '>=18.0'} peerDependencies: - postcss: ^8.3.3 + postcss: ^8.4.31 postcss-scss@4.0.9: resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} @@ -4879,8 +4938,8 @@ packages: peerDependencies: postcss: ^8.4.29 - postcss-selector-parser@6.1.2: - resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + postcss-selector-parser@7.1.5: + resolution: {integrity: sha512-KvvtD7SrlBP7dlgkBghEE3r84CABm5SmV2aNcG4oCA+qDnJ/tvKonFVvwWAyyWUEwxuNawdfEAZKP9zM3oZ2Uw==} engines: {node: '>=4'} postcss@8.5.6: @@ -5037,17 +5096,13 @@ packages: resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} - regexpp@3.2.0: - resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} - engines: {node: '>=8'} - require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} - require-in-the-middle@7.5.2: - resolution: {integrity: sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ==} - engines: {node: '>=8.6.0'} + require-in-the-middle@8.0.1: + resolution: {integrity: sha512-QT7FVMXfWOYFbeRBF6nu+I6tr2Tf3u0q8RIEjNob/heKY/nh7drD/k7eeMFmSQgnTtCzLDcCu/XEnpW2wk4xCQ==} + engines: {node: '>=9.3.0 || >=8.10.0 <9.0.0'} resolve-cwd@3.0.0: resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} @@ -5061,6 +5116,9 @@ packages: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + resolve.exports@2.0.3: resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} engines: {node: '>=10'} @@ -5079,9 +5137,8 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported + rimraf@5.0.10: + resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} hasBin: true rope-sequence@1.3.4: @@ -5173,6 +5230,10 @@ packages: signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} @@ -5220,6 +5281,10 @@ packages: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + string.prototype.trim@1.2.10: resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} engines: {node: '>= 0.4'} @@ -5239,6 +5304,10 @@ packages: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} + strip-ansi@7.2.0: + resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==} + engines: {node: '>=12'} + strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} @@ -5271,18 +5340,9 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - svelte-eslint-parser@0.33.1: - resolution: {integrity: sha512-vo7xPGTlKBGdLH8T5L64FipvTrqv3OQRx9d2z5X05KKZDlF4rQk8KViZO4flKERY+5BiVdOh7zZ7JGJWo5P0uA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - svelte: ^3.37.0 || ^4.0.0 - peerDependenciesMeta: - svelte: - optional: true - - svelte-eslint-parser@0.43.0: - resolution: {integrity: sha512-GpU52uPKKcVnh8tKN5P4UZpJ/fUDndmq7wfsvoVXsyP+aY0anol7Yqo01fyrlaWGMFfm4av5DyrjlaXdLRJvGA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + svelte-eslint-parser@1.8.1: + resolution: {integrity: sha512-5zgKBqAf6V8Jyrmr1jViksyG4NKT8NheYwkdxRaMRDAqpGWi9wR8ktcGrAZbfMn/PHUp1BWzAp0cYQECkWuAMA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0, pnpm: 10.34.5} peerDependencies: svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 peerDependenciesMeta: @@ -5339,6 +5399,16 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + systeminformation@5.33.1: + resolution: {integrity: sha512-DEN6ICHk3Tk0Uf/hrAHh7xlt7iL5CJFBtPZinA0H62DrGG/KPKqq/Nzj6lCXPS4Ay/sf/14zNnk9LpqKzBIc+w==} + engines: {node: '>=10.0.0'} + os: [darwin, linux, win32, freebsd, openbsd, netbsd, sunos, android] + hasBin: true + + tapable@2.3.3: + resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} + engines: {node: '>=6'} + test-exclude@6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} @@ -5346,8 +5416,9 @@ packages: text-hex@1.0.0: resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + tinyglobby@0.2.17: + resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} + engines: {node: '>=12.0.0'} tldts-core@6.1.86: resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==} @@ -5370,9 +5441,6 @@ packages: resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==} engines: {node: '>=16'} - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - tr46@5.1.1: resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==} engines: {node: '>=18'} @@ -5381,11 +5449,11 @@ packages: resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} engines: {node: '>= 14.0.0'} - ts-api-utils@1.4.3: - resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} - engines: {node: '>=16'} + ts-api-utils@2.5.0: + resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==} + engines: {node: '>=18.12'} peerDependencies: - typescript: '>=4.2.0' + typescript: '>=4.8.4' ts-jest@29.4.5: resolution: {integrity: sha512-HO3GyiWn2qvTQA4kTgjDcXiMwYQt68a1Y8+JuLRVpdIzm+UOLSHgl/XqR4c6nzJkq5rOkjc02O2I7P7l/Yof0Q==} @@ -5442,10 +5510,6 @@ packages: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} @@ -5470,6 +5534,13 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} + typescript-eslint@8.67.0: + resolution: {integrity: sha512-S2udFs8tCKEKffuJ4TB1idGUZiXdCPGi3IPBGWXarbLQ5UPXORV8QEVzJ4gCRduURMb5EkpNCdjbk0eDIuI8Yg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + typescript@5.9.3: resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} @@ -5487,8 +5558,8 @@ packages: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} engines: {node: '>= 0.4'} - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + undici-types@7.18.2: + resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} @@ -5510,10 +5581,6 @@ packages: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true - uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - hasBin: true - v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} @@ -5531,8 +5598,9 @@ packages: walker@1.0.8: resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + web-streams-polyfill@3.3.3: + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} + engines: {node: '>= 8'} webidl-conversions@7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} @@ -5551,9 +5619,6 @@ packages: resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==} engines: {node: '>=18'} - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - which-boxed-primitive@1.1.1: resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} engines: {node: '>= 0.4'} @@ -5600,6 +5665,10 @@ packages: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -5607,8 +5676,8 @@ packages: resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - ws@8.18.3: - resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} + ws@8.21.3: + resolution: {integrity: sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -5657,6 +5726,11 @@ packages: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} + yaml@2.9.0: + resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==} + engines: {node: '>= 14.6'} + hasBin: true + yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -5995,28 +6069,64 @@ snapshots: '@esbuild/win32-x64@0.25.11': optional: true - '@eslint-community/eslint-utils@4.9.0(eslint@8.57.1)': + '@eslint-community/eslint-plugin-eslint-comments@4.7.2(eslint@9.39.5)': + dependencies: + escape-string-regexp: 4.0.0 + eslint: 9.39.5 + ignore: 7.0.6 + + '@eslint-community/eslint-utils@4.10.1(eslint@9.39.5)': dependencies: - eslint: 8.57.1 + eslint: 9.39.5 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/eslint-utils@4.9.0(eslint@9.39.5)': + dependencies: + eslint: 9.39.5 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/eslintrc@2.1.4': + '@eslint-community/regexpp@4.12.2': {} + + '@eslint/config-array@0.21.2': dependencies: - ajv: 6.12.6 + '@eslint/object-schema': 2.1.7 debug: 4.4.3 - espree: 9.6.1 - globals: 13.24.0 + minimatch: 3.1.5 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.4.2': + dependencies: + '@eslint/core': 0.17.0 + + '@eslint/core@0.17.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/eslintrc@3.3.6': + dependencies: + ajv: 6.15.0 + debug: 4.4.3 + espree: 10.4.0 + globals: 14.0.0 ignore: 5.3.2 import-fresh: 3.3.1 - js-yaml: 4.1.0 - minimatch: 3.1.2 + js-yaml: 4.3.1 + minimatch: 3.1.5 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color - '@eslint/js@8.57.1': {} + '@eslint/js@9.39.5': {} + + '@eslint/object-schema@2.1.7': {} + + '@eslint/plugin-kit@0.4.1': + dependencies: + '@eslint/core': 0.17.0 + levn: 0.4.1 '@formatjs/ecma402-abstract@2.3.6': dependencies: @@ -6044,7 +6154,7 @@ snapshots: dependencies: tslib: 2.8.1 - '@grpc/grpc-js@1.14.0': + '@grpc/grpc-js@1.14.4': dependencies: '@grpc/proto-loader': 0.8.0 '@js-sdsl/ordered-map': 4.4.2 @@ -6056,29 +6166,29 @@ snapshots: protobufjs: 7.5.5 yargs: 17.7.2 - '@hcengineering/platform-rig@0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3))': + '@hcengineering/platform-rig@0.7.21(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3))': dependencies: - '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.67.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3) + '@typescript-eslint/parser': 8.67.0(eslint@9.39.5)(typescript@5.9.3) esbuild: 0.25.11 esbuild-plugin-copy: 2.1.1(esbuild@0.25.11) esbuild-svelte: 0.9.3(esbuild@0.25.11)(svelte@4.2.20) - eslint: 8.57.1 - eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: 2.32.0(eslint@8.57.1) - eslint-plugin-n: 15.7.0(eslint@8.57.1) - eslint-plugin-promise: 6.6.0(eslint@8.57.1) - eslint-plugin-svelte: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + eslint: 9.39.5 + eslint-config-love: 155.0.0(eslint@9.39.5)(typescript@5.9.3) + eslint-plugin-n: 18.3.0(eslint@9.39.5)(typescript@5.9.3) + eslint-plugin-promise: 7.3.0(eslint@9.39.5) + eslint-plugin-svelte: 3.23.0(eslint@9.39.5)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) prettier: 3.6.2 prettier-plugin-svelte: 3.4.0(prettier@3.6.2)(svelte@4.2.20) svelte: 4.2.20 - svelte-eslint-parser: 0.33.1(svelte@4.2.20) - svelte-preprocess: 5.1.4(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(postcss@8.5.6)(svelte@4.2.20)(typescript@5.9.3) + svelte-eslint-parser: 1.8.1(svelte@4.2.20) + svelte-preprocess: 5.1.4(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.6)(svelte@4.2.20)(typescript@5.9.3) svelte2tsx: 0.7.45(svelte@4.2.20)(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - '@babel/core' - coffeescript + - jiti - less - postcss - postcss-load-config @@ -6087,19 +6197,33 @@ snapshots: - stylus - sugarss - supports-color + - ts-declaration-location - ts-node - '@humanwhocodes/config-array@0.13.0': + '@humanfs/core@0.19.2': dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.4.3 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color + '@humanfs/types': 0.15.0 + + '@humanfs/node@0.16.8': + dependencies: + '@humanfs/core': 0.19.2 + '@humanfs/types': 0.15.0 + '@humanwhocodes/retry': 0.4.3 + + '@humanfs/types@0.15.0': {} '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/object-schema@2.0.3': {} + '@humanwhocodes/retry@0.4.3': {} + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.2.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 '@istanbuljs/load-nyc-config@1.1.0': dependencies: @@ -6114,27 +6238,27 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 22.18.10 + '@types/node': 24.13.3 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3))': + '@jest/core@29.7.0(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.18.10 + '@types/node': 24.13.3 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + jest-config: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -6161,7 +6285,7 @@ snapshots: '@jest/fake-timers': 30.2.0 '@jest/types': 30.2.0 '@types/jsdom': 21.1.7 - '@types/node': 22.18.10 + '@types/node': 24.13.3 jest-mock: 30.2.0 jest-util: 30.2.0 jsdom: 26.1.0 @@ -6170,14 +6294,14 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.18.10 + '@types/node': 24.13.3 jest-mock: 29.7.0 '@jest/environment@30.2.0': dependencies: '@jest/fake-timers': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 22.18.10 + '@types/node': 24.13.3 jest-mock: 30.2.0 '@jest/expect-utils@29.7.0': @@ -6195,7 +6319,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.18.10 + '@types/node': 24.13.3 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -6204,7 +6328,7 @@ snapshots: dependencies: '@jest/types': 30.2.0 '@sinonjs/fake-timers': 13.0.5 - '@types/node': 22.18.10 + '@types/node': 24.13.3 jest-message-util: 30.2.0 jest-mock: 30.2.0 jest-util: 30.2.0 @@ -6220,7 +6344,7 @@ snapshots: '@jest/pattern@30.0.1': dependencies: - '@types/node': 22.18.10 + '@types/node': 24.13.3 jest-regex-util: 30.0.1 '@jest/reporters@29.7.0': @@ -6231,7 +6355,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.31 - '@types/node': 22.18.10 + '@types/node': 24.13.3 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -6305,7 +6429,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.18.10 + '@types/node': 24.13.3 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -6315,7 +6439,7 @@ snapshots: '@jest/schemas': 30.0.5 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.18.10 + '@types/node': 24.13.3 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -6375,712 +6499,712 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.1 - '@opentelemetry/api-logs@0.203.0': - dependencies: - '@opentelemetry/api': 1.9.0 - - '@opentelemetry/api@1.9.0': {} - - '@opentelemetry/auto-instrumentations-node@0.62.2(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0))': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-amqplib': 0.50.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-aws-lambda': 0.54.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-aws-sdk': 0.58.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-bunyan': 0.49.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-cassandra-driver': 0.49.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-connect': 0.47.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-cucumber': 0.19.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-dataloader': 0.21.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-dns': 0.47.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-express': 0.52.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-fastify': 0.48.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-fs': 0.23.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-generic-pool': 0.47.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-graphql': 0.51.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-grpc': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-hapi': 0.50.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-http': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-ioredis': 0.51.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-kafkajs': 0.13.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-knex': 0.48.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-koa': 0.51.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-lru-memoizer': 0.48.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-memcached': 0.47.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mongodb': 0.56.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mongoose': 0.50.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mysql': 0.49.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mysql2': 0.50.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-nestjs-core': 0.49.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-net': 0.47.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-oracledb': 0.29.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-pg': 0.56.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-pino': 0.50.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-redis': 0.52.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-restify': 0.49.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-router': 0.48.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-runtime-node': 0.17.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-socket.io': 0.50.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-tedious': 0.22.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-undici': 0.14.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-winston': 0.48.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resource-detector-alibaba-cloud': 0.31.9(@opentelemetry/api@1.9.0) - '@opentelemetry/resource-detector-aws': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resource-detector-azure': 0.10.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resource-detector-container': 0.7.9(@opentelemetry/api@1.9.0) - '@opentelemetry/resource-detector-gcp': 0.37.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-node': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api-logs@0.221.0': + dependencies: + '@opentelemetry/api': 1.9.1 + + '@opentelemetry/api@1.9.1': {} + + '@opentelemetry/auto-instrumentations-node@0.79.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.10.0(@opentelemetry/api@1.9.1))': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-amqplib': 0.68.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-aws-lambda': 0.73.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-aws-sdk': 0.76.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-bunyan': 0.66.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-cassandra-driver': 0.66.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-connect': 0.64.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-cucumber': 0.37.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-dataloader': 0.38.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-dns': 0.64.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-express': 0.69.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-fs': 0.40.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-generic-pool': 0.64.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-graphql': 0.69.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-grpc': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-hapi': 0.67.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-host-metrics': 0.4.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-http': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-ioredis': 0.69.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-kafkajs': 0.30.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-knex': 0.65.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-koa': 0.69.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-lru-memoizer': 0.65.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-memcached': 0.64.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-mongodb': 0.74.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-mongoose': 0.67.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-mysql': 0.67.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-mysql2': 0.67.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-nestjs-core': 0.67.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-net': 0.65.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-openai': 0.19.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-oracledb': 0.46.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-pg': 0.73.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-pino': 0.67.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-redis': 0.69.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-restify': 0.66.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-router': 0.65.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-runtime-node': 0.34.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-socket.io': 0.68.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-tedious': 0.40.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-undici': 0.31.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-winston': 0.65.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resource-detector-alibaba-cloud': 0.36.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resource-detector-aws': 2.21.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resource-detector-azure': 0.29.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resource-detector-container': 0.8.12(@opentelemetry/api@1.9.1) + '@opentelemetry/resource-detector-gcp': 0.56.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-node': 0.221.0(@opentelemetry/api@1.9.1) transitivePeerDependencies: - - encoding - supports-color - '@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/configuration@0.221.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + yaml: 2.9.0 - '@opentelemetry/context-async-hooks@2.1.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/context-async-hooks@2.10.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 + '@opentelemetry/api': 1.9.1 - '@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 + '@opentelemetry/api': 1.9.1 '@opentelemetry/semantic-conventions': 1.37.0 - '@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/core@2.10.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 + '@opentelemetry/api': 1.9.1 '@opentelemetry/semantic-conventions': 1.37.0 - '@opentelemetry/exporter-logs-otlp-grpc@0.203.0(@opentelemetry/api@1.9.0)': - dependencies: - '@grpc/grpc-js': 1.14.0 - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-grpc-exporter-base': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-logs': 0.203.0(@opentelemetry/api@1.9.0) - - '@opentelemetry/exporter-logs-otlp-http@0.203.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.203.0 - '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-logs': 0.203.0(@opentelemetry/api@1.9.0) - - '@opentelemetry/exporter-logs-otlp-proto@0.203.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.203.0 - '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-logs': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) - - '@opentelemetry/exporter-metrics-otlp-grpc@0.203.0(@opentelemetry/api@1.9.0)': - dependencies: - '@grpc/grpc-js': 1.14.0 - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-metrics-otlp-http': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-grpc-exporter-base': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 2.0.1(@opentelemetry/api@1.9.0) - - '@opentelemetry/exporter-metrics-otlp-http@0.203.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 2.0.1(@opentelemetry/api@1.9.0) - - '@opentelemetry/exporter-metrics-otlp-proto@0.203.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-metrics-otlp-http': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 2.0.1(@opentelemetry/api@1.9.0) - - '@opentelemetry/exporter-prometheus@0.203.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 2.0.1(@opentelemetry/api@1.9.0) - - '@opentelemetry/exporter-trace-otlp-grpc@0.203.0(@opentelemetry/api@1.9.0)': - dependencies: - '@grpc/grpc-js': 1.14.0 - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-grpc-exporter-base': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) - - '@opentelemetry/exporter-trace-otlp-http@0.203.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) - - '@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) - - '@opentelemetry/exporter-zipkin@2.0.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-logs-otlp-grpc@0.221.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/otlp-exporter-base': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-grpc-exporter-base': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-logs': 0.221.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/exporter-logs-otlp-http@0.221.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/otlp-exporter-base': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-logs': 0.221.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/exporter-logs-otlp-proto@0.221.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/otlp-exporter-base': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-logs': 0.221.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/exporter-metrics-otlp-grpc@0.221.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/exporter-metrics-otlp-http': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-grpc-exporter-base': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.221.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/exporter-metrics-otlp-http@0.221.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-exporter-base': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-metrics': 2.10.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/exporter-metrics-otlp-proto@0.221.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/exporter-metrics-otlp-http': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-exporter-base': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.221.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/exporter-prometheus@0.221.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-metrics': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.37.0 + + '@opentelemetry/exporter-trace-otlp-grpc@0.221.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/otlp-exporter-base': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-grpc-exporter-base': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace': 2.10.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/exporter-trace-otlp-http@0.221.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/otlp-exporter-base': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace': 2.10.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/exporter-trace-otlp-proto@0.221.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/otlp-exporter-base': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace': 2.10.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/exporter-zipkin@2.10.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace': 2.10.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.37.0 - '@opentelemetry/id-generator-aws-xray@2.0.3(@opentelemetry/api@1.9.0)': + '@opentelemetry/id-generator-aws-xray@2.1.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-amqplib@0.50.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-amqplib@0.68.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.37.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-aws-lambda@0.54.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-aws-lambda@0.73.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/propagator-aws-xray': 2.2.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.37.0 - '@types/aws-lambda': 8.10.152 + '@types/aws-lambda': 8.10.162 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-aws-sdk@0.58.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-aws-sdk@0.76.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.37.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-bunyan@0.49.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-bunyan@0.66.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.203.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.221.0 + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 '@types/bunyan': 1.8.11 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-cassandra-driver@0.49.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-cassandra-driver@0.66.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.37.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-connect@0.47.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-connect@0.64.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.37.0 '@types/connect': 3.4.38 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-cucumber@0.19.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-cucumber@0.37.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.37.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-dataloader@0.21.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-dataloader@0.38.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-dns@0.47.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-dns@0.64.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-express@0.52.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-express@0.69.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.37.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-fastify@0.48.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-fs@0.40.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.37.0 + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-fs@0.23.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-generic-pool@0.64.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-generic-pool@0.47.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-graphql@0.69.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-graphql@0.51.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-grpc@0.221.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.37.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-grpc@0.203.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-hapi@0.67.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.37.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-hapi@0.50.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-host-metrics@0.4.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.37.0 + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) + systeminformation: 5.33.1 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-http@0.203.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-http@0.221.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.37.0 forwarded-parse: 2.1.2 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-ioredis@0.51.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-ioredis@0.69.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/redis-common': 0.38.2 + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/redis-common': 0.38.3 '@opentelemetry/semantic-conventions': 1.37.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-kafkajs@0.13.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-kafkajs@0.30.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.37.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-knex@0.48.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-knex@0.65.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.37.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-koa@0.51.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-koa@0.69.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.37.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-lru-memoizer@0.48.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-lru-memoizer@0.65.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-memcached@0.47.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-memcached@0.64.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.37.0 '@types/memcached': 2.2.10 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mongodb@0.56.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-mongodb@0.74.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.37.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mongoose@0.50.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-mongoose@0.67.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.37.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mysql2@0.50.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-mysql2@0.67.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.37.0 - '@opentelemetry/sql-common': 0.41.2(@opentelemetry/api@1.9.0) + '@opentelemetry/sql-common': 0.42.0(@opentelemetry/api@1.9.1) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mysql@0.49.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-mysql@0.67.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.37.0 '@types/mysql': 2.15.27 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-nestjs-core@0.49.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-nestjs-core@0.67.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.37.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-net@0.65.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.37.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-net@0.47.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-openai@0.19.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.221.0 + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.37.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-oracledb@0.29.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-oracledb@0.46.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.37.0 '@types/oracledb': 6.5.2 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-pg@0.56.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-pg@0.73.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.37.0 - '@opentelemetry/sql-common': 0.41.2(@opentelemetry/api@1.9.0) - '@types/pg': 8.15.5 - '@types/pg-pool': 2.0.6 + '@opentelemetry/sql-common': 0.42.0(@opentelemetry/api@1.9.1) + '@types/pg': 8.15.6 + '@types/pg-pool': 2.0.7 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-pino@0.50.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-pino@0.67.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.203.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.221.0 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-redis@0.52.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-redis@0.69.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/redis-common': 0.38.2 + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/redis-common': 0.38.3 '@opentelemetry/semantic-conventions': 1.37.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-restify@0.49.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-restify@0.66.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.37.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-router@0.48.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-router@0.65.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.37.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-runtime-node@0.17.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-runtime-node@0.34.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.221.0 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-socket.io@0.50.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-socket.io@0.68.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.37.0 + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-tedious@0.22.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-tedious@0.40.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.37.0 '@types/tedious': 4.0.14 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-undici@0.14.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-undici@0.31.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.37.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-winston@0.48.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-winston@0.65.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.203.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.221.0 + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation@0.203.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation@0.221.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.203.0 - import-in-the-middle: 1.15.0 - require-in-the-middle: 7.5.2 + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.221.0 + import-in-the-middle: 3.3.3 + require-in-the-middle: 8.0.1 transitivePeerDependencies: - supports-color - '@opentelemetry/otlp-exporter-base@0.203.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/otlp-exporter-base@0.221.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.221.0(@opentelemetry/api@1.9.1) - '@opentelemetry/otlp-grpc-exporter-base@0.203.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/otlp-grpc-exporter-base@0.221.0(@opentelemetry/api@1.9.1)': dependencies: - '@grpc/grpc-js': 1.14.0 - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0) + '@grpc/grpc-js': 1.14.4 + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-exporter-base': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.221.0(@opentelemetry/api@1.9.1) - '@opentelemetry/otlp-transformer@0.203.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/otlp-transformer@0.221.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.203.0 - '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-logs': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) - protobufjs: 7.5.5 + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.221.0 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-logs': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-metrics': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace': 2.10.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/propagator-aws-xray@2.2.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 - '@opentelemetry/propagator-b3@2.0.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/propagator-b3@2.10.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) - '@opentelemetry/propagator-jaeger@2.0.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/propagator-jaeger@2.10.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) - '@opentelemetry/redis-common@0.38.2': {} + '@opentelemetry/redis-common@0.38.3': {} - '@opentelemetry/resource-detector-alibaba-cloud@0.31.9(@opentelemetry/api@1.9.0)': + '@opentelemetry/resource-detector-alibaba-cloud@0.36.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.10.0(@opentelemetry/api@1.9.1) - '@opentelemetry/resource-detector-aws@2.6.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/resource-detector-aws@2.21.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.10.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.37.0 - '@opentelemetry/resource-detector-azure@0.10.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/resource-detector-azure@0.29.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.10.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.37.0 - '@opentelemetry/resource-detector-container@0.7.9(@opentelemetry/api@1.9.0)': + '@opentelemetry/resource-detector-container@0.8.12(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.10.0(@opentelemetry/api@1.9.1) - '@opentelemetry/resource-detector-gcp@0.37.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/resource-detector-gcp@0.56.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.37.0 - gcp-metadata: 6.1.1 + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.10.0(@opentelemetry/api@1.9.1) + gcp-metadata: 8.1.4 transitivePeerDependencies: - - encoding - supports-color - '@opentelemetry/resources@2.0.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/resources@2.1.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.37.0 + + '@opentelemetry/resources@2.10.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.37.0 - '@opentelemetry/resources@2.1.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/sdk-logs@0.221.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.221.0 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.10.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.37.0 - '@opentelemetry/sdk-logs@0.203.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.203.0 - '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) - - '@opentelemetry/sdk-metrics@2.0.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) - - '@opentelemetry/sdk-metrics@2.1.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) - - '@opentelemetry/sdk-node@0.203.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.203.0 - '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-logs-otlp-grpc': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-logs-otlp-http': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-logs-otlp-proto': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-metrics-otlp-grpc': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-metrics-otlp-http': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-metrics-otlp-proto': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-prometheus': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-trace-otlp-grpc': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-trace-otlp-http': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-trace-otlp-proto': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-zipkin': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/propagator-b3': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/propagator-jaeger': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-logs': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-node': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics@2.10.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.10.0(@opentelemetry/api@1.9.1) + + '@opentelemetry/sdk-node@0.221.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.221.0 + '@opentelemetry/configuration': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/context-async-hooks': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-logs-otlp-grpc': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-logs-otlp-http': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-logs-otlp-proto': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-metrics-otlp-grpc': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-metrics-otlp-http': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-metrics-otlp-proto': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-prometheus': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-trace-otlp-grpc': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-trace-otlp-http': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-trace-otlp-proto': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-zipkin': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-exporter-base': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-grpc-exporter-base': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/propagator-b3': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/propagator-jaeger': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-logs': 0.221.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-metrics': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-node': 2.10.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.37.0 transitivePeerDependencies: - supports-color - '@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.37.0 - '@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/sdk-trace-base@2.10.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace': 2.10.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.37.0 - '@opentelemetry/sdk-trace-node@2.0.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/sdk-trace-node@2.10.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/context-async-hooks': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/context-async-hooks': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 2.10.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-trace-node@2.1.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/sdk-trace@2.10.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/context-async-hooks': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.37.0 '@opentelemetry/semantic-conventions@1.37.0': {} - '@opentelemetry/sql-common@0.41.2(@opentelemetry/api@1.9.0)': + '@opentelemetry/semantic-conventions@1.43.0': {} + + '@opentelemetry/sql-common@0.42.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + + '@pkgjs/parseargs@0.11.0': + optional: true '@protobufjs/aspromise@1.1.2': {} @@ -7223,6 +7347,14 @@ snapshots: dependencies: '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) + '@tiptap/extension-subscript@2.27.2(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))': + dependencies: + '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) + + '@tiptap/extension-superscript@2.27.2(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))': + dependencies: + '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) + '@tiptap/extension-table-cell@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))': dependencies: '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) @@ -7337,7 +7469,7 @@ snapshots: '@tsconfig/node16@1.0.4': {} - '@types/aws-lambda@8.10.152': {} + '@types/aws-lambda@8.10.162': {} '@types/babel__core@7.20.5': dependencies: @@ -7362,17 +7494,17 @@ snapshots: '@types/bunyan@1.8.11': dependencies: - '@types/node': 22.18.10 + '@types/node': 24.13.3 '@types/connect@3.4.38': dependencies: - '@types/node': 22.18.10 + '@types/node': 24.13.3 '@types/estree@1.0.8': {} '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.18.10 + '@types/node': 24.13.3 '@types/istanbul-lib-coverage@2.0.6': {} @@ -7391,7 +7523,7 @@ snapshots: '@types/jsdom@21.1.7': dependencies: - '@types/node': 22.18.10 + '@types/node': 24.13.3 '@types/tough-cookie': 4.0.5 parse5: 7.3.0 @@ -7419,41 +7551,39 @@ snapshots: '@types/memcached@2.2.10': dependencies: - '@types/node': 22.18.10 + '@types/node': 24.13.3 '@types/mysql@2.15.27': dependencies: - '@types/node': 22.18.10 + '@types/node': 24.13.3 - '@types/node@22.18.10': + '@types/node@24.13.3': dependencies: - undici-types: 6.21.0 + undici-types: 7.18.2 '@types/oracledb@6.5.2': dependencies: - '@types/node': 22.18.10 + '@types/node': 24.13.3 - '@types/pg-pool@2.0.6': + '@types/pg-pool@2.0.7': dependencies: - '@types/pg': 8.15.5 + '@types/pg': 8.15.6 - '@types/pg@8.15.5': + '@types/pg@8.15.6': dependencies: - '@types/node': 22.18.10 + '@types/node': 24.13.3 pg-protocol: 1.10.3 pg-types: 2.2.0 '@types/pug@2.0.10': {} - '@types/semver@7.7.1': {} - '@types/snappyjs@0.7.1': {} '@types/stack-utils@2.0.3': {} '@types/tedious@4.0.14': dependencies: - '@types/node': 22.18.10 + '@types/node': 24.13.3 '@types/toposort@2.0.7': {} @@ -7465,7 +7595,7 @@ snapshots: '@types/ws@8.18.1': dependencies: - '@types/node': 22.18.10 + '@types/node': 24.13.3 '@types/yargs-parser@21.0.3': {} @@ -7473,97 +7603,96 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.67.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3)': dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.4.3 - eslint: 8.57.1 - graphemer: 1.4.0 - ignore: 5.3.2 + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.67.0(eslint@9.39.5)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.67.0 + '@typescript-eslint/type-utils': 8.67.0(eslint@9.39.5)(typescript@5.9.3) + '@typescript-eslint/utils': 8.67.0(eslint@9.39.5)(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.67.0 + eslint: 9.39.5 + ignore: 7.0.6 natural-compare: 1.4.0 - semver: 7.7.3 - ts-api-utils: 1.4.3(typescript@5.9.3) - optionalDependencies: + ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3)': + '@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 6.21.0 + '@typescript-eslint/scope-manager': 8.67.0 + '@typescript-eslint/types': 8.67.0 + '@typescript-eslint/typescript-estree': 8.67.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.67.0 debug: 4.4.3 - eslint: 8.57.1 - optionalDependencies: + eslint: 9.39.5 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@6.21.0': - dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - - '@typescript-eslint/type-utils@6.21.0(eslint@8.57.1)(typescript@5.9.3)': + '@typescript-eslint/project-service@8.67.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.9.3) - '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.67.0(typescript@5.9.3) + '@typescript-eslint/types': 8.67.0 debug: 4.4.3 - eslint: 8.57.1 - ts-api-utils: 1.4.3(typescript@5.9.3) - optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@6.21.0': {} + '@typescript-eslint/scope-manager@8.67.0': + dependencies: + '@typescript-eslint/types': 8.67.0 + '@typescript-eslint/visitor-keys': 8.67.0 - '@typescript-eslint/typescript-estree@6.21.0(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.67.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 + typescript: 5.9.3 + + '@typescript-eslint/type-utils@8.67.0(eslint@9.39.5)(typescript@5.9.3)': + dependencies: + '@typescript-eslint/types': 8.67.0 + '@typescript-eslint/typescript-estree': 8.67.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.67.0(eslint@9.39.5)(typescript@5.9.3) debug: 4.4.3 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.7.3 - ts-api-utils: 1.4.3(typescript@5.9.3) - optionalDependencies: + eslint: 9.39.5 + ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@6.21.0(eslint@8.57.1)(typescript@5.9.3)': + '@typescript-eslint/types@8.67.0': {} + + '@typescript-eslint/typescript-estree@8.67.0(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.1) - '@types/json-schema': 7.0.15 - '@types/semver': 7.7.1 - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.9.3) - eslint: 8.57.1 + '@typescript-eslint/project-service': 8.67.0(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.67.0(typescript@5.9.3) + '@typescript-eslint/types': 8.67.0 + '@typescript-eslint/visitor-keys': 8.67.0 + debug: 4.4.3 + minimatch: 10.2.6 semver: 7.7.3 + tinyglobby: 0.2.17 + ts-api-utils: 2.5.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - - typescript - '@typescript-eslint/visitor-keys@6.21.0': + '@typescript-eslint/utils@8.67.0(eslint@9.39.5)(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 6.21.0 - eslint-visitor-keys: 3.4.3 - - '@ungap/structured-clone@1.3.0': {} + '@eslint-community/eslint-utils': 4.10.1(eslint@9.39.5) + '@typescript-eslint/scope-manager': 8.67.0 + '@typescript-eslint/types': 8.67.0 + '@typescript-eslint/typescript-estree': 8.67.0(typescript@5.9.3) + eslint: 9.39.5 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color - acorn-import-attributes@1.9.5(acorn@8.15.0): + '@typescript-eslint/visitor-keys@8.67.0': dependencies: - acorn: 8.15.0 + '@typescript-eslint/types': 8.67.0 + eslint-visitor-keys: 5.0.1 acorn-jsx@5.3.2(acorn@8.15.0): dependencies: @@ -7577,7 +7706,7 @@ snapshots: agent-base@7.1.4: {} - ajv@6.12.6: + ajv@6.15.0: dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 @@ -7590,12 +7719,16 @@ snapshots: ansi-regex@5.0.1: {} + ansi-regex@6.3.0: {} + ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 ansi-styles@5.2.0: {} + ansi-styles@6.2.3: {} + anymatch@3.1.3: dependencies: normalize-path: 3.0.0 @@ -7730,6 +7863,8 @@ snapshots: balanced-match@1.0.2: {} + balanced-match@4.0.4: {} + baseline-browser-mapping@2.8.16: {} bignumber.js@9.3.1: {} @@ -7745,6 +7880,10 @@ snapshots: dependencies: balanced-match: 1.0.2 + brace-expansion@5.0.9: + dependencies: + balanced-match: 4.0.4 + braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -7769,10 +7908,6 @@ snapshots: buffer-from@1.1.2: {} - builtins@5.1.0: - dependencies: - semver: 7.7.3 - call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 @@ -7823,6 +7958,8 @@ snapshots: cjs-module-lexer@1.4.3: {} + cjs-module-lexer@2.2.1: {} + cliui@8.0.1: dependencies: string-width: 4.2.3 @@ -7866,13 +8003,13 @@ snapshots: convert-source-map@2.0.0: {} - create-jest@29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)): + create-jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + jest-config: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -7909,6 +8046,8 @@ snapshots: '@asamuzakjp/css-color': 3.2.0 rrweb-cssom: 0.8.0 + data-uri-to-buffer@4.0.1: {} + data-urls@5.0.0: dependencies: whatwg-mimetype: 4.0.0 @@ -7981,10 +8120,6 @@ snapshots: dependencies: esutils: 2.0.3 - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - dom-serializer@2.0.0: dependencies: domelementtype: 2.3.0 @@ -8009,14 +8144,23 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 + eastasianwidth@0.2.0: {} + electron-to-chromium@1.5.237: {} emittery@0.13.1: {} emoji-regex@8.0.0: {} + emoji-regex@9.2.2: {} + enabled@2.0.0: {} + enhanced-resolve@5.24.5: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.3.3 + entities@4.5.0: {} entities@5.0.0: {} @@ -8088,6 +8232,8 @@ snapshots: es-errors@1.3.0: {} + es-module-lexer@2.3.2: {} + es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 @@ -8160,30 +8306,23 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-compat-utils@0.5.1(eslint@8.57.1): + eslint-compat-utils@0.5.1(eslint@9.39.5): dependencies: - eslint: 8.57.1 + eslint: 9.39.5 semver: 7.7.3 - eslint-config-standard-with-typescript@40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3): + eslint-config-love@155.0.0(eslint@9.39.5)(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.9.3) - eslint: 8.57.1 - eslint-config-standard: 17.1.0(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1) - eslint-plugin-import: 2.32.0(eslint@8.57.1) - eslint-plugin-n: 15.7.0(eslint@8.57.1) - eslint-plugin-promise: 6.6.0(eslint@8.57.1) + '@eslint-community/eslint-plugin-eslint-comments': 4.7.2(eslint@9.39.5) + '@typescript-eslint/utils': 8.67.0(eslint@9.39.5)(typescript@5.9.3) + eslint: 9.39.5 + eslint-plugin-n: 18.3.0(eslint@9.39.5)(typescript@5.9.3) + eslint-plugin-promise: 7.3.0(eslint@9.39.5) typescript: 5.9.3 + typescript-eslint: 8.67.0(eslint@9.39.5)(typescript@5.9.3) transitivePeerDependencies: - supports-color - - eslint-config-standard@17.1.0(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - eslint-plugin-import: 2.32.0(eslint@8.57.1) - eslint-plugin-n: 15.7.0(eslint@8.57.1) - eslint-plugin-promise: 6.6.0(eslint@8.57.1) + - ts-declaration-location eslint-import-resolver-node@0.3.9: dependencies: @@ -8191,25 +8330,20 @@ snapshots: is-core-module: 2.16.1 resolve: 1.22.10 - eslint-module-utils@2.12.1(eslint@8.57.1): + eslint-module-utils@2.12.1(eslint@9.39.5): dependencies: debug: 3.2.7 optionalDependencies: - eslint: 8.57.1 - - eslint-plugin-es@3.0.1(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - eslint-utils: 2.1.0 - regexpp: 3.2.0 + eslint: 9.39.5 - eslint-plugin-es@4.1.0(eslint@8.57.1): + eslint-plugin-es-x@7.8.0(eslint@9.39.5): dependencies: - eslint: 8.57.1 - eslint-utils: 2.1.0 - regexpp: 3.2.0 + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.5) + '@eslint-community/regexpp': 4.12.1 + eslint: 9.39.5 + eslint-compat-utils: 0.5.1(eslint@9.39.5) - eslint-plugin-import@2.32.0(eslint@8.57.1): + eslint-plugin-import@2.32.0(eslint@9.39.5): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -8218,9 +8352,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.57.1 + eslint: 9.39.5 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(eslint@8.57.1) + eslint-module-utils: 2.12.1(eslint@9.39.5) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -8232,119 +8366,98 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 - eslint-plugin-n@15.7.0(eslint@8.57.1): + eslint-plugin-n@18.3.0(eslint@9.39.5)(typescript@5.9.3): dependencies: - builtins: 5.1.0 - eslint: 8.57.1 - eslint-plugin-es: 4.1.0(eslint@8.57.1) - eslint-utils: 3.0.0(eslint@8.57.1) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.5) + enhanced-resolve: 5.24.5 + eslint: 9.39.5 + eslint-plugin-es-x: 7.8.0(eslint@9.39.5) + get-tsconfig: 4.14.3 + globals: 15.15.0 + globrex: 0.1.2 ignore: 5.3.2 - is-core-module: 2.16.1 - minimatch: 3.1.2 - resolve: 1.22.10 semver: 7.7.3 + optionalDependencies: + typescript: 5.9.3 - eslint-plugin-node@11.1.0(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - eslint-plugin-es: 3.0.1(eslint@8.57.1) - eslint-utils: 2.1.0 - ignore: 5.3.2 - minimatch: 3.1.2 - resolve: 1.22.10 - semver: 6.3.1 - - eslint-plugin-promise@6.6.0(eslint@8.57.1): + eslint-plugin-promise@7.3.0(eslint@9.39.5): dependencies: - eslint: 8.57.1 + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.5) + eslint: 9.39.5 - eslint-plugin-svelte@2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)): + eslint-plugin-svelte@3.23.0(eslint@9.39.5)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)): dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.1) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.5) '@jridgewell/sourcemap-codec': 1.5.5 - eslint: 8.57.1 - eslint-compat-utils: 0.5.1(eslint@8.57.1) + eslint: 9.39.5 esutils: 2.0.3 - known-css-properties: 0.35.0 + globals: 16.5.0 + known-css-properties: 0.37.0 postcss: 8.5.6 - postcss-load-config: 3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) - postcss-safe-parser: 6.0.0(postcss@8.5.6) - postcss-selector-parser: 6.1.2 + postcss-load-config: 3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) + postcss-safe-parser: 7.0.1(postcss@8.5.6) semver: 7.7.3 - svelte-eslint-parser: 0.43.0(svelte@4.2.20) + svelte-eslint-parser: 1.8.1(svelte@4.2.20) optionalDependencies: svelte: 4.2.20 transitivePeerDependencies: - ts-node - eslint-scope@7.2.2: + eslint-scope@8.4.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-utils@2.1.0: - dependencies: - eslint-visitor-keys: 1.3.0 - - eslint-utils@3.0.0(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - eslint-visitor-keys: 2.1.0 - - eslint-visitor-keys@1.3.0: {} + eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@2.1.0: {} + eslint-visitor-keys@4.2.1: {} - eslint-visitor-keys@3.4.3: {} + eslint-visitor-keys@5.0.1: {} - eslint@8.57.1: + eslint@9.39.5: dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.1) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.5) '@eslint-community/regexpp': 4.12.1 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.1 - '@humanwhocodes/config-array': 0.13.0 + '@eslint/config-array': 0.21.2 + '@eslint/config-helpers': 0.4.2 + '@eslint/core': 0.17.0 + '@eslint/eslintrc': 3.3.6 + '@eslint/js': 9.39.5 + '@eslint/plugin-kit': 0.4.1 + '@humanfs/node': 0.16.8 '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.3.0 - ajv: 6.12.6 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.8 + ajv: 6.15.0 chalk: 4.1.2 cross-spawn: 7.0.6 debug: 4.4.3 - doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 + file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 ignore: 5.3.2 imurmurhash: 0.1.4 is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 lodash.merge: 4.6.2 - minimatch: 3.1.2 + minimatch: 3.1.5 natural-compare: 1.4.0 optionator: 0.9.4 - strip-ansi: 6.0.1 - text-table: 0.2.0 transitivePeerDependencies: - supports-color - espree@9.6.1: + espree@10.4.0: dependencies: acorn: 8.15.0 acorn-jsx: 5.3.2(acorn@8.15.0) - eslint-visitor-keys: 3.4.3 + eslint-visitor-keys: 4.2.1 esprima@4.0.1: {} @@ -8412,11 +8525,20 @@ snapshots: dependencies: bser: 2.1.1 + fdir@6.5.0(picomatch@4.0.5): + optionalDependencies: + picomatch: 4.0.5 + fecha@4.2.3: {} - file-entry-cache@6.0.1: + fetch-blob@3.2.0: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 3.3.3 + + file-entry-cache@8.0.0: dependencies: - flat-cache: 3.2.0 + flat-cache: 4.0.1 file-stream-rotator@0.6.1: dependencies: @@ -8436,11 +8558,10 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - flat-cache@3.2.0: + flat-cache@4.0.1: dependencies: flatted: 3.3.3 keyv: 4.5.4 - rimraf: 3.0.2 flatted@3.3.3: {} @@ -8450,6 +8571,15 @@ snapshots: dependencies: is-callable: 1.2.7 + foreground-child@3.3.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + formdata-polyfill@4.0.10: + dependencies: + fetch-blob: 3.2.0 + forwarded-parse@2.1.2: {} fs-extra@10.1.0: @@ -8476,24 +8606,21 @@ snapshots: functions-have-names@1.2.3: {} - gaxios@6.7.1: + gaxios@7.1.3: dependencies: extend: 3.0.2 https-proxy-agent: 7.0.6 - is-stream: 2.0.1 - node-fetch: 2.7.0 - uuid: 9.0.1 + node-fetch: 3.3.2 + rimraf: 5.0.10 transitivePeerDependencies: - - encoding - supports-color - gcp-metadata@6.1.1: + gcp-metadata@8.1.4: dependencies: - gaxios: 6.7.1 - google-logging-utils: 0.0.2 + gaxios: 7.1.3 + google-logging-utils: 1.1.3 json-bigint: 1.0.0 transitivePeerDependencies: - - encoding - supports-color generator-function@2.0.1: {} @@ -8530,6 +8657,10 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 + get-tsconfig@4.14.3: + dependencies: + resolve-pkg-maps: 1.0.0 + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -8538,6 +8669,15 @@ snapshots: dependencies: is-glob: 4.0.3 + glob@10.5.0: + dependencies: + foreground-child: 3.3.1 + jackspeak: 3.4.3 + minimatch: 9.0.9 + minipass: 7.1.3 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -8547,9 +8687,11 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - globals@13.24.0: - dependencies: - type-fest: 0.20.2 + globals@14.0.0: {} + + globals@15.15.0: {} + + globals@16.5.0: {} globalthis@1.0.4: dependencies: @@ -8565,14 +8707,14 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 - google-logging-utils@0.0.2: {} + globrex@0.1.2: {} + + google-logging-utils@1.1.3: {} gopd@1.2.0: {} graceful-fs@4.2.11: {} - graphemer@1.4.0: {} - handlebars@4.7.9: dependencies: minimist: 1.2.8 @@ -8641,16 +8783,17 @@ snapshots: ignore@5.3.2: {} + ignore@7.0.6: {} + import-fresh@3.3.1: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 - import-in-the-middle@1.15.0: + import-in-the-middle@3.3.3: dependencies: - acorn: 8.15.0 - acorn-import-attributes: 1.9.5(acorn@8.15.0) - cjs-module-lexer: 1.4.3 + cjs-module-lexer: 2.2.1 + es-module-lexer: 2.3.2 module-details-from-path: 1.0.4 import-local@3.2.0: @@ -8759,8 +8902,6 @@ snapshots: is-number@7.0.0: {} - is-path-inside@3.0.3: {} - is-potential-custom-element-name@1.0.1: {} is-reference@3.0.3: @@ -8855,6 +8996,12 @@ snapshots: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + jest-changed-files@29.7.0: dependencies: execa: 5.1.1 @@ -8867,7 +9014,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.18.10 + '@types/node': 24.13.3 chalk: 4.1.2 co: 4.6.0 dedent: 1.7.0 @@ -8887,16 +9034,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)): + jest-cli@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + create-jest: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + jest-config: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -8906,7 +9053,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)): + jest-config@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)): dependencies: '@babel/core': 7.28.4 '@jest/test-sequencer': 29.7.0 @@ -8931,8 +9078,8 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.18.10 - ts-node: 10.9.2(@types/node@22.18.10)(typescript@5.9.3) + '@types/node': 24.13.3 + ts-node: 10.9.2(@types/node@24.13.3)(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -8961,7 +9108,7 @@ snapshots: '@jest/environment': 30.2.0 '@jest/environment-jsdom-abstract': 30.2.0(jsdom@26.1.0) '@types/jsdom': 21.1.7 - '@types/node': 22.18.10 + '@types/node': 24.13.3 jsdom: 26.1.0 transitivePeerDependencies: - bufferutil @@ -8973,7 +9120,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.18.10 + '@types/node': 24.13.3 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -8983,7 +9130,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 22.18.10 + '@types/node': 24.13.3 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -9034,13 +9181,13 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.18.10 + '@types/node': 24.13.3 jest-util: 29.7.0 jest-mock@30.2.0: dependencies: '@jest/types': 30.2.0 - '@types/node': 22.18.10 + '@types/node': 24.13.3 jest-util: 30.2.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -9077,7 +9224,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.18.10 + '@types/node': 24.13.3 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -9105,7 +9252,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.18.10 + '@types/node': 24.13.3 chalk: 4.1.2 cjs-module-lexer: 1.4.3 collect-v8-coverage: 1.0.2 @@ -9151,7 +9298,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.18.10 + '@types/node': 24.13.3 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -9160,7 +9307,7 @@ snapshots: jest-util@30.2.0: dependencies: '@jest/types': 30.2.0 - '@types/node': 22.18.10 + '@types/node': 24.13.3 chalk: 4.1.2 ci-info: 4.4.0 graceful-fs: 4.2.11 @@ -9179,7 +9326,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.18.10 + '@types/node': 24.13.3 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -9188,17 +9335,17 @@ snapshots: jest-worker@29.7.0: dependencies: - '@types/node': 22.18.10 + '@types/node': 24.13.3 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)): + jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + jest-cli: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -9212,7 +9359,7 @@ snapshots: argparse: 1.0.10 esprima: 4.0.1 - js-yaml@4.1.0: + js-yaml@4.3.1: dependencies: argparse: 2.0.1 @@ -9236,7 +9383,7 @@ snapshots: whatwg-encoding: 3.1.1 whatwg-mimetype: 4.0.0 whatwg-url: 14.2.0 - ws: 8.18.3 + ws: 8.21.3 xml-name-validator: 5.0.0 transitivePeerDependencies: - bufferutil @@ -9277,7 +9424,7 @@ snapshots: kleur@3.0.3: {} - known-css-properties@0.35.0: {} + known-css-properties@0.37.0: {} kuler@2.0.0: {} @@ -9379,16 +9526,26 @@ snapshots: min-indent@1.0.1: {} + minimatch@10.2.6: + dependencies: + brace-expansion: 5.0.9 + minimatch@3.1.2: dependencies: brace-expansion: 1.1.12 - minimatch@9.0.3: + minimatch@3.1.5: + dependencies: + brace-expansion: 1.1.12 + + minimatch@9.0.9: dependencies: brace-expansion: 2.0.2 minimist@1.2.8: {} + minipass@7.1.3: {} + mkdirp@0.5.6: dependencies: minimist: 1.2.8 @@ -9421,9 +9578,13 @@ snapshots: neo-async@2.6.2: {} - node-fetch@2.7.0: + node-domexception@1.0.0: {} + + node-fetch@3.3.2: dependencies: - whatwg-url: 5.0.0 + data-uri-to-buffer: 4.0.1 + fetch-blob: 3.2.0 + formdata-polyfill: 4.0.10 node-gyp-build-optional-packages@5.2.2: dependencies: @@ -9524,6 +9685,8 @@ snapshots: p-try@2.2.0: {} + package-json-from-dist@1.0.1: {} + parent-module@1.0.1: dependencies: callsites: 3.1.0 @@ -9547,6 +9710,11 @@ snapshots: path-parse@1.0.7: {} + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.3 + path-type@4.0.0: {} periscopic@3.1.0: @@ -9573,6 +9741,8 @@ snapshots: picomatch@4.0.3: {} + picomatch@4.0.5: {} + pirates@4.0.7: {} pkg-dir@4.2.0: @@ -9581,15 +9751,15 @@ snapshots: possible-typed-array-names@1.1.0: {} - postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)): + postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)): dependencies: lilconfig: 2.1.0 yaml: 1.10.2 optionalDependencies: postcss: 8.5.6 - ts-node: 10.9.2(@types/node@22.18.10)(typescript@5.9.3) + ts-node: 10.9.2(@types/node@24.13.3)(typescript@5.9.3) - postcss-safe-parser@6.0.0(postcss@8.5.6): + postcss-safe-parser@7.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 @@ -9597,7 +9767,7 @@ snapshots: dependencies: postcss: 8.5.6 - postcss-selector-parser@6.1.2: + postcss-selector-parser@7.1.5: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 @@ -9768,7 +9938,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 22.18.10 + '@types/node': 24.13.3 long: 5.3.2 punycode.js@2.3.1: {} @@ -9811,15 +9981,12 @@ snapshots: gopd: 1.2.0 set-function-name: 2.0.2 - regexpp@3.2.0: {} - require-directory@2.1.1: {} - require-in-the-middle@7.5.2: + require-in-the-middle@8.0.1: dependencies: debug: 4.4.3 module-details-from-path: 1.0.4 - resolve: 1.22.10 transitivePeerDependencies: - supports-color @@ -9831,6 +9998,8 @@ snapshots: resolve-from@5.0.0: {} + resolve-pkg-maps@1.0.0: {} + resolve.exports@2.0.3: {} resolve@1.22.10: @@ -9845,9 +10014,9 @@ snapshots: dependencies: glob: 7.2.3 - rimraf@3.0.2: + rimraf@5.0.10: dependencies: - glob: 7.2.3 + glob: 10.5.0 rope-sequence@1.3.4: {} @@ -9957,6 +10126,8 @@ snapshots: signal-exit@3.0.7: {} + signal-exit@4.1.0: {} + sisteransi@1.0.5: {} slash@3.0.0: {} @@ -10003,6 +10174,12 @@ snapshots: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.2.0 + string.prototype.trim@1.2.10: dependencies: call-bind: 1.0.8 @@ -10034,6 +10211,10 @@ snapshots: dependencies: ansi-regex: 5.0.1 + strip-ansi@7.2.0: + dependencies: + ansi-regex: 6.3.0 + strip-bom@3.0.0: {} strip-bom@4.0.0: {} @@ -10056,27 +10237,19 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-eslint-parser@0.33.1(svelte@4.2.20): - dependencies: - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - postcss: 8.5.6 - postcss-scss: 4.0.9(postcss@8.5.6) - optionalDependencies: - svelte: 4.2.20 - - svelte-eslint-parser@0.43.0(svelte@4.2.20): + svelte-eslint-parser@1.8.1(svelte@4.2.20): dependencies: - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 postcss: 8.5.6 postcss-scss: 4.0.9(postcss@8.5.6) + postcss-selector-parser: 7.1.5 + semver: 7.7.3 optionalDependencies: svelte: 4.2.20 - svelte-preprocess@5.1.4(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(postcss@8.5.6)(svelte@4.2.20)(typescript@5.9.3): + svelte-preprocess@5.1.4(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(postcss@8.5.6)(svelte@4.2.20)(typescript@5.9.3): dependencies: '@types/pug': 2.0.10 detect-indent: 6.1.0 @@ -10087,7 +10260,7 @@ snapshots: optionalDependencies: '@babel/core': 7.28.4 postcss: 8.5.6 - postcss-load-config: 3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + postcss-load-config: 3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) typescript: 5.9.3 svelte2tsx@0.7.45(svelte@4.2.20)(typescript@5.9.3): @@ -10116,6 +10289,10 @@ snapshots: symbol-tree@3.2.4: {} + systeminformation@5.33.1: {} + + tapable@2.3.3: {} + test-exclude@6.0.0: dependencies: '@istanbuljs/schema': 0.1.3 @@ -10124,7 +10301,10 @@ snapshots: text-hex@1.0.0: {} - text-table@0.2.0: {} + tinyglobby@0.2.17: + dependencies: + fdir: 6.5.0(picomatch@4.0.5) + picomatch: 4.0.5 tldts-core@6.1.86: {} @@ -10144,24 +10324,22 @@ snapshots: dependencies: tldts: 6.1.86 - tr46@0.0.3: {} - tr46@5.1.1: dependencies: punycode: 2.3.1 triple-beam@1.4.1: {} - ts-api-utils@1.4.3(typescript@5.9.3): + ts-api-utils@2.5.0(typescript@5.9.3): dependencies: typescript: 5.9.3 - ts-jest@29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)))(typescript@5.9.3): + ts-jest@29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.11)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)))(typescript@5.9.3): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 handlebars: 4.7.9 - jest: 29.7.0(@types/node@22.18.10)(ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3)) + jest: 29.7.0(@types/node@24.13.3)(ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3)) json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 @@ -10177,14 +10355,14 @@ snapshots: esbuild: 0.25.11 jest-util: 30.2.0 - ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.3): + ts-node@10.9.2(@types/node@24.13.3)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.18.10 + '@types/node': 24.13.3 acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -10210,8 +10388,6 @@ snapshots: type-detect@4.0.8: {} - type-fest@0.20.2: {} - type-fest@0.21.3: {} type-fest@4.41.0: {} @@ -10249,6 +10425,17 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 + typescript-eslint@8.67.0(eslint@9.39.5)(typescript@5.9.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.67.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3) + '@typescript-eslint/parser': 8.67.0(eslint@9.39.5)(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.67.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.67.0(eslint@9.39.5)(typescript@5.9.3) + eslint: 9.39.5 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + typescript@5.9.3: {} uc.micro@2.1.0: {} @@ -10263,7 +10450,7 @@ snapshots: has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 - undici-types@6.21.0: {} + undici-types@7.18.2: {} universalify@2.0.1: {} @@ -10281,8 +10468,6 @@ snapshots: uuid@8.3.2: {} - uuid@9.0.1: {} - v8-compile-cache-lib@3.0.1: {} v8-to-istanbul@9.3.0: @@ -10301,7 +10486,7 @@ snapshots: dependencies: makeerror: 1.0.12 - webidl-conversions@3.0.1: {} + web-streams-polyfill@3.3.3: {} webidl-conversions@7.0.0: {} @@ -10316,11 +10501,6 @@ snapshots: tr46: 5.1.1 webidl-conversions: 7.0.0 - whatwg-url@5.0.0: - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - which-boxed-primitive@1.1.1: dependencies: is-bigint: 1.1.0 @@ -10404,6 +10584,12 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.3 + string-width: 5.1.2 + strip-ansi: 7.2.0 + wrappy@1.0.2: {} write-file-atomic@4.0.2: @@ -10411,7 +10597,7 @@ snapshots: imurmurhash: 0.1.4 signal-exit: 3.0.7 - ws@8.18.3: {} + ws@8.21.3: {} xml-name-validator@5.0.0: {} @@ -10439,6 +10625,8 @@ snapshots: yaml@1.10.2: {} + yaml@2.9.0: {} + yargs-parser@21.1.1: {} yargs@17.7.2: diff --git a/foundations/core/common/scripts/package.json b/foundations/core/common/scripts/package.json index 16ed6d50e8..dacef88819 100644 --- a/foundations/core/common/scripts/package.json +++ b/foundations/core/common/scripts/package.json @@ -6,14 +6,14 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-svelte": "^2.35.1" + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-import": "^2.32.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", + "eslint-config-love": "^155.0.0", + "eslint-plugin-svelte": "^3.23.0" }, "private": true } diff --git a/foundations/core/packages/account-client/package.json b/foundations/core/packages/account-client/package.json index 47091b38f7..846a8819ca 100644 --- a/foundations/core/packages/account-client/package.json +++ b/foundations/core/packages/account-client/package.json @@ -27,20 +27,19 @@ "cross-env": "~7.0.3", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "esbuild": "^0.25.10", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "eslint-plugin-svelte": "^2.35.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/core/packages/analytics-service/package.json b/foundations/core/packages/analytics-service/package.json index 0bd10236aa..d732824ddb 100644 --- a/foundations/core/packages/analytics-service/package.json +++ b/foundations/core/packages/analytics-service/package.json @@ -25,19 +25,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "eslint-plugin-svelte": "^2.35.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/foundations/core/packages/analytics/package.json b/foundations/core/packages/analytics/package.json index 145d9e5ea2..ef9eea6659 100644 --- a/foundations/core/packages/analytics/package.json +++ b/foundations/core/packages/analytics/package.json @@ -25,19 +25,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "eslint-plugin-svelte": "^2.35.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20" diff --git a/foundations/core/packages/api-client/package.json b/foundations/core/packages/api-client/package.json index 1194d20982..8900781d90 100644 --- a/foundations/core/packages/api-client/package.json +++ b/foundations/core/packages/api-client/package.json @@ -33,23 +33,22 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", "ts-node": "^10.9.2", "@types/node": "^24.13.3", - "@types/jest": "^29.5.5", + "@types/jest": "^30.0.0", "@types/ws": "^8.18.1", "@types/snappyjs": "^0.7.1", - "eslint-plugin-svelte": "^2.35.1" + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/account-client": "workspace:^0.7.25", diff --git a/foundations/core/packages/client-resources/package.json b/foundations/core/packages/client-resources/package.json index 8428994622..a34a4c91fb 100644 --- a/foundations/core/packages/client-resources/package.json +++ b/foundations/core/packages/client-resources/package.json @@ -25,23 +25,22 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "@types/snappyjs": "^0.7.1", "@types/node": "^24.13.3", "ws": "^8.21.0", "@types/ws": "^8.18.1", - "eslint-plugin-svelte": "^2.35.1" + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/foundations/core/packages/client/package.json b/foundations/core/packages/client/package.json index 4a9998b3d5..2563217527 100644 --- a/foundations/core/packages/client/package.json +++ b/foundations/core/packages/client/package.json @@ -25,20 +25,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", - "eslint-plugin-svelte": "^2.35.1" + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/foundations/core/packages/collaborator-client/package.json b/foundations/core/packages/collaborator-client/package.json index 331427f438..eac954a159 100644 --- a/foundations/core/packages/collaborator-client/package.json +++ b/foundations/core/packages/collaborator-client/package.json @@ -27,20 +27,19 @@ "cross-env": "~7.0.3", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "esbuild": "^0.25.10", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "eslint-plugin-svelte": "^2.35.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26" diff --git a/foundations/core/packages/core/package.json b/foundations/core/packages/core/package.json index 8bed4ad2c6..e1d136ef49 100644 --- a/foundations/core/packages/core/package.json +++ b/foundations/core/packages/core/package.json @@ -29,20 +29,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", - "eslint-plugin-svelte": "^2.35.1" + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/foundations/core/packages/core/src/__tests__/client.test.ts b/foundations/core/packages/core/src/__tests__/client.test.ts index ae01a11545..615eb54f19 100644 --- a/foundations/core/packages/core/src/__tests__/client.test.ts +++ b/foundations/core/packages/core/src/__tests__/client.test.ts @@ -13,7 +13,7 @@ // See the License for the specific language governing permissions and // limitations under the License. // -import { type IntlString, type Plugin } from '@hcengineering/platform' +import type { IntlString, Plugin } from '@hcengineering/platform' import { ClientConnectEvent, type DocChunk } from '..' import type { Class, Data, Doc, Domain, PluginConfiguration, Ref, Space, Timestamp } from '../classes' import { ClassifierKind, DOMAIN_MODEL } from '../classes' @@ -36,7 +36,7 @@ import { fillConfiguration, generateId, pluginFilterTx } from '../utils' import { connect } from './connection' import { genMinModel } from './minmodel' -function filterPlugin (plugin: Plugin): (txes: Tx[]) => Tx[] { +function filterPlugin(plugin: Plugin): (txes: Tx[]) => Tx[] { return (txes) => { const configs = new Map, PluginConfiguration>() fillConfiguration(txes, configs) @@ -95,7 +95,7 @@ describe('client', () => { ) ) - async function connectPlugin (handler: (tx: Tx) => void): Promise { + async function connectPlugin(handler: (tx: Tx) => void): Promise { const hierarchy = new Hierarchy() for (const tx of txes) hierarchy.tx(tx) @@ -107,23 +107,23 @@ describe('client', () => { await model.tx(tx) } - async function findAll (_class: Ref>, query: DocumentQuery): Promise> { + async function findAll(_class: Ref>, query: DocumentQuery): Promise> { return await transactions.findAll(_class, query) } return new (class implements ClientConnection { handler?: (event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise - set onConnect ( + set onConnect( handler: ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) | undefined ) { this.handler = handler void this.handler?.(ClientConnectEvent.Connected, '', {}) } - get onConnect (): - | ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) - | undefined { + get onConnect(): + | ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) + | undefined { return this.handler } @@ -131,13 +131,11 @@ describe('client', () => { findAll = findAll pushHandler = (): void => {} - domainRequest (): Promise { + domainRequest(): Promise { return Promise.resolve({ domain: 'test' as Domain, value: null }) } - searchFulltext = async (query: SearchQuery, options: SearchOptions): Promise => { - return { docs: [] } - } + searchFulltext = async (query: SearchQuery, options: SearchOptions): Promise => ({ docs: [] }) tx = async (tx: Tx): Promise => { if (tx.objectSpace === core.space.Model) { @@ -155,22 +153,22 @@ describe('client', () => { finished: true }) - async getDomainHash (domain: Domain): Promise { + async getDomainHash(domain: Domain): Promise { return generateId() } - async closeChunk (idx: number): Promise {} - async loadDocs (domain: Domain, docs: Ref[]): Promise { + async closeChunk(idx: number): Promise {} + async loadDocs(domain: Domain, docs: Ref[]): Promise { return [] } - async upload (domain: Domain, docs: Doc[]): Promise {} - async clean (domain: Domain, docs: Ref[]): Promise {} - async loadModel (last: Timestamp): Promise { + async upload(domain: Domain, docs: Doc[]): Promise {} + async clean(domain: Domain, docs: Ref[]): Promise {} + async loadModel(last: Timestamp): Promise { return txes } - async sendForceClose (): Promise {} + async sendForceClose(): Promise {} })() } const spyCreate = jest.spyOn(TxProcessor, 'createDoc2Doc') @@ -243,7 +241,7 @@ describe('client', () => { expect(result3[0]._id).toStrictEqual(txCreateDoc2.objectId) expect(spyCreate).toHaveBeenLastCalledWith(txCreateDoc2, false) expect(spyUpdate.mock.calls[1][1]).toStrictEqual(txUpdateDoc) - expect(spyUpdate).toBeCalledTimes(2) + expect(spyUpdate).toHaveBeenCalledTimes(2) await client3.close() spyCreate.mockReset() diff --git a/foundations/core/packages/core/src/__tests__/connection.ts b/foundations/core/packages/core/src/__tests__/connection.ts index 93f2775f59..cd9d960084 100644 --- a/foundations/core/packages/core/src/__tests__/connection.ts +++ b/foundations/core/packages/core/src/__tests__/connection.ts @@ -15,7 +15,7 @@ import { ClientConnectEvent, type DocChunk, generateId } from '..' import type { Class, Doc, Domain, Ref, Timestamp } from '../classes' -import { type ClientConnection } from '../client' +import type { ClientConnection } from '../client' import core from '../component' import { Hierarchy } from '../hierarchy' import { ModelDb, TxDb } from '../memdb' @@ -32,7 +32,7 @@ import type { Tx } from '../tx' import { DOMAIN_TX } from '../tx' import { genMinModel } from './minmodel' -export async function connect (handler: (tx: Tx) => void): Promise { +export async function connect(handler: (tx: Tx) => void): Promise { const txes = genMinModel() const hierarchy = new Hierarchy() @@ -45,8 +45,8 @@ export async function connect (handler: (tx: Tx) => void): Promise (_class: Ref>, query: DocumentQuery): Promise> { - const domain = hierarchy.getClass(_class).domain + async function findAll(_class: Ref>, query: DocumentQuery): Promise> { + const { domain } = hierarchy.getClass(_class) if (domain === DOMAIN_TX) return await transactions.findAll(_class, query) return await model.findAll(_class, query) } @@ -57,24 +57,24 @@ export async function connect (handler: (tx: Tx) => void): Promise Promise - set onConnect ( + set onConnect( handler: ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) | undefined ) { this.handler = handler void this.handler?.(ClientConnectEvent.Connected, '', {}) } - get onConnect (): ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) | undefined { + get onConnect(): ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) | undefined { return this.handler } - async searchFulltext (query: SearchQuery, options: SearchOptions): Promise { + async searchFulltext(query: SearchQuery, options: SearchOptions): Promise { return { docs: [] } } pushHandler = (): void => {} - async tx (tx: Tx): Promise { + async tx(tx: Tx): Promise { if (tx.objectSpace === core.space.Model) { hierarchy.tx(tx) } @@ -82,13 +82,13 @@ export async function connect (handler: (tx: Tx) => void): Promise { + async domainRequest(): Promise { return await Promise.resolve({ domain: 'test' as Domain, value: null }) } - async close (): Promise {} + async close(): Promise {} - async loadChunk (domain: Domain, idx?: number): Promise { + async loadChunk(domain: Domain, idx?: number): Promise { return { idx: -1, docs: [], @@ -96,22 +96,22 @@ export async function connect (handler: (tx: Tx) => void): Promise { + async getDomainHash(domain: Domain): Promise { return generateId() } - async closeChunk (idx: number): Promise {} - async loadDocs (domain: Domain, docs: Ref[]): Promise { + async closeChunk(idx: number): Promise {} + async loadDocs(domain: Domain, docs: Ref[]): Promise { return [] } - async upload (domain: Domain, docs: Doc[]): Promise {} - async clean (domain: Domain, docs: Ref[]): Promise {} - async loadModel (last: Timestamp): Promise { + async upload(domain: Domain, docs: Doc[]): Promise {} + async clean(domain: Domain, docs: Ref[]): Promise {} + async loadModel(last: Timestamp): Promise { return txes } - async sendForceClose (): Promise {} + async sendForceClose(): Promise {} } return new ClientConnectionImpl() diff --git a/foundations/core/packages/core/src/__tests__/hierarchy.test.ts b/foundations/core/packages/core/src/__tests__/hierarchy.test.ts index b6cdf4c507..21ca1a5191 100644 --- a/foundations/core/packages/core/src/__tests__/hierarchy.test.ts +++ b/foundations/core/packages/core/src/__tests__/hierarchy.test.ts @@ -15,7 +15,7 @@ import type { AnyAttribute, Class, Doc, Obj, Ref } from '../classes' import { ClassifierKind, DOMAIN_MODEL } from '../classes' -import type { TxCreateDoc } from '../tx' +import type { MixinUpdate, TxCreateDoc } from '../tx' import { TxFactory } from '../tx' import core from '../component' import { Hierarchy } from '../hierarchy' @@ -24,7 +24,7 @@ import { genMinModel, test } from './minmodel' const txes = genMinModel() -function prepare (): Hierarchy { +function prepare(): Hierarchy { const hierarchy = new Hierarchy() for (const tx of txes) hierarchy.tx(tx) return hierarchy @@ -62,7 +62,7 @@ describe('hierarchy', () => { const data = hierarchy.getClass(core.class.TxCreateDoc) expect(data).toMatchObject((txes.find((p) => p.objectId === core.class.TxCreateDoc) as TxCreateDoc).attributes) const notExistClass = 'class:test.MyClass' as Ref> - expect(() => hierarchy.getClass(notExistClass)).toThrowError('class not found: ' + notExistClass) + expect(() => hierarchy.getClass(notExistClass)).toThrow(`class not found: ${notExistClass}`) }) it('getDomain', async () => { @@ -78,10 +78,10 @@ describe('hierarchy', () => { const hierarchy = prepare() hierarchy.as(txes[0], test.mixin.TestMixin) - expect(spyProxy).toBeCalledTimes(1) + expect(spyProxy).toHaveBeenCalledTimes(1) hierarchy.as(txes[0], test.mixin.TestMixin) - expect(spyProxy).toBeCalledTimes(1) + expect(spyProxy).toHaveBeenCalledTimes(1) spyProxy.mockReset() spyProxy.mockRestore() @@ -90,20 +90,20 @@ describe('hierarchy', () => { it('should call static methods', async () => { const spyToDoc = jest.spyOn(Proxy, '_toDoc') Hierarchy.toDoc(txes[0]) - expect(spyToDoc).toBeCalledTimes(1) + expect(spyToDoc).toHaveBeenCalledTimes(1) spyToDoc.mockReset() spyToDoc.mockRestore() const spyMixinClass = jest.spyOn(Proxy, '_mixinClass') Hierarchy.mixinClass(txes[0]) - expect(spyMixinClass).toBeCalledTimes(1) + expect(spyMixinClass).toHaveBeenCalledTimes(1) spyMixinClass.mockImplementationOnce(() => undefined).mockImplementationOnce(() => test.mixin.TestMixin) let result = Hierarchy.mixinOrClass(txes[0]) expect(result).toStrictEqual(txes[0]._class) result = Hierarchy.mixinOrClass(txes[0]) expect(result).toStrictEqual(test.mixin.TestMixin) - expect(spyMixinClass).toBeCalledTimes(3) + expect(spyMixinClass).toHaveBeenCalledTimes(3) spyMixinClass.mockReset() spyMixinClass.mockRestore() @@ -364,7 +364,7 @@ describe('hierarchy', () => { expect(withStateInterface._id).toBe(test.interface.WithState) // Should throw for non-existent - expect(() => hierarchy.getClassOrInterface('class:NonExistent' as Ref>)).toThrowError( + expect(() => hierarchy.getClassOrInterface('class:NonExistent' as Ref>)).toThrow( 'class not found: class:NonExistent' ) }) @@ -377,12 +377,12 @@ describe('hierarchy', () => { expect(withStateInterface._id).toBe(test.interface.WithState) // Should throw for non-existent interface - expect(() => hierarchy.getInterface('interface:NonExistent' as any)).toThrowError( + expect(() => hierarchy.getInterface('interface:NonExistent' as any)).toThrow( 'interface not found: interface:NonExistent' ) // Should throw for class (not interface) - expect(() => hierarchy.getInterface(core.class.Space as any)).toThrowError() + expect(() => hierarchy.getInterface(core.class.Space as any)).toThrow() }) it('should handle isMixin correctly', async () => { @@ -525,7 +525,7 @@ describe('hierarchy', () => { const hierarchy = prepare() // Should throw for non-existent attribute - expect(() => hierarchy.getAttribute(core.class.Space, 'nonExistentAttr')).toThrowError( + expect(() => hierarchy.getAttribute(core.class.Space, 'nonExistentAttr')).toThrow( 'attribute not found: nonExistentAttr' ) }) @@ -607,16 +607,14 @@ describe('hierarchy', () => { const hierarchy = prepare() // Should throw for non-existent class - expect(() => hierarchy.getAncestors('class:NonExistent' as any)).toThrowError( - 'ancestors not found: class:NonExistent' - ) + expect(() => hierarchy.getAncestors('class:NonExistent' as any)).toThrow('ancestors not found: class:NonExistent') }) it('should handle getDescendants error case', async () => { const hierarchy = prepare() // Should throw for non-existent class - expect(() => hierarchy.getDescendants('class:NonExistent' as any)).toThrowError( + expect(() => hierarchy.getDescendants('class:NonExistent' as any)).toThrow( 'descendants not found: class:NonExistent' ) }) @@ -625,7 +623,7 @@ describe('hierarchy', () => { const hierarchy = prepare() // Should throw for class without domain - expect(() => hierarchy.getDomain('class:NonExistent' as any)).toThrowError('domain not found: class:NonExistent') + expect(() => hierarchy.getDomain('class:NonExistent' as any)).toThrow('domain not found: class:NonExistent') }) it('should handle static hasMixin correctly', async () => { @@ -684,7 +682,7 @@ describe('hierarchy', () => { it('should handle getAllAttributes with traverse callback', async () => { const hierarchy = prepare() - const traversed: Array<{ name: string, attrId: string }> = [] + const traversed: Array<{ name: string; attrId: string }> = [] const attributes = hierarchy.getAllAttributes(core.class.TxCreateDoc, undefined, (name, attr) => { traversed.push({ name, attrId: attr._id }) }) @@ -816,11 +814,11 @@ describe('hierarchy', () => { // Create a TxMixin transaction const txFactory = new TxFactory(core.account.System) const mixinTx = txFactory.createTxMixin( - core.class.Space as any, - core.class.Class as any, + core.class.Space, + core.class.Class, core.space.Model, test.mixin.TestMixin, - { arr: ['test'] } + { arr: ['test'] } as unknown as MixinUpdate, Class> ) // Apply the mixin transaction @@ -992,7 +990,7 @@ describe('hierarchy', () => { } } - const result = hierarchy.updateLookupMixin(test.class.Task, doc as any, options as any) + const result = hierarchy.updateLookupMixin(test.class.Task, doc as any, options) expect(result).toBeDefined() expect(result.$lookup).toBeDefined() }) @@ -1029,7 +1027,7 @@ describe('hierarchy', () => { } } - const result = hierarchy.updateLookupMixin(test.class.Task, doc as any, options as any) + const result = hierarchy.updateLookupMixin(test.class.Task, doc as any, options) expect(result).toBeDefined() }) @@ -1091,7 +1089,7 @@ describe('hierarchy', () => { } } - const result = hierarchy.updateLookupMixin(test.class.Task, doc as any, options as any) + const result = hierarchy.updateLookupMixin(test.class.Task, doc as any, options) expect(result).toBeDefined() expect(result.$lookup?.space).toBeNull() }) diff --git a/foundations/core/packages/core/src/__tests__/limiter-edge-cases.test.ts b/foundations/core/packages/core/src/__tests__/limiter-edge-cases.test.ts index 395e3fbfe8..83dc3cdd72 100644 --- a/foundations/core/packages/core/src/__tests__/limiter-edge-cases.test.ts +++ b/foundations/core/packages/core/src/__tests__/limiter-edge-cases.test.ts @@ -356,13 +356,12 @@ describe('RateLimiter and TimeRateLimiter - Advanced Edge Cases', () => { let executionCount = 0 - const nestedOp = async (id: number): Promise => { - return await innerLimiter.exec(async () => { + const nestedOp = async (id: number): Promise => + await innerLimiter.exec(async () => { executionCount++ await new Promise((resolve) => setTimeout(resolve, 5)) return id }) - } const results = await Promise.all([ outerLimiter.exec(async () => await nestedOp(1)), diff --git a/foundations/core/packages/core/src/__tests__/limits.test.ts b/foundations/core/packages/core/src/__tests__/limits.test.ts index 2bfc263c15..6a4ca1cd8a 100644 --- a/foundations/core/packages/core/src/__tests__/limits.test.ts +++ b/foundations/core/packages/core/src/__tests__/limits.test.ts @@ -365,9 +365,7 @@ describe('TimeRateLimiter', () => { describe('arguments passing', () => { it('should pass arguments to operation', async () => { const limiter = new TimeRateLimiter(2, 1000) - const mockFn = jest.fn().mockImplementation(async (args?: any) => { - return args?.value - }) + const mockFn = jest.fn().mockImplementation(async (args?: any) => args?.value) const result = await limiter.exec(mockFn, { value: 42 }) diff --git a/foundations/core/packages/core/src/__tests__/memdb.test.ts b/foundations/core/packages/core/src/__tests__/memdb.test.ts index a9b2c34515..cbefe83940 100644 --- a/foundations/core/packages/core/src/__tests__/memdb.test.ts +++ b/foundations/core/packages/core/src/__tests__/memdb.test.ts @@ -13,7 +13,7 @@ // limitations under the License. // -import { type Client, type DomainParams, type DomainRequestOptions, type DomainResult } from '..' +import type { Client, DomainParams, DomainRequestOptions, DomainResult } from '..' import type { Class, Doc, Obj, OperationDomain, Ref, Space } from '../classes' import core from '../component' import { Hierarchy } from '../hierarchy' @@ -31,7 +31,7 @@ import { SortingOrder, type WithLookup } from '../storage' -import { type Tx } from '../tx' +import type { Tx } from '../tx' import { genMinModel, test, type TestMixin } from './minmodel' const txes = genMinModel() @@ -39,11 +39,11 @@ const txes = genMinModel() class ClientModel extends ModelDb implements Client { notify?: ((...tx: Tx[]) => void) | undefined - getHierarchy (): Hierarchy { + getHierarchy(): Hierarchy { return this.hierarchy } - getModel (): ModelDb { + getModel(): ModelDb { return this } @@ -102,10 +102,10 @@ class ClientModel extends ModelDb implements Client { return { domain, value: null as any } } - async close (): Promise {} + async close(): Promise {} } -async function createModel (modelTxes: Tx[] = txes): Promise<{ model: ClientModel, hierarchy: Hierarchy, txDb: TxDb }> { +async function createModel(modelTxes: Tx[] = txes): Promise<{ model: ClientModel; hierarchy: Hierarchy; txDb: TxDb }> { const hierarchy = new Hierarchy() for (const tx of modelTxes) { hierarchy.tx(tx) @@ -204,7 +204,7 @@ describe('memdb', () => { }) expect(second.length).toBe(2) const incorrectId = await model.findAll(core.class.Class, { - _id: (txes[1].objectId + 'test') as Ref> + _id: `${txes[1].objectId}test` as Ref> }) expect(incorrectId.length).toBe(0) const result = await model.findAll(core.class.Class, { @@ -378,7 +378,7 @@ describe('memdb', () => { } ) expect(r.length).toEqual(1) - expect((r[0].$associations?.[association._id + '_b'][0] as any)?._id).toEqual(second) + expect((r[0].$associations?.[`${association._id}_b`][0] as any)?._id).toEqual(second) }) it('check deep associations', async () => { @@ -567,7 +567,7 @@ describe('memdb', () => { expect(results.length).toEqual(2) const attached = results[0].$lookup?.attachedTo expect(attached).toBeDefined() - expect(Hierarchy.mixinOrClass(attached as Doc)).toEqual(test.mixin.TaskMixinTodos) + expect(Hierarchy.mixinOrClass(attached!)).toEqual(test.mixin.TaskMixinTodos) }) it('createDoc for AttachedDoc', async () => { diff --git a/foundations/core/packages/core/src/__tests__/minmodel.ts b/foundations/core/packages/core/src/__tests__/minmodel.ts index de03e2a8ac..aca9f16b99 100644 --- a/foundations/core/packages/core/src/__tests__/minmodel.ts +++ b/foundations/core/packages/core/src/__tests__/minmodel.ts @@ -23,19 +23,19 @@ import { DOMAIN_TX, TxFactory } from '../tx' const txFactory = new TxFactory(core.account.System) -function createClass (_class: Ref>, attributes: Data>): TxCreateDoc { +function createClass(_class: Ref>, attributes: Data>): TxCreateDoc { return txFactory.createTxCreateDoc(core.class.Class, core.space.Model, attributes, _class) } -function createInterface (_interface: Ref>, attributes: Data>): TxCreateDoc { +function createInterface(_interface: Ref>, attributes: Data>): TxCreateDoc { return txFactory.createTxCreateDoc(core.class.Interface, core.space.Model, attributes, _interface) } -export function createDoc (_class: Ref>, attributes: Data): TxCreateDoc { +export function createDoc(_class: Ref>, attributes: Data): TxCreateDoc { return txFactory.createTxCreateDoc(_class, core.space.Model, attributes) } -export function updateDoc ( +export function updateDoc( _class: Ref>, space: Ref, objectId: Ref, @@ -44,7 +44,7 @@ export function updateDoc ( return txFactory.createTxUpdateDoc(_class, space, objectId, operations) } -export function deleteDoc (_class: Ref>, space: Ref, objectId: Ref): TxRemoveDoc { +export function deleteDoc(_class: Ref>, space: Ref, objectId: Ref): TxRemoveDoc { return txFactory.createTxRemoveDoc(_class, space, objectId) } @@ -98,7 +98,7 @@ export const test = plugin('test' as Plugin, { * Generate minimal model for testing purposes. * @returns R */ -export function genMinModel (): TxCUD[] { +export function genMinModel(): TxCUD[] { const txes = [] // Fill Tx'es with basic model classes. txes.push(createClass(core.class.Obj, { label: 'Obj' as IntlString, kind: ClassifierKind.CLASS })) diff --git a/foundations/core/packages/core/src/__tests__/query.test.ts b/foundations/core/packages/core/src/__tests__/query.test.ts index 781017c149..b40e673ecd 100644 --- a/foundations/core/packages/core/src/__tests__/query.test.ts +++ b/foundations/core/packages/core/src/__tests__/query.test.ts @@ -16,7 +16,7 @@ import { findProperty } from '../query' import type { Doc, Ref, Class } from '../classes' -function doc (id: string, fields: Record = {}): Doc { +function doc(id: string, fields: Record = {}): Doc { const doc: Doc = { _id: id as Ref, _class: 'test:class:Issue' as Ref>, ...fields } as any return doc } diff --git a/foundations/core/packages/core/src/__tests__/rate-limiter.test.ts b/foundations/core/packages/core/src/__tests__/rate-limiter.test.ts index 5ae22898a3..c96a76e21b 100644 --- a/foundations/core/packages/core/src/__tests__/rate-limiter.test.ts +++ b/foundations/core/packages/core/src/__tests__/rate-limiter.test.ts @@ -118,9 +118,7 @@ describe('RateLimiter', () => { it('should pass arguments to operations', async () => { const limiter = new RateLimiter(1) - const mockFn = jest.fn().mockImplementation(async (args?: any) => { - return args?.value - }) + const mockFn = jest.fn().mockImplementation(async (args?: any) => args?.value) const result = await limiter.exec(mockFn, { value: 42 }) diff --git a/foundations/core/packages/core/src/__tests__/time.test.ts b/foundations/core/packages/core/src/__tests__/time.test.ts index f2d756cd13..35f3bc787c 100644 --- a/foundations/core/packages/core/src/__tests__/time.test.ts +++ b/foundations/core/packages/core/src/__tests__/time.test.ts @@ -13,7 +13,7 @@ // limitations under the License. // -import { type Timestamp } from '../classes' +import type { Timestamp } from '../classes' import { getDay, convertToDay } from '..' const supportedTimezones: string[] = [ @@ -348,7 +348,7 @@ const supportedTimezones: string[] = [ 'Africa/Johannesburg' ] -function testGetDay (date: Date, timezone: string): void { +function testGetDay(date: Date, timezone: string): void { const timestamp: Timestamp = getDay(date.getTime()) const convertedDate: Date = new Date(timestamp) const originalLocaleDate: string = date.toLocaleDateString('en-US', { timeZone: 'Europe/London' }) @@ -356,7 +356,7 @@ function testGetDay (date: Date, timezone: string): void { expect(convertedLocaleDate).toEqual(originalLocaleDate) } -function testConvertToDay (date: Date, timezone: string): void { +function testConvertToDay(date: Date, timezone: string): void { const convertedDate: Date = convertToDay(date) const originalLocaleDate: string = date.toLocaleDateString('en-US', { timeZone: 'Europe/London' }) const convertedLocaleDate: string = convertedDate.toLocaleDateString('en-US', { timeZone: timezone }) diff --git a/foundations/core/packages/core/src/autoJoinRoles.ts b/foundations/core/packages/core/src/autoJoinRoles.ts index 737f9dbb03..bae22a8807 100644 --- a/foundations/core/packages/core/src/autoJoinRoles.ts +++ b/foundations/core/packages/core/src/autoJoinRoles.ts @@ -19,7 +19,7 @@ import { AccountRole } from './classes' * Toggle {@link AccountRole.Guest} in {@link Space.autoJoinForRoles}; other roles are preserved. * @public */ -export function setWorkspaceGuestAutoJoinRoles ( +export function setWorkspaceGuestAutoJoinRoles( existing: AccountRole[] | undefined, includeGuest: boolean ): AccountRole[] { diff --git a/foundations/core/packages/core/src/backup.ts b/foundations/core/packages/core/src/backup.ts index 348a6606d3..46872618f1 100644 --- a/foundations/core/packages/core/src/backup.ts +++ b/foundations/core/packages/core/src/backup.ts @@ -1,5 +1,5 @@ -import { type Doc, type Domain, type Ref } from './classes' -import { type DocInfo } from './server' +import type { Doc, Domain, Ref } from './classes' +import type { DocInfo } from './server' /** * @public diff --git a/foundations/core/packages/core/src/benchmark.ts b/foundations/core/packages/core/src/benchmark.ts index 7ddd61f0d9..aee279f794 100644 --- a/foundations/core/packages/core/src/benchmark.ts +++ b/foundations/core/packages/core/src/benchmark.ts @@ -1,4 +1,4 @@ -import { type Doc, type Domain } from './classes' +import type { Doc, Domain } from './classes' /** * @public @@ -8,10 +8,10 @@ export const DOMAIN_BENCHMARK = 'benchmark' as Domain export type BenchmarkDocRange = | number | { - // Or random in range - from: number - to: number - } + // Or random in range + from: number + to: number + } export interface BenchmarkDoc extends Doc { source?: string // Query fields to perform different set of workload diff --git a/foundations/core/packages/core/src/classes.ts b/foundations/core/packages/core/src/classes.ts index 11049aa3fe..c54e742dcd 100644 --- a/foundations/core/packages/core/src/classes.ts +++ b/foundations/core/packages/core/src/classes.ts @@ -17,7 +17,7 @@ import type { Asset, IntlString, Plugin } from '@hcengineering/platform' import { Tx } from '.' import type { DocumentQuery } from './storage' -import { type WorkspaceDataId, type WorkspaceUuid } from './utils' +import type { WorkspaceDataId, WorkspaceUuid } from './utils' /** * @public @@ -680,7 +680,7 @@ export interface MigrationState extends Doc { /** * @public */ -export function versionToString (version: Version | Data): string { +export function versionToString(version: Version | Data): string { return `${version?.major}.${version?.minor}.${version?.patch}` } @@ -879,13 +879,13 @@ export type WorkspaceMode = export type WorkspaceUserOperation = 'archive' | 'migrate-to' | 'unarchive' | 'delete' | 'reset-attempts' -export function isActiveMode (mode?: WorkspaceMode): boolean { +export function isActiveMode(mode?: WorkspaceMode): boolean { return mode === 'active' } -export function isDeletingMode (mode: WorkspaceMode): boolean { +export function isDeletingMode(mode: WorkspaceMode): boolean { return mode === 'pending-deletion' || mode === 'deleting' || mode === 'deleted' } -export function isArchivingMode (mode?: WorkspaceMode): boolean { +export function isArchivingMode(mode?: WorkspaceMode): boolean { return ( mode === 'archiving-pending-backup' || mode === 'archiving-backup' || @@ -895,7 +895,7 @@ export function isArchivingMode (mode?: WorkspaceMode): boolean { ) } -export function isMigrationMode (mode?: WorkspaceMode): boolean { +export function isMigrationMode(mode?: WorkspaceMode): boolean { return ( mode === 'migration-pending-backup' || mode === 'migration-backup' || @@ -903,11 +903,11 @@ export function isMigrationMode (mode?: WorkspaceMode): boolean { mode === 'migration-clean' ) } -export function isRestoringMode (mode?: WorkspaceMode): boolean { +export function isRestoringMode(mode?: WorkspaceMode): boolean { return mode === 'restoring' || mode === 'pending-restore' } -export function isUpgradingMode (mode?: WorkspaceMode): boolean { +export function isUpgradingMode(mode?: WorkspaceMode): boolean { return mode === 'upgrading' } diff --git a/foundations/core/packages/core/src/client.ts b/foundations/core/packages/core/src/client.ts index 6f8cfef228..a7ea63aa64 100644 --- a/foundations/core/packages/core/src/client.ts +++ b/foundations/core/packages/core/src/client.ts @@ -14,7 +14,7 @@ // import { Analytics } from '@hcengineering/analytics' -import { type BackupClient, type DocChunk } from './backup' +import type { BackupClient, DocChunk } from './backup' import { type Class, DOMAIN_MODEL, @@ -138,22 +138,22 @@ class ClientImpl implements Client, BackupClient { hierarchy!: Hierarchy model!: ModelDb private readonly appliedModelTransactions = new Set>() - constructor (private readonly conn: ClientConnection) {} + constructor(private readonly conn: ClientConnection) {} - getConnection (): ClientConnection { + getConnection(): ClientConnection { return this.conn } - setModel (hierarchy: Hierarchy, model: ModelDb): void { + setModel(hierarchy: Hierarchy, model: ModelDb): void { this.hierarchy = hierarchy this.model = model } - getHierarchy (): Hierarchy { + getHierarchy(): Hierarchy { return this.hierarchy } - getModel (): ModelDb { + getModel(): ModelDb { return this.model } @@ -171,9 +171,7 @@ class ClientImpl implements Client, BackupClient { // In case of mixin we need to create mixin proxies. // Update mixins & lookups - const result = data.map((v) => { - return this.hierarchy.updateLookupMixin(_class, v, options) - }) + const result = data.map((v) => this.hierarchy.updateLookupMixin(_class, v, options)) return toFindResult(result, data.total) } @@ -256,7 +254,7 @@ class ClientImpl implements Client, BackupClient { return await this.conn.searchFulltext(query, options) } - async domainRequest ( + async domainRequest( ctx: OperationDomain, params: DomainParams, options?: DomainRequestOptions @@ -272,7 +270,7 @@ class ClientImpl implements Client, BackupClient { return (await this.findAll(_class, query, { ...options, limit: 1 }))[0] } - async tx (tx: Tx): Promise { + async tx(tx: Tx): Promise { if (tx.objectSpace === core.space.Model) { this.hierarchy.tx(tx) await this.model.tx(tx) @@ -282,7 +280,7 @@ class ClientImpl implements Client, BackupClient { return await this.conn.tx(tx) } - async updateFromRemote (...tx: Tx[]): Promise { + async updateFromRemote(...tx: Tx[]): Promise { for (const t of tx) { try { if (t.objectSpace === core.space.Model) { @@ -302,35 +300,35 @@ class ClientImpl implements Client, BackupClient { this.notify?.(...tx) } - async close (): Promise { + async close(): Promise { await this.conn.close() } - async loadChunk (domain: Domain, idx?: number): Promise { + async loadChunk(domain: Domain, idx?: number): Promise { return await this.conn.loadChunk(domain, idx) } - async getDomainHash (domain: Domain): Promise { + async getDomainHash(domain: Domain): Promise { return await this.conn.getDomainHash(domain) } - async closeChunk (idx: number): Promise { + async closeChunk(idx: number): Promise { await this.conn.closeChunk(idx) } - async loadDocs (domain: Domain, docs: Ref[]): Promise { + async loadDocs(domain: Domain, docs: Ref[]): Promise { return await this.conn.loadDocs(domain, docs) } - async upload (domain: Domain, docs: Doc[]): Promise { + async upload(domain: Domain, docs: Doc[]): Promise { await this.conn.upload(domain, docs) } - async clean (domain: Domain, docs: Ref[]): Promise { + async clean(domain: Domain, docs: Ref[]): Promise { await this.conn.clean(domain, docs) } - async sendForceClose (): Promise { + async sendForceClose(): Promise { await this.conn.sendForceClose() } } @@ -348,7 +346,7 @@ export type ModelFilter = (tx: Tx[]) => Tx[] /** * @public */ -export async function createClient ( +export async function createClient( connect: (txHandler: TxHandler) => Promise, // If set will build model with only allowed plugins. modelFilter?: ModelFilter, @@ -366,7 +364,7 @@ export async function createClient ( let lastTx: string | undefined - function txHandler (...tx: Tx[]): void { + function txHandler(...tx: Tx[]): void { if (tx == null || tx.length === 0) { return } @@ -409,8 +407,8 @@ export async function createClient ( txBuffer = undefined const oldOnConnect: - | ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) - | undefined = conn.onConnect + | ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) + | undefined = conn.onConnect conn.onConnect = async (event, _lastTx, data) => { console.log('Client: onConnect', event) if (event === ClientConnectEvent.Maintenance) { @@ -464,11 +462,11 @@ export async function createClient ( return client } -async function loadModel ( +async function loadModel( ctx: MeasureContext, conn: ClientConnection, persistence?: TxPersistenceStore -): Promise<{ mode: 'same' | 'addition' | 'upgrade', current: Tx[], addition: Tx[] }> { +): Promise<{ mode: 'same' | 'addition' | 'upgrade'; current: Tx[]; addition: Tx[] }> { const t = platformNow() const current = (await ctx.with('persistence-load', {}, () => persistence?.load())) ?? { @@ -509,7 +507,7 @@ async function loadModel ( }) if (typeof window !== 'undefined') { - console.log('find' + (result.full ? 'full model' : 'model diff'), result.transactions.length, platformNowDiff(t)) + console.log(`find${result.full ? 'full model' : 'model diff'}`, result.transactions.length, platformNowDiff(t)) } if (result.full) { return { mode: 'upgrade', current: result.transactions, addition: [] } @@ -517,7 +515,7 @@ async function loadModel ( return { mode: 'addition', current: current.transactions, addition: result.transactions } } -export function buildModel ( +export function buildModel( ctx: MeasureContext, transactions: Tx[], modelFilter: ModelFilter | undefined, @@ -547,7 +545,7 @@ export function buildModel ( }) } -function getLastTxTime (txes: Tx[]): number { +function getLastTxTime(txes: Tx[]): number { let lastTxTime = 0 for (const tx of txes) { if (tx.modifiedOn > lastTxTime) { diff --git a/foundations/core/packages/core/src/clone.ts b/foundations/core/packages/core/src/clone.ts index 9d72405402..840f930f43 100644 --- a/foundations/core/packages/core/src/clone.ts +++ b/foundations/core/packages/core/src/clone.ts @@ -1,7 +1,7 @@ const se = typeof Symbol !== 'undefined' const ste = se && typeof Symbol.toStringTag !== 'undefined' -export function getTypeOf (obj: any): string { +export function getTypeOf(obj: any): string { const typeofObj = typeof obj if (typeofObj !== 'object') { return typeofObj @@ -45,7 +45,7 @@ export function getTypeOf (obj: any): string { } } -export function clone ( +export function clone( obj: any, as?: (doc: any, m: any) => any, needAs?: (value: any) => any | undefined, @@ -66,7 +66,7 @@ export function clone ( return new Date(obj.getTime()) } else if (typeOf === 'Array' || typeOf === 'Object') { const isArray = Array.isArray(obj) - const result: any = isArray ? [] : Object.assign({}, obj) + const result: any = isArray ? [] : { ...obj } for (const key in obj) { // include prototype properties const value = obj[key] @@ -78,10 +78,8 @@ export function clone ( result[key] = valClone } else if (type === 'Date') { result[key] = new Date(value.getTime()) - } else { - if (isArray) { - result[key] = value - } + } else if (isArray) { + result[key] = value } } if (typeOf === 'Object') { diff --git a/foundations/core/packages/core/src/collaboration.ts b/foundations/core/packages/core/src/collaboration.ts index ecf14a96b9..f84aa531c1 100644 --- a/foundations/core/packages/core/src/collaboration.ts +++ b/foundations/core/packages/core/src/collaboration.ts @@ -23,7 +23,7 @@ export interface CollaborativeDoc { } /** @public */ -export function makeCollabId ( +export function makeCollabId( objectClass: Ref>, objectId: Ref, objectAttr: Extract | string @@ -32,7 +32,7 @@ export function makeCollabId ( } /** @public */ -export function makeDocCollabId ( +export function makeDocCollabId( doc: T, objectAttr: Extract | string ): CollaborativeDoc { @@ -40,13 +40,13 @@ export function makeDocCollabId ( } /** @public */ -export function makeCollabYdocId (doc: CollaborativeDoc): Ref { +export function makeCollabYdocId(doc: CollaborativeDoc): Ref { const { objectId, objectAttr } = doc return `${objectId}%${objectAttr}` as Ref } /** @public */ -export function makeCollabJsonId (doc: CollaborativeDoc): MarkupBlobRef { +export function makeCollabJsonId(doc: CollaborativeDoc): MarkupBlobRef { const timestamp = Date.now() const { objectId, objectAttr } = doc return [objectId, objectAttr, timestamp].join('-') as MarkupBlobRef diff --git a/foundations/core/packages/core/src/collaborators.ts b/foundations/core/packages/core/src/collaborators.ts index 1574a2c140..0fd12d0b1f 100644 --- a/foundations/core/packages/core/src/collaborators.ts +++ b/foundations/core/packages/core/src/collaborators.ts @@ -15,7 +15,7 @@ import core, { Class, ClassCollaborators, Doc, Hierarchy, ModelDb, Ref } from '.' -export function getClassCollaborators ( +export function getClassCollaborators( model: ModelDb, hiearachy: Hierarchy, _id: Ref> diff --git a/foundations/core/packages/core/src/common.ts b/foundations/core/packages/core/src/common.ts index fc4ee3158f..63f2c3377e 100644 --- a/foundations/core/packages/core/src/common.ts +++ b/foundations/core/packages/core/src/common.ts @@ -1,4 +1,4 @@ -export function groupByArray (array: T[], keyProvider: (item: T) => K): Map { +export function groupByArray(array: T[], keyProvider: (item: T) => K): Map { const result = new Map() array.forEach((item) => { @@ -14,7 +14,7 @@ export function groupByArray (array: T[], keyProvider: (item: T) => K): Ma return result } -export async function groupByArrayAsync (array: T[], keyProvider: (item: T) => Promise): Promise> { +export async function groupByArrayAsync(array: T[], keyProvider: (item: T) => Promise): Promise> { const result = new Map() for (const item of array) { @@ -30,7 +30,7 @@ export async function groupByArrayAsync (array: T[], keyProvider: (item: T return result } -export function flipSet (set: Set, item: T): Set { +export function flipSet(set: Set, item: T): Set { if (set.has(item)) { set.delete(item) } else { diff --git a/foundations/core/packages/core/src/component.ts b/foundations/core/packages/core/src/component.ts index 1b0ec6ef0e..bc3be584c2 100644 --- a/foundations/core/packages/core/src/component.ts +++ b/foundations/core/packages/core/src/component.ts @@ -70,7 +70,7 @@ import type { Version } from './classes' import { AccountRole, TxAccessLevel } from './classes' -import { type Status, type StatusCategory } from './status' +import type { Status, StatusCategory } from './status' import type { Tx, TxApplyIf, @@ -227,7 +227,7 @@ export default plugin(coreId, { }, status: { ObjectNotFound: '' as StatusCode<{ _id: Ref }>, - ItemNotFound: '' as StatusCode<{ _id: Ref, _localId: string }> + ItemNotFound: '' as StatusCode<{ _id: Ref; _localId: string }> }, version: { Model: '' as Ref diff --git a/foundations/core/packages/core/src/hierarchy.ts b/foundations/core/packages/core/src/hierarchy.ts index 32d055c7a4..c5a53d8102 100644 --- a/foundations/core/packages/core/src/hierarchy.ts +++ b/foundations/core/packages/core/src/hierarchy.ts @@ -13,7 +13,7 @@ // limitations under the License. // -import { type FindOptions, type Lookup, type ToClassRefT, type WithLookup } from '.' +import type { FindOptions, Lookup, ToClassRefT, WithLookup } from '.' import type { AnyAttribute, Class, Classifier, Doc, Domain, Interface, Mixin, Obj, Ref } from './classes' import { ClassifierKind } from './classes' import { clone as deepClone } from './clone' @@ -35,14 +35,14 @@ export class Hierarchy { private readonly classifierProperties = new Map, Map>() - private createMixinProxyHandler (mixin: Ref>): ProxyHandler { + private createMixinProxyHandler(mixin: Ref>): ProxyHandler { const value = this.getClass(mixin) - const ancestor = this.getClass(value.extends as Ref>) + const ancestor = this.getClass(value.extends!) const ancestorProxy = ancestor.kind === ClassifierKind.MIXIN ? this.getMixinProxyHandler(ancestor._id) : null return _createMixinProxy(value, ancestorProxy) } - private getMixinProxyHandler (mixin: Ref>): ProxyHandler { + private getMixinProxyHandler(mixin: Ref>): ProxyHandler { const handler = this.proxies.get(mixin) if (handler === undefined) { const handler = this.createMixinProxyHandler(mixin) @@ -162,7 +162,7 @@ export class Hierarchy { return Array.from(resultSet) } - getAllPossibleMixins (_class: Ref>, to: Ref> = core.class.Doc): Ref>[] { + getAllPossibleMixins(_class: Ref>, to: Ref> = core.class.Doc): Ref>[] { const result = new Set>>() let c = this.getClass(_class) @@ -179,15 +179,15 @@ export class Hierarchy { return [...result] } - isMixin (_class: Ref>): boolean { + isMixin(_class: Ref>): boolean { const data = this.classifiers.get(_class) return data !== undefined && this._isMixin(data) } - getAncestors (_class: Ref): Ref[] { + getAncestors(_class: Ref): Ref[] { const result = this.ancestors.get(_class) if (result === undefined) { - throw new Error('ancestors not found: ' + _class) + throw new Error(`ancestors not found: ${_class}`) } return result } @@ -195,7 +195,7 @@ export class Hierarchy { getClass(_class: Ref>): Class { const data = this.classifiers.get(_class) if (data === undefined || this.isInterface(data)) { - throw new Error('class not found: ' + _class) + throw new Error(`class not found: ${_class}`) } return data } @@ -214,23 +214,23 @@ export class Hierarchy { return !(data === undefined || this.isInterface(data)) } - getClassOrInterface (_class: Ref>): Class { + getClassOrInterface(_class: Ref>): Class { const data = this.classifiers.get(_class) if (data === undefined) { - throw new Error('class not found: ' + _class) + throw new Error(`class not found: ${_class}`) } return data } - getInterface (_interface: Ref>): Interface { + getInterface(_interface: Ref>): Interface { const data = this.classifiers.get(_interface) if (data === undefined || !this.isInterface(data)) { - throw new Error('interface not found: ' + _interface) + throw new Error(`interface not found: ${_interface}`) } return data } - getDomain (_class: Ref>): Domain { + getDomain(_class: Ref>): Domain { const domain = this.findDomain(_class) if (domain === undefined) { throw new Error(`domain not found: ${_class} `) @@ -238,7 +238,7 @@ export class Hierarchy { return domain } - public findDomain (_class: Ref>): Domain | undefined { + public findDomain(_class: Ref>): Domain | undefined { const klazz = this.findClass(_class) if (klazz === undefined) return if (klazz.domain !== undefined) { @@ -257,7 +257,7 @@ export class Hierarchy { } } - tx (tx: Tx): void { + tx(tx: Tx): void { switch (tx._class) { case core.class.TxCreateDoc: this.txCreateDoc(tx as TxCreateDoc) @@ -273,12 +273,12 @@ export class Hierarchy { } } - private isClassifierTx (tx: TxCUD): boolean { + private isClassifierTx(tx: TxCUD): boolean { const base = [core.class.Class, core.class.Mixin, core.class.Interface] return base.includes(tx.objectClass) || this.isDerived(tx.objectClass, core.class.Class) } - private txCreateDoc (tx: TxCreateDoc): void { + private txCreateDoc(tx: TxCreateDoc): void { if (this.isClassifierTx(tx)) { const _id = tx.objectId as Ref this.classifiers.set(_id, TxProcessor.createDoc2Doc(tx as TxCreateDoc)) @@ -290,7 +290,7 @@ export class Hierarchy { } } - private txUpdateDoc (tx: TxUpdateDoc): void { + private txUpdateDoc(tx: TxUpdateDoc): void { if (tx.objectClass === core.class.Attribute) { const updateTx = tx as TxUpdateDoc const doc = this.attributesById.get(updateTx.objectId) @@ -307,7 +307,7 @@ export class Hierarchy { } } - private txRemoveDoc (tx: TxRemoveDoc): void { + private txRemoveDoc(tx: TxRemoveDoc): void { if (tx.objectClass === core.class.Attribute) { const removeTx = tx as TxRemoveDoc const doc = this.attributesById.get(removeTx.objectId) @@ -323,7 +323,7 @@ export class Hierarchy { } } - private txMixin (tx: TxMixin): void { + private txMixin(tx: TxMixin): void { if (this.isClassifierTx(tx)) { const obj = this.getClass(tx.objectId as Ref>) as any TxProcessor.updateMixin4Doc(obj, tx) @@ -374,7 +374,7 @@ export class Hierarchy { const result: Ref>[] = [] const toVisit = [...extendsOrImplements] while (toVisit.length > 0) { - const ref = toVisit.shift() as Ref> + const ref = toVisit.shift()! if (ref === from) { return true } @@ -387,12 +387,12 @@ export class Hierarchy { getDescendants(_class: Ref>): Ref>[] { const data = this.descendants.get(_class) if (data === undefined) { - throw new Error('descendants not found: ' + _class) + throw new Error(`descendants not found: ${_class}`) } return data } - private updateDescendant (_class: Ref, add = true): void { + private updateDescendant(_class: Ref, add = true): void { let hierarchy: Ref[] = [] try { @@ -409,26 +409,24 @@ export class Hierarchy { if (add) { this.descendants.set(cls, [_class]) } + } else if (add) { + list.push(_class) } else { - if (add) { - list.push(_class) - } else { - const pos = list.indexOf(_class) - if (pos !== -1) { - list.splice(pos, 1) - } + const pos = list.indexOf(_class) + if (pos !== -1) { + list.splice(pos, 1) } } } } - private updateAncestors (_class: Ref, add = true): void { + private updateAncestors(_class: Ref, add = true): void { const cl: Ref[] = [_class] const visited = new Set>() const ancestorList: Ref[] = [] while (cl.length > 0) { - const classifier = cl.shift() as Ref + const classifier = cl.shift()! if (addNew(visited, classifier)) { ancestorList.push(classifier) cl.push(...this.ancestorsOf(classifier)) @@ -445,7 +443,7 @@ export class Hierarchy { /** * Return extends and implemnets as combined list of references */ - private ancestorsOf (classifier: Ref): Ref[] { + private ancestorsOf(classifier: Ref): Ref[] { const attrs = this.classifiers.get(classifier) const result: Ref[] = [] if (this.isClass(attrs) || this._isMixin(attrs)) { @@ -461,19 +459,19 @@ export class Hierarchy { return result } - private isClass (attrs?: Classifier): boolean { + private isClass(attrs?: Classifier): boolean { return attrs?.kind === ClassifierKind.CLASS } - private _isMixin (attrs?: Classifier): boolean { + private _isMixin(attrs?: Classifier): boolean { return attrs?.kind === ClassifierKind.MIXIN } - private isInterface (attrs?: Classifier): boolean { + private isInterface(attrs?: Classifier): boolean { return attrs?.kind === ClassifierKind.INTERFACE } - private addAttribute (attribute: AnyAttribute): void { + private addAttribute(attribute: AnyAttribute): void { const _class = attribute.attributeOf let attributes = this.attributes.get(_class) if (attributes === undefined) { @@ -485,7 +483,7 @@ export class Hierarchy { this.classifierProperties.delete(attribute.attributeOf) } - getAllAttributes ( + getAllAttributes( clazz: Ref, to?: Ref, traverse?: (name: string, attr: AnyAttribute) => void @@ -519,7 +517,7 @@ export class Hierarchy { return result } - getOwnAttributes (clazz: Ref): Map { + getOwnAttributes(clazz: Ref): Map { const result = new Map() const attributes = this.attributes.get(clazz) @@ -532,13 +530,13 @@ export class Hierarchy { return result } - getParentClass (_class: Ref>): Ref> { + getParentClass(_class: Ref>): Ref> { const baseDomain = this.getDomain(_class) const ancestors = this.getAncestors(_class) let result: Ref> = _class for (const ancestor of ancestors) { try { - const domain = this.getClass(ancestor).domain + const { domain } = this.getClass(ancestor) if (domain === baseDomain) { result = ancestor } @@ -547,19 +545,19 @@ export class Hierarchy { return result } - getAttribute (classifier: Ref, name: string): AnyAttribute { + getAttribute(classifier: Ref, name: string): AnyAttribute { const attr = this.findAttribute(classifier, name) if (attr === undefined) { - throw new Error('attribute not found: ' + name) + throw new Error(`attribute not found: ${name}`) } return attr } - public findAttribute (classifier: Ref, name: string): AnyAttribute | undefined { + public findAttribute(classifier: Ref, name: string): AnyAttribute | undefined { const list = [classifier] const visited = new Set>() while (list.length > 0) { - const cl = list.shift() as Ref + const cl = list.shift()! if (addNew(visited, cl)) { const attribute = this.attributes.get(cl)?.get(name) if (attribute !== undefined) { @@ -613,7 +611,7 @@ export class Hierarchy { return vResult } - clone (obj: any): any { + clone(obj: any): any { return deepClone( obj, (doc, m) => this.as(doc, m), @@ -621,7 +619,7 @@ export class Hierarchy { ) } - domains (): Domain[] { + domains(): Domain[] { const classes = Array.from(this.classifiers.values()).filter( (it) => this.isClass(it) || this._isMixin(it) ) as Class[] @@ -631,11 +629,11 @@ export class Hierarchy { .filter((it, idx, array) => array.findIndex((pt) => pt === it) === idx) } - getClassifierProp (cl: Ref>, prop: string): any | undefined { + getClassifierProp(cl: Ref>, prop: string): any | undefined { return this.classifierProperties.get(cl)?.get(prop) } - setClassifierProp (cl: Ref>, prop: string, value: any): void { + setClassifierProp(cl: Ref>, prop: string, value: any): void { let cur = this.classifierProperties.get(cl) if (cur === undefined) { cur = new Map() @@ -645,7 +643,7 @@ export class Hierarchy { } } -function addNew (val: Set, value: T): boolean { +function addNew(val: Set, value: T): boolean { if (val.has(value)) { return false } @@ -653,13 +651,13 @@ function addNew (val: Set, value: T): boolean { return true } -function addIf (array: T[], value: T): void { +function addIf(array: T[], value: T): void { if (!array.includes(value)) { array.push(value) } } -function getClass (vvv: ToClassRefT): Ref> { +function getClass(vvv: ToClassRefT): Ref> { if (Array.isArray(vvv)) { return vvv[0] } diff --git a/foundations/core/packages/core/src/index.ts b/foundations/core/packages/core/src/index.ts index ddafa5c49d..5c3e4d97fb 100644 --- a/foundations/core/packages/core/src/index.ts +++ b/foundations/core/packages/core/src/index.ts @@ -33,17 +33,17 @@ export * from './objvalue' export * from './operations' export * from './operator' export * from './query' -export * from './server' +export type * from './server' export * from './storage' export * from './tx' export * from './utils' -export * from './backup' +export type * from './backup' export * from './status' export * from './clone' export * from './common' export * from './time' export * from './benchmark' export * from './collaborators' -export * from './versioning' +export type * from './versioning' export default core diff --git a/foundations/core/packages/core/src/memdb.ts b/foundations/core/packages/core/src/memdb.ts index 5a0896e919..ecf146510c 100644 --- a/foundations/core/packages/core/src/memdb.ts +++ b/foundations/core/packages/core/src/memdb.ts @@ -18,7 +18,7 @@ import { type Lookup, type MeasureContext, type ReverseLookups, getObjectValue } import type { Class, Doc, Ref } from './classes' import core from './component' -import { type Hierarchy } from './hierarchy' +import type { Hierarchy } from './hierarchy' import { checkMixinKey, matchQuery, resultSort } from './query' import type { AssociationQuery, @@ -41,11 +41,11 @@ export abstract class MemDb extends TxProcessor implements Storage { private readonly objectsByClass = new Map>, Map, Doc>>() private readonly objectById = new Map, Doc>() - constructor (protected readonly hierarchy: Hierarchy) { + constructor(protected readonly hierarchy: Hierarchy) { super() } - private getObjectsByClass (_class: Ref>): Map, Doc> { + private getObjectsByClass(_class: Ref>): Map, Doc> { const result = this.objectsByClass.get(_class) if (result === undefined) { const result = new Map, Doc>() @@ -55,7 +55,7 @@ export abstract class MemDb extends TxProcessor implements Storage { return result } - private cleanObjectByClass (_class: Ref>, _id: Ref): void { + private cleanObjectByClass(_class: Ref>, _id: Ref): void { const result = this.objectsByClass.get(_class) if (result !== undefined) { result.delete(_id) @@ -142,7 +142,7 @@ export abstract class MemDb extends TxProcessor implements Storage { for (const doc of docs) { const result: LookupData = {} await this.getLookupValue(_class, doc, lookup, result) - withLookup.push(Object.assign({}, doc, { $lookup: result })) + withLookup.push({ ...doc, $lookup: result }) } return withLookup } @@ -151,7 +151,7 @@ export abstract class MemDb extends TxProcessor implements Storage { const withLookup: WithLookup[] = [] for (const doc of docs) { const result = await this.getAssociationValue(doc, associations) - withLookup.push(Object.assign({}, doc, { $associations: result })) + withLookup.push({ ...doc, $associations: result }) } return withLookup } @@ -187,7 +187,7 @@ export abstract class MemDb extends TxProcessor implements Storage { let result: WithLookup[] const baseClass = this.hierarchy.getBaseClass(_class) if ( - Object.prototype.hasOwnProperty.call(query, '_id') && + Object.hasOwn(query, '_id') && (typeof query._id === 'string' || query._id?.$in !== undefined || query._id === undefined || query._id === null) ) { result = this.getByIdQuery(query, baseClass) @@ -235,7 +235,7 @@ export abstract class MemDb extends TxProcessor implements Storage { let result: WithLookup[] const baseClass = this.hierarchy.getBaseClass(_class) if ( - Object.prototype.hasOwnProperty.call(query, '_id') && + Object.hasOwn(query, '_id') && (typeof query._id === 'string' || query._id?.$in !== undefined || query._id === undefined || query._id === null) ) { result = this.getByIdQuery(query, baseClass) @@ -254,14 +254,12 @@ export abstract class MemDb extends TxProcessor implements Storage { result = result.slice(0, options?.limit) return toFindResult( - result.map((it) => { - return baseClass !== _class ? this.hierarchy.as(it, _class) : it - }) as WithLookup[], + result.map((it) => (baseClass !== _class ? this.hierarchy.as(it, _class) : it)) as WithLookup[], total ) } - addDoc (doc: Doc): void { + addDoc(doc: Doc): void { this.hierarchy.getAncestors(doc._class).forEach((_class) => { const arr = this.getObjectsByClass(_class) arr.set(doc._id, doc) @@ -270,7 +268,7 @@ export abstract class MemDb extends TxProcessor implements Storage { this.objectById.set(doc._id, doc) } - delDoc (_id: Ref): void { + delDoc(_id: Ref): void { const doc = this.objectById.get(_id) if (doc === undefined) { throw new PlatformError(new Status(Severity.ERROR, core.status.ObjectNotFound, { _id })) @@ -281,7 +279,7 @@ export abstract class MemDb extends TxProcessor implements Storage { }) } - updateDoc (_id: Ref, doc: Doc, update: TxUpdateDoc | TxMixin): void { + updateDoc(_id: Ref, doc: Doc, update: TxUpdateDoc | TxMixin): void { // TODO: track updates on Contact to adjust memdb accounts? } } @@ -292,23 +290,23 @@ export abstract class MemDb extends TxProcessor implements Storage { * @public */ export class TxDb extends MemDb { - protected txCreateDoc (tx: TxCreateDoc): Promise { + protected txCreateDoc(tx: TxCreateDoc): Promise { throw new Error('Method not implemented.') } - protected txUpdateDoc (tx: TxUpdateDoc): Promise { + protected txUpdateDoc(tx: TxUpdateDoc): Promise { throw new Error('Method not implemented.') } - protected txRemoveDoc (tx: TxRemoveDoc): Promise { + protected txRemoveDoc(tx: TxRemoveDoc): Promise { throw new Error('Method not implemented.') } - protected txMixin (tx: TxMixin): Promise { + protected txMixin(tx: TxMixin): Promise { throw new Error('Method not implemented.') } - async tx (tx: Tx): Promise { + async tx(tx: Tx): Promise { this.addDoc(tx) return [] } @@ -320,7 +318,7 @@ export class TxDb extends MemDb { * @public */ export class ModelDb extends MemDb { - protected override async txCreateDoc (tx: TxCreateDoc): Promise { + protected override async txCreateDoc(tx: TxCreateDoc): Promise { this.addDoc(TxProcessor.createDoc2Doc(tx)) return {} } @@ -394,7 +392,7 @@ export class ModelDb extends MemDb { } } - protected async txUpdateDoc (tx: TxUpdateDoc): Promise { + protected async txUpdateDoc(tx: TxUpdateDoc): Promise { try { const doc = this.getObject(tx.objectId) as any this.updateDoc(tx.objectId, doc, tx) @@ -404,7 +402,7 @@ export class ModelDb extends MemDb { return {} } - protected async txRemoveDoc (tx: TxRemoveDoc): Promise { + protected async txRemoveDoc(tx: TxRemoveDoc): Promise { try { this.delDoc(tx.objectId) } catch (err: any) {} @@ -412,7 +410,7 @@ export class ModelDb extends MemDb { } // TODO: process ancessor mixins - protected async txMixin (tx: TxMixin): Promise { + protected async txMixin(tx: TxMixin): Promise { const doc = this.getObject(tx.objectId) as any this.updateDoc(tx.objectId, doc, tx) TxProcessor.updateMixin4Doc(doc, tx) diff --git a/foundations/core/packages/core/src/objvalue.ts b/foundations/core/packages/core/src/objvalue.ts index 8a7df8ed7a..e9be369af8 100644 --- a/foundations/core/packages/core/src/objvalue.ts +++ b/foundations/core/packages/core/src/objvalue.ts @@ -1,12 +1,12 @@ import { PlatformError, Severity, Status } from '@hcengineering/platform' -import { type Doc } from './classes' +import type { Doc } from './classes' import { clone } from './clone' import core from './component' /** * @public */ -export function getObjectValue (key: string, doc: Doc): any { +export function getObjectValue(key: string, doc: Doc): any { // Check dot notation if (key.length === 0) { return doc @@ -33,7 +33,7 @@ export function getObjectValue (key: string, doc: Doc): any { /** * @public */ -export function setObjectValue (key: string, doc: Doc, newValue: any): void { +export function setObjectValue(key: string, doc: Doc, newValue: any): void { // Check dot notation if (key.length === 0) { return @@ -64,11 +64,11 @@ export function setObjectValue (key: string, doc: Doc, newValue: any): void { return value } -function isNestedArrayQuery (value: any, d: string): boolean { +function isNestedArrayQuery(value: any, d: string): boolean { return Number.isNaN(Number.parseInt(d)) && value?.[d as any] === undefined } -function getNestedArrayValue (value: any[], name: string): any[] { +function getNestedArrayValue(value: any[], name: string): any[] { const result = [] for (const v of value) { result.push(...arrayOrValue(getObjectValue(name, v))) @@ -76,6 +76,6 @@ function getNestedArrayValue (value: any[], name: string): any[] { return result } -function arrayOrValue (vv: any): any[] { +function arrayOrValue(vv: any): any[] { return Array.isArray(vv) ? vv : [vv] } diff --git a/foundations/core/packages/core/src/operations.ts b/foundations/core/packages/core/src/operations.ts index 697ffb5655..ad9e098a46 100644 --- a/foundations/core/packages/core/src/operations.ts +++ b/foundations/core/packages/core/src/operations.ts @@ -24,7 +24,7 @@ import type { Space, Timestamp } from './classes' -import { type Client } from './client' +import type { Client } from './client' import core from './component' import type { DocumentQuery, @@ -53,30 +53,30 @@ import { type DocumentClassQuery, type Tx, type TxApplyResult, type TxCUD, TxFac export class TxOperations implements Omit { readonly txFactory: TxFactory - constructor ( + constructor( readonly client: Client, readonly user: PersonId, - readonly isDerived: boolean = false + readonly isDerived = false ) { this.txFactory = new TxFactory(user, isDerived) } - getHierarchy (): Hierarchy { + getHierarchy(): Hierarchy { return this.client.getHierarchy() } - getModel (): ModelDb { + getModel(): ModelDb { return this.client.getModel() } - async close (): Promise { + async close(): Promise { await this.client.close() } findAll( _class: Ref>, query: DocumentQuery, - options?: FindOptions | undefined + options?: FindOptions ): Promise> { return this.client.findAll(_class, query, options) } @@ -100,7 +100,7 @@ export class TxOperations implements Omit { findOne( _class: Ref>, query: DocumentQuery, - options?: FindOptions | undefined + options?: FindOptions ): Promise | undefined> { return this.client.findOne(_class, query, options) } @@ -109,11 +109,11 @@ export class TxOperations implements Omit { return this.client.domainRequest(domain, params) } - searchFulltext (query: SearchQuery, options: SearchOptions): Promise { + searchFulltext(query: SearchQuery, options: SearchOptions): Promise { return this.client.searchFulltext(query, options) } - tx (tx: Tx): Promise { + tx(tx: Tx): Promise { return this.client.tx(tx) } @@ -158,7 +158,7 @@ export class TxOperations implements Omit { modifiedBy ) await this.tx(tx) - return tx.objectId as unknown as Ref

+ return tx.objectId } async updateCollection( @@ -348,7 +348,7 @@ export class TxOperations implements Omit { return this.removeDoc(doc._class, doc.space, doc._id) } - apply (scope?: string, measure?: string, derived?: boolean): ApplyOperations { + apply(scope?: string, measure?: string, derived?: boolean): ApplyOperations { return new ApplyOperations(this, scope, measure, derived ?? this.isDerived) } @@ -366,9 +366,9 @@ export class TxOperations implements Omit { return doc } - async mixinDiffUpdate ( + async mixinDiffUpdate( doc: Doc, - raw: Doc | Data, + raw: MixinData>, mixin: Ref>>, modifiedBy: PersonId, modifiedOn: Timestamp @@ -376,7 +376,7 @@ export class TxOperations implements Omit { // We need to update fields if they are different. if (!this.getHierarchy().hasMixin(doc, mixin)) { - await this.createMixin(doc._id, doc._class, doc.space, mixin, raw as MixinData, modifiedOn, modifiedBy) + await this.createMixin(doc._id, doc._class, doc.space, mixin, raw, modifiedOn, modifiedBy) TxProcessor.applyUpdate(this.getHierarchy().as(doc, mixin), raw) return doc } @@ -399,7 +399,7 @@ export class TxOperations implements Omit { } } -export function getDiffUpdate (doc: T, update: T | Data | DocumentUpdate): DocumentUpdate { +export function getDiffUpdate(doc: T, update: T | Data | DocumentUpdate): DocumentUpdate { // We need to update fields if they are different. const documentUpdate: DocumentUpdate = {} for (const [k, v] of Object.entries(update)) { @@ -414,7 +414,7 @@ export function getDiffUpdate (doc: T, update: T | Data | Docu return documentUpdate } -export function splitMixinUpdate ( +export function splitMixinUpdate( hierarchy: Hierarchy, update: DocumentUpdate, mixClass: Ref>, @@ -448,7 +448,7 @@ export function splitMixinUpdate ( return result } -function splitObjectAttributes ( +function splitObjectAttributes( hierarchy: Hierarchy, obj: T, objClass: Ref>, @@ -481,7 +481,7 @@ export class ApplyOperations extends TxOperations { txes: TxCUD[] = [] matches: DocumentClassQuery[] = [] notMatches: DocumentClassQuery[] = [] - constructor ( + constructor( readonly ops: TxOperations, readonly scope?: string, readonly measureName?: string, @@ -507,17 +507,17 @@ export class ApplyOperations extends TxOperations { super(txClient, ops.user, isDerived ?? false) } - match(_class: Ref>, query: DocumentQuery): ApplyOperations { + match(_class: Ref>, query: DocumentQuery): this { this.matches.push({ _class, query }) return this } - notMatch(_class: Ref>, query: DocumentQuery): ApplyOperations { + notMatch(_class: Ref>, query: DocumentQuery): this { this.notMatches.push({ _class, query }) return this } - async commit (notify: boolean = true, extraNotify: Ref>[] = []): Promise { + async commit(notify = true, extraNotify: Ref>[] = []): Promise { if ( this.txes.length === 1 && this.matches.length === 0 && @@ -574,7 +574,7 @@ export class ApplyOperations extends TxOperations { } // Apply for this will reuse, same apply context. - apply (scope?: string, measure?: string): ApplyOperations { + apply(scope?: string, measure?: string): this { return this } } @@ -587,7 +587,7 @@ export class ApplyOperations extends TxOperations { export class TxBuilder extends TxOperations { txes: TxCUD[] = [] matches: DocumentClassQuery[] = [] - constructor ( + constructor( readonly hierarchy: Hierarchy, readonly modelDb: ModelDb, user: PersonId @@ -616,13 +616,13 @@ export class TxBuilder extends TxOperations { /** * @public */ -export async function updateAttribute ( +export async function updateAttribute( client: TxOperations, object: Doc, _class: Ref>, - attribute: { key: string, attr: AnyAttribute }, + attribute: { key: string; attr: AnyAttribute }, value: any, - saveModified: boolean = false, + saveModified = false, analyticsProps: Record = {} ): Promise { const doc = object @@ -630,7 +630,7 @@ export async function updateAttribute ( if ((doc as any)[attributeKey] === value) return const modifiedOn = saveModified ? doc.modifiedOn : Date.now() const modifiedBy = attribute.key === 'modifiedBy' ? value : saveModified ? doc.modifiedBy : undefined - const attr = attribute.attr + const { attr } = attribute const baseAnalyticsProps = { objectClass: _class, @@ -649,39 +649,37 @@ export async function updateAttribute ( modifiedBy ) Analytics.handleEvent('ChangeAttribute', { ...baseAnalyticsProps, value }) - } else { - if (client.getHierarchy().isDerived(attribute.attr.type._class, core.class.ArrOf)) { - const oldValue: any[] = (object as any)[attributeKey] ?? [] - const val: any[] = Array.isArray(value) ? value : [value] - const toPull = oldValue.filter((it: any) => !val.includes(it)) - - const toPush = val.filter((it) => !oldValue.includes(it)) - if (toPull.length > 0) { - await client.update(object, { $pull: { [attributeKey]: { $in: toPull } } }, false, modifiedOn, modifiedBy) - Analytics.handleEvent('RemoveCollectionItems', { - ...baseAnalyticsProps, - removed: toPull - }) - } - if (toPush.length > 0) { - await client.update( - object, - { $push: { [attributeKey]: { $each: toPush, $position: 0 } } }, - false, - modifiedOn, - modifiedBy - ) - Analytics.handleEvent('AddCollectionItems', { - ...baseAnalyticsProps, - added: toPush - }) - } - } else { - await client.update(object, { [attributeKey]: value }, false, modifiedOn, modifiedBy) - Analytics.handleEvent('SetCollectionItems', { + } else if (client.getHierarchy().isDerived(attribute.attr.type._class, core.class.ArrOf)) { + const oldValue: any[] = (object as any)[attributeKey] ?? [] + const val: any[] = Array.isArray(value) ? value : [value] + const toPull = oldValue.filter((it: any) => !val.includes(it)) + + const toPush = val.filter((it) => !oldValue.includes(it)) + if (toPull.length > 0) { + await client.update(object, { $pull: { [attributeKey]: { $in: toPull } } }, false, modifiedOn, modifiedBy) + Analytics.handleEvent('RemoveCollectionItems', { ...baseAnalyticsProps, - value + removed: toPull }) } + if (toPush.length > 0) { + await client.update( + object, + { $push: { [attributeKey]: { $each: toPush, $position: 0 } } }, + false, + modifiedOn, + modifiedBy + ) + Analytics.handleEvent('AddCollectionItems', { + ...baseAnalyticsProps, + added: toPush + }) + } + } else { + await client.update(object, { [attributeKey]: value }, false, modifiedOn, modifiedBy) + Analytics.handleEvent('SetCollectionItems', { + ...baseAnalyticsProps, + value + }) } } diff --git a/foundations/core/packages/core/src/operator.ts b/foundations/core/packages/core/src/operator.ts index ad3eab61b0..f13d4cafd0 100644 --- a/foundations/core/packages/core/src/operator.ts +++ b/foundations/core/packages/core/src/operator.ts @@ -23,7 +23,7 @@ import type { Position, PullArray, QueryUpdate } from './tx' */ export type _OperatorFunc = (doc: Doc, op: any) => void -function $push (document: Doc, keyval: Record): void { +function $push(document: Doc, keyval: Record): void { const doc = document as any for (const key in keyval) { if (doc[key] === undefined) { @@ -40,22 +40,18 @@ function $push (document: Doc, keyval: Record): void { } else { arr.push(kvk) } + } else if (doc[key] === null || doc[key] === undefined) { + doc[key] = [kvk] + } else if (Array.isArray(doc[key])) { + doc[key].push(kvk) } else { - if (doc[key] === null || doc[key] === undefined) { - doc[key] = [kvk] - } else { - if (Array.isArray(doc[key])) { - doc[key].push(kvk) - } else { - Analytics.handleError(new Error(`invalid array value: ${JSON.stringify(doc[key])} `)) - doc[key] = [kvk] - } - } + Analytics.handleError(new Error(`invalid array value: ${JSON.stringify(doc[key])} `)) + doc[key] = [kvk] } } } -function $pull (document: Doc, keyval: Record): void { +function $pull(document: Doc, keyval: Record): void { const doc = document as any for (const key in keyval) { if (doc[key] === undefined) { @@ -91,7 +87,7 @@ function $pull (document: Doc, keyval: Record): void { } } -function matchArrayElement (docs: any[], query: Partial): any[] { +function matchArrayElement(docs: any[], query: Partial): any[] { let result = [...docs] for (const key in query) { const value = (query as any)[key] @@ -111,7 +107,7 @@ function matchArrayElement (docs: any[], query: Partial): any[ return result } -function $update (document: Doc, keyval: Record): void { +function $update(document: Doc, keyval: Record): void { const doc = document as any for (const key in keyval) { if (doc[key] === undefined) { @@ -138,7 +134,7 @@ function $update (document: Doc, keyval: Record): void { } } -function $inc (document: Doc, keyval: Record): void { +function $inc(document: Doc, keyval: Record): void { const doc = document as unknown as Record for (const key in keyval) { const cur = doc[key] ?? 0 @@ -162,7 +158,7 @@ function $inc (document: Doc, keyval: Record): void { } } -function $unset (document: Doc, keyval: Record): void { +function $unset(document: Doc, keyval: Record): void { const doc = document as any for (const key in keyval) { if (doc[key] !== undefined) { @@ -172,7 +168,7 @@ function $unset (document: Doc, keyval: Record): void { } } -function $rename (document: Doc, keyval: Record): void { +function $rename(document: Doc, keyval: Record): void { const doc = document as any for (const key in keyval) { if (doc[key] !== undefined) { @@ -195,7 +191,7 @@ const operators: Record = { /** * @public */ -export function isOperator (o: Record): boolean { +export function isOperator(o: Record): boolean { if (o === null || typeof o !== 'object') { return false } @@ -208,8 +204,8 @@ export function isOperator (o: Record): boolean { * @param name - * @returns */ -export function _getOperator (name: string): _OperatorFunc { +export function _getOperator(name: string): _OperatorFunc { const operator = operators[name] - if (operator === undefined) throw new Error('unknown operator: ' + name) + if (operator === undefined) throw new Error(`unknown operator: ${name}`) return operator } diff --git a/foundations/core/packages/core/src/predicate.ts b/foundations/core/packages/core/src/predicate.ts index 7bd5d7138d..9c85c19872 100644 --- a/foundations/core/packages/core/src/predicate.ts +++ b/foundations/core/packages/core/src/predicate.ts @@ -25,7 +25,7 @@ type PredicateFactory = (pred: any, propertyKey: string) => Predicate type ExecPredicate = (value: any) => boolean -function execPredicate (docs: Doc[], propertyKey: string, pred: ExecPredicate): Doc[] { +function execPredicate(docs: Doc[], propertyKey: string, pred: ExecPredicate): Doc[] { const result: Doc[] = [] for (const doc of docs) { const value = getObjectValue(propertyKey, doc) @@ -88,59 +88,45 @@ const predicates: Record = { return (docs) => execPredicate(docs, propertyKey, (value) => regex.test(value)) }, - $regex: (o: { $regex: string, $options: string }, propertyKey: string): Predicate => { + $regex: (o: { $regex: string; $options: string }, propertyKey: string): Predicate => { const re = new RegExp(o.$regex, o.$options) return (docs) => execPredicate(docs, propertyKey, (value) => value.match(re) !== null) }, - $gt: (o, propertyKey) => { - return (docs) => execPredicate(docs, propertyKey, (value) => value > o) - }, - $gte: (o, propertyKey) => { - return (docs) => execPredicate(docs, propertyKey, (value) => value >= o) - }, - $lt: (o, propertyKey) => { - return (docs) => execPredicate(docs, propertyKey, (value) => value < o) - }, - $lte: (o, propertyKey) => { - return (docs) => execPredicate(docs, propertyKey, (value) => value <= o) - }, - $exists: (o, propertyKey) => { - return (docs) => execPredicate(docs, propertyKey, (value) => (value !== undefined) === o) - }, - $ne: (o, propertyKey) => { - // eslint-disable-next-line eqeqeq - return (docs) => execPredicate(docs, propertyKey, (value) => (o != null ? !deepEqual(o, value) : value != null)) - }, - $size: (o, propertyKey) => { - return (docs) => - execPredicate(docs, propertyKey, (value) => { - if (value == null) { - return false - } - if (!Array.isArray(value)) { - throw new Error('$size predicate requires array') - } - if (typeof o === 'number') { - return value.length === o - } - if (typeof o === 'object' && o.$gt !== undefined) { - return value.length > o.$gt - } - if (typeof o === 'object' && o.$gte !== undefined) { - return value.length >= o.$gte - } - if (typeof o === 'object' && o.$lt !== undefined) { - return value.length < o.$lt - } - if (typeof o === 'object' && o.$lte !== undefined) { - return value.length <= o.$lte - } + $gt: (o, propertyKey) => (docs) => execPredicate(docs, propertyKey, (value) => value > o), + $gte: (o, propertyKey) => (docs) => execPredicate(docs, propertyKey, (value) => value >= o), + $lt: (o, propertyKey) => (docs) => execPredicate(docs, propertyKey, (value) => value < o), + $lte: (o, propertyKey) => (docs) => execPredicate(docs, propertyKey, (value) => value <= o), + $exists: (o, propertyKey) => (docs) => execPredicate(docs, propertyKey, (value) => (value !== undefined) === o), + $ne: (o, propertyKey) => (docs) => + execPredicate(docs, propertyKey, (value) => (o != null ? !deepEqual(o, value) : value != null)), + $size: (o, propertyKey) => (docs) => + execPredicate(docs, propertyKey, (value) => { + if (value == null) { return false - }) - } + } + if (!Array.isArray(value)) { + throw new Error('$size predicate requires array') + } + if (typeof o === 'number') { + return value.length === o + } + if (typeof o === 'object' && o.$gt !== undefined) { + return value.length > o.$gt + } + if (typeof o === 'object' && o.$gte !== undefined) { + return value.length >= o.$gte + } + if (typeof o === 'object' && o.$lt !== undefined) { + return value.length < o.$lt + } + if (typeof o === 'object' && o.$lte !== undefined) { + return value.length <= o.$lte + } + return false + }) } -export function isPredicate (o: Record): boolean { +export function isPredicate(o: Record): boolean { if (o === null || typeof o !== 'object') { return false } @@ -148,12 +134,12 @@ export function isPredicate (o: Record): boolean { return keys.length > 0 && keys.every((key) => key.startsWith('$')) } -export function createPredicates (o: Record, propertyKey: string): Predicate[] { +export function createPredicates(o: Record, propertyKey: string): Predicate[] { const keys = Object.keys(o) const result: Predicate[] = [] for (const key of keys) { const factory = predicates[key] - if (factory === undefined) throw new Error('unknown predicate: ' + keys[0]) + if (factory === undefined) throw new Error(`unknown predicate: ${keys[0]}`) result.push(factory(o[key], propertyKey)) } return result diff --git a/foundations/core/packages/core/src/proxy.ts b/foundations/core/packages/core/src/proxy.ts index d5ab1abde6..88a68f70a2 100644 --- a/foundations/core/packages/core/src/proxy.ts +++ b/foundations/core/packages/core/src/proxy.ts @@ -1,5 +1,5 @@ import { PlatformError, unknownError } from '@hcengineering/platform' -import { type Ref } from '.' +import type { Ref } from '.' import type { Doc, Mixin } from './classes' const PROXY_TARGET_KEY = '$___proxy_target' @@ -8,9 +8,9 @@ export const PROXY_MIXIN_CLASS_KEY = '$__mixin' /** * @internal */ -export function _createMixinProxy (mixin: Mixin, ancestorProxy: ProxyHandler | null): ProxyHandler { +export function _createMixinProxy(mixin: Mixin, ancestorProxy: ProxyHandler | null): ProxyHandler { return { - get (target: any, property: string, receiver: any): any { + get(target: any, property: string, receiver: any): any { if (property === PROXY_TARGET_KEY) { return target } @@ -27,7 +27,7 @@ export function _createMixinProxy (mixin: Mixin, ancestorProxy: ProxyHandle } } -export function freeze (value: any): any { +export function freeze(value: any): any { if (value != null && typeof value === 'object') { if (Array.isArray(value)) { return value.map((it) => freeze(it)) @@ -45,23 +45,23 @@ export function freeze (value: any): any { /** * @internal */ -export function _createFreezeProxy (doc: Doc): ProxyHandler { +export function _createFreezeProxy(doc: Doc): ProxyHandler { return { - get (target: any, property: string, receiver: any): any { + get(target: any, property: string, receiver: any): any { const value = target[property] return freeze(value) }, - set (target, p, newValue, receiver): any { + set(target, p, newValue, receiver): any { throw new PlatformError(unknownError('Modification is not allowed')) }, - defineProperty (target, property, attributes): any { + defineProperty(target, property, attributes): any { throw new PlatformError(unknownError('Modification is not allowed')) }, - deleteProperty (target, p): any { + deleteProperty(target, p): any { throw new PlatformError(unknownError('Modification is not allowed')) }, - setPrototypeOf (target, v): any { + setPrototypeOf(target, v): any { throw new PlatformError(unknownError('Modification is not allowed')) } } @@ -70,7 +70,7 @@ export function _createFreezeProxy (doc: Doc): ProxyHandler { /** * @internal */ -export function _toDoc (doc: D): D { +export function _toDoc(doc: D): D { const targetDoc = (doc as any)[PROXY_TARGET_KEY] if (targetDoc !== undefined) { return targetDoc as D @@ -81,6 +81,6 @@ export function _toDoc (doc: D): D { /** * @internal */ -export function _mixinClass (doc: D): Ref> | undefined { +export function _mixinClass(doc: D): Ref> | undefined { return (doc as any)[PROXY_MIXIN_CLASS_KEY] } diff --git a/foundations/core/packages/core/src/query.ts b/foundations/core/packages/core/src/query.ts index 81f20d9a97..e7661a4a3b 100644 --- a/foundations/core/packages/core/src/query.ts +++ b/foundations/core/packages/core/src/query.ts @@ -1,15 +1,15 @@ -import { type DocumentQuery, type MemDb } from '.' -import { type Class, type Doc, type Enum, type EnumOf, type Ref } from './classes' +import type { DocumentQuery, MemDb } from '.' +import type { Class, Doc, Enum, EnumOf, Ref } from './classes' import core from './component' -import { type Hierarchy } from './hierarchy' +import type { Hierarchy } from './hierarchy' import { getObjectValue } from './objvalue' import { createPredicates, isPredicate } from './predicate' -import { type SortQuerySelector, type SortingOrder, type SortingQuery, type SortingRules } from './storage' +import type { SortQuerySelector, SortingOrder, SortingQuery, SortingRules } from './storage' /** * @public */ -export function findProperty (objects: Doc[], propertyKey: string, value: any): Doc[] { +export function findProperty(objects: Doc[], propertyKey: string, value: any): Doc[] { if (isPredicate(value)) { const preds = createPredicates(value, propertyKey) for (const pred of preds) { @@ -27,11 +27,11 @@ export function findProperty (objects: Doc[], propertyKey: string, value: any): return result } -function isArrayValueCheck (val: T, value: P): boolean { +function isArrayValueCheck(val: T, value: P): boolean { return Array.isArray(val) && !Array.isArray(value) && val.includes(value) } -function getEnumValue ( +function getEnumValue( key: string, _class: Ref>, hierarchy: Hierarchy, @@ -47,7 +47,7 @@ function getEnumValue ( /** * @public */ -export function resultSort ( +export function resultSort( result: T[], sortOptions: SortingQuery, _class: Ref>, @@ -70,7 +70,7 @@ export function resultSort ( result.sort(sortFunc) } -function mapSortingValue (order: SortingOrder | SortingRules, val: any): any { +function mapSortingValue(order: SortingOrder | SortingRules, val: any): any { if (typeof order !== 'object') { return val } @@ -93,7 +93,7 @@ function mapSortingValue (order: SortingOrder | SortingRules, val: any): an } } -function getSortingResult (aValue: any, bValue: any, order: SortingOrder | SortingRules): number { +function getSortingResult(aValue: any, bValue: any, order: SortingOrder | SortingRules): number { let res = 0 if (typeof aValue === 'undefined') { return typeof bValue === 'undefined' ? 0 : -1 @@ -116,7 +116,7 @@ function getSortingResult (aValue: any, bValue: any, order: SortingOrder | Sorti return res * orderOrder } -function getEnums ( +function getEnums( _class: Ref>, sortOptions: SortingQuery, hierarchy: Hierarchy, @@ -138,7 +138,7 @@ function getEnums ( return res } -function getValue (key: string, obj: any, _class: Ref>, hierarchy: Hierarchy): any { +function getValue(key: string, obj: any, _class: Ref>, hierarchy: Hierarchy): any { const tkey = checkMixinKey(key, _class, hierarchy) let value = getObjectValue(tkey, obj) if (typeof value === 'object' && !Array.isArray(value)) { @@ -149,12 +149,12 @@ function getValue (key: string, obj: any, _class: Ref>, /** * @public */ -export function matchQuery ( +export function matchQuery( docs: Doc[], query: DocumentQuery, clazz: Ref>, hierarchy: Hierarchy, - skipLookup: boolean = false + skipLookup = false ): Doc[] { const baseClass = hierarchy.getBaseClass(clazz) let result = docs.filter((r) => hierarchy.isDerived(r._class, baseClass)) @@ -178,13 +178,13 @@ export function matchQuery ( /** * @public */ -export function checkMixinKey (key: string, clazz: Ref>, hierarchy: Hierarchy): string { +export function checkMixinKey(key: string, clazz: Ref>, hierarchy: Hierarchy): string { if (!key.includes('.')) { try { const attr = hierarchy.findAttribute(clazz, key) if (attr !== undefined && hierarchy.isMixin(attr.attributeOf)) { // It is mixin - key = attr.attributeOf + '.' + key + key = `${attr.attributeOf}.${key}` } } catch (err: any) { // ignore, if diff --git a/foundations/core/packages/core/src/server.ts b/foundations/core/packages/core/src/server.ts index a1515008ed..1da1e4ef45 100644 --- a/foundations/core/packages/core/src/server.ts +++ b/foundations/core/packages/core/src/server.ts @@ -14,8 +14,8 @@ // import type { Account, AccountRole, AccountUuid, Doc, Domain, PersonId, Ref } from './classes' -import { type MeasureContext } from '@hcengineering/measurements' -import { type DocumentQuery, type FindOptions } from './storage' +import type { MeasureContext } from '@hcengineering/measurements' +import type { DocumentQuery, FindOptions } from './storage' import type { DocumentUpdate, Tx } from './tx' import { PermissionsGrant, type WorkspaceIds } from './utils' @@ -66,11 +66,11 @@ export interface SessionData { hasDomainBroadcast?: boolean workspace: WorkspaceIds socialStringsToUsers: Map< - PersonId, - { - accontUuid: AccountUuid - role: AccountRole - } + PersonId, + { + accontUuid: AccountUuid + role: AccountRole + } > grant?: PermissionsGrant diff --git a/foundations/core/packages/core/src/status.ts b/foundations/core/packages/core/src/status.ts index 94937e1f6f..13a211f858 100644 --- a/foundations/core/packages/core/src/status.ts +++ b/foundations/core/packages/core/src/status.ts @@ -13,8 +13,8 @@ // limitations under the License. // -import { type Asset, type IntlString } from '@hcengineering/platform' -import { type Attribute, type Doc, type Domain, type Ref } from './classes' +import type { Asset, IntlString } from '@hcengineering/platform' +import type { Attribute, Doc, Domain, Ref } from './classes' /** * @public diff --git a/foundations/core/packages/core/src/storage.ts b/foundations/core/packages/core/src/storage.ts index 95d9aaaff1..9b444f3c69 100644 --- a/foundations/core/packages/core/src/storage.ts +++ b/foundations/core/packages/core/src/storage.ts @@ -22,17 +22,17 @@ import { VersionableDoc } from './versioning' export type ArraySizeSelector = | { - $gt: number - } + $gt: number + } | { - $lt: number - } + $lt: number + } | { - $gte: number - } + $gte: number + } | { - $lte: number - } + $lte: number + } /** * @public @@ -272,7 +272,7 @@ export interface DomainResult { /** * @public */ -// eslint-disable-next-line @typescript-eslint/no-empty-interface + export interface TxResult {} /** @@ -312,8 +312,8 @@ export interface SearchResultDoc { emojiIcon?: string score?: number doc: Pick & - Partial> & - Partial> + Partial> & + Partial> } /** @@ -344,7 +344,7 @@ export interface FulltextStorage { searchFulltext: (query: SearchQuery, options: SearchOptions) => Promise } -export function shouldShowArchived ( +export function shouldShowArchived( query: DocumentQuery, options: FindOptions | undefined ): boolean { diff --git a/foundations/core/packages/core/src/time.ts b/foundations/core/packages/core/src/time.ts index 52569d8eca..625b7954c3 100644 --- a/foundations/core/packages/core/src/time.ts +++ b/foundations/core/packages/core/src/time.ts @@ -12,14 +12,14 @@ // See the License for the specific language governing permissions and // limitations under the License. // -import { type Timestamp } from './classes' +import type { Timestamp } from './classes' -export function getDay (time: Timestamp): Timestamp { +export function getDay(time: Timestamp): Timestamp { const date: Date = new Date(time) return convertToDay(date).getTime() } -export function convertToDay (date: Date): Date { +export function convertToDay(date: Date): Date { const originalDay: number = date.getDate() const convertedDate: Date = new Date(date) // Set 12 AM UTC time, since it will be the same day in most timezones @@ -30,13 +30,13 @@ export function convertToDay (date: Date): Date { return convertedDate } -export function getHour (time: Timestamp): Timestamp { +export function getHour(time: Timestamp): Timestamp { const date: Date = new Date(time) date.setMinutes(0, 0, 0) return date.getTime() } -export function getDisplayTime (time: number): string { +export function getDisplayTime(time: number): string { let options: Intl.DateTimeFormatOptions = { hour: 'numeric', minute: 'numeric' } if (!isToday(time)) { options = { @@ -49,15 +49,15 @@ export function getDisplayTime (time: number): string { return new Date(time).toLocaleString('default', options) } -export function isOtherDay (time1: Timestamp, time2: Timestamp): boolean { +export function isOtherDay(time1: Timestamp, time2: Timestamp): boolean { return getDay(time1) !== getDay(time2) } -export function isOtherHour (time1: Timestamp, time2: Timestamp): boolean { +export function isOtherHour(time1: Timestamp, time2: Timestamp): boolean { return getHour(time1) !== getHour(time2) } -function isToday (time: number): boolean { +function isToday(time: number): boolean { const current = new Date() const target = new Date(time) return ( diff --git a/foundations/core/packages/core/src/tx.ts b/foundations/core/packages/core/src/tx.ts index 493c29b360..ae3e5688df 100644 --- a/foundations/core/packages/core/src/tx.ts +++ b/foundations/core/packages/core/src/tx.ts @@ -149,15 +149,15 @@ export interface TxApplyResult { * @public */ export type MixinData = Omit & -PushOptions> & -IncOptions> + PushOptions> & + IncOptions> /** * @public */ export type MixinUpdate = Partial> & -PushOptions> & -IncOptions> + PushOptions> & + IncOptions> /** * Define Create/Update for mixin attributes. @@ -284,11 +284,11 @@ export interface SpaceUpdate { * @public */ export type DocumentUpdate = Partial> & -PushOptions & -SetEmbeddedOptions & -IncOptions & -UnsetOptions & -SpaceUpdate + PushOptions & + SetEmbeddedOptions & + IncOptions & + UnsetOptions & + SpaceUpdate /** * @public @@ -319,7 +319,7 @@ export interface WithTx { * @public */ export abstract class TxProcessor implements WithTx { - async tx (...txes: Tx[]): Promise { + async tx(...txes: Tx[]): Promise { const result: TxResult[] = [] for (const tx of txes) { switch (tx._class) { @@ -426,7 +426,7 @@ export abstract class TxProcessor implements WithTx { return doc as D } - static isExtendsCUD (_class: Ref>): boolean { + static isExtendsCUD(_class: Ref>): boolean { return ( _class === core.class.TxCreateDoc || _class === core.class.TxUpdateDoc || @@ -445,7 +445,7 @@ export abstract class TxProcessor implements WithTx { if (op.startsWith('$')) { const opValue = (ops as any)[op] for (const key in opValue) { - if (key === attribute || key.startsWith(attribute + '.')) { + if (key === attribute || key.startsWith(`${attribute}.`)) { return true } } @@ -454,10 +454,10 @@ export abstract class TxProcessor implements WithTx { return false } - protected abstract txCreateDoc (tx: TxCreateDoc): Promise - protected abstract txUpdateDoc (tx: TxUpdateDoc): Promise - protected abstract txRemoveDoc (tx: TxRemoveDoc): Promise - protected abstract txMixin (tx: TxMixin): Promise + protected abstract txCreateDoc(tx: TxCreateDoc): Promise + protected abstract txUpdateDoc(tx: TxUpdateDoc): Promise + protected abstract txRemoveDoc(tx: TxRemoveDoc): Promise + protected abstract txMixin(tx: TxMixin): Promise } /** @@ -465,9 +465,9 @@ export abstract class TxProcessor implements WithTx { */ export class TxFactory { private readonly txSpace: Ref - constructor ( + constructor( readonly account: PersonId, - readonly isDerived: boolean = false + readonly isDerived = false ) { this.txSpace = isDerived ? core.space.DerivedTx : core.space.Tx } @@ -578,14 +578,14 @@ export class TxFactory { } } - createTxApplyIf ( + createTxApplyIf( space: Ref, scope: string | undefined, match: DocumentClassQuery[], notMatch: DocumentClassQuery[], txes: TxCUD[], measureName: string | undefined, - notify: boolean = true, + notify = true, extraNotify: Ref>[] = [], modifiedOn?: Timestamp, modifiedBy?: PersonId diff --git a/foundations/core/packages/core/src/utils.ts b/foundations/core/packages/core/src/utils.ts index 568c34a415..d03cbfd4b2 100644 --- a/foundations/core/packages/core/src/utils.ts +++ b/foundations/core/packages/core/src/utils.ts @@ -48,14 +48,14 @@ import { type WorkspaceMode } from './classes' import core from './component' -import { type Hierarchy } from './hierarchy' -import { type TxOperations } from './operations' +import type { Hierarchy } from './hierarchy' +import type { TxOperations } from './operations' import { isPredicate } from './predicate' -import { type Branding, type BrandingMap } from './server' -import { type DocumentQuery, type FindResult } from './storage' +import type { Branding, BrandingMap } from './server' +import type { DocumentQuery, FindResult } from './storage' import { DOMAIN_TX, type Tx, type TxCreateDoc, type TxCUD, TxProcessor, type TxUpdateDoc } from './tx' -function toHex (value: number, chars: number): string { +function toHex(value: number, chars: number): string { const result = value.toString(16) if (result.length < chars) { return '0'.repeat(chars - result.length) + result @@ -66,12 +66,12 @@ function toHex (value: number, chars: number): string { let counter = (Math.random() * (1 << 24)) | 0 const random = toHex((Math.random() * (1 << 24)) | 0, 6) + toHex((Math.random() * (1 << 16)) | 0, 4) -function timestamp (): string { +function timestamp(): string { const time = (Date.now() / 1000) | 0 return toHex(time, 8) } -function count (): string { +function count(): string { const val = counter++ & 0xffffff return toHex(val, 6) } @@ -80,17 +80,17 @@ function count (): string { * @public * @returns */ -export function generateId (join: string = ''): Ref { +export function generateId(join = ''): Ref { return (timestamp() + join + random + join + count()) as Ref } -export function generateUuid (): string { +export function generateUuid(): string { // Consider own implementation if it will be slow return crypto.randomUUID() } /** @public */ -export function isId (value: any): value is Ref { +export function isId(value: any): value is Ref { return typeof value === 'string' && /^[0-9a-f]{24,24}$/.test(value) } @@ -100,7 +100,7 @@ let currentAccount: Account * @public * @returns */ -export function getCurrentAccount (): Account { +export function getCurrentAccount(): Account { return currentAccount } @@ -108,20 +108,20 @@ export function getCurrentAccount (): Account { * @public * @param account - */ -export function setCurrentAccount (account: Account): void { +export function setCurrentAccount(account: Account): void { currentAccount = account } /** * @public */ -export function escapeLikeForRegexp (value: string): string { +export function escapeLikeForRegexp(value: string): string { return value.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&') } /** * @public */ -export function toFindResult (docs: T[], total?: number, lookupMap?: Record): FindResult { +export function toFindResult(docs: T[], total?: number, lookupMap?: Record): FindResult { const length = total ?? docs.length if (Object.keys(lookupMap ?? {}).length === 0) { lookupMap = undefined @@ -140,7 +140,7 @@ export interface WorkspaceIds { /** * @public */ -export function isWorkspaceCreating (mode?: WorkspaceMode): boolean { +export function isWorkspaceCreating(mode?: WorkspaceMode): boolean { if (mode === undefined) { return false } @@ -151,14 +151,14 @@ export function isWorkspaceCreating (mode?: WorkspaceMode): boolean { /** * @public */ -export function docKey (name: string, _class?: Ref>): string { +export function docKey(name: string, _class?: Ref>): string { return _class === undefined || _class !== core.class.Doc ? name : `${_class}%${name}` } /** * @public */ -export function isFullTextAttribute (attr: AnyAttribute): boolean { +export function isFullTextAttribute(attr: AnyAttribute): boolean { return ( attr.index === IndexKind.FullText || attr.type._class === core.class.TypeBlob || @@ -170,7 +170,7 @@ export function isFullTextAttribute (attr: AnyAttribute): boolean { /** * @public */ -export function isIndexedAttribute (attr: AnyAttribute): boolean { +export function isIndexedAttribute(attr: AnyAttribute): boolean { return attr.index === IndexKind.Indexed || attr.index === IndexKind.IndexedDsc } @@ -182,14 +182,14 @@ export interface IdMap extends Map, T> {} /** * @public */ -export function toIdMap (arr: T[]): IdMap { +export function toIdMap(arr: T[]): IdMap { return new Map(arr.map((p) => [p._id, p])) } /** * @public */ -export function concatLink (host: string, path: string): string { +export function concatLink(host: string, path: string): string { if (!host.endsWith('/') && !path.startsWith('/')) { return `${host}/${path}` } else if (host.endsWith('/') && path.startsWith('/')) { @@ -203,7 +203,7 @@ export function concatLink (host: string, path: string): string { /** * @public */ -export function fillDefaults ( +export function fillDefaults( hierarchy: Hierarchy, object: DocData | T, _class: Ref> @@ -225,7 +225,7 @@ export function fillDefaults ( * @public */ export class AggregateValueData { - constructor ( + constructor( readonly name: string, readonly _id: Ref, readonly space: Ref, @@ -233,7 +233,7 @@ export class AggregateValueData { readonly category?: Ref ) {} - getRank (): string { + getRank(): string { return this.rank ?? '' } } @@ -242,7 +242,7 @@ export class AggregateValueData { * @public */ export class AggregateValue { - constructor ( + constructor( readonly name: string | undefined, readonly values: AggregateValueData[] ) {} @@ -266,23 +266,23 @@ export interface IDocManager { export class DocManager implements IDocManager { protected readonly byId: IdMap - constructor (protected readonly docs: T[]) { + constructor(protected readonly docs: T[]) { this.byId = toIdMap(docs) } - get (ref: Ref): T | undefined { + get(ref: Ref): T | undefined { return this.byId.get(ref) } - getDocs (): T[] { + getDocs(): T[] { return this.docs } - getIdMap (): IdMap { + getIdMap(): IdMap { return this.byId } - filter (predicate: (value: T) => boolean): T[] { + filter(predicate: (value: T) => boolean): T[] { return this.docs.filter(predicate) } } @@ -292,14 +292,14 @@ export class DocManager implements IDocManager { */ export class RateLimiter { - idCounter: number = 0 + idCounter = 0 processingQueue = new Map>() - last: number = 0 + last = 0 rate: number queue: (() => Promise)[] = [] - constructor (rate: number) { + constructor(rate: number) { this.rate = rate } @@ -344,7 +344,7 @@ export class RateLimiter { }) } - async waitProcessing (): Promise { + async waitProcessing(): Promise { while (this.processingQueue.size > 0) { await new Promise((resolve) => { this.notify.push(resolve) @@ -353,7 +353,7 @@ export class RateLimiter { } } -export function mergeQueries (query1: DocumentQuery, query2: DocumentQuery): DocumentQuery { +export function mergeQueries(query1: DocumentQuery, query2: DocumentQuery): DocumentQuery { const keys1 = Object.keys(query1) const keys2 = Object.keys(query2) @@ -379,7 +379,7 @@ export function mergeQueries (query1: DocumentQuery, query2: D return query } -function mergeField (field1: any, field2: any): any | undefined { +function mergeField(field1: any, field2: any): any | undefined { // this is a special predicate that causes query never return any docs // it is used in cases when queries intersection is empty const never = { $in: [] } @@ -447,7 +447,7 @@ function mergeField (field1: any, field2: any): any | undefined { } } -function mergePredicateWithPredicate (predicate: string, val1: any, val2: any): any | undefined { +function mergePredicateWithPredicate(predicate: string, val1: any, val2: any): any | undefined { if (val1 === undefined) return val2 if (val2 === undefined) return val1 @@ -468,7 +468,7 @@ function mergePredicateWithPredicate (predicate: string, val1: any, val2: any): return val1 } -function mergePredicateWithValue (predicate: string, val1: any, val2: any): any | undefined { +function mergePredicateWithValue(predicate: string, val1: any, val2: any): any | undefined { switch (predicate) { case '$in': return Array.isArray(val1) && val1.includes(val2) ? val2 : undefined @@ -492,7 +492,7 @@ function mergePredicateWithValue (predicate: string, val1: any, val2: any): any return val2 } -function getInNiN (query1: any, query2: any): any { +function getInNiN(query1: any, query2: any): any { const aIn = typeof query1 === 'object' && '$in' in query1 ? query1.$in : undefined const bIn = typeof query2 === 'object' && '$in' in query2 ? query2.$in : undefined const aNIn = @@ -526,7 +526,7 @@ function getInNiN (query1: any, query2: any): any { return {} } -export function cutObjectArray (obj: any): any { +export function cutObjectArray(obj: any): any { if (obj == null) { return obj } @@ -547,7 +547,7 @@ export function cutObjectArray (obj: any): any { return r } -export function includesAny (arr1: string[] | null | undefined, arr2: string[] | null | undefined): boolean { +export function includesAny(arr1: string[] | null | undefined, arr2: string[] | null | undefined): boolean { if (arr1 == null || arr1.length === 0 || arr2 == null || arr2.length === 0) { return false } @@ -557,11 +557,10 @@ export function includesAny (arr1: string[] | null | undefined, arr2: string[] | export const isEnum = (e: T) => - (token: any): token is T[keyof T] => { - return typeof token === 'string' && Object.values(e as Record).includes(token) - } + (token: any): token is T[keyof T] => + typeof token === 'string' && Object.values(e as Record).includes(token) -export async function checkPermission ( +export async function checkPermission( client: TxOperations, _id: Ref, _space: Ref, @@ -573,7 +572,7 @@ export async function checkPermission ( return await hasPermission(client, _id, _space, space) } -export async function checkForbiddenPermission ( +export async function checkForbiddenPermission( client: TxOperations, _id: Ref, _space: Ref, @@ -585,13 +584,13 @@ export async function checkForbiddenPermission ( return await hasPermission(client, _id, _space, space) } -async function hasPermission ( +async function hasPermission( client: TxOperations, _id: Ref, _space: Ref, space?: TypedSpace ): Promise { - space = space ?? (await client.findOne(core.class.TypedSpace, { _id: _space })) + space ??= await client.findOne(core.class.TypedSpace, { _id: _space }) const type = await client .getModel() .findOne(core.class.SpaceType, { _id: space?.type }, { lookup: { _id: { roles: core.class.Role } } }) @@ -616,17 +615,17 @@ async function hasPermission ( /** * @public */ -export function getRoleAttributeLabel (roleName: string): IntlString { +export function getRoleAttributeLabel(roleName: string): IntlString { return getEmbeddedLabel(`Role: ${roleName.trim()}`) } /** * @public */ -export function getFullTextIndexableAttributes ( +export function getFullTextIndexableAttributes( hierarchy: Hierarchy, clazz: Ref>, - skipDocs: boolean = false + skipDocs = false ): AnyAttribute[] { const allAttributes = hierarchy.getAllAttributes(clazz) const result: AnyAttribute[] = [] @@ -659,7 +658,7 @@ const ctxKey = 'indexer_ftc' /** * @public */ -export function getFullTextContext ( +export function getFullTextContext( hierarchy: Hierarchy, objectClass: Ref>, contexts: Map>, FullTextSearchContext> @@ -690,7 +689,7 @@ export function getFullTextContext ( /** * @public */ -export function isClassIndexable ( +export function isClassIndexable( hierarchy: Hierarchy, c: Ref>, contexts: Map>, FullTextSearchContext> @@ -762,7 +761,7 @@ interface NextCall { * * This method can be used inside Svelte components to collapse complex update logic and handle interactions. */ -export function reduceCalls) => Promise> ( +export function reduceCalls) => Promise>( operation: T ): (...args: ReduceParameters) => Promise { let nextCall: NextCall | undefined @@ -793,12 +792,12 @@ export function reduceCalls) => Promise< } } -export function isOwnerOrMaintainer (): boolean { +export function isOwnerOrMaintainer(): boolean { const account = getCurrentAccount() return hasAccountRole(account, AccountRole.Maintainer) } -export function hasAccountRole (acc: Account, targerRole: AccountRole): boolean { +export function hasAccountRole(acc: Account, targerRole: AccountRole): boolean { return roleOrder[acc.role] >= roleOrder[targerRole] } @@ -808,7 +807,7 @@ export function getBranding (brandings: BrandingMap, key: string | undefined): B return Object.values(brandings).find((branding) => branding.key === key) ?? null } -export function fillConfiguration (systemTx: Tx[], configs: Map, PluginConfiguration>): void { +export function fillConfiguration(systemTx: Tx[], configs: Map, PluginConfiguration>): void { for (const t of systemTx) { if (t._class === core.class.TxCreateDoc) { const ct = t as TxCreateDoc @@ -829,7 +828,7 @@ export function fillConfiguration (systemTx: Tx[], configs: Map, PluginConfiguration>, systemTx: Tx[] @@ -873,22 +872,22 @@ export function pluginFilterTx ( * @public */ export class TimeRateLimiter { - idCounter: number = 0 - active: number = 0 - last: number = 0 + idCounter = 0 + active = 0 + last = 0 rate: number period: number - executions: { time: number, running: boolean }[] = [] + executions: { time: number; running: boolean }[] = [] queue: (() => Promise)[] = [] notify: (() => void)[] = [] - constructor (rate: number, period: number = 1000) { + constructor(rate: number, period = 1000) { this.rate = rate this.period = period } - private cleanupExecutions (): void { + private cleanupExecutions(): void { const now = Date.now() this.executions = this.executions.filter((time) => time.running || now - time.time < this.period) } @@ -921,7 +920,7 @@ export class TimeRateLimiter { } } - async waitProcessing (): Promise { + async waitProcessing(): Promise { while (this.active > 0) { await new Promise((resolve) => { this.notify.push(resolve) @@ -930,7 +929,7 @@ export class TimeRateLimiter { } } -export function combineAttributes ( +export function combineAttributes( attributes: any[], key: string, operator: '$push' | '$pull' | '$unset', @@ -951,11 +950,11 @@ export function combineAttributes ( ).filter((v) => v != null) } -export function buildSocialIdString (key: SocialKey): string { +export function buildSocialIdString(key: SocialKey): string { return `${key.type}:${key.value}` } -export function parseSocialIdString (id: string): SocialKey { +export function parseSocialIdString(id: string): SocialKey { const [type, value] = id.split(':') if (type === undefined || value === undefined) { @@ -969,7 +968,7 @@ export function parseSocialIdString (id: string): SocialKey { return { type: type as SocialIdType, value } } -export function pickPrimarySocialId (socialIds: SocialId[]): SocialId { +export function pickPrimarySocialId(socialIds: SocialId[]): SocialId { const activeSocialIds = socialIds.filter((si) => si.isDeleted !== true) if (activeSocialIds.length === 0) { throw new Error('No active social ids provided') @@ -981,15 +980,15 @@ export function pickPrimarySocialId (socialIds: SocialId[]): SocialId { export const loginSocialTypes = [SocialIdType.EMAIL, SocialIdType.GOOGLE, SocialIdType.GITHUB, SocialIdType.OIDC] -export function notEmpty (id: T | undefined | null): id is T { +export function notEmpty(id: T | undefined | null): id is T { return id !== undefined && id !== null && id !== '' } -export function unique (arr: T[]): T[] { +export function unique(arr: T[]): T[] { return Array.from(new Set(arr)) } -export function uniqueNotEmpty> (arr: Array): T[] { +export function uniqueNotEmpty>(arr: Array): T[] { return unique(arr).filter(notEmpty) } export { platformNow, platformNowDiff } from '@hcengineering/measurements' @@ -1001,12 +1000,12 @@ export interface PermissionsGrant { export type KeysByType = { [k in keyof O]-?: O[k] extends T ? k : never }[keyof O] -export function toRank (str: string | undefined): Rank | undefined { +export function toRank(str: string | undefined): Rank | undefined { if (str === undefined) return if (str.startsWith('0|')) { return str } - return '0|' + str.replaceAll(/[-:_]/g, '').toLowerCase() + return `0|${str.replaceAll(/[-:_]/g, '').toLowerCase()}` } /** diff --git a/foundations/core/packages/hulylake-client/package.json b/foundations/core/packages/hulylake-client/package.json index 2dc08896f9..ef3dc74810 100644 --- a/foundations/core/packages/hulylake-client/package.json +++ b/foundations/core/packages/hulylake-client/package.json @@ -25,22 +25,21 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", "cross-env": "~7.0.3", "esbuild": "^0.25.10", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", "prettier": "^3.6.2", - "ts-jest": "^29.1.1", + "ts-jest": "^29.4.12", "typescript": "^5.9.3", - "eslint-plugin-svelte": "^2.35.1" + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/core/packages/measurements-otlp/package.json b/foundations/core/packages/measurements-otlp/package.json index d37d900bd8..5937657898 100644 --- a/foundations/core/packages/measurements-otlp/package.json +++ b/foundations/core/packages/measurements-otlp/package.json @@ -28,17 +28,16 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/measurements": "workspace:^0.7.19", diff --git a/foundations/core/packages/measurements/package.json b/foundations/core/packages/measurements/package.json index aaea2dc14c..1c4b5580d6 100644 --- a/foundations/core/packages/measurements/package.json +++ b/foundations/core/packages/measurements/package.json @@ -28,17 +28,16 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "repository": { "type": "git", diff --git a/foundations/core/packages/model/package.json b/foundations/core/packages/model/package.json index f457808a7b..55c8eb9388 100644 --- a/foundations/core/packages/model/package.json +++ b/foundations/core/packages/model/package.json @@ -19,21 +19,20 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "@types/toposort": "^2.0.3", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", - "eslint-plugin-svelte": "^2.35.1" + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/core/packages/platform/package.json b/foundations/core/packages/platform/package.json index c0ac391099..7261c1036a 100644 --- a/foundations/core/packages/platform/package.json +++ b/foundations/core/packages/platform/package.json @@ -26,19 +26,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", + "@types/jest": "^30.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", "prettier": "^3.6.2", - "ts-jest": "^29.1.1", + "ts-jest": "^29.4.12", "typescript": "^5.9.3", - "eslint-plugin-svelte": "^2.35.1" + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "intl-messageformat": "^10.7.14" diff --git a/foundations/core/packages/platform/src/__tests__/ident.test.ts b/foundations/core/packages/platform/src/__tests__/ident.test.ts index 784294b313..224c433fd6 100644 --- a/foundations/core/packages/platform/src/__tests__/ident.test.ts +++ b/foundations/core/packages/platform/src/__tests__/ident.test.ts @@ -60,11 +60,11 @@ describe('ident', () => { MyString: 'xxx' as StatusCode } }) - expect(f).toThrowError("'identify' overwrites") + expect(f).toThrow("'identify' overwrites") }) it('should fail to parse id', () => { - expect(() => _parseId('bad id' as Id)).toThrowError('ERROR: platform:status:InvalidId') + expect(() => _parseId('bad id' as Id)).toThrow('ERROR: platform:status:InvalidId') }) it('should parse id', () => { diff --git a/foundations/core/packages/postgres-base/package.json b/foundations/core/packages/postgres-base/package.json index 3283731723..453c6f55e0 100644 --- a/foundations/core/packages/postgres-base/package.json +++ b/foundations/core/packages/postgres-base/package.json @@ -29,18 +29,17 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0" + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "postgres": "^3.4.7" diff --git a/foundations/core/packages/query/package.json b/foundations/core/packages/query/package.json index d5a4317834..df8da739ad 100644 --- a/foundations/core/packages/query/package.json +++ b/foundations/core/packages/query/package.json @@ -25,19 +25,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "eslint-plugin-svelte": "^2.35.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/foundations/core/packages/rank/package.json b/foundations/core/packages/rank/package.json index 284a2182db..dcd1c91840 100644 --- a/foundations/core/packages/rank/package.json +++ b/foundations/core/packages/rank/package.json @@ -25,19 +25,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "typescript": "^5.9.3", - "eslint-plugin-svelte": "^2.35.1" + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/core/packages/retry/package.json b/foundations/core/packages/retry/package.json index e81447e59f..2fa9d273a6 100644 --- a/foundations/core/packages/retry/package.json +++ b/foundations/core/packages/retry/package.json @@ -19,20 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "eslint-plugin-svelte": "^2.35.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "files": [ "lib/**/*", diff --git a/foundations/core/packages/rpc/package.json b/foundations/core/packages/rpc/package.json index c86506d306..edd4c3b339 100644 --- a/foundations/core/packages/rpc/package.json +++ b/foundations/core/packages/rpc/package.json @@ -26,19 +26,18 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "eslint-plugin-svelte": "^2.35.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/core/packages/storage-client/package.json b/foundations/core/packages/storage-client/package.json index 68adde2d16..1e7b9d7299 100644 --- a/foundations/core/packages/storage-client/package.json +++ b/foundations/core/packages/storage-client/package.json @@ -27,19 +27,19 @@ "cross-env": "~7.0.3", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "esbuild": "^0.25.10", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26" diff --git a/foundations/core/packages/storage/package.json b/foundations/core/packages/storage/package.json index e4d9955800..4f37365d34 100644 --- a/foundations/core/packages/storage/package.json +++ b/foundations/core/packages/storage/package.json @@ -19,20 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", - "eslint-plugin-svelte": "^2.35.1" + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/foundations/core/packages/text-core/package.json b/foundations/core/packages/text-core/package.json index 3bbd37fd39..58f29e808b 100644 --- a/foundations/core/packages/text-core/package.json +++ b/foundations/core/packages/text-core/package.json @@ -25,21 +25,20 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "@types/markdown-it": "~13.0.0", "jest-environment-jsdom": "^30.2.0", - "eslint-plugin-svelte": "^2.35.1" + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/core/packages/text-html/package.json b/foundations/core/packages/text-html/package.json index bd54a02794..0ed340aaf5 100644 --- a/foundations/core/packages/text-html/package.json +++ b/foundations/core/packages/text-html/package.json @@ -25,19 +25,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "eslint-plugin-svelte": "^2.35.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/text-core": "workspace:^0.7.19", diff --git a/foundations/core/packages/text-markdown/package.json b/foundations/core/packages/text-markdown/package.json index 7ba6bb6c7c..66c247c162 100644 --- a/foundations/core/packages/text-markdown/package.json +++ b/foundations/core/packages/text-markdown/package.json @@ -25,20 +25,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "@types/markdown-it": "~13.0.0", - "eslint-plugin-svelte": "^2.35.1" + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/text-core": "workspace:^0.7.19", diff --git a/foundations/core/packages/text-ydoc/package.json b/foundations/core/packages/text-ydoc/package.json index e024d2af9d..0b475edc2c 100644 --- a/foundations/core/packages/text-ydoc/package.json +++ b/foundations/core/packages/text-ydoc/package.json @@ -25,22 +25,21 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "jest-environment-jsdom": "^30.2.0", "fast-equals": "^5.2.2", "y-prosemirror": "^1.3.7", - "eslint-plugin-svelte": "^2.35.1" + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/core/packages/text/package.json b/foundations/core/packages/text/package.json index 22b4fb354e..083fbb90c6 100644 --- a/foundations/core/packages/text/package.json +++ b/foundations/core/packages/text/package.json @@ -25,20 +25,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "@types/markdown-it": "~13.0.0", - "eslint-plugin-svelte": "^2.35.1" + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/core/packages/token/package.json b/foundations/core/packages/token/package.json index d69b35fd82..e6e53c0e70 100644 --- a/foundations/core/packages/token/package.json +++ b/foundations/core/packages/token/package.json @@ -24,21 +24,20 @@ "_phase:validate": "compile validate" }, "devDependencies": { + "eslint-config-love": "^155.0.0", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "eslint-plugin-svelte": "^2.35.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/server/packages/client/package.json b/foundations/server/packages/client/package.json index 8467a90ace..a284deea25 100644 --- a/foundations/server/packages/client/package.json +++ b/foundations/server/packages/client/package.json @@ -19,21 +19,20 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/ws": "^8.18.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", - "eslint-plugin-svelte": "^2.35.1" + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/foundations/server/packages/collaboration/package.json b/foundations/server/packages/collaboration/package.json index d727d0eac8..3e31a81efb 100644 --- a/foundations/server/packages/collaboration/package.json +++ b/foundations/server/packages/collaboration/package.json @@ -20,19 +20,18 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "eslint-plugin-svelte": "^2.35.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/server/packages/core/package.json b/foundations/server/packages/core/package.json index 5003cdaeb3..ab38c2a3a6 100644 --- a/foundations/server/packages/core/package.json +++ b/foundations/server/packages/core/package.json @@ -18,21 +18,20 @@ "_phase:validate": "compile validate" }, "devDependencies": { + "eslint-config-love": "^155.0.0", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "eslint-plugin-svelte": "^2.35.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/foundations/server/packages/core/src/__tests__/performance-benchmark.ts b/foundations/server/packages/core/src/__tests__/performance-benchmark.ts index af0812b0b8..39584c221d 100644 --- a/foundations/server/packages/core/src/__tests__/performance-benchmark.ts +++ b/foundations/server/packages/core/src/__tests__/performance-benchmark.ts @@ -25,7 +25,7 @@ interface PerfResult { time: number } -function benchmark (name: string, obj: any, iterations: number = 1000): PerfResult { +function benchmark(name: string, obj: any, iterations: number = 1000): PerfResult { const start = process.hrtime.bigint() let size = 0 for (let i = 0; i < iterations; i++) { diff --git a/foundations/server/packages/core/src/__tests__/shared-integration.ts b/foundations/server/packages/core/src/__tests__/shared-integration.ts index 777927422c..06be7b682a 100644 --- a/foundations/server/packages/core/src/__tests__/shared-integration.ts +++ b/foundations/server/packages/core/src/__tests__/shared-integration.ts @@ -49,7 +49,7 @@ export interface TestContext { * @param adapterName - Name of the adapter being tested (e.g., 'PostgreSQL', 'MongoDB') * @param getContext - Function that returns the current test context */ -export function runSharedIntegrationTests (adapterName: string, getContext: () => TestContext): void { +export function runSharedIntegrationTests(adapterName: string, getContext: () => TestContext): void { describe(`${adapterName} - Shared Integration Tests`, () => { describe('Basic CRUD Operations', () => { it('should create a document', async () => { @@ -135,14 +135,14 @@ export function runSharedIntegrationTests (adapterName: string, getContext: () = await operations.updateDoc(taskPlugin.class.Task, '' as Ref, taskId, { $push: { arr: 10 } - } as any) + }) let task: any = await client.findOne(taskPlugin.class.Task, { _id: taskId }) expect(task?.arr).toEqual([10]) await operations.updateDoc(taskPlugin.class.Task, '' as Ref, taskId, { $push: { arr: 20 } - } as any) + }) task = await client.findOne(taskPlugin.class.Task, { _id: taskId }) expect(task?.arr).toEqual([10, 20]) @@ -160,7 +160,7 @@ export function runSharedIntegrationTests (adapterName: string, getContext: () = await operations.updateDoc(taskPlugin.class.Task, '' as Ref, taskId, { $pull: { arr: 3 } - } as any) + }) const task: any = await client.findOne(taskPlugin.class.Task, { _id: taskId }) expect(task?.arr).toEqual([1, 2, 4, 5]) diff --git a/foundations/server/packages/core/src/__tests__/utils.test.ts b/foundations/server/packages/core/src/__tests__/utils.test.ts index 93bf6581ec..ce4a5c470e 100644 --- a/foundations/server/packages/core/src/__tests__/utils.test.ts +++ b/foundations/server/packages/core/src/__tests__/utils.test.ts @@ -24,7 +24,7 @@ describe('OneSecondCountersImpl', () => { ;(jest as any).useFakeTimers('modern') }) - function ageTimeouts (ms: number): void { + function ageTimeouts(ms: number): void { const timeouts = (counters as any).counterTimeouts as Map const now = platformNow() for (const [k, v] of timeouts.entries()) { diff --git a/foundations/server/packages/core/src/base.ts b/foundations/server/packages/core/src/base.ts index 36d3faa507..546d81ca0c 100644 --- a/foundations/server/packages/core/src/base.ts +++ b/foundations/server/packages/core/src/base.ts @@ -45,7 +45,7 @@ export const emptyModelResult = Promise.resolve([]) * @public */ export abstract class BaseMiddleware implements Middleware { - protected constructor ( + protected constructor( readonly context: PipelineContext, protected readonly next?: Middleware ) {} @@ -59,7 +59,7 @@ export abstract class BaseMiddleware implements Middleware { return this.provideFindAll(ctx, _class, query, options) } - provideLoadModel ( + provideLoadModel( ctx: MeasureContext, lastModelTx: Timestamp, hash?: string @@ -67,7 +67,7 @@ export abstract class BaseMiddleware implements Middleware { return this.next?.loadModel(ctx, lastModelTx, hash) ?? emptyModelResult } - loadModel ( + loadModel( ctx: MeasureContext, lastModelTx: Timestamp, hash?: string @@ -87,7 +87,7 @@ export abstract class BaseMiddleware implements Middleware { return Promise.resolve(new Map()) } - async close (): Promise {} + async close(): Promise {} groupBy( ctx: MeasureContext, @@ -98,26 +98,26 @@ export abstract class BaseMiddleware implements Middleware { return this.provideGroupBy(ctx, domain, field, query) } - searchFulltext (ctx: MeasureContext, query: SearchQuery, options: SearchOptions): Promise { + searchFulltext(ctx: MeasureContext, query: SearchQuery, options: SearchOptions): Promise { return this.provideSearchFulltext(ctx, query, options) } - handleBroadcast (ctx: MeasureContext): Promise { + handleBroadcast(ctx: MeasureContext): Promise { return this.next?.handleBroadcast(ctx) ?? emptyBroadcastResult } - provideBroadcast (ctx: MeasureContext): Promise { + provideBroadcast(ctx: MeasureContext): Promise { return this.next?.handleBroadcast(ctx) ?? emptyBroadcastResult } - protected provideTx (ctx: MeasureContext, tx: Tx[]): Promise { + protected provideTx(ctx: MeasureContext, tx: Tx[]): Promise { if (this.next !== undefined) { return this.next.tx(ctx, tx) } return emptyTxResult } - tx (ctx: MeasureContext, tx: Tx[]): Promise { + tx(ctx: MeasureContext, tx: Tx[]): Promise { return this.provideTx(ctx, tx) } @@ -133,7 +133,7 @@ export abstract class BaseMiddleware implements Middleware { return emptyFindResult } - protected provideSearchFulltext ( + protected provideSearchFulltext( ctx: MeasureContext, query: SearchQuery, options: SearchOptions @@ -144,11 +144,11 @@ export abstract class BaseMiddleware implements Middleware { return emptySearchResult } - domainRequest (ctx: MeasureContext, domain: OperationDomain, params: DomainParams): Promise { + domainRequest(ctx: MeasureContext, domain: OperationDomain, params: DomainParams): Promise { return this.provideDomainRequest(ctx, domain, params) } - protected async provideDomainRequest ( + protected async provideDomainRequest( ctx: MeasureContext, domain: OperationDomain, params: DomainParams @@ -159,14 +159,14 @@ export abstract class BaseMiddleware implements Middleware { return { domain, value: null } } - provideCloseSession (ctx: MeasureContext, sessionId: string): Promise { + provideCloseSession(ctx: MeasureContext, sessionId: string): Promise { if (this.next !== undefined) { return this.next.closeSession(ctx, sessionId) } return Promise.resolve() } - closeSession (ctx: MeasureContext, sessionId: string): Promise { + closeSession(ctx: MeasureContext, sessionId: string): Promise { return this.provideCloseSession(ctx, sessionId) } } diff --git a/foundations/server/packages/core/src/benchmark/index.ts b/foundations/server/packages/core/src/benchmark/index.ts index 6468b9a80a..7400f4a49a 100644 --- a/foundations/server/packages/core/src/benchmark/index.ts +++ b/foundations/server/packages/core/src/benchmark/index.ts @@ -37,7 +37,7 @@ import core, { import type { DbAdapter } from '../adapter' import { DummyDbAdapter } from '../mem' -function genData (dataSize: number): string { +function genData(dataSize: number): string { let result = '' const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789' const charactersLength = characters.length @@ -91,12 +91,12 @@ class BenchmarkDbAdapter extends DummyDbAdapter { return toFindResult(result as T[]) } - getDomainHash (ctx: MeasureContext, domain: Domain): Promise { + getDomainHash(ctx: MeasureContext, domain: Domain): Promise { // Since benchmark coult not be changed. return Promise.resolve('') } - tx (ctx: MeasureContext, ...tx: Tx[]): Promise { + tx(ctx: MeasureContext, ...tx: Tx[]): Promise { if (benchData === '') { benchData = genData(1024 * 1024) } @@ -123,7 +123,7 @@ class BenchmarkDbAdapter extends DummyDbAdapter { /** * @public */ -export async function createBenchmarkAdapter ( +export async function createBenchmarkAdapter( ctx: MeasureContext, hierarchy: Hierarchy, url: string, diff --git a/foundations/server/packages/core/src/content.ts b/foundations/server/packages/core/src/content.ts index 059a557f89..6ad2cce33d 100644 --- a/foundations/server/packages/core/src/content.ts +++ b/foundations/server/packages/core/src/content.ts @@ -18,18 +18,18 @@ import { type ContentTextAdapterConfiguration } from './configuration' import { type ContentTextAdapter } from './types' class ContentAdapter implements ContentTextAdapter { - constructor ( + constructor( private readonly adapters: Map, private readonly defaultAdapter: ContentTextAdapter ) {} - content (ctx: MeasureContext, workspace: WorkspaceUuid, name: string, type: string, doc: Buffer): Promise { + content(ctx: MeasureContext, workspace: WorkspaceUuid, name: string, type: string, doc: Buffer): Promise { const adapter = this.adapters.get(type) ?? this.defaultAdapter return adapter.content(ctx, workspace, name, type, doc) } } -export async function createContentAdapter ( +export async function createContentAdapter( contentAdapters: Record, defaultContentAdapter: string ): Promise { diff --git a/foundations/server/packages/core/src/dbAdapterManager.ts b/foundations/server/packages/core/src/dbAdapterManager.ts index 1f7b8153e9..67183c18e7 100644 --- a/foundations/server/packages/core/src/dbAdapterManager.ts +++ b/foundations/server/packages/core/src/dbAdapterManager.ts @@ -33,7 +33,7 @@ export class DbAdapterManagerImpl implements DBAdapterManager { domainHelper?: DomainHelper - constructor ( + constructor( private readonly metrics: MeasureContext, readonly conf: DbConfiguration, @@ -42,7 +42,7 @@ export class DbAdapterManagerImpl implements DBAdapterManager { private readonly adapters: Map ) {} - reserveContext (id: string): () => void { + reserveContext(id: string): () => void { const ops: (() => void)[] = [] for (const adapter of this.adapters.values()) { try { @@ -60,16 +60,16 @@ export class DbAdapterManagerImpl implements DBAdapterManager { } } - getDefaultAdapter (): DbAdapter { + getDefaultAdapter(): DbAdapter { return this.defaultAdapter } - async registerHelper (ctx: MeasureContext, helper: DomainHelper): Promise { + async registerHelper(ctx: MeasureContext, helper: DomainHelper): Promise { this.domainHelper = helper await this.initDomains(ctx) } - async initDomains (ctx: MeasureContext): Promise { + async initDomains(ctx: MeasureContext): Promise { const adapterDomains = new Map>() for (const d of this.context.hierarchy.domains()) { // We need to init domain info @@ -121,7 +121,7 @@ export class DbAdapterManagerImpl implements DBAdapterManager { } } - async initAdapters (ctx: MeasureContext): Promise { + async initAdapters(ctx: MeasureContext): Promise { for (const [key, adapter] of this.adapters) { // already initialized if (key !== this.conf.domains[DOMAIN_TX] && adapter.init !== undefined) { @@ -149,7 +149,7 @@ export class DbAdapterManagerImpl implements DBAdapterManager { } } - private async updateInfo (d: Domain, adapterDomains: Map>, info: DomainInfo): Promise { + private async updateInfo(d: Domain, adapterDomains: Map>, info: DomainInfo): Promise { const name = this.conf.domains[d] ?? '#default' const adapter = this.adapters.get(name) ?? this.defaultAdapter if (adapter !== undefined) { @@ -169,7 +169,7 @@ export class DbAdapterManagerImpl implements DBAdapterManager { } } - private getDomainInfo (domain: Domain): DomainInfo { + private getDomainInfo(domain: Domain): DomainInfo { let info = this.domainInfo.get(domain) if (info === undefined) { info = { @@ -181,7 +181,7 @@ export class DbAdapterManagerImpl implements DBAdapterManager { return info } - async close (): Promise { + async close(): Promise { for (const o of this.adapters.values()) { try { await o.close() @@ -191,12 +191,12 @@ export class DbAdapterManagerImpl implements DBAdapterManager { } } - getAdapterName (domain: Domain): string { + getAdapterName(domain: Domain): string { const adapterName = this.conf.domains[domain] return adapterName ?? this.conf.defaultAdapter } - getAdapterByName (name: string): DbAdapter { + getAdapterByName(name: string): DbAdapter { if (name === this.conf.defaultAdapter) { return this.defaultAdapter } @@ -208,7 +208,7 @@ export class DbAdapterManagerImpl implements DBAdapterManager { return adapter } - public getAdapter (domain: Domain, requireExists: boolean): DbAdapter { + public getAdapter(domain: Domain, requireExists: boolean): DbAdapter { const name = this.conf.domains[domain] ?? '#default' const adapter = this.adapters.get(name) ?? this.defaultAdapter if (adapter === undefined) { diff --git a/foundations/server/packages/core/src/domainHelper.ts b/foundations/server/packages/core/src/domainHelper.ts index adedf65d13..78a4caf25e 100644 --- a/foundations/server/packages/core/src/domainHelper.ts +++ b/foundations/server/packages/core/src/domainHelper.ts @@ -16,7 +16,7 @@ import type { DomainHelper, DomainHelperOperations } from './adapter' export class DomainIndexHelperImpl implements DomainHelper { domains = new Map>>() domainConfigurations: DomainIndexConfiguration[] = [] - constructor ( + constructor( readonly ctx: MeasureContext, readonly hierarchy: Hierarchy, readonly model: ModelDb, @@ -80,7 +80,7 @@ export class DomainIndexHelperImpl implements DomainHelper { /** * Check if some indexes need to be created for domain. */ - async checkDomain ( + async checkDomain( ctx: MeasureContext, domain: Domain, documents: number, @@ -100,7 +100,7 @@ export class DomainIndexHelperImpl implements DomainHelper { const allIndexes = (await operations.listIndexes(domain)).filter((it) => it.name !== '_id_') ctx.info('check indexes', { domain, has50Documents, documents }) if (has50Documents) { - async function checkIndex (vv: string | FieldIndexConfig, checkDisabled: boolean): Promise { + async function checkIndex(vv: string | FieldIndexConfig, checkDisabled: boolean): Promise { try { let name: string if (typeof vv === 'string') { diff --git a/foundations/server/packages/core/src/index.ts b/foundations/server/packages/core/src/index.ts index e79fee2d6b..d94ed44006 100644 --- a/foundations/server/packages/core/src/index.ts +++ b/foundations/server/packages/core/src/index.ts @@ -15,10 +15,10 @@ // export type { StorageAdapter } from '@hcengineering/storage' -export * from './adapter' +export type * from './adapter' export * from './base' export * from './benchmark' -export * from './configuration' +export type * from './configuration' export * from './limitter' export * from './mem' export * from './pagination' diff --git a/foundations/server/packages/core/src/mem.ts b/foundations/server/packages/core/src/mem.ts index 511dd92009..8fd54c0e3b 100644 --- a/foundations/server/packages/core/src/mem.ts +++ b/foundations/server/packages/core/src/mem.ts @@ -64,16 +64,16 @@ export class DummyDbAdapter implements DbAdapter { return toFindResult([]) } - rawFind (ctx: MeasureContext, domain: Domain): RawFindIterator { + rawFind(ctx: MeasureContext, domain: Domain): RawFindIterator { return { find: async () => [], close: async () => {} } } - async init (): Promise {} + async init(): Promise {} - helper (): DomainHelperOperations { + helper(): DomainHelperOperations { return { create: async () => {}, exists: async () => true, @@ -85,31 +85,31 @@ export class DummyDbAdapter implements DbAdapter { } } - async createIndexes (domain: Domain, config: Pick, 'indexes'>): Promise {} - async removeOldIndex (domain: Domain, deletePattern: RegExp[], keepPattern: RegExp[]): Promise {} + async createIndexes(domain: Domain, config: Pick, 'indexes'>): Promise {} + async removeOldIndex(domain: Domain, deletePattern: RegExp[], keepPattern: RegExp[]): Promise {} - async tx (ctx: MeasureContext, ...tx: Tx[]): Promise { + async tx(ctx: MeasureContext, ...tx: Tx[]): Promise { return [] } - async close (): Promise {} + async close(): Promise {} - find (ctx: MeasureContext, domain: Domain): StorageIterator { + find(ctx: MeasureContext, domain: Domain): StorageIterator { return { next: async () => [], close: async () => {} } } - async load (ctx: MeasureContext, domain: Domain, docs: Ref[]): Promise { + async load(ctx: MeasureContext, domain: Domain, docs: Ref[]): Promise { return [] } - async upload (ctx: MeasureContext, domain: Domain, docs: Doc[]): Promise {} + async upload(ctx: MeasureContext, domain: Domain, docs: Doc[]): Promise {} - async clean (ctx: MeasureContext, domain: Domain, docs: Ref[]): Promise {} + async clean(ctx: MeasureContext, domain: Domain, docs: Ref[]): Promise {} - getDomainHash (ctx: MeasureContext, domain: Domain): Promise { + getDomainHash(ctx: MeasureContext, domain: Domain): Promise { // Return '' for empty documents content. return Promise.resolve('') } @@ -139,7 +139,7 @@ export class DummyDbAdapter implements DbAdapter { class InMemoryAdapter extends DummyDbAdapter implements DbAdapter { private readonly modeldb: ModelDb - constructor (readonly hierarchy: Hierarchy) { + constructor(readonly hierarchy: Hierarchy) { super() this.modeldb = new ModelDb(hierarchy) } @@ -162,11 +162,11 @@ class InMemoryAdapter extends DummyDbAdapter implements DbAdapter { ) } - load (ctx: MeasureContext, domain: Domain, docs: Ref[]): Promise { + load(ctx: MeasureContext, domain: Domain, docs: Ref[]): Promise { return this.modeldb.findAll(core.class.Doc, { _id: { $in: docs } }) } - tx (ctx: MeasureContext, ...tx: Tx[]): Promise { + tx(ctx: MeasureContext, ...tx: Tx[]): Promise { // Filter transactions with broadcast only flags const ftx = tx.filter((it) => { if (TxProcessor.isExtendsCUD(it._class)) { @@ -190,7 +190,7 @@ class InMemoryAdapter extends DummyDbAdapter implements DbAdapter { /** * @public */ -export async function createInMemoryAdapter ( +export async function createInMemoryAdapter( ctx: MeasureContext, hierarchy: Hierarchy, url: string, diff --git a/foundations/server/packages/core/src/nullAdapter.ts b/foundations/server/packages/core/src/nullAdapter.ts index 9c0d3adb7e..ae45ba1674 100644 --- a/foundations/server/packages/core/src/nullAdapter.ts +++ b/foundations/server/packages/core/src/nullAdapter.ts @@ -20,7 +20,7 @@ import { DummyDbAdapter } from './mem' /** * @public */ -export async function createNullAdapter ( +export async function createNullAdapter( ctx: MeasureContext, hierarchy: Hierarchy, url: string, diff --git a/foundations/server/packages/core/src/pipeline.ts b/foundations/server/packages/core/src/pipeline.ts index 31763f75b1..55ca44bc7e 100644 --- a/foundations/server/packages/core/src/pipeline.ts +++ b/foundations/server/packages/core/src/pipeline.ts @@ -48,7 +48,7 @@ import { /** * @public */ -export async function createPipeline ( +export async function createPipeline( ctx: MeasureContext, constructors: MiddlewareCreator[], context: PipelineContext @@ -61,9 +61,9 @@ class PipelineImpl implements Pipeline { private readonly middlewares: Middleware[] = [] - private constructor (readonly context: PipelineContext) {} + private constructor(readonly context: PipelineContext) {} - static async create ( + static async create( ctx: MeasureContext, constructors: MiddlewareCreator[], context: PipelineContext @@ -76,7 +76,7 @@ class PipelineImpl implements Pipeline { } @withContext('build-chain') - private async buildChain ( + private async buildChain( ctx: MeasureContext, constructors: MiddlewareCreator[], context: PipelineContext @@ -111,7 +111,7 @@ class PipelineImpl implements Pipeline { return this.head?.findAll(ctx, _class, query, options) ?? Promise.resolve(toFindResult([])) } - loadModel (ctx: MeasureContext, lastModelTx: Timestamp, hash?: string): Promise { + loadModel(ctx: MeasureContext, lastModelTx: Timestamp, hash?: string): Promise { return this.head?.loadModel(ctx, lastModelTx, hash) ?? Promise.resolve([]) } @@ -124,15 +124,15 @@ class PipelineImpl implements Pipeline { return this.head?.groupBy(ctx, domain, field, query) ?? Promise.resolve(new Map()) } - searchFulltext (ctx: MeasureContext, query: SearchQuery, options: SearchOptions): Promise { + searchFulltext(ctx: MeasureContext, query: SearchQuery, options: SearchOptions): Promise { return this.head?.searchFulltext(ctx, query, options) ?? Promise.resolve({ docs: [] }) } - tx (ctx: MeasureContext, tx: Tx[]): Promise { + tx(ctx: MeasureContext, tx: Tx[]): Promise { return this.head?.tx(ctx, tx) ?? Promise.resolve({}) } - handleBroadcast (ctx: MeasureContext): Promise { + handleBroadcast(ctx: MeasureContext): Promise { return this.head?.handleBroadcast(ctx) ?? emptyBroadcastResult } @@ -144,11 +144,11 @@ class PipelineImpl implements Pipeline { return this.head?.domainRequest(ctx, domain, params) ?? Promise.resolve({ domain, value: undefined }) } - closeSession (ctx: MeasureContext, sessionId: string): Promise { + closeSession(ctx: MeasureContext, sessionId: string): Promise { return this.head?.closeSession(ctx, sessionId) ?? Promise.resolve() } - async close (): Promise { + async close(): Promise { for (const mw of this.middlewares) { try { await mw.close() diff --git a/foundations/server/packages/core/src/queue/dummyQueue.ts b/foundations/server/packages/core/src/queue/dummyQueue.ts index b4c1d9e9ce..a06bf0592b 100644 --- a/foundations/server/packages/core/src/queue/dummyQueue.ts +++ b/foundations/server/packages/core/src/queue/dummyQueue.ts @@ -5,15 +5,15 @@ import { type ConsumerHandle, type PlatformQueue, type PlatformQueueProducer, ty * A dummy implementation of PlatformQueueProducer for testing and development */ class DummyQueueProducer implements PlatformQueueProducer { - async send (ctx: MeasureContext, id: WorkspaceUuid | string, msgs: T[]): Promise { + async send(ctx: MeasureContext, id: WorkspaceUuid | string, msgs: T[]): Promise { await Promise.resolve() } - async close (): Promise { + async close(): Promise { await Promise.resolve() } - getQueue (): PlatformQueue { + getQueue(): PlatformQueue { return new DummyQueue() } } @@ -26,13 +26,13 @@ export class DummyQueue implements PlatformQueue { return new DummyQueueProducer() } - getClientId (): string { + getClientId(): string { return 'dummy' } - async shutdown (): Promise {} + async shutdown(): Promise {} - async createTopic (topics: string | string[], partitions: number): Promise {} + async createTopic(topics: string | string[], partitions: number): Promise {} createConsumer( ctx: MeasureContext, @@ -40,7 +40,7 @@ export class DummyQueue implements PlatformQueue { groupId: string, onMessage: ( ctx: MeasureContext, - msg: { workspace: WorkspaceUuid, value: T }, + msg: { workspace: WorkspaceUuid; value: T }, queue: { pause: () => void heartbeat: () => Promise @@ -61,16 +61,16 @@ export class DummyQueue implements PlatformQueue { } } - async createTopics (tx: number): Promise { + async createTopics(tx: number): Promise { await Promise.resolve() } - async deleteTopics (topics?: (QueueTopic | string)[]): Promise {} + async deleteTopics(topics?: (QueueTopic | string)[]): Promise {} } /** * Creates a new instance of the dummy queue implementation */ -export function createDummyQueue (): PlatformQueue { +export function createDummyQueue(): PlatformQueue { return new DummyQueue() } diff --git a/foundations/server/packages/core/src/queue/users.ts b/foundations/server/packages/core/src/queue/users.ts index 40c25970f0..0901ed254c 100644 --- a/foundations/server/packages/core/src/queue/users.ts +++ b/foundations/server/packages/core/src/queue/users.ts @@ -17,13 +17,13 @@ export interface QueueUserLogin extends QueueUserMessage { } export const userEvents = { - login: function userLogin (data: Omit): QueueUserLogin { + login: function userLogin(data: Omit): QueueUserLogin { return { type: QueueUserEvent.login, ...data } }, - logout: function userLogout (data: Omit): QueueUserLogin { + logout: function userLogout(data: Omit): QueueUserLogin { return { type: QueueUserEvent.logout, ...data diff --git a/foundations/server/packages/core/src/queue/utils.ts b/foundations/server/packages/core/src/queue/utils.ts index 647d618ffe..8b08433914 100644 --- a/foundations/server/packages/core/src/queue/utils.ts +++ b/foundations/server/packages/core/src/queue/utils.ts @@ -1,5 +1,5 @@ import { type QueueTopic } from './types' -export function getDeadletterTopic (topic: QueueTopic): string { +export function getDeadletterTopic(topic: QueueTopic): string { return `${topic}-d` } diff --git a/foundations/server/packages/core/src/service.ts b/foundations/server/packages/core/src/service.ts index feec6b7506..081501810b 100644 --- a/foundations/server/packages/core/src/service.ts +++ b/foundations/server/packages/core/src/service.ts @@ -18,27 +18,27 @@ import { type MeasureContext } from '@hcengineering/core' import { type ServiceAdapter, type ServiceAdapterConfig, type ServiceAdaptersManager } from './types' export class ServiceAdaptersManagerImpl implements ServiceAdaptersManager { - constructor ( + constructor( private readonly adapters: Map, private readonly context: MeasureContext ) {} - getAdapter (adapterId: string): ServiceAdapter | undefined { + getAdapter(adapterId: string): ServiceAdapter | undefined { return this.adapters.get(adapterId) } - async close (): Promise { + async close(): Promise { for (const adapter of this.adapters.values()) { await adapter.close() } } - metrics (): MeasureContext { + metrics(): MeasureContext { return this.context } } -export async function createServiceAdaptersManager ( +export async function createServiceAdaptersManager( serviceAdapters: Record, context: MeasureContext ): Promise { diff --git a/foundations/server/packages/core/src/stats.ts b/foundations/server/packages/core/src/stats.ts index dfc74531ca..c1bd857c6a 100644 --- a/foundations/server/packages/core/src/stats.ts +++ b/foundations/server/packages/core/src/stats.ts @@ -51,7 +51,7 @@ export interface ServiceStatistics { workspaces?: WorkspaceStatistics[] } -export function getMemoryInfo (): MemoryStatistics { +export function getMemoryInfo(): MemoryStatistics { const memU = process.memoryUsage() return { memoryUsed: Math.round((memU.heapUsed / 1024 / 1024) * 100) / 100, @@ -63,7 +63,7 @@ export function getMemoryInfo (): MemoryStatistics { } } -export function getCPUInfo (): CPUStatistics { +export function getCPUInfo(): CPUStatistics { return { usage: Math.round(os.loadavg()[0] * 100) / 100, cores: os.cpus().length @@ -74,7 +74,7 @@ const METRICS_UPDATE_INTERVAL = 5000 /** * @public */ -export function initStatisticsContext ( +export function initStatisticsContext( serviceName: string, ops?: { logFile?: string diff --git a/foundations/server/packages/core/src/storage.ts b/foundations/server/packages/core/src/storage.ts index 05182ec50f..ced480f7a4 100644 --- a/foundations/server/packages/core/src/storage.ts +++ b/foundations/server/packages/core/src/storage.ts @@ -14,7 +14,7 @@ export * from '@hcengineering/storage' /** * @public */ -export function getBucketId (workspace: WorkspaceUuid): string { +export function getBucketId(workspace: WorkspaceUuid): string { return workspace } @@ -34,21 +34,21 @@ export interface ChunkInfo { * @public */ export class BackupClientOps { - constructor (protected readonly storage: LowLevelStorage) {} + constructor(protected readonly storage: LowLevelStorage) {} idIndex = 0 chunkInfo = new Map() - loadChunk ( + loadChunk( ctx: MeasureContext, domain: Domain, idx?: number ): Promise<{ - idx: number - size?: number - docs: DocInfo[] - finished: boolean - }> { + idx: number + size?: number + docs: DocInfo[] + finished: boolean + }> { return ctx.with('load-chunk', {}, async (ctx) => { idx = idx ?? this.idIndex++ let chunk: ChunkInfo | undefined = this.chunkInfo.get(idx) @@ -89,11 +89,11 @@ export class BackupClientOps { }) } - getDomainHash (ctx: MeasureContext, domain: Domain): Promise { + getDomainHash(ctx: MeasureContext, domain: Domain): Promise { return this.storage.getDomainHash(ctx, domain) } - closeChunk (ctx: MeasureContext, idx: number): Promise { + closeChunk(ctx: MeasureContext, idx: number): Promise { return ctx.with('close-chunk', {}, async () => { const chunk = this.chunkInfo.get(idx) this.chunkInfo.delete(idx) @@ -103,15 +103,15 @@ export class BackupClientOps { }) } - loadDocs (ctx: MeasureContext, domain: Domain, docs: Ref[]): Promise { + loadDocs(ctx: MeasureContext, domain: Domain, docs: Ref[]): Promise { return this.storage.load(ctx, domain, docs) } - upload (ctx: MeasureContext, domain: Domain, docs: Doc[]): Promise { + upload(ctx: MeasureContext, domain: Domain, docs: Doc[]): Promise { return this.storage.upload(ctx, domain, docs) } - clean (ctx: MeasureContext, domain: Domain, docs: Ref[]): Promise { + clean(ctx: MeasureContext, domain: Domain, docs: Ref[]): Promise { return this.storage.clean(ctx, domain, docs) } } diff --git a/foundations/server/packages/core/src/triggers.ts b/foundations/server/packages/core/src/triggers.ts index bba7f9f2a1..ba5dcebda1 100644 --- a/foundations/server/packages/core/src/triggers.ts +++ b/foundations/server/packages/core/src/triggers.ts @@ -40,7 +40,7 @@ import serverCore from './plugin' interface TriggerRecord { query?: DocumentQuery - trigger: { op: TriggerFunc | Promise, resource: Resource, isAsync: boolean } + trigger: { op: TriggerFunc | Promise; resource: Resource; isAsync: boolean } } /** * @public @@ -48,16 +48,16 @@ interface TriggerRecord { export class Triggers { private readonly triggers: TriggerRecord[] = [] - constructor (protected readonly hierarchy: Hierarchy) {} + constructor(protected readonly hierarchy: Hierarchy) {} - init (model: ModelDb): void { + init(model: ModelDb): void { const allTriggers = model.findAllSync(serverCore.class.Trigger, {}) for (const t of allTriggers) { this.addTrigger(t) } } - private addTrigger (t: WithLookup): void { + private addTrigger(t: WithLookup): void { const match = t.txMatch const trigger = t.trigger @@ -70,7 +70,7 @@ export class Triggers { } tresolve = Promise.resolve() - tx (txes: Tx[]): Promise { + tx(txes: Tx[]): Promise { for (const tx of txes) { if (tx._class === core.class.TxCreateDoc) { const createTx = tx as TxCreateDoc @@ -83,7 +83,7 @@ export class Triggers { return this.tresolve } - async applyTrigger ( + async applyTrigger( ctx: MeasureContext, ctrl: Omit, matches: Tx[], @@ -122,7 +122,7 @@ export class Triggers { return result.concat(apply) } - async apply ( + async apply( ctx: MeasureContext, tx: Tx[], ctrl: Omit, @@ -159,7 +159,7 @@ export class Triggers { return result } - private addDerived (q: DocumentQuery, key: string): void { + private addDerived(q: DocumentQuery, key: string): void { if (q[key] === undefined) { return } diff --git a/foundations/server/packages/core/src/types.ts b/foundations/server/packages/core/src/types.ts index 7d8adb1bb1..bc9243c9ac 100644 --- a/foundations/server/packages/core/src/types.ts +++ b/foundations/server/packages/core/src/types.ts @@ -221,7 +221,7 @@ export interface PipelineContext { contextVars: Record broadcastEvent?: (ctx: MeasureContext, tx: Tx[]) => Promise - userStatusMap?: Map, { online: boolean, user: AccountUuid }> + userStatusMap?: Map, { online: boolean; user: AccountUuid }> } /** * @public @@ -287,7 +287,7 @@ export interface TriggerControl { lowLevel: LowLevelStorage modelDb: ModelDb removedMap: Map, Doc> - userStatusMap: Map, { online: boolean, user: AccountUuid }> + userStatusMap: Map, { online: boolean; user: AccountUuid }> domainRequest: (ctx: MeasureContext, domain: OperationDomain, params: DomainParams) => Promise queue?: PlatformQueue @@ -423,7 +423,7 @@ export interface FullTextAdapter { close: () => Promise // If no field is provided, will return existing mapping of all dimms. - initMapping: (ctx: MeasureContext, field?: { key: string, dims: number }) => Promise + initMapping: (ctx: MeasureContext, field?: { key: string; dims: number }) => Promise } /** @@ -546,7 +546,7 @@ export interface StorageConfig { export class NoSuchKeyError extends Error { code: string - constructor ( + constructor( msg: string, readonly cause?: any ) { @@ -574,11 +574,11 @@ export interface ClientSessionCtx { pipeline: Pipeline socialStringsToUsers: Map< - PersonId, - { - accontUuid: AccountUuid - role: AccountRole - } + PersonId, + { + accontUuid: AccountUuid + role: AccountRole + } > requestId: ReqId | undefined sendResponse: (id: ReqId | undefined, msg: any) => Promise @@ -723,7 +723,7 @@ export let LOGGING_ENABLED = true /** * @public */ -export function disableLogging (): void { +export function disableLogging(): void { LOGGING_ENABLED = false } @@ -734,8 +734,8 @@ export interface AddSessionActive { } export type GetWorkspaceResponse = - | { upgrade: true, progress?: number } - | { error: any, terminate?: boolean, specialError?: 'archived' | 'migration' } + | { upgrade: true; progress?: number } + | { error: any; terminate?: boolean; specialError?: 'archived' | 'migration' } export type AddSessionResponse = AddSessionActive | GetWorkspaceResponse @@ -746,7 +746,7 @@ export type SessionHealth = 'healthy' | 'degraded' | 'unhealthy' */ export interface SessionManager { // workspaces: Map - sessions: Map + sessions: Map addSession: ( ctx: MeasureContext, diff --git a/foundations/server/packages/core/src/utils.ts b/foundations/server/packages/core/src/utils.ts index c9586d9149..655bb6466b 100644 --- a/foundations/server/packages/core/src/utils.ts +++ b/foundations/server/packages/core/src/utils.ts @@ -50,7 +50,7 @@ import type { OneSecondCounters, Pipeline } from './types' * Return some estimation for object size * Optimized version that handles circular references and uses more efficient queue processing */ -export function estimateDocSize (_obj: any): number { +export function estimateDocSize(_obj: any): number { let result = 0 const toProcess = [_obj] const visited = new WeakSet() @@ -125,7 +125,7 @@ export function estimateDocSize (_obj: any): number { /** * Calculate hash for object */ -export function updateHashForDoc (hash: Hash, _obj: any): void { +export function updateHashForDoc(hash: Hash, _obj: any): void { const toProcess = [_obj] while (toProcess.length > 0) { const obj = toProcess.shift() @@ -186,7 +186,7 @@ export class SessionDataImpl implements SessionData { _contextCache: Map | undefined _broadcast: SessionData['broadcast'] | undefined - constructor ( + constructor( readonly account: Account, readonly sessionId: string, readonly admin: boolean | undefined, @@ -197,11 +197,11 @@ export class SessionDataImpl implements SessionData { _contextCache: Map | undefined, readonly modelDb: ModelDb, readonly socialStringsToUsers: Map< - PersonId, - { - accontUuid: AccountUuid - role: AccountRole - } + PersonId, + { + accontUuid: AccountUuid + role: AccountRole + } >, readonly service: string, readonly grant?: PermissionsGrant @@ -211,7 +211,7 @@ export class SessionDataImpl implements SessionData { this._broadcast = _broadcast } - get broadcast (): SessionData['broadcast'] { + get broadcast(): SessionData['broadcast'] { if (this._broadcast === undefined) { this._broadcast = { targets: {}, @@ -223,14 +223,14 @@ export class SessionDataImpl implements SessionData { return this._broadcast } - get removedMap (): Map, Doc> { + get removedMap(): Map, Doc> { if (this._removedMap === undefined) { this._removedMap = new Map() } return this._removedMap } - get contextCache (): Map { + get contextCache(): Map { if (this._contextCache === undefined) { this._contextCache = new Map() } @@ -238,7 +238,7 @@ export class SessionDataImpl implements SessionData { } } -export function createBroadcastEvent (classes: Ref>[]): TxWorkspaceEvent { +export function createBroadcastEvent(classes: Ref>[]): TxWorkspaceEvent { return { _class: core.class.TxWorkspaceEvent, _id: generateId(), @@ -253,7 +253,7 @@ export function createBroadcastEvent (classes: Ref>[]): TxWorkspaceEv } } -export function loadBrandingMap (brandingPath?: string): BrandingMap { +export function loadBrandingMap(brandingPath?: string): BrandingMap { let brandings: BrandingMap = {} if (brandingPath !== undefined && brandingPath !== '') { brandings = JSON.parse(fs.readFileSync(brandingPath, 'utf8')) @@ -267,7 +267,7 @@ export function loadBrandingMap (brandingPath?: string): BrandingMap { return brandings } -export function wrapPipeline ( +export function wrapPipeline( ctx: MeasureContext, pipeline: Pipeline, wsIds: WorkspaceIds, @@ -369,24 +369,24 @@ export function wrapPipeline ( } } -export function wrapAdapterToClient (ctx: MeasureContext, storageAdapter: DbAdapter, txes: Tx[]): ClientConnection { +export function wrapAdapterToClient(ctx: MeasureContext, storageAdapter: DbAdapter, txes: Tx[]): ClientConnection { class TestClientConnection implements ClientConnection { isConnected = (): boolean => true handler?: (event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise - set onConnect ( + set onConnect( handler: ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) | undefined ) { this.handler = handler void this.handler?.(ClientConnectEvent.Connected, '', {}) } - get onConnect (): ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) | undefined { + get onConnect(): ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) | undefined { return this.handler } - pushHandler (): void {} + pushHandler(): void {} async findAll( _class: Ref>, @@ -421,44 +421,44 @@ export function wrapAdapterToClient (ctx: MeasureContext, storageAdapter: DbAdap return { domain, value: null as any } } - async tx (tx: Tx): Promise { + async tx(tx: Tx): Promise { return await storageAdapter.tx(ctx, tx) } - async searchFulltext (): Promise { + async searchFulltext(): Promise { return { docs: [] } } - async close (): Promise {} + async close(): Promise {} - async loadChunk (domain: Domain): Promise { + async loadChunk(domain: Domain): Promise { throw new Error('unsupported') } - async getDomainHash (domain: Domain): Promise { + async getDomainHash(domain: Domain): Promise { return await storageAdapter.getDomainHash(ctx, domain) } - async closeChunk (idx: number): Promise {} + async closeChunk(idx: number): Promise {} - async loadDocs (domain: Domain, docs: Ref[]): Promise { + async loadDocs(domain: Domain, docs: Ref[]): Promise { return [] } - async upload (domain: Domain, docs: Doc[]): Promise {} + async upload(domain: Domain, docs: Doc[]): Promise {} - async clean (domain: Domain, docs: Ref[]): Promise {} + async clean(domain: Domain, docs: Ref[]): Promise {} - async loadModel (): Promise { + async loadModel(): Promise { return txes } - async sendForceClose (): Promise {} + async sendForceClose(): Promise {} } return new TestClientConnection() } -export async function calcHashHash (ctx: MeasureContext, domain: Domain, adapter: DbAdapter): Promise { +export async function calcHashHash(ctx: MeasureContext, domain: Domain, adapter: DbAdapter): Promise { const hash = createHash('sha256') const it = adapter.find(ctx, domain) @@ -493,7 +493,7 @@ export class OneSecondCountersImpl implements OneSecondCounters { private readonly counterTimeouts = new Map() ids: number = 0 - add (counter: string, count: number): void { + add(counter: string, count: number): void { this.counters.set(counter, (this.counters.get(counter) ?? 0) + count) } @@ -509,11 +509,11 @@ export class OneSecondCountersImpl implements OneSecondCounters { } } - entries (): MapIterator<[string, number]> { + entries(): MapIterator<[string, number]> { return this.counters.entries() } - check (): void { + check(): void { // Check for timeouts const now = platformNow() for (const [k, [timeout, counter, count, completed]] of [...this.counterTimeouts.entries()]) { diff --git a/foundations/server/packages/datalake/package.json b/foundations/server/packages/datalake/package.json index e77ffade8c..b1227c590a 100644 --- a/foundations/server/packages/datalake/package.json +++ b/foundations/server/packages/datalake/package.json @@ -19,21 +19,20 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "ts-node": "^10.9.2", - "eslint-plugin-svelte": "^2.35.1" + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/server/packages/elastic/package.json b/foundations/server/packages/elastic/package.json index e925d07c42..9ab29a5c7e 100644 --- a/foundations/server/packages/elastic/package.json +++ b/foundations/server/packages/elastic/package.json @@ -39,20 +39,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "ts-node": "^10.9.2", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "eslint-plugin-svelte": "^2.35.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/server/packages/hulylake/package.json b/foundations/server/packages/hulylake/package.json index 95a4013aa2..5415d93ec7 100644 --- a/foundations/server/packages/hulylake/package.json +++ b/foundations/server/packages/hulylake/package.json @@ -19,21 +19,20 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "ts-node": "^10.9.2", - "eslint-plugin-svelte": "^2.35.1" + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/server/packages/kafka/package.json b/foundations/server/packages/kafka/package.json index 368433bd6a..87b710c05d 100644 --- a/foundations/server/packages/kafka/package.json +++ b/foundations/server/packages/kafka/package.json @@ -19,20 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "eslint-plugin-svelte": "^2.35.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/server/packages/middleware/package.json b/foundations/server/packages/middleware/package.json index ff1e1f352b..6f519b6d41 100644 --- a/foundations/server/packages/middleware/package.json +++ b/foundations/server/packages/middleware/package.json @@ -19,20 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", - "eslint-plugin-svelte": "^2.35.1" + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/server/packages/middleware/src/applyTx.ts b/foundations/server/packages/middleware/src/applyTx.ts index a6e9407799..f22bcfe767 100644 --- a/foundations/server/packages/middleware/src/applyTx.ts +++ b/foundations/server/packages/middleware/src/applyTx.ts @@ -30,11 +30,11 @@ import { BaseMiddleware } from '@hcengineering/server-core' export class ApplyTxMiddleware extends BaseMiddleware implements Middleware { scopes = new Map>() - static async create (ctx: MeasureContext, context: PipelineContext, next?: Middleware): Promise { + static async create(ctx: MeasureContext, context: PipelineContext, next?: Middleware): Promise { return new ApplyTxMiddleware(context, next) } - async tx (ctx: MeasureContext, txes: Tx[]): Promise { + async tx(ctx: MeasureContext, txes: Tx[]): Promise { const result: TxResult[] = [] let part: Tx[] = [] @@ -94,14 +94,14 @@ export class ApplyTxMiddleware extends BaseMiddleware implements Middleware { /** * Verify if apply if is possible to apply. */ - async verifyApplyIf ( + async verifyApplyIf( ctx: MeasureContext, applyIf: TxApplyIf ): Promise<{ - onEnd: () => void - passed: boolean - reason?: string - }> { + onEnd: () => void + passed: boolean + reason?: string + }> { if (applyIf.scope == null) { return { passed: true, onEnd: () => {} } } diff --git a/foundations/server/packages/middleware/src/broadcast.ts b/foundations/server/packages/middleware/src/broadcast.ts index 030086dd5d..792a630bae 100644 --- a/foundations/server/packages/middleware/src/broadcast.ts +++ b/foundations/server/packages/middleware/src/broadcast.ts @@ -40,7 +40,7 @@ import { BaseMiddleware, createBroadcastEvent } from '@hcengineering/server-core * @public */ export class BroadcastMiddleware extends BaseMiddleware implements Middleware { - constructor ( + constructor( context: PipelineContext, protected readonly next: Middleware | undefined, readonly broadcast: BroadcastOps @@ -49,11 +49,11 @@ export class BroadcastMiddleware extends BaseMiddleware implements Middleware { context.broadcastEvent = (ctx, tx) => this.doBroadcast(ctx, tx) } - static create (broadcast: BroadcastOps): MiddlewareCreator { + static create(broadcast: BroadcastOps): MiddlewareCreator { return async (ctx, pipelineContext, next) => new BroadcastMiddleware(pipelineContext, next, broadcast) } - async handleBroadcast (ctx: MeasureContext): Promise { + async handleBroadcast(ctx: MeasureContext): Promise { await this.next?.handleBroadcast(ctx) await this.doBroadcast(ctx, ctx.contextData.broadcast.txes, ctx.contextData.broadcast.targets) @@ -63,14 +63,14 @@ export class BroadcastMiddleware extends BaseMiddleware implements Middleware { } } - tx (ctx: MeasureContext, tx: Tx[]): Promise { + tx(ctx: MeasureContext, tx: Tx[]): Promise { // We collect all broadcast information here, so we could send it later ctx.contextData.broadcast.txes.push(...tx) return this.provideTx(ctx, tx) } - async doBroadcast (ctx: MeasureContext, tx: Tx[], targets?: BroadcastTargets): Promise { + async doBroadcast(ctx: MeasureContext, tx: Tx[], targets?: BroadcastTargets): Promise { if (tx.length === 0) { return } @@ -150,7 +150,7 @@ export class BroadcastMiddleware extends BaseMiddleware implements Middleware { await handleSend(ctx, toSendAll, undefined, Array.from(toSendTarget.keys()) as AccountUuid[]) } - private async sendWithPart ( + private async sendWithPart( derived: Tx[], ctx: MeasureContext, target: AccountUuid | undefined, @@ -171,6 +171,6 @@ export class BroadcastMiddleware extends BaseMiddleware implements Middleware { } } -function isExlcude (result: BroadcastResult): result is BroadcastExcludeResult { +function isExlcude(result: BroadcastResult): result is BroadcastExcludeResult { return (result as BroadcastExcludeResult).exclude !== undefined } diff --git a/foundations/server/packages/middleware/src/configuration.ts b/foundations/server/packages/middleware/src/configuration.ts index 1b57d497de..1b323c7cdd 100644 --- a/foundations/server/packages/middleware/src/configuration.ts +++ b/foundations/server/packages/middleware/src/configuration.ts @@ -38,14 +38,14 @@ export const configurationAccountEmail = '#configurator@hc.engineering' export class ConfigurationMiddleware extends BaseMiddleware implements Middleware { private readonly targetDomains = [DOMAIN_CONFIGURATION] - private constructor ( + private constructor( readonly context: PipelineContext, next?: Middleware ) { super(context, next) } - static async create ( + static async create( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -53,7 +53,7 @@ export class ConfigurationMiddleware extends BaseMiddleware implements Middlewar return new ConfigurationMiddleware(context, next) } - tx (ctx: MeasureContext, txes: Tx[]): Promise { + tx(ctx: MeasureContext, txes: Tx[]): Promise { for (const tx of txes) { if (TxProcessor.isExtendsCUD(tx._class)) { const txCUD = tx as TxCUD diff --git a/foundations/server/packages/middleware/src/contextName.ts b/foundations/server/packages/middleware/src/contextName.ts index a13df77fc2..54a31f2e72 100644 --- a/foundations/server/packages/middleware/src/contextName.ts +++ b/foundations/server/packages/middleware/src/contextName.ts @@ -36,11 +36,11 @@ import { BaseMiddleware } from '@hcengineering/server-core' export class ContextNameMiddleware extends BaseMiddleware implements Middleware { scopes = new Map>() - static async create (ctx: MeasureContext, context: PipelineContext, next?: Middleware): Promise { + static async create(ctx: MeasureContext, context: PipelineContext, next?: Middleware): Promise { return new ContextNameMiddleware(context, next) } - domainRequest (ctx: MeasureContext, domain: OperationDomain, params: DomainParams): Promise { + domainRequest(ctx: MeasureContext, domain: OperationDomain, params: DomainParams): Promise { return ctx.with( `${domain}-${Object.keys(params)[0]}`, {}, @@ -51,7 +51,7 @@ export class ContextNameMiddleware extends BaseMiddleware implements Middleware ) } - async tx (ctx: MeasureContext, txes: Tx[]): Promise { + async tx(ctx: MeasureContext, txes: Tx[]): Promise { let measureName: string | undefined const tx = txes.find((it) => it._class === core.class.TxApplyIf) diff --git a/foundations/server/packages/middleware/src/dbAdapter.ts b/foundations/server/packages/middleware/src/dbAdapter.ts index a01ce85a53..b5b38d2283 100644 --- a/foundations/server/packages/middleware/src/dbAdapter.ts +++ b/foundations/server/packages/middleware/src/dbAdapter.ts @@ -28,7 +28,7 @@ import { BaseMiddleware, createServiceAdaptersManager, DbAdapterManagerImpl } fr * @public */ export class DBAdapterMiddleware extends BaseMiddleware implements Middleware { - constructor ( + constructor( context: PipelineContext, next: Middleware | undefined, readonly conf: DbConfiguration @@ -36,7 +36,7 @@ export class DBAdapterMiddleware extends BaseMiddleware implements Middleware { super(context, next) } - static create (conf: DbConfiguration): MiddlewareCreator { + static create(conf: DbConfiguration): MiddlewareCreator { return async (ctx, context, next): Promise => { const middleware = new DBAdapterMiddleware(context, next, conf) await middleware.init(ctx) @@ -45,7 +45,7 @@ export class DBAdapterMiddleware extends BaseMiddleware implements Middleware { } @withContext('dbAdapter-middleware') - async init (ctx: MeasureContext): Promise { + async init(ctx: MeasureContext): Promise { const adapters = new Map() await ctx.with('create-adapters', {}, async (ctx) => { @@ -84,7 +84,7 @@ export class DBAdapterMiddleware extends BaseMiddleware implements Middleware { this.context.adapterManager = adapterManager } - async close (): Promise { + async close(): Promise { await this.context.adapterManager?.close() await this.context.serviceAdapterManager?.close() } diff --git a/foundations/server/packages/middleware/src/dbAdapterHelper.ts b/foundations/server/packages/middleware/src/dbAdapterHelper.ts index f0decce8a4..001f2ffd00 100644 --- a/foundations/server/packages/middleware/src/dbAdapterHelper.ts +++ b/foundations/server/packages/middleware/src/dbAdapterHelper.ts @@ -22,7 +22,7 @@ import { BaseMiddleware, DomainIndexHelperImpl } from '@hcengineering/server-cor */ export class DBAdapterInitMiddleware extends BaseMiddleware implements Middleware { @withContext('db-adapter-init') - static async create ( + static async create( ctx: MeasureContext, context: PipelineContext, next?: Middleware diff --git a/foundations/server/packages/middleware/src/derivedEntry.ts b/foundations/server/packages/middleware/src/derivedEntry.ts index 3c3971b5a6..460004d42b 100644 --- a/foundations/server/packages/middleware/src/derivedEntry.ts +++ b/foundations/server/packages/middleware/src/derivedEntry.ts @@ -22,7 +22,7 @@ import { BaseMiddleware } from '@hcengineering/server-core' * @public */ export class MarkDerivedEntryMiddleware extends BaseMiddleware implements Middleware { - static async create ( + static async create( ctx: MeasureContext, context: PipelineContext, next?: Middleware diff --git a/foundations/server/packages/middleware/src/domainFind.ts b/foundations/server/packages/middleware/src/domainFind.ts index d5b1b996bf..4fb9e90312 100644 --- a/foundations/server/packages/middleware/src/domainFind.ts +++ b/foundations/server/packages/middleware/src/domainFind.ts @@ -36,7 +36,7 @@ import { BaseMiddleware, emptyFindResult, paginateInMemory } from '@hcengineerin export class DomainFindMiddleware extends BaseMiddleware implements Middleware { adapterManager!: DBAdapterManager - static async create (ctx: MeasureContext, context: PipelineContext, next?: Middleware): Promise { + static async create(ctx: MeasureContext, context: PipelineContext, next?: Middleware): Promise { const middleware = new DomainFindMiddleware(context, next) if (context.adapterManager == null) { throw new PlatformError(unknownError('Adapter maneger should be configured')) @@ -45,7 +45,7 @@ export class DomainFindMiddleware extends BaseMiddleware implements Middleware { return middleware } - toPrintableOptions (options?: ServerFindOptions): FindOptions { + toPrintableOptions(options?: ServerFindOptions): FindOptions { const { ctx, allowedSpaces, associations, ...opt } = options ?? {} return opt } diff --git a/foundations/server/packages/middleware/src/domainTx.ts b/foundations/server/packages/middleware/src/domainTx.ts index 9fd60727b3..b92261a209 100644 --- a/foundations/server/packages/middleware/src/domainTx.ts +++ b/foundations/server/packages/middleware/src/domainTx.ts @@ -44,7 +44,7 @@ export class DomainTxMiddleware extends BaseMiddleware implements Middleware { adapterManager!: DBAdapterManager @withContext('domainTx-middleware') - static async create (ctx: MeasureContext, context: PipelineContext, next?: Middleware): Promise { + static async create(ctx: MeasureContext, context: PipelineContext, next?: Middleware): Promise { const middleware = new DomainTxMiddleware(context, next) if (context.adapterManager == null) { throw new PlatformError(unknownError('Domain adapter manager should be specified')) @@ -53,7 +53,7 @@ export class DomainTxMiddleware extends BaseMiddleware implements Middleware { return middleware } - async tx (ctx: MeasureContext, txes: Tx[]): Promise { + async tx(ctx: MeasureContext, txes: Tx[]): Promise { const txToStore: Tx[] = [] for (const tx of txes) { @@ -73,7 +73,7 @@ export class DomainTxMiddleware extends BaseMiddleware implements Middleware { return result } - private async routeTx (ctx: MeasureContext, txes: Tx[]): Promise { + private async routeTx(ctx: MeasureContext, txes: Tx[]): Promise { const result: TxResult[] = [] const adapterGroups = new Map[]>() diff --git a/foundations/server/packages/middleware/src/findSecurity.ts b/foundations/server/packages/middleware/src/findSecurity.ts index e2d1e818bc..91af15f0bf 100644 --- a/foundations/server/packages/middleware/src/findSecurity.ts +++ b/foundations/server/packages/middleware/src/findSecurity.ts @@ -32,11 +32,11 @@ import { * @public */ export class FindSecurityMiddleware extends BaseMiddleware implements Middleware { - private constructor (context: PipelineContext, next?: Middleware) { + private constructor(context: PipelineContext, next?: Middleware) { super(context, next) } - static async create ( + static async create( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined diff --git a/foundations/server/packages/middleware/src/fulltext.ts b/foundations/server/packages/middleware/src/fulltext.ts index 2165f2406b..668c32f07b 100644 --- a/foundations/server/packages/middleware/src/fulltext.ts +++ b/foundations/server/packages/middleware/src/fulltext.ts @@ -43,7 +43,7 @@ export class FullTextMiddleware extends BaseMiddleware implements Middleware { fulltextEndpoint: string contexts = new Map>, FullTextSearchContext>() - constructor ( + constructor( context: PipelineContext, next: Middleware | undefined, fulltextUrl: string, @@ -56,11 +56,11 @@ export class FullTextMiddleware extends BaseMiddleware implements Middleware { this.fulltextEndpoint = fulltextEndpoints[Math.abs(hash % fulltextEndpoints.length)] } - hashWorkspace (dbWorkspaceName: string): number { + hashWorkspace(dbWorkspaceName: string): number { return [...dbWorkspaceName].reduce((hash, c) => (Math.imul(31, hash) + c.charCodeAt(0)) | 0, 0) } - static create (url: string, token: string): MiddlewareCreator { + static create(url: string, token: string): MiddlewareCreator { return async (ctx, context, next): Promise => { const middleware = new FullTextMiddleware(context, next, url, token) await middleware.init(ctx) @@ -68,7 +68,7 @@ export class FullTextMiddleware extends BaseMiddleware implements Middleware { } } - async init (ctx: MeasureContext): Promise { + async init(ctx: MeasureContext): Promise { this.contexts = new Map( this.context.modelDb.findAllSync(core.class.FullTextSearchContext, {}).map((it) => [it.toClass, it]) ) @@ -218,11 +218,11 @@ export class FullTextMiddleware extends BaseMiddleware implements Middleware { let result = resultIds.length > 0 ? await this.provideFindAll( - ctx, - _class, - { _id: { $in: Array.from(new Set(resultIds)) }, ...mainQuery }, - options - ) + ctx, + _class, + { _id: { $in: Array.from(new Set(resultIds)) }, ...mainQuery }, + options + ) : toFindResult([]) // Just assign scores based on idex @@ -251,7 +251,7 @@ export class FullTextMiddleware extends BaseMiddleware implements Middleware { fullTextLimit: number, baseClass: Ref>, ids: Set> - ): Promise<{ docs: IndexedDoc[], indexedDocMap: Map, IndexedDoc> }> { + ): Promise<{ docs: IndexedDoc[]; indexedDocMap: Map, IndexedDoc> }> { const docs = await this.search(classes, findQuery, fullTextLimit) const indexedDocMap = new Map, IndexedDoc>() @@ -283,7 +283,7 @@ export class FullTextMiddleware extends BaseMiddleware implements Middleware { fullTextLimit: number, baseClass: Ref>, ids: Set> - ): Promise<{ childDocs: IndexedDoc[], childIndexedDocMap: Map, IndexedDoc> }> { + ): Promise<{ childDocs: IndexedDoc[]; childIndexedDocMap: Map, IndexedDoc> }> { const childDocs = await this.search(classes, findQuery, fullTextLimit) const childIndexedDocMap = new Map, IndexedDoc>() @@ -304,7 +304,7 @@ export class FullTextMiddleware extends BaseMiddleware implements Middleware { return { childDocs, childIndexedDocMap } } - async searchFulltext (ctx: MeasureContext, query: SearchQuery, options: SearchOptions): Promise { + async searchFulltext(ctx: MeasureContext, query: SearchQuery, options: SearchOptions): Promise { try { return await ctx.with('full-text-search', {}, async (ctx) => { return await ( @@ -333,7 +333,7 @@ export class FullTextMiddleware extends BaseMiddleware implements Middleware { } } - async close (): Promise { + async close(): Promise { try { await fetch(this.fulltextEndpoint + '/api/v1/close', { method: 'PUT', @@ -353,7 +353,7 @@ export class FullTextMiddleware extends BaseMiddleware implements Middleware { } } - getResultIds (ids: Set>, _id: ObjQueryType> | undefined): Set> { + getResultIds(ids: Set>, _id: ObjQueryType> | undefined): Set> { const result = new Set>() if (_id !== undefined) { if (typeof _id === 'string') { diff --git a/foundations/server/packages/middleware/src/guestPermissions.ts b/foundations/server/packages/middleware/src/guestPermissions.ts index 0a910900dc..cde2c2d382 100644 --- a/foundations/server/packages/middleware/src/guestPermissions.ts +++ b/foundations/server/packages/middleware/src/guestPermissions.ts @@ -37,7 +37,7 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle private permissionsCache: GuestPermissionsCache | undefined = undefined private initPromise: Promise | undefined = undefined - static async create ( + static async create( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -45,7 +45,7 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle return new GuestPermissionsMiddleware(context, next) } - private async getPermissionsCache (ctx: MeasureContext): Promise { + private async getPermissionsCache(ctx: MeasureContext): Promise { if (this.permissionsCache !== undefined) return this.permissionsCache if (this.initPromise === undefined) { this.initPromise = this.loadPermissionsCache(ctx) @@ -55,7 +55,7 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle return this.permissionsCache ?? { roleAllowedClasses: new Map() } } - private async loadPermissionsCache (ctx: MeasureContext): Promise { + private async loadPermissionsCache(ctx: MeasureContext): Promise { try { const docs = await this.findAll(ctx, core.class.ModulePermissionGroup, {}, {}) if (docs.length > 0) { @@ -63,9 +63,10 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle const allPermissionIds = new Set>() for (const group of docs as any[]) { if (group.enabled === false) continue - const role = ((group.role as AccountRole | undefined) ?? + const role = + (group.role as AccountRole | undefined) ?? (Array.isArray(group.roles) && group.roles.length > 0 ? (group.roles[0] as AccountRole) : undefined) ?? - AccountRole.Guest) as AccountRole + AccountRole.Guest const permissions = (group.permissions ?? []) as Ref[] const disabled = new Set>((group.disabledPermissions ?? []) as Ref[]) const current = rolePermissions.get(role) ?? new Set>() @@ -78,11 +79,9 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle } const classPermissions = allPermissionIds.size > 0 - ? await this.findAll( - ctx, - core.class.ClassPermission as Ref>, - { _id: { $in: Array.from(allPermissionIds) } } as any - ) + ? await this.findAll(ctx, core.class.ClassPermission, { + _id: { $in: Array.from(allPermissionIds) as Ref[] } + }) : [] const permissionToClass = new Map, Ref>>( classPermissions @@ -109,7 +108,7 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle } } - private invalidateCacheIfNeeded (txes: Tx[]): void { + private invalidateCacheIfNeeded(txes: Tx[]): void { for (const tx of txes) { if (TxProcessor.isExtendsCUD(tx._class)) { const cudTx = tx as TxCUD @@ -121,7 +120,7 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle } } - async tx (ctx: MeasureContext, txes: Tx[]): Promise { + async tx(ctx: MeasureContext, txes: Tx[]): Promise { const account = ctx.contextData.account if (hasAccountRole(account, AccountRole.User)) { if (!hasAccountRole(account, AccountRole.Maintainer)) { @@ -144,7 +143,7 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle return await this.provideTx(ctx, txes) } - private async processTx (ctx: MeasureContext, tx: Tx): Promise { + private async processTx(ctx: MeasureContext, tx: Tx): Promise { const h = this.context.hierarchy if (tx._class === core.class.TxApplyIf) { const applyTx = tx as TxApplyIf @@ -263,7 +262,7 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle * Returns the covered-class ancestor of the objectClass if one exists in the new permissions model, * or undefined if the class is not covered. */ - private getCoveredClass ( + private getCoveredClass( objectClass: Ref>, allowedClasses: Set>> ): Ref> | undefined { @@ -277,14 +276,14 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle return undefined } - private isCreatedByAccount (doc: Doc, account: Account): boolean { + private isCreatedByAccount(doc: Doc, account: Account): boolean { const creator = doc.createdBy if (creator === undefined) return false if (creator === account.primarySocialId) return true return account.socialIds.includes(creator) } - private async isGuestMutationOnOwnDoc (ctx: MeasureContext, tx: TxCUD, account: Account): Promise { + private async isGuestMutationOnOwnDoc(ctx: MeasureContext, tx: TxCUD, account: Account): Promise { if (tx._class !== core.class.TxUpdateDoc && tx._class !== core.class.TxRemoveDoc) return false const docs = await this.findAll(ctx, tx.objectClass, { _id: tx.objectId }, { limit: 1 }) const doc = docs[0] as Doc | undefined @@ -292,7 +291,7 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle return this.isCreatedByAccount(doc, account) } - private async isForbiddenTx (ctx: MeasureContext, tx: TxCUD, account: Account): Promise { + private async isForbiddenTx(ctx: MeasureContext, tx: TxCUD, account: Account): Promise { if (tx._class === core.class.TxMixin) return false // For TxCreateDoc, check the new permission model first for covered types. @@ -319,7 +318,7 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle return true } - private async isForbiddenSpaceTx (ctx: MeasureContext, tx: TxCUD, account: Account): Promise { + private async isForbiddenSpaceTx(ctx: MeasureContext, tx: TxCUD, account: Account): Promise { if (tx._class === core.class.TxRemoveDoc) return true if (tx._class === core.class.TxCreateDoc) { return !(await this.hasMixinAccessLevel(ctx, tx, account)) @@ -338,7 +337,7 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle return false } - private async hasMixinAccessLevel (ctx: MeasureContext, tx: TxCUD, account: Account): Promise { + private async hasMixinAccessLevel(ctx: MeasureContext, tx: TxCUD, account: Account): Promise { const h = this.context.hierarchy const accessLevelMixin = h.classHierarchyMixin(tx.objectClass, core.mixin.TxAccessLevel) if (accessLevelMixin === undefined) return false diff --git a/foundations/server/packages/middleware/src/identifier.ts b/foundations/server/packages/middleware/src/identifier.ts index b72caf4aa2..87e896ebe5 100644 --- a/foundations/server/packages/middleware/src/identifier.ts +++ b/foundations/server/packages/middleware/src/identifier.ts @@ -37,11 +37,11 @@ import { * @public */ export class IdentifierMiddleware extends BaseMiddleware implements Middleware { - private constructor (context: PipelineContext, next?: Middleware) { + private constructor(context: PipelineContext, next?: Middleware) { super(context, next) } - static async create ( + static async create( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -49,7 +49,7 @@ export class IdentifierMiddleware extends BaseMiddleware implements Middleware { return new IdentifierMiddleware(context, next) } - async tx (ctx: MeasureContext, txes: Tx[]): Promise { + async tx(ctx: MeasureContext, txes: Tx[]): Promise { for (const tx of txes) { if (isTargetTx(tx)) { if (tx._class === core.class.TxUpdateDoc) { @@ -62,7 +62,7 @@ export class IdentifierMiddleware extends BaseMiddleware implements Middleware { return await this.provideTx(ctx, txes) } - private async setIdentifiers ( + private async setIdentifiers( ctx: MeasureContext, tx: TxCreateDoc | TxMixin ): Promise { @@ -83,7 +83,7 @@ export class IdentifierMiddleware extends BaseMiddleware implements Middleware { } } - private async setIdentifiersInUpdate (ctx: MeasureContext, tx: TxUpdateDoc): Promise { + private async setIdentifiersInUpdate(ctx: MeasureContext, tx: TxUpdateDoc): Promise { const newClass = (tx.operations as any)._class as Ref> | undefined if (newClass === undefined) { return @@ -109,7 +109,7 @@ export class IdentifierMiddleware extends BaseMiddleware implements Middleware { } } - private async generateIdentifier ( + private async generateIdentifier( ctx: MeasureContext, tx: Tx, type: TypeIdentifier @@ -133,7 +133,7 @@ export class IdentifierMiddleware extends BaseMiddleware implements Middleware { } } -function isTargetTx (tx: Tx): boolean { +function isTargetTx(tx: Tx): boolean { return ( tx._class === core.class.TxCreateDoc || tx._class === core.class.TxMixin || diff --git a/foundations/server/packages/middleware/src/identity.ts b/foundations/server/packages/middleware/src/identity.ts index 5ab04af7d1..d3d6bf5349 100644 --- a/foundations/server/packages/middleware/src/identity.ts +++ b/foundations/server/packages/middleware/src/identity.ts @@ -34,11 +34,11 @@ export const aiBotAccountEmail = 'huly.ai.bot@hc.engineering' * @public */ export class IdentityMiddleware extends BaseMiddleware implements Middleware { - private constructor (context: PipelineContext, next?: Middleware) { + private constructor(context: PipelineContext, next?: Middleware) { super(context, next) } - static async create ( + static async create( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -46,7 +46,7 @@ export class IdentityMiddleware extends BaseMiddleware implements Middleware { return new IdentityMiddleware(context, next) } - tx (ctx: MeasureContext, txes: Tx[]): Promise { + tx(ctx: MeasureContext, txes: Tx[]): Promise { const account = ctx.contextData.account if (account.uuid === systemAccountUuid || account.fullSocialIds.some((it) => it.value === aiBotAccountEmail)) { @@ -55,7 +55,7 @@ export class IdentityMiddleware extends BaseMiddleware implements Middleware { // We pass for system accounts and services. return this.provideTx(ctx, txes) } - function checkTx (tx: Tx): void { + function checkTx(tx: Tx): void { const mxAccount = ctx.contextData.socialStringsToUsers.get(tx.modifiedBy)?.accontUuid if (mxAccount === undefined || mxAccount !== account.uuid) { throw new PlatformError( diff --git a/foundations/server/packages/middleware/src/liveQuery.ts b/foundations/server/packages/middleware/src/liveQuery.ts index 794ff127e6..706bfd5fae 100644 --- a/foundations/server/packages/middleware/src/liveQuery.ts +++ b/foundations/server/packages/middleware/src/liveQuery.ts @@ -34,18 +34,18 @@ import type { Middleware, PipelineContext, ServerFindOptions, TxMiddlewareResult export class LiveQueryMiddleware extends BaseMiddleware implements Middleware { liveQuery: LQ - constructor (metrics: MeasureContext, context: PipelineContext, next?: Middleware) { + constructor(metrics: MeasureContext, context: PipelineContext, next?: Middleware) { super(context, next) this.liveQuery = new LQ(this.newCastClient(context.hierarchy, context.modelDb, metrics)) this.context.liveQuery = this.liveQuery } - private newCastClient (hierarchy: Hierarchy, modelDb: ModelDb, metrics: MeasureContext): Client { + private newCastClient(hierarchy: Hierarchy, modelDb: ModelDb, metrics: MeasureContext): Client { return { - getHierarchy (): Hierarchy { + getHierarchy(): Hierarchy { return hierarchy }, - getModel (): ModelDb { + getModel(): ModelDb { return modelDb }, close: () => Promise.resolve(), @@ -103,12 +103,12 @@ export class LiveQueryMiddleware extends BaseMiddleware implements Middleware { } } - static async create (ctx: MeasureContext, context: PipelineContext, next?: Middleware): Promise { + static async create(ctx: MeasureContext, context: PipelineContext, next?: Middleware): Promise { // we need to init triggers from model first. return new LiveQueryMiddleware(ctx, context, next) } - async tx (ctx: MeasureContext, tx: Tx[]): Promise { + async tx(ctx: MeasureContext, tx: Tx[]): Promise { await this.liveQuery.tx(...tx) return await this.provideTx(ctx, tx) } diff --git a/foundations/server/packages/middleware/src/lookup.ts b/foundations/server/packages/middleware/src/lookup.ts index ebf3aaf096..bb19ec43d3 100644 --- a/foundations/server/packages/middleware/src/lookup.ts +++ b/foundations/server/packages/middleware/src/lookup.ts @@ -33,11 +33,11 @@ import { * @public */ export class LookupMiddleware extends BaseMiddleware implements Middleware { - private constructor (context: PipelineContext, next?: Middleware) { + private constructor(context: PipelineContext, next?: Middleware) { super(context, next) } - static async create ( + static async create( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -57,9 +57,9 @@ export class LookupMiddleware extends BaseMiddleware implements Middleware { if (options?.lookup !== undefined) { const newResult: T[] = [] let counter = 0 - const idClassMap: Record = {} + const idClassMap: Record = {} - function mapDoc (doc: Doc): number { + function mapDoc(doc: Doc): number { const key = doc._class + '@' + doc._id let docRef = idClassMap[key] if (docRef === undefined) { @@ -116,7 +116,7 @@ export class LookupMiddleware extends BaseMiddleware implements Middleware { if (typeof v === 'string' || typeof v === 'number' || typeof v === 'boolean') { if ((_doc as any)[k] === v) { if (!cloned) { - _doc = { ...doc } as any + _doc = { ...doc } cloned = true } // eslint-disable-next-line @typescript-eslint/no-dynamic-delete diff --git a/foundations/server/packages/middleware/src/lowLevel.ts b/foundations/server/packages/middleware/src/lowLevel.ts index 51ac86472b..ccd19bc0bb 100644 --- a/foundations/server/packages/middleware/src/lowLevel.ts +++ b/foundations/server/packages/middleware/src/lowLevel.ts @@ -33,7 +33,7 @@ import { BaseMiddleware } from '@hcengineering/server-core' * @public */ export class LowLevelMiddleware extends BaseMiddleware implements Middleware { - static async create ( + static async create( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -43,19 +43,19 @@ export class LowLevelMiddleware extends BaseMiddleware implements Middleware { } const adapterManager = context.adapterManager context.lowLevelStorage = { - find (ctx: MeasureContext, domain: Domain): StorageIterator { + find(ctx: MeasureContext, domain: Domain): StorageIterator { return adapterManager.getAdapter(domain, false).find(ctx, domain) }, - load (ctx: MeasureContext, domain: Domain, docs: Ref[]): Promise { + load(ctx: MeasureContext, domain: Domain, docs: Ref[]): Promise { return adapterManager.getAdapter(domain, false).load(ctx, domain, docs) }, - upload (ctx: MeasureContext, domain: Domain, docs: Doc[]): Promise { + upload(ctx: MeasureContext, domain: Domain, docs: Doc[]): Promise { return adapterManager.getAdapter(domain, true).upload(ctx, domain, docs) }, - clean (ctx: MeasureContext, domain: Domain, docs: Ref[]): Promise { + clean(ctx: MeasureContext, domain: Domain, docs: Ref[]): Promise { return adapterManager.getAdapter(domain, true).clean(ctx, domain, docs) }, groupBy( @@ -72,10 +72,10 @@ export class LowLevelMiddleware extends BaseMiddleware implements Middleware { rawUpdate(domain: Domain, query: DocumentQuery, operations: DocumentUpdate): Promise { return adapterManager.getAdapter(domain, true).rawUpdate(domain, query, operations) }, - rawDeleteMany (domain, query) { + rawDeleteMany(domain, query) { return adapterManager.getAdapter(domain, true).rawDeleteMany(domain, query) }, - getDomainHash (ctx: MeasureContext, domain: Domain): Promise { + getDomainHash(ctx: MeasureContext, domain: Domain): Promise { return adapterManager.getAdapter(domain, false).getDomainHash(ctx, domain) }, traverse( diff --git a/foundations/server/packages/middleware/src/model.ts b/foundations/server/packages/middleware/src/model.ts index 2388afd385..5b3ca4f12b 100644 --- a/foundations/server/packages/middleware/src/model.ts +++ b/foundations/server/packages/middleware/src/model.ts @@ -52,7 +52,7 @@ export class ModelMiddleware extends BaseMiddleware implements Middleware { lastHash: string = '' lastHashResponse!: Promise - constructor ( + constructor( context: PipelineContext, next: Middleware | undefined, readonly systemTx: Tx[], @@ -62,7 +62,7 @@ export class ModelMiddleware extends BaseMiddleware implements Middleware { } @withContext('modelAdapter-middleware') - static async doCreate ( + static async doCreate( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined, @@ -74,14 +74,14 @@ export class ModelMiddleware extends BaseMiddleware implements Middleware { return middleware } - static create (tx: Tx[], filter?: (h: Hierarchy, model: Tx[]) => Tx[]): MiddlewareCreator { + static create(tx: Tx[], filter?: (h: Hierarchy, model: Tx[]) => Tx[]): MiddlewareCreator { return (ctx, context, next) => { return this.doCreate(ctx, context, next, tx, filter) } } @withContext('get-model') - async getUserTx (ctx: MeasureContext, txAdapter: TxAdapter): Promise { + async getUserTx(ctx: MeasureContext, txAdapter: TxAdapter): Promise { const allUserTxes = await ctx.with('fetch-model', {}, (ctx) => txAdapter.getModel(ctx)) return allUserTxes.filter((it) => !isAccountTx(it as TxCUD)) } @@ -103,7 +103,7 @@ export class ModelMiddleware extends BaseMiddleware implements Middleware { return this.provideFindAll(ctx, _class, query, options) } - async init (ctx: MeasureContext): Promise { + async init(ctx: MeasureContext): Promise { if (this.context.adapterManager == null) { throw new PlatformError(unknownError('Adapter manager should be configured')) } @@ -124,7 +124,7 @@ export class ModelMiddleware extends BaseMiddleware implements Middleware { this.setModel(fmodel) } - private addModelTx (tx: Tx): void { + private addModelTx(tx: Tx): void { const h = crypto.createHash('sha1') h.update(this.lastHash) h.update(JSON.stringify(tx)) @@ -132,12 +132,12 @@ export class ModelMiddleware extends BaseMiddleware implements Middleware { this.setLastHash(hash) } - private setLastHash (hash: string): void { + private setLastHash(hash: string): void { this.lastHash = hash this.context.lastHash = this.lastHash } - private setModel (model: Tx[]): void { + private setModel(model: Tx[]): void { let last = '' model.map((it, index) => { const h = crypto.createHash('sha1') @@ -149,7 +149,7 @@ export class ModelMiddleware extends BaseMiddleware implements Middleware { this.setLastHash(last) } - async loadModel (ctx: MeasureContext, lastModelTx: Timestamp, hash?: string): Promise { + async loadModel(ctx: MeasureContext, lastModelTx: Timestamp, hash?: string): Promise { if (hash !== undefined) { if (hash === this.lastHash) { return { @@ -169,7 +169,7 @@ export class ModelMiddleware extends BaseMiddleware implements Middleware { return this.systemTx.concat(await this.getUserTx(ctx, txAdapter)).filter((it) => it.modifiedOn > lastModelTx) } - tx (ctx: MeasureContext, tx: Tx[]): Promise { + tx(ctx: MeasureContext, tx: Tx[]): Promise { const modelTxes = tx.filter((it) => it.objectSpace === core.space.Model) if (modelTxes.length > 0) { for (const t of modelTxes) { diff --git a/foundations/server/packages/middleware/src/modified.ts b/foundations/server/packages/middleware/src/modified.ts index 15ef0d80b0..e375350ed6 100644 --- a/foundations/server/packages/middleware/src/modified.ts +++ b/foundations/server/packages/middleware/src/modified.ts @@ -30,11 +30,11 @@ import { * @public */ export class ModifiedMiddleware extends BaseMiddleware implements Middleware { - private constructor (context: PipelineContext, next?: Middleware) { + private constructor(context: PipelineContext, next?: Middleware) { super(context, next) } - static async create ( + static async create( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -42,9 +42,9 @@ export class ModifiedMiddleware extends BaseMiddleware implements Middleware { return new ModifiedMiddleware(context, next) } - tx (ctx: MeasureContext, txes: Tx[]): Promise { + tx(ctx: MeasureContext, txes: Tx[]): Promise { const now = Date.now() - function updateTx (tx: Tx): void { + function updateTx(tx: Tx): void { if (tx.modifiedBy !== core.account.System && ctx.contextData.account.uuid !== systemAccountUuid) { tx.modifiedOn = now tx.createdOn = tx.modifiedOn diff --git a/foundations/server/packages/middleware/src/normalizeTx.ts b/foundations/server/packages/middleware/src/normalizeTx.ts index 26d241599c..5c95ba33cb 100644 --- a/foundations/server/packages/middleware/src/normalizeTx.ts +++ b/foundations/server/packages/middleware/src/normalizeTx.ts @@ -52,11 +52,11 @@ type ExplicitTx = WithIdType, Ref> * @public */ export class NormalizeTxMiddleware extends BaseMiddleware implements Middleware { - private constructor (context: PipelineContext, next?: Middleware) { + private constructor(context: PipelineContext, next?: Middleware) { super(context, next) } - static async create ( + static async create( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -64,7 +64,7 @@ export class NormalizeTxMiddleware extends BaseMiddleware implements Middleware return new NormalizeTxMiddleware(context, next) } - tx (ctx: MeasureContext, txes: unknown[]): Promise { + tx(ctx: MeasureContext, txes: unknown[]): Promise { const parsedTxes = [] for (const tx of txes) { const parsedTx = this.parseTx(tx) @@ -76,7 +76,7 @@ export class NormalizeTxMiddleware extends BaseMiddleware implements Middleware return this.provideTx(ctx, parsedTxes) } - private checkMeta (meta: unknown): meta is Record | undefined { + private checkMeta(meta: unknown): meta is Record | undefined { if (meta === undefined) { return true } @@ -91,13 +91,13 @@ export class NormalizeTxMiddleware extends BaseMiddleware implements Middleware return true } - private parseBaseTx (source: unknown): ExplicitTx | undefined { + private parseBaseTx(source: unknown): ExplicitTx | undefined { if (source == null || typeof source !== 'object') { return undefined } const { _class, _id, space, modifiedBy, modifiedOn, createdBy, createdOn, objectSpace, meta } = source as Record< - keyof Tx, - unknown + keyof Tx, + unknown > const isTxValid = typeof _class === 'string' && @@ -121,12 +121,12 @@ export class NormalizeTxMiddleware extends BaseMiddleware implements Middleware createdBy: createdBy as PersonId | undefined, createdOn, objectSpace: objectSpace as Ref, - meta: meta as Record | undefined + meta } return baseTx } - private parseTx (source: unknown): Tx | undefined { + private parseTx(source: unknown): Tx | undefined { const baseTx = this.parseBaseTx(source) if (baseTx === undefined) { return undefined @@ -156,8 +156,8 @@ export class NormalizeTxMiddleware extends BaseMiddleware implements Middleware return domainEvent } else if (baseTx._class === core.class.TxApplyIf) { const { scope, match, notMatch, txes, notify, extraNotify, measureName } = source as Record< - keyof TxApplyIf, - unknown + keyof TxApplyIf, + unknown > const isValid = (scope === undefined || typeof scope === 'string') && @@ -200,10 +200,10 @@ export class NormalizeTxMiddleware extends BaseMiddleware implements Middleware return undefined } - private parseTxCUD (source: unknown, base: ExplicitTx): ExplicitTx> | undefined { + private parseTxCUD(source: unknown, base: ExplicitTx): ExplicitTx> | undefined { const { objectId, objectClass, attachedTo, attachedToClass, collection } = source as Record< - keyof TxCUD, - unknown + keyof TxCUD, + unknown > const isValid = typeof objectId === 'string' && diff --git a/foundations/server/packages/middleware/src/pluginConfig.ts b/foundations/server/packages/middleware/src/pluginConfig.ts index 37981ea234..28e7a2450e 100644 --- a/foundations/server/packages/middleware/src/pluginConfig.ts +++ b/foundations/server/packages/middleware/src/pluginConfig.ts @@ -36,11 +36,11 @@ import { aiBotAccountEmail } from './identity' * @public */ export class PluginConfigurationMiddleware extends BaseMiddleware implements Middleware { - private constructor (context: PipelineContext, next?: Middleware) { + private constructor(context: PipelineContext, next?: Middleware) { super(context, next) } - static async create ( + static async create( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -48,13 +48,13 @@ export class PluginConfigurationMiddleware extends BaseMiddleware implements Mid return new PluginConfigurationMiddleware(context, next) } - tx (ctx: MeasureContext, txes: Tx[]): Promise { + tx(ctx: MeasureContext, txes: Tx[]): Promise { const account = ctx.contextData.account if (account.uuid === systemAccountUuid || account.fullSocialIds.some((it) => it.value === aiBotAccountEmail)) { // We pass for system accounts and services. return this.provideTx(ctx, txes) } - function checkTx (tx: Tx): void { + function checkTx(tx: Tx): void { if (TxProcessor.isExtendsCUD(tx._class)) { const cud = tx as TxCUD if (cud.objectClass === core.class.PluginConfiguration && ctx.contextData.account.role !== AccountRole.Owner) { diff --git a/foundations/server/packages/middleware/src/private.ts b/foundations/server/packages/middleware/src/private.ts index a0489657fd..298fdb5416 100644 --- a/foundations/server/packages/middleware/src/private.ts +++ b/foundations/server/packages/middleware/src/private.ts @@ -47,11 +47,11 @@ export const DOMAIN_PREFERENCE = 'preference' as Domain export class PrivateMiddleware extends BaseMiddleware implements Middleware { private readonly targetDomains = [DOMAIN_PREFERENCE] - private constructor (context: PipelineContext, next?: Middleware) { + private constructor(context: PipelineContext, next?: Middleware) { super(context, next) } - static async create ( + static async create( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -59,7 +59,7 @@ export class PrivateMiddleware extends BaseMiddleware implements Middleware { return new PrivateMiddleware(context, next) } - isTargetDomain (tx: Tx): boolean { + isTargetDomain(tx: Tx): boolean { if (TxProcessor.isExtendsCUD(tx._class)) { const txCUD = tx as TxCUD const domain = this.context.hierarchy.getDomain(txCUD.objectClass) @@ -68,7 +68,7 @@ export class PrivateMiddleware extends BaseMiddleware implements Middleware { return false } - tx (ctx: MeasureContext, txes: Tx[]): Promise { + tx(ctx: MeasureContext, txes: Tx[]): Promise { for (const tx of txes) { if (this.isTargetDomain(tx)) { const account = ctx.contextData.account @@ -143,7 +143,7 @@ export class PrivateMiddleware extends BaseMiddleware implements Middleware { return findResult } - isAvailable (ctx: MeasureContext, doc: Doc): boolean { + isAvailable(ctx: MeasureContext, doc: Doc): boolean { const domain = this.context.hierarchy.getDomain(doc._class) if (!this.targetDomains.includes(domain)) return true const account = ctx.contextData.account diff --git a/foundations/server/packages/middleware/src/queryJoin.ts b/foundations/server/packages/middleware/src/queryJoin.ts index 64df144fc0..66b424fd24 100644 --- a/foundations/server/packages/middleware/src/queryJoin.ts +++ b/foundations/server/packages/middleware/src/queryJoin.ts @@ -67,7 +67,7 @@ export class QueryJoiner { } } - private getQuery (key: string): Query { + private getQuery(key: string): Query { const query = this.queries.get(key) if (query === undefined) { const q: Query = { @@ -85,7 +85,7 @@ export class QueryJoiner { return query } - private removeFromQueue (q: Query): void { + private removeFromQueue(q: Query): void { if (q.callbacks === 0) { this.queries.delete(q.key) } @@ -98,12 +98,12 @@ export class QueryJoiner { export class QueryJoinMiddleware extends BaseMiddleware implements Middleware { private readonly joiner: QueryJoiner - private constructor (context: PipelineContext, next?: Middleware) { + private constructor(context: PipelineContext, next?: Middleware) { super(context, next) this.joiner = new QueryJoiner() } - loadModel ( + loadModel( ctx: MeasureContext, lastModelTx: Timestamp, hash?: string @@ -113,7 +113,7 @@ export class QueryJoinMiddleware extends BaseMiddleware implements Middleware { }) } - static async create ( + static async create( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -149,7 +149,7 @@ export class QueryJoinMiddleware extends BaseMiddleware implements Middleware { }) } - searchFulltext (ctx: MeasureContext, query: SearchQuery, options: SearchOptions): Promise { + searchFulltext(ctx: MeasureContext, query: SearchQuery, options: SearchOptions): Promise { return this.joiner.query(ctx, `searchFulltext-${JSON.stringify(query)}-${JSON.stringify(options)}`, async (ctx) => { return await this.provideSearchFulltext(ctx, query, options) }) diff --git a/foundations/server/packages/middleware/src/queue.ts b/foundations/server/packages/middleware/src/queue.ts index c2741cc6a8..d19c565803 100644 --- a/foundations/server/packages/middleware/src/queue.ts +++ b/foundations/server/packages/middleware/src/queue.ts @@ -27,7 +27,7 @@ import { export class QueueMiddleware extends BaseMiddleware { txProducer: PlatformQueueProducer connected: Promise | undefined - constructor ( + constructor( ctx: MeasureContext, readonly context: PipelineContext, protected readonly next: Middleware | undefined, @@ -37,13 +37,13 @@ export class QueueMiddleware extends BaseMiddleware { this.txProducer = queue.getProducer(ctx, QueueTopic.Tx) } - static create (queue: PlatformQueue): MiddlewareCreator { + static create(queue: PlatformQueue): MiddlewareCreator { return async (ctx, context, next) => { return new QueueMiddleware(ctx, context, next, queue) } } - async handleBroadcast (ctx: MeasureContext): Promise { + async handleBroadcast(ctx: MeasureContext): Promise { if (this.connected !== undefined) { await this.connected this.connected = undefined diff --git a/foundations/server/packages/middleware/src/rank.ts b/foundations/server/packages/middleware/src/rank.ts index 7ca011118e..38b5bf3a55 100644 --- a/foundations/server/packages/middleware/src/rank.ts +++ b/foundations/server/packages/middleware/src/rank.ts @@ -40,11 +40,11 @@ import { export const RANK_AUTO = '' as Rank export class RankMiddleware extends BaseMiddleware implements Middleware { - private constructor (context: PipelineContext, next?: Middleware) { + private constructor(context: PipelineContext, next?: Middleware) { super(context, next) } - static async create ( + static async create( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -52,7 +52,7 @@ export class RankMiddleware extends BaseMiddleware implements Middleware { return new RankMiddleware(context, next) } - async tx (ctx: MeasureContext, txes: Tx[]): Promise { + async tx(ctx: MeasureContext, txes: Tx[]): Promise { for (const tx of txes) { await this.processTx(ctx, tx) } @@ -60,7 +60,7 @@ export class RankMiddleware extends BaseMiddleware implements Middleware { return await this.provideTx(ctx, txes) } - private async processTx (ctx: MeasureContext, tx: Tx): Promise { + private async processTx(ctx: MeasureContext, tx: Tx): Promise { if (tx._class === core.class.TxCreateDoc) { await this.setRank(ctx, tx as TxCreateDoc) } else if (tx._class === core.class.TxApplyIf) { @@ -71,7 +71,7 @@ export class RankMiddleware extends BaseMiddleware implements Middleware { } } - private async setRank (ctx: MeasureContext, tx: TxCreateDoc | TxMixin): Promise { + private async setRank(ctx: MeasureContext, tx: TxCreateDoc | TxMixin): Promise { const attributes = tx._class === core.class.TxCreateDoc ? this.context.hierarchy.getAllAttributes(tx.objectClass) diff --git a/foundations/server/packages/middleware/src/spacePermissions.ts b/foundations/server/packages/middleware/src/spacePermissions.ts index 6acd7f1634..5c43a1d53a 100644 --- a/foundations/server/packages/middleware/src/spacePermissions.ts +++ b/foundations/server/packages/middleware/src/spacePermissions.ts @@ -27,7 +27,6 @@ import core, { type TxCreateDoc, type TxMixin, TxProcessor, - type TxRemoveDoc, type TxUpdateDoc, type TypedSpace, type MeasureContext, @@ -51,7 +50,7 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle private typeBySpace: Record, Ref> = {} wasInit: Promise | boolean = false - static async create ( + static async create( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -59,7 +58,7 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle return new SpacePermissionsMiddleware(context, next) } - private async init (ctx: MeasureContext): Promise { + private async init(ctx: MeasureContext): Promise { if (this.wasInit === true) { return } @@ -82,15 +81,15 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle } } - private getPermissions (): Permission[] { + private getPermissions(): Permission[] { return this.context.modelDb.findAllSync(core.class.Permission, {}) } - private getRoles (spaceTypeId: Ref): Role[] { + private getRoles(spaceTypeId: Ref): Role[] { return this.context.modelDb.findAllSync(core.class.Role, { attachedTo: spaceTypeId }) } - private setPermissions ( + private setPermissions( spaceId: Ref, roles: Role[], assignment: RolesAssignment, @@ -113,7 +112,7 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle } } - private addRestrictedSpace (space: TypedSpace): void { + private addRestrictedSpace(space: TypedSpace): void { this.permissionsBySpace[space._id] = {} const spaceType = this.context.modelDb.findAllSync(core.class.SpaceType, { _id: space.type })[0] @@ -149,13 +148,13 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle this.setPermissions(space._id, this.getRoles(spaceType._id), asMixin, this.getPermissions()) } - private isTypedSpaceClass (_class: Ref>): boolean { + private isTypedSpaceClass(_class: Ref>): boolean { const h = this.context.hierarchy return h.isDerived(_class, core.class.TypedSpace) } - private isTypedSpace (space: Space): space is TypedSpace { + private isTypedSpace(space: Space): space is TypedSpace { return this.isTypedSpaceClass(space._class) } @@ -164,7 +163,7 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle * * Checks if the required permission is present in the space for the given context */ - private checkPermission ( + private checkPermission( ctx: MeasureContext, space: Ref, tx: TxCUD, @@ -231,7 +230,7 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle return true } - private throwForbidden (): void { + private throwForbidden(): void { throw new PlatformError(new Status(Severity.ERROR, platform.status.Forbidden, {})) } @@ -248,7 +247,7 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle // this.throwForbidden() // } - private handleCreate (tx: TxCUD): void { + private handleCreate(tx: TxCUD): void { const createTx = tx as TxCreateDoc if (!this.context.hierarchy.isDerived(createTx.objectClass, core.class.Space)) return if (this.isTypedSpaceClass(createTx.objectClass)) { @@ -261,7 +260,7 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle } } - private handleMixin (tx: TxCUD): void { + private handleMixin(tx: TxCUD): void { if (!this.isTypedSpaceClass(tx.objectClass)) { return } @@ -304,8 +303,8 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle this.setPermissions(spaceId, this.getRoles(spaceType._id), assignment, this.getPermissions()) } - private handleRemove (tx: TxCUD): void { - const removeTx = tx as TxRemoveDoc + private handleRemove(tx: TxCUD): void { + const removeTx = tx if (!this.context.hierarchy.isDerived(removeTx.objectClass, core.class.Space)) return if (removeTx._class !== core.class.TxCreateDoc) return // eslint-disable-next-line @typescript-eslint/no-dynamic-delete @@ -319,15 +318,15 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle this.restrictedSpaces.delete(tx.objectId) } - private isSpaceTxCUD (tx: TxCUD): tx is TxCUD { + private isSpaceTxCUD(tx: TxCUD): tx is TxCUD { return this.context.hierarchy.isDerived(tx.objectClass, core.class.Space) } - private isRoleTxCUD (tx: TxCUD): tx is TxCUD { + private isRoleTxCUD(tx: TxCUD): tx is TxCUD { return this.context.hierarchy.isDerived(tx.objectClass, core.class.Role) } - private handlePermissionsUpdatesFromRoleTx (ctx: MeasureContext, actualTx: TxCUD): void { + private handlePermissionsUpdatesFromRoleTx(ctx: MeasureContext, actualTx: TxCUD): void { if (actualTx._class !== core.class.TxUpdateDoc) { return } @@ -377,7 +376,7 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle } } - private handlePermissionsUpdatesFromTx (ctx: MeasureContext, tx: TxCUD): void { + private handlePermissionsUpdatesFromTx(ctx: MeasureContext, tx: TxCUD): void { if (this.isSpaceTxCUD(tx)) { if (tx._class === core.class.TxCreateDoc) { this.handleCreate(tx) @@ -393,7 +392,7 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle this.handlePermissionsUpdatesFromRoleTx(ctx, tx) } - private handleSpaceUpdate (tx: TxCUD): void { + private handleSpaceUpdate(tx: TxCUD): void { if (!this.isTypedSpaceClass(tx.objectClass)) { return } @@ -408,7 +407,7 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle } } - private processPermissionsUpdatesFromTx (ctx: MeasureContext, tx: Tx): void { + private processPermissionsUpdatesFromTx(ctx: MeasureContext, tx: Tx): void { if (!TxProcessor.isExtendsCUD(tx._class)) { return } @@ -417,7 +416,7 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle this.handlePermissionsUpdatesFromTx(ctx, cudTx) } - async tx (ctx: MeasureContext, txes: Tx[]): Promise { + async tx(ctx: MeasureContext, txes: Tx[]): Promise { await this.init(ctx) for (const tx of txes) { this.checkPermissions(ctx, tx) @@ -430,7 +429,7 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle return res } - protected checkPermissions (ctx: MeasureContext, tx: Tx): void { + protected checkPermissions(ctx: MeasureContext, tx: Tx): void { if (tx._class === core.class.TxApplyIf) { const applyTx = tx as TxApplyIf @@ -451,7 +450,7 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle } } - private checkSpaceTypePermissions (ctx: MeasureContext, cudTx: TxCUD): void { + private checkSpaceTypePermissions(ctx: MeasureContext, cudTx: TxCUD): void { const account = ctx.contextData.account const h = this.context.hierarchy if (account.primarySocialId === core.account.System) return @@ -461,7 +460,7 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle } } - private checkSpacePermissions ( + private checkSpacePermissions( ctx: MeasureContext, cudTx: TxCUD, targetSpaceId: Ref, @@ -478,11 +477,11 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle } } -function isMixinUpdateTx (tx: Tx): boolean { +function isMixinUpdateTx(tx: Tx): boolean { return tx._class === core.class.TxMixin && Object.keys((tx as TxMixin).attributes).length > 0 } -function isTxClassMatched (tx: Tx, permission: Permission): boolean { +function isTxClassMatched(tx: Tx, permission: Permission): boolean { if (permission.txClass === tx._class) return true if (permission.txMatch === undefined && isMixinUpdateTx(tx)) { return permission.txClass === core.class.TxUpdateDoc @@ -490,6 +489,6 @@ function isTxClassMatched (tx: Tx, permission: Permission): boolean { return false } -function getTxObjectClass (tx: TxCUD): Ref> { +function getTxObjectClass(tx: TxCUD): Ref> { return tx._class === core.class.TxMixin ? (tx as TxMixin).mixin : tx.objectClass } diff --git a/foundations/server/packages/middleware/src/spaceSecurity.ts b/foundations/server/packages/middleware/src/spaceSecurity.ts index 4c8bd4223e..7e5f386ac6 100644 --- a/foundations/server/packages/middleware/src/spaceSecurity.ts +++ b/foundations/server/packages/middleware/src/spaceSecurity.ts @@ -45,7 +45,6 @@ import core, { type TxCreateDoc, type TxCUD, TxProcessor, - type TxRemoveDoc, type TxUpdateDoc, type TxWorkspaceEvent, WorkspaceEvent @@ -83,7 +82,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar core.space.Tx ]) - private constructor ( + private constructor( private readonly skipFindCheck: boolean, context: PipelineContext, next?: Middleware @@ -91,7 +90,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar super(context, next) } - static async create ( + static async create( skipFindCheck: boolean, ctx: MeasureContext, context: PipelineContext, @@ -100,17 +99,17 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar return new SpaceSecurityMiddleware(skipFindCheck, context, next) } - private resyncDomains (): void { + private resyncDomains(): void { this.wasInit = false } - private addMemberSpace (member: AccountUuid, space: Ref): void { + private addMemberSpace(member: AccountUuid, space: Ref): void { const arr = this.allowedSpaces[member] ?? [] arr.push(space) this.allowedSpaces[member] = arr } - private addSpace (space: SpaceWithMembers): void { + private addSpace(space: SpaceWithMembers): void { this.spacesMap.set(space._id, space) if (space.private) { this.privateSpaces.add(space._id) @@ -122,7 +121,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } } - async init (ctx: MeasureContext): Promise { + async init(ctx: MeasureContext): Promise { if (this.wasInit === true) { return } @@ -164,7 +163,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } } - private removeMemberSpace (member: AccountUuid, space: Ref): void { + private removeMemberSpace(member: AccountUuid, space: Ref): void { const arr = this.allowedSpaces[member] if (arr !== undefined) { const index = arr.findIndex((p) => p === space) @@ -175,7 +174,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } } - private removeSpace (_id: Ref): void { + private removeSpace(_id: Ref): void { const space = this.spacesMap.get(_id) if (space !== undefined) { for (const member of space.members) { @@ -187,7 +186,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar this.publicSpaces.delete(_id) } - private async handeCollaborator (ctx: MeasureContext, tx: TxCUD): Promise { + private async handeCollaborator(ctx: MeasureContext, tx: TxCUD): Promise { if (!this.context.hierarchy.isDerived(tx.objectClass, core.class.Collaborator)) return if (tx._class === core.class.TxCreateDoc) { const collab = TxProcessor.createDoc2Doc(tx as TxCreateDoc) @@ -201,7 +200,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } } - private handleChangeCollaborator (ctx: MeasureContext, collab: Collaborator): void { + private handleChangeCollaborator(ctx: MeasureContext, collab: Collaborator): void { const collabSec = this.context.modelDb.findAllSync(core.class.ClassCollaborators, { attachedTo: collab.attachedToClass })[0] @@ -217,7 +216,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } } - private handleCreate (tx: TxCUD): void { + private handleCreate(tx: TxCUD): void { const createTx = tx as TxCreateDoc if (!this.context.hierarchy.isDerived(createTx.objectClass, core.class.Space)) return if (createTx.objectClass === core.class.SystemSpace) { @@ -228,7 +227,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } } - private pushMembersHandle ( + private pushMembersHandle( ctx: MeasureContext, addedMembers: AccountUuid | Position, space: Ref @@ -244,7 +243,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } } - private pullMembersHandle ( + private pullMembersHandle( ctx: MeasureContext, removedMembers: Partial | PullArray, space: Ref @@ -263,7 +262,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } } - private syncMembers (ctx: MeasureContext, members: AccountUuid[], space: SpaceWithMembers): void { + private syncMembers(ctx: MeasureContext, members: AccountUuid[], space: SpaceWithMembers): void { const oldMembers = new Set(space.members) const newMembers = new Set(members) const changed: AccountUuid[] = [] @@ -285,7 +284,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } } - private brodcastEvent (ctx: MeasureContext, users: AccountUuid[], space?: Ref): void { + private brodcastEvent(ctx: MeasureContext, users: AccountUuid[], space?: Ref): void { const targets = this.getTargets(users) const tx: TxWorkspaceEvent = { _class: core.class.TxWorkspaceEvent, @@ -308,20 +307,20 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } } - private broadcastNonMembers (ctx: MeasureContext, space: SpaceWithMembers): void { + private broadcastNonMembers(ctx: MeasureContext, space: SpaceWithMembers): void { const members = space?.members ?? [] this.brodcastEvent(ctx, members, space._id) } - private broadcastAll (ctx: MeasureContext, space: SpaceWithMembers): void { + private broadcastAll(ctx: MeasureContext, space: SpaceWithMembers): void { const { socialStringsToUsers } = ctx.contextData const accounts = Array.from(new Set(Array.from(socialStringsToUsers.values()).map((v) => v.accontUuid))) this.brodcastEvent(ctx, accounts, space._id) } - private async handleUpdate (ctx: MeasureContext, tx: TxCUD): Promise { + private async handleUpdate(ctx: MeasureContext, tx: TxCUD): Promise { await this.init(ctx) const updateDoc = tx as TxUpdateDoc @@ -359,14 +358,14 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } } - private handleRemove (tx: TxCUD): void { - const removeTx = tx as TxRemoveDoc + private handleRemove(tx: TxCUD): void { + const removeTx = tx if (!this.context.hierarchy.isDerived(removeTx.objectClass, core.class.Space)) return if (removeTx._class !== core.class.TxRemoveDoc) return this.removeSpace(tx.objectId) } - private async handleTx (ctx: MeasureContext, tx: TxCUD): Promise { + private async handleTx(ctx: MeasureContext, tx: TxCUD): Promise { await this.init(ctx) if (tx._class === core.class.TxCreateDoc) { this.handleCreate(tx) @@ -377,7 +376,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } } - getTargets (accounts: AccountUuid[]): AccountUuid[] { + getTargets(accounts: AccountUuid[]): AccountUuid[] { const res = Array.from(new Set(accounts)) // We need to add system account for targets for integrations to work properly res.push(systemAccountUuid) @@ -385,7 +384,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar return res } - private async processTxSpaceDomain (sctx: MeasureContext, actualTx: TxCUD): Promise { + private async processTxSpaceDomain(sctx: MeasureContext, actualTx: TxCUD): Promise { if (actualTx._class === core.class.TxCreateDoc) { const ctx = actualTx as TxCreateDoc const doc = TxProcessor.createDoc2Doc(ctx) @@ -405,7 +404,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } } - private async processTx (ctx: MeasureContext, tx: Tx): Promise { + private async processTx(ctx: MeasureContext, tx: Tx): Promise { const h = this.context.hierarchy if (TxProcessor.isExtendsCUD(tx._class)) { const cudTx = tx as TxCUD @@ -424,7 +423,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } } - async tx (ctx: MeasureContext, txes: Tx[]): Promise { + async tx(ctx: MeasureContext, txes: Tx[]): Promise { await this.init(ctx) const processed = new Set>() ctx.contextData.contextCache.set('processed', processed) @@ -435,7 +434,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar return await this.provideTx(ctx, txes) } - override async handleBroadcast (ctx: MeasureContext): Promise { + override async handleBroadcast(ctx: MeasureContext): Promise { const processed: Set> = ctx.contextData.contextCache.get('processed') ?? new Set>() ctx.contextData.contextCache.set('processed', processed) for (const txd of ctx.contextData.broadcast.txes) { @@ -525,7 +524,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar await this.next?.handleBroadcast(ctx) } - private getAllAllowedSpaces ( + private getAllAllowedSpaces( account: Account, isData: boolean, showArchived: boolean, @@ -544,7 +543,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar return unfilteredRes.filter((p) => this.spacesMap.get(p)?.archived !== true) } - async getDomainSpaces (ctx: MeasureContext, domain: Domain): Promise>> { + async getDomainSpaces(ctx: MeasureContext, domain: Domain): Promise>> { let domainSpaces = this._domainSpaces.get(domain) if (domainSpaces === undefined) { const p = ( @@ -557,11 +556,11 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar return domainSpaces instanceof Promise ? await domainSpaces : domainSpaces } - private async filterByDomain ( + private async filterByDomain( ctx: MeasureContext, domain: Domain, spaces: Ref[] - ): Promise<{ result: Set>, allDomainSpaces: boolean, domainSpaces: Set> }> { + ): Promise<{ result: Set>; allDomainSpaces: boolean; domainSpaces: Set> }> { const domainSpaces = await this.getDomainSpaces(ctx, domain) const result = new Set(spaces.filter((p) => domainSpaces.has(p))) return { @@ -609,7 +608,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar return query } - private getKey (domain: string): string { + private getKey(domain: string): string { return domain === 'tx' ? 'objectSpace' : domain === 'space' ? '_id' : 'space' } @@ -700,7 +699,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar return findResult } - override async searchFulltext ( + override async searchFulltext( ctx: MeasureContext, query: SearchQuery, options: SearchOptions diff --git a/foundations/server/packages/middleware/src/tests/guestPermissions.test.ts b/foundations/server/packages/middleware/src/tests/guestPermissions.test.ts index 762de8348d..7b90ab54d2 100644 --- a/foundations/server/packages/middleware/src/tests/guestPermissions.test.ts +++ b/foundations/server/packages/middleware/src/tests/guestPermissions.test.ts @@ -52,7 +52,7 @@ const MODULE_PERMISSION_GROUP_CLASS = core.class.ModulePermissionGroup const ALLOWED_SPACE = 'test:space:Allowed' as Ref const FORBIDDEN_SPACE = 'test:space:Forbidden' as Ref -function makeAccount (role: AccountRole): Account { +function makeAccount(role: AccountRole): Account { return { uuid: generateId() as any, role, @@ -62,7 +62,7 @@ function makeAccount (role: AccountRole): Account { } } -function makeCtx (account: Account): MeasureContext { +function makeCtx(account: Account): MeasureContext { const ctx = new MeasureMetricsContext('test', {}) as MeasureContext ctx.contextData = { account, @@ -73,24 +73,24 @@ function makeCtx (account: Account): MeasureContext { type FindAllFn = (ctx: MeasureContext, _class: Ref>, query: object, options?: object) => Promise -function makePipelineContext (findAll?: FindAllFn): PipelineContext { +function makePipelineContext(findAll?: FindAllFn): PipelineContext { const hierarchy = new Hierarchy() const model = { findAllSync: (_class: any, _query: any) => [] } as any return { workspace: { uuid: 'test-workspace' as any, url: 'test', dataId: 'test' as any }, hierarchy, modelDb: model, - branding: null as any, + branding: null, adapterManager: {} as any, storageAdapter: {} as any, contextVars: {}, lastTx: '', lastHash: '', broadcastEvent: async () => {} - } as any + } } -function makeMiddleware ( +function makeMiddleware( findAll: FindAllFn, nextFn?: (ctx: MeasureContext, txes: Tx[]) => Promise ): GuestPermissionsMiddleware { @@ -102,7 +102,7 @@ function makeMiddleware ( return mw } -function makeCreateTx (objectClass: Ref>, objectSpace: Ref): Tx { +function makeCreateTx(objectClass: Ref>, objectSpace: Ref): Tx { const factory = new TxFactory('test:account:System' as PersonId) return factory.createTxCreateDoc(objectClass, objectSpace, {}) } @@ -126,7 +126,7 @@ function makePersonDoc (_id: Ref, personUuid: Account['uuid'], employee: bo } // Helper: buildGuestSettings - simulate the document that loadPermissionsCache would find -function makeGuestSettingsDoc (allowedPermissions: Ref[], disabledPermissions?: Ref[]): Doc { +function makeGuestSettingsDoc(allowedPermissions: Ref[], disabledPermissions?: Ref[]): Doc { return { _id: generateId(), _class: MODULE_PERMISSION_GROUP_CLASS, @@ -486,7 +486,7 @@ describe('GuestPermissionsMiddleware', () => { return [] } - function patchHierarchy (mw: GuestPermissionsMiddleware): void { + function patchHierarchy(mw: GuestPermissionsMiddleware): void { ;(mw as any).context.hierarchy.isDerived = (a: any, b: any) => { if (b === core.class.Space) return false return a === b @@ -648,7 +648,7 @@ describe('GuestPermissionsMiddleware', () => { describe('guest update/remove own documents', () => { const GUEST_SOCIAL = 'test:guest-social' as PersonId - function makeGuestAccountWithSocial (): Account { + function makeGuestAccountWithSocial(): Account { return { uuid: generateId() as any, role: AccountRole.Guest, @@ -658,7 +658,7 @@ describe('GuestPermissionsMiddleware', () => { } } - function patchHierarchyNoTxAccessLevel (mw: GuestPermissionsMiddleware): void { + function patchHierarchyNoTxAccessLevel(mw: GuestPermissionsMiddleware): void { ;(mw as any).context.hierarchy.classHierarchyMixin = () => undefined ;(mw as any).context.hierarchy.isDerived = (a: any, b: any) => { if (b === core.class.Space) return false @@ -678,7 +678,7 @@ describe('GuestPermissionsMiddleware', () => { modifiedOn: Date.now(), modifiedBy: GUEST_SOCIAL, createdBy: GUEST_SOCIAL - } as any + } ] } return [] @@ -707,7 +707,7 @@ describe('GuestPermissionsMiddleware', () => { modifiedOn: Date.now(), modifiedBy: GUEST_SOCIAL, createdBy: GUEST_SOCIAL - } as any + } ] } return [] @@ -737,7 +737,7 @@ describe('GuestPermissionsMiddleware', () => { modifiedOn: Date.now(), modifiedBy: otherSocial, createdBy: otherSocial - } as any + } ] } return [] diff --git a/foundations/server/packages/middleware/src/tests/liveQuery.race.test.ts b/foundations/server/packages/middleware/src/tests/liveQuery.race.test.ts index a6d2c1a15b..b619cfb587 100644 --- a/foundations/server/packages/middleware/src/tests/liveQuery.race.test.ts +++ b/foundations/server/packages/middleware/src/tests/liveQuery.race.test.ts @@ -68,14 +68,14 @@ const testDocClass = 'test:class:TestDoc' as Ref> */ class FindAllCounter { count: number = 0 - queries: Array<{ _class: Ref>, docId: Ref }> = [] + queries: Array<{ _class: Ref>; docId: Ref }> = [] - reset (): void { + reset(): void { this.count = 0 this.queries = [] } - recordQuery (_class: Ref>, docId: Ref): void { + recordQuery(_class: Ref>, docId: Ref): void { this.count++ this.queries.push({ _class, docId }) } @@ -86,15 +86,15 @@ class FindAllCounter { */ class TestLiveQueryMiddleware extends BaseMiddleware implements Middleware { private readonly documents = new Map, Doc>() - private readonly txQueue: Array<{ tx: TxUpdateDoc, delay: number }> = [] + private readonly txQueue: Array<{ tx: TxUpdateDoc; delay: number }> = [] private readonly findAllCounter: FindAllCounter - constructor (context: PipelineContext, findAllCounter: FindAllCounter, next?: Middleware) { + constructor(context: PipelineContext, findAllCounter: FindAllCounter, next?: Middleware) { super(context, next) this.findAllCounter = findAllCounter } - static async create ( + static async create( ctx: MeasureContext, context: PipelineContext, findAllCounter: FindAllCounter, @@ -104,18 +104,18 @@ class TestLiveQueryMiddleware extends BaseMiddleware implements Middleware { } // Create document in "database" - async createDoc (doc: Doc): Promise { + async createDoc(doc: Doc): Promise { this.documents.set(doc._id, doc) } // Simulate getCurrentDoc - fetching document from server - async getCurrentDoc (_class: Ref>, docId: Ref): Promise { + async getCurrentDoc(_class: Ref>, docId: Ref): Promise { this.findAllCounter.recordQuery(_class, docId) return this.documents.get(docId) } // Apply transaction to local document copy - async applyTxToLocalDoc (tx: TxUpdateDoc): Promise { + async applyTxToLocalDoc(tx: TxUpdateDoc): Promise { const doc = this.documents.get(tx.objectId) as any if (doc === undefined) { return false @@ -156,7 +156,7 @@ class TestLiveQueryMiddleware extends BaseMiddleware implements Middleware { return false // Refresh was not needed } - override async tx (ctx: MeasureContext, txes: any[]): Promise { + override async tx(ctx: MeasureContext, txes: any[]): Promise { // Just pass through return await this.provideTx(ctx, txes) } @@ -180,7 +180,7 @@ describe('LiveQuery Race Condition Tests', () => { workspace: { uuid: 'test-workspace' as any, url: 'test', dataId: 'test' as any }, hierarchy, modelDb: model, - branding: null as any, + branding: null, adapterManager: {} as any, storageAdapter: {} as any, contextVars: {}, @@ -350,7 +350,7 @@ describe('LiveQuery with TxOrderingMiddleware - Solution', () => { workspace: { uuid: 'test-workspace' as any, url: 'test', dataId: 'test' as any }, hierarchy, modelDb: model, - branding: null as any, + branding: null, adapterManager: {} as any, storageAdapter: {} as any, contextVars: {}, diff --git a/foundations/server/packages/middleware/src/tests/txOrdering.test.ts b/foundations/server/packages/middleware/src/tests/txOrdering.test.ts index cc082759b1..e538c32206 100644 --- a/foundations/server/packages/middleware/src/tests/txOrdering.test.ts +++ b/foundations/server/packages/middleware/src/tests/txOrdering.test.ts @@ -49,15 +49,15 @@ const testDocClass = 'test:class:TestDoc' as Ref> class BroadcastTracker { broadcasted: Tx[] = [] - record (tx: Tx): void { + record(tx: Tx): void { this.broadcasted.push(tx) } - reset (): void { + reset(): void { this.broadcasted = [] } - getOrder (): number[] { + getOrder(): number[] { return this.broadcasted.map((tx) => tx.modifiedOn) } } @@ -88,7 +88,7 @@ describe('TxOrderingMiddleware', () => { workspace: { uuid: 'test-workspace' as any, url: 'test', dataId: 'test' as any }, hierarchy, modelDb: model, - branding: null as any, + branding: null, adapterManager: {} as any, storageAdapter: {} as any, contextVars: {}, @@ -222,7 +222,7 @@ describe('TxOrderingMiddleware', () => { workspace: { uuid: 'test-workspace' as any, url: 'test', dataId: 'test' as any }, hierarchy: new Hierarchy(), modelDb: new ModelDb(new Hierarchy()), - branding: null as any, + branding: null, adapterManager: {} as any, storageAdapter: {} as any, contextVars: {}, @@ -324,7 +324,7 @@ describe('TxOrderingMiddleware', () => { workspace: { uuid: 'test-workspace' as any, url: 'test', dataId: 'test' as any }, hierarchy: new Hierarchy(), modelDb: new ModelDb(new Hierarchy()), - branding: null as any, + branding: null, adapterManager: {} as any, storageAdapter: {} as any, contextVars: {}, @@ -353,7 +353,7 @@ describe('TxOrderingMiddleware', () => { describe('TxOrderingMiddleware Integration', () => { it('should work with provideTx flow', async () => { const ctx = new MeasureMetricsContext('test', {}) - ctx.contextData = { broadcast: { txes: [], queue: [], sessions: {} } } as any + ctx.contextData = { broadcast: { txes: [], queue: [], sessions: {} } } const hierarchy = new Hierarchy() const model = new ModelDb(hierarchy) @@ -375,7 +375,7 @@ describe('TxOrderingMiddleware Integration', () => { workspace: { uuid: 'test-workspace' as any, url: 'test', dataId: 'test' as any }, hierarchy, modelDb: model, - branding: null as any, + branding: null, adapterManager: {} as any, storageAdapter: {} as any, contextVars: {}, @@ -392,10 +392,10 @@ describe('TxOrderingMiddleware Integration', () => { const txFactory = new TxFactory(core.account.System) const docId = generateId() - const tx1 = txFactory.createTxUpdateDoc('test:class' as any, 'test:space' as any, docId as any, {} as any) + const tx1 = txFactory.createTxUpdateDoc('test:class' as any, 'test:space' as any, docId, {}) tx1.modifiedOn = 102 - const tx2 = txFactory.createTxUpdateDoc('test:class' as any, 'test:space' as any, docId as any, {} as any) + const tx2 = txFactory.createTxUpdateDoc('test:class' as any, 'test:space' as any, docId, {}) tx2.modifiedOn = 101 // Process in parallel - they should be serialized diff --git a/foundations/server/packages/middleware/src/transient.ts b/foundations/server/packages/middleware/src/transient.ts index b4038ee867..6dd8225777 100644 --- a/foundations/server/packages/middleware/src/transient.ts +++ b/foundations/server/packages/middleware/src/transient.ts @@ -45,7 +45,7 @@ export class TransientMiddleware extends BaseMiddleware implements Middleware { now = Date.now() / 1000 dbProvider?: DbAdapter - private constructor ( + private constructor( readonly ctx: MeasureContext, context: PipelineContext, next?: Middleware @@ -55,7 +55,7 @@ export class TransientMiddleware extends BaseMiddleware implements Middleware { // Need to find all classes with TTL enabled const classes = context.modelDb.findAllSync(core.mixin.TransientTTL, {}) for (const cl of classes) { - this.ttlValues.set(cl._id as Ref>, cl.ttl) + this.ttlValues.set(cl._id, cl.ttl) } this.dbProvider = context.adapterManager?.getAdapter?.(DOMAIN_TRANSIENT, true) @@ -66,7 +66,7 @@ export class TransientMiddleware extends BaseMiddleware implements Middleware { } } - static async create ( + static async create( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -105,7 +105,7 @@ export class TransientMiddleware extends BaseMiddleware implements Middleware { } }) - override async close (): Promise { + override async close(): Promise { if (this.ttlChecker !== undefined) { clearInterval(this.ttlChecker) this.ttlChecker = undefined @@ -113,7 +113,7 @@ export class TransientMiddleware extends BaseMiddleware implements Middleware { await super.close() } - tx (ctx: MeasureContext, txes: Tx[]): Promise { + tx(ctx: MeasureContext, txes: Tx[]): Promise { for (const tx of txes.filter((it) => TxProcessor.isExtendsCUD(it._class)) as TxCUD[]) { const ttl = this.ttlValues.get(tx.objectClass) if (ttl !== undefined && this.context.hierarchy.findDomain(tx.objectClass) === DOMAIN_TRANSIENT) { diff --git a/foundations/server/packages/middleware/src/triggers.ts b/foundations/server/packages/middleware/src/triggers.ts index 51fb2b95f2..1a56f4c28c 100644 --- a/foundations/server/packages/middleware/src/triggers.ts +++ b/foundations/server/packages/middleware/src/triggers.ts @@ -62,7 +62,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { cache = new Map() intervalId: NodeJS.Timeout - constructor (context: PipelineContext, next: Middleware | undefined) { + constructor(context: PipelineContext, next: Middleware | undefined) { super(context, next) this.triggers = new Triggers(this.context.hierarchy) this.intervalId = setInterval( @@ -73,18 +73,18 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { ) } - async close (): Promise { + async close(): Promise { clearInterval(this.intervalId) } - static async create (ctx: MeasureContext, context: PipelineContext, next?: Middleware): Promise { + static async create(ctx: MeasureContext, context: PipelineContext, next?: Middleware): Promise { // we need to init triggers from model first. const triggers = new TriggersMiddleware(context, next) await triggers.init(ctx) return triggers } - async init (ctx: MeasureContext): Promise { + async init(ctx: MeasureContext): Promise { if (this.context.storageAdapter == null) { throw new PlatformError(unknownError('Storage adapter should be specified')) } @@ -95,7 +95,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { this.triggers.init(this.context.modelDb) } - async tx (ctx: MeasureContext, tx: Tx[]): Promise { + async tx(ctx: MeasureContext, tx: Tx[]): Promise { await this.triggers.tx(tx) const result = await this.provideTx(ctx, tx) @@ -106,7 +106,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { return result } - private async processDerived (ctx: MeasureContext, txes: Tx[]): Promise { + private async processDerived(ctx: MeasureContext, txes: Tx[]): Promise { const findAll: SessionFindAll = async (ctx, _class, query, options) => { const _ctx: MeasureContext = (options as ServerFindOptions)?.ctx ?? ctx delete (options as ServerFindOptions)?.ctx @@ -195,7 +195,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { } @withContext('process-sync-triggers') - processSyncTriggers ( + processSyncTriggers( ctx: MeasureContext, txes: Tx[], triggerControl: Omit, @@ -215,7 +215,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { } @withContext('process-async-triggers') - async processAsyncTriggers ( + async processAsyncTriggers( ctx: MeasureContext, triggerControl: Omit, findAll: Middleware['findAll'], @@ -263,7 +263,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { } } - private async processDerivedTxes (ctx: MeasureContext, derived: Tx[]): Promise { + private async processDerivedTxes(ctx: MeasureContext, derived: Tx[]): Promise { if (derived.length > 0) { derived.sort((a, b) => a.modifiedOn - b.modifiedOn) await this.context.derived?.tx(ctx, derived) @@ -295,7 +295,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { } } - private async processRemove (ctx: MeasureContext, txes: Tx[], findAll: SessionFindAll): Promise { + private async processRemove(ctx: MeasureContext, txes: Tx[], findAll: SessionFindAll): Promise { const result: Tx[] = [] for (const tx of txes) { @@ -321,7 +321,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { return result } - private async deleteClassCollections ( + private async deleteClassCollections( ctx: MeasureContext, _class: Ref>, objectId: Ref, @@ -342,7 +342,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { return result } - private async updateCollection ( + private async updateCollection( ctx: MeasureContext, colTx: TxUpdateDoc, findAll: SessionFindAll @@ -396,7 +396,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { return [...(oldTx !== null ? [oldTx] : []), ...(newTx !== null ? [newTx] : [])] } - private async processCollection ( + private async processCollection( ctx: MeasureContext, txes: Tx[], findAll: SessionFindAll @@ -445,7 +445,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { return result } - private getParentClass (_class: Ref>): Ref> { + private getParentClass(_class: Ref>): Ref> { const baseDomain = this.context.hierarchy.getDomain(_class) const ancestors = this.context.hierarchy.getAncestors(_class) let result: Ref> = _class @@ -460,7 +460,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { return result } - private getMixins (_class: Ref>, object: Doc): Array>> { + private getMixins(_class: Ref>, object: Doc): Array>> { const parentClass = this.getParentClass(_class) const descendants = this.context.hierarchy.getDescendants(parentClass) return descendants.filter( @@ -469,7 +469,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { ) } - private deleteObject (ctx: MeasureContext, object: Doc, removedMap: Map, Doc>): Tx[] { + private deleteObject(ctx: MeasureContext, object: Doc, removedMap: Map, Doc>): Tx[] { const result: Tx[] = [] const factory = new TxFactory(object.modifiedBy, true) if (this.context.hierarchy.isDerived(object._class, core.class.AttachedDoc)) { @@ -491,7 +491,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { return result } - private async deleteRelatedDocuments ( + private async deleteRelatedDocuments( ctx: MeasureContext, object: Doc, findAll: SessionFindAll @@ -514,7 +514,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { return result } - private async processMove (ctx: MeasureContext, txes: Tx[], findAll: SessionFindAll): Promise { + private async processMove(ctx: MeasureContext, txes: Tx[], findAll: SessionFindAll): Promise { const result: Tx[] = [] for (const tx of txes) { if (!this.context.hierarchy.isDerived(tx._class, core.class.TxUpdateDoc)) { diff --git a/foundations/server/packages/middleware/src/txOrdering.ts b/foundations/server/packages/middleware/src/txOrdering.ts index 4fd09ac5b5..7e84048426 100644 --- a/foundations/server/packages/middleware/src/txOrdering.ts +++ b/foundations/server/packages/middleware/src/txOrdering.ts @@ -52,11 +52,11 @@ export class TxOrderingMiddleware extends BaseMiddleware implements Middleware { // Only stores the last pending transaction per document private readonly docTxQueue = new Map, TxOrderEntry>() - static create (): MiddlewareCreator { + static create(): MiddlewareCreator { return async (ctx, context, next) => new TxOrderingMiddleware(context, next) } - override async tx (ctx: MeasureContext, txes: Tx[]): Promise { + override async tx(ctx: MeasureContext, txes: Tx[]): Promise { // Group transactions by document ID const txesByDoc = new Map, Tx[]>() @@ -132,7 +132,7 @@ export class TxOrderingMiddleware extends BaseMiddleware implements Middleware { /** * Extract target document ID from transaction */ - private getTargetDocId (tx: Tx): Ref | undefined { + private getTargetDocId(tx: Tx): Ref | undefined { if (TxProcessor.isExtendsCUD(tx._class)) { return (tx as TxCUD).objectId } diff --git a/foundations/server/packages/middleware/src/txPush.ts b/foundations/server/packages/middleware/src/txPush.ts index 694d7b8307..3d6783f17a 100644 --- a/foundations/server/packages/middleware/src/txPush.ts +++ b/foundations/server/packages/middleware/src/txPush.ts @@ -37,7 +37,7 @@ import { BaseMiddleware } from '@hcengineering/server-core' */ export class TxMiddleware extends BaseMiddleware implements Middleware { adapterManager!: DBAdapterManager - static async create (ctx: MeasureContext, context: PipelineContext, next?: Middleware): Promise { + static async create(ctx: MeasureContext, context: PipelineContext, next?: Middleware): Promise { const middleware = new TxMiddleware(context, next) if (context.adapterManager == null) { throw new PlatformError(unknownError('Adapter manager should be specified')) @@ -46,9 +46,9 @@ export class TxMiddleware extends BaseMiddleware implements Middleware { return middleware } - async init (ctx: MeasureContext): Promise {} + async init(ctx: MeasureContext): Promise {} - async tx (ctx: MeasureContext, txes: Tx[]): Promise { + async tx(ctx: MeasureContext, txes: Tx[]): Promise { const txToStore: Tx[] = [] for (const tx of txes) { if (TxProcessor.isExtendsCUD(tx._class)) { diff --git a/foundations/server/packages/middleware/src/userStatus.ts b/foundations/server/packages/middleware/src/userStatus.ts index bc2f33fcb8..7655f49a61 100644 --- a/foundations/server/packages/middleware/src/userStatus.ts +++ b/foundations/server/packages/middleware/src/userStatus.ts @@ -36,11 +36,11 @@ import { * @public */ export class UserStatusMiddleware extends BaseMiddleware implements Middleware { - private constructor (context: PipelineContext, next?: Middleware) { + private constructor(context: PipelineContext, next?: Middleware) { super(context, next) } - static async create ( + static async create( _: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -48,7 +48,7 @@ export class UserStatusMiddleware extends BaseMiddleware implements Middleware { return new UserStatusMiddleware(context, next) } - tx (ctx: MeasureContext, txes: Tx[]): Promise { + tx(ctx: MeasureContext, txes: Tx[]): Promise { for (const tx of txes) { if (tx._class === core.class.TxApplyIf) { const atx = tx as TxApplyIf @@ -62,7 +62,7 @@ export class UserStatusMiddleware extends BaseMiddleware implements Middleware { return this.provideTx(ctx, txes) } - private processTx (tx: TxCUD): void { + private processTx(tx: TxCUD): void { if (tx._class === core.class.TxCreateDoc && tx.objectClass === core.class.UserStatus) { const status = TxProcessor.createDoc2Doc(tx as TxCreateDoc) const map = this.context.userStatusMap ?? new Map() diff --git a/foundations/server/packages/middleware/src/utils.ts b/foundations/server/packages/middleware/src/utils.ts index b6ea5b5c7f..c1bceae48e 100644 --- a/foundations/server/packages/middleware/src/utils.ts +++ b/foundations/server/packages/middleware/src/utils.ts @@ -26,15 +26,15 @@ import core, { type TxCUD } from '@hcengineering/core' -export function isOwner (account: Account, ctx: MeasureContext): boolean { +export function isOwner(account: Account, ctx: MeasureContext): boolean { return account.role === AccountRole.Owner || isSystem(account, ctx) } -export function isSystem (account: Account, ctx: MeasureContext): boolean { +export function isSystem(account: Account, ctx: MeasureContext): boolean { return account.uuid === systemAccountUuid } -export function filterBroadcastOnly (tx: Tx[], hierarchy: Hierarchy): Tx[] { +export function filterBroadcastOnly(tx: Tx[], hierarchy: Hierarchy): Tx[] { const ftx = tx.filter((it) => { if (TxProcessor.isExtendsCUD(it._class)) { const cud = it as TxCUD diff --git a/foundations/server/packages/middleware/src/versioning.ts b/foundations/server/packages/middleware/src/versioning.ts index 48b45bf2ae..887a0112a5 100644 --- a/foundations/server/packages/middleware/src/versioning.ts +++ b/foundations/server/packages/middleware/src/versioning.ts @@ -42,11 +42,11 @@ import { * @public */ export class VersioningMiddleware extends BaseMiddleware implements Middleware { - private constructor (context: PipelineContext, next?: Middleware) { + private constructor(context: PipelineContext, next?: Middleware) { super(context, next) } - static async create ( + static async create( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -104,7 +104,7 @@ export class VersioningMiddleware extends BaseMiddleware implements Middleware { return res } - private async setVersionData ( + private async setVersionData( ctx: MeasureContext, tx: TxCreateDoc ): Promise { @@ -144,7 +144,7 @@ export class VersioningMiddleware extends BaseMiddleware implements Middleware { } } - private isVerionableClass (_class: Ref>): boolean { + private isVerionableClass(_class: Ref>): boolean { try { return this.context.hierarchy.classHierarchyMixin(_class, core.mixin.VersionableClass) !== undefined } catch { diff --git a/foundations/server/packages/minio/package.json b/foundations/server/packages/minio/package.json index 1ec02c5105..157f9deca2 100644 --- a/foundations/server/packages/minio/package.json +++ b/foundations/server/packages/minio/package.json @@ -19,20 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "eslint-plugin-svelte": "^2.35.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/server/packages/mongo/package.json b/foundations/server/packages/mongo/package.json index af6f254cb2..c331869560 100644 --- a/foundations/server/packages/mongo/package.json +++ b/foundations/server/packages/mongo/package.json @@ -19,20 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", - "eslint-plugin-svelte": "^2.35.1" + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/server/packages/postgres/package.json b/foundations/server/packages/postgres/package.json index 393a05e1ec..d4ee553d6a 100644 --- a/foundations/server/packages/postgres/package.json +++ b/foundations/server/packages/postgres/package.json @@ -19,20 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", - "eslint-plugin-svelte": "^2.35.1" + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "postgres": "^3.4.7", diff --git a/foundations/server/packages/s3/package.json b/foundations/server/packages/s3/package.json index dfedf0a5c8..c8ed210aec 100644 --- a/foundations/server/packages/s3/package.json +++ b/foundations/server/packages/s3/package.json @@ -19,20 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "eslint-plugin-svelte": "^2.35.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/server/packages/server-storage/package.json b/foundations/server/packages/server-storage/package.json index 90eaaff4be..240687cbd5 100644 --- a/foundations/server/packages/server-storage/package.json +++ b/foundations/server/packages/server-storage/package.json @@ -40,20 +40,19 @@ "cross-env": "~7.0.3", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "ts-node": "^10.9.2", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "eslint-plugin-svelte": "^2.35.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/server/packages/server/package.json b/foundations/server/packages/server/package.json index 2bdaafb856..58713a877a 100644 --- a/foundations/server/packages/server/package.json +++ b/foundations/server/packages/server/package.json @@ -21,19 +21,18 @@ "cross-env": "~7.0.3", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "eslint-plugin-svelte": "^2.35.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/account-client": "workspace:^0.7.25", diff --git a/foundations/server/packages/server/src/client.ts b/foundations/server/packages/server/src/client.ts index 3f3700d5b2..f926209adb 100644 --- a/foundations/server/packages/server/src/client.ts +++ b/foundations/server/packages/server/src/client.ts @@ -86,13 +86,13 @@ export class ClientSession implements Session { total: StatisticsElement = { find: 0, tx: 0 } current: StatisticsElement = { find: 0, tx: 0 } mins5: StatisticsElement = { find: 0, tx: 0 } - measures: { id: string, message: string, time: 0 }[] = [] + measures: { id: string; message: string; time: 0 }[] = [] ops: BackupClientOps | undefined opsPipeline: Pipeline | undefined isAdmin: boolean - constructor ( + constructor( readonly token: Token, readonly workspace: WorkspaceIds, readonly account: Account, @@ -103,40 +103,40 @@ export class ClientSession implements Session { this.isAdmin = this.token.extra?.admin === 'true' } - getUser (): AccountUuid { + getUser(): AccountUuid { return this.token.account } - getUserSocialIds (): PersonId[] { + getUserSocialIds(): PersonId[] { return this.account.socialIds } - getSocialIds (): SocialId[] { + getSocialIds(): SocialId[] { return this.info.socialIds } - getRawAccount (): Account { + getRawAccount(): Account { return this.account } - isUpgradeClient (): boolean { + isUpgradeClient(): boolean { return this.token.extra?.model === 'upgrade' } - getMode (): string { + getMode(): string { return this.token.extra?.mode ?? 'normal' } - updateLast (): void { + updateLast(): void { this.lastRequest = Date.now() } - async ping (ctx: ClientSessionCtx): Promise { + async ping(ctx: ClientSessionCtx): Promise { this.lastRequest = Date.now() ctx.sendPong() } - async loadModel (ctx: ClientSessionCtx, lastModelTx: Timestamp, hash?: string): Promise { + async loadModel(ctx: ClientSessionCtx, lastModelTx: Timestamp, hash?: string): Promise { try { this.includeSessionContext(ctx) const result = await this.counter.withCounter('loadModel', 1, () => @@ -152,13 +152,13 @@ export class ClientSession implements Session { } } - async loadModelRaw (ctx: ClientSessionCtx, lastModelTx: Timestamp, hash?: string): Promise { + async loadModelRaw(ctx: ClientSessionCtx, lastModelTx: Timestamp, hash?: string): Promise { // eslint-disable-next-line @typescript-eslint/no-unused-vars this.includeSessionContext(ctx) return await ctx.ctx.with('load-model', {}, (_ctx) => ctx.pipeline.loadModel(_ctx, lastModelTx, hash)) } - private getPermissionsGrant (): PermissionsGrant | undefined { + private getPermissionsGrant(): PermissionsGrant | undefined { if (this.token.grant == null) { return } @@ -169,7 +169,7 @@ export class ClientSession implements Session { } } - includeSessionContext (ctx: ClientSessionCtx): void { + includeSessionContext(ctx: ClientSessionCtx): void { const dataId = this.workspace.dataId ?? (this.workspace.uuid as unknown as WorkspaceDataId) const contextData = new SessionDataImpl( this.account, @@ -204,7 +204,7 @@ export class ClientSession implements Session { return ctx.pipeline.findAll(ctx.ctx, _class, query, options) } - estimateSize (doc: any): number { + estimateSize(doc: any): number { return Math.round((estimateDocSize(doc) * 10) / (1024 * 1024)) / 10 } @@ -332,20 +332,20 @@ export class ClientSession implements Session { } } - async searchFulltextRaw (ctx: ClientSessionCtx, query: SearchQuery, options: SearchOptions): Promise { + async searchFulltextRaw(ctx: ClientSessionCtx, query: SearchQuery, options: SearchOptions): Promise { this.lastRequest = Date.now() this.includeSessionContext(ctx) return await ctx.pipeline.searchFulltext(ctx.ctx, query, options) } - async txRaw ( + async txRaw( ctx: ClientSessionCtx, tx: Tx ): Promise<{ - result: TxResult - broadcastPromise: Promise - asyncsPromise: Promise | undefined - }> { + result: TxResult + broadcastPromise: Promise + asyncsPromise: Promise | undefined + }> { this.lastRequest = Date.now() this.total.tx++ this.current.tx++ @@ -388,7 +388,7 @@ export class ClientSession implements Session { return { result, broadcastPromise, asyncsPromise } } - async tx (ctx: ClientSessionCtx, tx: Tx): Promise { + async tx(ctx: ClientSessionCtx, tx: Tx): Promise { const domain = ctx.pipeline.context.hierarchy.findDomain( TxProcessor.isExtendsCUD(tx._class) ? (tx as TxCUD).objectClass : tx._class @@ -407,7 +407,7 @@ export class ClientSession implements Session { }) } - broadcast (ctx: MeasureContext, socket: ConnectionSocket, tx: Tx[]): void { + broadcast(ctx: MeasureContext, socket: ConnectionSocket, tx: Tx[]): void { if (this.tx.length > 10000) { const classes = new Set>>() for (const dtx of tx) { @@ -433,7 +433,7 @@ export class ClientSession implements Session { } } - getOps (pipeline: Pipeline): BackupClientOps { + getOps(pipeline: Pipeline): BackupClientOps { if (this.ops === undefined || this.opsPipeline !== pipeline) { if (pipeline.context.lowLevelStorage === undefined) { throw new PlatformError(unknownError('Low level storage is not available')) @@ -444,7 +444,7 @@ export class ClientSession implements Session { return this.ops } - async loadChunk (ctx: ClientSessionCtx, domain: Domain, idx?: number): Promise { + async loadChunk(ctx: ClientSessionCtx, domain: Domain, idx?: number): Promise { this.lastRequest = Date.now() try { const result = await this.getOps(ctx.pipeline).loadChunk(ctx.ctx, domain, idx) @@ -455,7 +455,7 @@ export class ClientSession implements Session { } } - async getDomainHash (ctx: ClientSessionCtx, domain: Domain): Promise { + async getDomainHash(ctx: ClientSessionCtx, domain: Domain): Promise { this.lastRequest = Date.now() try { const result = await this.getOps(ctx.pipeline).getDomainHash(ctx.ctx, domain) @@ -466,7 +466,7 @@ export class ClientSession implements Session { } } - async closeChunk (ctx: ClientSessionCtx, idx: number): Promise { + async closeChunk(ctx: ClientSessionCtx, idx: number): Promise { try { this.lastRequest = Date.now() await this.getOps(ctx.pipeline).closeChunk(ctx.ctx, idx) @@ -477,7 +477,7 @@ export class ClientSession implements Session { } } - async loadDocs (ctx: ClientSessionCtx, domain: Domain, docs: Ref[]): Promise { + async loadDocs(ctx: ClientSessionCtx, domain: Domain, docs: Ref[]): Promise { this.lastRequest = Date.now() try { const result = await this.getOps(ctx.pipeline).loadDocs(ctx.ctx, domain, docs) @@ -488,7 +488,7 @@ export class ClientSession implements Session { } } - async upload (ctx: ClientSessionCtx, domain: Domain, docs: Doc[]): Promise { + async upload(ctx: ClientSessionCtx, domain: Domain, docs: Doc[]): Promise { if (!this.allowUpload) { await ctx.sendResponse(ctx.requestId, { error: 'Upload not allowed' }) } @@ -503,7 +503,7 @@ export class ClientSession implements Session { await ctx.sendResponse(ctx.requestId, {}) } - async clean (ctx: ClientSessionCtx, domain: Domain, docs: Ref[]): Promise { + async clean(ctx: ClientSessionCtx, domain: Domain, docs: Ref[]): Promise { if (!this.allowUpload) { await ctx.sendResponse(ctx.requestId, { error: 'Clean not allowed' }) } @@ -518,7 +518,7 @@ export class ClientSession implements Session { await ctx.sendResponse(ctx.requestId, {}) } - async domainRequest (ctx: ClientSessionCtx, domain: OperationDomain, params: DomainParams): Promise { + async domainRequest(ctx: ClientSessionCtx, domain: OperationDomain, params: DomainParams): Promise { // eslint-disable-next-line @typescript-eslint/no-unused-vars await this.counter.withCounter('dr-' + domain, 1, async () => { try { @@ -536,15 +536,15 @@ export class ClientSession implements Session { }) } - async domainRequestRaw ( + async domainRequestRaw( ctx: ClientSessionCtx, domain: OperationDomain, params: DomainParams ): Promise<{ - result: DomainResult - broadcastPromise: Promise - asyncsPromise: Promise | undefined - }> { + result: DomainResult + broadcastPromise: Promise + asyncsPromise: Promise | undefined + }> { this.lastRequest = Date.now() this.total.find++ this.current.find++ diff --git a/foundations/utils/common/changes/@hcengineering/platform-rig/upgrade-eslint-dependencies_2026-08-19-12-00.json b/foundations/utils/common/changes/@hcengineering/platform-rig/upgrade-eslint-dependencies_2026-08-19-12-00.json new file mode 100644 index 0000000000..02af22fdde --- /dev/null +++ b/foundations/utils/common/changes/@hcengineering/platform-rig/upgrade-eslint-dependencies_2026-08-19-12-00.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@hcengineering/platform-rig", + "comment": "Upgrade the ESLint toolchain and migrate formatting to flat configuration.", + "type": "patch" + } + ], + "packageName": "@hcengineering/platform-rig" +} diff --git a/foundations/utils/packages/platform-rig/bin/format.js b/foundations/utils/packages/platform-rig/bin/format.js index 6b896cc90e..f1d3b94bae 100755 --- a/foundations/utils/packages/platform-rig/bin/format.js +++ b/foundations/utils/packages/platform-rig/bin/format.js @@ -13,6 +13,9 @@ const { const crypto = require('crypto') const prettier = require('prettier') const { ESLint } = require('eslint') +const LEGACY_COMPATIBILITY_RULES = Object.fromEntries( + require('../profiles/legacy-compatibility-rules.json').map((rule) => [rule, 'off']) +) let pluginSvelte try { @@ -21,6 +24,56 @@ try { console.warn('prettier-plugin-svelte not available') } +async function loadEslintConfig() { + const [{ default: love }, svelte, { default: tsParser }, svelteParser] = await Promise.all([ + import('eslint-config-love'), + import('eslint-plugin-svelte'), + import('@typescript-eslint/parser'), + import('svelte-eslint-parser') + ]) + + return [ + { + ignores: ['**/*.json', '**/node_modules/**', '**/.eslintrc.js', '**/dist/**', '**/lib/**'] + }, + { + ...love, + files: ['**/*.{js,cjs,mjs,ts,cts,mts}'], + rules: { + ...love.rules, + ...LEGACY_COMPATIBILITY_RULES, + '@typescript-eslint/array-type': 'off', + '@typescript-eslint/promise-function-async': 'off', + '@typescript-eslint/consistent-type-imports': 'off' + } + }, + { + linterOptions: { + reportUnusedDisableDirectives: 'off' + } + }, + ...svelte.configs.base, + { + files: ['**/*.svelte'], + plugins: love.plugins, + languageOptions: { + parser: svelteParser, + parserOptions: { + extraFileExtensions: ['.svelte'], + parser: tsParser, + projectService: true + } + }, + rules: { + '@typescript-eslint/array-type': 'off', + '@typescript-eslint/promise-function-async': 'off', + '@typescript-eslint/consistent-type-imports': 'off', + 'svelte/no-at-html-tags': 'error' + } + } + ] +} + if (!existsSync('.format')) { mkdirSync('.format', { recursive: true }) } @@ -156,7 +209,11 @@ if (filesToCheck.length > 0) { console.log(`running eslint ${filesToCheck.length}`) // Run ESLint - const eslint = new ESLint({ fix: true }) + const eslint = new ESLint({ + fix: true, + overrideConfigFile: true, + overrideConfig: await loadEslintConfig() + }) const results = await eslint.lintFiles(filesToCheck) // Apply fixes diff --git a/foundations/utils/packages/platform-rig/package.json b/foundations/utils/packages/platform-rig/package.json index 66dffd20cb..2bf6ab8608 100644 --- a/foundations/utils/packages/platform-rig/package.json +++ b/foundations/utils/packages/platform-rig/package.json @@ -17,17 +17,16 @@ "svelte": "^4.2.20", "svelte-preprocess": "^5.1.4", "svelte2tsx": "^0.7.45", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", + "eslint-config-love": "^155.0.0", "prettier": "^3.6.2", "prettier-plugin-svelte": "^3.4.0", - "svelte-eslint-parser": "^0.33.1", - "eslint-plugin-svelte": "^2.35.1" + "svelte-eslint-parser": "^1.8.1", + "eslint-plugin-svelte": "^3.23.0" }, "bin": { "format": "bin/format.js", diff --git a/foundations/utils/packages/platform-rig/profiles/legacy-compatibility-rules.json b/foundations/utils/packages/platform-rig/profiles/legacy-compatibility-rules.json new file mode 100644 index 0000000000..ed60c97155 --- /dev/null +++ b/foundations/utils/packages/platform-rig/profiles/legacy-compatibility-rules.json @@ -0,0 +1,124 @@ +[ + "@eslint-community/eslint-comments/disable-enable-pair", + "@eslint-community/eslint-comments/no-aggregating-enable", + "@eslint-community/eslint-comments/no-duplicate-disable", + "@eslint-community/eslint-comments/no-unlimited-disable", + "@eslint-community/eslint-comments/no-unused-enable", + "@eslint-community/eslint-comments/require-description", + "@typescript-eslint/class-methods-use-this", + "@typescript-eslint/init-declarations", + "@typescript-eslint/max-params", + "@typescript-eslint/no-array-delete", + "@typescript-eslint/no-confusing-non-null-assertion", + "@typescript-eslint/no-deprecated", + "@typescript-eslint/no-duplicate-enum-values", + "@typescript-eslint/no-duplicate-type-constituents", + "@typescript-eslint/no-empty-function", + "@typescript-eslint/no-empty-object-type", + "@typescript-eslint/no-explicit-any", + "@typescript-eslint/no-import-type-side-effects", + "@typescript-eslint/no-inferrable-types", + "@typescript-eslint/no-magic-numbers", + "@typescript-eslint/no-meaningless-void-operator", + "@typescript-eslint/no-misused-spread", + "@typescript-eslint/no-mixed-enums", + "@typescript-eslint/no-non-null-asserted-nullish-coalescing", + "@typescript-eslint/no-redundant-type-constituents", + "@typescript-eslint/no-require-imports", + "@typescript-eslint/no-unnecessary-condition", + "@typescript-eslint/no-unnecessary-parameter-property-assignment", + "@typescript-eslint/no-unnecessary-qualifier", + "@typescript-eslint/no-unnecessary-template-expression", + "@typescript-eslint/no-unnecessary-type-arguments", + "@typescript-eslint/no-unnecessary-type-conversion", + "@typescript-eslint/no-unnecessary-type-parameters", + "@typescript-eslint/no-unsafe-argument", + "@typescript-eslint/no-unsafe-assignment", + "@typescript-eslint/no-unsafe-call", + "@typescript-eslint/no-unsafe-declaration-merging", + "@typescript-eslint/no-unsafe-enum-comparison", + "@typescript-eslint/no-unsafe-function-type", + "@typescript-eslint/no-unsafe-member-access", + "@typescript-eslint/no-unsafe-return", + "@typescript-eslint/no-unsafe-type-assertion", + "@typescript-eslint/no-unsafe-unary-minus", + "@typescript-eslint/no-unused-private-class-members", + "@typescript-eslint/no-useless-default-assignment", + "@typescript-eslint/no-useless-empty-export", + "@typescript-eslint/no-wrapper-object-types", + "@typescript-eslint/non-nullable-type-assertion-style", + "@typescript-eslint/only-throw-error", + "@typescript-eslint/prefer-as-const", + "@typescript-eslint/prefer-destructuring", + "@typescript-eslint/prefer-find", + "@typescript-eslint/prefer-for-of", + "@typescript-eslint/prefer-literal-enum-member", + "@typescript-eslint/prefer-namespace-keyword", + "@typescript-eslint/prefer-promise-reject-errors", + "@typescript-eslint/prefer-regexp-exec", + "@typescript-eslint/prefer-return-this-type", + "@typescript-eslint/prefer-string-starts-ends-with", + "@typescript-eslint/related-getter-setter-pairs", + "@typescript-eslint/require-await", + "@typescript-eslint/strict-void-return", + "@typescript-eslint/switch-exhaustiveness-check", + "@typescript-eslint/unified-signatures", + "@typescript-eslint/use-unknown-in-catch-callback-variable", + "arrow-body-style", + "complexity", + "consistent-this", + "for-direction", + "grouped-accessor-pairs", + "guard-for-in", + "logical-assignment-operators", + "max-depth", + "max-lines", + "max-nested-callbacks", + "no-alert", + "no-await-in-loop", + "no-console", + "no-constant-binary-expression", + "no-constructor-return", + "no-dupe-else-if", + "no-empty-static-block", + "no-implicit-globals", + "no-lonely-if", + "no-loop-func", + "no-multi-assign", + "no-negated-condition", + "no-new-native-nonconstructor", + "no-nonoctal-decimal-escape", + "no-object-constructor", + "no-param-reassign", + "no-plusplus", + "no-promise-executor-return", + "no-script-url", + "no-useless-assignment", + "no-useless-concat", + "operator-assignment", + "prefer-arrow-callback", + "prefer-exponentiation-operator", + "prefer-named-capture-group", + "prefer-numeric-literals", + "prefer-object-has-own", + "prefer-object-spread", + "prefer-rest-params", + "prefer-spread", + "prefer-template", + "preserve-caught-error", + "promise/avoid-new", + "promise/no-multiple-resolved", + "promise/no-return-wrap", + "promise/prefer-catch", + "radix", + "require-atomic-updates", + "require-unicode-regexp", + "require-yield", + "strict", + "@typescript-eslint/no-non-null-assertion", + "@typescript-eslint/strict-boolean-expressions", + "@typescript-eslint/prefer-optional-chain", + "@typescript-eslint/prefer-nullish-coalescing", + "@typescript-eslint/no-base-to-string", + "eqeqeq" +] diff --git a/foundations/utils/packages/ui-test/package.json b/foundations/utils/packages/ui-test/package.json index a22e07c957..68b72c663d 100644 --- a/foundations/utils/packages/ui-test/package.json +++ b/foundations/utils/packages/ui-test/package.json @@ -36,18 +36,17 @@ "svelte-loader": "^3.2.0", "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0" + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "svelte": "^4.2.20" diff --git a/models/achievement/package.json b/models/achievement/package.json index 7680f53870..cecbc46e63 100644 --- a/models/achievement/package.json +++ b/models/achievement/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/achievement": "workspace:^0.7.0", diff --git a/models/activity/package.json b/models/activity/package.json index 8f19aaa12d..26396fe2fb 100644 --- a/models/activity/package.json +++ b/models/activity/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/activity/src/index.ts b/models/activity/src/index.ts index 5bc99c74b3..2009a0d624 100644 --- a/models/activity/src/index.ts +++ b/models/activity/src/index.ts @@ -102,39 +102,39 @@ export class TIgnoreActivity extends TClass implements IgnoreActivity {} @Model(activity.class.ActivityMessage, core.class.AttachedDoc, DOMAIN_ACTIVITY) export class TActivityMessage extends TAttachedDoc implements ActivityMessage { @Prop(TypeBoolean(), activity.string.Pinned) - isPinned?: boolean + isPinned?: boolean @Prop(ArrOf(TypeRef(contact.class.Person)), contact.string.Person) - repliedPersons?: Ref[] + repliedPersons?: Ref[] @Prop(TypeTimestamp(), activity.string.LastReply) // @Index(IndexKind.Indexed) - lastReply?: Timestamp + lastReply?: Timestamp @Prop(Collection(activity.class.Reaction), activity.string.Reactions) - reactions?: number + reactions?: number @Prop(Collection(activity.class.ActivityMessage), activity.string.Replies) - replies?: number + replies?: number } @Model(activity.class.DocUpdateMessage, activity.class.ActivityMessage) export class TDocUpdateMessage extends TActivityMessage implements DocUpdateMessage { @Prop(TypeRef(core.class.Doc), core.string.Object) @Index(IndexKind.Indexed) - objectId!: Ref + objectId!: Ref @Prop(TypeRef(core.class.Class), core.string.Class) // @Index(IndexKind.Indexed) - objectClass!: Ref> + objectClass!: Ref> @Prop(TypeRef(core.class.TxCUD), core.string.Object) // @Index(IndexKind.Indexed) - txId?: Ref> + txId?: Ref> @Prop(TypeString(), core.string.Object) // @Index(IndexKind.Indexed) - action!: DocUpdateAction + action!: DocUpdateAction updateCollection?: string attributeUpdates?: DocAttributeUpdates @@ -145,11 +145,11 @@ export class TActivityReference extends TActivityMessage implements ActivityRefe // Source document we have reference from, it should be parent document for Comment/Message. @Prop(TypeRef(core.class.Doc), core.string.Object) // @Index(IndexKind.Indexed) - srcDocId!: Ref + srcDocId!: Ref @Prop(TypeRef(core.class.Class), core.string.Class) // @Index(IndexKind.Indexed) - srcDocClass!: Ref> + srcDocClass!: Ref> // Reference to comment/message in source doc attachedDocId?: Ref @@ -157,16 +157,16 @@ export class TActivityReference extends TActivityMessage implements ActivityRefe @Prop(TypeMarkup(), activity.string.Message) @Index(IndexKind.FullText) - message!: string + message!: string @Prop(TypeTimestamp(), activity.string.Edit) - editedOn?: Timestamp + editedOn?: Timestamp } @Model(activity.class.ActivityInfoMessage, activity.class.ActivityMessage) export class TActivityInfoMessage extends TActivityMessage implements ActivityInfoMessage { @Prop(TypeIntlString(), activity.string.Update) - message!: IntlString + message!: IntlString props!: Record icon!: Asset @@ -185,11 +185,11 @@ export class TActivityMessageControl extends TDoc implements ActivityMessageCont export class TDocUpdateMessageViewlet extends TDoc implements DocUpdateMessageViewlet { @Prop(TypeRef(core.class.Doc), core.string.Class) @Index(IndexKind.Indexed) - objectClass!: Ref> + objectClass!: Ref> @Prop(TypeString(), core.string.String) @Index(IndexKind.Indexed) - action!: DocUpdateAction + action!: DocUpdateAction label?: IntlString @@ -205,7 +205,7 @@ export class TDocUpdateMessageViewlet extends TDoc implements DocUpdateMessageVi @Model(activity.class.ActivityExtension, core.class.Doc, DOMAIN_MODEL) export class TActivityExtension extends TDoc implements ActivityExtension { ofClass!: Ref> - components!: Record }> + components!: Record }> } @Model(activity.class.ActivityMessagesFilter, core.class.Doc, DOMAIN_MODEL) @@ -227,12 +227,12 @@ export class TReaction extends TAttachedDoc implements Reaction { declare attachedToClass: Ref> @Prop(TypeString(), activity.string.Emoji) - emoji!: string + emoji!: string image?: Ref @Prop(TypePersonId(), view.string.Created) - createBy!: PersonId + createBy!: PersonId } @Model(activity.class.SavedMessage, preference.class.Preference) @@ -258,7 +258,7 @@ export class TUserMentionInfo extends TAttachedDoc { content!: string } -export function createModel (builder: Builder): void { +export function createModel(builder: Builder): void { builder.createModel( TActivityDoc, TActivityMessagesFilter, diff --git a/models/ai-assistant/package.json b/models/ai-assistant/package.json index 680b4b8c88..8e53b6d6af 100644 --- a/models/ai-assistant/package.json +++ b/models/ai-assistant/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/model": "workspace:^0.7.17", diff --git a/models/ai-bot/package.json b/models/ai-bot/package.json index 9620e9dfc5..3201d197cf 100644 --- a/models/ai-bot/package.json +++ b/models/ai-bot/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/ai-bot": "workspace:^0.7.0", diff --git a/models/all/package.json b/models/all/package.json index 0547dbb11b..24fc32afad 100644 --- a/models/all/package.json +++ b/models/all/package.json @@ -22,21 +22,21 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "@types/node": "^24.13.3", "ts-node": "^10.9.2", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "esbuild": "^0.25.10", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/model": "workspace:^0.7.17", diff --git a/models/analytics-collector/package.json b/models/analytics-collector/package.json index 529235963b..74fdc379f7 100644 --- a/models/analytics-collector/package.json +++ b/models/analytics-collector/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/attachment/package.json b/models/attachment/package.json index 63787d9360..085c937e02 100644 --- a/models/attachment/package.json +++ b/models/attachment/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/attachment/src/index.ts b/models/attachment/src/index.ts index f4adb00a12..7c16388e33 100644 --- a/models/attachment/src/index.ts +++ b/models/attachment/src/index.ts @@ -55,26 +55,26 @@ export const DOMAIN_ATTACHMENT = 'attachment' as Domain export class TAttachment extends TAttachedDoc implements Attachment { @Prop(TypeString(), attachment.string.Name) @Index(IndexKind.FullText) - name!: string + name!: string @Prop(TypeBlob(), attachment.string.File) - file!: Ref + file!: Ref @Prop(TypeString(), attachment.string.Size) - size!: number + size!: number @Prop(TypeString(), attachment.string.Type) - type!: string + type!: string @Prop(TypeTimestamp(), attachment.string.LastModified) - lastModified!: number + lastModified!: number @Prop(TypeString(), attachment.string.Description) @Index(IndexKind.FullText) - description!: string + description!: string @Prop(TypeBoolean(), attachment.string.Pinned) - pinned!: boolean + pinned!: boolean metadata?: AttachmentMetadata } @@ -98,18 +98,18 @@ export class TDrawing extends TDoc implements Drawing { @Prop(TypeRef(core.class.Doc), getEmbeddedLabel('Parent')) @Index(IndexKind.Indexed) @Hidden() - parent!: Ref + parent!: Ref @Prop(TypeRef(core.class.Class), getEmbeddedLabel('Parent class')) @Index(IndexKind.Indexed) @Hidden() - parentClass!: Ref> + parentClass!: Ref> @Prop(TypeString(), getEmbeddedLabel('Content')) - content?: string + content?: string } -export function createModel (builder: Builder): void { +export function createModel(builder: Builder): void { builder.createModel(TAttachment, TEmbedding, TDrawing, TPhoto, TSavedAttachments) builder.mixin(attachment.class.Attachment, core.class.Class, view.mixin.ObjectPresenter, { diff --git a/models/billing/package.json b/models/billing/package.json index 63e97b7c6d..4f9336497d 100644 --- a/models/billing/package.json +++ b/models/billing/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/bitrix/package.json b/models/bitrix/package.json index 1882a891ac..c3032be6d0 100644 --- a/models/bitrix/package.json +++ b/models/bitrix/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/board/package.json b/models/board/package.json index 1a6eaecc79..074f6b9b03 100644 --- a/models/board/package.json +++ b/models/board/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/calendar/package.json b/models/calendar/package.json index b4218b643e..35917656ea 100644 --- a/models/calendar/package.json +++ b/models/calendar/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/card/package.json b/models/card/package.json index 4033b336cb..3531b5bbee 100644 --- a/models/card/package.json +++ b/models/card/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/chunter/package.json b/models/chunter/package.json index 7ea582a808..34bc8eaf8b 100644 --- a/models/chunter/package.json +++ b/models/chunter/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/chunter/src/index.ts b/models/chunter/src/index.ts index 3a70e8692c..10e8bdd7c7 100644 --- a/models/chunter/src/index.ts +++ b/models/chunter/src/index.ts @@ -43,7 +43,7 @@ export { chunterId } from '@hcengineering/chunter' export { chunterOperation } from './migration' export * from './types' -export function createModel (builder: Builder): void { +export function createModel(builder: Builder): void { builder.createModel( TChunterSpace, TChannel, diff --git a/models/communication/package.json b/models/communication/package.json index 7f2f287136..0de43359bc 100644 --- a/models/communication/package.json +++ b/models/communication/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/card": "workspace:^0.7.0", diff --git a/models/contact/package.json b/models/contact/package.json index e46a737292..60aa416d11 100644 --- a/models/contact/package.json +++ b/models/contact/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/contact/src/index.ts b/models/contact/src/index.ts index 8eee6fdbc8..0b984a16f1 100644 --- a/models/contact/src/index.ts +++ b/models/contact/src/index.ts @@ -131,37 +131,37 @@ export class TSocialIdentityProvider extends TDoc implements SocialIdentityProvi export class TContact extends TDoc implements Contact { @Prop(TypeString(), contact.string.Name) @Index(IndexKind.FullText) - name!: string + name!: string @Prop(TypeString(), contact.string.Avatar) @Hidden() - avatarType!: AvatarType + avatarType!: AvatarType @Prop(TypeBlob(), contact.string.Avatar) @Hidden() - avatar!: Ref | null | undefined + avatar!: Ref | null | undefined @Prop(TypeRecord(), contact.string.Avatar) @Hidden() - avatarProps?: { + avatarProps?: { color?: string url?: string } @Prop(CollectionType(contact.class.Channel), contact.string.ContactInfo) - channels?: number + channels?: number @Prop(CollectionType(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: number + attachments?: number @Prop(CollectionType(chunter.class.ChatMessage), chunter.string.Comments) - comments?: number + comments?: number @Prop(TypeString(), contact.string.Location) @Index(IndexKind.FullText) - city?: string + city?: string } @Model(contact.class.Channel, core.class.AttachedDoc, DOMAIN_CHANNEL) @@ -169,16 +169,16 @@ export class TContact extends TDoc implements Contact { export class TChannel extends TAttachedDoc implements Channel { @Prop(TypeRef(contact.class.ChannelProvider), contact.string.ChannelProvider) @Index(IndexKind.Indexed) - provider!: Ref + provider!: Ref @Prop(TypeString(), contact.string.Value) @Index(IndexKind.FullText) - value!: string + value!: string items?: number @Prop(TypeTimestamp(), core.string.Modified) - lastMessage?: Timestamp + lastMessage?: Timestamp } @Model(contact.class.SocialIdentity, core.class.AttachedDoc, DOMAIN_CHANNEL) @@ -190,21 +190,21 @@ export class TSocialIdentity extends TAttachedDoc implements SocialIdentity { @Prop(TypeString(), getEmbeddedLabel('Key')) @Hidden() - key!: string + key!: string @Prop(TypeString(), contact.string.Type) - type!: SocialIdType + type!: SocialIdType @Prop(TypeString(), contact.string.Value) @Index(IndexKind.FullText) - value!: string + value!: string @Prop(TypeNumber(), contact.string.Confirmed) @ReadOnly() - verifiedOn?: number + verifiedOn?: number @Prop(TypeBoolean(), contact.string.Deleted) - isDeleted?: boolean + isDeleted?: boolean } @Model(contact.class.Person, contact.class.Contact) @@ -212,24 +212,24 @@ export class TSocialIdentity extends TAttachedDoc implements SocialIdentity { export class TPerson extends TContact implements Person { @Prop(TypeString(), getEmbeddedLabel('UUID')) @Hidden() - personUuid?: PersonUuid + personUuid?: PersonUuid @Prop(TypeDate(DateRangeMode.DATE, false), contact.string.Birthday) - birthday?: Timestamp + birthday?: Timestamp @Prop(CollectionType(contact.class.SocialIdentity), contact.string.SocialIds) - socialIds?: Collection + socialIds?: Collection @Prop(TypeRef(contact.class.UserProfile), contact.string.UserProfile) @ReadOnly() - profile?: Ref + profile?: Ref } @Model(contact.class.Member, core.class.AttachedDoc, DOMAIN_CONTACT) @UX(contact.string.Member, contact.icon.Person, undefined, 'name') export class TMember extends TAttachedDoc implements Member { @Prop(TypeRef(contact.class.Contact), contact.string.Contact) - contact!: Ref + contact!: Ref } @Model(contact.class.Organization, contact.class.Contact) @@ -237,10 +237,10 @@ export class TMember extends TAttachedDoc implements Member { export class TOrganization extends TContact implements Organization { @Prop(TypeCollaborativeDoc(), core.string.Description) @Index(IndexKind.FullText) - description!: MarkupBlobRef | null + description!: MarkupBlobRef | null @Prop(CollectionType(contact.class.Member), contact.string.Members) - members!: number + members!: number } @Model(contact.class.Status, core.class.AttachedDoc, DOMAIN_CONTACT) @@ -258,26 +258,26 @@ export class TEmployee extends TPerson implements Employee { @Prop(TypeBoolean(), contact.string.Active) @ReadOnly() @Hidden() - active!: boolean + active!: boolean @Prop(TypeString(), contact.string.Role) @ReadOnly() @Hidden() - role?: 'USER' | 'GUEST' + role?: 'USER' | 'GUEST' @Prop(CollectionType(contact.class.Status), contact.string.Status) @Hidden() - statuses?: number + statuses?: number @Prop(TypeString(), contact.string.Position) @Hidden() - position?: string | null + position?: string | null declare personUuid?: AccountUuid @Prop(TypeString(), contact.string.Timezone) @Hidden() - timezone?: string + timezone?: string } @Model(contact.class.ContactsTab, core.class.Doc, DOMAIN_MODEL) @@ -291,7 +291,7 @@ export class TContactsTab extends TDoc implements ContactsTab { export class TPersonSpace extends TSpace implements PersonSpace { @Prop(TypeRef(contact.class.Person), contact.string.Person) @Index(IndexKind.Indexed) - person!: Ref + person!: Ref } @Model(contact.class.UserRole, core.class.Doc, DOMAIN_ROLE) @@ -317,16 +317,16 @@ export class TWorkspaceMemberStatus extends TDoc implements WorkspaceMemberStatu @Prop(TypeAccountUuid(), core.string.Members) @Index(IndexKind.Indexed) - user!: AccountUuid + user!: AccountUuid @Prop(TypeString(), core.string.Description) - message!: string + message!: string @Prop(TypeTimestamp(), contact.string.StatusDueDate) - clearAt?: Timestamp + clearAt?: Timestamp } -export function createModel (builder: Builder): void { +export function createModel(builder: Builder): void { builder.createModel( TAvatarProvider, TChannelProvider, diff --git a/models/controlled-documents/package.json b/models/controlled-documents/package.json index 09495d40d9..093fa8443b 100644 --- a/models/controlled-documents/package.json +++ b/models/controlled-documents/package.json @@ -19,20 +19,20 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "eslint-config-prettier": "^8.8.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/attachment": "workspace:^0.7.0", diff --git a/models/controlled-documents/src/index.ts b/models/controlled-documents/src/index.ts index a093efcc28..60d3bbc8af 100644 --- a/models/controlled-documents/src/index.ts +++ b/models/controlled-documents/src/index.ts @@ -80,7 +80,7 @@ import { export { documentsId } from '@hcengineering/controlled-documents/src/index' export * from './types' -function defineRelationMetadata (builder: Builder): void { +function defineRelationMetadata(builder: Builder): void { const rel = ( ref: Ref>, field: string, @@ -112,7 +112,7 @@ function defineRelationMetadata (builder: Builder): void { rel(documents.class.ProjectDocument, 'document', documents.class.Document, 'forward') } -export function createModel (builder: Builder): void { +export function createModel(builder: Builder): void { builder.createModel( TDocumentSpace, TDocumentSpaceType, @@ -1121,7 +1121,7 @@ export function createModel (builder: Builder): void { documents.action.OpenDocumentInNewTab ) - function createPrintAction (target: Ref>, id?: Ref>): void { + function createPrintAction(target: Ref>, id?: Ref>): void { createAction( builder, { @@ -1179,7 +1179,7 @@ export function createModel (builder: Builder): void { defineTextActions(builder) } -export function defineNotifications (builder: Builder): void { +export function defineNotifications(builder: Builder): void { builder.mixin(documents.class.ControlledDocument, core.class.Class, activity.mixin.ActivityDoc, {}) builder.createDoc(activity.class.ActivityExtension, core.space.Model, { @@ -1365,7 +1365,7 @@ export function defineNotifications (builder: Builder): void { ) } -export function defineSearch (builder: Builder): void { +export function defineSearch(builder: Builder): void { builder.createDoc(core.class.FullTextSearchContext, core.space.Model, { toClass: documents.class.Document }) @@ -1391,7 +1391,7 @@ export function defineSearch (builder: Builder): void { ) } -export function defineTextActions (builder: Builder): void { +export function defineTextActions(builder: Builder): void { // Comment category builder.createDoc(textEditor.class.TextEditorAction, core.space.Model, { tags: ['text'], diff --git a/models/converter/package.json b/models/converter/package.json index 28b24ccef4..3c41117241 100644 --- a/models/converter/package.json +++ b/models/converter/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/core/package.json b/models/core/package.json index 600c2cc635..8085a587da 100644 --- a/models/core/package.json +++ b/models/core/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/core/src/index.ts b/models/core/src/index.ts index 0377df43ec..92f7a3eaf7 100644 --- a/models/core/src/index.ts +++ b/models/core/src/index.ts @@ -115,7 +115,7 @@ export * from './status' export * from './tx' export { core as default } -export function createModel (builder: Builder): void { +export function createModel(builder: Builder): void { builder.createModel( TObj, TDoc, diff --git a/models/core/src/security.ts b/models/core/src/security.ts index be3c300db4..7dc576ac05 100644 --- a/models/core/src/security.ts +++ b/models/core/src/security.ts @@ -62,31 +62,31 @@ import { TAttachedDoc, TClass, TDoc } from './core' export class TSpace extends TDoc implements Space { @Prop(TypeString(), core.string.Name) @Index(IndexKind.FullText) - name!: string + name!: string @Prop(TypeString(), core.string.Description) @Index(IndexKind.FullText) - description!: string + description!: string @Prop(TypeBoolean(), core.string.Private) - private!: boolean + private!: boolean @Prop(TypeBoolean(), core.string.Archived) @Index(IndexKind.Indexed) - archived!: boolean + archived!: boolean @Prop(ArrOf(TypeAccountUuid()), core.string.Members) @Index(IndexKind.Indexed) - members!: AccountUuid[] + members!: AccountUuid[] @Prop(ArrOf(TypeAccountUuid()), core.string.Owners) - owners?: AccountUuid[] + owners?: AccountUuid[] @Prop(TypeBoolean(), core.string.AutoJoin) - autoJoin?: boolean + autoJoin?: boolean @Prop(ArrOf(TypeString()), core.string.AutoJoinGuests) - autoJoinForRoles?: AccountRole[] + autoJoinForRoles?: AccountRole[] } @Model(core.class.SystemSpace, core.class.Space) @@ -97,7 +97,7 @@ export class TSystemSpace extends TSpace implements Space {} @UX(core.string.TypedSpace, undefined, undefined, 'name') export class TTypedSpace extends TSpace implements TypedSpace { @Prop(TypeRef(core.class.SpaceType), core.string.SpaceType) - type!: Ref + type!: Ref } @Model(core.class.SpaceTypeDescriptor, core.class.Doc, DOMAIN_MODEL) @@ -115,25 +115,25 @@ export class TSpaceTypeDescriptor extends TDoc implements SpaceTypeDescriptor { export class TSpaceType extends TDoc implements SpaceType { @Prop(TypeString(), core.string.Name) @Index(IndexKind.FullText) - name!: string + name!: string @Prop(TypeString(), core.string.ShortDescription) - shortDescription?: string + shortDescription?: string @Prop(TypeRef(core.class.SpaceTypeDescriptor), core.string.Descriptor) - descriptor!: Ref + descriptor!: Ref @Prop(TypeRef(core.class.Class), core.string.TargetClass) - targetClass!: Ref> + targetClass!: Ref> @Prop(Collection(core.class.Role), core.string.Roles) - roles!: CollectionSize + roles!: CollectionSize @Prop(ArrOf(TypeAccountUuid()), core.string.Members) - members!: AccountUuid[] + members!: AccountUuid[] @Prop(TypeBoolean(), core.string.AutoJoin) - autoJoin?: boolean + autoJoin?: boolean } @Model(core.class.Role, core.class.AttachedDoc, DOMAIN_MODEL) @@ -155,10 +155,10 @@ export class TRole extends TAttachedDoc implements Role { @Prop(TypeString(), core.string.Name) @Index(IndexKind.FullText) - name!: string + name!: string @Prop(ArrOf(TypeRef(core.class.Permission)), core.string.Permission) - permissions!: Ref[] + permissions!: Ref[] } @Model(core.class.Permission, core.class.Doc, DOMAIN_MODEL) @@ -202,23 +202,23 @@ export class TTxAccessLevel extends TClass implements TxAccessLevel { @Model(core.class.ModulePermissionGroup, core.class.Doc, DOMAIN_MODEL) export class TModulePermissionGroup extends TDoc implements ModulePermissionGroup { @Prop(TypeRef(core.class.Doc), core.string.AttachedTo) - application!: Ref + application!: Ref @Prop(TypeString(), core.string.Roles) - role!: AccountRole + role!: AccountRole @Prop(ArrOf(TypeRef(core.class.Permission)), core.string.Permission) - permissions!: Ref[] + permissions!: Ref[] @Prop(ArrOf(TypeRef(core.class.Permission)), core.string.Permission) - disabledPermissions?: Ref[] + disabledPermissions?: Ref[] @Prop(TypeRef(core.class.Class), core.string.Class) - spaceClass!: Ref> + spaceClass!: Ref> @Prop(TypeBoolean(), core.string.Name) - enabled!: boolean + enabled!: boolean @Prop(TypeNumber(), core.string.Order) - order?: number + order?: number } diff --git a/models/core/src/spaceType.ts b/models/core/src/spaceType.ts index f982484700..177f4772fc 100644 --- a/models/core/src/spaceType.ts +++ b/models/core/src/spaceType.ts @@ -28,7 +28,7 @@ const roles = [ } ] -export function defineSpaceType (builder: Builder): void { +export function defineSpaceType(builder: Builder): void { for (const role of roles) { const label = getRoleAttributeLabel(role.name) const roleAssgtType = ArrOf(TypeString()) diff --git a/models/desktop-downloads/package.json b/models/desktop-downloads/package.json index 461d89120d..9d7f7c3514 100644 --- a/models/desktop-downloads/package.json +++ b/models/desktop-downloads/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/desktop-preferences/package.json b/models/desktop-preferences/package.json index 63e7b5d16c..94950bdc16 100644 --- a/models/desktop-preferences/package.json +++ b/models/desktop-preferences/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/document/package.json b/models/document/package.json index e70735c38c..8591b90e37 100644 --- a/models/document/package.json +++ b/models/document/package.json @@ -18,19 +18,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/model-core": "workspace:^0.7.0", diff --git a/models/drive/package.json b/models/drive/package.json index 88a23f7756..745c096317 100644 --- a/models/drive/package.json +++ b/models/drive/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/emoji/package.json b/models/emoji/package.json index d8cb0ef968..b1d8a242db 100644 --- a/models/emoji/package.json +++ b/models/emoji/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/export/package.json b/models/export/package.json index d5739eb8a6..db1b856c22 100644 --- a/models/export/package.json +++ b/models/export/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/gmail/package.json b/models/gmail/package.json index bd3c58fe64..8a6b859105 100644 --- a/models/gmail/package.json +++ b/models/gmail/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/guest/package.json b/models/guest/package.json index ae7d59fe23..a9e10c9afa 100644 --- a/models/guest/package.json +++ b/models/guest/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/guest/src/index.ts b/models/guest/src/index.ts index 743b4d37cc..6e13556337 100644 --- a/models/guest/src/index.ts +++ b/models/guest/src/index.ts @@ -16,7 +16,7 @@ export class TPublicLink extends TDoc implements PublicLink { attachedTo!: Ref } -export function createModel (builder: Builder): void { +export function createModel(builder: Builder): void { builder.createModel(TPublicLink) builder.createDoc(core.class.DomainIndexConfiguration, core.space.Model, { diff --git a/models/hr/package.json b/models/hr/package.json index b39d7921e9..89df350646 100644 --- a/models/hr/package.json +++ b/models/hr/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/contact": "workspace:^0.7.0", diff --git a/models/hr/src/index.ts b/models/hr/src/index.ts index dd6841ec1f..b438dc44f4 100644 --- a/models/hr/src/index.ts +++ b/models/hr/src/index.ts @@ -72,52 +72,52 @@ export const DOMAIN_HR = 'hr' as Domain export class TDepartment extends TDoc implements Department { @Prop(TypeRef(hr.class.Department), hr.string.ParentDepartmentLabel) @Index(IndexKind.Indexed) - parent?: Ref + parent?: Ref @Prop(TypeString(), core.string.Name) @Index(IndexKind.FullText) - name!: string + name!: string @Prop(TypeString(), core.string.Description) @Index(IndexKind.FullText) - description!: string + description!: string @Prop(Collection(contact.class.Channel), contact.string.ContactInfo) - channels?: number + channels?: number @Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: number + attachments?: number @Prop(Collection(chunter.class.ChatMessage), chunter.string.Comments) - comments?: number + comments?: number avatar?: string | null @Prop(TypeRef(contact.mixin.Employee), hr.string.TeamLead) - teamLead!: Ref | null + teamLead!: Ref | null @Prop(ArrOf(TypeRef(contact.mixin.Employee)), contact.string.Members) - members!: Arr> + members!: Arr> @Prop(ArrOf(TypeRef(contact.class.Contact)), hr.string.Subscribers) - subscribers?: Arr> + subscribers?: Arr> @Prop(ArrOf(TypeRef(contact.mixin.Employee)), hr.string.Managers) - managers!: Arr> + managers!: Arr> } @Mixin(hr.mixin.Staff, contact.mixin.Employee) @UX(hr.string.Staff, hr.icon.HR, 'STFF', 'name') export class TStaff extends TEmployee implements Staff { @Prop(TypeRef(hr.class.Department), hr.string.Department) - department!: Ref + department!: Ref } @Model(hr.class.RequestType, core.class.Doc, DOMAIN_MODEL) @UX(hr.string.RequestType) export class TRequestType extends TDoc implements RequestType { @Prop(TypeIntlString(), core.string.Name) - label!: IntlString + label!: IntlString icon!: Asset value!: number @@ -136,7 +136,7 @@ export class TTzDate extends TType { /** * @public */ -export function TypeTzDate (): Type { +export function TypeTzDate(): Type { return { _class: hr.class.TzDate, label: core.string.Timestamp } } @@ -153,27 +153,27 @@ export class TRequest extends TAttachedDoc implements Request { @Prop(TypeRef(hr.class.Department), hr.string.Department) @Index(IndexKind.Indexed) - department!: Ref + department!: Ref @Prop(TypeRef(hr.class.RequestType), hr.string.RequestType) @Hidden() - type!: Ref + type!: Ref @Prop(Collection(chunter.class.ChatMessage), chunter.string.Comments) - comments?: number + comments?: number @Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: number + attachments?: number @Prop(TypeMarkup(), core.string.Description) @Index(IndexKind.FullText) - description!: Markup + description!: Markup @Prop(TypeTzDate(), calendar.string.Date) - tzDate!: TzDate + tzDate!: TzDate @Prop(TypeTzDate(), calendar.string.DueTo) - tzDueDate!: TzDate + tzDueDate!: TzDate } @Model(hr.class.PublicHoliday, core.class.Doc, DOMAIN_HR) @@ -185,7 +185,7 @@ export class TPublicHoliday extends TDoc implements PublicHoliday { department!: Ref } -export function createModel (builder: Builder): void { +export function createModel(builder: Builder): void { builder.createModel(TDepartment, TRequest, TRequestType, TPublicHoliday, TStaff, TTzDate) builder.createDoc( diff --git a/models/huly-mail/package.json b/models/huly-mail/package.json index a80338c253..036c211c36 100644 --- a/models/huly-mail/package.json +++ b/models/huly-mail/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/model": "workspace:^0.7.17", diff --git a/models/inbox/package.json b/models/inbox/package.json index 1382f8cb41..9bc6dd767e 100644 --- a/models/inbox/package.json +++ b/models/inbox/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/card": "workspace:^0.7.0", diff --git a/models/inventory/package.json b/models/inventory/package.json index c60c81b50e..fba3949c0b 100644 --- a/models/inventory/package.json +++ b/models/inventory/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/lead/package.json b/models/lead/package.json index 2c6a9117a9..184a633fc3 100644 --- a/models/lead/package.json +++ b/models/lead/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/love/package.json b/models/love/package.json index 306894d7c7..9d08828e12 100644 --- a/models/love/package.json +++ b/models/love/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/love/src/index.ts b/models/love/src/index.ts index e3ae2d995f..4ab0c9b10b 100644 --- a/models/love/src/index.ts +++ b/models/love/src/index.ts @@ -97,11 +97,11 @@ export const DOMAIN_MEETING_MINUTES = 'meeting-minutes' as Domain export class TRoom extends TDoc implements Room { @Prop(TypeString(), core.string.Name) @Index(IndexKind.FullText) - name!: string + name!: string @Prop(TypeCollaborativeDoc(), core.string.Description) @Index(IndexKind.FullText) - description!: MarkupBlobRef | null + description!: MarkupBlobRef | null type!: RoomType @@ -110,7 +110,7 @@ export class TRoom extends TDoc implements Room { @Prop(TypeRef(love.class.Floor), love.string.Floor) @ReadOnly() // @Index(IndexKind.Indexed) - floor!: Ref + floor!: Ref width!: number height!: number @@ -119,22 +119,22 @@ export class TRoom extends TDoc implements Room { @Prop(TypeString(), love.string.Language, { editor: love.component.RoomLanguageEditor }) @Hidden() - language!: RoomLanguage + language!: RoomLanguage @Prop(TypeBoolean(), love.string.StartWithTranscription) - startWithTranscription!: boolean + startWithTranscription!: boolean @Prop(TypeBoolean(), love.string.StartWithRecording) - startWithRecording!: boolean + startWithRecording!: boolean @Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: number + attachments?: number @Prop(PropCollection(love.class.MeetingMinutes), love.string.MeetingMinutes) - meetings?: number + meetings?: number @Prop(PropCollection(chunter.class.ChatMessage), activity.string.Messages) - messages?: number + messages?: number } @Model(love.class.Office, love.class.Room) @@ -143,7 +143,7 @@ export class TOffice extends TRoom implements Office { @Prop(TypeRef(contact.mixin.Employee), contact.string.Employee) @Index(IndexKind.Indexed) @ReadOnly() - person!: Ref | null + person!: Ref | null } @Model(love.class.Floor, core.class.Doc, DOMAIN_LOVE) @@ -155,13 +155,13 @@ export class TFloor extends TDoc implements Floor { export class TParticipantInfo extends TDoc implements ParticipantInfo { name!: string @Prop(TypeRef(contact.class.Person), getEmbeddedLabel('Person')) - person!: Ref + person!: Ref @Prop(TypeRef(love.class.MeetingMinutes), love.string.MeetingMinutes) - meeting!: Ref + meeting!: Ref @Prop(TypeRef(love.class.Room), love.string.Room) - room!: Ref + room!: Ref x!: number y!: number @@ -184,21 +184,21 @@ export class TPendingRecording extends TAttachedDoc implements PendingRecording egressId?: string @Prop(TypeString(), love.string.Recording) - format!: RecordingFormat + format!: RecordingFormat @Prop(TypeTimestamp(), love.string.MeetingStart) - startedAt!: Timestamp + startedAt!: Timestamp roomName!: string @Prop(TypeString(), core.string.Name) - name!: string + name!: string @Prop(TypeString(), getEmbeddedLabel('Size')) - size?: number + size?: number @Prop(TypeString(), getEmbeddedLabel('Status')) - status!: 'active' | 'cancelled' | 'completed' + status!: 'active' | 'cancelled' | 'completed' } @Model(love.class.DevicesPreference, preference.class.Preference) @@ -239,17 +239,17 @@ export class TMeetingMinutes extends TAttachedDoc implements MeetingMinutes, Tod @Prop(TypeString(), view.string.Title) @Index(IndexKind.FullText) - title!: string + title!: string @Prop(TypeCollaborativeDoc(), core.string.Description) @Index(IndexKind.FullText) - description!: MarkupBlobRef | null + description!: MarkupBlobRef | null @Prop(TypeAny(love.component.MeetingMinutesStatusPresenter, love.string.Status), love.string.Status, { editor: love.component.MeetingMinutesStatusPresenter }) @ReadOnly() - status!: MeetingStatus + status!: MeetingStatus @Prop( TypeAny(love.component.MeetingMinutesTranscriptionStatePresenter, love.string.TranscriptionState), @@ -259,7 +259,7 @@ export class TMeetingMinutes extends TAttachedDoc implements MeetingMinutes, Tod } ) @ReadOnly() - transcriptionState!: TranscriptionState + transcriptionState!: TranscriptionState @Prop( TypeAny(love.component.MeetingMinutesRecordingStatePresenter, love.string.RecordingState), @@ -269,21 +269,21 @@ export class TMeetingMinutes extends TAttachedDoc implements MeetingMinutes, Tod } ) @ReadOnly() - recordingState!: RecordingState + recordingState!: RecordingState @Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: number + attachments?: number @Prop(Collection(love.class.PendingRecording), love.string.Recording, { collectionEditor: love.component.PendingRecordingPresenter }) - recordings?: number + recordings?: number @Prop(PropCollection(chunter.class.ChatMessage), love.string.Transcription) - transcription?: number + transcription?: number @Prop(PropCollection(chunter.class.ChatMessage), activity.string.Messages) - messages?: number + messages?: number @Prop(TypeDate(DateRangeMode.DATETIME), love.string.MeetingStart, { editor: view.component.DateTimePresenter }) @ReadOnly() @@ -292,10 +292,10 @@ export class TMeetingMinutes extends TAttachedDoc implements MeetingMinutes, Tod @Prop(TypeDate(DateRangeMode.DATETIME), love.string.MeetingEnd, { editor: view.component.DateTimePresenter }) @ReadOnly() - meetingEnd?: Timestamp + meetingEnd?: Timestamp @Prop(Collection(time.class.ToDo), getEmbeddedLabel('Action Items')) - todos?: CollectionSize + todos?: CollectionSize access!: RoomAccess @@ -315,30 +315,30 @@ export const DOMAIN_USER_MEETING_INVITE = 'user-meeting-invite' as Domain export class TUserMeetingInvite extends TDoc implements UserMeetingInvite { @Prop(TypeString(), love.string.Kind) @Index(IndexKind.Indexed) - kind!: 'invite-request' | 'invite-response' + kind!: 'invite-request' | 'invite-response' @Prop(TypeRef(contact.class.Person), love.string.From) @Index(IndexKind.Indexed) - from!: Ref + from!: Ref @Prop(TypeRef(contact.class.Person), love.string.To) @Index(IndexKind.Indexed) - to!: Ref + to!: Ref @Prop(TypeRef(love.class.MeetingMinutes), love.string.Meeting) - meeting?: Ref + meeting?: Ref @Prop(TypeTimestamp(), love.string.ExpiresAt) @Index(IndexKind.Indexed) - expiresAt!: Timestamp + expiresAt!: Timestamp @Prop(TypeString(), love.string.Status) - status!: 'pending' | 'accepted' | 'declined' + status!: 'pending' | 'accepted' | 'declined' } export default love -export function createModel (builder: Builder): void { +export function createModel(builder: Builder): void { builder.createModel( TRoom, TFloor, diff --git a/models/mail/package.json b/models/mail/package.json index b7e5092b9f..59ca5909e8 100644 --- a/models/mail/package.json +++ b/models/mail/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/media/package.json b/models/media/package.json index 4ed34d2574..1f9ca5eeda 100644 --- a/models/media/package.json +++ b/models/media/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/notification/package.json b/models/notification/package.json index 06f341f679..2cddb2320d 100644 --- a/models/notification/package.json +++ b/models/notification/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/notification/src/index.ts b/models/notification/src/index.ts index ac808504f4..a850e4f62b 100644 --- a/models/notification/src/index.ts +++ b/models/notification/src/index.ts @@ -171,7 +171,7 @@ export class TNotificationProviderSetting extends TPreference implements Notific @UX(notification.string.Collaborators) export class TCollaborators extends TDoc implements Collaborators { @Prop(CollectionType(core.class.Collaborator), notification.string.Collaborators) - collaborators!: CollectionSize + collaborators!: CollectionSize } @Mixin(notification.mixin.NotificationObjectPresenter, core.class.Class) @@ -193,31 +193,31 @@ export class TNotificationContextPresenter extends TClass implements Notificatio export class TDocNotifyContext extends TDoc implements DocNotifyContext { @Prop(TypeAccountUuid(), core.string.Account) @Index(IndexKind.Indexed) - user!: AccountUuid + user!: AccountUuid @Prop(TypeRef(core.class.Doc), core.string.Object) @Index(IndexKind.Indexed) - objectId!: Ref + objectId!: Ref @Prop(TypeRef(core.class.Class), core.string.Class) - objectClass!: Ref> + objectClass!: Ref> @Prop(TypeRef(core.class.Space), core.string.Space) - objectSpace!: Ref + objectSpace!: Ref declare space: Ref @Prop(TypeDate(), core.string.Date) - lastViewedTimestamp?: Timestamp + lastViewedTimestamp?: Timestamp @Prop(TypeDate(), core.string.Date) - lastUpdateTimestamp?: Timestamp + lastUpdateTimestamp?: Timestamp @Prop(TypeBoolean(), notification.string.Pinned) - isPinned!: boolean + isPinned!: boolean @Prop(TypeBoolean(), view.string.Hide) - hidden!: boolean + hidden!: boolean tx?: Ref> } @@ -226,18 +226,18 @@ export class TDocNotifyContext extends TDoc implements DocNotifyContext { export class TInboxNotification extends TDoc implements InboxNotification { @Prop(TypeRef(notification.class.DocNotifyContext), core.string.AttachedTo) @Index(IndexKind.Indexed) - docNotifyContext!: Ref + docNotifyContext!: Ref @Prop(TypeAccountUuid(), core.string.Account) @Index(IndexKind.Indexed) - user!: AccountUuid + user!: AccountUuid @Prop(TypeBoolean(), core.string.Boolean) // @Index(IndexKind.Indexed) - isViewed!: boolean + isViewed!: boolean @Prop(TypeBoolean(), core.string.Boolean) - archived!: boolean + archived!: boolean objectId!: Ref objectClass!: Ref> @@ -255,30 +255,30 @@ export class TInboxNotification extends TDoc implements InboxNotification { @Model(notification.class.ActivityInboxNotification, notification.class.InboxNotification) export class TActivityInboxNotification extends TInboxNotification implements ActivityInboxNotification { @Prop(TypeRef(activity.class.ActivityMessage), core.string.AttachedTo) - attachedTo!: Ref + attachedTo!: Ref @Prop(TypeRef(activity.class.ActivityMessage), core.string.AttachedToClass) - attachedToClass!: Ref> + attachedToClass!: Ref> } @Model(notification.class.CommonInboxNotification, notification.class.InboxNotification) export class TCommonInboxNotification extends TInboxNotification implements CommonInboxNotification { @Prop(TypeIntlString(), core.string.String) - header?: IntlString + header?: IntlString @Prop(TypeRef(core.class.Doc), core.string.Object) - headerObjectId?: Ref + headerObjectId?: Ref @Prop(TypeRef(core.class.Doc), core.string.Class) - headerObjectClass?: Ref> + headerObjectClass?: Ref> @Prop(TypeIntlString(), notification.string.Message) - message?: IntlString + message?: IntlString headerIcon?: Asset @Prop(TypeMarkup(), notification.string.Message) - messageHtml?: Markup + messageHtml?: Markup props?: Record icon?: Asset @@ -288,10 +288,10 @@ export class TCommonInboxNotification extends TInboxNotification implements Comm @Model(notification.class.MentionInboxNotification, notification.class.CommonInboxNotification) export class TMentionInboxNotification extends TCommonInboxNotification implements MentionInboxNotification { @Prop(TypeRef(core.class.Doc), core.string.Object) - mentionedIn!: Ref + mentionedIn!: Ref @Prop(TypeRef(core.class.Doc), core.string.Class) - mentionedInClass!: Ref> + mentionedInClass!: Ref> } @Model(notification.class.ReactionInboxNotification, notification.class.CommonInboxNotification) @@ -299,10 +299,10 @@ export class TReactionInboxNotification extends TCommonInboxNotification impleme emoji!: string ref!: Ref @Prop(TypeRef(activity.class.ActivityMessage), core.string.AttachedTo) - attachedTo!: Ref + attachedTo!: Ref @Prop(TypeRef(activity.class.ActivityMessage), core.string.AttachedToClass) - attachedToClass!: Ref> + attachedToClass!: Ref> } @Model(notification.class.ActivityNotificationViewlet, core.class.Doc, DOMAIN_MODEL) @@ -357,7 +357,7 @@ export const notificationActionTemplates = template({ } }) -export function createModel (builder: Builder): void { +export function createModel(builder: Builder): void { builder.createModel( TCollaborators, TBrowserNotification, @@ -830,7 +830,7 @@ export function createModel (builder: Builder): void { }) } -export function generateClassNotificationTypes ( +export function generateClassNotificationTypes( builder: Builder, _class: Ref>, group: Ref, diff --git a/models/preference/package.json b/models/preference/package.json index 9ac9ee34ac..14cd5fd01a 100644 --- a/models/preference/package.json +++ b/models/preference/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/presence/package.json b/models/presence/package.json index b4215d67af..c2f2da4baf 100644 --- a/models/presence/package.json +++ b/models/presence/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/presentation/package.json b/models/presentation/package.json index 3292bcabda..224951b070 100644 --- a/models/presentation/package.json +++ b/models/presentation/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/print/package.json b/models/print/package.json index e298bcae25..5369edb7f9 100644 --- a/models/print/package.json +++ b/models/print/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/process/package.json b/models/process/package.json index e62bf84d1c..be3e1fb74c 100644 --- a/models/process/package.json +++ b/models/process/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/contact": "workspace:^0.7.0", diff --git a/models/products/package.json b/models/products/package.json index 3a7b5cc413..27d77362e1 100644 --- a/models/products/package.json +++ b/models/products/package.json @@ -21,21 +21,21 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "eslint-config-prettier": "^8.8.0", "@types/node": "^24.13.3", "ts-node": "^10.9.2", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/attachment": "workspace:^0.7.0", diff --git a/models/pulse/package.json b/models/pulse/package.json index 6f3ecc736b..f9b4ade9f1 100644 --- a/models/pulse/package.json +++ b/models/pulse/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/pulse/src/index.ts b/models/pulse/src/index.ts index 687761a08a..328185d632 100644 --- a/models/pulse/src/index.ts +++ b/models/pulse/src/index.ts @@ -38,7 +38,7 @@ export class TTypingIndicator extends TDoc implements TypingIndicator { status?: IntlString } -export function createModel (builder: Builder): void { +export function createModel(builder: Builder): void { builder.createModel(TDocumentPresence, TTypingIndicator) builder.mixin(pulse.class.DocumentPresence, core.class.Class, core.mixin.TransientTTL, { diff --git a/models/questions/package.json b/models/questions/package.json index 4f6c6e3882..331b396e82 100644 --- a/models/questions/package.json +++ b/models/questions/package.json @@ -21,18 +21,18 @@ "_phase:validate": "compile validate" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", diff --git a/models/rating/package.json b/models/rating/package.json index a2045d7995..ccabdb6c4c 100644 --- a/models/rating/package.json +++ b/models/rating/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/recorder/package.json b/models/recorder/package.json index c70e488e1d..8c2b341d7a 100644 --- a/models/recorder/package.json +++ b/models/recorder/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/model": "workspace:^0.7.17", diff --git a/models/recruit/package.json b/models/recruit/package.json index daeb8935c2..bb3f6683e0 100644 --- a/models/recruit/package.json +++ b/models/recruit/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@anticrm/skillset": "^0.6.0", diff --git a/models/request/package.json b/models/request/package.json index 1cdfa2693c..dc5739213b 100644 --- a/models/request/package.json +++ b/models/request/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/server-activity/package.json b/models/server-activity/package.json index 8e4c3a0e4f..f36a4208d0 100644 --- a/models/server-activity/package.json +++ b/models/server-activity/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/server-ai-bot/package.json b/models/server-ai-bot/package.json index d0ab15dcc8..e9a94ab7a5 100644 --- a/models/server-ai-bot/package.json +++ b/models/server-ai-bot/package.json @@ -18,19 +18,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/server-attachment/package.json b/models/server-attachment/package.json index 0de9ecfcae..0913655c70 100644 --- a/models/server-attachment/package.json +++ b/models/server-attachment/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/attachment": "workspace:^0.7.0", diff --git a/models/server-calendar/package.json b/models/server-calendar/package.json index 522a9040de..049166b4df 100644 --- a/models/server-calendar/package.json +++ b/models/server-calendar/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-card/package.json b/models/server-card/package.json index 4992262992..84257c6323 100644 --- a/models/server-card/package.json +++ b/models/server-card/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-chunter/package.json b/models/server-chunter/package.json index 3c8cdbe1ea..40bb8f3cf5 100644 --- a/models/server-chunter/package.json +++ b/models/server-chunter/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-collaboration/package.json b/models/server-collaboration/package.json index 8a13645598..46a767148b 100644 --- a/models/server-collaboration/package.json +++ b/models/server-collaboration/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-contact/package.json b/models/server-contact/package.json index 977295d19d..fc03e38808 100644 --- a/models/server-contact/package.json +++ b/models/server-contact/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-controlled-documents/package.json b/models/server-controlled-documents/package.json index 61b1c13bac..e9ce520662 100644 --- a/models/server-controlled-documents/package.json +++ b/models/server-controlled-documents/package.json @@ -18,20 +18,20 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "eslint-config-prettier": "^8.8.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/contact": "workspace:^0.7.0", diff --git a/models/server-core/package.json b/models/server-core/package.json index 93df9c2e92..1737c084f3 100644 --- a/models/server-core/package.json +++ b/models/server-core/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-document/package.json b/models/server-document/package.json index c7cfe8cd18..0bbbd7731a 100644 --- a/models/server-document/package.json +++ b/models/server-document/package.json @@ -18,20 +18,20 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "eslint-config-prettier": "^8.8.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-drive/package.json b/models/server-drive/package.json index a9f89f90d0..03d4922263 100644 --- a/models/server-drive/package.json +++ b/models/server-drive/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-gmail/package.json b/models/server-gmail/package.json index 679cd1ba2f..4b421a92a6 100644 --- a/models/server-gmail/package.json +++ b/models/server-gmail/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-guest/package.json b/models/server-guest/package.json index 62b6e451ad..42cd1c1abb 100644 --- a/models/server-guest/package.json +++ b/models/server-guest/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-hr/package.json b/models/server-hr/package.json index 4bebcb67ea..22208c5e16 100644 --- a/models/server-hr/package.json +++ b/models/server-hr/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-inventory/package.json b/models/server-inventory/package.json index 58b1fd764b..ec32c12ee6 100644 --- a/models/server-inventory/package.json +++ b/models/server-inventory/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-lead/package.json b/models/server-lead/package.json index 7da79b88b4..4fab164eb6 100644 --- a/models/server-lead/package.json +++ b/models/server-lead/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-love/package.json b/models/server-love/package.json index 6fbf02ee3c..59eac92c07 100644 --- a/models/server-love/package.json +++ b/models/server-love/package.json @@ -18,19 +18,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/contact": "workspace:^0.7.0", diff --git a/models/server-notification/package.json b/models/server-notification/package.json index 1b13c69ae9..4139b96eb8 100644 --- a/models/server-notification/package.json +++ b/models/server-notification/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/server-process/package.json b/models/server-process/package.json index f537fba069..2e06ed7ad5 100644 --- a/models/server-process/package.json +++ b/models/server-process/package.json @@ -18,20 +18,20 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "eslint-config-prettier": "^8.8.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-products/package.json b/models/server-products/package.json index 95b5b36b4a..9d473070bb 100644 --- a/models/server-products/package.json +++ b/models/server-products/package.json @@ -18,20 +18,20 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "eslint-config-prettier": "^8.8.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-recruit/package.json b/models/server-recruit/package.json index 9a918207ec..0c0e9f5cb3 100644 --- a/models/server-recruit/package.json +++ b/models/server-recruit/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-request/package.json b/models/server-request/package.json index 12e9b16062..5a20a9e46d 100644 --- a/models/server-request/package.json +++ b/models/server-request/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-setting/package.json b/models/server-setting/package.json index c0ee7b0a88..3c9bbe6bc0 100644 --- a/models/server-setting/package.json +++ b/models/server-setting/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-tags/package.json b/models/server-tags/package.json index 28bf98da66..25c2a56010 100644 --- a/models/server-tags/package.json +++ b/models/server-tags/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-task/package.json b/models/server-task/package.json index 4143bdeb48..fa9e1ed9b3 100644 --- a/models/server-task/package.json +++ b/models/server-task/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-telegram/package.json b/models/server-telegram/package.json index 7a2e527432..2fe9a9ae55 100644 --- a/models/server-telegram/package.json +++ b/models/server-telegram/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-templates/package.json b/models/server-templates/package.json index 05adc0ae8e..3393681a47 100644 --- a/models/server-templates/package.json +++ b/models/server-templates/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-time/package.json b/models/server-time/package.json index 7548481b93..190dc6b930 100644 --- a/models/server-time/package.json +++ b/models/server-time/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-tracker/package.json b/models/server-tracker/package.json index 317c9a527f..f4e8c622ef 100644 --- a/models/server-tracker/package.json +++ b/models/server-tracker/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-training/package.json b/models/server-training/package.json index 4896c70ea6..b7e18cb749 100644 --- a/models/server-training/package.json +++ b/models/server-training/package.json @@ -18,20 +18,20 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "eslint-config-prettier": "^8.8.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-view/package.json b/models/server-view/package.json index 3419066ec7..9fbf9c63eb 100644 --- a/models/server-view/package.json +++ b/models/server-view/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/setting/package.json b/models/setting/package.json index 006fa7b096..a57bb42a02 100644 --- a/models/setting/package.json +++ b/models/setting/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/support/package.json b/models/support/package.json index b85e6787cf..0eef6b07e9 100644 --- a/models/support/package.json +++ b/models/support/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/survey/package.json b/models/survey/package.json index 76748332e6..15d0326bab 100644 --- a/models/survey/package.json +++ b/models/survey/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/tags/package.json b/models/tags/package.json index 577ee82300..b869d58ded 100644 --- a/models/tags/package.json +++ b/models/tags/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/task/package.json b/models/task/package.json index 77536479f8..744307e4ae 100644 --- a/models/task/package.json +++ b/models/task/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/contact": "workspace:^0.7.0", diff --git a/models/telegram/package.json b/models/telegram/package.json index 62214aa08c..4156172cdd 100644 --- a/models/telegram/package.json +++ b/models/telegram/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/templates/package.json b/models/templates/package.json index c19b00eea6..99e7b1edf6 100644 --- a/models/templates/package.json +++ b/models/templates/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/test-management/package.json b/models/test-management/package.json index d07ff94c61..920f5e525e 100644 --- a/models/test-management/package.json +++ b/models/test-management/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/attachment": "workspace:^0.7.0", diff --git a/models/text-editor/package.json b/models/text-editor/package.json index 2305441cd6..024a16ffe3 100644 --- a/models/text-editor/package.json +++ b/models/text-editor/package.json @@ -19,20 +19,20 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@hcengineering/text-editor-resources": "workspace:^0.7.0", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/time/package.json b/models/time/package.json index 41672addfe..1303413157 100644 --- a/models/time/package.json +++ b/models/time/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/models/tracker/package.json b/models/tracker/package.json index edff0a2f7e..11d0c14d05 100644 --- a/models/tracker/package.json +++ b/models/tracker/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/training/package.json b/models/training/package.json index dd0ae31ecf..2172295494 100644 --- a/models/training/package.json +++ b/models/training/package.json @@ -21,18 +21,18 @@ "_phase:validate": "compile validate" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", diff --git a/models/uploader/package.json b/models/uploader/package.json index 0650ebb563..f208ac81d0 100644 --- a/models/uploader/package.json +++ b/models/uploader/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/view/package.json b/models/view/package.json index 5f54c26789..5f86dc6937 100644 --- a/models/view/package.json +++ b/models/view/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/workbench/package.json b/models/workbench/package.json index 8949b67911..89177553d9 100644 --- a/models/workbench/package.json +++ b/models/workbench/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/packages/analytics-providers/package.json b/packages/analytics-providers/package.json index 1bc1d5f76b..d05d039d26 100644 --- a/packages/analytics-providers/package.json +++ b/packages/analytics-providers/package.json @@ -25,19 +25,19 @@ "cross-env": "~7.0.3", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "esbuild": "^0.25.10", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/packages/billing-client/package.json b/packages/billing-client/package.json index 2b68472b24..b831ca5ad5 100644 --- a/packages/billing-client/package.json +++ b/packages/billing-client/package.json @@ -25,19 +25,19 @@ "cross-env": "~7.0.3", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "esbuild": "^0.25.10", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/packages/highlight/package.json b/packages/highlight/package.json index 86b0c8e478..90aa39d68a 100644 --- a/packages/highlight/package.json +++ b/packages/highlight/package.json @@ -18,24 +18,23 @@ "devDependencies": { "svelte-loader": "^3.2.0", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", "prettier-plugin-svelte": "^3.4.0", - "eslint": "^8.54.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "eslint-plugin-svelte": "^2.35.1", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "svelte": "^4.2.20", diff --git a/packages/hls/package.json b/packages/hls/package.json index d3007bb8c6..fcbaffdfb0 100644 --- a/packages/hls/package.json +++ b/packages/hls/package.json @@ -18,25 +18,24 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/dompurify": "^3.0.5", - "@types/jest": "^29.5.5", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", - "jest": "^29.7.0", + "@types/jest": "^30.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", + "jest": "^30.4.2", "prettier": "^3.6.2", "prettier-plugin-svelte": "^3.4.0", "sass": "^1.80.0", "svelte-check": "^3.6.9", - "svelte-eslint-parser": "^0.33.1", + "svelte-eslint-parser": "^1.8.1", "svelte-loader": "^3.2.0", "svelte-preprocess": "^5.1.4", - "ts-jest": "^29.1.1", - "typescript": "^5.9.3" + "ts-jest": "^29.4.12", + "typescript": "^5.9.3", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/packages/importer/package.json b/packages/importer/package.json index 16830a600f..83e4c7f257 100644 --- a/packages/importer/package.json +++ b/packages/importer/package.json @@ -18,19 +18,19 @@ "_phase:validate": "compile validate" }, "devDependencies": { + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", "@types/mime-types": "~2.1.1", "@types/js-yaml": "^4.0.9" diff --git a/packages/integration-client/package.json b/packages/integration-client/package.json index 0abe725168..dbc0eeb993 100644 --- a/packages/integration-client/package.json +++ b/packages/integration-client/package.json @@ -22,23 +22,23 @@ "_phase:validate": "compile validate" }, "devDependencies": { + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0", "cross-env": "~7.0.3", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "esbuild": "^0.25.10", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", + "jest": "^30.4.2", "jest-fetch-mock": "^3.0.3", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0" }, "dependencies": { "@hcengineering/account-client": "workspace:^0.7.25", diff --git a/packages/kanban/package.json b/packages/kanban/package.json index 714d6a4c98..34af4af2e6 100644 --- a/packages/kanban/package.json +++ b/packages/kanban/package.json @@ -21,21 +21,20 @@ "svelte-preprocess": "^5.1.4", "svelte-check": "^3.6.9", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", "prettier-plugin-svelte": "^3.4.0", - "eslint": "^8.54.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/ui": "workspace:^0.7.0", diff --git a/packages/kvs-client/package.json b/packages/kvs-client/package.json index 530ad4f03b..cfd83bb679 100644 --- a/packages/kvs-client/package.json +++ b/packages/kvs-client/package.json @@ -25,20 +25,20 @@ "cross-env": "~7.0.3", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "esbuild": "^0.25.10", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", + "jest": "^30.4.2", "jest-fetch-mock": "^3.0.3", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/packages/panel/package.json b/packages/panel/package.json index 8990e3d2f8..b7ad12cb58 100644 --- a/packages/panel/package.json +++ b/packages/panel/package.json @@ -21,21 +21,20 @@ "svelte-preprocess": "^5.1.4", "svelte-check": "^3.6.9", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", "prettier-plugin-svelte": "^3.4.0", - "eslint": "^8.54.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/ui": "workspace:^0.7.0", diff --git a/packages/payment-client/package.json b/packages/payment-client/package.json index 28a22ff9cd..20a7d5280a 100644 --- a/packages/payment-client/package.json +++ b/packages/payment-client/package.json @@ -25,19 +25,19 @@ "cross-env": "~7.0.3", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "esbuild": "^0.25.10", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/packages/presentation/package.json b/packages/presentation/package.json index e9f6e4e300..9249bafdb2 100644 --- a/packages/presentation/package.json +++ b/packages/presentation/package.json @@ -16,29 +16,28 @@ "_phase:validate": "compile validate" }, "devDependencies": { + "eslint-config-love": "^155.0.0", "svelte-loader": "^3.2.0", "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", "prettier-plugin-svelte": "^3.4.0", - "eslint": "^8.54.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", "@testing-library/jest-dom": "^6.6.3", "jest-environment-jsdom": "^30.2.0", - "svelte-eslint-parser": "^0.33.1", + "svelte-eslint-parser": "^1.8.1", "@types/png-chunks-extract": "^1.0.2" }, "dependencies": { diff --git a/packages/rekoni/package.json b/packages/rekoni/package.json index 2a59782688..d9cacd217a 100644 --- a/packages/rekoni/package.json +++ b/packages/rekoni/package.json @@ -24,18 +24,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/packages/theme/package.json b/packages/theme/package.json index 34098d415a..36ff89ca62 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -18,22 +18,21 @@ "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", "prettier-plugin-svelte": "^3.4.0", - "eslint": "^8.54.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "svelte": "^4.2.20", diff --git a/packages/ui/package.json b/packages/ui/package.json index 790803bd6f..f2d28fa6e8 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -20,25 +20,24 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/dompurify": "^3.0.5", - "@types/jest": "^29.5.5", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", - "jest": "^29.7.0", + "@types/jest": "^30.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", + "jest": "^30.4.2", "prettier": "^3.6.2", "prettier-plugin-svelte": "^3.4.0", "sass": "^1.80.0", "svelte-check": "^3.6.9", - "svelte-eslint-parser": "^0.33.1", + "svelte-eslint-parser": "^1.8.1", "svelte-loader": "^3.2.0", "svelte-preprocess": "^5.1.4", - "ts-jest": "^29.1.1", - "typescript": "^5.9.3" + "ts-jest": "^29.4.12", + "typescript": "^5.9.3", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/plugins/achievement-assets/package.json b/plugins/achievement-assets/package.json index 8143d26757..0b6039dacb 100644 --- a/plugins/achievement-assets/package.json +++ b/plugins/achievement-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/achievement-resources/package.json b/plugins/achievement-resources/package.json index e515ba066a..6e970efb56 100644 --- a/plugins/achievement-resources/package.json +++ b/plugins/achievement-resources/package.json @@ -16,19 +16,17 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "prettier-plugin-svelte": "^3.4.0", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "typescript": "^5.9.3", "svelte": "^4.2.20", "svelte-check": "^3.6.9", @@ -38,8 +36,9 @@ "autoprefixer": "^10.4.14", "tailwindcss": "^3.3.5", "sass": "^1.80.0", - "eslint-plugin-svelte": "^2.35.1", - "svelte-eslint-parser": "^0.33.1" + "eslint-plugin-svelte": "^3.23.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/achievement/package.json b/plugins/achievement/package.json index 14ace6c1bf..ac11c7ba40 100644 --- a/plugins/achievement/package.json +++ b/plugins/achievement/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/activity-assets/package.json b/plugins/activity-assets/package.json index 91c2365b98..0a872b34e1 100644 --- a/plugins/activity-assets/package.json +++ b/plugins/activity-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/activity-resources/package.json b/plugins/activity-resources/package.json index de926e8873..ac41e41d61 100644 --- a/plugins/activity-resources/package.json +++ b/plugins/activity-resources/package.json @@ -16,25 +16,24 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", - "jest": "^29.7.0", + "@types/jest": "^30.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", + "jest": "^30.4.2", "prettier": "^3.6.2", "prettier-plugin-svelte": "^3.4.0", "sass": "^1.80.0", "svelte-check": "^3.6.9", - "svelte-eslint-parser": "^0.33.1", + "svelte-eslint-parser": "^1.8.1", "svelte-loader": "^3.2.0", "svelte-preprocess": "^5.1.4", - "ts-jest": "^29.1.1", - "typescript": "^5.9.3" + "ts-jest": "^29.4.12", + "typescript": "^5.9.3", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/plugins/activity/package.json b/plugins/activity/package.json index 64ed23ba83..60129c316a 100644 --- a/plugins/activity/package.json +++ b/plugins/activity/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", + "@types/jest": "^30.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", "prettier": "^3.6.2", - "ts-jest": "^29.1.1", - "typescript": "^5.9.3" + "ts-jest": "^29.4.12", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/contact": "workspace:^0.7.0", diff --git a/plugins/ai-assistant-assets/package.json b/plugins/ai-assistant-assets/package.json index 202d04a7c1..767755d157 100644 --- a/plugins/ai-assistant-assets/package.json +++ b/plugins/ai-assistant-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/ai-assistant-resources/package.json b/plugins/ai-assistant-resources/package.json index e0643f153f..adaad12126 100644 --- a/plugins/ai-assistant-resources/package.json +++ b/plugins/ai-assistant-resources/package.json @@ -20,22 +20,21 @@ "svelte-loader": "^3.2.0", "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-svelte": "^2.35.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-svelte": "^3.23.0", "prettier-plugin-svelte": "^3.4.0", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/ai-assistant/package.json b/plugins/ai-assistant/package.json index 8ecad4e34a..cf54501150 100644 --- a/plugins/ai-assistant/package.json +++ b/plugins/ai-assistant/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/ai-bot-resources/package.json b/plugins/ai-bot-resources/package.json index dc3a9b4b79..1430ba8bea 100644 --- a/plugins/ai-bot-resources/package.json +++ b/plugins/ai-bot-resources/package.json @@ -17,25 +17,24 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", - "jest": "^29.7.0", + "@types/jest": "^30.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", + "jest": "^30.4.2", "prettier": "^3.6.2", "prettier-plugin-svelte": "^3.4.0", "sass": "^1.80.0", "svelte-check": "^3.6.9", - "svelte-eslint-parser": "^0.33.1", + "svelte-eslint-parser": "^1.8.1", "svelte-loader": "^3.2.0", "svelte-preprocess": "^5.1.4", - "ts-jest": "^29.1.1", - "typescript": "^5.9.3" + "ts-jest": "^29.4.12", + "typescript": "^5.9.3", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/ai-bot": "workspace:^0.7.0", diff --git a/plugins/ai-bot/package.json b/plugins/ai-bot/package.json index 1627a42663..9ebd1de594 100644 --- a/plugins/ai-bot/package.json +++ b/plugins/ai-bot/package.json @@ -22,19 +22,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", + "@types/jest": "^30.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", "eslint-config-prettier": "^8.8.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", "prettier": "^3.6.2", - "ts-jest": "^29.1.1", - "typescript": "^5.9.3" + "ts-jest": "^29.4.12", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/chunter": "workspace:^0.7.0", diff --git a/plugins/analytics-collector-assets/package.json b/plugins/analytics-collector-assets/package.json index bec6f77cb8..fdbdc20d83 100644 --- a/plugins/analytics-collector-assets/package.json +++ b/plugins/analytics-collector-assets/package.json @@ -26,20 +26,20 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "prettier-plugin-svelte": "^3.4.0", - "typescript": "^5.9.3" + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/analytics-collector-resources/package.json b/plugins/analytics-collector-resources/package.json index 50b36da394..05168e7fb2 100644 --- a/plugins/analytics-collector-resources/package.json +++ b/plugins/analytics-collector-resources/package.json @@ -17,25 +17,24 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", - "jest": "^29.7.0", + "@types/jest": "^30.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", + "jest": "^30.4.2", "prettier": "^3.6.2", "prettier-plugin-svelte": "^3.4.0", "sass": "^1.80.0", "svelte-check": "^3.6.9", - "svelte-eslint-parser": "^0.33.1", + "svelte-eslint-parser": "^1.8.1", "svelte-loader": "^3.2.0", "svelte-preprocess": "^5.1.4", - "ts-jest": "^29.1.1", - "typescript": "^5.9.3" + "ts-jest": "^29.4.12", + "typescript": "^5.9.3", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/analytics-collector": "workspace:^0.7.0", diff --git a/plugins/analytics-collector/package.json b/plugins/analytics-collector/package.json index 82c92f8ba5..6d18b029fb 100644 --- a/plugins/analytics-collector/package.json +++ b/plugins/analytics-collector/package.json @@ -23,19 +23,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "prettier-plugin-svelte": "^3.4.0" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "prettier-plugin-svelte": "^3.4.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/attachment-assets/package.json b/plugins/attachment-assets/package.json index 7915922a9b..c84697f4c0 100644 --- a/plugins/attachment-assets/package.json +++ b/plugins/attachment-assets/package.json @@ -25,20 +25,20 @@ "_phase:validate": "compile validate" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", "@hcengineering/platform-rig": "workspace:^0.7.21", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/attachment-resources/package.json b/plugins/attachment-resources/package.json index b5bc918197..5f3177c3e1 100644 --- a/plugins/attachment-resources/package.json +++ b/plugins/attachment-resources/package.json @@ -17,25 +17,24 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", - "jest": "^29.7.0", + "@types/jest": "^30.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", + "jest": "^30.4.2", "prettier": "^3.6.2", "prettier-plugin-svelte": "^3.4.0", "sass": "^1.80.0", "svelte-check": "^3.6.9", - "svelte-eslint-parser": "^0.33.1", + "svelte-eslint-parser": "^1.8.1", "svelte-loader": "^3.2.0", "svelte-preprocess": "^5.1.4", - "ts-jest": "^29.1.1", - "typescript": "^5.9.3" + "ts-jest": "^29.4.12", + "typescript": "^5.9.3", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/plugins/attachment/package.json b/plugins/attachment/package.json index 7dd18b37bc..a26d9f4dc4 100644 --- a/plugins/attachment/package.json +++ b/plugins/attachment/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/billing-assets/package.json b/plugins/billing-assets/package.json index 7eba1d1c11..c9f33f1c79 100644 --- a/plugins/billing-assets/package.json +++ b/plugins/billing-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/billing-resources/package.json b/plugins/billing-resources/package.json index 7d2ff2dfa1..f867186d80 100644 --- a/plugins/billing-resources/package.json +++ b/plugins/billing-resources/package.json @@ -19,26 +19,25 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", - "jest": "^29.7.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", + "jest": "^30.4.2", "prettier": "^3.6.2", "prettier-plugin-svelte": "^3.4.0", "sass": "^1.80.0", "svelte-check": "^3.6.9", - "svelte-eslint-parser": "^0.33.1", + "svelte-eslint-parser": "^1.8.1", "svelte-loader": "^3.2.0", "svelte-preprocess": "^5.1.4", - "ts-jest": "^29.1.1", - "typescript": "^5.9.3" + "ts-jest": "^29.4.12", + "typescript": "^5.9.3", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/billing/package.json b/plugins/billing/package.json index bb90ecb025..c2a57f2f99 100644 --- a/plugins/billing/package.json +++ b/plugins/billing/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/bitrix-assets/package.json b/plugins/bitrix-assets/package.json index f3623c16a3..34b67bf3ba 100644 --- a/plugins/bitrix-assets/package.json +++ b/plugins/bitrix-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/bitrix-resources/package.json b/plugins/bitrix-resources/package.json index 3933731794..f2362acc00 100644 --- a/plugins/bitrix-resources/package.json +++ b/plugins/bitrix-resources/package.json @@ -18,23 +18,22 @@ "svelte-loader": "^3.2.0", "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-svelte": "^2.35.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-svelte": "^3.23.0", "prettier-plugin-svelte": "^3.4.0", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", "@types/qs": "~6.9.7", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/bitrix/package.json b/plugins/bitrix/package.json index 797ac6f681..ae9d59f98a 100644 --- a/plugins/bitrix/package.json +++ b/plugins/bitrix/package.json @@ -23,19 +23,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/qs": "~6.9.7", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/attachment": "workspace:^0.7.0", diff --git a/plugins/board-assets/package.json b/plugins/board-assets/package.json index b93035fb9a..aa4cc2057a 100644 --- a/plugins/board-assets/package.json +++ b/plugins/board-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/board-resources/package.json b/plugins/board-resources/package.json index aa23401e7b..857a26bc8b 100644 --- a/plugins/board-resources/package.json +++ b/plugins/board-resources/package.json @@ -15,14 +15,12 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", "prettier": "^3.6.2", "prettier-plugin-svelte": "^3.4.0", "sass": "^1.80.0", @@ -30,10 +28,11 @@ "svelte-loader": "^3.2.0", "svelte-preprocess": "^5.1.4", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/plugins/board/package.json b/plugins/board/package.json index ba8694e8d9..11dcdbbc2a 100644 --- a/plugins/board/package.json +++ b/plugins/board/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/contact": "workspace:^0.7.0", diff --git a/plugins/calendar-assets/package.json b/plugins/calendar-assets/package.json index e0238e6528..64b7ed025c 100644 --- a/plugins/calendar-assets/package.json +++ b/plugins/calendar-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/calendar-resources/package.json b/plugins/calendar-resources/package.json index 86f58f63bc..75fda4834f 100644 --- a/plugins/calendar-resources/package.json +++ b/plugins/calendar-resources/package.json @@ -20,22 +20,21 @@ "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", "prettier-plugin-svelte": "^3.4.0", - "eslint": "^8.54.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/plugins/calendar/package.json b/plugins/calendar/package.json index 81f04f604f..fad4ecce36 100644 --- a/plugins/calendar/package.json +++ b/plugins/calendar/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/card-assets/package.json b/plugins/card-assets/package.json index 3a60d1fe93..f0e9a1e93f 100644 --- a/plugins/card-assets/package.json +++ b/plugins/card-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/card-resources/package.json b/plugins/card-resources/package.json index e1f3c0acb7..0eb0764eeb 100644 --- a/plugins/card-resources/package.json +++ b/plugins/card-resources/package.json @@ -19,26 +19,25 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@types/jest": "^30.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", "@types/html-to-text": "^8.1.1", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", - "jest": "^29.7.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", + "jest": "^30.4.2", "prettier": "^3.6.2", "prettier-plugin-svelte": "^3.4.0", "sass": "^1.80.0", "svelte-check": "^3.6.9", - "svelte-eslint-parser": "^0.33.1", + "svelte-eslint-parser": "^1.8.1", "svelte-loader": "^3.2.0", "svelte-preprocess": "^5.1.4", - "ts-jest": "^29.1.1", - "typescript": "^5.9.3" + "ts-jest": "^29.4.12", + "typescript": "^5.9.3", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/presence": "workspace:^0.7.0", diff --git a/plugins/card/package.json b/plugins/card/package.json index b96060dd25..6d70d65dd5 100644 --- a/plugins/card/package.json +++ b/plugins/card/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/chat-assets/package.json b/plugins/chat-assets/package.json index 90d6aa8d8d..55932ef89b 100644 --- a/plugins/chat-assets/package.json +++ b/plugins/chat-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/chat/package.json b/plugins/chat/package.json index 3b9544828a..8223db1020 100644 --- a/plugins/chat/package.json +++ b/plugins/chat/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/chunter-assets/package.json b/plugins/chunter-assets/package.json index ebbd0dbccc..d9cfe7bdab 100644 --- a/plugins/chunter-assets/package.json +++ b/plugins/chunter-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/chunter-resources/package.json b/plugins/chunter-resources/package.json index 05123872f1..bf739e1213 100644 --- a/plugins/chunter-resources/package.json +++ b/plugins/chunter-resources/package.json @@ -17,26 +17,25 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@types/jest": "^30.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", "@types/html-to-text": "^8.1.1", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", - "jest": "^29.7.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", + "jest": "^30.4.2", "prettier": "^3.6.2", "prettier-plugin-svelte": "^3.4.0", "sass": "^1.80.0", "svelte-check": "^3.6.9", - "svelte-eslint-parser": "^0.33.1", + "svelte-eslint-parser": "^1.8.1", "svelte-loader": "^3.2.0", "svelte-preprocess": "^5.1.4", - "ts-jest": "^29.1.1", - "typescript": "^5.9.3" + "ts-jest": "^29.4.12", + "typescript": "^5.9.3", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/plugins/chunter/package.json b/plugins/chunter/package.json index 2c737abf1c..db400cefb2 100644 --- a/plugins/chunter/package.json +++ b/plugins/chunter/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/plugins/communication-resources/package.json b/plugins/communication-resources/package.json index a8a73a6450..e17b8d8899 100644 --- a/plugins/communication-resources/package.json +++ b/plugins/communication-resources/package.json @@ -16,19 +16,17 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "prettier-plugin-svelte": "^3.4.0", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "typescript": "^5.9.3", "svelte": "^4.2.20", "svelte-check": "^3.6.9", @@ -38,8 +36,9 @@ "autoprefixer": "^10.4.14", "tailwindcss": "^3.3.5", "sass": "^1.80.0", - "eslint-plugin-svelte": "^2.35.1", - "svelte-eslint-parser": "^0.33.1" + "eslint-plugin-svelte": "^3.23.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/plugins/communication/package.json b/plugins/communication/package.json index 78e9dd76c6..a78e2672c3 100644 --- a/plugins/communication/package.json +++ b/plugins/communication/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/contact-assets/package.json b/plugins/contact-assets/package.json index 5e39336281..707bcbd222 100644 --- a/plugins/contact-assets/package.json +++ b/plugins/contact-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/contact-resources/package.json b/plugins/contact-resources/package.json index 898119415a..50ffea0178 100644 --- a/plugins/contact-resources/package.json +++ b/plugins/contact-resources/package.json @@ -20,23 +20,22 @@ "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", "prettier-plugin-svelte": "^3.4.0", - "eslint": "^8.54.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "svelte-eslint-parser": "^0.33.1", - "@types/crypto-js": "^4.2.2" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "svelte-eslint-parser": "^1.8.1", + "@types/crypto-js": "^4.2.2", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/plugins/contact/package.json b/plugins/contact/package.json index ef6264539f..be415d1787 100644 --- a/plugins/contact/package.json +++ b/plugins/contact/package.json @@ -31,18 +31,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/controlled-documents-assets/package.json b/plugins/controlled-documents-assets/package.json index 644c6f3691..c64e101368 100644 --- a/plugins/controlled-documents-assets/package.json +++ b/plugins/controlled-documents-assets/package.json @@ -24,20 +24,20 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "eslint-config-prettier": "^8.8.0", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/controlled-documents-resources/package.json b/plugins/controlled-documents-resources/package.json index 2547e591f0..d73ce93a5f 100644 --- a/plugins/controlled-documents-resources/package.json +++ b/plugins/controlled-documents-resources/package.json @@ -18,23 +18,22 @@ "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", "prettier-plugin-svelte": "^3.4.0", - "eslint": "^8.54.0", + "eslint": "^9.39.5", "eslint-config-prettier": "^8.8.0", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "eslint-plugin-svelte": "^2.35.1", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/controlled-documents-resources/src/components/Categories.svelte b/plugins/controlled-documents-resources/src/components/Categories.svelte index e4e43ab2a5..602da6f92a 100644 --- a/plugins/controlled-documents-resources/src/components/Categories.svelte +++ b/plugins/controlled-documents-resources/src/components/Categories.svelte @@ -38,7 +38,7 @@ const _class: Ref> = document.class.DocumentCategory - function showCreateDialog (): void { + function showCreateDialog(): void { showPopup(CreateDocumentCategory, {}, 'top') } diff --git a/plugins/controlled-documents-resources/src/components/CreateDocument.svelte b/plugins/controlled-documents-resources/src/components/CreateDocument.svelte index 99aed0f4dc..65c5d93e51 100644 --- a/plugins/controlled-documents-resources/src/components/CreateDocument.svelte +++ b/plugins/controlled-documents-resources/src/components/CreateDocument.svelte @@ -41,7 +41,7 @@ export let isTemplateReadonly: boolean = false export let space: Ref - export function canClose (): boolean { + export function canClose(): boolean { return object.title === '' } @@ -78,7 +78,7 @@ const dispatch = createEventDispatcher() const client = getClient() - async function handleOkAction (): Promise { + async function handleOkAction(): Promise { if (isTemplateMandatory && !templateId) { return } diff --git a/plugins/controlled-documents-resources/src/components/CreateDocumentCategory.svelte b/plugins/controlled-documents-resources/src/components/CreateDocumentCategory.svelte index c712e7cec3..b78811f5c6 100644 --- a/plugins/controlled-documents-resources/src/components/CreateDocumentCategory.svelte +++ b/plugins/controlled-documents-resources/src/components/CreateDocumentCategory.svelte @@ -38,7 +38,7 @@ const client = getClient() let descriptionBox: AttachmentStyledBox - async function handleOkAction (): Promise { + async function handleOkAction(): Promise { if (isCodeWrong || isTitleWrong) { return } @@ -93,10 +93,10 @@ { code = _title @@ -120,10 +120,10 @@ { code = code.trim() }} @@ -154,7 +154,7 @@ focusIndex={3} alwaysEdit showButtons={false} - kind={'normal'} + kind="normal" isScrollable={false} enableAttachments={false} on:attachments={(ev) => { @@ -185,8 +185,8 @@ focusIndex={10} icon={IconAttachment} iconProps={{ fill: 'var(--theme-dark-color)' }} - size={'large'} - kind={'ghost'} + size="large" + kind="ghost" on:click={() => { descriptionBox.handleAttach() }} diff --git a/plugins/controlled-documents-resources/src/components/DocumentBoxItems.svelte b/plugins/controlled-documents-resources/src/components/DocumentBoxItems.svelte index 896b681335..d0478630e2 100644 --- a/plugins/controlled-documents-resources/src/components/DocumentBoxItems.svelte +++ b/plugins/controlled-documents-resources/src/components/DocumentBoxItems.svelte @@ -39,7 +39,7 @@ const dispatch = createEventDispatcher() - async function addPerson (evt: Event): Promise { + async function addPerson(evt: Event): Promise { showPopup( DocumentsPopup, { @@ -107,7 +107,7 @@ on:click={addPerson} > - + {/if} diff --git a/plugins/controlled-documents-resources/src/components/DocumentItem.svelte b/plugins/controlled-documents-resources/src/components/DocumentItem.svelte index a084757dd4..638d3ac520 100644 --- a/plugins/controlled-documents-resources/src/components/DocumentItem.svelte +++ b/plugins/controlled-documents-resources/src/components/DocumentItem.svelte @@ -9,7 +9,7 @@
- +
{value.title} diff --git a/plugins/controlled-documents-resources/src/components/DocumentMetaPresenter.svelte b/plugins/controlled-documents-resources/src/components/DocumentMetaPresenter.svelte index a3b0d9b13c..4aed2dbc28 100644 --- a/plugins/controlled-documents-resources/src/components/DocumentMetaPresenter.svelte +++ b/plugins/controlled-documents-resources/src/components/DocumentMetaPresenter.svelte @@ -52,7 +52,7 @@ {@const title = getDocumentName(lastDoc)}
- +
{title}
diff --git a/plugins/controlled-documents-resources/src/components/DocumentTemplates.svelte b/plugins/controlled-documents-resources/src/components/DocumentTemplates.svelte index 7f0ca45156..f7c495757f 100644 --- a/plugins/controlled-documents-resources/src/components/DocumentTemplates.svelte +++ b/plugins/controlled-documents-resources/src/components/DocumentTemplates.svelte @@ -41,7 +41,7 @@ $permissionsStore ) - function showCreateDialog (): void { + function showCreateDialog(): void { showPopup(documents.component.QmsTemplateWizard, { _class: documents.class.ControlledDocument }) } diff --git a/plugins/controlled-documents-resources/src/components/DocumentVersionsPopup.svelte b/plugins/controlled-documents-resources/src/components/DocumentVersionsPopup.svelte index a6c595e37f..01658a3e8a 100644 --- a/plugins/controlled-documents-resources/src/components/DocumentVersionsPopup.svelte +++ b/plugins/controlled-documents-resources/src/components/DocumentVersionsPopup.svelte @@ -41,7 +41,7 @@ } } - function navigateToVersion (doc: ControlledDocument): void { + function navigateToVersion(doc: ControlledDocument): void { const loc = getDocumentLink(doc) navigate(loc) dispatch('close') diff --git a/plugins/controlled-documents-resources/src/components/Documents.svelte b/plugins/controlled-documents-resources/src/components/Documents.svelte index 1e72214894..fae3bafb4a 100644 --- a/plugins/controlled-documents-resources/src/components/Documents.svelte +++ b/plugins/controlled-documents-resources/src/components/Documents.svelte @@ -42,7 +42,7 @@ {_class} {title} {icon} - adaptive={'doubleRow'} + adaptive="doubleRow" {modeSelectorProps} {query} bind:resultQuery diff --git a/plugins/controlled-documents-resources/src/components/EditDoc.svelte b/plugins/controlled-documents-resources/src/components/EditDoc.svelte index 0928235862..e4189fb886 100644 --- a/plugins/controlled-documents-resources/src/components/EditDoc.svelte +++ b/plugins/controlled-documents-resources/src/components/EditDoc.svelte @@ -31,7 +31,7 @@ $: void findProject(_id) - async function findProject (document: Ref): Promise { + async function findProject(document: Ref): Promise { if (_id === undefined) { project = undefined return diff --git a/plugins/controlled-documents-resources/src/components/EditDocPanel.svelte b/plugins/controlled-documents-resources/src/components/EditDocPanel.svelte index 8d692546e4..66f91f2fbd 100644 --- a/plugins/controlled-documents-resources/src/components/EditDocPanel.svelte +++ b/plugins/controlled-documents-resources/src/components/EditDocPanel.svelte @@ -105,7 +105,7 @@ const notificationClient = getResource(notification.function.GetInboxNotificationsClient).then((res) => res()) $: read(_id) - function read (_id: Ref): void { + function read(_id: Ref): void { if (lastId !== _id) { const prev = lastId lastId = _id @@ -171,7 +171,7 @@ selectedTab = tabs.findIndex((tab) => tab.label === documentRes.string.ContentTab) } - function onSendDocRequest (requestClass: Ref>): void { + function onSendDocRequest(requestClass: Ref>): void { if ($controlledDocument == null) { return } @@ -190,7 +190,7 @@ showPopup(TeamPopup, teamPopupData, 'center') } - async function completeReviewRequest (ev: MouseEvent): Promise { + async function completeReviewRequest(ev: MouseEvent): Promise { showPopup( SignatureDialog, { confirmationTitle: documentRes.string.ConfirmReviewCompletion }, @@ -207,7 +207,7 @@ ) } - async function changeApprovalRequestState (ev: MouseEvent, isRejection: boolean): Promise { + async function changeApprovalRequestState(ev: MouseEvent, isRejection: boolean): Promise { showPopup(SignatureDialog, { isRejection }, eventToHTMLElement(ev), async (res) => { if (!res) return @@ -231,7 +231,7 @@ }) } - async function onCreateNewDraft (): Promise { + async function onCreateNewDraft(): Promise { if (creating) return creating = true @@ -274,7 +274,7 @@ } } - async function onEditDocument (): Promise { + async function onEditDocument(): Promise { if ($controlledDocument != null && $canCreateNewSnapshot && $isProjectEditable) { try { await createDocumentSnapshotAndEdit(client, $controlledDocument) @@ -287,7 +287,7 @@ } let titleElement: HTMLElement - function showVersions (): void { + function showVersions(): void { isTitlePressed = true showPopup(DocumentVersionsPopup, {}, titleElement, () => { isTitlePressed = false @@ -324,7 +324,7 @@ allowClose={withClose && !embedded} {embedded} printHeader={false} - adaptive={'autoExtra'} + adaptive="autoExtra" overflowExtra hideSearch on:close @@ -336,9 +336,9 @@ { project = e.detail @@ -460,7 +460,7 @@ {#if $editorMode === 'comparing'} {:else} - + {/if} diff --git a/plugins/controlled-documents-resources/src/components/EditDocumentCategory.svelte b/plugins/controlled-documents-resources/src/components/EditDocumentCategory.svelte index d8ca00d938..8522481313 100644 --- a/plugins/controlled-documents-resources/src/components/EditDocumentCategory.svelte +++ b/plugins/controlled-documents-resources/src/components/EditDocumentCategory.svelte @@ -34,7 +34,7 @@ $: canEdit = !readonly && checkMyPermission(documents.permission.UpdateDocumentCategory, object.space, $permissionsStore) - async function saveField (ev: Event, val: string, field: string): Promise { + async function saveField(ev: Event, val: string, field: string): Promise { ev.preventDefault() if (object === undefined) { diff --git a/plugins/controlled-documents-resources/src/components/NewDocumentHeader.svelte b/plugins/controlled-documents-resources/src/components/NewDocumentHeader.svelte index ae38fef9fd..539edf1526 100644 --- a/plugins/controlled-documents-resources/src/components/NewDocumentHeader.svelte +++ b/plugins/controlled-documents-resources/src/components/NewDocumentHeader.svelte @@ -47,11 +47,11 @@ } } - function newDocument (): void { + function newDocument(): void { showPopup(documents.component.QmsDocumentWizard, { _class: documents.class.ControlledDocument }) } - function dropdownItemSelected (res?: SelectPopupValueType['id']): void { + function dropdownItemSelected(res?: SelectPopupValueType['id']): void { if (res == null) return if (res === documents.string.DocumentTemplate) { diff --git a/plugins/controlled-documents-resources/src/components/SignatureDialog.svelte b/plugins/controlled-documents-resources/src/components/SignatureDialog.svelte index 3806d7b4ae..108f069b06 100644 --- a/plugins/controlled-documents-resources/src/components/SignatureDialog.svelte +++ b/plugins/controlled-documents-resources/src/components/SignatureDialog.svelte @@ -68,7 +68,7 @@ let status = OK - async function submit (): Promise { + async function submit(): Promise { if (object.email === '' || object.password === '') { return } @@ -80,7 +80,7 @@ } } - async function validateAccount (email: string, password: string): Promise { + async function validateAccount(email: string, password: string): Promise { const accountClient = getAccountClient(accountsUrl) try { @@ -96,7 +96,7 @@ } } - async function validate (): Promise { + async function validate(): Promise { for (const field of Object.keys(object)) { const k = field as keyof LoginInfo if (object[k] === '') { @@ -125,7 +125,7 @@ on:close width="32rem" shadow={true} - className={'signature-dialog'} + className="signature-dialog" >
[] = isReviewRequest ? [] : (controlledDoc.externalApprovers ?? []) const existingExternalUsers = externalUsers - async function submit (): Promise { + async function submit(): Promise { const complete = async (): Promise => { loading = true diff --git a/plugins/controlled-documents-resources/src/components/category/popups/DeleteCategoryPopup.svelte b/plugins/controlled-documents-resources/src/components/category/popups/DeleteCategoryPopup.svelte index 6de358ba02..faa932ff8f 100644 --- a/plugins/controlled-documents-resources/src/components/category/popups/DeleteCategoryPopup.svelte +++ b/plugins/controlled-documents-resources/src/components/category/popups/DeleteCategoryPopup.svelte @@ -39,7 +39,7 @@ } $: void checkDeletePosibility(object) - async function checkDeletePosibility (category: DocumentCategory): Promise { + async function checkDeletePosibility(category: DocumentCategory): Promise { canDelete = await canDeleteDocumentCategory(category) } diff --git a/plugins/controlled-documents-resources/src/components/category/presenters/CategoryPresenter.svelte b/plugins/controlled-documents-resources/src/components/category/presenters/CategoryPresenter.svelte index a8332cebd6..1bc578f19e 100644 --- a/plugins/controlled-documents-resources/src/components/category/presenters/CategoryPresenter.svelte +++ b/plugins/controlled-documents-resources/src/components/category/presenters/CategoryPresenter.svelte @@ -48,7 +48,7 @@ use:tooltip={{ label: getEmbeddedLabel(category.title) }} >
- +
{category.code}
diff --git a/plugins/controlled-documents-resources/src/components/create-doc/CreateFolder.svelte b/plugins/controlled-documents-resources/src/components/create-doc/CreateFolder.svelte index 7ac4eb7de2..66431ce578 100644 --- a/plugins/controlled-documents-resources/src/components/create-doc/CreateFolder.svelte +++ b/plugins/controlled-documents-resources/src/components/create-doc/CreateFolder.svelte @@ -28,7 +28,7 @@ import view from '@hcengineering/view' import { createEventDispatcher } from 'svelte' - export function canClose (): boolean { + export function canClose(): boolean { return name === '' } @@ -44,11 +44,11 @@ $: canSave = getTitle(name).length > 0 && (folder !== undefined || space !== undefined) - function getTitle (value: string): string { + function getTitle(value: string): string { return value.trim() } - async function create (): Promise { + async function create(): Promise { const title = getTitle(name) if (title.length < 1) { return diff --git a/plugins/controlled-documents-resources/src/components/create-doc/QmsDocumentWizard.svelte b/plugins/controlled-documents-resources/src/components/create-doc/QmsDocumentWizard.svelte index 7e5eda3242..0959050b8f 100644 --- a/plugins/controlled-documents-resources/src/components/create-doc/QmsDocumentWizard.svelte +++ b/plugins/controlled-documents-resources/src/components/create-doc/QmsDocumentWizard.svelte @@ -129,11 +129,11 @@ let canProceed: false // Note: determined by individual steps const isLoading = false - function getStepComponent (step: DocumentWizardStep): AnySvelteComponent { + function getStepComponent(step: DocumentWizardStep): AnySvelteComponent { return stepComponents[step] } - function handleStepChanged (e: CustomEvent): void { + function handleStepChanged(e: CustomEvent): void { currentStepUpdated(e.detail) } @@ -141,7 +141,7 @@ let submitted = false - async function handleSubmit (): Promise { + async function handleSubmit(): Promise { if ($locationStep.space === undefined || $locationStep.project === undefined) { return } @@ -192,7 +192,7 @@ dispatch('close') } - async function handleClose (): Promise { + async function handleClose(): Promise { showPopup( MessageBox, { diff --git a/plugins/controlled-documents-resources/src/components/create-doc/QmsTemplateWizard.svelte b/plugins/controlled-documents-resources/src/components/create-doc/QmsTemplateWizard.svelte index 69e13bde40..b76192b2c6 100644 --- a/plugins/controlled-documents-resources/src/components/create-doc/QmsTemplateWizard.svelte +++ b/plugins/controlled-documents-resources/src/components/create-doc/QmsTemplateWizard.svelte @@ -124,17 +124,17 @@ let canProceed: false // Note: determined by individual steps const isLoading = false - function getCurrentStepComponent (currentStep: TemplateWizardStep): AnySvelteComponent { + function getCurrentStepComponent(currentStep: TemplateWizardStep): AnySvelteComponent { return stepComponents[currentStep] } - function handleStepChanged (e: CustomEvent): void { + function handleStepChanged(e: CustomEvent): void { currentStepUpdated(e.detail) } let submitted = false - async function handleSubmit (): Promise { + async function handleSubmit(): Promise { if ($locationStep.space === undefined || $locationStep.project === undefined) { return } @@ -196,7 +196,7 @@ $: space = $locationStep.space - async function handleClose (): Promise { + async function handleClose(): Promise { showPopup( MessageBox, { diff --git a/plugins/controlled-documents-resources/src/components/create-doc/steps/InfoStep.svelte b/plugins/controlled-documents-resources/src/components/create-doc/steps/InfoStep.svelte index 49346e40f9..a506e1d2a7 100644 --- a/plugins/controlled-documents-resources/src/components/create-doc/steps/InfoStep.svelte +++ b/plugins/controlled-documents-resources/src/components/create-doc/steps/InfoStep.svelte @@ -128,7 +128,7 @@ void setInitialCode() } - async function setInitialCode (): Promise { + async function setInitialCode(): Promise { let newCodeObj: Pick | undefined = undefined if (isTemplate) { @@ -157,7 +157,7 @@ } } - function isCodeUnique (code: string): boolean { + function isCodeUnique(code: string): boolean { return code !== '' && docCodes[code] === undefined } @@ -180,11 +180,11 @@ } ] - function handleSelectedReasonChanged (selected: 'newDoc' | 'custom'): void { + function handleSelectedReasonChanged(selected: 'newDoc' | 'custom'): void { infoStepUpdated({ ...$infoStep, selectedReason: selected }) } - function handleReasonUpdated (value: string): void { + function handleReasonUpdated(value: string): void { infoStepUpdated({ ...$infoStep, customReason: value }) } diff --git a/plugins/controlled-documents-resources/src/components/create-doc/steps/LocationStep.svelte b/plugins/controlled-documents-resources/src/components/create-doc/steps/LocationStep.svelte index 7dd94b7ffe..cd0c0f36ac 100644 --- a/plugins/controlled-documents-resources/src/components/create-doc/steps/LocationStep.svelte +++ b/plugins/controlled-documents-resources/src/components/create-doc/steps/LocationStep.svelte @@ -50,19 +50,19 @@ $: void selectProject(spaceRef) $: locationStepUpdated({ project: projectRef }) - async function selectProject (spaceRef: Ref | undefined): Promise { + async function selectProject(spaceRef: Ref | undefined): Promise { projectRef = spaceRef !== undefined ? await getLatestProjectId(spaceRef) : undefined } - async function fetchSpace (id: Ref | undefined): Promise { + async function fetchSpace(id: Ref | undefined): Promise { space = id === undefined ? undefined : await client.findOne(documents.class.DocumentSpace, { _id: id }) } - async function fetchSpaceType (id: Ref | undefined): Promise { + async function fetchSpaceType(id: Ref | undefined): Promise { spaceType = id === undefined ? undefined : await client.findOne(documents.class.DocumentSpaceType, { _id: id }, {}) } - function handleParentSelected (doc: Doc): void { + function handleParentSelected(doc: Doc): void { let parent: Ref | undefined if (hierarchy.isDerived(doc._class, documents.class.DocumentSpace)) { @@ -74,7 +74,7 @@ locationStepUpdated({ parent }) } - function handleProjectSelected (value: Ref | undefined): void { + function handleProjectSelected(value: Ref | undefined): void { projectRef = value } @@ -110,8 +110,8 @@ { diff --git a/plugins/controlled-documents-resources/src/components/create-doc/steps/TeamStep.svelte b/plugins/controlled-documents-resources/src/components/create-doc/steps/TeamStep.svelte index 3dd4893d7d..8522d841bc 100644 --- a/plugins/controlled-documents-resources/src/components/create-doc/steps/TeamStep.svelte +++ b/plugins/controlled-documents-resources/src/components/create-doc/steps/TeamStep.svelte @@ -23,10 +23,10 @@ export let space: Ref export let docObject: Data | undefined = undefined - async function handleUpdate ({ + async function handleUpdate({ detail }: { - detail: { type: 'reviewers' | 'approvers' | 'coAuthors' | 'externalApprovers', users: Ref[] } + detail: { type: 'reviewers' | 'approvers' | 'coAuthors' | 'externalApprovers'; users: Ref[] } }): Promise { if (docObject === undefined) { return diff --git a/plugins/controlled-documents-resources/src/components/docspace/CreateDocumentSpaceType.svelte b/plugins/controlled-documents-resources/src/components/docspace/CreateDocumentSpaceType.svelte index 4defe5394e..f8d8792cac 100644 --- a/plugins/controlled-documents-resources/src/components/docspace/CreateDocumentSpaceType.svelte +++ b/plugins/controlled-documents-resources/src/components/docspace/CreateDocumentSpaceType.svelte @@ -30,7 +30,7 @@ const dispatch = createEventDispatcher() - async function createType (): Promise { + async function createType(): Promise { if (docDescriptor === undefined) { return } diff --git a/plugins/controlled-documents-resources/src/components/docspace/CreateDocumentsSpace.svelte b/plugins/controlled-documents-resources/src/components/docspace/CreateDocumentsSpace.svelte index 52f47eaef8..d7c8fa48f4 100644 --- a/plugins/controlled-documents-resources/src/components/docspace/CreateDocumentsSpace.svelte +++ b/plugins/controlled-documents-resources/src/components/docspace/CreateDocumentsSpace.svelte @@ -64,12 +64,12 @@ let spaceType: WithLookup | undefined $: void loadSpaceType(typeId) - async function loadSpaceType (id: typeof typeId): Promise { + async function loadSpaceType(id: typeof typeId): Promise { spaceType = id !== undefined ? await client - .getModel() - .findOne(documents.class.DocumentSpaceType, { _id: id }, { lookup: { _id: { roles: core.class.Role } } }) + .getModel() + .findOne(documents.class.DocumentSpaceType, { _id: id }, { lookup: { _id: { roles: core.class.Role } } }) : undefined if (docSpace === undefined || spaceType?.targetClass === undefined || spaceType?.$lookup?.roles === undefined) { @@ -81,7 +81,7 @@ $: descriptors = spaceType?.descriptor !== undefined ? [spaceType.descriptor] : [documents.descriptor.DocumentSpaceType] - function getRolesAssignment (): RolesAssignment { + function getRolesAssignment(): RolesAssignment { if (docSpace === undefined || spaceType?.targetClass === undefined || spaceType?.$lookup?.roles === undefined) { return {} } @@ -95,7 +95,7 @@ }, {}) } - async function handleSave (): Promise { + async function handleSave(): Promise { if (isNew) { await createDocumentSpace() } else { @@ -103,7 +103,7 @@ } } - function getDocSpaceData (): Omit, 'type'> { + function getDocSpaceData(): Omit, 'type'> { return { name, description, @@ -114,7 +114,7 @@ } } - async function updateDocumentSpace (): Promise { + async function updateDocumentSpace(): Promise { if (docSpace === undefined || spaceType?.targetClass === undefined) { return } @@ -162,7 +162,7 @@ close() } - async function createDocumentSpace (): Promise { + async function createDocumentSpace(): Promise { if (typeId === undefined || spaceType?.targetClass === undefined) { return } @@ -178,24 +178,24 @@ close(docSpaceId) } - function close (id?: Ref): void { + function close(id?: Ref): void { dispatch('close', id) } - function handleTypeChange (evt: CustomEvent>): void { + function handleTypeChange(evt: CustomEvent>): void { typeId = evt.detail } $: roles = (spaceType?.$lookup?.roles ?? []) as Role[] - function handleOwnersChanged (newOwners: AccountUuid[]): void { + function handleOwnersChanged(newOwners: AccountUuid[]): void { owners = newOwners const newMembersSet = new Set([...members, ...newOwners]) members = Array.from(newMembersSet) } - function handleMembersChanged (newMembers: AccountUuid[]): void { + function handleMembersChanged(newMembers: AccountUuid[]): void { // If a member was removed we need to remove it from any roles assignments as well const newMembersSet = new Set(newMembers) const removedMembersSet = new Set(members.filter((m) => !newMembersSet.has(m))) @@ -209,7 +209,7 @@ members = newMembers } - function handleRoleAssignmentChanged (roleId: Ref, newMembers: AccountUuid[]): void { + function handleRoleAssignmentChanged(roleId: Ref, newMembers: AccountUuid[]): void { if (rolesAssignment === undefined) { rolesAssignment = {} } @@ -232,8 +232,8 @@ okAction={handleSave} {canSave} accentHeader - width={'medium'} - gap={'gapV-6'} + width="medium" + gap="gapV-6" onCancel={close} on:changeContent > @@ -259,7 +259,7 @@
- +
@@ -287,8 +287,8 @@ excludeItems={readOnlyGuestOwnerExcludeItems} label={core.string.Owners} onChange={handleOwnersChanged} - kind={'regular'} - size={'large'} + kind="regular" + size="large" /> @@ -309,8 +309,8 @@ value={members} label={documentsRes.string.Members} onChange={handleMembersChanged} - kind={'regular'} - size={'large'} + kind="regular" + size="large" allowGuests /> @@ -328,8 +328,8 @@ onChange={(refs) => { handleRoleAssignmentChanged(role._id, refs) }} - kind={'regular'} - size={'large'} + kind="regular" + size="large" /> {/each} diff --git a/plugins/controlled-documents-resources/src/components/document/DocTeam.svelte b/plugins/controlled-documents-resources/src/components/document/DocTeam.svelte index dc4c422736..fb4b1813b4 100644 --- a/plugins/controlled-documents-resources/src/components/document/DocTeam.svelte +++ b/plugins/controlled-documents-resources/src/components/document/DocTeam.svelte @@ -53,7 +53,7 @@ $permissionsStore ).filter((person) => person !== currentEmployee) as Ref[] - function handleUsersUpdated ( + function handleUsersUpdated( type: 'reviewers' | 'approvers' | 'coAuthors' | 'externalApprovers', users: Ref[] ): void { diff --git a/plugins/controlled-documents-resources/src/components/document/DocumentDiffViewer.svelte b/plugins/controlled-documents-resources/src/components/document/DocumentDiffViewer.svelte index cb1586a28d..e28635a424 100644 --- a/plugins/controlled-documents-resources/src/components/document/DocumentDiffViewer.svelte +++ b/plugins/controlled-documents-resources/src/components/document/DocumentDiffViewer.svelte @@ -43,7 +43,7 @@ } let translatedStates: Readonly> | null = null - function getTranslatedLabels (lang: string) { + function getTranslatedLabels(lang: string) { Promise.all([getTranslatedDocumentStates(lang), getTranslatedControlledDocStates(lang)]).then( ([states, controlledStates]) => { translatedStates = { @@ -54,7 +54,7 @@ ) } - function isDocument (document: Doc | null): document is Document { + function isDocument(document: Doc | null): document is Document { if (document == null) { return false } diff --git a/plugins/controlled-documents-resources/src/components/document/DocumentHistory.svelte b/plugins/controlled-documents-resources/src/components/document/DocumentHistory.svelte index df56618261..984623de7b 100644 --- a/plugins/controlled-documents-resources/src/components/document/DocumentHistory.svelte +++ b/plugins/controlled-documents-resources/src/components/document/DocumentHistory.svelte @@ -58,7 +58,7 @@ $: isExternalApprover = $controlledDocument?.externalApprovers?.includes(me) ?? false - function getDescription (cc: ChangeControl | undefined): string { + function getDescription(cc: ChangeControl | undefined): string { if (cc === undefined) { return '' } diff --git a/plugins/controlled-documents-resources/src/components/document/DocumentSignatories.svelte b/plugins/controlled-documents-resources/src/components/document/DocumentSignatories.svelte index 9b17244a54..bfb9754de3 100644 --- a/plugins/controlled-documents-resources/src/components/document/DocumentSignatories.svelte +++ b/plugins/controlled-documents-resources/src/components/document/DocumentSignatories.svelte @@ -68,7 +68,7 @@ } }) - function getNameByEmployeeId (id: Ref | undefined): string { + function getNameByEmployeeId(id: Ref | undefined): string { if (id === undefined) return '' const employee = $employeeByIdStore.get(id as Ref) @@ -77,7 +77,7 @@ return rawName !== undefined ? formatName(rawName) : '' } - function getSignerLabel (role: 'author' | 'reviewer' | 'approver'): IntlString { + function getSignerLabel(role: 'author' | 'reviewer' | 'approver'): IntlString { switch (role) { case 'author': return documentsRes.string.Author diff --git a/plugins/controlled-documents-resources/src/components/document/EditDocContent.svelte b/plugins/controlled-documents-resources/src/components/document/EditDocContent.svelte index 70a8bf41a0..fe7c53912c 100644 --- a/plugins/controlled-documents-resources/src/components/document/EditDocContent.svelte +++ b/plugins/controlled-documents-resources/src/components/document/EditDocContent.svelte @@ -84,7 +84,7 @@ $: commentUuids = $documentComments.map((p) => p.nodeId).filter((id) => id != null) - function handleRefreshHighlight (): void { + function handleRefreshHighlight(): void { textEditor?.commands()?.command(highlightUpdateCommand()) } @@ -140,12 +140,12 @@ } } - async function handleShowHeading (heading: Heading): Promise { + async function handleShowHeading(heading: Heading): Promise { const element = window.document.getElementById(heading.id) element?.scrollIntoView({ behavior: 'smooth', block: 'start' }) } - function handleNodeHighlight (id: string) { + function handleNodeHighlight(id: string) { if ($documentCommentHighlightedLocation) { const { nodeId } = $documentCommentHighlightedLocation if (nodeId === id) { @@ -160,12 +160,12 @@ return null } - function handleShowDocumentComments (nodeId: string): void { + function handleShowDocumentComments(nodeId: string): void { const element = getNodeElement(editor, nodeId) documentCommentsDisplayRequested({ element, nodeId }) } - async function createEmbedding (file: File): Promise<{ file: Ref, type: string } | undefined> { + async function createEmbedding(file: File): Promise<{ file: Ref; type: string } | undefined> { if ($controlledDocument === undefined || $controlledDocument === null) { return undefined } @@ -227,7 +227,7 @@ } ) - function isDeleted (att: Attachment): boolean { + function isDeleted(att: Attachment): boolean { if (!hierarchy.hasMixin(att, documents.mixin.DocumentAttachment)) return false return hierarchy.as(att, documents.mixin.DocumentAttachment).deletedIn != null } @@ -241,11 +241,11 @@ let inputFile: HTMLInputElement - export function handleAttach (): void { + export function handleAttach(): void { inputFile.click() } - async function fileSelected (): Promise { + async function fileSelected(): Promise { if (!$isEditable) return const list = inputFile.files @@ -261,7 +261,7 @@ progress = false } - function handleTable (element: HTMLElement, editorHandler: TextEditorHandler, event?: MouseEvent): void { + function handleTable(element: HTMLElement, editorHandler: TextEditorHandler, event?: MouseEvent): void { const position = event !== undefined ? getEventPositionElement(event) : getPopupPositionElement(element) addTableHandler(editorHandler.insertTable, position) } @@ -269,18 +269,18 @@ $: refActions = !$isEditable ? [] : defaultRefActions - .concat([ - { label: textEditorPlugin.string.Attach, icon: AttachIcon, action: handleAttach, order: 1001 }, - { label: textEditorPlugin.string.Table, icon: TableIcon, action: handleTable, order: 1500 } - ]) - .sort((a, b) => a.order - b.order) + .concat([ + { label: textEditorPlugin.string.Attach, icon: AttachIcon, action: handleAttach, order: 1001 }, + { label: textEditorPlugin.string.Table, icon: TableIcon, action: handleTable, order: 1500 } + ]) + .sort((a, b) => a.order - b.order) - function getState (att: Attachment): DocumentAttachmentState | undefined { + function getState(att: Attachment): DocumentAttachmentState | undefined { if (!hierarchy.hasMixin(att, documents.mixin.DocumentAttachment)) return undefined return hierarchy.as(att, documents.mixin.DocumentAttachment).state } - async function removeAttachment (att: Attachment): Promise { + async function removeAttachment(att: Attachment): Promise { if ($controlledDocument == null) return // 'new' attachments (added in this version) are removed physically, no soft-delete trace @@ -297,7 +297,7 @@ textEditor?.removeAttachment(att.file) } - async function restoreAttachment (att: Attachment): Promise { + async function restoreAttachment(att: Attachment): Promise { await client.updateMixin(att._id, att._class, att.space, documents.mixin.DocumentAttachment, { deletedIn: null }) diff --git a/plugins/controlled-documents-resources/src/components/document/EditDocReasonAndImpact.svelte b/plugins/controlled-documents-resources/src/components/document/EditDocReasonAndImpact.svelte index eb0a593698..0671a5eb7a 100644 --- a/plugins/controlled-documents-resources/src/components/document/EditDocReasonAndImpact.svelte +++ b/plugins/controlled-documents-resources/src/components/document/EditDocReasonAndImpact.svelte @@ -40,7 +40,7 @@ docSpaces = res.map((s) => s._id) }) - async function handleFieldUpdated (field: keyof ChangeControl, ev: UIEvent): Promise { + async function handleFieldUpdated(field: keyof ChangeControl, ev: UIEvent): Promise { if (ev == null) { return } @@ -54,7 +54,7 @@ await updateCCField(field, target.value) } - async function updateCCField (field: T, value: ChangeControl[T]): Promise { + async function updateCCField(field: T, value: ChangeControl[T]): Promise { if ($controlledDocument == null) { return } diff --git a/plugins/controlled-documents-resources/src/components/document/EditDocRelease.svelte b/plugins/controlled-documents-resources/src/components/document/EditDocRelease.svelte index fabe6acc65..80f217a851 100644 --- a/plugins/controlled-documents-resources/src/components/document/EditDocRelease.svelte +++ b/plugins/controlled-documents-resources/src/components/document/EditDocRelease.svelte @@ -97,7 +97,7 @@ let selectedReviewInterval = $controlledDocument?.reviewInterval ? $controlledDocument.reviewInterval.toString() : DEFAULT_PERIODIC_REVIEW_INTERVAL.toString() - async function changePeriodicReviewInterval (interval?: string) { + async function changePeriodicReviewInterval(interval?: string) { if ($controlledDocument == null || interval == null) { return } @@ -116,7 +116,7 @@ const hierarchy = client.getHierarchy() const documentTrainingClass = getDocumentTrainingClass(hierarchy) - async function toggleTraining (on: boolean): Promise { + async function toggleTraining(on: boolean): Promise { if (!$controlledDocument || !canEdit) { return } @@ -139,7 +139,7 @@ } } - async function updateTraining (update: MixinUpdate): Promise { + async function updateTraining(update: MixinUpdate): Promise { if (!$controlledDocument || !canEdit || !documentTraining) { return false } @@ -149,7 +149,7 @@ $: severity = getSeverity($controlledDocument, $documentAllVersionsDescSorted) - function getPreviousDocument ( + function getPreviousDocument( document: ControlledDocument, allVersionsDesc: ControlledDocument[] ): ControlledDocument | undefined { @@ -158,7 +158,7 @@ ) } - function getSeverity (document: ControlledDocument | null, allVersionsDesc: ControlledDocument[]): Severity { + function getSeverity(document: ControlledDocument | null, allVersionsDesc: ControlledDocument[]): Severity { if (document == null) { return Severity.Minor } @@ -172,7 +172,7 @@ } } - function getVersionForSeverity (severity: Severity): { major: number, minor: number } | undefined { + function getVersionForSeverity(severity: Severity): { major: number; minor: number } | undefined { if ($controlledDocument == null) { return } @@ -192,7 +192,7 @@ } } - async function handleSeverityChanged (newSeverity: Severity): Promise { + async function handleSeverityChanged(newSeverity: Severity): Promise { if (!canEdit || $controlledDocument == null) { return } diff --git a/plugins/controlled-documents-resources/src/components/document/EditDocTeam.svelte b/plugins/controlled-documents-resources/src/components/document/EditDocTeam.svelte index 9bc280dae7..fd9522f096 100644 --- a/plugins/controlled-documents-resources/src/components/document/EditDocTeam.svelte +++ b/plugins/controlled-documents-resources/src/components/document/EditDocTeam.svelte @@ -53,10 +53,10 @@ const client = getClient() - async function handleUpdate ({ + async function handleUpdate({ detail }: { - detail: { type: 'reviewers' | 'approvers' | 'externalApprovers', users: Ref[] } + detail: { type: 'reviewers' | 'approvers' | 'externalApprovers'; users: Ref[] } }): Promise { const { type, users } = detail diff --git a/plugins/controlled-documents-resources/src/components/document/popups/AddCommentPopup.svelte b/plugins/controlled-documents-resources/src/components/document/popups/AddCommentPopup.svelte index f46b22e0ce..5851f01e1c 100644 --- a/plugins/controlled-documents-resources/src/components/document/popups/AddCommentPopup.svelte +++ b/plugins/controlled-documents-resources/src/components/document/popups/AddCommentPopup.svelte @@ -13,7 +13,7 @@ const dispatch = createEventDispatcher() - async function handleMessage (event: CustomEvent): Promise { + async function handleMessage(event: CustomEvent): Promise { const messageId: Ref = generateId() const comment = await addDocumentCommentFx({ content: event.detail, messageId, nodeId }) @@ -22,7 +22,7 @@ let popup: HTMLDivElement | undefined - function isClickInsidePopup (target: Node): boolean { + function isClickInsidePopup(target: Node): boolean { if (popup !== undefined && popup.contains(target)) return true if (!(target instanceof Element)) return false @@ -32,7 +32,7 @@ return false } - function handleClick (event: MouseEvent): void { + function handleClick(event: MouseEvent): void { if (event.target instanceof Node) { const top = $popups.length > 0 && $popups[$popups.length - 1].id === popupId if (top && !isClickInsidePopup(event.target)) { diff --git a/plugins/controlled-documents-resources/src/components/document/popups/ChangeCategoryPopup.svelte b/plugins/controlled-documents-resources/src/components/document/popups/ChangeCategoryPopup.svelte index f8037f9467..9f7cf88530 100644 --- a/plugins/controlled-documents-resources/src/components/document/popups/ChangeCategoryPopup.svelte +++ b/plugins/controlled-documents-resources/src/components/document/popups/ChangeCategoryPopup.svelte @@ -33,7 +33,7 @@ categories = res }) - async function handleSubmit (category: Ref): Promise { + async function handleSubmit(category: Ref): Promise { await client.update(object, { category }) dispatch('close') } diff --git a/plugins/controlled-documents-resources/src/components/document/popups/ChangeDocCodePopup.svelte b/plugins/controlled-documents-resources/src/components/document/popups/ChangeDocCodePopup.svelte index 5ad51dbcce..d3d7c15688 100644 --- a/plugins/controlled-documents-resources/src/components/document/popups/ChangeDocCodePopup.svelte +++ b/plugins/controlled-documents-resources/src/components/document/popups/ChangeDocCodePopup.svelte @@ -53,7 +53,7 @@ $: isSame = object.code === code $: canSubmit = isFilled && isUnique && !isSame - async function handleSubmit (): Promise { + async function handleSubmit(): Promise { if (!canSubmit) { return } diff --git a/plugins/controlled-documents-resources/src/components/document/popups/ChangeDocPrefixPopup.svelte b/plugins/controlled-documents-resources/src/components/document/popups/ChangeDocPrefixPopup.svelte index 032eba39de..70da92bd36 100644 --- a/plugins/controlled-documents-resources/src/components/document/popups/ChangeDocPrefixPopup.svelte +++ b/plugins/controlled-documents-resources/src/components/document/popups/ChangeDocPrefixPopup.svelte @@ -61,7 +61,7 @@ $: isSame = object.docPrefix === prefix $: canSubmit = isFilled && isUnique && !isSame - async function handleSubmit (): Promise { + async function handleSubmit(): Promise { if (!canSubmit) { return } diff --git a/plugins/controlled-documents-resources/src/components/document/popups/CommentFilterSettingsPopup.svelte b/plugins/controlled-documents-resources/src/components/document/popups/CommentFilterSettingsPopup.svelte index 3821167c17..4643c866a8 100644 --- a/plugins/controlled-documents-resources/src/components/document/popups/CommentFilterSettingsPopup.svelte +++ b/plugins/controlled-documents-resources/src/components/document/popups/CommentFilterSettingsPopup.svelte @@ -56,8 +56,8 @@
{ + async function transfer(): Promise { if (request !== undefined) { await transferDocuments(client, request) dispatch('close') @@ -97,20 +97,20 @@ canTransfer = false } - async function selectProject (spaceRef: Ref | undefined): Promise { + async function selectProject(spaceRef: Ref | undefined): Promise { targetProjectId = spaceRef !== undefined ? await getLatestProjectId(spaceRef) : undefined } - async function fetchSpace (id: Ref | undefined): Promise { + async function fetchSpace(id: Ref | undefined): Promise { targetSpace = id === undefined ? undefined : await client.findOne(documents.class.DocumentSpace, { _id: id }) } - async function fetchSpaceType (id: Ref | undefined): Promise { + async function fetchSpaceType(id: Ref | undefined): Promise { targetSpaceType = id === undefined ? undefined : await client.findOne(documents.class.DocumentSpaceType, { _id: id }, {}) } - async function handleParentSelected (doc: Doc): Promise { + async function handleParentSelected(doc: Doc): Promise { if (hierarchy.isDerived(doc._class, documents.class.DocumentSpace)) { targetParentDocumentId = undefined targetParentId = undefined @@ -122,14 +122,14 @@ } } - function handleProjectSelected (value: Ref | undefined): void { + function handleProjectSelected(value: Ref | undefined): void { targetProjectId = value } let haveTemplateObjects: boolean = false $: void checkForTemplateObjects(affectedDocs) - async function checkForTemplateObjects (docs: DocumentMeta[]): Promise { + async function checkForTemplateObjects(docs: DocumentMeta[]): Promise { const cdocs = await client.findAll(documents.class.ControlledDocument, { attachedTo: { $in: docs.map((d) => d._id) } }) @@ -175,8 +175,8 @@ { diff --git a/plugins/controlled-documents-resources/src/components/document/presenters/CategoryPresenter.svelte b/plugins/controlled-documents-resources/src/components/document/presenters/CategoryPresenter.svelte index 920f17d156..ae0220e425 100644 --- a/plugins/controlled-documents-resources/src/components/document/presenters/CategoryPresenter.svelte +++ b/plugins/controlled-documents-resources/src/components/document/presenters/CategoryPresenter.svelte @@ -21,7 +21,7 @@ }) } - function handleClick (event: MouseEvent): void { + function handleClick(event: MouseEvent): void { if (!editable) { return } diff --git a/plugins/controlled-documents-resources/src/components/document/presenters/DocumentPrefixPresenter.svelte b/plugins/controlled-documents-resources/src/components/document/presenters/DocumentPrefixPresenter.svelte index be1b0011eb..54ff64d89c 100644 --- a/plugins/controlled-documents-resources/src/components/document/presenters/DocumentPrefixPresenter.svelte +++ b/plugins/controlled-documents-resources/src/components/document/presenters/DocumentPrefixPresenter.svelte @@ -23,7 +23,7 @@ export let value: DocumentTemplate export let editable: boolean = false - function handleClick (event: MouseEvent): void { + function handleClick(event: MouseEvent): void { if (!editable) { return } diff --git a/plugins/controlled-documents-resources/src/components/document/presenters/DocumentPresenter.svelte b/plugins/controlled-documents-resources/src/components/document/presenters/DocumentPresenter.svelte index d875c2e6a9..68486a159a 100644 --- a/plugins/controlled-documents-resources/src/components/document/presenters/DocumentPresenter.svelte +++ b/plugins/controlled-documents-resources/src/components/document/presenters/DocumentPresenter.svelte @@ -39,7 +39,7 @@ const dispatch = createEventDispatcher() - function handleClick (event: MouseEvent): void { + function handleClick(event: MouseEvent): void { if (!canEdit) { return } diff --git a/plugins/controlled-documents-resources/src/components/document/presenters/OwnerPresenter.svelte b/plugins/controlled-documents-resources/src/components/document/presenters/OwnerPresenter.svelte index a78894f6bc..a842a9d839 100644 --- a/plugins/controlled-documents-resources/src/components/document/presenters/OwnerPresenter.svelte +++ b/plugins/controlled-documents-resources/src/components/document/presenters/OwnerPresenter.svelte @@ -70,7 +70,7 @@ {defaultName} value={_id ?? value?._id} disabled={!canChangeOwner} - avatarSize={'x-small'} + avatarSize="x-small" shouldShowPlaceholder={true} shouldShowName={shouldShowLabel} tooltipLabels={{ personLabel: document.string.AssignedTo, placeholderLabel: document.string.Unassigned }} diff --git a/plugins/controlled-documents-resources/src/components/document/presenters/StatePresenter.svelte b/plugins/controlled-documents-resources/src/components/document/presenters/StatePresenter.svelte index eeb53b4970..88d31cdc1c 100644 --- a/plugins/controlled-documents-resources/src/components/document/presenters/StatePresenter.svelte +++ b/plugins/controlled-documents-resources/src/components/document/presenters/StatePresenter.svelte @@ -29,7 +29,7 @@ let docStates: TranslatedDocumentStates | undefined let controlledDocStates: TranslatedControlledDocStates | undefined - async function getTranslatedLabels (lang: string) { + async function getTranslatedLabels(lang: string) { docStates = await getTranslatedDocumentStates(lang) controlledDocStates = await getTranslatedControlledDocStates(lang) } diff --git a/plugins/controlled-documents-resources/src/components/document/right-panel/DocumentApprovalGuideItem.svelte b/plugins/controlled-documents-resources/src/components/document/right-panel/DocumentApprovalGuideItem.svelte index 75f66fb04c..f8e268ef47 100644 --- a/plugins/controlled-documents-resources/src/components/document/right-panel/DocumentApprovalGuideItem.svelte +++ b/plugins/controlled-documents-resources/src/components/document/right-panel/DocumentApprovalGuideItem.svelte @@ -10,7 +10,7 @@ import documentsRes from '../../../plugin' import { TeamPopupData } from '../../../utils' - function onSendDocRequest (): void { + function onSendDocRequest(): void { if ($controlledDocument == null) { return } diff --git a/plugins/controlled-documents-resources/src/components/document/right-panel/DocumentApprovalItem.svelte b/plugins/controlled-documents-resources/src/components/document/right-panel/DocumentApprovalItem.svelte index 077b704d47..90a9ff19da 100644 --- a/plugins/controlled-documents-resources/src/components/document/right-panel/DocumentApprovalItem.svelte +++ b/plugins/controlled-documents-resources/src/components/document/right-panel/DocumentApprovalItem.svelte @@ -49,7 +49,7 @@ • {dtf.format(state?.modifiedOn)}
- +
@@ -74,9 +74,9 @@ > {#if approval.state === 'approved'} - + {:else if approval.state === 'rejected'} - + {:else if approval.state === 'cancelled'} {:else if approval.state === 'waiting'} diff --git a/plugins/controlled-documents-resources/src/components/document/right-panel/DocumentCommentThread.svelte b/plugins/controlled-documents-resources/src/components/document/right-panel/DocumentCommentThread.svelte index 538667bafb..93b8b067b2 100644 --- a/plugins/controlled-documents-resources/src/components/document/right-panel/DocumentCommentThread.svelte +++ b/plugins/controlled-documents-resources/src/components/document/right-panel/DocumentCommentThread.svelte @@ -24,7 +24,7 @@ } $: resolved = isResolved(value) - function isResolved (val: DocumentComment | undefined): boolean { + function isResolved(val: DocumentComment | undefined): boolean { return val?.resolved !== undefined && val.resolved } diff --git a/plugins/controlled-documents-resources/src/components/document/right-panel/DocumentInfoTab.svelte b/plugins/controlled-documents-resources/src/components/document/right-panel/DocumentInfoTab.svelte index 34a3973f73..2dedc79623 100644 --- a/plugins/controlled-documents-resources/src/components/document/right-panel/DocumentInfoTab.svelte +++ b/plugins/controlled-documents-resources/src/components/document/right-panel/DocumentInfoTab.svelte @@ -47,7 +47,7 @@ const client = getClient() const hierarchy = client.getHierarchy() - function handleCodeEdit (event: MouseEvent): void { + function handleCodeEdit(event: MouseEvent): void { event?.preventDefault() event?.stopPropagation() @@ -60,7 +60,7 @@ ) } - function handleCategoryEdit (event: MouseEvent): void { + function handleCategoryEdit(event: MouseEvent): void { event?.preventDefault() event?.stopPropagation() diff --git a/plugins/controlled-documents-resources/src/components/document/right-panel/info/DocumentFlatTreeElement.svelte b/plugins/controlled-documents-resources/src/components/document/right-panel/info/DocumentFlatTreeElement.svelte index 85bf78e8ad..88cc139bf9 100644 --- a/plugins/controlled-documents-resources/src/components/document/right-panel/info/DocumentFlatTreeElement.svelte +++ b/plugins/controlled-documents-resources/src/components/document/right-panel/info/DocumentFlatTreeElement.svelte @@ -52,7 +52,7 @@ iconProps={{ fill: 'currentColor' }} - size={'small'} + size="small" /> {/if} diff --git a/plugins/controlled-documents-resources/src/components/hierarchy/DocHierarchyLevel.svelte b/plugins/controlled-documents-resources/src/components/hierarchy/DocHierarchyLevel.svelte index 3d2f0c1e37..cf1b26642d 100644 --- a/plugins/controlled-documents-resources/src/components/hierarchy/DocHierarchyLevel.svelte +++ b/plugins/controlled-documents-resources/src/components/hierarchy/DocHierarchyLevel.svelte @@ -48,7 +48,7 @@ const dispatch = createEventDispatcher() - async function getDocMoreActions (obj: Doc): Promise { + async function getDocMoreActions(obj: Doc): Promise { return getMoreActions !== undefined ? await getMoreActions(obj) : [] } diff --git a/plugins/controlled-documents-resources/src/components/hierarchy/DocumentParentSelector.svelte b/plugins/controlled-documents-resources/src/components/hierarchy/DocumentParentSelector.svelte index 54ef4e6105..04aef18cac 100644 --- a/plugins/controlled-documents-resources/src/components/hierarchy/DocumentParentSelector.svelte +++ b/plugins/controlled-documents-resources/src/components/hierarchy/DocumentParentSelector.svelte @@ -54,7 +54,7 @@ selected={selected === undefined} empty={root.length === 0} {collapsedPrefix} - type={'nested-selectable'} + type="nested-selectable" on:click={() => { dispatch('selected', space) }} diff --git a/plugins/controlled-documents-resources/src/components/hierarchy/DocumentSpacePresenter.svelte b/plugins/controlled-documents-resources/src/components/hierarchy/DocumentSpacePresenter.svelte index 6fea79ff2c..ae4c489881 100644 --- a/plugins/controlled-documents-resources/src/components/hierarchy/DocumentSpacePresenter.svelte +++ b/plugins/controlled-documents-resources/src/components/hierarchy/DocumentSpacePresenter.svelte @@ -121,18 +121,18 @@ selectedControlledDoc = undefined } - async function selectProject (space: DocumentSpace): Promise { + async function selectProject(space: DocumentSpace): Promise { project = (await getLatestProjectId(space._id, true)) ?? documents.ids.NoProject } - function handleDocumentSelected (doc: WithLookup): void { + function handleDocumentSelected(doc: WithLookup): void { if (doc.$lookup?.document !== undefined) { const loc = getProjectDocumentLink(doc.$lookup?.document, doc.project) navigate(loc) } } - async function getSpaceActions (space: DocumentSpace): Promise { + async function getSpaceActions(space: DocumentSpace): Promise { const actions = await getActions(space) if ( @@ -168,7 +168,7 @@ return orderActions(actions) } - async function getDocumentActions (obj: Doc): Promise { + async function getDocumentActions(obj: Doc): Promise { const result: Action[] = [] const extraActions = await getContributedActions(client, obj) for (const act of extraActions) { @@ -186,7 +186,7 @@ return orderActions(result) } - function orderActions (actions: Action[]): Action[] { + function orderActions(actions: Action[]): Action[] { const order: Record = { create: 1, edit: 2, @@ -209,14 +209,14 @@ let draggedOverTop: number = 0 let cannotDropTo: Ref[] = [] - function canDrop (object: Ref, target: Ref): boolean { + function canDrop(object: Ref, target: Ref): boolean { if (object === target) return false if (cannotDropTo.includes(target)) return false return true } - function onDragStart (event: DragEvent, object: Ref): void { + function onDragStart(event: DragEvent, object: Ref): void { // no prevent default to leverage default rendering // event.preventDefault() if (event.dataTransfer === null || event.target === null) { @@ -232,7 +232,7 @@ closeTooltip() } - function getDropPosition (event: DragEvent): { pos: 'before' | 'after' | undefined, top: number } { + function getDropPosition(event: DragEvent): { pos: 'before' | 'after' | undefined; top: number } { const parentRect = parent.getBoundingClientRect() const targetRect = (event.target as HTMLElement).getBoundingClientRect() const dropPosition = event.clientY - targetRect.top @@ -246,7 +246,7 @@ return { pos, top } } - function onDragOver (event: DragEvent, object: Ref): void { + function onDragOver(event: DragEvent, object: Ref): void { event.preventDefault() // this is an ugly solution to control drop effect // we drag and drop elements that are in the depth of components hierarchy @@ -268,14 +268,14 @@ } } - function onDragEnd (event: DragEvent): void { + function onDragEnd(event: DragEvent): void { event.preventDefault() draggedItem = undefined draggedOver = undefined draggedOverPos = undefined } - function onDrop (event: DragEvent, object: Ref): void { + function onDrop(event: DragEvent, object: Ref): void { event.preventDefault() if (event.dataTransfer === null) { return @@ -325,7 +325,7 @@ showMenu={pressed} {forciblyСollapsed} actions={() => getSpaceActions(space)} - type={'nested'} + type="nested" draggable on:drop={(evt) => { onDrop(evt, documents.ids.NoParent) @@ -342,9 +342,9 @@ { diff --git a/plugins/controlled-documents-resources/src/components/print/DocumentTemplateHeader.svelte b/plugins/controlled-documents-resources/src/components/print/DocumentTemplateHeader.svelte index aa240b4bf3..f572936667 100644 --- a/plugins/controlled-documents-resources/src/components/print/DocumentTemplateHeader.svelte +++ b/plugins/controlled-documents-resources/src/components/print/DocumentTemplateHeader.svelte @@ -34,7 +34,7 @@ } }) - async function fetchIconAsDataUrl (iconRef: Ref): Promise { + async function fetchIconAsDataUrl(iconRef: Ref): Promise { try { const url = getPreviewThumbnail(iconRef, logoSize, logoSize, 1) const response = await fetch(url) @@ -91,7 +91,7 @@
{#if iconDataUrl} - {''} + {/if} {workspace} diff --git a/plugins/controlled-documents-resources/src/components/project/ProjectSelector.svelte b/plugins/controlled-documents-resources/src/components/project/ProjectSelector.svelte index d83765ba04..e7d5fbf69c 100644 --- a/plugins/controlled-documents-resources/src/components/project/ProjectSelector.svelte +++ b/plugins/controlled-documents-resources/src/components/project/ProjectSelector.svelte @@ -46,7 +46,7 @@ ;[project] = res }) - function showVersionsPopup (): void { + function showVersionsPopup(): void { if (disabled) return pressed = true diff --git a/plugins/controlled-documents-resources/src/components/project/ProjectSelectorPopup.svelte b/plugins/controlled-documents-resources/src/components/project/ProjectSelectorPopup.svelte index 0eb68534c0..88de80f2f9 100644 --- a/plugins/controlled-documents-resources/src/components/project/ProjectSelectorPopup.svelte +++ b/plugins/controlled-documents-resources/src/components/project/ProjectSelectorPopup.svelte @@ -48,7 +48,7 @@ } ) - function selectProject (project: Ref): void { + function selectProject(project: Ref): void { dispatch('close', project) } @@ -59,12 +59,12 @@
- + {#each projects as project} { + async function getObject(value: Request): Promise { const attachedToClass = value.attachedToClass object = await client.findOne(attachedToClass, { _id: value.attachedTo }) } diff --git a/plugins/controlled-documents-resources/src/docTableFormatter.ts b/plugins/controlled-documents-resources/src/docTableFormatter.ts index 19bc1feefe..9f576d4de9 100644 --- a/plugins/controlled-documents-resources/src/docTableFormatter.ts +++ b/plugins/controlled-documents-resources/src/docTableFormatter.ts @@ -23,7 +23,7 @@ import { isIntlString } from '@hcengineering/converter-resources' /** * Format version number from major and minor */ -function formatVersion (major: number | undefined, minor: number | undefined): string { +function formatVersion(major: number | undefined, minor: number | undefined): string { if (major === undefined || minor === undefined) { return '' } @@ -33,7 +33,7 @@ function formatVersion (major: number | undefined, minor: number | undefined): s /** * Get state value from document (handles both state and controlledState) */ -function getDocumentState (doc: Record): string | undefined { +function getDocumentState(doc: Record): string | undefined { const controlledState: unknown = doc.controlledState if (controlledState !== undefined && controlledState !== null) { return String(controlledState) @@ -50,7 +50,7 @@ const spaceCache = new Map, string>() /** * Load space name from space reference with caching support */ -async function loadSpaceName (spaceRef: Ref): Promise { +async function loadSpaceName(spaceRef: Ref): Promise { // Check cache first const cachedName = spaceCache.get(spaceRef) if (cachedName !== undefined) { @@ -78,7 +78,7 @@ async function loadSpaceName (spaceRef: Ref): Promise { * Value formatter for controlled document fields * Handles special cases where empty keys use custom presenters */ -export async function formatControlledDocumentValue ( +export async function formatControlledDocumentValue( attr: AttributeModel, card: Doc, hierarchy: Hierarchy, @@ -104,9 +104,7 @@ export async function formatControlledDocumentValue ( // Translate label to determine which field to extract let labelText = '' if (typeof attr.label === 'string') { - labelText = isIntlString(attr.label) - ? await translate(attr.label as unknown as IntlString, {}, language) - : attr.label + labelText = isIntlString(attr.label) ? await translate(attr.label, {}, language) : attr.label } else { labelText = await translate(attr.label, {}, language) } @@ -210,9 +208,7 @@ export async function formatControlledDocumentValue ( // Translate label to determine which field to extract for template let labelText = '' if (typeof attr.label === 'string') { - labelText = isIntlString(attr.label) - ? await translate(attr.label as unknown as IntlString, {}, language) - : attr.label + labelText = isIntlString(attr.label) ? await translate(attr.label, {}, language) : attr.label } else { labelText = await translate(attr.label, {}, language) } diff --git a/plugins/controlled-documents-resources/src/docutils.ts b/plugins/controlled-documents-resources/src/docutils.ts index 4f3781dc57..57d586ddfb 100644 --- a/plugins/controlled-documents-resources/src/docutils.ts +++ b/plugins/controlled-documents-resources/src/docutils.ts @@ -49,7 +49,7 @@ import { getCurrentEmployee } from '@hcengineering/contact' import documentsRes from './plugin' import { getDocumentVersionString } from './utils' -export async function createControlledDocFromTemplate ( +export async function createControlledDocFromTemplate( client: TxOperations, templateId: Ref | undefined, documentId: Ref, @@ -58,7 +58,7 @@ export async function createControlledDocFromTemplate ( project: Ref | undefined, parent: Ref | undefined, docClass: Ref> = documents.class.ControlledDocument -): Promise<{ seqNumber: number, success: boolean }> { +): Promise<{ seqNumber: number; success: boolean }> { const result = await controlledDocFromTemplate(client, templateId, documentId, spec, space, project, parent, docClass) if (result.success && templateId !== undefined) { @@ -77,7 +77,7 @@ export async function createControlledDocFromTemplate ( return result } -async function copyDocumentAttachments ( +async function copyDocumentAttachments( client: TxOperations, sourceId: Ref, targetId: Ref, @@ -118,14 +118,14 @@ async function copyDocumentAttachments ( } } -export async function createNewDraftForControlledDoc ( +export async function createNewDraftForControlledDoc( client: TxOperations, document: ControlledDocument, space: Ref, - version: { major: number, minor: number }, + version: { major: number; minor: number }, project: Ref, newDraftDocId?: Ref -): Promise<{ success: boolean, id: Ref }> { +): Promise<{ success: boolean; id: Ref }> { const hierarchy = client.getHierarchy() newDraftDocId = newDraftDocId ?? generateId() @@ -265,7 +265,7 @@ export async function createNewDraftForControlledDoc ( return { success: res.result, id: newDraftDocId } } -export async function createDocumentSnapshotAndEdit (client: TxOperations, document: ControlledDocument): Promise { +export async function createDocumentSnapshotAndEdit(client: TxOperations, document: ControlledDocument): Promise { const language = get(themeStore).language const namePrefix = await translate(documents.string.DraftRevision, {}, language) const name = `${namePrefix} ${(document.snapshots ?? 0) + 1}` @@ -297,17 +297,17 @@ export async function createDocumentSnapshotAndEdit (client: TxOperations, docum await copyMarkup(source, target) } -export function getDocumentTrainingClass (hierarchy: Hierarchy): Class { +export function getDocumentTrainingClass(hierarchy: Hierarchy): Class { return hierarchy.getClass(documentsRes.mixin.DocumentTraining) } -export function getDocumentTraining (hierarchy: Hierarchy, document: ControlledDocument): DocumentTraining | undefined { +export function getDocumentTraining(hierarchy: Hierarchy, document: ControlledDocument): DocumentTraining | undefined { return hierarchy.hasMixin(document, documents.mixin.DocumentTraining) ? hierarchy.as(document, documents.mixin.DocumentTraining) : undefined } -export async function createDocumentTraining ( +export async function createDocumentTraining( client: TxOperations, document: ControlledDocument, create: MixinData @@ -321,7 +321,7 @@ export async function createDocumentTraining ( ) } -export async function updateDocumentTraining ( +export async function updateDocumentTraining( client: TxOperations, document: ControlledDocument, update: MixinUpdate @@ -335,7 +335,7 @@ export async function updateDocumentTraining ( ) } -export function getDocReference (doc: Document | null): string { +export function getDocReference(doc: Document | null): string { if (doc == null) { return '' } diff --git a/plugins/controlled-documents-resources/src/index.ts b/plugins/controlled-documents-resources/src/index.ts index 327ba9bf91..ee4f8ba0ca 100644 --- a/plugins/controlled-documents-resources/src/index.ts +++ b/plugins/controlled-documents-resources/src/index.ts @@ -129,11 +129,11 @@ const toObjectSearchResult = (e: WithLookup): ObjectSearchResult = component: DocumentItem }) -async function queryDocumentMeta ( +async function queryDocumentMeta( _class: Ref>, client: Client, search: string, - filter?: { in?: RelatedDocument[], nin?: RelatedDocument[] } + filter?: { in?: RelatedDocument[]; nin?: RelatedDocument[] } ): Promise { const q: DocumentQuery = { name: { $like: `%${search}%` } } if (filter?.in !== undefined || filter?.nin !== undefined) { @@ -152,7 +152,7 @@ async function queryDocumentMeta ( ).map(toObjectSearchResult) } -async function deleteDocuments (obj: Document | Document[]): Promise { +async function deleteDocuments(obj: Document | Document[]): Promise { const docs = Array.isArray(obj) ? obj : [obj] const docNames = docs.map((d) => `${d.title} (${d.prefix}-${d.seqNumber})`).join(', ') @@ -169,7 +169,7 @@ async function deleteDocuments (obj: Document | Document[]): Promise { }) } -async function archiveDocuments (obj: Document | Document[]): Promise { +async function archiveDocuments(obj: Document | Document[]): Promise { const docs = Array.isArray(obj) ? obj : [obj] const docNames = docs.map((d) => `${d.title} (${d.prefix}-${d.seqNumber})`).join(', ') @@ -187,7 +187,7 @@ async function archiveDocuments (obj: Document | Document[]): Promise { }) } -async function makeDocumentObsolete (obj: Document | Document[]): Promise { +async function makeDocumentObsolete(obj: Document | Document[]): Promise { const docs = Array.isArray(obj) ? obj : [obj] const docNames = docs.map((d) => `${d.title} (${d.prefix}-${d.seqNumber})`).join(', ') @@ -205,7 +205,7 @@ async function makeDocumentObsolete (obj: Document | Document[]): Promise }) } -async function canDeleteDocument (obj?: Doc | Doc[]): Promise { +async function canDeleteDocument(obj?: Doc | Doc[]): Promise { if (obj == null) { return false } @@ -221,7 +221,7 @@ async function canDeleteDocument (obj?: Doc | Doc[]): Promise { return await isDraftDoc(obj) } -async function canArchiveDocument (obj?: Doc | Doc[]): Promise { +async function canArchiveDocument(obj?: Doc | Doc[]): Promise { if (obj == null) { return false } @@ -243,7 +243,7 @@ async function canArchiveDocument (obj?: Doc | Doc[]): Promise { ).then((res) => res.every((r) => r)) } -async function canMakeDocumentObsolete (obj?: Doc | Doc[]): Promise { +async function canMakeDocumentObsolete(obj?: Doc | Doc[]): Promise { if (obj == null) { return false } @@ -265,7 +265,7 @@ async function canMakeDocumentObsolete (obj?: Doc | Doc[]): Promise { ).then((res) => res.every((r) => r)) } -async function canOpenDocument (obj?: ProjectDocument | ProjectDocument[]): Promise { +async function canOpenDocument(obj?: ProjectDocument | ProjectDocument[]): Promise { if (obj == null) { return false } @@ -276,7 +276,7 @@ async function canOpenDocument (obj?: ProjectDocument | ProjectDocument[]): Prom return !objs.some((d) => isFolder(h, d)) } -async function canPrintDocument (obj?: Document | Document[] | ProjectDocument | ProjectDocument[]): Promise { +async function canPrintDocument(obj?: Document | Document[] | ProjectDocument | ProjectDocument[]): Promise { if (obj == null) { return false } @@ -296,7 +296,7 @@ async function canPrintDocument (obj?: Document | Document[] | ProjectDocument | return printURL?.length > 0 } -async function canTransferDocument (obj?: Doc | Doc[]): Promise { +async function canTransferDocument(obj?: Doc | Doc[]): Promise { if (obj == null) { return false } @@ -311,7 +311,7 @@ async function canTransferDocument (obj?: Doc | Doc[]): Promise { ).then((res) => res.every((r) => r)) } -async function transferDocuments (selection: Document | Document[]): Promise { +async function transferDocuments(selection: Document | Document[]): Promise { const objects = Array.isArray(selection) ? selection : [selection] const client = getClient() @@ -336,7 +336,7 @@ async function transferDocuments (selection: Document | Document[]): Promise { +async function isDraftDoc(obj?: Doc | Doc[]): Promise { if (obj == null) { return false } @@ -360,7 +360,7 @@ async function isDraftDoc (obj?: Doc | Doc[]): Promise { return objs.length > 0 } -async function editDocSpace (docSpace: DocumentSpace | undefined): Promise { +async function editDocSpace(docSpace: DocumentSpace | undefined): Promise { if (docSpace !== undefined) { showPopup(CreateDocumentsSpace, { docSpace, clazz: docSpace?._class }) } @@ -411,7 +411,7 @@ export default async (): Promise => ({ DocumentMetaQuery: async ( client: Client, query: string, - filter?: { in?: RelatedDocument[], nin?: RelatedDocument[] } + filter?: { in?: RelatedDocument[]; nin?: RelatedDocument[] } ) => await queryDocumentMeta(documents.class.DocumentMeta, client, query, filter) }, function: { diff --git a/plugins/controlled-documents-resources/src/navigation.ts b/plugins/controlled-documents-resources/src/navigation.ts index b94fc58e0a..d0f8e1f685 100644 --- a/plugins/controlled-documents-resources/src/navigation.ts +++ b/plugins/controlled-documents-resources/src/navigation.ts @@ -25,14 +25,14 @@ import view, { type ObjectPanel } from '@hcengineering/view' import { accessDeniedStore } from '@hcengineering/view-resources' import slugify from 'slugify' -export function getPanelFragment (object: Pick): string { +export function getPanelFragment(object: Pick): string { const hierarchy = getClient().getHierarchy() const objectPanelMixin = hierarchy.classHierarchyMixin(object._class, view.mixin.ObjectPanel) const component = objectPanelMixin?.component ?? view.component.EditDoc return getPanelURI(component, object._id, object._class, 'content') } -async function generateDocumentLocation ( +async function generateDocumentLocation( loc: Location, document: Ref ): Promise { @@ -60,7 +60,7 @@ async function generateDocumentLocation ( } } -async function generateProjectDocumentLocation ( +async function generateProjectDocumentLocation( loc: Location, document: Ref, project: Ref @@ -96,7 +96,7 @@ async function generateProjectDocumentLocation ( } } -export function getProjectDocumentLink (doc: Document | Ref, project: Ref): Location { +export function getProjectDocumentLink(doc: Document | Ref, project: Ref): Location { const loc = getCurrentResolvedLocation() loc.fragment = undefined loc.query = undefined @@ -110,7 +110,7 @@ export function getProjectDocumentLink (doc: Document | Ref, project: return loc } -export function getDocumentLink (doc: Document): Location { +export function getDocumentLink(doc: Document): Location { const loc = getCurrentResolvedLocation() loc.fragment = undefined loc.query = undefined @@ -121,12 +121,12 @@ export function getDocumentLink (doc: Document): Location { return loc } -function getDocumentLinkId (doc: Document): string { +function getDocumentLinkId(doc: Document): string { const slug = slugify(doc.title, { lower: true }) return `${slug}---${doc._id}` } -function parseDocumentId (shortLink?: string): Ref | undefined { +function parseDocumentId(shortLink?: string): Ref | undefined { if (shortLink === undefined) return undefined const parts = shortLink.split('---') if (parts.length > 1) { @@ -135,13 +135,13 @@ function parseDocumentId (shortLink?: string): Ref | undefin return shortLink as Ref } -export function getDocumentIdFromFragment (fragment: string): Ref | undefined { +export function getDocumentIdFromFragment(fragment: string): Ref | undefined { const props = decodeURIComponent(fragment).split('|') return props[1] != null ? (props[1] as Ref) : undefined } -export async function resolveLocation (loc: Location): Promise { +export async function resolveLocation(loc: Location): Promise { if (loc.path[2] !== documentsId) { return undefined } diff --git a/plugins/controlled-documents-resources/src/plugin.ts b/plugins/controlled-documents-resources/src/plugin.ts index b31480831c..467ebe2650 100644 --- a/plugins/controlled-documents-resources/src/plugin.ts +++ b/plugins/controlled-documents-resources/src/plugin.ts @@ -260,7 +260,7 @@ export default mergeIds(documentsId, documents, { ControlledDocumentTitleProvider: '' as Resource<(client: Client, ref: Ref, doc?: Doc) => Promise>, DocumentMetaTitleProvider: '' as Resource<(client: Client, ref: Ref, doc?: Doc) => Promise>, DocumentMetaReferenceVersionsProvider: '' as Resource< - (client: Client, ref: Ref, doc?: Doc) => Promise + (client: Client, ref: Ref, doc?: Doc) => Promise > } }) diff --git a/plugins/controlled-documents-resources/src/stores/editors/document.ts b/plugins/controlled-documents-resources/src/stores/editors/document.ts index d33ff22c2e..2bf2cc46df 100644 --- a/plugins/controlled-documents-resources/src/stores/editors/document.ts +++ b/plugins/controlled-documents-resources/src/stores/editors/document.ts @@ -41,7 +41,7 @@ export * from './document/canSendForReview' export * from './document/documentComments' export * from './document/comparison' export * from './document/editor' -export * from './document/query' +export type * from './document/query' export const addDocumentCommentFx = attach({ source: { document: $controlledDocument }, diff --git a/plugins/controlled-documents-resources/src/stores/editors/document/documentComments.ts b/plugins/controlled-documents-resources/src/stores/editors/document/documentComments.ts index 65e761ee8f..a36961826b 100644 --- a/plugins/controlled-documents-resources/src/stores/editors/document/documentComments.ts +++ b/plugins/controlled-documents-resources/src/stores/editors/document/documentComments.ts @@ -91,7 +91,7 @@ export const addCommentFx = createEffect( ) export const resolveCommentFx = createEffect( - async (payload: { comment: DocumentComment | null | undefined, resolved: boolean }) => { + async (payload: { comment: DocumentComment | null | undefined; resolved: boolean }) => { const { comment, resolved } = payload if (comment === null || comment === undefined) { @@ -105,7 +105,7 @@ export const resolveCommentFx = createEffect( ) export const showDocumentCommentsPopupFx = createEffect( - (payload: { element?: PopupAlignment, nodeId?: string | null }) => { + (payload: { element?: PopupAlignment; nodeId?: string | null }) => { showPopup( documents.component.DocumentCommentsPopup, payload, @@ -117,7 +117,7 @@ export const showDocumentCommentsPopupFx = createEffect( } ) -export const showAddCommentPopupFx = createEffect((payload: { element?: PopupAlignment, nodeId?: string | null }) => { +export const showAddCommentPopupFx = createEffect((payload: { element?: PopupAlignment; nodeId?: string | null }) => { showPopup( documents.component.AddCommentPopup, { diff --git a/plugins/controlled-documents-resources/src/stores/editors/document/query.ts b/plugins/controlled-documents-resources/src/stores/editors/document/query.ts index 351f302e84..1c907d8c0a 100644 --- a/plugins/controlled-documents-resources/src/stores/editors/document/query.ts +++ b/plugins/controlled-documents-resources/src/stores/editors/document/query.ts @@ -60,7 +60,7 @@ const projectQuery = createQuery(true) const projectDocumentsQuery = createQuery(true) const queryControlledDocumentFx = createEffect( - (payload: { _id: Ref, _class: Ref> }) => { + (payload: { _id: Ref; _class: Ref> }) => { const { _class, _id } = payload if (_class == null || _id == null) { @@ -110,7 +110,7 @@ const queryDocumentVersionsFx = createEffect((payload: ControlledDocument) => { }) const queryReviewRequestFx = createEffect( - (payload: { _id: Ref, _class: Ref> }) => { + (payload: { _id: Ref; _class: Ref> }) => { const { _id, _class } = payload if (_id == null || _class == null) { reviewRequestQuery.unsubscribe() @@ -127,7 +127,7 @@ const queryReviewRequestFx = createEffect( ) const queryReviewRequestHistoryFx = createEffect( - (payload: { _id: Ref, _class: Ref> }) => { + (payload: { _id: Ref; _class: Ref> }) => { const { _id, _class } = payload if (_id == null || _class == null) { reviewRequestHistoryQuery.unsubscribe() @@ -161,7 +161,7 @@ const queryApprovalRequestFx = createEffect((payload: { _id: Ref { + (payload: { document: Document | null; filter: DocumentCommentsFilter }) => { const { filter, document } = payload if (document === null) { documentCommentsQuery.unsubscribe() diff --git a/plugins/controlled-documents-resources/src/text.ts b/plugins/controlled-documents-resources/src/text.ts index 33d340312a..48d712a104 100644 --- a/plugins/controlled-documents-resources/src/text.ts +++ b/plugins/controlled-documents-resources/src/text.ts @@ -29,7 +29,7 @@ import { getNodeElement, selectNode } from '@hcengineering/text-editor-resources import { showAddCommentPopupFx } from './stores/editors/document' import { $editorMode } from './stores/editors/document/editor' -async function getCurrentReviewRequest (doc: ControlledDocument): Promise { +async function getCurrentReviewRequest(doc: ControlledDocument): Promise { const client = getClient() return await client.findOne(documents.class.DocumentReviewRequest, { @@ -39,7 +39,7 @@ async function getCurrentReviewRequest (doc: ControlledDocument): Promise { if (doc == null) { @@ -66,7 +66,7 @@ async function getDocumentStateForCurrentUser ( return doc.state } -function isDocumentOwner (doc: ControlledDocument): boolean { +function isDocumentOwner(doc: ControlledDocument): boolean { if (doc == null) { return false } @@ -76,7 +76,7 @@ function isDocumentOwner (doc: ControlledDocument): boolean { return doc.owner === employee } -function isDocumentCoAuthor (doc: ControlledDocument): boolean { +function isDocumentCoAuthor(doc: ControlledDocument): boolean { if (doc == null) { return false } @@ -90,7 +90,7 @@ function isDocumentCoAuthor (doc: ControlledDocument): boolean { return doc.coAuthors.includes(employee) } -function isDocumentReviewer (doc: ControlledDocument): boolean { +function isDocumentReviewer(doc: ControlledDocument): boolean { if (doc == null) { return false } @@ -102,14 +102,14 @@ function isDocumentReviewer (doc: ControlledDocument): boolean { return doc.reviewers?.includes(employee) ?? false } -function canViewDocumentComments (doc: ControlledDocument, mode: EditorMode): boolean { +function canViewDocumentComments(doc: ControlledDocument, mode: EditorMode): boolean { return ( (isDocumentOwner(doc) || isDocumentCoAuthor(doc) || isDocumentReviewer(doc)) && (mode === 'viewing' || mode === 'editing') ) } -async function canAddDocumentComments (doc: ControlledDocument, mode: EditorMode): Promise { +async function canAddDocumentComments(doc: ControlledDocument, mode: EditorMode): Promise { if (!canViewDocumentComments(doc, mode)) { return false } @@ -127,7 +127,7 @@ async function canAddDocumentComments (doc: ControlledDocument, mode: EditorMode return false } -export async function comment (editor: Editor, event: MouseEvent, ctx: ActionContext): Promise { +export async function comment(editor: Editor, event: MouseEvent, ctx: ActionContext): Promise { const { objectId, objectClass } = ctx if (editor === undefined || objectId === undefined || objectClass === undefined) { @@ -143,7 +143,7 @@ export async function comment (editor: Editor, event: MouseEvent, ctx: ActionCon selectNode(editor, nodeId) } -export async function isCommentVisible (editor: Editor, ctx: ActionContext): Promise { +export async function isCommentVisible(editor: Editor, ctx: ActionContext): Promise { const { objectId, objectClass } = ctx if (objectId === undefined || objectClass === undefined) { return false diff --git a/plugins/controlled-documents-resources/src/utils.ts b/plugins/controlled-documents-resources/src/utils.ts index d7cc3609d1..fa4ebed9b6 100644 --- a/plugins/controlled-documents-resources/src/utils.ts +++ b/plugins/controlled-documents-resources/src/utils.ts @@ -89,7 +89,7 @@ export const isDocumentCommentAttachedTo = ( return (value.nodeId ?? null) === (location.nodeId ?? null) } -export async function getTranslatedDocumentStates (lang: string): Promise { +export async function getTranslatedDocumentStates(lang: string): Promise { return { [DocumentState.Draft]: await translate(documents.string.Draft, {}, lang), [DocumentState.Deleted]: await translate(documents.string.Deleted, {}, lang), @@ -101,7 +101,7 @@ export async function getTranslatedDocumentStates (lang: string): Promise> -export async function getTranslatedControlledDocStates (lang: string): Promise { +export async function getTranslatedControlledDocStates(lang: string): Promise { return { [ControlledDocumentState.Approved]: await translate(documentsResources.controlledDocStates.Approved, {}, lang), [ControlledDocumentState.InApproval]: await translate(documentsResources.controlledDocStates.InApproval, {}, lang), @@ -112,42 +112,42 @@ export async function getTranslatedControlledDocStates (lang: string): Promise): Promise { +export async function getVisibleFilters(filters: KeyFilter[], space?: Ref): Promise { // Removes the "Space" filter if a specific space is provided return space === undefined ? filters : filters.filter((f) => f.key !== 'space') } -export async function sortDocumentStates (_: TxOperations, states: DocumentState[]): Promise { +export async function sortDocumentStates(_: TxOperations, states: DocumentState[]): Promise { states.sort((state1, state2) => documentStatesOrder.indexOf(state2) - documentStatesOrder.indexOf(state1)) return states } -export async function getAllDocumentStates (): Promise { +export async function getAllDocumentStates(): Promise { return documentStatesOrder } -export async function getDocumentMetaLinkFragment (document: Doc): Promise { +export async function getDocumentMetaLinkFragment(document: Doc): Promise { const meta = document._id as Ref const client = getClient() const docs = await client.findAll( @@ -200,7 +200,7 @@ export async function getDocumentMetaLinkFragment (document: Doc): Promise { +export async function getControlledDocumentLinkFragment(document: ControlledDocument): Promise { const client = getClient() const targetDocument = await client.findOne(documents.class.ProjectDocument, { document: document._id }) @@ -218,7 +218,7 @@ export interface TeamPopupData { requireSignature?: boolean } -export async function sendReviewRequest ( +export async function sendReviewRequest( client: TxOperations, controlledDoc: ControlledDocument, reviewers: Array> @@ -245,7 +245,7 @@ export async function sendReviewRequest ( ) } -export async function sendApprovalRequest ( +export async function sendApprovalRequest( client: TxOperations, controlledDoc: ControlledDocument, approvers: Array>, @@ -300,7 +300,7 @@ export async function sendApprovalRequest ( ) } -export async function updateExternalApproversAccess ( +export async function updateExternalApproversAccess( client: TxOperations, controlledDoc: ControlledDocument, added: Array>, @@ -353,11 +353,11 @@ export async function updateExternalApproversAccess ( removedPersons.length === 0 ? [] : await client.findAll(core.class.Collaborator, { - attachedTo: controlledDoc._id, - attachedToClass: controlledDoc._class, - collection: 'collaborators', - collaborator: { $in: removedPersonUuids } - }) + attachedTo: controlledDoc._id, + attachedToClass: controlledDoc._class, + collection: 'collaborators', + collaborator: { $in: removedPersonUuids } + }) const projectDocs = await client.findAll(documents.class.ProjectDocument, { document: controlledDoc._id }) @@ -381,7 +381,7 @@ export async function updateExternalApproversAccess ( } } -async function createRequest ( +async function createRequest( client: TxOperations, attachedTo: Ref, attachedToClass: Ref>, @@ -422,7 +422,7 @@ async function createRequest ( } } -async function getActiveRequest ( +async function getActiveRequest( client: TxOperations, reqClass: Ref>, controlledDoc: ControlledDocument @@ -437,7 +437,7 @@ async function getActiveRequest ( ) } -export async function completeRequest ( +export async function completeRequest( client: TxOperations, reqClass: Ref>, controlledDoc: ControlledDocument @@ -468,7 +468,7 @@ export async function completeRequest ( await ops.commit() } -export async function saveComment (message: Markup | undefined, req: DocumentRequest): Promise { +export async function saveComment(message: Markup | undefined, req: DocumentRequest): Promise { if (message === undefined || message === '' || isEmptyMarkup(message)) { return } @@ -479,7 +479,7 @@ export async function saveComment (message: Markup | undefined, req: DocumentReq await client.createMixin(id, chunter.class.ChatMessage, req.space, request.mixin.RequestDecisionComment, {}) } -export async function rejectRequest ( +export async function rejectRequest( client: TxOperations, reqClass: Ref>, controlledDoc: ControlledDocument, @@ -501,9 +501,7 @@ export async function rejectRequest ( }) } -export type ControlledStatesTags = { - [K in ControlledDocumentState]: DocumentStateTagType -} +export type ControlledStatesTags = Record export const controlledStatesTags: ControlledStatesTags = { [ControlledDocumentState.InReview]: 'inProgress', @@ -514,9 +512,7 @@ export const controlledStatesTags: ControlledStatesTags = { [ControlledDocumentState.ToReview]: 'effective' } -export type StatesTags = { - [K in DocumentState]: DocumentStateTagType -} +export type StatesTags = Record export const statesTags: StatesTags = { [DocumentState.Draft]: 'draft', @@ -563,7 +559,7 @@ export const loginIntlFieldNames: Readonly<{ [K in keyof LoginInfo]: IntlString export type DocumentStateTagType = 'effective' | 'inProgress' | 'rejected' | 'draft' | 'obsolete' -export function isDocOwner (ownableDocument: { owner?: Ref }): boolean { +export function isDocOwner(ownableDocument: { owner?: Ref }): boolean { const currentPerson = getCurrentEmployee() return ownableDocument.owner === currentPerson @@ -586,7 +582,7 @@ export async function canChangeDocumentOwner (doc?: Document | Document[]): Prom return await checkPermission(getClient(), documents.permission.UpdateDocumentOwner, doc.space) } -export async function canCreateChildTemplate ( +export async function canCreateChildTemplate( doc?: Document | Document[] | DocumentSpace | DocumentSpace[] | ProjectDocument | ProjectDocument[] ): Promise { if (doc === null || doc === undefined) { @@ -603,7 +599,7 @@ export async function canCreateChildTemplate ( return orgSpace !== undefined && (await checkPermission(client, documents.permission.CreateDocument, spaceId)) } -export async function canCreateChildDocument ( +export async function canCreateChildDocument( doc?: Document | Document[] | DocumentSpace | DocumentSpace[] | ProjectDocument | ProjectDocument[], includeProjects = false ): Promise { @@ -635,7 +631,7 @@ export async function canCreateChildDocument ( return true } -export async function canCreateChildFolder ( +export async function canCreateChildFolder( doc?: Document | Document[] | DocumentSpace | DocumentSpace[] | ProjectDocument | ProjectDocument[], includeProjects = false ): Promise { @@ -667,7 +663,7 @@ export async function canCreateChildFolder ( return true } -export async function canRenameFolder ( +export async function canRenameFolder( doc?: Document | Document[] | DocumentSpace | DocumentSpace[] | ProjectDocument | ProjectDocument[], includeProjects = false ): Promise { @@ -699,7 +695,7 @@ export async function canRenameFolder ( return await isEditableProject(doc.project) } -export async function canDeleteFolder (doc: ProjectDocument): Promise { +export async function canDeleteFolder(doc: ProjectDocument): Promise { if (doc?._class === undefined) return false const client = getClient() @@ -717,7 +713,7 @@ export async function canDeleteFolder (doc: ProjectDocument): Promise { return await checkPermission(getClient(), documents.permission.ArchiveDocument, doc.space) } -export async function canDeleteDocumentCategory (doc?: Doc | Doc[]): Promise { +export async function canDeleteDocumentCategory(doc?: Doc | Doc[]): Promise { if (doc === null || doc === undefined) { return false } @@ -737,7 +733,7 @@ export async function canDeleteDocumentCategory (doc?: Doc | Doc[]): Promise, includeReadonly = false): Promise { +async function getLatestProject(space: Ref, includeReadonly = false): Promise { const client = getClient() // TODO we should use better approach on selecting the latest available project @@ -749,7 +745,7 @@ async function getLatestProject (space: Ref, includeReadonly = fa }) } -export async function getLatestProjectId ( +export async function getLatestProjectId( spaceRef: Ref, includeReadonly = false ): Promise | undefined> { @@ -776,7 +772,7 @@ export async function getLatestProjectId ( } } -export async function isEditableProject (_id: Ref | undefined): Promise { +export async function isEditableProject(_id: Ref | undefined): Promise { if (_id === undefined) { return false } @@ -790,7 +786,7 @@ export async function isEditableProject (_id: Ref | undefined): Promise return project !== undefined && !project.readonly } -export function getProjectDocsHierarchy (projectMeta: Array>): { +export function getProjectDocsHierarchy(projectMeta: Array>): { rootDocs: Array> childrenByParent: Record>, Array>> } { @@ -814,11 +810,11 @@ export function getProjectDocsHierarchy (projectMeta: Array, doc?: Document): Promise { +export async function documentIdentifierProvider(client: Client, ref: Ref, doc?: Document): Promise { const document = doc ?? (await client.findOne(documents.class.Document, { _id: ref })) if (document === undefined) { @@ -828,7 +824,7 @@ export async function documentIdentifierProvider (client: Client, ref: Ref, doc?: DocumentMeta @@ -842,7 +838,7 @@ export async function getDocumentMetaTitle ( return object.title + ` (${hint})` } -export async function documentMetaReferenceVersionsProvider ( +export async function documentMetaReferenceVersionsProvider( client: Client, ref: Ref ): Promise { @@ -865,7 +861,7 @@ export async function documentMetaReferenceVersionsProvider ( })) } -export async function controlledDocumentReferenceObjectProvider ( +export async function controlledDocumentReferenceObjectProvider( client: Client, ref: Ref, doc?: ControlledDocument @@ -889,7 +885,7 @@ export async function controlledDocumentReferenceObjectProvider ( return docIndex >= 0 && (docIndex <= effIndex || effIndex < 0) ? meta : document } -export async function projectDocumentReferenceObjectProvider ( +export async function projectDocumentReferenceObjectProvider( client: Client, ref: Ref, doc?: ProjectDocument @@ -900,15 +896,15 @@ export async function projectDocumentReferenceObjectProvider ( return await controlledDocumentReferenceObjectProvider(client, prjdoc.document as Ref) } -export function documentCompareFn (doc1: Document, doc2: Document): number { +export function documentCompareFn(doc1: Document, doc2: Document): number { return doc1.major - doc2.major !== 0 ? doc1.major - doc2.major : doc1.minor - doc2.minor } -export function getDocumentVersionString (doc: Document): string { +export function getDocumentVersionString(doc: Document): string { return `v${doc.major}.${doc.minor}` } -export async function getControlledDocumentTitle ( +export async function getControlledDocumentTitle( client: Client, ref: Ref, doc?: ControlledDocument @@ -920,17 +916,17 @@ export async function getControlledDocumentTitle ( return object.title + ` (${getDocumentVersionString(object)})` } -export async function createChildDocument (doc: ProjectDocument): Promise { +export async function createChildDocument(doc: ProjectDocument): Promise { wizardOpened({ $$currentStep: 'template', location: { space: doc.space, project: doc.project, parent: doc._id } }) showPopup(documents.component.QmsDocumentWizard, {}) } -export async function createChildTemplate (doc: ProjectDocument): Promise { +export async function createChildTemplate(doc: ProjectDocument): Promise { wizardOpened({ $$currentStep: 'info', location: { space: doc.space, project: doc.project, parent: doc._id } }) showPopup(documents.component.QmsTemplateWizard, {}) } -export async function createChildFolder (doc: ProjectDocument): Promise { +export async function createChildFolder(doc: ProjectDocument): Promise { const props = { space: doc.space, project: doc.project, @@ -940,7 +936,7 @@ export async function createChildFolder (doc: ProjectDocument): Promise { showPopup(documents.component.CreateFolder, props) } -export async function renameFolder (doc: ProjectDocument): Promise { +export async function renameFolder(doc: ProjectDocument): Promise { const client = getClient() const pjmeta = await client.findOne(documents.class.ProjectMeta, { _id: doc.attachedTo }) @@ -957,7 +953,7 @@ export async function renameFolder (doc: ProjectDocument): Promise { showPopup(documents.component.CreateFolder, props) } -export async function deleteFolder (obj: ProjectDocument): Promise { +export async function deleteFolder(obj: ProjectDocument): Promise { const success = await _deleteFolder(obj) if (!success) { showPopup(MessageBox, { @@ -968,7 +964,7 @@ export async function deleteFolder (obj: ProjectDocument): Promise { } } -async function _deleteFolder (obj: ProjectDocument): Promise { +async function _deleteFolder(obj: ProjectDocument): Promise { const client = getClient() if (!(await canDeleteFolder(obj))) { @@ -1023,7 +1019,7 @@ async function _deleteFolder (obj: ProjectDocument): Promise { return true } -export async function createDocument (space: DocumentSpace): Promise { +export async function createDocument(space: DocumentSpace): Promise { const project = await getLatestProjectId(space._id) wizardOpened({ $$currentStep: 'template', @@ -1038,7 +1034,7 @@ export async function createTemplate (space: OrgSpace): Promise { showPopup(documents.component.QmsTemplateWizard, {}) } -export async function createFolder (space: DocumentSpace): Promise { +export async function createFolder(space: DocumentSpace): Promise { const project = await getLatestProjectId(space._id) const props = { space: space._id, @@ -1047,7 +1043,7 @@ export async function createFolder (space: DocumentSpace): Promise { showPopup(documents.component.CreateFolder, props) } -export function formatSignatureDate (date: number): string { +export function formatSignatureDate(date: number): string { const timeZone: string = getUserTimezone() return new Date(date).toLocaleDateString('default', { @@ -1062,7 +1058,7 @@ export function formatSignatureDate (date: number): string { }) } -export async function moveDocument (doc: ProjectMeta, space: Ref, target?: ProjectMeta): Promise { +export async function moveDocument(doc: ProjectMeta, space: Ref, target?: ProjectMeta): Promise { const client = getClient() let parent = documents.ids.NoParent @@ -1078,7 +1074,7 @@ export async function moveDocument (doc: ProjectMeta, space: Ref, target? await client.update(doc, { parent, path, rank }) } -export async function moveDocumentBefore (doc: ProjectMeta, before: ProjectMeta): Promise { +export async function moveDocumentBefore(doc: ProjectMeta, before: ProjectMeta): Promise { const client = getClient() const { space, parent, path } = before @@ -1089,7 +1085,7 @@ export async function moveDocumentBefore (doc: ProjectMeta, before: ProjectMeta) await client.update(doc, { parent, path, rank }) } -export async function moveDocumentAfter (doc: ProjectMeta, after: ProjectMeta): Promise { +export async function moveDocumentAfter(doc: ProjectMeta, after: ProjectMeta): Promise { const client = getClient() const { space, parent, path } = after @@ -1108,12 +1104,12 @@ export class DocumentHiearchyQuery { bundle: DocumentBundle = { ...emptyBundle() } - handleUpdate (data: Partial, callback: (tree: ProjectDocumentTree) => void): void { + handleUpdate(data: Partial, callback: (tree: ProjectDocumentTree) => void): void { this.bundle = { ...this.bundle, ...data } callback(new ProjectDocumentTree(this.bundle)) } - query ( + query( space: Ref, project: Ref>, callback: (tree: ProjectDocumentTree) => void @@ -1146,11 +1142,11 @@ export class DocumentHiearchyQuery { } } -export function createDocumentHierarchyQuery (): DocumentHiearchyQuery { +export function createDocumentHierarchyQuery(): DocumentHiearchyQuery { return new DocumentHiearchyQuery() } -export async function extractValidationWorkflow ( +export async function extractValidationWorkflow( hierarchy: Hierarchy, bundle: DocumentBundle ): Promise, DocumentValidationState[]>> { @@ -1272,7 +1268,7 @@ export async function extractValidationWorkflow ( return result } -export function isActivityDocumentState (state: DocumentState | ControlledDocumentState | null): boolean { +export function isActivityDocumentState(state: DocumentState | ControlledDocumentState | null): boolean { if (state == null) { return false } diff --git a/plugins/controlled-documents/package.json b/plugins/controlled-documents/package.json index 9d6c360319..f83a9190df 100644 --- a/plugins/controlled-documents/package.json +++ b/plugins/controlled-documents/package.json @@ -22,19 +22,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "eslint-config-prettier": "^8.8.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/controlled-documents/src/docutils.ts b/plugins/controlled-documents/src/docutils.ts index ecdca27339..253903d768 100644 --- a/plugins/controlled-documents/src/docutils.ts +++ b/plugins/controlled-documents/src/docutils.ts @@ -32,7 +32,7 @@ import { makeRank } from '@hcengineering/rank' import documents from './plugin' import { getDocumentId, getFirstRank, TEMPLATE_PREFIX } from './utils' -async function getParentPath (client: TxOperations, parent: Ref): Promise>> { +async function getParentPath(client: TxOperations, parent: Ref): Promise>> { const parentDocObj = await client.findOne(documents.class.ProjectDocument, { _id: parent }) @@ -54,7 +54,7 @@ async function getParentPath (client: TxOperations, parent: Ref return [parentMeta.meta, ...parentMeta.path] } -export async function createControlledDocFromTemplate ( +export async function createControlledDocFromTemplate( client: TxOperations, templateId: Ref | undefined, documentId: Ref, @@ -63,7 +63,7 @@ export async function createControlledDocFromTemplate ( project: Ref | undefined, parent: Ref | undefined, docClass: Ref> = documents.class.ControlledDocument -): Promise<{ seqNumber: number, success: boolean }> { +): Promise<{ seqNumber: number; success: boolean }> { if (templateId == null) { return { seqNumber: -1, success: false } } @@ -137,7 +137,7 @@ export async function createControlledDocFromTemplate ( /** * Calculate the next available seqNumber by checking existing documents with the template. */ -async function calculateNextSeqNumberWithCheck ( +async function calculateNextSeqNumberWithCheck( client: TxOperations, templateId: Ref, currentTemplateSequence: number @@ -157,11 +157,11 @@ async function calculateNextSeqNumberWithCheck ( return Math.max(currentTemplateSequence, maxExistingSeqNumber) + 1 } -export async function useDocumentTemplate ( +export async function useDocumentTemplate( client: TxOperations, templateId: Ref, checkExisting: boolean = false -): Promise<{ seqNumber: number, prefix: string, content: Ref | null, category: Ref }> { +): Promise<{ seqNumber: number; prefix: string; content: Ref | null; category: Ref }> { const template = await client.findOne(documents.mixin.DocumentTemplate, { _id: templateId }) @@ -193,7 +193,7 @@ export async function useDocumentTemplate ( } } -export async function createControlledDocMetadata ( +export async function createControlledDocMetadata( client: TxOperations, templateId: Ref, documentId: Ref, @@ -206,11 +206,11 @@ export async function createControlledDocMetadata ( specTitle: string, metaId?: Ref ): Promise<{ - success: boolean - seqNumber: number - documentMetaId: Ref - projectDocumentId: Ref - }> { + success: boolean + seqNumber: number + documentMetaId: Ref + projectDocumentId: Ref +}> { const projectId = project ?? documents.ids.NoProject const ops = client.apply('create-qms-document') @@ -285,7 +285,7 @@ export async function createControlledDocMetadata ( return { success: success.result, seqNumber, documentMetaId, projectDocumentId } } -export async function createDocumentTemplate ( +export async function createDocumentTemplate( client: TxOperations, _class: Ref>, space: Ref, @@ -357,7 +357,7 @@ export async function createDocumentTemplate ( return { seqNumber, success: commit.result } } -export async function createDocumentTemplateMetadata ( +export async function createDocumentTemplateMetadata( client: TxOperations, _class: Ref>, space: Ref, @@ -370,12 +370,12 @@ export async function createDocumentTemplateMetadata ( specTitle: string, metaId?: Ref ): Promise<{ - success: boolean - seqNumber: number - code: string - documentMetaId: Ref - projectDocumentId: Ref - }> { + success: boolean + seqNumber: number + code: string + documentMetaId: Ref + projectDocumentId: Ref +}> { const projectId = project ?? documents.ids.NoProject const incResult = await client.updateDoc( @@ -469,17 +469,17 @@ export async function createDocumentTemplateMetadata ( return { success: success.result, seqNumber, code, documentMetaId, projectDocumentId } } -export async function createNewFolder ( +export async function createNewFolder( client: TxOperations, space: Ref, project: Ref | undefined, parent: Ref | undefined, title: string ): Promise<{ - success: boolean - documentMetaId: Ref - projectDocumentId: Ref - }> { + success: boolean + documentMetaId: Ref + projectDocumentId: Ref +}> { const projectId = project ?? documents.ids.NoProject const ops = client.apply() diff --git a/plugins/controlled-documents/src/types.ts b/plugins/controlled-documents/src/types.ts index 5b1fe8b3b8..1393afef08 100644 --- a/plugins/controlled-documents/src/types.ts +++ b/plugins/controlled-documents/src/types.ts @@ -300,5 +300,5 @@ export interface DocumentAttachment extends Attachment { // 'referenced' - copied from a previous version/template, removal is a soft mark state?: DocumentAttachmentState // null clears a prior soft-delete mark (restore); all reads use `deletedIn != null`. - deletedIn?: { major: number, minor: number } | null + deletedIn?: { major: number; minor: number } | null } diff --git a/plugins/controlled-documents/src/utils.ts b/plugins/controlled-documents/src/utils.ts index 35b3b845b1..d6bf895aea 100644 --- a/plugins/controlled-documents/src/utils.ts +++ b/plugins/controlled-documents/src/utils.ts @@ -56,7 +56,7 @@ import { * @public */ export const genRanks = (count: number): Generator => - (function * () { + (function* () { const sys = new LexoNumeralSystem36() const base = 36 const max = base ** 6 @@ -82,7 +82,7 @@ export const calcRank = (prev?: { rank: string }, next?: { rank: string }): stri /** * @public */ -export async function createChangeControl ( +export async function createChangeControl( client: TxOperations, ccId: Ref, ccSpec: Data, @@ -94,7 +94,7 @@ export async function createChangeControl ( /** * @public */ -export function getDocumentId (document: Pick): string { +export function getDocumentId(document: Pick): string { return `${document.prefix}-${document.seqNumber}` } @@ -102,7 +102,7 @@ export function getDocumentId (document: Pick) const documentIdRegExp = /^(?\w+)-(?\d+)$/ /** @public */ -export function matchDocumentId (str: string): Pick | null { +export function matchDocumentId(str: string): Pick | null { const match = str.match(documentIdRegExp) if (match?.groups?.prefix === undefined || match.groups.seqNumber === undefined) { return null @@ -116,7 +116,7 @@ export function matchDocumentId (str: string): Pick): Promise { +export async function deleteProjectDrafts(client: ApplyOperations, source: Ref): Promise { const projectDocs = await client.findAll(documents.class.ProjectDocument, { project: source }) const toDelete = await client.findAll(documents.class.Document, { @@ -141,7 +141,7 @@ export async function deleteProjectDrafts (client: ApplyOperations, source: Ref< } } -export function isCollaborator (doc: ControlledDocument, person: Ref): boolean { +export function isCollaborator(doc: ControlledDocument, person: Ref): boolean { return ( doc.owner === person || doc.coAuthors.includes(person) || @@ -150,15 +150,15 @@ export function isCollaborator (doc: ControlledDocument, person: Ref): ) } -export function isFolder (doc: ProjectDocument | undefined): boolean { +export function isFolder(doc: ProjectDocument | undefined): boolean { return doc !== undefined && doc.document === documents.ids.Folder } -function getDocumentSortSequence (doc: ControlledDocument | undefined): number[] { +function getDocumentSortSequence(doc: ControlledDocument | undefined): number[] { return doc !== undefined ? [doc.seqNumber, doc.major, doc.minor, doc.createdOn ?? 0] : [0, 0, 0, 0] } -export function compareDocumentVersions ( +export function compareDocumentVersions( doc1: ControlledDocument | undefined, doc2: ControlledDocument | undefined ): number { @@ -167,7 +167,7 @@ export function compareDocumentVersions ( return s0.reduce((r, v, i) => (r !== 0 ? r : s1[i] - v), 0) } -function extractPresentableStateFromDocumentBundle (bundle: DocumentBundle, prjmeta: ProjectMeta): DocumentBundle { +function extractPresentableStateFromDocumentBundle(bundle: DocumentBundle, prjmeta: ProjectMeta): DocumentBundle { bundle = { ...bundle } const person = getCurrentEmployee() @@ -205,7 +205,7 @@ export class ProjectDocumentTree { nodes: Map, DocumentBundle> links: Map, Ref> - constructor (bundle?: DocumentBundle, options?: ProjectDocumentTreeOptions) { + constructor(bundle?: DocumentBundle, options?: ProjectDocumentTreeOptions) { bundle = { ...emptyBundle(), ...bundle } const { bundles, links } = compileBundles(bundle) this.links = links @@ -273,12 +273,12 @@ export class ProjectDocumentTree { } } - metaOf (ref: Ref | undefined): Ref | undefined { + metaOf(ref: Ref | undefined): Ref | undefined { if (ref === undefined) return return this.links.get(ref) } - parentChainOf (ref: Ref | undefined): Ref[] { + parentChainOf(ref: Ref | undefined): Ref[] { if (ref === undefined) return [] // Found a bug that can cause path field to contain invalid state, // until we fix it with migration and a separate fix it's better to use parent. @@ -292,24 +292,24 @@ export class ProjectDocumentTree { return parents } - parentOf (ref: Ref | undefined): Ref { + parentOf(ref: Ref | undefined): Ref { if (ref === undefined) { return documents.ids.NoParent } return this.parents.get(ref) ?? documents.ids.NoParent } - bundleOf (ref: Ref | undefined): DocumentBundle | undefined { + bundleOf(ref: Ref | undefined): DocumentBundle | undefined { if (ref === undefined) return return this.nodes.get(ref) } - childrenOf (ref: Ref | undefined): Ref[] { + childrenOf(ref: Ref | undefined): Ref[] { if (ref === undefined) return [] return this.nodesChildren.get(ref)?.map((p) => p.ProjectMeta[0].meta) ?? [] } - descendantsOf (parent: Ref): Ref[] { + descendantsOf(parent: Ref): Ref[] { const result: Ref[] = [] const queue: Ref[] = [parent] @@ -327,7 +327,7 @@ export class ProjectDocumentTree { } } -export async function findProjectDocsHierarchy ( +export async function findProjectDocsHierarchy( client: TxOperations, space: Ref, project?: Ref> @@ -353,7 +353,7 @@ export interface DocumentBundle { Attachment: Attachment[] } -export function emptyBundle (): DocumentBundle { +export function emptyBundle(): DocumentBundle { return { DocumentMeta: [], ProjectMeta: [], @@ -368,7 +368,7 @@ export function emptyBundle (): DocumentBundle { } } -export function compileBundles (all: DocumentBundle): { +export function compileBundles(all: DocumentBundle): { bundles: DocumentBundle[] links: Map, Ref> } { @@ -408,13 +408,13 @@ export function compileBundles (all: DocumentBundle): { return { bundles: Array.from(bundles.values()), links } } -export async function findAllDocumentBundles ( +export async function findAllDocumentBundles( client: TxOperations, ids: Ref[] ): Promise { const all: DocumentBundle = { ...emptyBundle() } - async function crawl ( + async function crawl( _class: Ref>, bkey: keyof DocumentBundle, prop: P, @@ -488,7 +488,7 @@ export async function findAllDocumentBundles ( return compileBundles(all).bundles } -export async function findOneDocumentBundle ( +export async function findOneDocumentBundle( client: TxOperations, id: Ref ): Promise { @@ -519,7 +519,7 @@ interface DocumentTransferContext { targetParentBundle?: DocumentBundle } -async function _buildDocumentTransferContext ( +async function _buildDocumentTransferContext( client: TxOperations, request: DocumentTransferRequest ): Promise { @@ -561,7 +561,7 @@ async function _buildDocumentTransferContext ( } } -export async function listDocumentsAffectedByTransfer ( +export async function listDocumentsAffectedByTransfer( client: TxOperations, req: DocumentTransferRequest ): Promise { @@ -572,7 +572,7 @@ export async function listDocumentsAffectedByTransfer ( /** * @public */ -export async function canTransferDocuments (client: TxOperations, req: DocumentTransferRequest): Promise { +export async function canTransferDocuments(client: TxOperations, req: DocumentTransferRequest): Promise { const cx = await _buildDocumentTransferContext(client, req) return cx !== undefined ? await _transferDocuments(client, cx, 'check') : false } @@ -580,12 +580,12 @@ export async function canTransferDocuments (client: TxOperations, req: DocumentT /** * @public */ -export async function transferDocuments (client: TxOperations, req: DocumentTransferRequest): Promise { +export async function transferDocuments(client: TxOperations, req: DocumentTransferRequest): Promise { const cx = await _buildDocumentTransferContext(client, req) return cx !== undefined ? await _transferDocuments(client, cx) : false } -async function _transferDocuments ( +async function _transferDocuments( client: TxOperations, cx: DocumentTransferContext, mode: 'default' | 'check' = 'default' @@ -620,7 +620,7 @@ async function _transferDocuments ( const roots = new Set(cx.request.sourceDocumentIds) const updates = new Map>() - function update (document: T, update: Partial): void { + function update(document: T, update: Partial): void { updates.set(document, { ...updates.get(document), ...update }) } @@ -688,7 +688,7 @@ export interface DocumentValidationState { /** * @public */ -export async function copyProjectDocuments ( +export async function copyProjectDocuments( client: ApplyOperations, source: Ref, target: Ref @@ -736,7 +736,7 @@ export async function copyProjectDocuments ( /** * @public */ -export async function getFirstRank ( +export async function getFirstRank( client: TxOperations, space: Ref, project: Ref, @@ -756,7 +756,7 @@ export async function getFirstRank ( /** * @public */ -export function getEffectiveDocUpdates (): DocumentUpdate[] { +export function getEffectiveDocUpdates(): DocumentUpdate[] { return [ { state: DocumentState.Effective, @@ -771,7 +771,7 @@ export function getEffectiveDocUpdates (): DocumentUpdate[] /** * @public */ -export function getDocumentName (doc: Document): string { +export function getDocumentName(doc: Document): string { return `${doc.code} ${doc.title}` } diff --git a/plugins/converter-resources/package.json b/plugins/converter-resources/package.json index b509cc4db7..3d207830b6 100644 --- a/plugins/converter-resources/package.json +++ b/plugins/converter-resources/package.json @@ -20,25 +20,24 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "eslint": "^8.54.0", - "jest": "^29.7.0", + "eslint": "^9.39.5", + "jest": "^30.4.2", "svelte-check": "^3.6.9", - "svelte-eslint-parser": "^0.33.1", + "svelte-eslint-parser": "^1.8.1", "svelte-loader": "^3.2.0", "svelte-preprocess": "^5.1.4", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "sass": "^1.80.0", - "eslint-plugin-svelte": "^2.35.1", - "prettier-plugin-svelte": "^3.4.0" + "eslint-plugin-svelte": "^3.23.0", + "prettier-plugin-svelte": "^3.4.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/converter/package.json b/plugins/converter/package.json index 89c1a35a0e..0727a59e34 100644 --- a/plugins/converter/package.json +++ b/plugins/converter/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/desktop-downloads-assets/package.json b/plugins/desktop-downloads-assets/package.json index ea099c04dc..f5af839d49 100644 --- a/plugins/desktop-downloads-assets/package.json +++ b/plugins/desktop-downloads-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/desktop-downloads-resources/package.json b/plugins/desktop-downloads-resources/package.json index 24c444fe77..ebabb9dd99 100644 --- a/plugins/desktop-downloads-resources/package.json +++ b/plugins/desktop-downloads-resources/package.json @@ -17,26 +17,25 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", - "jest": "^29.7.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", + "jest": "^30.4.2", "prettier": "^3.6.2", "prettier-plugin-svelte": "^3.4.0", "sass": "^1.80.0", "svelte-check": "^3.6.9", - "svelte-eslint-parser": "^0.33.1", + "svelte-eslint-parser": "^1.8.1", "svelte-loader": "^3.2.0", "svelte-preprocess": "^5.1.4", - "ts-jest": "^29.1.1", - "typescript": "^5.9.3" + "ts-jest": "^29.4.12", + "typescript": "^5.9.3", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/desktop-downloads/package.json b/plugins/desktop-downloads/package.json index 0c6d13a917..46c1a28b5b 100644 --- a/plugins/desktop-downloads/package.json +++ b/plugins/desktop-downloads/package.json @@ -22,18 +22,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/ui": "workspace:^0.7.0", diff --git a/plugins/desktop-preferences-assets/package.json b/plugins/desktop-preferences-assets/package.json index 6437fa991c..0c96565bd7 100644 --- a/plugins/desktop-preferences-assets/package.json +++ b/plugins/desktop-preferences-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/desktop-preferences-resources/package.json b/plugins/desktop-preferences-resources/package.json index 1d35cdb276..c0e1cefca6 100644 --- a/plugins/desktop-preferences-resources/package.json +++ b/plugins/desktop-preferences-resources/package.json @@ -20,22 +20,21 @@ "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", "prettier-plugin-svelte": "^3.4.0", - "eslint": "^8.54.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "eslint-plugin-svelte": "^2.35.1", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "svelte": "^4.2.20", diff --git a/plugins/desktop-preferences/package.json b/plugins/desktop-preferences/package.json index d6253535a9..a464474239 100644 --- a/plugins/desktop-preferences/package.json +++ b/plugins/desktop-preferences/package.json @@ -22,18 +22,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/ui": "workspace:^0.7.0", diff --git a/plugins/devmodel-resources/package.json b/plugins/devmodel-resources/package.json index 36ebe3ba37..41f74d4c8e 100644 --- a/plugins/devmodel-resources/package.json +++ b/plugins/devmodel-resources/package.json @@ -19,22 +19,21 @@ "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", "prettier-plugin-svelte": "^3.4.0", - "eslint": "^8.54.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "svelte-check": "^3.6.9", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "svelte-eslint-parser": "^0.33.1", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "svelte-eslint-parser": "^1.8.1", + "typescript": "^5.9.3", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/devmodel/package.json b/plugins/devmodel/package.json index a52a7716a0..fe9f8eed2d 100644 --- a/plugins/devmodel/package.json +++ b/plugins/devmodel/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/diffview-assets/package.json b/plugins/diffview-assets/package.json index aeac71a681..9a585fec52 100644 --- a/plugins/diffview-assets/package.json +++ b/plugins/diffview-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/diffview-resources/package.json b/plugins/diffview-resources/package.json index 685286eaa4..21931d9501 100644 --- a/plugins/diffview-resources/package.json +++ b/plugins/diffview-resources/package.json @@ -20,22 +20,21 @@ "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", "prettier-plugin-svelte": "^3.4.0", - "eslint": "^8.54.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "eslint-plugin-svelte": "^2.35.1", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "svelte": "^4.2.20", diff --git a/plugins/diffview/package.json b/plugins/diffview/package.json index cf303ca9c0..11f4148675 100644 --- a/plugins/diffview/package.json +++ b/plugins/diffview/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/document-assets/package.json b/plugins/document-assets/package.json index 4dfeaf6020..c79e542e0d 100644 --- a/plugins/document-assets/package.json +++ b/plugins/document-assets/package.json @@ -25,19 +25,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/document-resources/package.json b/plugins/document-resources/package.json index 5a8007ec9a..9a37de0238 100644 --- a/plugins/document-resources/package.json +++ b/plugins/document-resources/package.json @@ -19,22 +19,21 @@ "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", "prettier-plugin-svelte": "^3.4.0", - "eslint": "^8.54.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "eslint-plugin-svelte": "^2.35.1", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/plugins/document/package.json b/plugins/document/package.json index 8f23ebfbfc..41f4dba439 100644 --- a/plugins/document/package.json +++ b/plugins/document/package.json @@ -22,18 +22,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/drive-assets/package.json b/plugins/drive-assets/package.json index a471fa1176..b8479615dd 100644 --- a/plugins/drive-assets/package.json +++ b/plugins/drive-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/drive-resources/package.json b/plugins/drive-resources/package.json index 4403ade8a9..e0f58482d4 100644 --- a/plugins/drive-resources/package.json +++ b/plugins/drive-resources/package.json @@ -20,22 +20,21 @@ "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", "prettier-plugin-svelte": "^3.4.0", - "eslint": "^8.54.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/drive/package.json b/plugins/drive/package.json index a5aecc6536..c559e067eb 100644 --- a/plugins/drive/package.json +++ b/plugins/drive/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/emoji-assets/package.json b/plugins/emoji-assets/package.json index 8da00abf9d..b614f94b1a 100644 --- a/plugins/emoji-assets/package.json +++ b/plugins/emoji-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/emoji-resources/package.json b/plugins/emoji-resources/package.json index 56a251e1ee..ae842fc640 100644 --- a/plugins/emoji-resources/package.json +++ b/plugins/emoji-resources/package.json @@ -17,26 +17,25 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", - "jest": "^29.7.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", + "jest": "^30.4.2", "prettier": "^3.6.2", "prettier-plugin-svelte": "^3.4.0", "sass": "^1.80.0", "svelte-check": "^3.6.9", - "svelte-eslint-parser": "^0.33.1", + "svelte-eslint-parser": "^1.8.1", "svelte-loader": "^3.2.0", "svelte-preprocess": "^5.1.4", - "ts-jest": "^29.1.1", - "typescript": "^5.9.3" + "ts-jest": "^29.4.12", + "typescript": "^5.9.3", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/emoji/package.json b/plugins/emoji/package.json index 53a0eff159..7168dcb1b9 100644 --- a/plugins/emoji/package.json +++ b/plugins/emoji/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/export-assets/package.json b/plugins/export-assets/package.json index 396d09c635..11ffd5cc5c 100644 --- a/plugins/export-assets/package.json +++ b/plugins/export-assets/package.json @@ -26,20 +26,20 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "prettier-plugin-svelte": "^3.4.0", - "typescript": "^5.9.3" + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/export-resources/package.json b/plugins/export-resources/package.json index c9d1ece28f..f7fd01b288 100644 --- a/plugins/export-resources/package.json +++ b/plugins/export-resources/package.json @@ -19,22 +19,21 @@ "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", "prettier-plugin-svelte": "^3.4.0", - "eslint": "^8.54.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "eslint-plugin-svelte": "^2.35.1", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "svelte": "^4.2.20", diff --git a/plugins/export/package.json b/plugins/export/package.json index 3d625c7916..4a37c2251a 100644 --- a/plugins/export/package.json +++ b/plugins/export/package.json @@ -23,19 +23,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "prettier-plugin-svelte": "^3.4.0" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "prettier-plugin-svelte": "^3.4.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/global-profile-assets/package.json b/plugins/global-profile-assets/package.json index b0c5602c70..1b7d879647 100644 --- a/plugins/global-profile-assets/package.json +++ b/plugins/global-profile-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/global-profile-resources/package.json b/plugins/global-profile-resources/package.json index 76d3df590e..bfa791dd13 100644 --- a/plugins/global-profile-resources/package.json +++ b/plugins/global-profile-resources/package.json @@ -19,22 +19,21 @@ "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", "prettier-plugin-svelte": "^3.4.0", - "eslint": "^8.54.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "svelte": "^4.2.20", diff --git a/plugins/global-profile/package.json b/plugins/global-profile/package.json index f80f4b1cf1..49f24372a6 100644 --- a/plugins/global-profile/package.json +++ b/plugins/global-profile/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/gmail-assets/package.json b/plugins/gmail-assets/package.json index a9d1e168c8..159a03cc2d 100644 --- a/plugins/gmail-assets/package.json +++ b/plugins/gmail-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/gmail-resources/package.json b/plugins/gmail-resources/package.json index f380c00c6e..4c2c9ce33a 100644 --- a/plugins/gmail-resources/package.json +++ b/plugins/gmail-resources/package.json @@ -20,22 +20,21 @@ "svelte-loader": "^3.2.0", "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-svelte": "^2.35.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-svelte": "^3.23.0", "prettier-plugin-svelte": "^3.4.0", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/gmail/package.json b/plugins/gmail/package.json index 6ea3faa17a..5869a6cf03 100644 --- a/plugins/gmail/package.json +++ b/plugins/gmail/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/guest-assets/package.json b/plugins/guest-assets/package.json index 4c4f7260d8..083c4d4444 100644 --- a/plugins/guest-assets/package.json +++ b/plugins/guest-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/guest-resources/package.json b/plugins/guest-resources/package.json index 3952184244..64691ff832 100644 --- a/plugins/guest-resources/package.json +++ b/plugins/guest-resources/package.json @@ -19,22 +19,21 @@ "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", "prettier-plugin-svelte": "^3.4.0", - "eslint": "^8.54.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "svelte": "^4.2.20", diff --git a/plugins/guest/package.json b/plugins/guest/package.json index e71564b984..4cdb7fe5fe 100644 --- a/plugins/guest/package.json +++ b/plugins/guest/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/hr-assets/package.json b/plugins/hr-assets/package.json index 3a6299b215..6ea6b674d9 100644 --- a/plugins/hr-assets/package.json +++ b/plugins/hr-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/hr-resources/package.json b/plugins/hr-resources/package.json index 985a1bac8e..abfe5adcb4 100644 --- a/plugins/hr-resources/package.json +++ b/plugins/hr-resources/package.json @@ -19,22 +19,21 @@ "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", "prettier-plugin-svelte": "^3.4.0", - "eslint": "^8.54.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/plugins/hr/package.json b/plugins/hr/package.json index 40a6466949..a3d9ea8368 100644 --- a/plugins/hr/package.json +++ b/plugins/hr/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/contact": "workspace:^0.7.0", diff --git a/plugins/huly-mail-assets/package.json b/plugins/huly-mail-assets/package.json index ea4c15c559..df6a54a573 100644 --- a/plugins/huly-mail-assets/package.json +++ b/plugins/huly-mail-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/huly-mail-resources/package.json b/plugins/huly-mail-resources/package.json index e2cca52f4f..c4280e24fd 100644 --- a/plugins/huly-mail-resources/package.json +++ b/plugins/huly-mail-resources/package.json @@ -20,22 +20,21 @@ "svelte-loader": "^3.2.0", "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-svelte": "^2.35.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-svelte": "^3.23.0", "prettier-plugin-svelte": "^3.4.0", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/huly-mail/package.json b/plugins/huly-mail/package.json index 6c7f1dfe7c..12bf4c0065 100644 --- a/plugins/huly-mail/package.json +++ b/plugins/huly-mail/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/image-cropper-resources/package.json b/plugins/image-cropper-resources/package.json index 6f6164de60..900bbb4c51 100644 --- a/plugins/image-cropper-resources/package.json +++ b/plugins/image-cropper-resources/package.json @@ -20,22 +20,21 @@ "svelte-loader": "^3.2.0", "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-svelte": "^2.35.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-svelte": "^3.23.0", "prettier-plugin-svelte": "^3.4.0", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "svelte": "^4.2.20", diff --git a/plugins/image-cropper/package.json b/plugins/image-cropper/package.json index 7894cad3e8..7bc23f5314 100644 --- a/plugins/image-cropper/package.json +++ b/plugins/image-cropper/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/inventory-assets/package.json b/plugins/inventory-assets/package.json index 520b0b3e35..08544f6b26 100644 --- a/plugins/inventory-assets/package.json +++ b/plugins/inventory-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/inventory-resources/package.json b/plugins/inventory-resources/package.json index a747f7778c..2f66312d54 100644 --- a/plugins/inventory-resources/package.json +++ b/plugins/inventory-resources/package.json @@ -20,22 +20,21 @@ "svelte-loader": "^3.2.0", "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-svelte": "^2.35.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-svelte": "^3.23.0", "prettier-plugin-svelte": "^3.4.0", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/inventory/package.json b/plugins/inventory/package.json index db6c6cd0eb..8e61eb5460 100644 --- a/plugins/inventory/package.json +++ b/plugins/inventory/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/lead-assets/package.json b/plugins/lead-assets/package.json index 432fd527f1..a22039b02f 100644 --- a/plugins/lead-assets/package.json +++ b/plugins/lead-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/lead-resources/package.json b/plugins/lead-resources/package.json index e4e001daf7..4764620659 100644 --- a/plugins/lead-resources/package.json +++ b/plugins/lead-resources/package.json @@ -19,22 +19,21 @@ "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", "prettier-plugin-svelte": "^3.4.0", - "eslint": "^8.54.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/plugins/lead/package.json b/plugins/lead/package.json index 2da0537588..757280ef0d 100644 --- a/plugins/lead/package.json +++ b/plugins/lead/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/contact": "workspace:^0.7.0", diff --git a/plugins/login-assets/package.json b/plugins/login-assets/package.json index 5da2694bba..4fe0d4ca38 100644 --- a/plugins/login-assets/package.json +++ b/plugins/login-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/login-resources/package.json b/plugins/login-resources/package.json index 97ddd21f2d..8cadc062d0 100644 --- a/plugins/login-resources/package.json +++ b/plugins/login-resources/package.json @@ -20,23 +20,22 @@ "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", "prettier-plugin-svelte": "^3.4.0", - "eslint": "^8.54.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", "url-loader": "~4.1.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/login/package.json b/plugins/login/package.json index 2582ea9435..51252a0bae 100644 --- a/plugins/login/package.json +++ b/plugins/login/package.json @@ -23,19 +23,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "@hcengineering/account-client": "workspace:^0.7.25" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "@hcengineering/account-client": "workspace:^0.7.25", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/love-assets/package.json b/plugins/love-assets/package.json index 17da245f4a..04febce0d5 100644 --- a/plugins/love-assets/package.json +++ b/plugins/love-assets/package.json @@ -26,20 +26,20 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "prettier-plugin-svelte": "^3.4.0", - "typescript": "^5.9.3" + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/love-resources/package.json b/plugins/love-resources/package.json index 15d2bb3f84..5ec44a4452 100644 --- a/plugins/love-resources/package.json +++ b/plugins/love-resources/package.json @@ -19,22 +19,21 @@ "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", "prettier-plugin-svelte": "^3.4.0", - "eslint": "^8.54.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "eslint-plugin-svelte": "^2.35.1", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/plugins/love/package.json b/plugins/love/package.json index 93348ccb37..c5e45b6705 100644 --- a/plugins/love/package.json +++ b/plugins/love/package.json @@ -23,19 +23,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "prettier-plugin-svelte": "^3.4.0" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "prettier-plugin-svelte": "^3.4.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/mail-assets/package.json b/plugins/mail-assets/package.json index 5bde46d71d..c7fe6c1bb5 100644 --- a/plugins/mail-assets/package.json +++ b/plugins/mail-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/mail/package.json b/plugins/mail/package.json index 92722e58fe..aa19bc4852 100644 --- a/plugins/mail/package.json +++ b/plugins/mail/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/media-assets/package.json b/plugins/media-assets/package.json index f8bf8ed17b..d1562a33a3 100644 --- a/plugins/media-assets/package.json +++ b/plugins/media-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/media-resources/package.json b/plugins/media-resources/package.json index 1ffc8e2704..0d83afae48 100644 --- a/plugins/media-resources/package.json +++ b/plugins/media-resources/package.json @@ -17,28 +17,27 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", - "jest": "^29.7.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", + "jest": "^30.4.2", "prettier": "^3.6.2", "prettier-plugin-svelte": "^3.4.0", "sass": "^1.80.0", "svelte-check": "^3.6.9", - "svelte-eslint-parser": "^0.33.1", + "svelte-eslint-parser": "^1.8.1", "svelte-loader": "^3.2.0", "svelte-preprocess": "^5.1.4", - "ts-jest": "^29.1.1", + "ts-jest": "^29.4.12", "typescript": "^5.9.3", "@types/events": "^3.0.3", - "typed-emitter": "^2.1.0" + "typed-emitter": "^2.1.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/media/package.json b/plugins/media/package.json index fa5333c165..a2f4ca8c12 100644 --- a/plugins/media/package.json +++ b/plugins/media/package.json @@ -23,20 +23,20 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "@types/events": "^3.0.3", - "typed-emitter": "^2.1.0" + "typed-emitter": "^2.1.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/notification-assets/package.json b/plugins/notification-assets/package.json index d5a8982a94..50711ad404 100644 --- a/plugins/notification-assets/package.json +++ b/plugins/notification-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/notification-resources/package.json b/plugins/notification-resources/package.json index dc6d91b78c..6ec92dbf73 100644 --- a/plugins/notification-resources/package.json +++ b/plugins/notification-resources/package.json @@ -19,25 +19,24 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", - "jest": "^29.7.0", + "@types/jest": "^30.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", + "jest": "^30.4.2", "prettier": "^3.6.2", "prettier-plugin-svelte": "^3.4.0", "sass": "^1.80.0", "svelte-check": "^3.6.9", - "svelte-eslint-parser": "^0.33.1", + "svelte-eslint-parser": "^1.8.1", "svelte-loader": "^3.2.0", "svelte-preprocess": "^5.1.4", - "ts-jest": "^29.1.1", - "typescript": "^5.9.3" + "ts-jest": "^29.4.12", + "typescript": "^5.9.3", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/plugins/notification/package.json b/plugins/notification/package.json index ab86a45599..5579429d1b 100644 --- a/plugins/notification/package.json +++ b/plugins/notification/package.json @@ -24,19 +24,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", + "@types/jest": "^30.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", "prettier": "^3.6.2", "sass": "^1.80.0", - "ts-jest": "^29.1.1", - "typescript": "^5.9.3" + "ts-jest": "^29.4.12", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/plugins/onboard-assets/package.json b/plugins/onboard-assets/package.json index 3c7dad58ca..9af7379c0a 100644 --- a/plugins/onboard-assets/package.json +++ b/plugins/onboard-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/onboard-resources/package.json b/plugins/onboard-resources/package.json index 0fce1a7a06..a988a2afb4 100644 --- a/plugins/onboard-resources/package.json +++ b/plugins/onboard-resources/package.json @@ -20,23 +20,22 @@ "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", "prettier-plugin-svelte": "^3.4.0", - "eslint": "^8.54.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", "url-loader": "~4.1.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/onboard/package.json b/plugins/onboard/package.json index 1b71444333..24d8a36a35 100644 --- a/plugins/onboard/package.json +++ b/plugins/onboard/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/openai/package.json b/plugins/openai/package.json index 59a0c329bf..74b23799af 100644 --- a/plugins/openai/package.json +++ b/plugins/openai/package.json @@ -23,20 +23,20 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "prettier-plugin-svelte": "^3.4.0", - "@types/node": "^24.13.3" + "@types/node": "^24.13.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/preference-assets/package.json b/plugins/preference-assets/package.json index 3aba95f486..ed4ffbd9be 100644 --- a/plugins/preference-assets/package.json +++ b/plugins/preference-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/preference/package.json b/plugins/preference/package.json index c6cc1587a6..8da50dab49 100644 --- a/plugins/preference/package.json +++ b/plugins/preference/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/presence-resources/package.json b/plugins/presence-resources/package.json index 8e28eedc84..df0c37774f 100644 --- a/plugins/presence-resources/package.json +++ b/plugins/presence-resources/package.json @@ -20,22 +20,21 @@ "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", "prettier-plugin-svelte": "^3.4.0", - "eslint": "^8.54.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/presence/package.json b/plugins/presence/package.json index 102b926ce0..b0f58cb6a1 100644 --- a/plugins/presence/package.json +++ b/plugins/presence/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/print-assets/package.json b/plugins/print-assets/package.json index de85596fd2..11c2272d1d 100644 --- a/plugins/print-assets/package.json +++ b/plugins/print-assets/package.json @@ -26,20 +26,20 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "prettier-plugin-svelte": "^3.4.0", - "typescript": "^5.9.3" + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/print-resources/package.json b/plugins/print-resources/package.json index f69cf2a8a0..cabe7a461c 100644 --- a/plugins/print-resources/package.json +++ b/plugins/print-resources/package.json @@ -21,22 +21,21 @@ "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", "prettier-plugin-svelte": "^3.4.0", - "eslint": "^8.54.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "eslint-plugin-svelte": "^2.35.1", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "svelte": "^4.2.20", diff --git a/plugins/print/package.json b/plugins/print/package.json index 1ac08899f8..4544fd38d9 100644 --- a/plugins/print/package.json +++ b/plugins/print/package.json @@ -23,19 +23,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "prettier-plugin-svelte": "^3.4.0" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "prettier-plugin-svelte": "^3.4.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/process-assets/package.json b/plugins/process-assets/package.json index d6705a9377..ccd42186d0 100644 --- a/plugins/process-assets/package.json +++ b/plugins/process-assets/package.json @@ -26,20 +26,20 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "prettier-plugin-svelte": "^3.4.0", - "typescript": "^5.9.3" + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/process-resources/package.json b/plugins/process-resources/package.json index efac93f482..b4fbbce0e4 100644 --- a/plugins/process-resources/package.json +++ b/plugins/process-resources/package.json @@ -19,26 +19,25 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@types/jest": "^30.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", "@types/html-to-text": "^8.1.1", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", - "jest": "^29.7.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", + "jest": "^30.4.2", "prettier": "^3.6.2", "prettier-plugin-svelte": "^3.4.0", "sass": "^1.80.0", "svelte-check": "^3.6.9", - "svelte-eslint-parser": "^0.33.1", + "svelte-eslint-parser": "^1.8.1", "svelte-loader": "^3.2.0", "svelte-preprocess": "^5.1.4", - "ts-jest": "^29.1.1", - "typescript": "^5.9.3" + "ts-jest": "^29.4.12", + "typescript": "^5.9.3", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/plugins/process/package.json b/plugins/process/package.json index 20f93d4acd..081c84e00e 100644 --- a/plugins/process/package.json +++ b/plugins/process/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/products-assets/package.json b/plugins/products-assets/package.json index 7ff8ab0941..1d01775e13 100644 --- a/plugins/products-assets/package.json +++ b/plugins/products-assets/package.json @@ -25,20 +25,20 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "eslint-config-prettier": "^8.8.0", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/products-resources/package.json b/plugins/products-resources/package.json index f646de9bea..b1aab7bf52 100644 --- a/plugins/products-resources/package.json +++ b/plugins/products-resources/package.json @@ -17,23 +17,22 @@ "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", "prettier-plugin-svelte": "^3.4.0", - "eslint": "^8.54.0", + "eslint": "^9.39.5", "eslint-config-prettier": "^8.8.0", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "eslint-plugin-svelte": "^2.35.1", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/products/package.json b/plugins/products/package.json index 2ae63ae023..e94e7f943b 100644 --- a/plugins/products/package.json +++ b/plugins/products/package.json @@ -22,19 +22,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "eslint-config-prettier": "^8.8.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/attachment": "workspace:^0.7.0", diff --git a/plugins/pulse/package.json b/plugins/pulse/package.json index 90ac5de9cf..42f246b518 100644 --- a/plugins/pulse/package.json +++ b/plugins/pulse/package.json @@ -21,19 +21,19 @@ "_phase:validate": "compile validate" }, "devDependencies": { + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/questions-assets/package.json b/plugins/questions-assets/package.json index 595efb34b8..7294692db8 100644 --- a/plugins/questions-assets/package.json +++ b/plugins/questions-assets/package.json @@ -25,19 +25,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/questions": "workspace:^0.7.0", diff --git a/plugins/questions-resources/package.json b/plugins/questions-resources/package.json index 50c099eb16..f0ed18a9cf 100644 --- a/plugins/questions-resources/package.json +++ b/plugins/questions-resources/package.json @@ -17,22 +17,21 @@ "svelte-loader": "^3.2.0", "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", - "eslint-plugin-svelte": "^2.35.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", + "eslint-plugin-svelte": "^3.23.0", "prettier-plugin-svelte": "^3.4.0", - "svelte-eslint-parser": "^0.33.1", + "svelte-eslint-parser": "^1.8.1", "prettier": "^3.6.2", "svelte-check": "^3.6.9", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/questions": "workspace:^0.7.0", diff --git a/plugins/questions/package.json b/plugins/questions/package.json index a9be7bbe21..09b208d29c 100644 --- a/plugins/questions/package.json +++ b/plugins/questions/package.json @@ -21,19 +21,19 @@ "_phase:validate": "compile validate" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "@hcengineering/platform-rig": "workspace:^0.7.21", - "typescript": "^5.9.3" + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/contact": "workspace:^0.7.0", diff --git a/plugins/rating-assets/package.json b/plugins/rating-assets/package.json index 01d0be2311..b2db840224 100644 --- a/plugins/rating-assets/package.json +++ b/plugins/rating-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/rating-resources/package.json b/plugins/rating-resources/package.json index 4a59dbd806..b91b459225 100644 --- a/plugins/rating-resources/package.json +++ b/plugins/rating-resources/package.json @@ -20,22 +20,21 @@ "svelte-loader": "^3.2.0", "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-svelte": "^2.35.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-svelte": "^3.23.0", "prettier-plugin-svelte": "^3.4.0", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/plugins/rating/package.json b/plugins/rating/package.json index c873eeb950..884eadd0fc 100644 --- a/plugins/rating/package.json +++ b/plugins/rating/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/recorder-assets/package.json b/plugins/recorder-assets/package.json index 0c0461e626..7f1133f624 100644 --- a/plugins/recorder-assets/package.json +++ b/plugins/recorder-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/recorder-resources/package.json b/plugins/recorder-resources/package.json index 4f883af351..7378c84a17 100644 --- a/plugins/recorder-resources/package.json +++ b/plugins/recorder-resources/package.json @@ -17,26 +17,25 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", - "jest": "^29.7.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", + "jest": "^30.4.2", "prettier": "^3.6.2", "prettier-plugin-svelte": "^3.4.0", "sass": "^1.80.0", "svelte-check": "^3.6.9", - "svelte-eslint-parser": "^0.33.1", + "svelte-eslint-parser": "^1.8.1", "svelte-loader": "^3.2.0", "svelte-preprocess": "^5.1.4", - "ts-jest": "^29.1.1", - "typescript": "^5.9.3" + "ts-jest": "^29.4.12", + "typescript": "^5.9.3", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/recorder/package.json b/plugins/recorder/package.json index 09709df55a..cc85ea5cda 100644 --- a/plugins/recorder/package.json +++ b/plugins/recorder/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", + "@types/jest": "^30.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", "prettier": "^3.6.2", - "ts-jest": "^29.1.1", - "typescript": "^5.9.3" + "ts-jest": "^29.4.12", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/recruit-assets/package.json b/plugins/recruit-assets/package.json index 493215fa71..fa8e46dd3a 100644 --- a/plugins/recruit-assets/package.json +++ b/plugins/recruit-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/recruit-resources/package.json b/plugins/recruit-resources/package.json index 128adb87b0..1e4928b024 100644 --- a/plugins/recruit-resources/package.json +++ b/plugins/recruit-resources/package.json @@ -18,22 +18,21 @@ "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", "prettier-plugin-svelte": "^3.4.0", - "eslint": "^8.54.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/plugins/recruit/package.json b/plugins/recruit/package.json index eaf1384f27..9031bafe90 100644 --- a/plugins/recruit/package.json +++ b/plugins/recruit/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/request-assets/package.json b/plugins/request-assets/package.json index 747dff9578..e5a917e348 100644 --- a/plugins/request-assets/package.json +++ b/plugins/request-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/request-resources/package.json b/plugins/request-resources/package.json index 1e6863ccf0..b80c60790f 100644 --- a/plugins/request-resources/package.json +++ b/plugins/request-resources/package.json @@ -18,22 +18,21 @@ "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", "prettier-plugin-svelte": "^3.4.0", - "eslint": "^8.54.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/request/package.json b/plugins/request/package.json index 86c8aa6957..b3f6a9ccf9 100644 --- a/plugins/request/package.json +++ b/plugins/request/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/chunter": "workspace:^0.7.0", diff --git a/plugins/setting-assets/package.json b/plugins/setting-assets/package.json index c95547f2b4..e5b3724994 100644 --- a/plugins/setting-assets/package.json +++ b/plugins/setting-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/setting-resources/package.json b/plugins/setting-resources/package.json index 816a3fccc9..5ee553cf46 100644 --- a/plugins/setting-resources/package.json +++ b/plugins/setting-resources/package.json @@ -22,23 +22,22 @@ "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", "prettier-plugin-svelte": "^3.4.0", - "eslint": "^8.54.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "svelte-eslint-parser": "^0.33.1", - "@types/qrcode": "^1.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "svelte-eslint-parser": "^1.8.1", + "@types/qrcode": "^1.5.5", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/setting-resources/src/components/EditAttribute.svelte b/plugins/setting-resources/src/components/EditAttribute.svelte index 7a113f6b16..89b64de821 100644 --- a/plugins/setting-resources/src/components/EditAttribute.svelte +++ b/plugins/setting-resources/src/components/EditAttribute.svelte @@ -67,7 +67,7 @@ name = p }) - async function save (): Promise { + async function save(): Promise { if (disabled) { return } @@ -106,7 +106,7 @@ clearSettingsStore() } - function getTypes (): DropdownIntlItem[] { + function getTypes(): DropdownIntlItem[] { const descendants = hierarchy.getDescendants(core.class.Type) const res: DropdownIntlItem[] = [] for (const descendant of descendants) { @@ -126,7 +126,7 @@ $: selectedType && selectType(selectedType) - function selectType (type: Ref>>): void { + function selectType(type: Ref>>): void { const _class = hierarchy.getClass(type) const editor = hierarchy.as(_class, view.mixin.ObjectEditor) if (editor.editor !== undefined) { @@ -149,7 +149,7 @@ } } - async function remove (evt: MouseEvent): Promise { + async function remove(evt: MouseEvent): Promise { const impl = await getResource(view.actionImpl.Delete) await impl(attribute, evt, { afterDelete: () => { @@ -158,13 +158,13 @@ }) } - async function hide (): Promise { + async function hide(): Promise { const value = !attribute.hidden attribute.hidden = value await client.update(attribute, { hidden: value }) } - function setIcon (): void { + function setIcon(): void { showPopup(IconPicker, { icon, showEmoji: false, showColor: false }, 'top', async (res) => { if (res !== undefined) { icon = res.icon @@ -176,11 +176,11 @@ client.getModel().findObject(getAttributePermissionRef(attribute, false)) !== undefined || client.getModel().findObject(getAttributePermissionRef(attribute, true)) !== undefined - function getAttributePermissionRef (attr: AnyAttribute, forbidden: boolean): Ref { + function getAttributePermissionRef(attr: AnyAttribute, forbidden: boolean): Ref { return `${attr._id}_${forbidden ? 'forbidden' : 'allowed'}` as Ref } - function changeRestricted (): void { + function changeRestricted(): void { showPopup( MessageBox, { @@ -239,7 +239,7 @@ {#if attribute.isCustom} - + {/if} {/if} @@ -264,9 +264,9 @@
@@ -283,8 +283,8 @@ ): number { +function getTaskTypesStatusIndex(joinedTaskTypes: TaskType[], status: Ref): number { for (const taskType of joinedTaskTypes) { const indexx = taskType.statuses.indexOf(status) if (indexx >= 0) { @@ -142,7 +142,7 @@ function getTaskTypesStatusIndex (joinedTaskTypes: TaskType[], status: Ref>, space: Ref | undefined, @@ -224,7 +224,7 @@ export async function issueStatusSort ( return value } -export async function issuePrioritySort (client: TxOperations, value: IssuePriority[]): Promise { +export async function issuePrioritySort(client: TxOperations, value: IssuePriority[]): Promise { value.sort((a, b) => { const i1 = defaultPriorities.indexOf(a) const i2 = defaultPriorities.indexOf(b) @@ -234,7 +234,7 @@ export async function issuePrioritySort (client: TxOperations, value: IssuePrior return value } -export async function milestoneSort ( +export async function milestoneSort( client: TxOperations, value: Array> ): Promise>> { @@ -248,7 +248,7 @@ export async function milestoneSort ( }) }) } -export async function moveIssuesToAnotherMilestone ( +export async function moveIssuesToAnotherMilestone( client: TxOperations, oldMilestone: Milestone, newMilestone: Milestone | undefined @@ -277,7 +277,7 @@ export async function moveIssuesToAnotherMilestone ( } } -export async function canEditIssue (issue?: Issue | WithLookup): Promise { +export async function canEditIssue(issue?: Issue | WithLookup): Promise { const client = getClient() if (issue === undefined) return false @@ -382,7 +382,7 @@ export function getTimeReportDate (type: TimeReportDayType): number { return date.valueOf() } -export function getTimeReportDayType (timestamp: number): TimeReportDayType | undefined { +export function getTimeReportDayType(timestamp: number): TimeReportDayType | undefined { const date = new Date(timestamp) const currentWorkDate = new Date(getTimeReportDate(TimeReportDayType.CurrentWorkDay)) const previousWorkDate = new Date(getTimeReportDate(TimeReportDayType.PreviousWorkDay)) @@ -394,11 +394,11 @@ export function getTimeReportDayType (timestamp: number): TimeReportDayType | un } } -export function subIssueQuery (value: boolean, query: DocumentQuery): DocumentQuery { +export function subIssueQuery(value: boolean, query: DocumentQuery): DocumentQuery { return value ? query : { ...query, attachedTo: tracker.ids.NoParent } } -async function getAllSomething ( +async function getAllSomething( _class: Ref>, query: DocumentQuery | undefined, onUpdate: () => void, @@ -421,7 +421,7 @@ async function getAllSomething ( return await promise } -export async function getAllPriority ( +export async function getAllPriority( query: DocumentQuery | undefined, onUpdate: () => void, queryId: Ref @@ -429,7 +429,7 @@ export async function getAllPriority ( return defaultPriorities } -export async function getAllComponents ( +export async function getAllComponents( query: DocumentQuery | undefined, onUpdate: () => void, queryId: Ref @@ -437,7 +437,7 @@ export async function getAllComponents ( return await getAllSomething(tracker.class.Component, query, onUpdate, queryId) } -export async function getAllMilestones ( +export async function getAllMilestones( query: DocumentQuery | undefined, onUpdate: () => void, queryId: Ref @@ -445,7 +445,7 @@ export async function getAllMilestones ( return await getAllSomething(tracker.class.Milestone, query, onUpdate, queryId) } -export function subIssueListProvider (subIssues: Issue[], target: Ref): void { +export function subIssueListProvider(subIssues: Issue[], target: Ref): void { const listProvider = new ListSelectionProvider((offset: 1 | -1 | 0, of?: Doc, dir?: SelectDirection) => { if (dir === 'vertical') { let pos = subIssues.findIndex((p) => p._id === of?._id) @@ -466,7 +466,7 @@ export function subIssueListProvider (subIssues: Issue[], target: Ref): v } } -export async function getPreviousAssignees (objectId: Ref | undefined): Promise>> { +export async function getPreviousAssignees(objectId: Ref | undefined): Promise>> { if (objectId === undefined) { return [] } @@ -494,7 +494,7 @@ export async function getPreviousAssignees (objectId: Ref | undefined): P return Array.from(set) } -async function updateIssuesOnMove ( +async function updateIssuesOnMove( client: TxOperations, applyOps: ApplyOperations, doc: Doc, @@ -549,7 +549,7 @@ async function updateIssuesOnMove ( /** * @public */ -export async function moveIssueToSpace ( +export async function moveIssueToSpace( client: TxOperations, docs: Issue[], space: Project, @@ -590,7 +590,7 @@ export async function moveIssueToSpace ( * * Will collect all issues to be moved. */ -export async function collectIssues (client: TxOperations, docs: Doc[]): Promise { +export async function collectIssues(client: TxOperations, docs: Doc[]): Promise { const result: Issue[] = [] const hierarchy = client.getHierarchy() for (const doc of docs) { @@ -628,7 +628,7 @@ export async function collectIssues (client: TxOperations, docs: Doc[]): Promise /** * @public */ -export function issueToAttachedData (issue: Issue): AttachedData { +export function issueToAttachedData(issue: Issue): AttachedData { const { _id, _class, space, ...data } = issue return { ...data } } @@ -644,16 +644,16 @@ export const IssuePriorityColor = { [IssuePriority.Low]: PaletteColorIndexes.Cloud } -export async function getVisibleFilters (filters: KeyFilter[], space?: Ref): Promise { +export async function getVisibleFilters(filters: KeyFilter[], space?: Ref): Promise { // Removes the "Project" filter if a specific space is provided return space === undefined ? filters : filters.filter((f) => f.key !== 'space') } -export function getIssueChatTitle (object: Issue): string { +export function getIssueChatTitle(object: Issue): string { return object.title } -export function getIssueStatusCategories (project: ProjectType): Array> { +export function getIssueStatusCategories(project: ProjectType): Array> { if (project.classic) { return [ task.statusCategory.UnStarted, @@ -685,13 +685,13 @@ export interface ComponentToUpdate { create?: boolean } -export async function getComponentTitle (client: TxOperations, ref: Ref): Promise { +export async function getComponentTitle(client: TxOperations, ref: Ref): Promise { const object = await client.findOne(tracker.class.Component, { _id: ref }) return object?.label ?? '' } -export async function getMilestoneTitle (client: TxOperations, ref: Ref): Promise { +export async function getMilestoneTitle(client: TxOperations, ref: Ref): Promise { const object = await client.findOne(tracker.class.Milestone, { _id: ref }) return object?.label ?? '' diff --git a/plugins/tracker/package.json b/plugins/tracker/package.json index 165c84528d..62ad046e2e 100644 --- a/plugins/tracker/package.json +++ b/plugins/tracker/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/training-assets/package.json b/plugins/training-assets/package.json index f13aa6df96..4869add54a 100644 --- a/plugins/training-assets/package.json +++ b/plugins/training-assets/package.json @@ -25,19 +25,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/training-resources/package.json b/plugins/training-resources/package.json index 1876eb697f..c3e6bc3a88 100644 --- a/plugins/training-resources/package.json +++ b/plugins/training-resources/package.json @@ -17,22 +17,21 @@ "svelte-loader": "^3.2.0", "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", - "eslint-plugin-svelte": "^2.35.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", + "eslint-plugin-svelte": "^3.23.0", "prettier-plugin-svelte": "^3.4.0", - "svelte-eslint-parser": "^0.33.1", + "svelte-eslint-parser": "^1.8.1", "prettier": "^3.6.2", "svelte-check": "^3.6.9", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/plugins/training/package.json b/plugins/training/package.json index cf68b7caa4..b9f698f39a 100644 --- a/plugins/training/package.json +++ b/plugins/training/package.json @@ -21,19 +21,19 @@ "_phase:validate": "compile validate" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "@hcengineering/platform-rig": "workspace:^0.7.21", - "typescript": "^5.9.3" + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/attachment": "workspace:^0.7.0", diff --git a/plugins/uploader-assets/package.json b/plugins/uploader-assets/package.json index 0a179c0f1d..6f292e1c9a 100644 --- a/plugins/uploader-assets/package.json +++ b/plugins/uploader-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/uploader-resources/package.json b/plugins/uploader-resources/package.json index 2e38034383..1f3c46a607 100644 --- a/plugins/uploader-resources/package.json +++ b/plugins/uploader-resources/package.json @@ -17,26 +17,25 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", - "jest": "^29.7.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", + "jest": "^30.4.2", "prettier": "^3.6.2", "prettier-plugin-svelte": "^3.4.0", "sass": "^1.80.0", "svelte-check": "^3.6.9", - "svelte-eslint-parser": "^0.33.1", + "svelte-eslint-parser": "^1.8.1", "svelte-loader": "^3.2.0", "svelte-preprocess": "^5.1.4", - "ts-jest": "^29.1.1", - "typescript": "^5.9.3" + "ts-jest": "^29.4.12", + "typescript": "^5.9.3", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/uploader/package.json b/plugins/uploader/package.json index 972e047a8a..dc02db9c93 100644 --- a/plugins/uploader/package.json +++ b/plugins/uploader/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/view-assets/package.json b/plugins/view-assets/package.json index dbda69ac07..9c0b707a83 100644 --- a/plugins/view-assets/package.json +++ b/plugins/view-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/view-resources/package.json b/plugins/view-resources/package.json index efbdbf6b97..18a9f094e9 100644 --- a/plugins/view-resources/package.json +++ b/plugins/view-resources/package.json @@ -22,22 +22,21 @@ "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", "prettier-plugin-svelte": "^3.4.0", - "eslint": "^8.54.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "svelte": "^4.2.20", diff --git a/plugins/view-resources/src/middleware.ts b/plugins/view-resources/src/middleware.ts index a3e6dcf4d4..e9a414c259 100644 --- a/plugins/view-resources/src/middleware.ts +++ b/plugins/view-resources/src/middleware.ts @@ -50,15 +50,15 @@ export class AggregationMiddleware extends BasePresentationMiddleware implements docs: Doc[] | undefined subscribers: Map = new Map() - private constructor (client: Client, next?: PresentationMiddleware) { + private constructor(client: Client, next?: PresentationMiddleware) { super(client, next) } - static create (client: Client, next?: PresentationMiddleware): AggregationMiddleware { + static create(client: Client, next?: PresentationMiddleware): AggregationMiddleware { return new AggregationMiddleware(client, next) } - async notifyTx (...tx: Tx[]): Promise { + async notifyTx(...tx: Tx[]): Promise { const promises: Array> = [] for (const [, value] of this.mgrs) { promises.push(value.notifyTx(...tx)) @@ -67,18 +67,18 @@ export class AggregationMiddleware extends BasePresentationMiddleware implements await this.provideNotifyTx(...tx) } - async close (): Promise { + async close(): Promise { this.mgrs.forEach((mgr) => { mgr.close() }) await this.provideClose() } - async tx (tx: Tx): Promise { + async tx(tx: Tx): Promise { return await this.provideTx(tx) } - private refreshSubscribers (): void { + private refreshSubscribers(): void { for (const s of this.subscribers.values()) { // TODO: Do something more smart and track if used component field is changed. s.refresh() @@ -91,10 +91,10 @@ export class AggregationMiddleware extends BasePresentationMiddleware implements options: FindOptions | undefined, refresh: () => void ): Promise<{ - unsubscribe: () => void - query?: DocumentQuery - options?: FindOptions - }> { + unsubscribe: () => void + query?: DocumentQuery + options?: FindOptions + }> { const ret = await this.provideSubscribe(_class, query, options, refresh) const h = this.client.getHierarchy() @@ -129,7 +129,7 @@ export class AggregationMiddleware extends BasePresentationMiddleware implements } // TODO: rework notifications to avoid using Account and remove it - private shouldAggregate (attrClass: Ref>, _class: Ref>): boolean { + private shouldAggregate(attrClass: Ref>, _class: Ref>): boolean { // TODO: FIXME // if (attrClass !== core.class.Account) { // return true @@ -157,7 +157,7 @@ export class AggregationMiddleware extends BasePresentationMiddleware implements return true } - private async getAggregationManager (_class: Ref>): Promise | undefined> { + private async getAggregationManager(_class: Ref>): Promise | undefined> { let mgr = this.mgrs.get(_class) if (mgr === undefined) { @@ -285,28 +285,28 @@ export class AggregationMiddleware extends BasePresentationMiddleware implements * @public */ export class AnalyticsMiddleware extends BasePresentationMiddleware implements PresentationMiddleware { - private constructor (client: Client, next?: PresentationMiddleware) { + private constructor(client: Client, next?: PresentationMiddleware) { super(client, next) } - async notifyTx (...tx: Tx[]): Promise { + async notifyTx(...tx: Tx[]): Promise { await this.provideNotifyTx(...tx) } - async close (): Promise { + async close(): Promise { await this.provideClose() } - static create (client: Client, next?: PresentationMiddleware): AnalyticsMiddleware { + static create(client: Client, next?: PresentationMiddleware): AnalyticsMiddleware { return new AnalyticsMiddleware(client, next) } - async tx (tx: Tx): Promise { + async tx(tx: Tx): Promise { void this.handleTx(tx) return await this.provideTx(tx) } - private async handleTx (...txes: Tx[]): Promise { + private async handleTx(...txes: Tx[]): Promise { for (const etx of txes) { if (etx._class === core.class.TxApplyIf) { const applyIf = etx as TxApplyIf @@ -335,23 +335,23 @@ export class AnalyticsMiddleware extends BasePresentationMiddleware implements P * @public */ export class ReadOnlyAccessMiddleware extends BasePresentationMiddleware implements PresentationMiddleware { - private constructor (client: Client, next?: PresentationMiddleware) { + private constructor(client: Client, next?: PresentationMiddleware) { super(client, next) } - async notifyTx (...tx: Tx[]): Promise { + async notifyTx(...tx: Tx[]): Promise { await this.provideNotifyTx(...tx) } - async close (): Promise { + async close(): Promise { await this.provideClose() } - static create (client: Client, next?: PresentationMiddleware): ReadOnlyAccessMiddleware { + static create(client: Client, next?: PresentationMiddleware): ReadOnlyAccessMiddleware { return new ReadOnlyAccessMiddleware(client, next) } - async tx (tx: Tx): Promise { + async tx(tx: Tx): Promise { if (getCurrentAccount()?.role === AccountRole.ReadOnlyGuest) { addNotification( await translate(view.string.ReadOnlyWarningTitle, {}, getCurrentLanguage()), diff --git a/plugins/view-resources/src/permissions.ts b/plugins/view-resources/src/permissions.ts index c1c368ca45..3e03580ac7 100644 --- a/plugins/view-resources/src/permissions.ts +++ b/plugins/view-resources/src/permissions.ts @@ -11,7 +11,7 @@ import core, { import { getMetadata } from '@hcengineering/platform' import { getClient } from '@hcengineering/presentation' -export function canChangeAttribute ( +export function canChangeAttribute( attr: AnyAttribute, space: Ref, store: PermissionsStore, @@ -46,7 +46,7 @@ export function canChangeAttribute ( return canChangeDoc(_class, space, store) } -export function canChangeDoc (_class: Ref>, space: Ref, store: PermissionsStore): boolean { +export function canChangeDoc(_class: Ref>, space: Ref, store: PermissionsStore): boolean { const arePermissionsDisabled = getMetadata(core.metadata.DisablePermissions) ?? false if (arePermissionsDisabled) return true if (store.whitelist.has(space)) return true @@ -85,7 +85,7 @@ export function canChangeDoc (_class: Ref>, space: Ref, store: return !store.restrictedSpaces.has(space) } -export function canRemoveDoc (_class: Ref>, space: Ref, store: PermissionsStore): boolean { +export function canRemoveDoc(_class: Ref>, space: Ref, store: PermissionsStore): boolean { const arePermissionsDisabled = getMetadata(core.metadata.DisablePermissions) ?? false if (arePermissionsDisabled) return true if (store.whitelist.has(space)) return true @@ -107,7 +107,7 @@ export function canRemoveDoc (_class: Ref>, space: Ref, store: return !store.restrictedSpaces.has(space) } -export function canCreateObject (_class: Ref>, space: Ref, store: PermissionsStore): boolean { +export function canCreateObject(_class: Ref>, space: Ref, store: PermissionsStore): boolean { const arePermissionsDisabled = getMetadata(core.metadata.DisablePermissions) ?? false if (arePermissionsDisabled) return true if (store.whitelist.has(space)) return true diff --git a/plugins/view/package.json b/plugins/view/package.json index 784ce5db89..a314b7bd78 100644 --- a/plugins/view/package.json +++ b/plugins/view/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/workbench-assets/package.json b/plugins/workbench-assets/package.json index 5b77f290fd..4f364a8790 100644 --- a/plugins/workbench-assets/package.json +++ b/plugins/workbench-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/workbench-resources/package.json b/plugins/workbench-resources/package.json index a9181da30a..65e85207e3 100644 --- a/plugins/workbench-resources/package.json +++ b/plugins/workbench-resources/package.json @@ -19,22 +19,21 @@ "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", "prettier-plugin-svelte": "^3.4.0", - "eslint": "^8.54.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "svelte": "^4.2.20", diff --git a/plugins/workbench-resources/src/connect.ts b/plugins/workbench-resources/src/connect.ts index b8e6055f28..c4f71a1269 100644 --- a/plugins/workbench-resources/src/connect.ts +++ b/plugins/workbench-resources/src/connect.ts @@ -75,7 +75,7 @@ let _token: string | undefined let _client: Client | undefined let _clientSet: boolean = false -export async function disconnect (): Promise { +export async function disconnect(): Promise { if (_client !== undefined) { await _client.close() _client = undefined @@ -83,7 +83,7 @@ export async function disconnect (): Promise { } } -export async function connect (title: string): Promise { +export async function connect(title: string): Promise { const ctx = uiContext.newChild('connect', {}) const loc = getCurrentLocation() const wsUrl = loc.path[1] @@ -594,7 +594,7 @@ export async function connect (title: string): Promise { return newClient } -async function getGlobalPerson (): Promise { +async function getGlobalPerson(): Promise { const getPerson = await getResource(login.function.GetPerson) const [status, globalPerson] = await getPerson() diff --git a/plugins/workbench/package.json b/plugins/workbench/package.json index 517a65eb40..86cdba311a 100644 --- a/plugins/workbench/package.json +++ b/plugins/workbench/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/pods/account/package.json b/pods/account/package.json index c0985b7a17..7025f75931 100644 --- a/pods/account/package.json +++ b/pods/account/package.json @@ -35,24 +35,24 @@ "cross-env": "~7.0.3", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "esbuild": "^0.25.10", "@types/koa-bodyparser": "^4.3.12", "@types/koa-router": "^7.4.8", "@types/koa": "^2.15.0", "@types/koa__cors": "^5.0.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "ts-node": "^10.9.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/account": "workspace:^0.7.0", diff --git a/pods/authProviders/package.json b/pods/authProviders/package.json index bad3c2f2ee..9c057e7ae6 100644 --- a/pods/authProviders/package.json +++ b/pods/authProviders/package.json @@ -23,26 +23,26 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/ws": "^8.18.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "@types/koa-passport": "^6.0.3", "@types/passport-google-oauth20": "^2.0.0", "@types/koa-router": "^7.4.8", "@types/koa": "^2.15.0", "@types/koa-session": "^6.4.5", "@types/passport-github2": "^1.2.9", - "@types/querystringify": "^2.0.2" + "@types/querystringify": "^2.0.2", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "mongodb": "^6.16.0", diff --git a/pods/backup/package.json b/pods/backup/package.json index 7ade2976ca..bc7f7d1115 100644 --- a/pods/backup/package.json +++ b/pods/backup/package.json @@ -33,21 +33,21 @@ "cross-env": "~7.0.3", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "esbuild": "^0.25.10", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "ts-node": "^10.9.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "@hcengineering/model-all": "workspace:^0.7.0" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "@hcengineering/model-all": "workspace:^0.7.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/pods/collaborator/package.json b/pods/collaborator/package.json index 2d43d28ddc..9f10d061a1 100644 --- a/pods/collaborator/package.json +++ b/pods/collaborator/package.json @@ -31,20 +31,20 @@ "cross-env": "~7.0.3", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "esbuild": "^0.25.10", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "ts-node": "^10.9.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/pods/external/package.json b/pods/external/package.json index 43b7eba28e..31c6e8bc20 100644 --- a/pods/external/package.json +++ b/pods/external/package.json @@ -13,12 +13,12 @@ "format": "true" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0" + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" } } diff --git a/pods/front/package.json b/pods/front/package.json index 96af070bbd..cdd2ea3d16 100644 --- a/pods/front/package.json +++ b/pods/front/package.json @@ -36,13 +36,11 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "@types/express": "^4.17.13", "@types/express-fileupload": "^1.1.7", "@types/cors": "^2.8.19", @@ -53,9 +51,11 @@ "cross-env": "~7.0.3", "ts-node": "^10.9.2", "@types/compression": "~1.7.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/prod": "workspace:^1.0.1", diff --git a/pods/fulltext/package.json b/pods/fulltext/package.json index 2b63bb04fa..ed5e3cbbbc 100644 --- a/pods/fulltext/package.json +++ b/pods/fulltext/package.json @@ -32,25 +32,25 @@ "cross-env": "~7.0.3", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "esbuild": "^0.25.10", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "ts-node": "^10.9.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "@hcengineering/model-all": "workspace:^0.7.0", "@types/koa-bodyparser": "^4.3.12", "@types/koa-router": "^7.4.8", "@types/koa": "^2.15.0", - "@types/koa__cors": "^5.0.0" + "@types/koa__cors": "^5.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/pods/link-preview/package.json b/pods/link-preview/package.json index bb837957ef..acccdfbdb4 100644 --- a/pods/link-preview/package.json +++ b/pods/link-preview/package.json @@ -31,22 +31,21 @@ "_phase:validate": "compile validate" }, "devDependencies": { + "eslint-config-love": "^155.0.0", + "eslint-plugin-svelte": "^3.23.0", "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", "cross-env": "~7.0.3", "esbuild": "^0.25.10", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", "prettier": "^3.6.2", - "ts-jest": "^29.1.1", + "ts-jest": "^29.4.12", "ts-node": "^10.9.2", "typescript": "^5.9.3", "@types/express": "^4.17.13", diff --git a/pods/media/package.json b/pods/media/package.json index 8a8d9574c3..75638a5dc0 100644 --- a/pods/media/package.json +++ b/pods/media/package.json @@ -32,23 +32,22 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", "cross-env": "~7.0.3", "esbuild": "^0.25.10", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", "prettier": "^3.6.2", - "ts-jest": "^29.1.1", + "ts-jest": "^29.4.12", "ts-node": "^10.9.2", - "typescript": "^5.9.3" + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/account-client": "workspace:^0.7.25", diff --git a/pods/preview/package.json b/pods/preview/package.json index 0b3f3f938f..57ff118125 100644 --- a/pods/preview/package.json +++ b/pods/preview/package.json @@ -32,27 +32,26 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", "cross-env": "~7.0.3", "esbuild": "^0.25.10", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", "prettier": "^3.6.2", - "ts-jest": "^29.1.1", + "ts-jest": "^29.4.12", "ts-node": "^10.9.2", "typescript": "^5.9.3", "@types/express": "^4.17.13", "@types/cors": "^2.8.19", "@types/morgan": "~1.9.9", - "@types/heic-decode": "^1.1.2" + "@types/heic-decode": "^1.1.2", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/pods/server/package.json b/pods/server/package.json index ff923df7d7..88a0c5f094 100644 --- a/pods/server/package.json +++ b/pods/server/package.json @@ -37,25 +37,25 @@ "start-flame": "rush bundle --to @hcengineering/pod-server && cross-env NODE_ENV=production MODEL_VERSION=$(node ../../common/scripts/show_version.js) ACCOUNTS_URL=http://localhost:3000 REKONI_URL=http://localhost:4004 MONGO_URL=mongodb://localhost:27017 FRONT_URL=http://localhost:8087 UPLOAD_URL=/upload MINIO_ENDPOINT=localhost MINIO_ACCESS_KEY=minioadmin MINIO_SECRET_KEY=minioadmin METRICS_CONSOLE=true SERVER_SECRET=secret MODEL_JSON=../../models/all/bundle/model.json clinic flame --dest ./out -- node --nolazy -r ts-node/register --enable-source-maps src/__start.ts" }, "devDependencies": { + "eslint-config-love": "^155.0.0", + "eslint-plugin-svelte": "^3.23.0", "cross-env": "~7.0.3", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "eslint-config-prettier": "^8.8.0", "@types/ws": "^8.18.1", "ts-node": "^10.9.2", "esbuild": "^0.25.10", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "@hcengineering/model-all": "workspace:^0.7.0", "snappyjs": "^0.7.0", "@types/body-parser": "~1.19.2", diff --git a/pods/stats/package.json b/pods/stats/package.json index 9ba53d671f..edf3cf41ca 100644 --- a/pods/stats/package.json +++ b/pods/stats/package.json @@ -31,24 +31,24 @@ "cross-env": "~7.0.3", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "esbuild": "^0.25.10", "@types/koa-bodyparser": "^4.3.12", "@types/koa-router": "^7.4.8", "@types/koa": "^2.15.0", "@types/koa__cors": "^5.0.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "ts-node": "^10.9.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/pods/workspace/package.json b/pods/workspace/package.json index fa39b7a496..337484671f 100644 --- a/pods/workspace/package.json +++ b/pods/workspace/package.json @@ -35,20 +35,20 @@ "cross-env": "~7.0.3", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "esbuild": "^0.25.10", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "ts-node": "^10.9.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/workspace-service": "workspace:^0.7.0", diff --git a/qms-desktop-package/package.json b/qms-desktop-package/package.json index 6b1b3f96d2..9ffaaaa30e 100644 --- a/qms-desktop-package/package.json +++ b/qms-desktop-package/package.json @@ -32,13 +32,13 @@ "@types/node": "^24.13.3", "electron-builder": "^26.15.3", "@electron/notarize": "^2.3.2", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0" + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "electron-squirrel-startup": "~1.0.1", diff --git a/qms-tests/sanity/package.json b/qms-tests/sanity/package.json index a37192b72e..064f9c68f3 100644 --- a/qms-tests/sanity/package.json +++ b/qms-tests/sanity/package.json @@ -31,21 +31,21 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@playwright/test": "^1.48.2", "allure-playwright": "^3.0.6", "allure-js-commons": "^3.0.6", - "@faker-js/faker": "^8.4.1" + "@faker-js/faker": "^8.4.1", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "dotenv": "^16.4.5", diff --git a/server-plugins/activity-resources/package.json b/server-plugins/activity-resources/package.json index e15f83cbea..84c7d09fc4 100644 --- a/server-plugins/activity-resources/package.json +++ b/server-plugins/activity-resources/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "@types/node": "^24.13.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "@types/node": "^24.13.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/server-plugins/activity/package.json b/server-plugins/activity/package.json index 47dd9f03ae..19cfc156c1 100644 --- a/server-plugins/activity/package.json +++ b/server-plugins/activity/package.json @@ -24,18 +24,18 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/ai-bot-resources/package.json b/server-plugins/ai-bot-resources/package.json index 080c6cfe47..79f709e9bc 100644 --- a/server-plugins/ai-bot-resources/package.json +++ b/server-plugins/ai-bot-resources/package.json @@ -22,18 +22,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", + "@types/jest": "^30.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", "prettier": "^3.6.2", - "ts-jest": "^29.1.1", - "typescript": "^5.9.3" + "ts-jest": "^29.4.12", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/server-plugins/ai-bot/package.json b/server-plugins/ai-bot/package.json index 46b362150b..3f129d2b06 100644 --- a/server-plugins/ai-bot/package.json +++ b/server-plugins/ai-bot/package.json @@ -22,19 +22,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", "prettier": "^3.6.2", - "ts-jest": "^29.1.1", - "typescript": "^5.9.3" + "ts-jest": "^29.4.12", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/ai-bot": "workspace:^0.7.0", diff --git a/server-plugins/analytics-collector-resources/package.json b/server-plugins/analytics-collector-resources/package.json index e664f49e30..4a18fae39f 100644 --- a/server-plugins/analytics-collector-resources/package.json +++ b/server-plugins/analytics-collector-resources/package.json @@ -22,18 +22,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", + "@types/jest": "^30.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", "prettier": "^3.6.2", - "ts-jest": "^29.1.1", - "typescript": "^5.9.3" + "ts-jest": "^29.4.12", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/chunter": "workspace:^0.7.0", diff --git a/server-plugins/analytics-collector/package.json b/server-plugins/analytics-collector/package.json index af4df73827..99f1a4e53c 100644 --- a/server-plugins/analytics-collector/package.json +++ b/server-plugins/analytics-collector/package.json @@ -22,19 +22,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", "prettier": "^3.6.2", - "ts-jest": "^29.1.1", - "typescript": "^5.9.3" + "ts-jest": "^29.4.12", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/analytics-collector": "workspace:^0.7.0", diff --git a/server-plugins/attachment-resources/package.json b/server-plugins/attachment-resources/package.json index f3af68a375..f46f62fcbf 100644 --- a/server-plugins/attachment-resources/package.json +++ b/server-plugins/attachment-resources/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/attachment/package.json b/server-plugins/attachment/package.json index 3051430a04..f838f0fb65 100644 --- a/server-plugins/attachment/package.json +++ b/server-plugins/attachment/package.json @@ -24,18 +24,18 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/calendar-resources/package.json b/server-plugins/calendar-resources/package.json index c7bdb6b577..4547e59001 100644 --- a/server-plugins/calendar-resources/package.json +++ b/server-plugins/calendar-resources/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/calendar/package.json b/server-plugins/calendar/package.json index 5c48019e79..66e8365e6b 100644 --- a/server-plugins/calendar/package.json +++ b/server-plugins/calendar/package.json @@ -24,18 +24,18 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/card-resources/package.json b/server-plugins/card-resources/package.json index 0f7f0cc208..6eddc59b68 100644 --- a/server-plugins/card-resources/package.json +++ b/server-plugins/card-resources/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/server-plugins/card/package.json b/server-plugins/card/package.json index 6a8a67ceec..30fccaea36 100644 --- a/server-plugins/card/package.json +++ b/server-plugins/card/package.json @@ -24,18 +24,18 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/chunter-resources/package.json b/server-plugins/chunter-resources/package.json index 5693659fc1..439f576d65 100644 --- a/server-plugins/chunter-resources/package.json +++ b/server-plugins/chunter-resources/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/server-plugins/chunter/package.json b/server-plugins/chunter/package.json index da2a5fff11..69d511a3f5 100644 --- a/server-plugins/chunter/package.json +++ b/server-plugins/chunter/package.json @@ -24,18 +24,18 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/server-notification": "workspace:^0.7.0", diff --git a/server-plugins/collaboration-resources/package.json b/server-plugins/collaboration-resources/package.json index 2db86fa499..823294b5af 100644 --- a/server-plugins/collaboration-resources/package.json +++ b/server-plugins/collaboration-resources/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/collaboration/package.json b/server-plugins/collaboration/package.json index 0279582496..8d2c052ca1 100644 --- a/server-plugins/collaboration/package.json +++ b/server-plugins/collaboration/package.json @@ -24,18 +24,18 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/contact-resources/package.json b/server-plugins/contact-resources/package.json index 82ebd80682..3fd7551b59 100644 --- a/server-plugins/contact-resources/package.json +++ b/server-plugins/contact-resources/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/contact-resources/src/index.ts b/server-plugins/contact-resources/src/index.ts index 3f964b44f9..9a24059f31 100644 --- a/server-plugins/contact-resources/src/index.ts +++ b/server-plugins/contact-resources/src/index.ts @@ -94,7 +94,7 @@ export async function OnSpaceTypeMembers (txes: Tx[], control: TriggerControl): return result } -async function getGrantSpaces (control: TriggerControl, grant?: PermissionsGrant): Promise { +async function getGrantSpaces(control: TriggerControl, grant?: PermissionsGrant): Promise { const spacesRefs = grant?.spaces if (spacesRefs == null) { return [] @@ -128,7 +128,7 @@ async function getGrantSpaces (control: TriggerControl, grant?: PermissionsGrant return allowedGrantedSpaces } -export async function OnEmployeeCreate (_txes: Tx[], control: TriggerControl): Promise { +export async function OnEmployeeCreate(_txes: Tx[], control: TriggerControl): Promise { const result: Tx[] = [] const systemTxFactory = new TxFactory(core.account.System, false) @@ -250,7 +250,7 @@ export async function OnEmployeeCreate (_txes: Tx[], control: TriggerControl): P return result } -export async function OnTypedSpaceCreate (_txes: Tx[], control: TriggerControl): Promise { +export async function OnTypedSpaceCreate(_txes: Tx[], control: TriggerControl): Promise { const result: Tx[] = [] for (const tx of _txes) { const ctx = tx as TxCreateDoc @@ -269,7 +269,7 @@ export async function OnTypedSpaceCreate (_txes: Tx[], control: TriggerControl): return result } -export async function OnPersonCreate (_txes: Tx[], control: TriggerControl): Promise { +export async function OnPersonCreate(_txes: Tx[], control: TriggerControl): Promise { const result: Tx[] = [] for (const tx of _txes) { const ctx = tx as TxCreateDoc @@ -296,7 +296,7 @@ export async function OnPersonCreate (_txes: Tx[], control: TriggerControl): Pro return result } -async function createPersonSpace ( +async function createPersonSpace( account: AccountUuid, person: Ref, control: TriggerControl @@ -319,7 +319,7 @@ async function createPersonSpace ( /** * @public */ -export async function OnContactDelete ( +export async function OnContactDelete( txes: Tx[], { findAll, hierarchy, storageAdapter, workspace, removedMap, txFactory, ctx }: TriggerControl ): Promise { @@ -352,7 +352,7 @@ export async function OnContactDelete ( /** * @public */ -export async function OnChannelUpdate (txes: Tx[], control: TriggerControl): Promise { +export async function OnChannelUpdate(txes: Tx[], control: TriggerControl): Promise { const result: Tx[] = [] for (const tx of txes) { @@ -379,7 +379,7 @@ export async function OnChannelUpdate (txes: Tx[], control: TriggerControl): Pro /** * @public */ -export async function personHTMLPresenter (doc: Doc, control: TriggerControl): Promise { +export async function personHTMLPresenter(doc: Doc, control: TriggerControl): Promise { const person = doc as Person const front = control.branding?.front ?? getMetadata(serverCore.metadata.FrontUrl) ?? '' const path = `${workbenchId}/${control.workspace.url}/${contactId}/${doc._id}` @@ -390,7 +390,7 @@ export async function personHTMLPresenter (doc: Doc, control: TriggerControl): P /** * @public */ -export function personTextPresenter (doc: Doc, control: TriggerControl): string { +export function personTextPresenter(doc: Doc, control: TriggerControl): string { const person = doc as Person return `${getName(control.hierarchy, person, control.branding?.lastNameFirst)}` } @@ -398,7 +398,7 @@ export function personTextPresenter (doc: Doc, control: TriggerControl): string /** * @public */ -export async function organizationHTMLPresenter (doc: Doc, control: TriggerControl): Promise { +export async function organizationHTMLPresenter(doc: Doc, control: TriggerControl): Promise { const organization = doc as Organization const front = control.branding?.front ?? getMetadata(serverCore.metadata.FrontUrl) ?? '' const path = `${workbenchId}/${control.workspace.url}/${contactId}/${doc._id}` @@ -409,7 +409,7 @@ export async function organizationHTMLPresenter (doc: Doc, control: TriggerContr /** * @public */ -export function organizationTextPresenter (doc: Doc): string { +export function organizationTextPresenter(doc: Doc): string { const organization = doc as Organization return `${organization.name}` } @@ -417,7 +417,7 @@ export function organizationTextPresenter (doc: Doc): string { /** * @public */ -export function contactNameProvider ( +export function contactNameProvider( doc: Doc, parent: Doc | undefined, space: Space | undefined, @@ -430,13 +430,13 @@ export function contactNameProvider ( return formatContactName(hierarchy, doc._class, (doc as Contact).name ?? '', mode) } -export async function getCurrentEmployeeName (control: TriggerControl, context: Record): Promise { +export async function getCurrentEmployeeName(control: TriggerControl, context: Record): Promise { const person = await getCurrentPerson(control) return person !== undefined ? formatName(person.name, control.branding?.lastNameFirst) : '' } -export async function getCurrentEmployeeEmail (control: TriggerControl, context: Record): Promise { +export async function getCurrentEmployeeEmail(control: TriggerControl, context: Record): Promise { const person = await getCurrentPerson(control) if (person === undefined) return '' @@ -452,7 +452,7 @@ export async function getCurrentEmployeeEmail (control: TriggerControl, context: return emailSocialId.value } -export async function getCurrentEmployeePosition ( +export async function getCurrentEmployeePosition( control: TriggerControl, context: Record ): Promise { @@ -462,7 +462,7 @@ export async function getCurrentEmployeePosition ( return control.hierarchy.as(person, contact.mixin.Employee)?.position ?? '' } -export async function getContactName ( +export async function getContactName( control: TriggerControl, context: Record ): Promise { @@ -475,7 +475,7 @@ export async function getContactName ( } } -export async function getContactLastName ( +export async function getContactLastName( control: TriggerControl, context: Record ): Promise { @@ -488,7 +488,7 @@ export async function getContactLastName ( } } -export async function getContactFirstName ( +export async function getContactFirstName( control: TriggerControl, context: Record ): Promise { diff --git a/server-plugins/contact/package.json b/server-plugins/contact/package.json index ebbbfeebb4..f33171ca03 100644 --- a/server-plugins/contact/package.json +++ b/server-plugins/contact/package.json @@ -24,18 +24,18 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/server-notification": "workspace:^0.7.0", diff --git a/server-plugins/controlled-documents-resources/package.json b/server-plugins/controlled-documents-resources/package.json index 413089f5c6..c4fde13e80 100644 --- a/server-plugins/controlled-documents-resources/package.json +++ b/server-plugins/controlled-documents-resources/package.json @@ -22,20 +22,20 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "eslint-config-prettier": "^8.8.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "@types/node": "^24.13.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "@types/node": "^24.13.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/chunter": "workspace:^0.7.0", diff --git a/server-plugins/controlled-documents/package.json b/server-plugins/controlled-documents/package.json index 5ef614ae13..9e5afb2a38 100644 --- a/server-plugins/controlled-documents/package.json +++ b/server-plugins/controlled-documents/package.json @@ -23,19 +23,19 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "eslint-config-prettier": "^8.8.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/server-plugins/document-resources/package.json b/server-plugins/document-resources/package.json index 0d3b2625cf..524c2f1315 100644 --- a/server-plugins/document-resources/package.json +++ b/server-plugins/document-resources/package.json @@ -22,20 +22,20 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "eslint-config-prettier": "^8.8.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "@types/node": "^24.13.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "@types/node": "^24.13.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/document/package.json b/server-plugins/document/package.json index 127e081a40..861c65ab05 100644 --- a/server-plugins/document/package.json +++ b/server-plugins/document/package.json @@ -23,19 +23,19 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "eslint-config-prettier": "^8.8.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/server-plugins/drive-resources/package.json b/server-plugins/drive-resources/package.json index bac9b89f95..2f395cffd1 100644 --- a/server-plugins/drive-resources/package.json +++ b/server-plugins/drive-resources/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/drive/package.json b/server-plugins/drive/package.json index 975da8b203..50f50ec990 100644 --- a/server-plugins/drive/package.json +++ b/server-plugins/drive/package.json @@ -24,18 +24,18 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/gmail-resources/package.json b/server-plugins/gmail-resources/package.json index 33c7e57c0c..3c9a0a0fb4 100644 --- a/server-plugins/gmail-resources/package.json +++ b/server-plugins/gmail-resources/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/server-plugins/gmail/package.json b/server-plugins/gmail/package.json index bcdedb9ce5..a63c73c839 100644 --- a/server-plugins/gmail/package.json +++ b/server-plugins/gmail/package.json @@ -24,18 +24,18 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/guest-resources/package.json b/server-plugins/guest-resources/package.json index 72f228f0ea..225e83a72a 100644 --- a/server-plugins/guest-resources/package.json +++ b/server-plugins/guest-resources/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/guest/package.json b/server-plugins/guest/package.json index dd404af637..fa1d7ffa90 100644 --- a/server-plugins/guest/package.json +++ b/server-plugins/guest/package.json @@ -24,18 +24,18 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/hr-resources/package.json b/server-plugins/hr-resources/package.json index fb65460b32..b75a0eebe1 100644 --- a/server-plugins/hr-resources/package.json +++ b/server-plugins/hr-resources/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/hr/package.json b/server-plugins/hr/package.json index a9f7edaa2b..db0ae492c2 100644 --- a/server-plugins/hr/package.json +++ b/server-plugins/hr/package.json @@ -24,18 +24,18 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/inventory-resources/package.json b/server-plugins/inventory-resources/package.json index 0c2eeb2589..b7bc75d939 100644 --- a/server-plugins/inventory-resources/package.json +++ b/server-plugins/inventory-resources/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/inventory/package.json b/server-plugins/inventory/package.json index a4fe638ca4..fdcb547c2e 100644 --- a/server-plugins/inventory/package.json +++ b/server-plugins/inventory/package.json @@ -24,18 +24,18 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/server-plugins/lead-resources/package.json b/server-plugins/lead-resources/package.json index f6ae4f59b1..89fc5e8c16 100644 --- a/server-plugins/lead-resources/package.json +++ b/server-plugins/lead-resources/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/lead/package.json b/server-plugins/lead/package.json index 415314e560..df53208e2d 100644 --- a/server-plugins/lead/package.json +++ b/server-plugins/lead/package.json @@ -24,18 +24,18 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/server-plugins/love-resources/package.json b/server-plugins/love-resources/package.json index 4fc1c818cb..2653cc2719 100644 --- a/server-plugins/love-resources/package.json +++ b/server-plugins/love-resources/package.json @@ -22,19 +22,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "prettier-plugin-svelte": "^3.4.0" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "prettier-plugin-svelte": "^3.4.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/view": "workspace:^0.7.0", diff --git a/server-plugins/love/package.json b/server-plugins/love/package.json index 3ed7f9198c..3f86826f49 100644 --- a/server-plugins/love/package.json +++ b/server-plugins/love/package.json @@ -23,19 +23,19 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "prettier-plugin-svelte": "^3.4.0" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "prettier-plugin-svelte": "^3.4.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/notification-resources/package.json b/server-plugins/notification-resources/package.json index 821f9a6780..c7dd9acf99 100644 --- a/server-plugins/notification-resources/package.json +++ b/server-plugins/notification-resources/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/server-plugins/notification/package.json b/server-plugins/notification/package.json index 254529e8c8..495b5570aa 100644 --- a/server-plugins/notification/package.json +++ b/server-plugins/notification/package.json @@ -24,18 +24,18 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/preference/package.json b/server-plugins/preference/package.json index 7fed4e936c..9fbe0e031f 100644 --- a/server-plugins/preference/package.json +++ b/server-plugins/preference/package.json @@ -24,18 +24,18 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/process-resources/package.json b/server-plugins/process-resources/package.json index 6de34aa051..457d867a5b 100644 --- a/server-plugins/process-resources/package.json +++ b/server-plugins/process-resources/package.json @@ -22,19 +22,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "prettier-plugin-svelte": "^3.4.0" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "prettier-plugin-svelte": "^3.4.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/time": "workspace:^0.7.0", diff --git a/server-plugins/process/package.json b/server-plugins/process/package.json index 31af5adb75..65a06e45c7 100644 --- a/server-plugins/process/package.json +++ b/server-plugins/process/package.json @@ -23,19 +23,19 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "prettier-plugin-svelte": "^3.4.0" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "prettier-plugin-svelte": "^3.4.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/rating/package.json b/server-plugins/rating/package.json index d7af93b11f..7188952f78 100644 --- a/server-plugins/rating/package.json +++ b/server-plugins/rating/package.json @@ -24,18 +24,18 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/recruit-resources/package.json b/server-plugins/recruit-resources/package.json index a349c49a1f..3c7b2107d3 100644 --- a/server-plugins/recruit-resources/package.json +++ b/server-plugins/recruit-resources/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/recruit/package.json b/server-plugins/recruit/package.json index 30976c0394..d72ccb6b8d 100644 --- a/server-plugins/recruit/package.json +++ b/server-plugins/recruit/package.json @@ -24,18 +24,18 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/server-plugins/request-resources/package.json b/server-plugins/request-resources/package.json index 8ffa273eea..7ecab8bc66 100644 --- a/server-plugins/request-resources/package.json +++ b/server-plugins/request-resources/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/request/package.json b/server-plugins/request/package.json index d361fa9f72..a3dbc09c23 100644 --- a/server-plugins/request/package.json +++ b/server-plugins/request/package.json @@ -24,18 +24,18 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/server-plugins/setting-resources/package.json b/server-plugins/setting-resources/package.json index 07d8298f26..b0296f369b 100644 --- a/server-plugins/setting-resources/package.json +++ b/server-plugins/setting-resources/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/setting/package.json b/server-plugins/setting/package.json index c1fcb3d5e6..526b9b5572 100644 --- a/server-plugins/setting/package.json +++ b/server-plugins/setting/package.json @@ -24,18 +24,18 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/tags-resources/package.json b/server-plugins/tags-resources/package.json index bd9d9fb645..42b2d91e3d 100644 --- a/server-plugins/tags-resources/package.json +++ b/server-plugins/tags-resources/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/tags/package.json b/server-plugins/tags/package.json index 2a5faea5b0..1124861796 100644 --- a/server-plugins/tags/package.json +++ b/server-plugins/tags/package.json @@ -24,18 +24,18 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/task-resources/package.json b/server-plugins/task-resources/package.json index f5a1cdbe09..e7fbd60f6d 100644 --- a/server-plugins/task-resources/package.json +++ b/server-plugins/task-resources/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/task/package.json b/server-plugins/task/package.json index 5685794e73..523d4092d9 100644 --- a/server-plugins/task/package.json +++ b/server-plugins/task/package.json @@ -24,18 +24,18 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/server-notification": "workspace:^0.7.0", diff --git a/server-plugins/telegram-resources/package.json b/server-plugins/telegram-resources/package.json index 0b1d66306c..fedf4daf55 100644 --- a/server-plugins/telegram-resources/package.json +++ b/server-plugins/telegram-resources/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/server-plugins/telegram/package.json b/server-plugins/telegram/package.json index 3d73d8bdea..2b42f057b9 100644 --- a/server-plugins/telegram/package.json +++ b/server-plugins/telegram/package.json @@ -24,18 +24,18 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/server-plugins/templates/package.json b/server-plugins/templates/package.json index fb43c55928..c021e2112e 100644 --- a/server-plugins/templates/package.json +++ b/server-plugins/templates/package.json @@ -24,18 +24,18 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/time-resources/package.json b/server-plugins/time-resources/package.json index 505b3a0675..9ada15f116 100644 --- a/server-plugins/time-resources/package.json +++ b/server-plugins/time-resources/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/server-plugins/time/package.json b/server-plugins/time/package.json index 5f5621eee7..753180df2d 100644 --- a/server-plugins/time/package.json +++ b/server-plugins/time/package.json @@ -24,18 +24,18 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/tracker-resources/package.json b/server-plugins/tracker-resources/package.json index 62ea5b992a..3e6766132c 100644 --- a/server-plugins/tracker-resources/package.json +++ b/server-plugins/tracker-resources/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/chunter": "workspace:^0.7.0", diff --git a/server-plugins/tracker/package.json b/server-plugins/tracker/package.json index f11cbb8287..91321a64f4 100644 --- a/server-plugins/tracker/package.json +++ b/server-plugins/tracker/package.json @@ -24,18 +24,18 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/server-plugins/training-resources/package.json b/server-plugins/training-resources/package.json index 689d097046..6df18db1d1 100644 --- a/server-plugins/training-resources/package.json +++ b/server-plugins/training-resources/package.json @@ -22,19 +22,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "eslint-config-prettier": "^8.8.0", "prettier": "^3.6.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/contact": "workspace:^0.7.0", diff --git a/server-plugins/training/package.json b/server-plugins/training/package.json index edcb83efa8..d242c2f080 100644 --- a/server-plugins/training/package.json +++ b/server-plugins/training/package.json @@ -22,19 +22,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "eslint-config-prettier": "^8.8.0", "prettier": "^3.6.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/server-plugins/view-resources/package.json b/server-plugins/view-resources/package.json index 00d5ca81bf..7d94185e78 100644 --- a/server-plugins/view-resources/package.json +++ b/server-plugins/view-resources/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/view/package.json b/server-plugins/view/package.json index 1b828c2a4a..204896a074 100644 --- a/server-plugins/view/package.json +++ b/server-plugins/view/package.json @@ -24,18 +24,18 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/server-notification": "workspace:^0.7.0", diff --git a/server/account-service/package.json b/server/account-service/package.json index 9be3022b46..373cf3c8da 100644 --- a/server/account-service/package.json +++ b/server/account-service/package.json @@ -22,25 +22,25 @@ "cross-env": "~7.0.3", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "esbuild": "^0.25.10", "@types/koa-bodyparser": "^4.3.12", "@types/koa-router": "^7.4.8", "@types/koa": "^2.15.0", "@types/koa__cors": "^5.0.0", "@types/cookies": "^0.9.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "ts-node": "^10.9.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/account": "workspace:^0.7.0", diff --git a/server/account/package.json b/server/account/package.json index 5473c5a78c..bf388e38ee 100644 --- a/server/account/package.json +++ b/server/account/package.json @@ -19,21 +19,21 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "@types/otp-generator": "^4.0.2", "@types/pg": "^8.11.6", - "@types/node": "^24.13.3" + "@types/node": "^24.13.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/mongo": "workspace:^0.7.16", diff --git a/server/backup-service/package.json b/server/backup-service/package.json index a61f528d55..229e298c8b 100644 --- a/server/backup-service/package.json +++ b/server/backup-service/package.json @@ -20,20 +20,20 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/tar-stream": "^3.1.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/server/backup/package.json b/server/backup/package.json index ce55a762d1..d329017f0e 100644 --- a/server/backup/package.json +++ b/server/backup/package.json @@ -24,20 +24,20 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/tar-stream": "^3.1.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/server/collaborator/package.json b/server/collaborator/package.json index f2b58302ee..27dfdc61de 100644 --- a/server/collaborator/package.json +++ b/server/collaborator/package.json @@ -25,14 +25,12 @@ "cross-env": "~7.0.3", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "esbuild": "^0.25.10", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "ts-node": "^10.9.2", "typescript": "^5.9.3", @@ -41,9 +39,11 @@ "@types/cors": "^2.8.19", "@types/compression": "~1.7.2", "@types/ws": "^8.18.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/communication-types": "workspace:^0.7.12", diff --git a/server/front/package.json b/server/front/package.json index 16d681773d..6b0f18c362 100644 --- a/server/front/package.json +++ b/server/front/package.json @@ -24,13 +24,11 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "@types/express": "^4.17.13", "@types/express-fileupload": "^1.1.7", "@types/cors": "^2.8.19", @@ -39,10 +37,12 @@ "@types/body-parser": "~1.19.2", "cross-env": "~7.0.3", "ts-node": "^10.9.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "@types/morgan": "~1.9.9" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "@types/morgan": "~1.9.9", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server/indexer/package.json b/server/indexer/package.json index cf27e053a4..6506e38b50 100644 --- a/server/indexer/package.json +++ b/server/indexer/package.json @@ -18,20 +18,20 @@ "_phase:validate": "compile validate" }, "devDependencies": { + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server/server-pipeline/package.json b/server/server-pipeline/package.json index 295b890128..13908f3ae3 100644 --- a/server/server-pipeline/package.json +++ b/server/server-pipeline/package.json @@ -21,20 +21,20 @@ "cross-env": "~7.0.3", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "ts-node": "^10.9.2", "esbuild": "^0.25.10", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server/tool/package.json b/server/tool/package.json index 60266fbd7d..f3d5ec8327 100644 --- a/server/tool/package.json +++ b/server/tool/package.json @@ -19,21 +19,21 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/ws": "^8.18.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "@types/js-yaml": "^4.0.9", - "@types/node": "^24.13.3" + "@types/node": "^24.13.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "mongodb": "^6.16.0", diff --git a/server/workspace-service/package.json b/server/workspace-service/package.json index 51b9ddcfcf..b309c0ab1a 100644 --- a/server/workspace-service/package.json +++ b/server/workspace-service/package.json @@ -21,24 +21,24 @@ "cross-env": "~7.0.3", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "esbuild": "^0.25.10", "@types/koa-bodyparser": "^4.3.12", "@types/koa-router": "^7.4.8", "@types/koa": "^2.15.0", "@types/koa__cors": "^5.0.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "ts-node": "^10.9.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/model": "workspace:^0.7.17", diff --git a/services/ai-bot/pod-ai-bot/package.json b/services/ai-bot/pod-ai-bot/package.json index b88fcd72b1..ad62dd9e31 100644 --- a/services/ai-bot/pod-ai-bot/package.json +++ b/services/ai-bot/pod-ai-bot/package.json @@ -33,25 +33,24 @@ "run-local": "cross-env APP_ID=$(cat ../../../../uberflow_private/appid) PRIVATE_KEY=\"$(cat ../../../../uberflow_private/private-key.pem)\" CLIENT_ID=$(cat ../../../../uberflow_private/client-id) CLIENT_SECRET=$(cat ../../../../uberflow_private/client-secret) SERVER_SECRET=secret ACCOUNTS_URL=http://localhost:3000/ COLLABORATOR_URL=http://localhost:3078 MINIO_ACCESS_KEY=minioadmin MINIO_SECRET_KEY=minioadmin MINIO_ENDPOINT=localhost ts-node src/index.ts" }, "devDependencies": { + "eslint-config-love": "^155.0.0", + "eslint-plugin-svelte": "^3.23.0", "@hcengineering/platform-rig": "workspace:^0.7.21", "@tsconfig/node16": "^1.0.4", "@types/cors": "^2.8.19", "@types/express": "^4.17.13", - "@types/jest": "^29.5.5", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", "@types/ws": "^8.18.1", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", "esbuild": "^0.25.10", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", "prettier": "^3.6.2", - "ts-jest": "^29.1.1", + "ts-jest": "^29.4.12", "ts-node": "^10.9.2", "typescript": "^5.9.3" }, diff --git a/services/analytics-collector/pod-analytics-collector/package.json b/services/analytics-collector/pod-analytics-collector/package.json index 0037b56ea5..2d767996a7 100644 --- a/services/analytics-collector/pod-analytics-collector/package.json +++ b/services/analytics-collector/pod-analytics-collector/package.json @@ -38,21 +38,20 @@ "@types/cors": "^2.8.19", "@types/express": "^4.17.13", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", "esbuild": "^0.25.10", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "prettier": "^3.6.2", "ts-node": "^10.9.2", - "typescript": "^5.9.3" + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/services/backup/backup-api-pod/package.json b/services/backup/backup-api-pod/package.json index 8663dacd58..425dff5b8f 100644 --- a/services/backup/backup-api-pod/package.json +++ b/services/backup/backup-api-pod/package.json @@ -38,22 +38,21 @@ "@types/express-fileupload": "^1.1.7", "@types/node": "^24.13.3", "@types/ws": "^8.18.1", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", "esbuild": "^0.25.10", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "prettier": "^3.6.2", "ts-node": "^10.9.2", "typescript": "^5.9.3", - "@types/morgan": "~1.9.9" + "@types/morgan": "~1.9.9", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/services/billing/pod-billing/package.json b/services/billing/pod-billing/package.json index cbec6238af..5a5a194916 100644 --- a/services/billing/pod-billing/package.json +++ b/services/billing/pod-billing/package.json @@ -31,24 +31,23 @@ "_phase:validate": "compile validate" }, "devDependencies": { + "eslint-config-love": "^155.0.0", + "eslint-plugin-svelte": "^3.23.0", "@hcengineering/platform-rig": "workspace:^0.7.21", "@tsconfig/node16": "^1.0.4", "@types/cors": "^2.8.19", "@types/express": "^4.17.13", "@types/node": "^24.13.3", "@types/ws": "^8.18.1", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", "esbuild": "^0.25.10", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "prettier": "^3.6.2", "ts-node": "^10.9.2", "typescript": "^5.9.3", diff --git a/services/calendar/pod-calendar-mailer/package.json b/services/calendar/pod-calendar-mailer/package.json index 32c6b56658..2796a03485 100644 --- a/services/calendar/pod-calendar-mailer/package.json +++ b/services/calendar/pod-calendar-mailer/package.json @@ -33,22 +33,21 @@ "@hcengineering/platform-rig": "workspace:^0.7.21", "@tsconfig/node16": "^1.0.4", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@types/jest": "^29.5.5", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@types/jest": "^30.0.0", + "@typescript-eslint/parser": "^8.67.0", "cross-env": "~7.0.3", "esbuild": "^0.25.10", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", "prettier": "^3.6.2", - "ts-jest": "^29.1.1", + "ts-jest": "^29.4.12", "ts-node": "^10.9.2", - "typescript": "^5.9.3" + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/account-client": "workspace:^0.7.25", diff --git a/services/calendar/pod-calendar/package.json b/services/calendar/pod-calendar/package.json index e870d02c56..21c5db9810 100644 --- a/services/calendar/pod-calendar/package.json +++ b/services/calendar/pod-calendar/package.json @@ -35,22 +35,21 @@ "@types/express": "^4.17.13", "@types/node": "^24.13.3", "@types/ws": "^8.18.1", - "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", "@hcengineering/platform-rig": "workspace:^0.7.21", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "@typescript-eslint/parser": "^6.21.0", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "@typescript-eslint/parser": "^8.67.0", "esbuild": "^0.25.10", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.1.1", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", "prettier": "^3.6.2", "ts-node": "^10.9.2", - "typescript": "^5.9.3" + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/attachment": "workspace:^0.7.0", diff --git a/services/datalake/pod-datalake/package.json b/services/datalake/pod-datalake/package.json index a5deb72174..86fa882d9a 100644 --- a/services/datalake/pod-datalake/package.json +++ b/services/datalake/pod-datalake/package.json @@ -31,6 +31,8 @@ "_phase:validate": "compile validate" }, "devDependencies": { + "eslint-config-love": "^155.0.0", + "eslint-plugin-svelte": "^3.23.0", "@hcengineering/platform-rig": "workspace:^0.7.21", "@tsconfig/node16": "^1.0.4", "@types/cors": "^2.8.19", @@ -38,18 +40,15 @@ "@types/express-fileupload": "^1.1.7", "@types/node": "^24.13.3", "@types/ws": "^8.18.1", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", "esbuild": "^0.25.10", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "prettier": "^3.6.2", "ts-node": "^10.9.2", "typescript": "^5.9.3", diff --git a/services/export/pod-export/package.json b/services/export/pod-export/package.json index 2f66135ffb..87cfd75378 100644 --- a/services/export/pod-export/package.json +++ b/services/export/pod-export/package.json @@ -31,24 +31,23 @@ "_phase:validate": "compile validate" }, "devDependencies": { + "eslint-config-love": "^155.0.0", + "eslint-plugin-svelte": "^3.23.0", "@hcengineering/platform-rig": "workspace:^0.7.21", "@tsconfig/node16": "^1.0.4", "@types/cors": "^2.8.19", "@types/express": "^4.17.13", "@types/node": "^24.13.3", "@types/ws": "^8.18.1", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", "esbuild": "^0.25.10", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "prettier": "^3.6.2", "ts-node": "^10.9.2", "typescript": "^5.9.3", diff --git a/services/github/github-assets/package.json b/services/github/github-assets/package.json index b1a2e4cc3f..0b45d31c14 100644 --- a/services/github/github-assets/package.json +++ b/services/github/github-assets/package.json @@ -25,19 +25,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/services/github/github-resources/package.json b/services/github/github-resources/package.json index 94b262b012..a6f8cb85fa 100644 --- a/services/github/github-resources/package.json +++ b/services/github/github-resources/package.json @@ -19,23 +19,22 @@ "svelte-loader": "^3.2.0", "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier-plugin-svelte": "^3.4.0", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "typescript": "^5.9.3", "@types/qs": "~6.9.7", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "eslint-plugin-svelte": "^2.35.1", - "svelte-eslint-parser": "^0.33.1" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "svelte-eslint-parser": "^1.8.1", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/services/github/github/package.json b/services/github/github/package.json index 759b14158e..0e0dad075e 100644 --- a/services/github/github/package.json +++ b/services/github/github/package.json @@ -22,18 +22,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/services/github/model-github/package.json b/services/github/model-github/package.json index 2ec776ae0b..f9bab292fb 100644 --- a/services/github/model-github/package.json +++ b/services/github/model-github/package.json @@ -18,19 +18,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/contact": "workspace:^0.7.0", diff --git a/services/github/pod-github/package.json b/services/github/pod-github/package.json index 37323c837b..7acd27fdec 100644 --- a/services/github/pod-github/package.json +++ b/services/github/pod-github/package.json @@ -33,14 +33,12 @@ "cross-env": "~7.0.3", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "esbuild": "^0.25.10", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "ts-node": "^10.9.2", "typescript": "^5.9.3", @@ -54,9 +52,11 @@ "@types/cors": "^2.8.19", "@types/body-parser": "~1.19.2", "@types/compression": "~1.7.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/services/github/server-github-model/package.json b/services/github/server-github-model/package.json index 2bf4d155fe..11976dd7be 100644 --- a/services/github/server-github-model/package.json +++ b/services/github/server-github-model/package.json @@ -18,19 +18,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/services/github/server-github-resources/package.json b/services/github/server-github-resources/package.json index be83cce9f8..be2c916632 100644 --- a/services/github/server-github-resources/package.json +++ b/services/github/server-github-resources/package.json @@ -22,18 +22,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/chunter": "workspace:^0.7.0", diff --git a/services/github/server-github/package.json b/services/github/server-github/package.json index 3be540c6c2..416ef731d3 100644 --- a/services/github/server-github/package.json +++ b/services/github/server-github/package.json @@ -23,18 +23,18 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/services/gmail/pod-gmail/package.json b/services/gmail/pod-gmail/package.json index 3197ae69ef..00bd0795e0 100644 --- a/services/gmail/pod-gmail/package.json +++ b/services/gmail/pod-gmail/package.json @@ -36,24 +36,23 @@ "@types/express": "^4.17.13", "@types/node": "^24.13.3", "@types/sanitize-html": "^2.15.0", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", "@types/ws": "^8.18.1", "esbuild": "^0.25.10", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "prettier": "^3.6.2", "ts-node-dev": "^2.0.0", "typescript": "^5.9.3", "ts-node": "^10.9.2", - "cross-env": "~7.0.3" + "cross-env": "~7.0.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/attachment": "workspace:^0.7.0", diff --git a/services/love/package.json b/services/love/package.json index 2c3d8f1749..a25fd71936 100644 --- a/services/love/package.json +++ b/services/love/package.json @@ -30,25 +30,24 @@ "_phase:validate": "compile validate" }, "devDependencies": { + "eslint-config-love": "^155.0.0", + "eslint-plugin-svelte": "^3.23.0", "@tsconfig/node16": "^1.0.4", "cross-env": "~7.0.3", "@types/cors": "^2.8.19", "@types/express": "^4.17.13", "@types/node": "^24.13.3", "@types/ws": "^8.18.1", - "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", "@hcengineering/platform-rig": "workspace:^0.7.21", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "@typescript-eslint/parser": "^6.21.0", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "@typescript-eslint/parser": "^8.67.0", "esbuild": "^0.25.10", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.1.1", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", "prettier": "^3.6.2", "ts-node": "^10.9.2", "typescript": "^5.9.3" diff --git a/services/mail/mail-common/package.json b/services/mail/mail-common/package.json index adb85f3012..49819eb3a2 100644 --- a/services/mail/mail-common/package.json +++ b/services/mail/mail-common/package.json @@ -21,26 +21,25 @@ "_phase:validate": "compile validate" }, "devDependencies": { + "eslint-config-love": "^155.0.0", + "eslint-plugin-svelte": "^3.23.0", "@hcengineering/platform-rig": "workspace:^0.7.21", "@tsconfig/node16": "^1.0.4", "@types/express": "^4.17.13", - "@types/jest": "^29.5.5", + "@types/jest": "^30.0.0", "@types/markdown-it": "~13.0.0", "@types/node": "^24.13.3", "@types/sanitize-html": "^2.15.0", "@types/turndown": "^5.0.5", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", "esbuild": "^0.25.10", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", "prettier": "^3.6.2", - "ts-jest": "^29.1.1", + "ts-jest": "^29.4.12", "ts-node": "^10.9.2", "typescript": "^5.9.3" }, diff --git a/services/mail/pod-mail-worker/package.json b/services/mail/pod-mail-worker/package.json index f3637f3edd..c08a923514 100644 --- a/services/mail/pod-mail-worker/package.json +++ b/services/mail/pod-mail-worker/package.json @@ -31,27 +31,26 @@ "_phase:validate": "compile validate" }, "devDependencies": { + "eslint-config-love": "^155.0.0", + "eslint-plugin-svelte": "^3.23.0", "@hcengineering/platform-rig": "workspace:^0.7.21", "@tsconfig/node16": "^1.0.4", "@types/cors": "^2.8.19", "@types/express": "^4.17.13", - "@types/jest": "^29.5.5", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", "@types/turndown": "^5.0.5", "@types/sanitize-html": "^2.15.0", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", "cross-env": "~7.0.3", "esbuild": "^0.25.10", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", "prettier": "^3.6.2", - "ts-jest": "^29.1.1", + "ts-jest": "^29.4.12", "ts-node": "^10.9.2", "typescript": "^5.9.3" }, diff --git a/services/mail/pod-mail/package.json b/services/mail/pod-mail/package.json index b9288503df..8e0eb11199 100644 --- a/services/mail/pod-mail/package.json +++ b/services/mail/pod-mail/package.json @@ -30,27 +30,26 @@ "_phase:validate": "compile validate" }, "devDependencies": { + "eslint-config-love": "^155.0.0", + "eslint-plugin-svelte": "^3.23.0", "cross-env": "~7.0.3", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "esbuild": "^0.25.10", "prettier": "^3.6.2", "ts-node": "^10.9.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "@tsconfig/node16": "^1.0.4", "@types/cors": "^2.8.19", "@types/express": "^4.17.13", "@types/nodemailer": "^8.0.1", - "eslint-plugin-node": "^11.1.0", "typescript": "^5.9.3" }, "dependencies": { diff --git a/services/notification/pod-events-processor/package.json b/services/notification/pod-events-processor/package.json index 74e14242b7..2a52753a95 100644 --- a/services/notification/pod-events-processor/package.json +++ b/services/notification/pod-events-processor/package.json @@ -32,22 +32,21 @@ "@hcengineering/platform-rig": "workspace:^0.7.21", "@tsconfig/node16": "^1.0.4", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@types/jest": "^29.5.5", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@types/jest": "^30.0.0", + "@typescript-eslint/parser": "^8.67.0", "cross-env": "~7.0.3", "esbuild": "^0.25.10", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", "prettier": "^3.6.2", - "ts-jest": "^29.1.1", + "ts-jest": "^29.4.12", "ts-node": "^10.9.2", - "typescript": "^5.9.3" + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/account-client": "workspace:^0.7.25", diff --git a/services/notification/pod-notification/package.json b/services/notification/pod-notification/package.json index f63963ba34..bbf38b9298 100644 --- a/services/notification/pod-notification/package.json +++ b/services/notification/pod-notification/package.json @@ -33,25 +33,24 @@ "cross-env": "~7.0.3", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "esbuild": "^0.25.10", "prettier": "^3.6.2", "ts-node": "^10.9.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "@tsconfig/node16": "^1.0.4", "@types/cors": "^2.8.19", "@types/express": "^4.17.13", - "eslint-plugin-node": "^11.1.0", - "@types/web-push": "^3.6.4" + "@types/web-push": "^3.6.4", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/services/payment/pod-payment/package.json b/services/payment/pod-payment/package.json index 5840db49af..b22a4ea60f 100644 --- a/services/payment/pod-payment/package.json +++ b/services/payment/pod-payment/package.json @@ -31,6 +31,8 @@ "_phase:validate": "compile validate" }, "devDependencies": { + "eslint-config-love": "^155.0.0", + "eslint-plugin-svelte": "^3.23.0", "@hcengineering/platform-rig": "workspace:^0.7.21", "@tsconfig/node16": "^1.0.4", "@types/cors": "^2.8.19", @@ -38,19 +40,16 @@ "@types/express-rate-limit": "^6.0.0", "@types/node": "^24.13.3", "@types/ws": "^8.18.1", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", "cross-env": "~7.0.3", "esbuild": "^0.25.10", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "prettier": "^3.6.2", "ts-node": "^10.9.2", "typescript": "^5.9.3", diff --git a/services/print/pod-print/package.json b/services/print/pod-print/package.json index 1306a7f446..ba579bc788 100644 --- a/services/print/pod-print/package.json +++ b/services/print/pod-print/package.json @@ -37,22 +37,21 @@ "@types/express": "^4.17.13", "@types/node": "^24.13.3", "@types/ws": "^8.18.1", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", "esbuild": "^0.25.10", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.1.1", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", "cross-env": "~7.0.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "prettier": "^3.6.2", "ts-node": "^10.9.2", - "typescript": "^5.9.3" + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/server-token": "workspace:^0.7.18", diff --git a/services/process/package.json b/services/process/package.json index 7b9482e53b..bd814e12a2 100644 --- a/services/process/package.json +++ b/services/process/package.json @@ -30,22 +30,21 @@ "_phase:validate": "compile validate" }, "devDependencies": { + "eslint-config-love": "^155.0.0", + "eslint-plugin-svelte": "^3.23.0", "@tsconfig/node16": "^1.0.4", "@types/node": "^24.13.3", "@types/ws": "^8.18.1", - "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", "@hcengineering/platform-rig": "workspace:^0.7.21", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "@typescript-eslint/parser": "^6.21.0", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "@typescript-eslint/parser": "^8.67.0", "esbuild": "^0.25.10", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.1.1", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", "prettier": "^3.6.2", "ts-node": "^10.9.2", "typescript": "^5.9.3" diff --git a/services/rating/package.json b/services/rating/package.json index bceffde1a7..fd3b01440e 100644 --- a/services/rating/package.json +++ b/services/rating/package.json @@ -32,25 +32,25 @@ "cross-env": "~7.0.3", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", "esbuild": "^0.25.10", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "ts-node": "^10.9.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "@hcengineering/model-all": "workspace:^0.7.0", "@types/koa-bodyparser": "^4.3.12", "@types/koa-router": "^7.4.8", "@types/koa": "^2.15.0", - "@types/koa__cors": "^5.0.0" + "@types/koa__cors": "^5.0.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/services/rekoni/package.json b/services/rekoni/package.json index bb22ae3b4d..d860a0b8a8 100644 --- a/services/rekoni/package.json +++ b/services/rekoni/package.json @@ -45,23 +45,22 @@ "@types/body-parser": "~1.19.2", "@types/mime-types": "~2.1.1", "@types/express-form-data": "^2.0.5", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.1.1", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint": "^9.39.5", + "eslint-plugin-promise": "^7.3.0", "ts-node": "^10.9.2", "ts-node-dev": "^2.0.0", "typescript": "^5.9.3", "esbuild": "^0.25.10", - "eslint-plugin-n": "^15.4.0", + "eslint-plugin-n": "^18.3.0", "prettier": "^3.6.2", - "@types/morgan": "~1.9.9" + "@types/morgan": "~1.9.9", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@anticrm/skillset": "^0.6.0", diff --git a/services/sign/pod-sign/package.json b/services/sign/pod-sign/package.json index 3b3b3d4034..e30b2b7e9d 100644 --- a/services/sign/pod-sign/package.json +++ b/services/sign/pod-sign/package.json @@ -36,21 +36,20 @@ "@types/cors": "^2.8.19", "@types/express": "^4.17.13", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", "esbuild": "^0.25.10", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "prettier": "^3.6.2", "ts-node": "^10.9.2", - "typescript": "^5.9.3" + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/server-token": "workspace:^0.7.18", diff --git a/services/telegram-bot/pod-telegram-bot/package.json b/services/telegram-bot/pod-telegram-bot/package.json index 28e0f8d24e..e25d97e23b 100644 --- a/services/telegram-bot/pod-telegram-bot/package.json +++ b/services/telegram-bot/pod-telegram-bot/package.json @@ -33,24 +33,23 @@ "@tsconfig/node16": "^1.0.4", "@types/cors": "^2.8.19", "@types/express": "^4.17.13", - "@types/jest": "^29.5.5", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", "@types/otp-generator": "^4.0.2", "@types/ws": "^8.18.1", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", "esbuild": "^0.25.10", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", "prettier": "^3.6.2", - "ts-jest": "^29.1.1", + "ts-jest": "^29.4.12", "ts-node": "^10.9.2", - "typescript": "^5.9.3" + "typescript": "^5.9.3", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/services/telegram/pod-telegram/package.json b/services/telegram/pod-telegram/package.json index 1c69b634d7..44e52f933c 100644 --- a/services/telegram/pod-telegram/package.json +++ b/services/telegram/pod-telegram/package.json @@ -30,6 +30,8 @@ "_phase:validate": "compile validate" }, "devDependencies": { + "eslint-config-love": "^155.0.0", + "eslint-plugin-svelte": "^3.23.0", "@hcengineering/platform-rig": "workspace:^0.7.21", "@tsconfig/node16": "^1.0.4", "@types/cors": "^2.8.19", @@ -39,19 +41,17 @@ "@types/ws": "^8.18.1", "esbuild": "^0.25.10", "prettier": "^3.6.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "ts-node-dev": "^2.0.0", "bson": "^6.10.3", "typescript": "^5.9.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0" + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5" }, "dependencies": { "@hcengineering/attachment": "workspace:^0.7.0", diff --git a/services/worker/package.json b/services/worker/package.json index b4a6f4d274..a003503cbb 100644 --- a/services/worker/package.json +++ b/services/worker/package.json @@ -33,23 +33,22 @@ "run-local": "cross-env QUEUE_CONFIG='localhost:19092' REGION='cockroach' ts-node src/index.ts" }, "devDependencies": { + "eslint-config-love": "^155.0.0", + "eslint-plugin-svelte": "^3.23.0", "@tsconfig/node16": "^1.0.4", "cross-env": "~7.0.3", "@types/node": "^24.13.3", "@types/ws": "^8.18.1", - "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", "@hcengineering/platform-rig": "workspace:^0.7.21", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "@typescript-eslint/parser": "^6.21.0", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "@typescript-eslint/parser": "^8.67.0", "esbuild": "^0.25.10", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.1.1", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", "prettier": "^3.6.2", "ts-node": "^10.9.2", "typescript": "^5.9.3", diff --git a/templates/ui/package.json b/templates/ui/package.json index f02c227faf..042db3da88 100644 --- a/templates/ui/package.json +++ b/templates/ui/package.json @@ -27,7 +27,7 @@ "eslint": "^8.54.0", "eslint-plugin-svelte": "^2.35.1", "prettier-plugin-svelte": "^3.4.0", - "svelte-eslint-parser": "^0.33.1", + "svelte-eslint-parser": "^1.8.1", "prettier": "^3.6.2", "svelte-check": "^3.6.9", "jest": "^29.7.0", diff --git a/tests/sanity/package.json b/tests/sanity/package.json index a815ddd9a0..792934a926 100644 --- a/tests/sanity/package.json +++ b/tests/sanity/package.json @@ -30,21 +30,21 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@playwright/test": "^1.48.2", "allure-playwright": "^3.0.6", "allure-js-commons": "^3.0.6", - "@faker-js/faker": "^8.4.1" + "@faker-js/faker": "^8.4.1", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "dotenv": "^16.4.5", diff --git a/ws-tests/api-tests/package.json b/ws-tests/api-tests/package.json index 3b98bf5c17..e581fb119d 100644 --- a/ws-tests/api-tests/package.json +++ b/ws-tests/api-tests/package.json @@ -23,22 +23,22 @@ "@types/compression": "~1.7.2", "@types/cors": "^2.8.19", "@types/express": "^4.17.13", - "@types/jest": "^29.5.5", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", "@types/ws": "^8.18.1", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", "prettier": "^3.6.2", - "ts-jest": "^29.1.1", + "ts-jest": "^29.4.12", "typescript": "^5.9.3", "@types/body-parser": "~1.19.2", - "@types/morgan": "~1.9.9" + "@types/morgan": "~1.9.9", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/ws-tests/sanity/package.json b/ws-tests/sanity/package.json index c337f58353..de508f777c 100644 --- a/ws-tests/sanity/package.json +++ b/ws-tests/sanity/package.json @@ -31,22 +31,22 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@playwright/test": "^1.48.2", "allure-playwright": "^3.0.6", "allure-js-commons": "^3.0.6", "@faker-js/faker": "^8.4.1", - "@hcengineering/tests-sanity": "workspace:^0.7.0" + "@hcengineering/tests-sanity": "workspace:^0.7.0", + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^155.0.0" }, "dependencies": { "dotenv": "^16.4.5", From 929d4908cd198b691312670885ae08c3e7a60bb8 Mon Sep 17 00:00:00 2001 From: Artem Savchenko Date: Wed, 19 Aug 2026 21:25:39 +0700 Subject: [PATCH 20/55] Apply fixes Signed-off-by: Artem Savchenko (ported from TraceX c889a31cd5) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- .../packages/account-client/src/client.ts | 240 +++++++++--------- .../core/packages/account-client/src/utils.ts | 10 +- .../packages/analytics-service/src/index.ts | 10 +- .../packages/analytics-service/src/logging.ts | 18 +- .../core/packages/analytics/src/index.ts | 18 +- .../core/packages/api-client/src/client.ts | 18 +- .../core/packages/api-client/src/config.ts | 2 +- .../packages/api-client/src/markup/client.ts | 8 +- .../packages/api-client/src/markup/types.ts | 6 +- .../packages/api-client/src/rest/adapter.ts | 10 +- .../core/packages/api-client/src/rest/rest.ts | 36 +-- .../core/packages/api-client/src/rest/tx.ts | 12 +- .../packages/api-client/src/rest/types.ts | 2 +- .../packages/api-client/src/rest/utils.ts | 6 +- .../packages/api-client/src/socket/node.ts | 2 +- .../packages/api-client/src/storage/client.ts | 22 +- .../packages/api-client/src/storage/error.ts | 6 +- .../core/packages/api-client/src/types.ts | 16 +- .../core/packages/api-client/src/utils.ts | 2 +- .../src/__tests__/connection.test.ts | 20 +- .../src/__tests__/integration.test.ts | 44 ++-- .../client-resources/src/connection.ts | 56 ++-- .../packages/client-resources/src/index.ts | 14 +- .../client/src/__tests__/client.test.ts | 38 +-- .../collaborator-client/src/client.ts | 14 +- .../packages/collaborator-client/src/utils.ts | 4 +- .../packages/hulylake-client/src/client.ts | 42 +-- .../packages/hulylake-client/src/error.ts | 4 +- .../packages/hulylake-client/src/types.ts | 40 +-- .../packages/hulylake-client/src/utils.ts | 10 +- .../measurements-otlp/src/telemetry.ts | 50 ++-- .../src/__tests__/context.test.ts | 2 +- .../src/__tests__/performance.test.ts | 6 +- .../core/packages/measurements/src/context.ts | 54 ++-- .../core/packages/measurements/src/metrics.ts | 38 +-- foundations/core/packages/model/src/dsl.ts | 92 +++---- .../core/packages/model/src/migration.ts | 14 +- foundations/core/packages/model/src/utils.ts | 12 +- .../platform/src/__tests__/i18n.test.ts | 2 +- .../core/packages/platform/src/event.ts | 10 +- .../core/packages/platform/src/i18n.ts | 20 +- .../core/packages/platform/src/ident.ts | 2 +- .../core/packages/platform/src/metadata.ts | 6 +- .../core/packages/platform/src/platform.ts | 20 +- .../core/packages/platform/src/resource.ts | 16 +- .../core/packages/platform/src/status.ts | 14 +- .../core/packages/platform/src/testUtils.ts | 4 +- .../core/packages/postgres-base/src/index.ts | 56 ++-- .../src/__tests__/advanced-coverage.test.ts | 2 +- .../query/src/__tests__/bug-hunting.test.ts | 2 +- .../query/src/__tests__/connection.ts | 52 ++-- .../query/src/__tests__/deep-lookup.test.ts | 2 +- .../src/__tests__/final-coverage.test.ts | 2 +- .../query/src/__tests__/init-utility.test.ts | 2 +- .../src/__tests__/livequery-coverage.test.ts | 2 +- .../packages/query/src/__tests__/minmodel.ts | 6 +- .../query/src/__tests__/push-pull.test.ts | 2 +- .../query/src/__tests__/query.test.ts | 2 +- .../query/src/__tests__/queue-bugs.test.ts | 2 +- .../query/src/__tests__/refs-coverage.test.ts | 2 +- .../__tests__/remaining-edge-cases.test.ts | 2 +- .../src/__tests__/workspace-events.test.ts | 2 +- foundations/core/packages/query/src/index.ts | 126 ++++----- foundations/core/packages/query/src/refs.ts | 4 +- .../core/packages/query/src/results.ts | 20 +- foundations/core/packages/rank/src/utils.ts | 4 +- .../retry/src/__test__/decorator.test.ts | 26 +- .../packages/retry/src/__test__/retry.test.ts | 2 +- .../retry/src/__test__/retryable.test.ts | 2 +- .../core/packages/retry/src/decorator.ts | 2 +- foundations/core/packages/retry/src/delay.ts | 22 +- foundations/core/packages/retry/src/retry.ts | 4 +- foundations/core/packages/rpc/src/rpc.ts | 14 +- foundations/core/packages/rpc/src/sliding.ts | 18 +- .../src/__tests__/integration.test.ts | 14 +- .../src/__tests__/upload.test.ts | 20 +- .../storage-client/src/client/datalake.ts | 12 +- .../storage-client/src/client/front.ts | 12 +- .../storage-client/src/client/hulylake.ts | 12 +- .../storage-client/src/client/index.ts | 2 +- .../storage-client/src/client/utils.ts | 2 +- .../packages/storage-client/src/upload.ts | 20 +- .../core/packages/storage/src/index.ts | 42 +-- .../core/packages/text-core/src/markup/dsl.ts | 28 +- .../packages/text-core/src/markup/model.ts | 4 +- .../packages/text-core/src/markup/traverse.ts | 10 +- .../packages/text-core/src/markup/utils.ts | 28 +- .../text-html/src/__tests__/html.test.ts | 2 +- .../core/packages/text-html/src/index.ts | 2 +- .../core/packages/text-html/src/parser.ts | 40 +-- .../core/packages/text-html/src/serializer.ts | 34 +-- .../src/__tests__/markdown.test.ts | 8 +- .../packages/text-markdown/src/compare.ts | 6 +- .../core/packages/text-markdown/src/index.ts | 4 +- .../core/packages/text-markdown/src/marks.ts | 12 +- .../core/packages/text-markdown/src/node.ts | 4 +- .../core/packages/text-markdown/src/parser.ts | 76 +++--- .../packages/text-markdown/src/serializer.ts | 80 +++--- .../text-ydoc/src/__tests__/ydoc.test.ts | 10 +- .../core/packages/text-ydoc/src/ydoc.ts | 10 +- foundations/core/packages/text/src/kit.ts | 6 +- .../core/packages/text/src/marks/code.ts | 2 +- .../core/packages/text/src/marks/colors.ts | 38 +-- .../packages/text/src/marks/inlineComment.ts | 12 +- .../core/packages/text/src/marks/noteBase.ts | 6 +- .../text/src/marks/qmsInlineCommentMark.ts | 4 +- .../core/packages/text/src/markup/utils.ts | 14 +- .../core/packages/text/src/nodes/codeblock.ts | 4 +- .../core/packages/text/src/nodes/comment.ts | 4 +- .../core/packages/text/src/nodes/embed.ts | 8 +- .../core/packages/text/src/nodes/emoji.ts | 26 +- .../core/packages/text/src/nodes/file.ts | 12 +- .../core/packages/text/src/nodes/image.ts | 16 +- .../core/packages/text/src/nodes/markdown.ts | 4 +- .../core/packages/text/src/nodes/mermaid.ts | 4 +- .../core/packages/text/src/nodes/reference.ts | 10 +- .../core/packages/text/src/nodes/todo.ts | 6 +- .../core/packages/text/src/nodes/utils.ts | 2 +- .../token/src/__tests__/token.test.ts | 2 +- foundations/core/packages/token/src/token.ts | 8 +- .../utils/packages/platform-rig/bin/format.js | 6 +- packages/billing-client/src/client.ts | 24 +- packages/billing-client/src/error.ts | 4 +- packages/integration-client/src/client.ts | 30 +-- packages/integration-client/src/events.ts | 12 +- packages/integration-client/src/request.ts | 2 +- packages/integration-client/src/types.ts | 16 +- packages/integration-client/src/utils.ts | 12 +- packages/kvs-client/src/client.ts | 12 +- packages/payment-client/src/client.ts | 18 +- packages/payment-client/src/error.ts | 4 +- packages/rekoni/src/index.ts | 2 +- packages/theme/src/Theme.svelte | 2 +- packages/theme/src/index.ts | 6 +- packages/ui/src/colors.ts | 58 ++--- .../ui/src/components/AccordionItem.svelte | 2 +- packages/ui/src/components/Blurhash.svelte | 2 +- packages/ui/src/components/Button.svelte | 2 +- packages/ui/src/components/ButtonBase.svelte | 2 +- packages/ui/src/components/ButtonIcon.svelte | 2 +- packages/ui/src/components/ButtonMenu.svelte | 2 +- .../src/components/ButtonWithDropdown.svelte | 2 +- packages/ui/src/components/Chip.svelte | 4 +- .../ui/src/components/CircleButton.svelte | 2 +- packages/ui/src/components/CodeForm.svelte | 14 +- packages/ui/src/components/ColorPopup.svelte | 6 +- packages/ui/src/components/Component.svelte | 8 +- packages/ui/src/components/Dialog.svelte | 2 +- packages/ui/src/components/Dock.svelte | 2 +- .../src/components/DropdownLabelsIntl.svelte | 2 +- .../src/components/DropdownLabelsPopup.svelte | 6 +- .../components/DropdownLabelsPopupIntl.svelte | 4 +- .../ui/src/components/DropdownPopup.svelte | 4 +- .../src/components/DropdownRecordPopup.svelte | 4 +- packages/ui/src/components/EditBox.svelte | 12 +- .../ui/src/components/EditWithIcon.svelte | 2 +- .../ui/src/components/EmbeddedHTML.svelte | 2 +- .../ui/src/components/FilterButton.svelte | 8 +- .../src/components/FilterCategoryPopup.svelte | 12 +- .../src/components/FilterOptionPopup.svelte | 6 +- .../ui/src/components/FocusHandler.svelte | 2 +- packages/ui/src/components/Header.svelte | 2 +- .../ui/src/components/HeaderButton.svelte | 6 +- packages/ui/src/components/Icon.svelte | 4 +- packages/ui/src/components/Image.svelte | 6 +- packages/ui/src/components/ListView.svelte | 6 +- packages/ui/src/components/Menu.svelte | 6 +- packages/ui/src/components/Modal.svelte | 4 +- .../ui/src/components/ModeSelector.svelte | 16 +- .../ui/src/components/ModernDialog.svelte | 6 +- packages/ui/src/components/ModernTab.svelte | 2 +- .../src/components/MouseSpeedTracker.svelte | 4 +- .../ui/src/components/MultiProgress.svelte | 4 +- packages/ui/src/components/NavGroup.svelte | 4 +- .../ui/src/components/NestedDropdown.svelte | 2 +- packages/ui/src/components/NestedMenu.svelte | 6 +- .../src/components/NestedSelectPopup.svelte | 6 +- packages/ui/src/components/NumberInput.svelte | 10 +- packages/ui/src/components/Panel.svelte | 4 +- .../ui/src/components/PanelInstance.svelte | 10 +- .../ui/src/components/PlainTextEditor.svelte | 4 +- packages/ui/src/components/Popup.svelte | 6 +- .../ui/src/components/PopupInstance.svelte | 24 +- packages/ui/src/components/Progress.svelte | 8 +- packages/ui/src/components/ScrollBox.svelte | 2 +- packages/ui/src/components/Scroller.svelte | 6 +- packages/ui/src/components/SearchEdit.svelte | 2 +- packages/ui/src/components/SearchInput.svelte | 2 +- .../ui/src/components/SearchPicker.svelte | 6 +- packages/ui/src/components/SelectPopup.svelte | 6 +- packages/ui/src/components/Separator.svelte | 22 +- packages/ui/src/components/StepsDialog.svelte | 16 +- packages/ui/src/components/TextArea.svelte | 2 +- .../ui/src/components/TextAreaEditor.svelte | 2 +- packages/ui/src/components/TimeLeft.svelte | 6 +- .../src/components/TimeShiftPresenter.svelte | 2 +- packages/ui/src/components/TimeSince.svelte | 16 +- packages/ui/src/components/Timeline.svelte | 2 +- .../ui/src/components/ToggleButton.svelte | 2 +- .../ui/src/components/TooltipInstance.svelte | 4 +- .../components/calendar/DateRangePopup.svelte | 12 +- .../components/calendar/MonthCalendar.svelte | 2 +- .../components/calendar/MonthSquare.svelte | 14 +- .../calendar/SimpleTimePopup.svelte | 4 +- .../components/calendar/WeekCalendar.svelte | 2 +- .../components/calendar/YearCalendar.svelte | 4 +- .../components/calendar/internal/DateUtils.ts | 36 +-- .../ui/src/components/internal/Clock.svelte | 2 +- .../src/components/internal/ClockFace.svelte | 2 +- .../src/components/internal/ErrorBoundary.ts | 2 +- .../ui/src/components/internal/Root.svelte | 10 +- .../src/components/internal/Settings.svelte | 2 +- .../components/internal/SettingsPopup.svelte | 16 +- .../wizard/ModernWizardDialog.svelte | 8 +- .../ui/src/components/wizard/Wizard.svelte | 2 +- .../src/components/wizard/WizardStep.svelte | 2 +- packages/ui/src/focus.ts | 28 +- packages/ui/src/index.ts | 2 +- packages/ui/src/lazy.ts | 6 +- packages/ui/src/location.ts | 32 +-- packages/ui/src/panelup.ts | 8 +- packages/ui/src/popups.ts | 50 ++-- packages/ui/src/resize.ts | 8 +- packages/ui/src/search.ts | 4 +- packages/ui/src/tooltips.ts | 10 +- packages/ui/src/types.ts | 8 +- packages/ui/src/utils.ts | 90 +++---- .../src/components/Cropper.svelte | 4 +- plugins/sign/src/utils.ts | 4 +- plugins/support/src/utils.ts | 4 +- qms-tests/sanity/tests/auth/auth.setup.ts | 2 +- .../tests/documents/common-documents-steps.ts | 6 +- qms-tests/sanity/tests/model/calendar-page.ts | 6 +- qms-tests/sanity/tests/model/common-page.ts | 16 +- qms-tests/sanity/tests/model/contact-page.ts | 8 +- .../tests/model/documents/categories-page.ts | 6 +- .../model/documents/category-create-popup.ts | 4 +- .../model/documents/category-details-page.ts | 12 +- .../documents/document-approvals-page.ts | 6 +- .../model/documents/document-comments-page.ts | 24 +- .../model/documents/document-common-page.ts | 4 +- .../model/documents/document-content-page.ts | 184 +++++++------- .../model/documents/document-history-page.ts | 4 +- .../documents/document-reason-impact-page.ts | 6 +- .../model/documents/document-release-page.ts | 4 +- .../tests/model/documents/documents-page.ts | 12 +- .../model/documents/navigation-menu-page.ts | 2 +- .../sanity/tests/model/documents/pdf-pages.ts | 8 +- .../tests/model/documents/templates-page.ts | 4 +- .../sanity/tests/model/left-side-menu-page.ts | 4 +- qms-tests/sanity/tests/model/login-page.ts | 10 +- .../tests/model/select-workspace-page.ts | 6 +- qms-tests/sanity/tests/model/setting-page.ts | 20 +- qms-tests/sanity/tests/model/signup-page.ts | 4 +- qms-tests/sanity/tests/model/visual-check.ts | 6 +- qms-tests/sanity/tests/utils.ts | 26 +- 256 files changed, 1757 insertions(+), 1743 deletions(-) diff --git a/foundations/core/packages/account-client/src/client.ts b/foundations/core/packages/account-client/src/client.ts index bc3aac4aec..b1dbe5b85c 100644 --- a/foundations/core/packages/account-client/src/client.ts +++ b/foundations/core/packages/account-client/src/client.ts @@ -159,7 +159,7 @@ export interface AccountClient { setWorkspaceMemberUnread: (targetAccount: string, hasUnread: boolean) => Promise updateAllowReadOnlyGuests: ( readOnlyGuestsAllowed: boolean - ) => Promise<{ guestPerson: Person, guestSocialIds: SocialId[] } | undefined> + ) => Promise<{ guestPerson: Person; guestSocialIds: SocialId[] } | undefined> updateAllowGuestSignUp: (guestSignUpAllowed: boolean) => Promise updateWorkspaceName: (name: string) => Promise deleteWorkspace: () => Promise @@ -204,7 +204,7 @@ export interface AccountClient { socialValue: string, firstName: string, lastName: string - ) => Promise<{ uuid: PersonUuid, socialId: PersonId }> + ) => Promise<{ uuid: PersonUuid; socialId: PersonId }> addSocialIdToPerson: ( person: PersonUuid, type: SocialIdType, @@ -257,10 +257,10 @@ export interface AccountClient { getSubscriptionById: (subscriptionId: string) => Promise upsertSubscription: (subscription: SubscriptionData) => Promise - batchAssignWorkspacePermission: (params: { accountIds: AccountUuid[], permission: string }) => Promise - batchRevokeWorkspacePermission: (params: { accountIds: AccountUuid[], permission: string }) => Promise - hasWorkspacePermission: (params: { accountId: AccountUuid, permission: string }) => Promise - getWorkspacePermissions: (params: { accountId: AccountUuid, permission: string }) => Promise + batchAssignWorkspacePermission: (params: { accountIds: AccountUuid[]; permission: string }) => Promise + batchRevokeWorkspacePermission: (params: { accountIds: AccountUuid[]; permission: string }) => Promise + hasWorkspacePermission: (params: { accountId: AccountUuid; permission: string }) => Promise + getWorkspacePermissions: (params: { accountId: AccountUuid; permission: string }) => Promise getWorkspaceUsersWithPermission: (params: { permission: string }) => Promise verify2fa: (code: string) => Promise @@ -271,13 +271,13 @@ export interface AccountClient { setCookie: () => Promise deleteCookie: () => Promise - generate2faSecret: () => Promise<{ secret: string, url: string }> + generate2faSecret: () => Promise<{ secret: string; url: string }> enable2fa: (secret: string, code: string) => Promise disable2fa: (code: string) => Promise } /** @public */ -export function getClient (accountsUrl?: string, token?: string, retryTimeoutMs?: number): AccountClient { +export function getClient(accountsUrl?: string, token?: string, retryTimeoutMs?: number): AccountClient { if (accountsUrl === undefined) { throw new Error('Accounts url not specified') } @@ -294,7 +294,7 @@ class AccountClientImpl implements AccountClient { private readonly request: RequestInit private readonly rpc: typeof this._rpc - constructor ( + constructor( private readonly url: string, private readonly token?: string, retryTimeoutMs?: number @@ -319,7 +319,7 @@ class AccountClientImpl implements AccountClient { this.rpc = withRetryUntilTimeout(this._rpc.bind(this), retryTimeoutMs ?? 5000) } - async getProviders (): Promise { + async getProviders(): Promise { return await withRetryUntilMaxAttempts(async () => { const response = await fetch(concatLink(this.url, '/providers')) @@ -350,7 +350,7 @@ class AccountClientImpl implements AccountClient { return result.result } - private flattenStatus (ws: any): WorkspaceInfoWithStatus { + private flattenStatus(ws: any): WorkspaceInfoWithStatus { if (ws === undefined) { throw new PlatformError(new Status(Severity.ERROR, platform.status.WorkspaceNotFound, {})) } @@ -366,7 +366,7 @@ class AccountClientImpl implements AccountClient { return result } - async getUserWorkspaces (): Promise { + async getUserWorkspaces(): Promise { const request = { method: 'getUserWorkspaces' as const, params: {} @@ -375,7 +375,7 @@ class AccountClientImpl implements AccountClient { return (await this.rpc(request)).map((ws) => this.flattenStatus(ws)) } - async selectWorkspace ( + async selectWorkspace( workspaceUrl: string, kind: 'external' | 'internal' | 'byregion' = 'external', externalRegions: string[] = [] @@ -388,7 +388,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async validateOtp (email: string, code: string, password?: string, action?: 'verify'): Promise { + async validateOtp(email: string, code: string, password?: string, action?: 'verify'): Promise { const request = { method: 'validateOtp' as const, params: { email, code, password, action } @@ -397,7 +397,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async loginOtp (email: string): Promise { + async loginOtp(email: string): Promise { const request = { method: 'loginOtp' as const, params: { email } @@ -406,7 +406,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async getLoginInfoByToken (data?: LoginInfoRequestData): Promise { + async getLoginInfoByToken(data?: LoginInfoRequestData): Promise { const request = { method: 'getLoginInfoByToken' as const, params: data ?? {} @@ -415,7 +415,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async getLoginWithWorkspaceInfo (): Promise { + async getLoginWithWorkspaceInfo(): Promise { const request = { method: 'getLoginWithWorkspaceInfo' as const, params: {} @@ -424,7 +424,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async restorePassword (password: string): Promise { + async restorePassword(password: string): Promise { const request = { method: 'restorePassword' as const, params: { password } @@ -433,7 +433,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async confirm (): Promise { + async confirm(): Promise { const request = { method: 'confirm' as const, params: {} @@ -442,7 +442,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async requestPasswordReset (email: string): Promise { + async requestPasswordReset(email: string): Promise { const request = { method: 'requestPasswordReset' as const, params: { email } @@ -451,7 +451,7 @@ class AccountClientImpl implements AccountClient { await this.rpc(request) } - async sendInvite (email: string, role: AccountRole): Promise { + async sendInvite(email: string, role: AccountRole): Promise { const request = { method: 'sendInvite' as const, params: { email, role } @@ -460,7 +460,7 @@ class AccountClientImpl implements AccountClient { await this.rpc(request) } - async resendInvite (email: string, role: AccountRole): Promise { + async resendInvite(email: string, role: AccountRole): Promise { const request = { method: 'resendInvite' as const, params: { email, role } @@ -469,7 +469,7 @@ class AccountClientImpl implements AccountClient { await this.rpc(request) } - async createInviteLink ( + async createInviteLink( email: string, role: AccountRole, autoJoin: boolean, @@ -486,7 +486,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async createAccessLink ( + async createAccessLink( role: AccountRole, options?: { firstName?: string @@ -512,7 +512,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async leaveWorkspace (account: AccountUuid): Promise { + async leaveWorkspace(account: AccountUuid): Promise { const request = { method: 'leaveWorkspace' as const, params: { account } @@ -521,7 +521,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async changeUsername (first: string, last: string): Promise { + async changeUsername(first: string, last: string): Promise { const request = { method: 'changeUsername' as const, params: { first, last } @@ -530,7 +530,7 @@ class AccountClientImpl implements AccountClient { await this.rpc(request) } - async checkHasPassword (): Promise { + async checkHasPassword(): Promise { const request = { method: 'checkHasPassword' as const, params: {} @@ -539,7 +539,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async changePassword (oldPassword: string, newPassword: string): Promise { + async changePassword(oldPassword: string, newPassword: string): Promise { const request = { method: 'changePassword' as const, params: { oldPassword, newPassword } @@ -548,7 +548,7 @@ class AccountClientImpl implements AccountClient { await this.rpc(request) } - async requestPasswordSetup (): Promise { + async requestPasswordSetup(): Promise { const request = { method: 'requestPasswordSetup' as const, params: {} @@ -557,7 +557,7 @@ class AccountClientImpl implements AccountClient { await this.rpc(request) } - async updatePasswordAgingRule (days?: number): Promise { + async updatePasswordAgingRule(days?: number): Promise { const request = { method: 'updatePasswordAgingRule' as const, params: { days } @@ -566,7 +566,7 @@ class AccountClientImpl implements AccountClient { await this.rpc(request) } - async checkPasswordAging (): Promise { + async checkPasswordAging(): Promise { const request = { method: 'checkPasswordAging' as const, params: {} @@ -575,7 +575,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async signUpJoin ( + async signUpJoin( email: string, password: string, first: string, @@ -591,7 +591,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async join (email: string, password: string, inviteId: string, workspaceUrl: string): Promise { + async join(email: string, password: string, inviteId: string, workspaceUrl: string): Promise { const request = { method: 'join' as const, params: { email, password, inviteId, workspaceUrl } @@ -600,7 +600,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async createInvite (exp: number, emailMask: string, limit: number, role: AccountRole): Promise { + async createInvite(exp: number, emailMask: string, limit: number, role: AccountRole): Promise { const request = { method: 'createInvite' as const, params: { exp, emailMask, limit, role } @@ -609,7 +609,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async checkJoin (inviteId: string): Promise { + async checkJoin(inviteId: string): Promise { const request = { method: 'checkJoin' as const, params: { inviteId } @@ -618,7 +618,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async joinByToken (inviteId: string): Promise { + async joinByToken(inviteId: string): Promise { const request = { method: 'joinByToken' as const, params: { inviteId } @@ -627,7 +627,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async checkAutoJoin (inviteId: string, firstName?: string, lastName?: string): Promise { + async checkAutoJoin(inviteId: string, firstName?: string, lastName?: string): Promise { const request = { method: 'checkAutoJoin' as const, params: { inviteId, firstName, lastName } @@ -636,7 +636,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async getInviteInfo (inviteId: string): Promise { + async getInviteInfo(inviteId: string): Promise { const request = { method: 'getInviteInfo' as const, params: { inviteId } @@ -645,7 +645,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async getWorkspacesInfo (ids: WorkspaceUuid[]): Promise { + async getWorkspacesInfo(ids: WorkspaceUuid[]): Promise { const request = { method: 'getWorkspacesInfo' as const, params: { ids } @@ -654,7 +654,7 @@ class AccountClientImpl implements AccountClient { return Array.from(infos).map((it) => this.flattenStatus(it)) } - async updateLastVisit (ids: WorkspaceUuid[]): Promise { + async updateLastVisit(ids: WorkspaceUuid[]): Promise { const request = { method: 'updateLastVisit' as const, params: { ids } @@ -662,7 +662,7 @@ class AccountClientImpl implements AccountClient { await this.rpc(request) } - async getWorkspaceInfo (updateLastVisit: boolean = false): Promise { + async getWorkspaceInfo(updateLastVisit: boolean = false): Promise { const request = { method: 'getWorkspaceInfo' as const, params: updateLastVisit ? { updateLastVisit: true } : {} @@ -671,7 +671,7 @@ class AccountClientImpl implements AccountClient { return this.flattenStatus(await this.rpc(request)) } - async getRegionInfo (): Promise { + async getRegionInfo(): Promise { const request = { method: 'getRegionInfo' as const, params: {} @@ -680,7 +680,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async createWorkspace ( + async createWorkspace( workspaceName: string, region?: string, configuration?: WorkspaceConfiguration @@ -693,7 +693,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async signUpOtp (email: string, firstName: string, lastName: string): Promise { + async signUpOtp(email: string, firstName: string, lastName: string): Promise { const request = { method: 'signUpOtp' as const, params: { email, firstName, lastName } @@ -702,7 +702,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async signUp (email: string, password: string, firstName: string, lastName: string): Promise { + async signUp(email: string, password: string, firstName: string, lastName: string): Promise { const request = { method: 'signUp' as const, params: { email, password, firstName, lastName } @@ -711,7 +711,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async login (email: string, password: string): Promise { + async login(email: string, password: string): Promise { const request = { method: 'login' as const, params: { email, password } @@ -720,7 +720,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async loginAsGuest (): Promise { + async loginAsGuest(): Promise { const request = { method: 'loginAsGuest' as const, params: {} @@ -747,7 +747,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async getPerson (): Promise { + async getPerson(): Promise { const request = { method: 'getPerson' as const, params: {} @@ -756,7 +756,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async getPersonInfo (account: PersonUuid): Promise { + async getPersonInfo(account: PersonUuid): Promise { const request = { method: 'getPersonInfo' as const, params: { account } @@ -765,7 +765,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async getSocialIds (includeDeleted?: boolean): Promise { + async getSocialIds(includeDeleted?: boolean): Promise { const request = { method: 'getSocialIds' as const, params: { includeDeleted } @@ -774,7 +774,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async workerHandshake (region: string, version: Data, operation: WorkspaceOperation): Promise { + async workerHandshake(region: string, version: Data, operation: WorkspaceOperation): Promise { const request = { method: 'workerHandshake' as const, params: { region, version, operation } @@ -783,7 +783,7 @@ class AccountClientImpl implements AccountClient { await this.rpc(request) } - async getPendingWorkspace ( + async getPendingWorkspace( region: string, version: Data, operation: WorkspaceOperation @@ -801,7 +801,7 @@ class AccountClientImpl implements AccountClient { return this.flattenStatus(result) } - async updateWorkspaceInfo ( + async updateWorkspaceInfo( workspaceUuid: string, event: string, version: Data, @@ -816,9 +816,9 @@ class AccountClientImpl implements AccountClient { await this.rpc(request) } - async updateAllowReadOnlyGuests ( + async updateAllowReadOnlyGuests( readOnlyGuestsAllowed: boolean - ): Promise<{ guestPerson: Person, guestSocialIds: SocialId[] } | undefined> { + ): Promise<{ guestPerson: Person; guestSocialIds: SocialId[] } | undefined> { const request = { method: 'updateAllowReadOnlyGuests' as const, params: { readOnlyGuestsAllowed } @@ -827,7 +827,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async updateAllowGuestSignUp (guestSignUpAllowed: boolean): Promise { + async updateAllowGuestSignUp(guestSignUpAllowed: boolean): Promise { const request = { method: 'updateAllowGuestSignUp' as const, params: { guestSignUpAllowed } @@ -836,7 +836,7 @@ class AccountClientImpl implements AccountClient { await this.rpc(request) } - async getWorkspaceMembers (): Promise { + async getWorkspaceMembers(): Promise { const request = { method: 'getWorkspaceMembers' as const, params: {} @@ -845,7 +845,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async updateWorkspaceRole (targetAccount: string, targetRole: AccountRole): Promise { + async updateWorkspaceRole(targetAccount: string, targetRole: AccountRole): Promise { const request = { method: 'updateWorkspaceRole' as const, params: { targetAccount, targetRole } @@ -854,7 +854,7 @@ class AccountClientImpl implements AccountClient { await this.rpc(request) } - async setWorkspaceMemberUnread (targetAccount: string, hasUnread: boolean): Promise { + async setWorkspaceMemberUnread(targetAccount: string, hasUnread: boolean): Promise { const request = { method: 'setWorkspaceMemberUnread' as const, params: { targetAccount, hasUnread } @@ -863,7 +863,7 @@ class AccountClientImpl implements AccountClient { await this.rpc(request) } - async updateWorkspaceName (name: string): Promise { + async updateWorkspaceName(name: string): Promise { const request = { method: 'updateWorkspaceName' as const, params: { name } @@ -872,7 +872,7 @@ class AccountClientImpl implements AccountClient { await this.rpc(request) } - async deleteWorkspace (): Promise { + async deleteWorkspace(): Promise { const request = { method: 'deleteWorkspace' as const, params: {} @@ -881,7 +881,7 @@ class AccountClientImpl implements AccountClient { await this.rpc(request) } - async findPersonBySocialKey (socialString: string, requireAccount?: boolean): Promise { + async findPersonBySocialKey(socialString: string, requireAccount?: boolean): Promise { const request = { method: 'findPersonBySocialKey' as const, params: { socialString, requireAccount } @@ -890,7 +890,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async findPersonBySocialId (socialId: PersonId, requireAccount?: boolean): Promise { + async findPersonBySocialId(socialId: PersonId, requireAccount?: boolean): Promise { const request = { method: 'findPersonBySocialId' as const, params: { socialId, requireAccount } @@ -899,7 +899,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async findSocialIdBySocialKey (socialKey: string): Promise { + async findSocialIdBySocialKey(socialKey: string): Promise { const request = { method: 'findSocialIdBySocialKey' as const, params: { socialKey } @@ -908,7 +908,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async findFullSocialIdBySocialKey (socialKey: string): Promise { + async findFullSocialIdBySocialKey(socialKey: string): Promise { const request = { method: 'findFullSocialIdBySocialKey' as const, params: { socialKey } @@ -916,7 +916,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async findFullSocialIds (socialIds: PersonId[]): Promise { + async findFullSocialIds(socialIds: PersonId[]): Promise { const request = { method: 'findFullSocialIds' as const, params: { socialIds } @@ -924,7 +924,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async listWorkspaces (region?: string | null, mode: WorkspaceMode | null = null): Promise { + async listWorkspaces(region?: string | null, mode: WorkspaceMode | null = null): Promise { const request = { method: 'listWorkspaces' as const, params: { region, mode } @@ -933,7 +933,7 @@ class AccountClientImpl implements AccountClient { return ((await this.rpc(request)) ?? []).map((ws) => this.flattenStatus(ws)) } - async performWorkspaceOperation ( + async performWorkspaceOperation( workspaceId: string | string[], event: WorkspaceUserOperation, ...params: any @@ -946,7 +946,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async updateBackupInfo (backupInfo: BackupStatus): Promise { + async updateBackupInfo(backupInfo: BackupStatus): Promise { const request = { method: 'updateBackupInfo' as const, params: { backupInfo } @@ -955,7 +955,7 @@ class AccountClientImpl implements AccountClient { await this.rpc(request) } - async updateUsageInfo (usageInfo: UsageStatus): Promise { + async updateUsageInfo(usageInfo: UsageStatus): Promise { const request = { method: 'updateUsageInfo' as const, params: { usageInfo } @@ -964,7 +964,7 @@ class AccountClientImpl implements AccountClient { await this.rpc(request) } - async assignWorkspace (email: string, workspaceUuid: string, role: AccountRole): Promise { + async assignWorkspace(email: string, workspaceUuid: string, role: AccountRole): Promise { const request = { method: 'assignWorkspace' as const, params: { email, workspaceUuid, role } @@ -973,7 +973,7 @@ class AccountClientImpl implements AccountClient { await this.rpc(request) } - async updateWorkspaceRoleBySocialKey (socialKey: string, targetRole: AccountRole): Promise { + async updateWorkspaceRoleBySocialKey(socialKey: string, targetRole: AccountRole): Promise { const request = { method: 'updateWorkspaceRoleBySocialKey' as const, params: { socialKey, targetRole } @@ -982,12 +982,12 @@ class AccountClientImpl implements AccountClient { await this.rpc(request) } - async ensurePerson ( + async ensurePerson( socialType: SocialIdType, socialValue: string, firstName: string, lastName: string - ): Promise<{ uuid: PersonUuid, socialId: PersonId }> { + ): Promise<{ uuid: PersonUuid; socialId: PersonId }> { const request = { method: 'ensurePerson' as const, params: { socialType, socialValue, firstName, lastName } @@ -996,7 +996,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async exchangeGuestToken (token: string): Promise { + async exchangeGuestToken(token: string): Promise { const request = { method: 'exchangeGuestToken' as const, params: { token } @@ -1005,7 +1005,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async addSocialIdToPerson ( + async addSocialIdToPerson( person: PersonUuid, type: SocialIdType, value: string, @@ -1020,7 +1020,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async updateSocialId (personId: PersonId, displayValue: string): Promise { + async updateSocialId(personId: PersonId, displayValue: string): Promise { const request = { method: 'updateSocialId' as const, params: { personId, displayValue } @@ -1028,7 +1028,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async getMailboxOptions (): Promise { + async getMailboxOptions(): Promise { const request = { method: 'getMailboxOptions' as const, params: {} @@ -1037,7 +1037,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async getMailboxSecret (mailbox: string): Promise { + async getMailboxSecret(mailbox: string): Promise { const request = { method: 'getMailboxSecret' as const, params: { mailbox } @@ -1055,7 +1055,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async getMailboxes (): Promise { + async getMailboxes(): Promise { const request = { method: 'getMailboxes' as const, params: {} @@ -1064,7 +1064,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async deleteMailbox (mailbox: string): Promise { + async deleteMailbox(mailbox: string): Promise { const request = { method: 'deleteMailbox' as const, params: { mailbox } @@ -1073,7 +1073,7 @@ class AccountClientImpl implements AccountClient { await this.rpc(request) } - async listAccounts (search?: string, skip?: number, limit?: number): Promise { + async listAccounts(search?: string, skip?: number, limit?: number): Promise { const request = { method: 'listAccounts' as const, params: { search, skip, limit } @@ -1082,7 +1082,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async deleteAccount (uuid: AccountUuid): Promise { + async deleteAccount(uuid: AccountUuid): Promise { const request = { method: 'deleteAccount' as const, params: { uuid } @@ -1091,7 +1091,7 @@ class AccountClientImpl implements AccountClient { await this.rpc(request) } - async releaseSocialId ( + async releaseSocialId( personUuid: PersonUuid | undefined, type: SocialIdType, value: string, @@ -1105,7 +1105,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async createIntegration (integration: Integration): Promise { + async createIntegration(integration: Integration): Promise { const request = { method: 'createIntegration' as const, params: integration @@ -1114,7 +1114,7 @@ class AccountClientImpl implements AccountClient { await this.rpc(request) } - async updateIntegration (integration: Integration): Promise { + async updateIntegration(integration: Integration): Promise { const request = { method: 'updateIntegration' as const, params: integration @@ -1123,7 +1123,7 @@ class AccountClientImpl implements AccountClient { await this.rpc(request) } - async deleteIntegration (integrationKey: IntegrationKey): Promise { + async deleteIntegration(integrationKey: IntegrationKey): Promise { const request = { method: 'deleteIntegration' as const, params: integrationKey @@ -1132,7 +1132,7 @@ class AccountClientImpl implements AccountClient { await this.rpc(request) } - async getIntegration (integrationKey: IntegrationKey): Promise { + async getIntegration(integrationKey: IntegrationKey): Promise { const request = { method: 'getIntegration' as const, params: integrationKey @@ -1141,7 +1141,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async listIntegrations (filter: Partial): Promise { + async listIntegrations(filter: Partial): Promise { const request = { method: 'listIntegrations' as const, params: filter @@ -1150,7 +1150,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async addIntegrationSecret (integrationSecret: IntegrationSecret): Promise { + async addIntegrationSecret(integrationSecret: IntegrationSecret): Promise { const request = { method: 'addIntegrationSecret' as const, params: integrationSecret @@ -1159,7 +1159,7 @@ class AccountClientImpl implements AccountClient { await this.rpc(request) } - async updateIntegrationSecret (integrationSecret: IntegrationSecret): Promise { + async updateIntegrationSecret(integrationSecret: IntegrationSecret): Promise { const request = { method: 'updateIntegrationSecret' as const, params: integrationSecret @@ -1168,7 +1168,7 @@ class AccountClientImpl implements AccountClient { await this.rpc(request) } - async deleteIntegrationSecret (integrationSecretKey: IntegrationSecretKey): Promise { + async deleteIntegrationSecret(integrationSecretKey: IntegrationSecretKey): Promise { const request = { method: 'deleteIntegrationSecret' as const, params: integrationSecretKey @@ -1177,7 +1177,7 @@ class AccountClientImpl implements AccountClient { await this.rpc(request) } - async getIntegrationSecret (integrationSecretKey: IntegrationSecretKey): Promise { + async getIntegrationSecret(integrationSecretKey: IntegrationSecretKey): Promise { const request = { method: 'getIntegrationSecret' as const, params: integrationSecretKey @@ -1186,7 +1186,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async listIntegrationsSecrets (filter: Partial): Promise { + async listIntegrationsSecrets(filter: Partial): Promise { const request = { method: 'listIntegrationsSecrets' as const, params: filter @@ -1195,7 +1195,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async getAccountInfo (uuid: AccountUuid): Promise { + async getAccountInfo(uuid: AccountUuid): Promise { const request = { method: 'getAccountInfo' as const, params: { accountId: uuid } @@ -1204,7 +1204,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async canMergeSpecifiedPersons (primaryPerson: PersonUuid, secondaryPerson: PersonUuid): Promise { + async canMergeSpecifiedPersons(primaryPerson: PersonUuid, secondaryPerson: PersonUuid): Promise { const request = { method: 'canMergeSpecifiedPersons' as const, params: { primaryPerson, secondaryPerson } @@ -1213,7 +1213,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async mergeSpecifiedPersons (primaryPerson: PersonUuid, secondaryPerson: PersonUuid): Promise { + async mergeSpecifiedPersons(primaryPerson: PersonUuid, secondaryPerson: PersonUuid): Promise { const request = { method: 'mergeSpecifiedPersons' as const, params: { primaryPerson, secondaryPerson } @@ -1222,7 +1222,7 @@ class AccountClientImpl implements AccountClient { await this.rpc(request) } - async mergeSpecifiedAccounts (primaryAccount: AccountUuid, secondaryAccount: AccountUuid): Promise { + async mergeSpecifiedAccounts(primaryAccount: AccountUuid, secondaryAccount: AccountUuid): Promise { const request = { method: 'mergeSpecifiedAccounts' as const, params: { primaryAccount, secondaryAccount } @@ -1231,7 +1231,7 @@ class AccountClientImpl implements AccountClient { await this.rpc(request) } - async addEmailSocialId (email: string): Promise { + async addEmailSocialId(email: string): Promise { const request = { method: 'addEmailSocialId' as const, params: { email } @@ -1240,7 +1240,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async addHulyAssistantSocialId (): Promise { + async addHulyAssistantSocialId(): Promise { const request = { method: 'addHulyAssistantSocialId' as const, params: {} @@ -1249,7 +1249,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async refreshHulyAssistantToken (): Promise { + async refreshHulyAssistantToken(): Promise { const request = { method: 'refreshHulyAssistantToken' as const, params: {} @@ -1297,7 +1297,7 @@ class AccountClientImpl implements AccountClient { } } - async deleteCookie (): Promise { + async deleteCookie(): Promise { const url = concatLink(this.url, '/cookie') const response = await fetch(url, { ...this.request, method: 'DELETE' }) @@ -1309,7 +1309,7 @@ class AccountClientImpl implements AccountClient { } } - async setMyProfile (profile: Partial>): Promise { + async setMyProfile(profile: Partial>): Promise { const request = { method: 'setMyProfile', params: { @@ -1320,7 +1320,7 @@ class AccountClientImpl implements AccountClient { await this._rpc(request) } - async getUserProfile (personUuid?: PersonUuid): Promise { + async getUserProfile(personUuid?: PersonUuid): Promise { return await this._rpc({ method: 'getUserProfile', params: { @@ -1329,7 +1329,7 @@ class AccountClientImpl implements AccountClient { }) } - async getSubscriptions ( + async getSubscriptions( workspaceUuid: WorkspaceUuid | undefined = undefined, activeOnly: boolean = true ): Promise { @@ -1342,7 +1342,7 @@ class AccountClientImpl implements AccountClient { }) } - async getSubscriptionByProviderId (provider: string, providerSubscriptionId: string): Promise { + async getSubscriptionByProviderId(provider: string, providerSubscriptionId: string): Promise { return await this._rpc({ method: 'getSubscriptionByProviderId', params: { @@ -1352,7 +1352,7 @@ class AccountClientImpl implements AccountClient { }) } - async getSubscriptionById (subscriptionId: string): Promise { + async getSubscriptionById(subscriptionId: string): Promise { return await this._rpc({ method: 'getSubscriptionById', params: { @@ -1361,49 +1361,49 @@ class AccountClientImpl implements AccountClient { }) } - async upsertSubscription (subscription: SubscriptionData): Promise { + async upsertSubscription(subscription: SubscriptionData): Promise { await this._rpc({ method: 'upsertSubscription', params: subscription }) } - async batchAssignWorkspacePermission (params: { accountIds: AccountUuid[], permission: string }): Promise { + async batchAssignWorkspacePermission(params: { accountIds: AccountUuid[]; permission: string }): Promise { await this._rpc({ method: 'batchAssignWorkspacePermission', params }) } - async batchRevokeWorkspacePermission (params: { accountIds: AccountUuid[], permission: string }): Promise { + async batchRevokeWorkspacePermission(params: { accountIds: AccountUuid[]; permission: string }): Promise { await this._rpc({ method: 'batchRevokeWorkspacePermission', params }) } - async hasWorkspacePermission (params: { accountId: AccountUuid, permission: string }): Promise { + async hasWorkspacePermission(params: { accountId: AccountUuid; permission: string }): Promise { return await this._rpc({ method: 'hasWorkspacePermission', params }) } - async getWorkspacePermissions (params: { accountId: AccountUuid, permission: string }): Promise { + async getWorkspacePermissions(params: { accountId: AccountUuid; permission: string }): Promise { return await this._rpc({ method: 'getWorkspacePermissions', params }) } - async getWorkspaceUsersWithPermission (params: { permission: string }): Promise { + async getWorkspaceUsersWithPermission(params: { permission: string }): Promise { return await this._rpc({ method: 'getWorkspaceUsersWithPermission', params }) } - async verify2fa (code: string): Promise { + async verify2fa(code: string): Promise { const request = { method: 'verify2fa' as const, params: { code } @@ -1412,7 +1412,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async generate2faSecret (): Promise<{ secret: string, url: string }> { + async generate2faSecret(): Promise<{ secret: string; url: string }> { const request = { method: 'generate2faSecret' as const, params: {} @@ -1421,7 +1421,7 @@ class AccountClientImpl implements AccountClient { return await this.rpc(request) } - async enable2fa (secret: string, code: string): Promise { + async enable2fa(secret: string, code: string): Promise { const request = { method: 'enable2fa' as const, params: { secret, code } @@ -1430,7 +1430,7 @@ class AccountClientImpl implements AccountClient { await this.rpc(request) } - async disable2fa (code: string): Promise { + async disable2fa(code: string): Promise { const request = { method: 'disable2fa' as const, params: { code } @@ -1440,7 +1440,7 @@ class AccountClientImpl implements AccountClient { } } -function withRetry Promise> ( +function withRetry Promise>( f: F, shouldFail: (err: any, attempt: number) => boolean, intervalMs: number = 25 @@ -1465,14 +1465,14 @@ function withRetry Promise> ( } as F } -function withRetryUntilTimeout Promise> (f: F, timeoutMs: number = 5000): F { +function withRetryUntilTimeout Promise>(f: F, timeoutMs: number = 5000): F { const timeout = Date.now() + timeoutMs const shouldFail = (err: any): boolean => !isNetworkError(err) || timeout < Date.now() return withRetry(f, shouldFail) } -function withRetryUntilMaxAttempts Promise> (f: F, maxAttempts: number = 5): F { +function withRetryUntilMaxAttempts Promise>(f: F, maxAttempts: number = 5): F { const shouldFail = (err: any, attempt: number): boolean => !isNetworkError(err) || attempt === maxAttempts return withRetry(f, shouldFail) diff --git a/foundations/core/packages/account-client/src/utils.ts b/foundations/core/packages/account-client/src/utils.ts index cda089b42d..0f2740afdc 100644 --- a/foundations/core/packages/account-client/src/utils.ts +++ b/foundations/core/packages/account-client/src/utils.ts @@ -15,15 +15,15 @@ import type { LoginInfoByToken, LoginInfoRequest, WorkspaceLoginInfo } from './types' -export function isWorkspaceLoginInfo (loginInfo: LoginInfoByToken): loginInfo is WorkspaceLoginInfo { +export function isWorkspaceLoginInfo(loginInfo: LoginInfoByToken): loginInfo is WorkspaceLoginInfo { return !isLoginInfoRequest(loginInfo) && (loginInfo as WorkspaceLoginInfo)?.workspace != null } -export function isLoginInfoRequest (info: LoginInfoByToken): info is LoginInfoRequest { +export function isLoginInfoRequest(info: LoginInfoByToken): info is LoginInfoRequest { return (info as LoginInfoRequest)?.request } -export function getClientTimezone (): string | undefined { +export function getClientTimezone(): string | undefined { try { return Intl.DateTimeFormat().resolvedOptions().timeZone } catch (err: any) { @@ -40,7 +40,7 @@ const networkMessageKeywords = ['fetch', 'network', 'connection'] /** * Check if a message contains network-related keywords */ -function hasNetworkMessage (message: string): boolean { +function hasNetworkMessage(message: string): boolean { const lowerMessage = message.toLowerCase() return networkMessageKeywords.some((keyword) => lowerMessage.includes(keyword)) } @@ -48,7 +48,7 @@ function hasNetworkMessage (message: string): boolean { /** * Check if an error is a network/connection error that should be retried */ -export function isNetworkError (err: unknown): boolean { +export function isNetworkError(err: unknown): boolean { if (err == null) { return false } diff --git a/foundations/core/packages/analytics-service/src/index.ts b/foundations/core/packages/analytics-service/src/index.ts index 3f7c9a2ff6..4c81f7f8b2 100644 --- a/foundations/core/packages/analytics-service/src/index.ts +++ b/foundations/core/packages/analytics-service/src/index.ts @@ -9,7 +9,7 @@ export * from '@hcengineering/measurements-otlp' export * from './logging' class OTELAnalyticsProvider implements AnalyticProvider { - init (config: Record): boolean { + init(config: Record): boolean { return true } @@ -23,16 +23,16 @@ class OTELAnalyticsProvider implements AnalyticProvider { handleEvent: (event: string, params: Record) => void = (event, params) => {} - handleError (error: Error): void { + handleError(error: Error): void { reportOTELError(error) } - navigate (path: string): void {} + navigate(path: string): void {} - logout (): void {} + logout(): void {} } -export function configureAnalytics (serviceName: string, serviceVersion: string, config?: Record): void { +export function configureAnalytics(serviceName: string, serviceVersion: string, config?: Record): void { const providers: AnalyticProvider[] = [new OTELAnalyticsProvider()] initOpenTelemetrySDK(serviceName, serviceVersion) diff --git a/foundations/core/packages/analytics-service/src/logging.ts b/foundations/core/packages/analytics-service/src/logging.ts index c9f45f5be9..234774ba07 100644 --- a/foundations/core/packages/analytics-service/src/logging.ts +++ b/foundations/core/packages/analytics-service/src/logging.ts @@ -9,9 +9,9 @@ import DailyRotateFile from 'winston-daily-rotate-file' export class SplitLogger implements MeasureLogger { logger: winston.Logger - constructor ( + constructor( readonly name: string, - readonly opts: { root?: string, parent?: winston.Logger, pretty?: boolean, enableConsole?: boolean } + readonly opts: { root?: string; parent?: winston.Logger; pretty?: boolean; enableConsole?: boolean } ) { const rootDir = this.opts.root ?? 'logs' @@ -77,14 +77,14 @@ export class SplitLogger implements MeasureLogger { ) } - error (message: string, obj?: Record): void { + error(message: string, obj?: Record): void { if (this.opts.parent !== undefined) { this.opts.parent.error({ message, ...obj }) } this.logger.error({ message, ...obj }) } - info (message: string, obj?: Record): void { + info(message: string, obj?: Record): void { if (this.opts.parent !== undefined && this.opts.enableConsole === true) { // Only propogate if enable console is true this.opts.parent.info({ message, ...obj }) @@ -92,25 +92,25 @@ export class SplitLogger implements MeasureLogger { this.logger.info({ message, ...obj }) } - warn (message: string, obj?: Record): void { + warn(message: string, obj?: Record): void { if (this.opts.parent !== undefined) { this.opts.parent.warn({ message, ...obj }) } this.logger.warn({ message, ...obj }) } - debug (message: string, obj?: Record): void { + debug(message: string, obj?: Record): void { if (this.opts.parent !== undefined) { this.opts.parent.debug({ message, ...obj }) } this.logger.debug({ message, ...obj }) } - logOperation (operation: string, time: number, params: ParamsType): void { + logOperation(operation: string, time: number, params: ParamsType): void { this.logger.info(operation, { time, ...params }) } - childLogger (name: string, params: Record): MeasureLogger { + childLogger(name: string, params: Record): MeasureLogger { const dirName = dirname(name) const { enableConsole, ...otherParams } = params const child = this.logger.child({ name, ...otherParams }) @@ -122,7 +122,7 @@ export class SplitLogger implements MeasureLogger { }) } - async close (): Promise { + async close(): Promise { this.logger.close() } } diff --git a/foundations/core/packages/analytics/src/index.ts b/foundations/core/packages/analytics/src/index.ts index daa893f2d4..ba4043aad9 100644 --- a/foundations/core/packages/analytics/src/index.ts +++ b/foundations/core/packages/analytics/src/index.ts @@ -20,56 +20,56 @@ export interface AnalyticProvider { export const Analytics = { data: {}, - init (provider: AnalyticProvider, config: Record): void { + init(provider: AnalyticProvider, config: Record): void { const res = provider.init(config) if (res) { providers.push(provider) } }, - setUser (email: string, data: any): void { + setUser(email: string, data: any): void { providers.forEach((provider) => { provider.setUser(email, data) }) }, - setAlias (distinctId: string, alias: string): void { + setAlias(distinctId: string, alias: string): void { providers.forEach((provider) => { provider.setAlias(distinctId, alias) }) }, - setTag (key: string, value: string): void { + setTag(key: string, value: string): void { providers.forEach((provider) => { provider.setTag(key, value) }) }, - setWorkspace (ws: string, guest: boolean): void { + setWorkspace(ws: string, guest: boolean): void { providers.forEach((provider) => { provider.setWorkspace(ws, guest) }) }, - handleEvent (event: string, params: Record = {}): void { + handleEvent(event: string, params: Record = {}): void { providers.forEach((provider) => { provider.handleEvent(event, { ...this.data, ...params }) }) }, - handleError (error: Error): void { + handleError(error: Error): void { providers.forEach((provider) => { provider.handleError(error) }) }, - navigate (path: string): void { + navigate(path: string): void { providers.forEach((provider) => { provider.navigate(path) }) }, - logout (): void { + logout(): void { providers.forEach((provider) => { provider.logout() }) diff --git a/foundations/core/packages/api-client/src/client.ts b/foundations/core/packages/api-client/src/client.ts index cc52f7035c..a30e16f77f 100644 --- a/foundations/core/packages/api-client/src/client.ts +++ b/foundations/core/packages/api-client/src/client.ts @@ -59,7 +59,7 @@ import { getWorkspaceToken } from './utils' /** * Create platform client * @public */ -export async function connect (url: string, options: ConnectOptions): Promise { +export async function connect(url: string, options: ConnectOptions): Promise { const config = await loadServerConfig(url) const { endpoint, token } = await getWorkspaceToken(url, options, config) @@ -82,7 +82,7 @@ export async function connect (url: string, options: ConnectOptions): Promise { + async getAccount(): Promise { return this.account } @@ -297,7 +297,7 @@ class PlatformClientImpl implements PlatformClient { // Markup - async fetchMarkup ( + async fetchMarkup( objectClass: Ref>, objectId: Ref, objectAttr: string, @@ -307,7 +307,7 @@ class PlatformClientImpl implements PlatformClient { return await this.markup.fetchMarkup(objectClass, objectId, objectAttr, markup, format) } - async uploadMarkup ( + async uploadMarkup( objectClass: Ref>, objectId: Ref, objectAttr: string, @@ -319,7 +319,7 @@ class PlatformClientImpl implements PlatformClient { // AsyncDisposable - async [Symbol.asyncDispose] (): Promise { + async [Symbol.asyncDispose](): Promise { await this.close() } } diff --git a/foundations/core/packages/api-client/src/config.ts b/foundations/core/packages/api-client/src/config.ts index 9386748a38..652f537238 100644 --- a/foundations/core/packages/api-client/src/config.ts +++ b/foundations/core/packages/api-client/src/config.ts @@ -22,7 +22,7 @@ export interface ServerConfig { UPLOAD_URL: string } -export async function loadServerConfig (url: string): Promise { +export async function loadServerConfig(url: string): Promise { const configUrl = concatLink(url, '/config.json') const res = await fetch(configUrl, { keepalive: true }) if (res.ok) { diff --git a/foundations/core/packages/api-client/src/markup/client.ts b/foundations/core/packages/api-client/src/markup/client.ts index 5a783a2080..ad61bf922e 100644 --- a/foundations/core/packages/api-client/src/markup/client.ts +++ b/foundations/core/packages/api-client/src/markup/client.ts @@ -29,7 +29,7 @@ import { markdownToMarkup, markupToMarkdown } from '@hcengineering/text-markdown import { type ServerConfig } from '../config' import { type MarkupOperations, type MarkupFormat, type MarkupRef } from './types' -export function createMarkupOperations ( +export function createMarkupOperations( url: string, workspace: WorkspaceUuid, token: string, @@ -43,7 +43,7 @@ class MarkupOperationsImpl implements MarkupOperations { private readonly imageUrl: string private readonly refUrl: string - constructor ( + constructor( private readonly url: string, private readonly workspace: WorkspaceUuid, private readonly token: string, @@ -54,7 +54,7 @@ class MarkupOperationsImpl implements MarkupOperations { this.collaborator = getClient(workspace, token, config.COLLABORATOR_URL) } - async fetchMarkup ( + async fetchMarkup( objectClass: Ref>, objectId: Ref, objectAttr: string, @@ -77,7 +77,7 @@ class MarkupOperationsImpl implements MarkupOperations { } } - async uploadMarkup ( + async uploadMarkup( objectClass: Ref>, objectId: Ref, objectAttr: string, diff --git a/foundations/core/packages/api-client/src/markup/types.ts b/foundations/core/packages/api-client/src/markup/types.ts index a4f6765689..57e368183f 100644 --- a/foundations/core/packages/api-client/src/markup/types.ts +++ b/foundations/core/packages/api-client/src/markup/types.ts @@ -23,19 +23,19 @@ export type MarkupFormat = 'markup' | 'html' | 'markdown' /** @public */ export class MarkupContent { - constructor ( + constructor( readonly content: string, readonly kind: MarkupFormat ) {} } /** @public */ -export function html (content: string): MarkupContent { +export function html(content: string): MarkupContent { return new MarkupContent(content, 'html') } /** @public */ -export function markdown (content: string): MarkupContent { +export function markdown(content: string): MarkupContent { return new MarkupContent(content, 'markdown') } diff --git a/foundations/core/packages/api-client/src/rest/adapter.ts b/foundations/core/packages/api-client/src/rest/adapter.ts index ea0039e6e4..c8bfbd03f7 100644 --- a/foundations/core/packages/api-client/src/rest/adapter.ts +++ b/foundations/core/packages/api-client/src/rest/adapter.ts @@ -41,7 +41,7 @@ import { import type { RestClient } from './types' export class RestClientAdapter implements Client { - constructor ( + constructor( private readonly client: RestClient, private readonly hierarchy: Hierarchy | undefined, private readonly model: ModelDb | undefined @@ -91,22 +91,22 @@ export class RestClientAdapter implements Client { return await this.client.findOne(_class, query, options) } - async searchFulltext (query: SearchQuery, options: SearchOptions): Promise { + async searchFulltext(query: SearchQuery, options: SearchOptions): Promise { return await this.client.searchFulltext(query, options) } - async close (): Promise { + async close(): Promise { // No ned to close the REST client } - getHierarchy (): Hierarchy { + getHierarchy(): Hierarchy { if (this.hierarchy === undefined) { throw new Error('Hierarchy is not defined') } return this.hierarchy } - getModel (): ModelDb { + getModel(): ModelDb { if (this.model === undefined) { throw new Error('Model is not defined') } diff --git a/foundations/core/packages/api-client/src/rest/rest.ts b/foundations/core/packages/api-client/src/rest/rest.ts index a098ca9703..766385869e 100644 --- a/foundations/core/packages/api-client/src/rest/rest.ts +++ b/foundations/core/packages/api-client/src/rest/rest.ts @@ -59,18 +59,18 @@ import { getWorkspaceToken } from '../utils' import type { EnsurePersonOptions, RestClient } from './types' import { extractJson, withRetry } from './utils' -export function createRestClient (endpoint: string, workspaceId: string, token: string): RestClient { +export function createRestClient(endpoint: string, workspaceId: string, token: string): RestClient { return new RestClientImpl(endpoint, workspaceId, token) } -export async function connectRest (url: string, options: AuthOptions): Promise { +export async function connectRest(url: string, options: AuthOptions): Promise { const { endpoint, token, workspaceId } = await getWorkspaceToken(url, options) return createRestClient(endpoint, workspaceId, token) } const rateLimitError = 'rate-limit' -function isRLE (err: any): boolean { +function isRLE(err: any): boolean { return err.message === rateLimitError } @@ -78,11 +78,11 @@ export class RestClientImpl implements RestClient { endpoint: string slowDownTimer = 0 - currentRateLimit: { remaining: number, limit: number } = { remaining: 1000, limit: 1000 } + currentRateLimit: { remaining: number; limit: number } = { remaining: 1000, limit: 1000 } remaining: number = 1000 limit: number = 1000 - constructor ( + constructor( endpoint: string, readonly workspace: string, readonly token: string @@ -90,7 +90,7 @@ export class RestClientImpl implements RestClient { this.endpoint = endpoint.replace('ws', 'http') } - jsonHeaders (): Record { + jsonHeaders(): Record { return { 'Content-Type': 'application/json', Authorization: 'Bearer ' + this.token, @@ -98,7 +98,7 @@ export class RestClientImpl implements RestClient { } } - requestInit (): RequestInit { + requestInit(): RequestInit { return { method: 'GET', keepalive: true, @@ -258,13 +258,13 @@ export class RestClientImpl implements RestClient { } } - private updateRateLimit (response: Response): void { + private updateRateLimit(response: Response): void { const rateLimitLimit: number = parseInt(response.headers.get('X-RateLimit-Limit') ?? '100') const remaining: number = parseInt(response.headers.get('X-RateLimit-Remaining') ?? '100') this.currentRateLimit = { remaining, limit: rateLimitLimit } } - private async checkRateLimits (response: Response): Promise { + private async checkRateLimits(response: Response): Promise { if (response.status === 429) { // Extract rate limit information from headers const retryAfter = response.headers.get('Retry-After') @@ -284,7 +284,7 @@ export class RestClientImpl implements RestClient { } } - async getAccount (): Promise { + async getAccount(): Promise { const requestUrl = concatLink(this.endpoint, `/api/v1/account/${this.workspace}`) await this.checkRate() const result = await withRetry(async () => { @@ -302,13 +302,13 @@ export class RestClientImpl implements RestClient { return result } - async getModel (full: boolean = false): Promise<{ hierarchy: Hierarchy, model: ModelDb }> { + async getModel(full: boolean = false): Promise<{ hierarchy: Hierarchy; model: ModelDb }> { const requestUrl = new URL(concatLink(this.endpoint, `/api/v1/load-model/${this.workspace}`)) if (full) { requestUrl.searchParams.append('full', 'true') } await this.checkRate() - const result = await withRetry<{ hierarchy: Hierarchy, model: ModelDb, error?: Status }>(async () => { + const result = await withRetry<{ hierarchy: Hierarchy; model: ModelDb; error?: Status }>(async () => { const response = await fetch(requestUrl, this.requestInit()) if (!response.ok) { await this.checkRateLimits(response) @@ -340,7 +340,7 @@ export class RestClientImpl implements RestClient { return (await this.findAll(_class, query, { ...options, limit: 1 })).shift() } - async tx (tx: Tx): Promise { + async tx(tx: Tx): Promise { const requestUrl = concatLink(this.endpoint, `/api/v1/tx/${this.workspace}`) await this.checkRate() const result = await withRetry(async () => { @@ -363,7 +363,7 @@ export class RestClientImpl implements RestClient { return result } - async searchFulltext (query: SearchQuery, options: SearchOptions): Promise { + async searchFulltext(query: SearchQuery, options: SearchOptions): Promise { const result = await withRetry(async () => { const params = new URLSearchParams() params.append('query', query.query) @@ -420,13 +420,13 @@ export class RestClientImpl implements RestClient { }, isRLE) } - async ensurePerson ( + async ensurePerson( socialType: SocialIdType, socialValue: string, firstName: string, lastName: string, options?: EnsurePersonOptions - ): Promise<{ uuid: PersonUuid, socialId: PersonId, localPerson: string }> { + ): Promise<{ uuid: PersonUuid; socialId: PersonId; localPerson: string }> { const requestUrl = concatLink(this.endpoint, `/api/v1/ensure-person/${this.workspace}`) await this.checkRate() const result = await withRetry(async () => { @@ -447,7 +447,7 @@ export class RestClientImpl implements RestClient { throw new PlatformError(unknownError(response.statusText)) } this.updateRateLimit(response) - return await extractJson<{ uuid: PersonUuid, socialId: PersonId, localPerson: string }>(response) + return await extractJson<{ uuid: PersonUuid; socialId: PersonId; localPerson: string }>(response) }, isRLE) if (result.error !== undefined) { throw new PlatformError(result.error) @@ -458,7 +458,7 @@ export class RestClientImpl implements RestClient { private async v1op(op: string, data: any): Promise

{ const requestUrl = concatLink(this.endpoint, `/api/v1/${op}/${this.workspace}`) await this.checkRate() - const result = await withRetry<{ result?: Ref, error?: Status }>(async () => { + const result = await withRetry<{ result?: Ref; error?: Status }>(async () => { const response = await fetch(requestUrl, { method: 'POST', headers: this.jsonHeaders(), diff --git a/foundations/core/packages/api-client/src/rest/tx.ts b/foundations/core/packages/api-client/src/rest/tx.ts index 592b16ade0..5efe321f39 100644 --- a/foundations/core/packages/api-client/src/rest/tx.ts +++ b/foundations/core/packages/api-client/src/rest/tx.ts @@ -42,7 +42,7 @@ import { } from '@hcengineering/core' import { RestClientImpl } from './rest' -export async function createRestTxOperations ( +export async function createRestTxOperations( endpoint: string, workspaceId: string, token: string, @@ -57,14 +57,14 @@ export async function createRestTxOperations ( } class RestTxClient implements Client { - constructor ( + constructor( readonly client: RestClientImpl, readonly hierarchy: Hierarchy, readonly model: ModelDb, readonly account: Account ) {} - close (): Promise { + close(): Promise { return Promise.resolve() } @@ -134,15 +134,15 @@ class RestTxClient implements Client { getHierarchy: () => Hierarchy = () => this.hierarchy getModel: () => ModelDb = () => this.model - async getAccount (): Promise { + async getAccount(): Promise { return this.account } - async tx (tx: Tx): Promise { + async tx(tx: Tx): Promise { return await this.client.tx(tx) } - async searchFulltext (query: SearchQuery, options: SearchOptions): Promise { + async searchFulltext(query: SearchQuery, options: SearchOptions): Promise { return await this.client.searchFulltext(query, options) } } diff --git a/foundations/core/packages/api-client/src/rest/types.ts b/foundations/core/packages/api-client/src/rest/types.ts index ec921ca383..9a552cdb4b 100644 --- a/foundations/core/packages/api-client/src/rest/types.ts +++ b/foundations/core/packages/api-client/src/rest/types.ts @@ -82,7 +82,7 @@ export interface RestClient extends Storage, FulltextStorage { firstName: string, lastName: string, options?: EnsurePersonOptions - ) => Promise<{ uuid: PersonUuid, socialId: PersonId, localPerson: string }> + ) => Promise<{ uuid: PersonUuid; socialId: PersonId; localPerson: string }> createDoc: ( _class: Ref>, diff --git a/foundations/core/packages/api-client/src/rest/utils.ts b/foundations/core/packages/api-client/src/rest/utils.ts index 8b098ac7e5..466f5ec467 100644 --- a/foundations/core/packages/api-client/src/rest/utils.ts +++ b/foundations/core/packages/api-client/src/rest/utils.ts @@ -1,6 +1,6 @@ import { uncompress } from 'snappyjs' -export async function withRetry (fn: () => Promise, ignoreAttemptCheck?: (err: any) => boolean): Promise { +export async function withRetry(fn: () => Promise, ignoreAttemptCheck?: (err: any) => boolean): Promise { const maxRetries = 3 let lastError: any @@ -23,7 +23,7 @@ export async function withRetry (fn: () => Promise, ignoreAttemptCheck?: ( throw lastError } -function rpcJSONReceiver (key: string, value: any): any { +function rpcJSONReceiver(key: string, value: any): any { if (typeof value === 'object' && value !== null) { if (value.dataType === 'TotalArray') { return Object.assign(value.value, { total: value.total, lookupMap: value.lookupMap }) @@ -32,7 +32,7 @@ function rpcJSONReceiver (key: string, value: any): any { return value } -export async function extractJson (response: Response): Promise { +export async function extractJson(response: Response): Promise { const encoding = response.headers.get('content-encoding') if (encoding === 'snappy') { const buffer = await response.arrayBuffer() diff --git a/foundations/core/packages/api-client/src/socket/node.ts b/foundations/core/packages/api-client/src/socket/node.ts index 5b8285e3db..175561a3d8 100644 --- a/foundations/core/packages/api-client/src/socket/node.ts +++ b/foundations/core/packages/api-client/src/socket/node.ts @@ -30,7 +30,7 @@ export const NodeWebSocketFactory: ClientSocketFactory = (url: string): ClientSo const ws = new WebSocket(url) const client: ClientSocket = { - get readyState (): number { + get readyState(): number { return ws.readyState }, diff --git a/foundations/core/packages/api-client/src/storage/client.ts b/foundations/core/packages/api-client/src/storage/client.ts index 025d7d8ac5..1d8d40f1ae 100644 --- a/foundations/core/packages/api-client/src/storage/client.ts +++ b/foundations/core/packages/api-client/src/storage/client.ts @@ -45,7 +45,7 @@ type BlobUploadResult = BlobUploadSuccess | BlobUploadError export class StorageClientImpl implements StorageClient { private readonly headers: Record - constructor ( + constructor( readonly filesUrl: string, readonly uploadUrl: string, token: string, @@ -56,11 +56,11 @@ export class StorageClientImpl implements StorageClient { } } - getObjectUrl (objectName: string): string { + getObjectUrl(objectName: string): string { return this.filesUrl.replace(':filename', objectName).replace(':blobId', objectName) } - async stat (objectName: string): Promise { + async stat(objectName: string): Promise { const url = this.getObjectUrl(objectName) let response try { @@ -88,7 +88,7 @@ export class StorageClientImpl implements StorageClient { } } - async get (objectName: string): Promise { + async get(objectName: string): Promise { const url = this.getObjectUrl(objectName) const response = await wrappedFetch(url, { headers: { ...this.headers } }) @@ -99,7 +99,7 @@ export class StorageClientImpl implements StorageClient { return Readable.from(response.body) } - async put (objectName: string, stream: Readable | Buffer | string, contentType: string, size?: number): Promise { + async put(objectName: string, stream: Readable | Buffer | string, contentType: string, size?: number): Promise { const buffer = await toBuffer(stream) const file = new File([new Uint8Array(buffer)], objectName, { type: contentType }) const formData = new FormData() @@ -138,7 +138,7 @@ export class StorageClientImpl implements StorageClient { } } - async partial (objectName: string, offset: number, length?: number): Promise { + async partial(objectName: string, offset: number, length?: number): Promise { const url = this.getObjectUrl(objectName) const response = await wrappedFetch(url, { @@ -154,7 +154,7 @@ export class StorageClientImpl implements StorageClient { return Readable.from(response.body) } - async remove (objectName: string): Promise { + async remove(objectName: string): Promise { const url = this.getObjectUrl(objectName) await wrappedFetch(url, { method: 'DELETE', @@ -163,7 +163,7 @@ export class StorageClientImpl implements StorageClient { } } -async function toBuffer (data: Buffer | string | Readable): Promise { +async function toBuffer(data: Buffer | string | Readable): Promise { if (Buffer.isBuffer(data)) { return data } else if (typeof data === 'string') { @@ -179,7 +179,7 @@ async function toBuffer (data: Buffer | string | Readable): Promise { } } -async function wrappedFetch (url: string | URL, init?: RequestInit): Promise { +async function wrappedFetch(url: string | URL, init?: RequestInit): Promise { let response: Response try { response = await fetch(url, init) @@ -197,7 +197,7 @@ async function wrappedFetch (url: string | URL, init?: RequestInit): Promise { +export async function connectStorage(url: string, options: AuthOptions, config?: ServerConfig): Promise { config ??= await loadServerConfig(url) const token = await getWorkspaceToken(url, options, config) const filesUrl = (config.FILES_URL.startsWith('/') ? concatLink(url, config.FILES_URL) : config.FILES_URL).replace( diff --git a/foundations/core/packages/api-client/src/storage/error.ts b/foundations/core/packages/api-client/src/storage/error.ts index 2e5d98590d..207275ad58 100644 --- a/foundations/core/packages/api-client/src/storage/error.ts +++ b/foundations/core/packages/api-client/src/storage/error.ts @@ -14,21 +14,21 @@ // export class NetworkError extends Error { - constructor (message: string) { + constructor(message: string) { super(message) this.name = 'NetworkError' } } export class StorageError extends Error { - constructor (message: string) { + constructor(message: string) { super(message) this.name = 'StorageError' } } export class NotFoundError extends StorageError { - constructor (message = 'Not Found') { + constructor(message = 'Not Found') { super(message) this.name = 'NotFoundError' } diff --git a/foundations/core/packages/api-client/src/types.ts b/foundations/core/packages/api-client/src/types.ts index 086d7af464..607e98145f 100644 --- a/foundations/core/packages/api-client/src/types.ts +++ b/foundations/core/packages/api-client/src/types.ts @@ -47,9 +47,9 @@ type WithPropertyType = { /** @public */ export type WithMarkup = WithPropertyType< -WithPropertyType, -CollaborativeDoc, -MarkupContent + WithPropertyType, + CollaborativeDoc, + MarkupContent > /** @@ -65,11 +65,11 @@ export type PlatformClient = { close: () => Promise } & FindOperations & -DocOperations & -CollectionOperations & -MixinOperations & -MarkupOperations & -AsyncDisposable + DocOperations & + CollectionOperations & + MixinOperations & + MarkupOperations & + AsyncDisposable /** * @public diff --git a/foundations/core/packages/api-client/src/utils.ts b/foundations/core/packages/api-client/src/utils.ts index 0d6efe5f3c..99b65d5cdc 100644 --- a/foundations/core/packages/api-client/src/utils.ts +++ b/foundations/core/packages/api-client/src/utils.ts @@ -25,7 +25,7 @@ export interface WorkspaceToken { info: WorkspaceLoginInfo } -export async function getWorkspaceToken ( +export async function getWorkspaceToken( url: string, options: AuthOptions, config?: ServerConfig diff --git a/foundations/core/packages/client-resources/src/__tests__/connection.test.ts b/foundations/core/packages/client-resources/src/__tests__/connection.test.ts index 7fb4f195be..bf1ffda707 100644 --- a/foundations/core/packages/client-resources/src/__tests__/connection.test.ts +++ b/foundations/core/packages/client-resources/src/__tests__/connection.test.ts @@ -30,7 +30,7 @@ class MockCloseEvent { readonly type: string readonly code: number - constructor (type: string, init?: { code?: number }) { + constructor(type: string, init?: { code?: number }) { this.type = type this.code = init?.code ?? 1000 } @@ -42,7 +42,7 @@ class MockMessageEvent { readonly type: string readonly data: any - constructor (type: string, init: { data: any }) { + constructor(type: string, init: { data: any }) { this.type = type this.data = init.data } @@ -53,7 +53,7 @@ class MockMessageEvent { class MockEvent { readonly type: string - constructor (type: string) { + constructor(type: string) { this.type = type } } @@ -71,7 +71,7 @@ class MockWebSocket implements ClientSocket { private closeCode?: number private timers: any[] = [] - constructor (public url: string) { + constructor(public url: string) { // Simulate async connection const timer = setTimeout(() => { if (this.readyState === ClientSocketReadyState.CLOSED) { @@ -87,14 +87,14 @@ class MockWebSocket implements ClientSocket { this.timers.push(timer) } - clearAllTimers (): void { + clearAllTimers(): void { for (const timer of this.timers) { clearTimeout(timer) } this.timers = [] } - send (data: string | ArrayBufferLike | Blob | ArrayBufferView): void { + send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void { if (this.readyState !== ClientSocketReadyState.OPEN) { throw new Error('WebSocket is not open') } @@ -170,7 +170,7 @@ class MockWebSocket implements ClientSocket { } } - close (code?: number): void { + close(code?: number): void { this.closeCode = code this.readyState = ClientSocketReadyState.CLOSING this.clearAllTimers() @@ -184,7 +184,7 @@ class MockWebSocket implements ClientSocket { } // Helper method to simulate receiving messages - simulateMessage (data: string | ArrayBuffer): void { + simulateMessage(data: string | ArrayBuffer): void { if (this.readyState === ClientSocketReadyState.OPEN) { if (this.onmessage !== null && this.onmessage !== undefined) { const event = new MockMessageEvent('message', { data }) @@ -195,7 +195,7 @@ class MockWebSocket implements ClientSocket { } } - private processQueue (): void { + private processQueue(): void { while (this.messageQueue.length > 0) { const data = this.messageQueue.shift() this.simulateMessage(data) @@ -203,7 +203,7 @@ class MockWebSocket implements ClientSocket { } // Helper to simulate server-initiated transactions - simulateTransaction (tx: Tx): void { + simulateTransaction(tx: Tx): void { const message = { result: { _class: 'core:class:TxNotification', diff --git a/foundations/core/packages/client-resources/src/__tests__/integration.test.ts b/foundations/core/packages/client-resources/src/__tests__/integration.test.ts index c0f6b2642e..876550e2c5 100644 --- a/foundations/core/packages/client-resources/src/__tests__/integration.test.ts +++ b/foundations/core/packages/client-resources/src/__tests__/integration.test.ts @@ -54,12 +54,12 @@ import type { IntlString } from '@hcengineering/platform' const txFactory = new TxFactory(core.account.System) -function createClass (_class: Ref>, attributes: Data>): TxCreateDoc { +function createClass(_class: Ref>, attributes: Data>): TxCreateDoc { return txFactory.createTxCreateDoc(core.class.Class, core.space.Model, attributes, _class) } // Generate minimal model for testing -function generateMinimalModel (): Tx[] { +function generateMinimalModel(): Tx[] { const txes: Tx[] = [] txes.push(createClass(core.class.Obj, { label: 'Obj' as IntlString, kind: ClassifierKind.CLASS })) @@ -138,7 +138,7 @@ export class MockClientConnection implements ClientConnection { onConnect?: (event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise getLastHash?: () => Promise - constructor (txes: Tx[] = []) { + constructor(txes: Tx[] = []) { const minimalModel = txes.length === 0 ? generateMinimalModel() : txes this.hierarchy = new Hierarchy() @@ -155,15 +155,15 @@ export class MockClientConnection implements ClientConnection { } } - isConnected (): boolean { + isConnected(): boolean { return this._connected } - setConnected (value: boolean): void { + setConnected(value: boolean): void { this._connected = value } - pushHandler (handler: TxHandler): void { + pushHandler(handler: TxHandler): void { this.handlers.push(handler) } @@ -175,11 +175,11 @@ export class MockClientConnection implements ClientConnection { return await this.model.findAll(_class, query, options) } - async searchFulltext (query: SearchQuery, options: SearchOptions): Promise { + async searchFulltext(query: SearchQuery, options: SearchOptions): Promise { return { docs: [] } } - async tx (tx: Tx): Promise { + async tx(tx: Tx): Promise { if (tx.objectSpace === core.space.Model) { this.hierarchy.tx(tx) await this.model.tx(tx) @@ -193,7 +193,7 @@ export class MockClientConnection implements ClientConnection { return {} } - async loadModel (last: Timestamp, hash?: string): Promise { + async loadModel(last: Timestamp, hash?: string): Promise { const txes = await this.transactions.findAll(core.class.Tx, { objectSpace: core.space.Model, modifiedOn: { $gt: last } @@ -209,11 +209,11 @@ export class MockClientConnection implements ClientConnection { return txes } - async close (): Promise { + async close(): Promise { this._connected = false } - async loadChunk (domain: Domain, idx?: number): Promise { + async loadChunk(domain: Domain, idx?: number): Promise { return { idx: idx ?? 0, docs: [], @@ -221,23 +221,23 @@ export class MockClientConnection implements ClientConnection { } } - async getDomainHash (domain: Domain): Promise { + async getDomainHash(domain: Domain): Promise { return 'test-hash' } - async closeChunk (idx: number): Promise {} + async closeChunk(idx: number): Promise {} - async loadDocs (domain: Domain, docs: Ref[]): Promise { + async loadDocs(domain: Domain, docs: Ref[]): Promise { return [] } - async upload (domain: Domain, docs: Doc[]): Promise {} + async upload(domain: Domain, docs: Doc[]): Promise {} - async clean (domain: Domain, docs: Ref[]): Promise {} + async clean(domain: Domain, docs: Ref[]): Promise {} - async sendForceClose (): Promise {} + async sendForceClose(): Promise {} - async domainRequest ( + async domainRequest( ctx: OperationDomain, params: DomainParams, options?: DomainRequestOptions @@ -245,13 +245,13 @@ export class MockClientConnection implements ClientConnection { return { domain: ctx, value: null } } - simulateTransaction (tx: Tx): void { + simulateTransaction(tx: Tx): void { this.handlers.forEach((h) => { h(tx) }) } - async simulateConnect (event: ClientConnectEvent = ClientConnectEvent.Connected): Promise { + async simulateConnect(event: ClientConnectEvent = ClientConnectEvent.Connected): Promise { if (this.onConnect !== undefined) { await this.onConnect(event, undefined, {}) } @@ -261,7 +261,7 @@ export class MockClientConnection implements ClientConnection { /** * Create a test client with mock connection */ -export async function createTestClient (initialTxes: Tx[] = []): Promise<{ +export async function createTestClient(initialTxes: Tx[] = []): Promise<{ client: Client connection: MockClientConnection close: () => Promise @@ -285,7 +285,7 @@ export async function createTestClient (initialTxes: Tx[] = []): Promise<{ /** * Helper to create a test transaction */ -export function createTestTx (objectClass: Ref> = core.class.Space, attributes: any = {}): TxCreateDoc { +export function createTestTx(objectClass: Ref> = core.class.Space, attributes: any = {}): TxCreateDoc { return { _id: generateId(), _class: core.class.TxCreateDoc, diff --git a/foundations/core/packages/client-resources/src/connection.ts b/foundations/core/packages/client-resources/src/connection.ts index d1757cff4d..a5aef43c45 100644 --- a/foundations/core/packages/client-resources/src/connection.ts +++ b/foundations/core/packages/client-resources/src/connection.ts @@ -93,7 +93,7 @@ class RequestPromise { // Required to properly handle rate limits sendData: () => void = () => {} - constructor ( + constructor( readonly method: string, readonly params: any[], @@ -105,7 +105,7 @@ class RequestPromise { }) } - chunks?: { index: number, data: FindResult }[] + chunks?: { index: number; data: FindResult }[] } const globalRPCHandler: RPCHandler = new RPCHandler() @@ -150,7 +150,7 @@ class Connection implements ClientConnection { handlers: TxHandler[] = [] - constructor ( + constructor( private readonly ctx: MeasureContext, private readonly url: string, handler: TxHandler, @@ -185,7 +185,7 @@ class Connection implements ClientConnection { this.scheduleOpen(this.ctx, false) } - private installVisibilityHandler (): void { + private installVisibilityHandler(): void { if (typeof document === 'undefined') return this.visibilityHandler = () => { if (this.closed) return @@ -238,16 +238,16 @@ class Connection implements ClientConnection { document.addEventListener('visibilitychange', this.visibilityHandler) } - pushHandler (handler: TxHandler): void { + pushHandler(handler: TxHandler): void { this.handlers.push(handler) } - async getLastHash (ctx: MeasureContext): Promise { + async getLastHash(ctx: MeasureContext): Promise { await this.waitOpenConnection(ctx) return this.lastHash } - private schedulePing (socketId: number): void { + private schedulePing(socketId: number): void { this.pingResponse = platformNow() const wsocket = this.websocket @@ -302,7 +302,7 @@ class Connection implements ClientConnection { }, pingTimeout) } - async close (): Promise { + async close(): Promise { this.closed = true clearTimeout(this.openAction) clearTimeout(this.dialTimer) @@ -323,14 +323,14 @@ class Connection implements ClientConnection { } } - isConnected (): boolean { + isConnected(): boolean { return this.websocket != null && this.websocket.readyState === ClientSocketReadyState.OPEN && this.helloReceived } delay = 0 onConnectHandlers: OnConnectHandler[] = [] - private waitOpenConnection (ctx: MeasureContext): Promise | undefined { + private waitOpenConnection(ctx: MeasureContext): Promise | undefined { if (this.isConnected()) { return undefined } @@ -350,7 +350,7 @@ class Connection implements ClientConnection { ) } - scheduleOpen (ctx: MeasureContext, force: boolean): void { + scheduleOpen(ctx: MeasureContext, force: boolean): void { if (force) { ctx.withSync('close-ws', {}, () => { if (this.websocket !== null) { @@ -381,10 +381,10 @@ class Connection implements ClientConnection { currentRateLimit: RateLimitInfo | undefined slowDownTimer = 0 - handleMsg ( + handleMsg( socketId: number, resp: Response, - sizes: { compressedSize: number, uncompressedSize: number } = { compressedSize: 0, uncompressedSize: 0 } + sizes: { compressedSize: number; uncompressedSize: number } = { compressedSize: 0, uncompressedSize: 0 } ): void { if (this.closed) { return @@ -621,7 +621,7 @@ class Connection implements ClientConnection { } } - checkArrayBufferPing (data: ArrayBuffer): boolean { + checkArrayBufferPing(data: ArrayBuffer): boolean { if (data.byteLength === pingConst.length || data.byteLength === pongConst.length) { const text = new TextDecoder().decode(data) if (text === pingConst) { @@ -638,7 +638,7 @@ class Connection implements ClientConnection { return false } - private openConnection (ctx: MeasureContext, socketId: number): void { + private openConnection(ctx: MeasureContext, socketId: number): void { this.binaryMode = false this.helloReceived = false // Use defined factory or browser default one. @@ -795,7 +795,7 @@ class Connection implements ClientConnection { } } - private sendRequest (data: { + private sendRequest(data: { method: string params: any[] // If not defined, on reconnect with timeout, will retry automatically. @@ -885,11 +885,11 @@ class Connection implements ClientConnection { ) } - loadModel (last: Timestamp, hash?: string): Promise { + loadModel(last: Timestamp, hash?: string): Promise { return this.sendRequest({ method: 'loadModel', params: [last, hash] }) } - getAccount (): Promise { + getAccount(): Promise { if (this.account !== undefined) { return Promise.resolve(clone(this.account)) } @@ -1015,35 +1015,35 @@ class Connection implements ClientConnection { }) } - loadChunk (domain: Domain, idx?: number): Promise { + loadChunk(domain: Domain, idx?: number): Promise { return this.sendRequest({ method: 'loadChunk', params: [domain, idx] }) } - async getDomainHash (domain: Domain): Promise { + async getDomainHash(domain: Domain): Promise { return await this.sendRequest({ method: 'getDomainHash', params: [domain] }) } - closeChunk (idx: number): Promise { + closeChunk(idx: number): Promise { return this.sendRequest({ method: 'closeChunk', params: [idx] }) } - loadDocs (domain: Domain, docs: Ref[]): Promise { + loadDocs(domain: Domain, docs: Ref[]): Promise { return this.sendRequest({ method: 'loadDocs', params: [domain, docs] }) } - upload (domain: Domain, docs: Doc[]): Promise { + upload(domain: Domain, docs: Doc[]): Promise { return this.sendRequest({ method: 'upload', params: [domain, docs] }) } - clean (domain: Domain, docs: Ref[]): Promise { + clean(domain: Domain, docs: Ref[]): Promise { return this.sendRequest({ method: 'clean', params: [domain, docs] }) } - searchFulltext (query: SearchQuery, options: SearchOptions): Promise { + searchFulltext(query: SearchQuery, options: SearchOptions): Promise { return this.sendRequest({ method: 'searchFulltext', params: [query, options] }) } - domainRequest (domain: OperationDomain, params: DomainParams, options?: DomainRequestOptions): Promise { + domainRequest(domain: OperationDomain, params: DomainParams, options?: DomainRequestOptions): Promise { return this.sendRequest({ method: 'domainRequest', params: [domain, params], @@ -1053,7 +1053,7 @@ class Connection implements ClientConnection { }) } - sendForceClose (): Promise { + sendForceClose(): Promise { return this.sendRequest({ method: 'forceClose', params: [], allowReconnect: false, overrideId: -2, once: true }) } } @@ -1061,7 +1061,7 @@ class Connection implements ClientConnection { /** * @public */ -export function connect ( +export function connect( url: string, handler: TxHandler, workspace: WorkspaceUuid, diff --git a/foundations/core/packages/client-resources/src/index.ts b/foundations/core/packages/client-resources/src/index.ts index 9d126e8987..daa457e3cf 100644 --- a/foundations/core/packages/client-resources/src/index.ts +++ b/foundations/core/packages/client-resources/src/index.ts @@ -83,7 +83,7 @@ interface TokenPayload { /** * @public */ -function decodeTokenPayload (token: string): TokenPayload { +function decodeTokenPayload(token: string): TokenPayload { try { return JSON.parse(atob(token.split('.')[1])) } catch (err: any) { @@ -182,7 +182,7 @@ export default async () => { } } } -function returnUITxes (txes: Tx[], extraFilter: string[]): Tx[] { +function returnUITxes(txes: Tx[], extraFilter: string[]): Tx[] { const configs = new Map, PluginConfiguration>() fillConfiguration(txes, configs) @@ -193,7 +193,7 @@ function returnUITxes (txes: Tx[], extraFilter: string[]): Tx[] { return pluginFilterTx(excludedPlugins, configs, txes) } -function returnClientTxes (txes: Tx[]): Tx[] { +function returnClientTxes(txes: Tx[]): Tx[] { const configs = new Map, PluginConfiguration>() fillConfiguration(txes, configs) const excludedPlugins = Array.from(configs.values()).filter((it) => !it.enabled || it.pluginId.startsWith('server-')) @@ -240,7 +240,7 @@ function returnClientTxes (txes: Tx[]): Tx[] { return result } -function createModelPersistence (workspace: string): TxPersistenceStore | undefined { +function createModelPersistence(workspace: string): TxPersistenceStore | undefined { const overrideStore = getMetadata(clientPlugin.metadata.OverridePersistenceStore) if (overrideStore !== undefined) { return overrideStore @@ -253,8 +253,8 @@ function createModelPersistence (workspace: string): TxPersistenceStore | undefi try { const transaction = db.transaction('model', 'readwrite') // (1) const models = transaction.objectStore('model') // (2) - const model = await new Promise<{ id: string, model: LoadModelResponse } | undefined>((resolve) => { - const storedValue: IDBRequest<{ id: string, model: LoadModelResponse }> = models.get(workspace) + const model = await new Promise<{ id: string; model: LoadModelResponse } | undefined>((resolve) => { + const storedValue: IDBRequest<{ id: string; model: LoadModelResponse }> = models.get(workspace) storedValue.onsuccess = function () { resolve(storedValue.result) } @@ -292,7 +292,7 @@ function createModelPersistence (workspace: string): TxPersistenceStore | undefi } } -function getWSFromToken (token: string): string { +function getWSFromToken(token: string): string { const parts = token.split('.') const payload = parts[1] diff --git a/foundations/core/packages/client/src/__tests__/client.test.ts b/foundations/core/packages/client/src/__tests__/client.test.ts index 8e71ac8fb6..9db1c05c78 100644 --- a/foundations/core/packages/client/src/__tests__/client.test.ts +++ b/foundations/core/packages/client/src/__tests__/client.test.ts @@ -56,12 +56,12 @@ import type { IntlString } from '@hcengineering/platform' const txFactory = new TxFactory(core.account.System) -function createClass (_class: Ref>, attributes: Data>): TxCreateDoc { +function createClass(_class: Ref>, attributes: Data>): TxCreateDoc { return txFactory.createTxCreateDoc(core.class.Class, core.space.Model, attributes, _class) } // Minimal model for testing - similar to query tests -function generateMinimalModel (): Tx[] { +function generateMinimalModel(): Tx[] { const txes: Tx[] = [] // Fill Tx'es with basic model classes @@ -135,7 +135,7 @@ class TestConnection implements ClientConnection { onConnect?: (event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise getLastHash?: () => Promise - constructor (txes: Tx[]) { + constructor(txes: Tx[]) { this.hierarchy = new Hierarchy() for (const tx of txes) { this.hierarchy.tx(tx) @@ -149,15 +149,15 @@ class TestConnection implements ClientConnection { } } - isConnected (): boolean { + isConnected(): boolean { return this._connected } - setConnected (value: boolean): void { + setConnected(value: boolean): void { this._connected = value } - pushHandler (handler: TxHandler): void { + pushHandler(handler: TxHandler): void { this.handlers.push(handler) } @@ -173,11 +173,11 @@ class TestConnection implements ClientConnection { return await this.model.findAll(_class, query, options) } - async searchFulltext (query: SearchQuery, options: SearchOptions): Promise { + async searchFulltext(query: SearchQuery, options: SearchOptions): Promise { return { docs: [] } } - async tx (tx: Tx): Promise { + async tx(tx: Tx): Promise { if (tx.objectSpace === core.space.Model) { this.hierarchy.tx(tx) await this.model.tx(tx) @@ -192,7 +192,7 @@ class TestConnection implements ClientConnection { return {} } - async loadModel (last: Timestamp, hash?: string): Promise { + async loadModel(last: Timestamp, hash?: string): Promise { const txes = await this.transactions.findAll(core.class.Tx, { objectSpace: core.space.Model, modifiedOn: { $gt: last } @@ -209,11 +209,11 @@ class TestConnection implements ClientConnection { return txes } - async close (): Promise { + async close(): Promise { this._connected = false } - async loadChunk (domain: Domain, idx?: number): Promise { + async loadChunk(domain: Domain, idx?: number): Promise { return { idx: idx ?? 0, docs: [], @@ -221,23 +221,23 @@ class TestConnection implements ClientConnection { } } - async getDomainHash (domain: Domain): Promise { + async getDomainHash(domain: Domain): Promise { return 'test-hash' } - async closeChunk (idx: number): Promise {} + async closeChunk(idx: number): Promise {} - async loadDocs (domain: Domain, docs: Ref[]): Promise { + async loadDocs(domain: Domain, docs: Ref[]): Promise { return [] } - async upload (domain: Domain, docs: Doc[]): Promise {} + async upload(domain: Domain, docs: Doc[]): Promise {} - async clean (domain: Domain, docs: Ref[]): Promise {} + async clean(domain: Domain, docs: Ref[]): Promise {} - async sendForceClose (): Promise {} + async sendForceClose(): Promise {} - async domainRequest ( + async domainRequest( ctx: OperationDomain, params: DomainParams, options?: DomainRequestOptions @@ -246,7 +246,7 @@ class TestConnection implements ClientConnection { } // Simulate receiving transactions from server - simulateTransaction (tx: Tx): void { + simulateTransaction(tx: Tx): void { this.handlers.forEach((h) => { h(tx) }) diff --git a/foundations/core/packages/collaborator-client/src/client.ts b/foundations/core/packages/collaborator-client/src/client.ts index 8cabaf1285..1e64fd965c 100644 --- a/foundations/core/packages/collaborator-client/src/client.ts +++ b/foundations/core/packages/collaborator-client/src/client.ts @@ -54,13 +54,13 @@ export interface CollaboratorClient { } /** @public */ -export function getClient (workspaceId: WorkspaceUuid, token: string, collaboratorUrl: string): CollaboratorClient { +export function getClient(workspaceId: WorkspaceUuid, token: string, collaboratorUrl: string): CollaboratorClient { const url = collaboratorUrl.replaceAll('wss://', 'https://').replace('ws://', 'http://') return new CollaboratorClientImpl(workspaceId, token, url) } class CollaboratorClientImpl implements CollaboratorClient { - constructor ( + constructor( private readonly workspace: WorkspaceUuid, private readonly token: string, private readonly collaboratorUrl: string @@ -94,7 +94,7 @@ class CollaboratorClientImpl implements CollaboratorClient { return result as R } - async getMarkup (document: CollaborativeDoc, source?: Ref | null): Promise { + async getMarkup(document: CollaborativeDoc, source?: Ref | null): Promise { const payload: GetContentRequest = { source: source !== null ? source : undefined } @@ -110,7 +110,7 @@ class CollaboratorClientImpl implements CollaboratorClient { return res.content[document.objectAttr] ?? '' } - async createMarkup (document: CollaborativeDoc, markup: Markup): Promise { + async createMarkup(document: CollaborativeDoc, markup: Markup): Promise { const content = { [document.objectAttr]: markup } @@ -126,7 +126,7 @@ class CollaboratorClientImpl implements CollaboratorClient { return res.content[document.objectAttr] } - async updateMarkup (document: CollaborativeDoc, markup: Markup): Promise { + async updateMarkup(document: CollaborativeDoc, markup: Markup): Promise { const content = { [document.objectAttr]: markup } @@ -140,13 +140,13 @@ class CollaboratorClientImpl implements CollaboratorClient { ) } - async copyContent (source: CollaborativeDoc, target: CollaborativeDoc, content?: Ref): Promise { + async copyContent(source: CollaborativeDoc, target: CollaborativeDoc, content?: Ref): Promise { const markup = await this.getMarkup(source, content) await this.updateMarkup(target, markup) } } -async function retry (retries: number, op: () => Promise, delay: number = 100): Promise { +async function retry(retries: number, op: () => Promise, delay: number = 100): Promise { let error: any while (retries > 0) { retries-- diff --git a/foundations/core/packages/collaborator-client/src/utils.ts b/foundations/core/packages/collaborator-client/src/utils.ts index f6225ba0aa..918ab3bcd2 100644 --- a/foundations/core/packages/collaborator-client/src/utils.ts +++ b/foundations/core/packages/collaborator-client/src/utils.ts @@ -16,13 +16,13 @@ import { Class, CollaborativeDoc, Doc, Ref } from '@hcengineering/core' /** @public */ -export function encodeDocumentId (workspaceId: string, documentId: CollaborativeDoc): string { +export function encodeDocumentId(workspaceId: string, documentId: CollaborativeDoc): string { const { objectClass, objectId, objectAttr } = documentId return [workspaceId, objectClass, objectId, objectAttr].join('|') } /** @public */ -export function decodeDocumentId (documentId: string): { +export function decodeDocumentId(documentId: string): { workspaceId: string documentId: CollaborativeDoc } { diff --git a/foundations/core/packages/hulylake-client/src/client.ts b/foundations/core/packages/hulylake-client/src/client.ts index af88ca5199..beab4d8dda 100644 --- a/foundations/core/packages/hulylake-client/src/client.ts +++ b/foundations/core/packages/hulylake-client/src/client.ts @@ -29,38 +29,38 @@ import { Body } from './types' -export function getWorkspaceClient (baseUrl: string, workspace: WorkspaceUuid, token: string): HulylakeWorkspaceClient { +export function getWorkspaceClient(baseUrl: string, workspace: WorkspaceUuid, token: string): HulylakeWorkspaceClient { const client = new Client(baseUrl, token) return new WorkspaceClient(client, workspace) } -export function getClient (baseUrl: string, token: string): HulylakeClient { +export function getClient(baseUrl: string, token: string): HulylakeClient { return new Client(baseUrl, token) } class WorkspaceClient implements HulylakeWorkspaceClient { - constructor ( + constructor( private readonly client: HulylakeClient, private readonly workspace: WorkspaceUuid ) {} - head (key: string, retryOptions?: RetryOptions): Promise> { + head(key: string, retryOptions?: RetryOptions): Promise> { return this.client.head(this.workspace, key, retryOptions) } - get (key: string, retryOptions?: RetryOptions): Promise>> { + get(key: string, retryOptions?: RetryOptions): Promise>> { return this.client.get(this.workspace, key, retryOptions) } - put (key: string, body: Body, opts: PutOptions, retryOptions?: RetryOptions): Promise> { + put(key: string, body: Body, opts: PutOptions, retryOptions?: RetryOptions): Promise> { return this.client.put(this.workspace, key, body, opts, retryOptions) } - patch (key: string, body: Body, opts: PatchOptions, retryOptions?: RetryOptions): Promise> { + patch(key: string, body: Body, opts: PatchOptions, retryOptions?: RetryOptions): Promise> { return this.client.patch(this.workspace, key, body, opts, retryOptions) } - delete (key: string, retryOptions?: RetryOptions): Promise> { + delete(key: string, retryOptions?: RetryOptions): Promise> { return this.client.delete(this.workspace, key, retryOptions) } @@ -79,7 +79,7 @@ class WorkspaceClient implements HulylakeWorkspaceClient { return await this.put(key, JSON.stringify(json), { ...options, mergeStrategy: 'jsonpatch' }, retryOptions) } - public async patchJson ( + public async patchJson( key: string, body: JsonPatch[], options?: Omit, @@ -95,28 +95,28 @@ class WorkspaceClient implements HulylakeWorkspaceClient { } class Client implements HulylakeClient { - constructor ( + constructor( private readonly baseUrl: string, private readonly token: string ) { this.baseUrl = this.baseUrl.endsWith('/') ? this.baseUrl.slice(0, -1) : this.baseUrl } - private authHeaders (init?: HeadersInit): Headers { + private authHeaders(init?: HeadersInit): Headers { const headers = new Headers(init) headers.set('Authorization', `Bearer ${this.token}`) return headers } - private applyHeaders (h: Headers, headers?: HulyHeaders): void { + private applyHeaders(h: Headers, headers?: HulyHeaders): void { if (headers != null) for (const [k, v] of Object.entries(headers)) h.set(`huly-header-${k}`, v) } - private applyMeta (h: Headers, meta?: HulyMeta): void { + private applyMeta(h: Headers, meta?: HulyMeta): void { if (meta != null) for (const [k, v] of Object.entries(meta)) h.set(`huly-meta-${k}`, v) } - public async status (): Promise { + public async status(): Promise { try { const res = await fetchSafe(`${this.baseUrl}/status`) return res.ok @@ -125,11 +125,11 @@ class Client implements HulylakeClient { } } - public objectUrl (workspace: string, key: string): string { + public objectUrl(workspace: string, key: string): string { return `${this.baseUrl}/api/${workspace}/${encodeURIComponent(key)}` } - public async head (workspace: string, key: string, retryOptions?: RetryOptions): Promise> { + public async head(workspace: string, key: string, retryOptions?: RetryOptions): Promise> { const res = await fetchSafe( this.objectUrl(workspace, key), { @@ -150,7 +150,7 @@ class Client implements HulylakeClient { } } - public async get ( + public async get( workspace: string, key: string, retryOptions?: RetryOptions @@ -189,7 +189,7 @@ class Client implements HulylakeClient { } } - public async partial ( + public async partial( workspace: string, key: string, offset: number, @@ -229,7 +229,7 @@ class Client implements HulylakeClient { } } - public async put ( + public async put( workspace: string, key: string, body: Body, @@ -283,7 +283,7 @@ class Client implements HulylakeClient { } } - public async patch ( + public async patch( workspace: string, key: string, body: Body, @@ -330,7 +330,7 @@ class Client implements HulylakeClient { } } - public async delete (workspace: string, key: string, retryOptions?: RetryOptions): Promise> { + public async delete(workspace: string, key: string, retryOptions?: RetryOptions): Promise> { const res = await fetchSafe( this.objectUrl(workspace, key), { diff --git a/foundations/core/packages/hulylake-client/src/error.ts b/foundations/core/packages/hulylake-client/src/error.ts index a26cbd711a..38e36c8ec1 100644 --- a/foundations/core/packages/hulylake-client/src/error.ts +++ b/foundations/core/packages/hulylake-client/src/error.ts @@ -14,14 +14,14 @@ // export class NetworkError extends Error { - constructor (message: string) { + constructor(message: string) { super(message) this.name = 'NetworkError' } } export class HulylakeError extends Error { - constructor (message: string) { + constructor(message: string) { super(message) this.name = 'HulylakeError' } diff --git a/foundations/core/packages/hulylake-client/src/types.ts b/foundations/core/packages/hulylake-client/src/types.ts index c9c53eb0d6..c5a3abb9f2 100644 --- a/foundations/core/packages/hulylake-client/src/types.ts +++ b/foundations/core/packages/hulylake-client/src/types.ts @@ -77,18 +77,18 @@ export type HulyMeta = Record export type PutOptions = | { - mergeStrategy?: 'concatenate' - contentLength?: number - contentType?: string - headers?: HulyHeaders - meta?: HulyMeta - } + mergeStrategy?: 'concatenate' + contentLength?: number + contentType?: string + headers?: HulyHeaders + meta?: HulyMeta + } | { - mergeStrategy: 'jsonpatch' - contentLength?: number - headers?: HulyHeaders - meta?: HulyMeta - } + mergeStrategy: 'jsonpatch' + contentLength?: number + headers?: HulyHeaders + meta?: HulyMeta + } export interface PatchOptions { contentLength?: number @@ -98,15 +98,15 @@ export interface PatchOptions { } export type JsonPatch = - | { op: 'add', path: string, value: any } - | { op: 'replace', path: string, value: any } - | { op: 'remove', path: string } - | { op: 'move', from: string, path: string } - | { op: 'copy', from: string, path: string } - | { op: 'test', path: string, value: any } - | { hop: 'add', path: string, value: any, safe?: boolean } - | { hop: 'inc', path: string, value: number, safe?: boolean } - | { hop: 'remove', path: string, safe?: boolean } + | { op: 'add'; path: string; value: any } + | { op: 'replace'; path: string; value: any } + | { op: 'remove'; path: string } + | { op: 'move'; from: string; path: string } + | { op: 'copy'; from: string; path: string } + | { op: 'test'; path: string; value: any } + | { hop: 'add'; path: string; value: any; safe?: boolean } + | { hop: 'inc'; path: string; value: number; safe?: boolean } + | { hop: 'remove'; path: string; safe?: boolean } export interface HulyResponse { ok: boolean diff --git a/foundations/core/packages/hulylake-client/src/utils.ts b/foundations/core/packages/hulylake-client/src/utils.ts index 1d93750e86..4322d2210c 100644 --- a/foundations/core/packages/hulylake-client/src/utils.ts +++ b/foundations/core/packages/hulylake-client/src/utils.ts @@ -16,7 +16,7 @@ import { RetryOptions, withRetry } from '@hcengineering/retry' import { HulylakeError, NetworkError } from './error' -async function innerFetchSafe (url: string | URL, init?: RequestInit): Promise { +async function innerFetchSafe(url: string | URL, init?: RequestInit): Promise { let response try { response = await fetch(url, init) @@ -37,14 +37,14 @@ async function innerFetchSafe (url: string | URL, init?: RequestInit): Promise { +export async function fetchSafe(url: string | URL, init?: RequestInit, retryOptions?: RetryOptions): Promise { if (retryOptions != null) { return await withRetry(async () => await innerFetchSafe(url, init), retryOptions) } return await innerFetchSafe(url, init) } -export function unwrapEtag (etag: string | null | undefined): string | undefined { +export function unwrapEtag(etag: string | null | undefined): string | undefined { if (etag == null) { return undefined } @@ -60,14 +60,14 @@ export function unwrapEtag (etag: string | null | undefined): string | undefined return etag } -export function unwrapContentLength (length: string | null | undefined): number | undefined { +export function unwrapContentLength(length: string | null | undefined): number | undefined { if (length == null) { return undefined } return parseInt(length, 10) } -export function unwrapLastModified (lastModified: string | null | undefined): number | undefined { +export function unwrapLastModified(lastModified: string | null | undefined): number | undefined { if (lastModified == null) { return undefined } diff --git a/foundations/core/packages/measurements-otlp/src/telemetry.ts b/foundations/core/packages/measurements-otlp/src/telemetry.ts index d8c7e71733..c37474e822 100644 --- a/foundations/core/packages/measurements-otlp/src/telemetry.ts +++ b/foundations/core/packages/measurements-otlp/src/telemetry.ts @@ -43,10 +43,10 @@ import { NodeSDK } from '@opentelemetry/sdk-node' import { BatchSpanProcessor } from '@opentelemetry/sdk-trace-node' class MetricsContext { - counters = new Map() - constructor (readonly meter?: Meter) {} + counters = new Map() + constructor(readonly meter?: Meter) {} - getCounter (name: string): { counter: Gauge, value: number } | undefined { + getCounter(name: string): { counter: Gauge; value: number } | undefined { if (this.meter === undefined) { return undefined } @@ -76,7 +76,7 @@ export class OpenTelemetryMetricsContext implements MeasureContext { isDone = false doneTrace: string = '' - private done (value?: number, override?: boolean): void { + private done(value?: number, override?: boolean): void { if (!this.isDone) { this.doneTrace = new Error().stack ?? '' this.isDone = true @@ -85,7 +85,7 @@ export class OpenTelemetryMetricsContext implements MeasureContext { } } - constructor ( + constructor( name: string, readonly tracer: Tracer, readonly context: Context | undefined, @@ -117,7 +117,7 @@ export class OpenTelemetryMetricsContext implements MeasureContext { this.logger = logger ?? (this.logParams != null ? consoleLogger(this.logParams ?? {}) : noParamsLogger) } - measure (name: string, value: number, override?: boolean): void { + measure(name: string, value: number, override?: boolean): void { const cnt = this.meter?.getCounter(name) if (cnt !== undefined) { if (cnt.value !== value) { @@ -127,7 +127,7 @@ export class OpenTelemetryMetricsContext implements MeasureContext { } } - newChild ( + newChild( name: string, params: ParamsType, opt?: { @@ -181,7 +181,7 @@ export class OpenTelemetryMetricsContext implements MeasureContext { return result } - extractMeta (): Record { + extractMeta(): Record { const headers: Record = {} if (this.context !== undefined) { propagation.inject(this.context, headers) @@ -265,7 +265,7 @@ export class OpenTelemetryMetricsContext implements MeasureContext { } } - error (message: string, args?: Record): void { + error(message: string, args?: Record): void { if (this.otlpLogger !== undefined) { this.otlpLogger.emit({ severityNumber: SeverityNumber.ERROR, @@ -281,7 +281,7 @@ export class OpenTelemetryMetricsContext implements MeasureContext { this.logger.error(message, { ...this.params, ...args, ...(this.logParams ?? {}) }) } - info (message: string, args?: Record): void { + info(message: string, args?: Record): void { if (this.otlpLogger !== undefined) { this.otlpLogger.emit({ context: this.context, @@ -297,7 +297,7 @@ export class OpenTelemetryMetricsContext implements MeasureContext { this.logger.info(message, { ...this.params, ...args, ...(this.logParams ?? {}) }) } - warn (message: string, args?: Record): void { + warn(message: string, args?: Record): void { if (this.otlpLogger !== undefined) { this.otlpLogger.emit({ severityNumber: SeverityNumber.WARN, @@ -313,7 +313,7 @@ export class OpenTelemetryMetricsContext implements MeasureContext { this.logger.warn(message, { ...this.params, ...args, ...(this.logParams ?? {}) }) } - debug (message: string, args?: Record): void { + debug(message: string, args?: Record): void { if (this.logLevel !== 'debug') return if (this.otlpLogger !== undefined) { this.otlpLogger.emit({ @@ -330,11 +330,11 @@ export class OpenTelemetryMetricsContext implements MeasureContext { this.logger.debug(message, { ...this.params, ...args, ...(this.logParams ?? {}) }) } - end (): void { + end(): void { this.done() } - getParams (): ParamsType { + getParams(): ParamsType { return this.params } } @@ -345,7 +345,7 @@ export class OpenTelemetryMetricsContext implements MeasureContext { * W3C baggage format: "key1=value1,key2=value2;property=value,key3=value3" * Returns only the key-value pairs, ignoring properties */ -function parseBaggage (baggageHeader?: string): Record { +function parseBaggage(baggageHeader?: string): Record { if (baggageHeader == null || typeof baggageHeader !== 'string') { return {} } @@ -393,7 +393,7 @@ let sdkServiceName: string | undefined let sdkServiceVersion: string | undefined let loggerProvider: LoggerProvider | undefined -export function initOpenTelemetrySDK (serviceName: string, version: string): boolean { +export function initOpenTelemetrySDK(serviceName: string, version: string): boolean { if (sdk !== undefined) { return true } @@ -501,7 +501,7 @@ export function initOpenTelemetrySDK (serviceName: string, version: string): boo return true } -export function reportOTELError (error: Error, attributes?: Record): void { +export function reportOTELError(error: Error, attributes?: Record): void { if (sdkServiceName !== undefined && sdkServiceVersion !== undefined && loggerProvider !== undefined) { const otlpLogger = loggerProvider?.getLogger(sdkServiceName, sdkServiceVersion) otlpLogger?.emit({ @@ -519,7 +519,7 @@ export function reportOTELError (error: Error, attributes?: Record) } } -export function reportOTEL ( +export function reportOTEL( severity: 'info' | 'warning', message: string, time: number, @@ -542,7 +542,7 @@ export function reportOTEL ( } } -export function createOpenTelemetryMetricsContext ( +export function createOpenTelemetryMetricsContext( name: string, params: ParamsType, fullParams: FullParamsType | (() => FullParamsType) = {}, @@ -584,7 +584,7 @@ export function createOpenTelemetryMetricsContext ( ) return ctx } -function parseTraceExporterHeaders (): Record { +function parseTraceExporterHeaders(): Record { const headers: Record = parseBaggage(process.env.OTEL_EXPORTER_OTLP_HEADERS) ?? {} if (process.env.OTEL_EXPORTER_OTLP_TRACES_HEADERS !== undefined) { @@ -596,7 +596,7 @@ function parseTraceExporterHeaders (): Record { return headers } -function getTracesUrl (): string | undefined { +function getTracesUrl(): string | undefined { let tracesUrl = process.env.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT ?? process.env.OTEL_EXPORTER_OTLP_ENDPOINT if (tracesUrl !== undefined && !tracesUrl.endsWith('/v1/traces')) { @@ -609,7 +609,7 @@ function getTracesUrl (): string | undefined { return tracesUrl } -function getLogsUrl (): string | undefined { +function getLogsUrl(): string | undefined { let logsUrl = process.env.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT ?? process.env.OTEL_EXPORTER_OTLP_ENDPOINT if (logsUrl !== undefined && !logsUrl.endsWith('/v1/logs')) { @@ -621,7 +621,7 @@ function getLogsUrl (): string | undefined { } return logsUrl } -function parseLogsExporterHeaders (): Record { +function parseLogsExporterHeaders(): Record { const headers: Record = parseBaggage(process.env.OTEL_EXPORTER_OTLP_HEADERS) ?? {} if (process.env.OTEL_EXPORTER_OTLP_LOGS_HEADERS !== undefined) { @@ -633,7 +633,7 @@ function parseLogsExporterHeaders (): Record { return headers } -function getMetricsUrl (): string | undefined { +function getMetricsUrl(): string | undefined { let metricsUrl = process.env.OTEL_EXPORTER_OTLP_METRICS_ENDPOINT ?? process.env.OTEL_EXPORTER_OTLP_ENDPOINT if (metricsUrl !== undefined && !metricsUrl.endsWith('/v1/metrics')) { @@ -645,7 +645,7 @@ function getMetricsUrl (): string | undefined { } return metricsUrl } -function parseMetricsExporterHeaders (): Record { +function parseMetricsExporterHeaders(): Record { const headers: Record = parseBaggage(process.env.OTEL_EXPORTER_OTLP_HEADERS) ?? {} if (process.env.OTEL_EXPORTER_OTLP_METRICS_HEADERS !== undefined) { diff --git a/foundations/core/packages/measurements/src/__tests__/context.test.ts b/foundations/core/packages/measurements/src/__tests__/context.test.ts index 818ecbd616..349b18230e 100644 --- a/foundations/core/packages/measurements/src/__tests__/context.test.ts +++ b/foundations/core/packages/measurements/src/__tests__/context.test.ts @@ -344,7 +344,7 @@ describe('context', () => { it('should wrap method with context', async () => { class TestClass { @withContext('testOperation', { service: 'test' }) - async testMethod (ctx: MeasureContext, value: number): Promise { + async testMethod(ctx: MeasureContext, value: number): Promise { return value * 2 } } diff --git a/foundations/core/packages/measurements/src/__tests__/performance.test.ts b/foundations/core/packages/measurements/src/__tests__/performance.test.ts index fdb6065973..c05308ef04 100644 --- a/foundations/core/packages/measurements/src/__tests__/performance.test.ts +++ b/foundations/core/packages/measurements/src/__tests__/performance.test.ts @@ -202,7 +202,7 @@ describe('performance', () => { // Helper functions -async function simulateWork (durationMs: number): Promise { +async function simulateWork(durationMs: number): Promise { const end = performance.now() + durationMs while (performance.now() < end) { // Busy wait to simulate work @@ -211,7 +211,7 @@ async function simulateWork (durationMs: number): Promise { } } -async function deepNestedExecution ( +async function deepNestedExecution( ctx: MeasureContext, depth: number, workMs: number, @@ -227,7 +227,7 @@ async function deepNestedExecution ( }) } -async function simulateAPIRequest (ctx: MeasureContext | null, requestId: number): Promise { +async function simulateAPIRequest(ctx: MeasureContext | null, requestId: number): Promise { const method = ['GET', 'POST', 'PUT'][requestId % 3] const endpoint = `/api/resource/${requestId % 10}` diff --git a/foundations/core/packages/measurements/src/context.ts b/foundations/core/packages/measurements/src/context.ts index 9a8688635c..4f364a3956 100644 --- a/foundations/core/packages/measurements/src/context.ts +++ b/foundations/core/packages/measurements/src/context.ts @@ -19,7 +19,7 @@ const errorPrinter = ({ message, stack, ...rest }: Error): object => ({ stack, ...rest }) -function replacer (value: any): any { +function replacer(value: any): any { return value instanceof Error ? errorPrinter(value) : value } @@ -75,11 +75,11 @@ export class MeasureMetricsContext implements MeasureContext { st = platformNow() contextData: object = {} - private done (value?: number, override?: boolean): void { + private done(value?: number, override?: boolean): void { updateMeasure(this.metrics, this.st, this.params, this.fullParams, (spend) => {}, value, override) } - constructor ( + constructor( name: string, params: ParamsType, fullParams: FullParamsType | (() => FullParamsType) = {}, @@ -106,7 +106,7 @@ export class MeasureMetricsContext implements MeasureContext { this.logger = logger ?? (this.logParams != null ? consoleLogger(this.logParams ?? {}) : noParamsLogger) } - measure (name: string, value: number, override?: boolean): void { + measure(name: string, value: number, override?: boolean): void { const c = new MeasureMetricsContext( '#' + name, {}, @@ -121,7 +121,7 @@ export class MeasureMetricsContext implements MeasureContext { c.done(value, override) } - newChild ( + newChild( name: string, params: ParamsType, opt?: { @@ -182,7 +182,7 @@ export class MeasureMetricsContext implements MeasureContext { } } - extractMeta (): Record { + extractMeta(): Record { return {} } @@ -200,28 +200,28 @@ export class MeasureMetricsContext implements MeasureContext { } } - error (message: string, args?: Record): void { + error(message: string, args?: Record): void { this.logger.error(message, { ...this.params, ...args, ...(this.logParams ?? {}) }) } - info (message: string, args?: Record): void { + info(message: string, args?: Record): void { this.logger.info(message, { ...this.params, ...args, ...(this.logParams ?? {}) }) } - warn (message: string, args?: Record): void { + warn(message: string, args?: Record): void { this.logger.warn(message, { ...this.params, ...args, ...(this.logParams ?? {}) }) } - debug (message: string, args?: Record): void { + debug(message: string, args?: Record): void { if (this.logLevel !== 'debug') return this.logger.debug(message, { ...this.params, ...args, ...(this.logParams ?? {}) }) } - end (): void { + end(): void { this.done() } - getParams (): ParamsType { + getParams(): ParamsType { return this.params } } @@ -234,14 +234,14 @@ export class NoMetricsContext implements MeasureContext { private readonly logLevel: MeasureLogLevel - constructor (logger?: MeasureLogger, logLevel: MeasureLogLevel = 'info') { + constructor(logger?: MeasureLogger, logLevel: MeasureLogLevel = 'info') { this.logger = logger ?? consoleLogger({}) this.logLevel = logLevel } - measure (name: string, value: number, override?: boolean): void {} + measure(name: string, value: number, override?: boolean): void {} - newChild ( + newChild( name: string, params: ParamsType, opt?: { @@ -268,7 +268,7 @@ export class NoMetricsContext implements MeasureContext { return r instanceof Promise ? r : Promise.resolve(r) } - extractMeta (): Record { + extractMeta(): Record { return {} } @@ -292,26 +292,26 @@ export class NoMetricsContext implements MeasureContext { return r instanceof Promise ? r : Promise.resolve(r) } - error (message: string, args?: Record): void { + error(message: string, args?: Record): void { this.logger.error(message, { ...args }) } - info (message: string, args?: Record): void { + info(message: string, args?: Record): void { this.logger.info(message, { ...args }) } - warn (message: string, args?: Record): void { + warn(message: string, args?: Record): void { this.logger.warn(message, { ...args }) } - debug (message: string, args?: Record): void { + debug(message: string, args?: Record): void { if (this.logLevel !== 'debug') return this.logger.debug(message, { ...args }) } - end (): void {} + end(): void {} - getParams (): ParamsType { + getParams(): ParamsType { return {} } } @@ -319,7 +319,7 @@ export class NoMetricsContext implements MeasureContext { /** * Allow to use decorator for context enabled functions */ -export function withContext (name: string, params: ParamsType = {}, options?: WithOptions): any { +export function withContext(name: string, params: ParamsType = {}, options?: WithOptions): any { return (target: any, propertyKey: string, descriptor: PropertyDescriptor): PropertyDescriptor => { const originalMethod = descriptor.value descriptor.value = function (...args: any[]): Promise { @@ -338,13 +338,13 @@ export function withContext (name: string, params: ParamsType = {}, options?: Wi let operationProfiling = false -export function setOperationLogProfiling (value: boolean): void { +export function setOperationLogProfiling(value: boolean): void { operationProfiling = value } let globalId: number = 0 -export function registerOperationLog (ctx: MeasureContext): { opLogMetrics?: Metrics, op?: OperationLog } { +export function registerOperationLog(ctx: MeasureContext): { opLogMetrics?: Metrics; op?: OperationLog } { if (!operationProfiling) { return {} } @@ -364,7 +364,7 @@ export function registerOperationLog (ctx: MeasureContext): { opLogMetrics?: Met return { opLogMetrics, op } } -export function updateOperationLog (opLogMetrics: Metrics | undefined, op: OperationLog | undefined): void { +export function updateOperationLog(opLogMetrics: Metrics | undefined, op: OperationLog | undefined): void { if (!operationProfiling) { return } @@ -386,7 +386,7 @@ export function updateOperationLog (opLogMetrics: Metrics | undefined, op: Opera } } -export function addOperation ( +export function addOperation( ctx: MeasureContext, name: string, params: ParamsType, diff --git a/foundations/core/packages/measurements/src/metrics.ts b/foundations/core/packages/measurements/src/metrics.ts index 695dc0372a..0d25f68ebb 100644 --- a/foundations/core/packages/measurements/src/metrics.ts +++ b/foundations/core/packages/measurements/src/metrics.ts @@ -12,7 +12,7 @@ export const globals: Metrics = newMetrics() * @public * @returns */ -export function newMetrics (): Metrics { +export function newMetrics(): Metrics { return { operations: 0, value: 0, @@ -22,7 +22,7 @@ export function newMetrics (): Metrics { } } -function getUpdatedTopResult ( +function getUpdatedTopResult( current: Metrics['topResult'], time: number, params: FullParamsType @@ -59,7 +59,7 @@ function getUpdatedTopResult ( * Measure with tree expansion. Operation counter will be added only to leaf's. * @public */ -export function measure ( +export function measure( metrics: Metrics, params: ParamsType, fullParams: FullParamsType | (() => FullParamsType) = {}, @@ -70,7 +70,7 @@ export function measure ( updateMeasure(metrics, st, params, fullParams, endOp) } } -export function updateMeasure ( +export function updateMeasure( metrics: Metrics, st: number, params: ParamsType, @@ -145,7 +145,7 @@ export function updateMeasure ( /** * @public */ -export function childMetrics (root: Metrics, path: string[]): Metrics { +export function childMetrics(root: Metrics, path: string[]): Metrics { const segments = path let oop = root for (const p of segments) { @@ -159,7 +159,7 @@ export function childMetrics (root: Metrics, path: string[]): Metrics { /** * @public */ -export function metricsAggregate (m: Metrics, limit: number = -1, roundMath: boolean = false): Metrics { +export function metricsAggregate(m: Metrics, limit: number = -1, roundMath: boolean = false): Metrics { let ms = aggregateMetrics(m.measurements, limit) // Use child overage, if there is no top level value specified. @@ -200,7 +200,7 @@ export function metricsAggregate (m: Metrics, limit: number = -1, roundMath: boo } } -function aggregateMetrics (m: Record, limit: number = -1): Record { +function aggregateMetrics(m: Record, limit: number = -1): Record { const result: Record = {} for (const [k, v] of Object.entries(m).sort((a, b) => b[1].value - a[1].value)) { result[k] = metricsAggregate(v, limit) @@ -208,14 +208,14 @@ function aggregateMetrics (m: Record, limit: number = -1): Reco return result } -function toLen (val: string, sep: string, len: number): string { +function toLen(val: string, sep: string, len: number): string { while (val.length < len) { val += sep } return val } -function printMetricsChildren (params: Record, offset: number, length: number): string { +function printMetricsChildren(params: Record, offset: number, length: number): string { let r = '' if (Object.keys(params).length > 0) { r += '\n' + toLen('', ' ', offset) @@ -227,7 +227,7 @@ function printMetricsChildren (params: Record, offset: number, return r } -function printMetricsParams ( +function printMetricsParams( params: Record>, offset: number, length: number @@ -250,7 +250,7 @@ function printMetricsParams ( return r } -function toString (name: string, m: Metrics, offset: number, length: number): string { +function toString(name: string, m: Metrics, offset: number, length: number): string { let r = `${toLen('', ' ', offset)}${toLen(name, '-', length - offset)}: avg ${ Math.round((m.value / (m.operations > 0 ? m.operations : 1)) * 100) / 100 } total: ${Math.round(m.value * 100) / 100} ops: ${m.operations}`.trim() @@ -259,7 +259,7 @@ function toString (name: string, m: Metrics, offset: number, length: number): st return r } -function toJson (m: Metrics): any { +function toJson(m: Metrics): any { const obj: any = { $total: m.value, $ops: m.operations @@ -284,20 +284,20 @@ function toJson (m: Metrics): any { /** * @public */ -export function metricsToString (metrics: Metrics, name = 'System', length: number): string { +export function metricsToString(metrics: Metrics, name = 'System', length: number): string { return toString(name, metricsAggregate(metrics, 50, true), 0, length) } -export function metricsToJson (metrics: Metrics): any { +export function metricsToJson(metrics: Metrics): any { return toJson(metricsAggregate(metrics)) } -function printMetricsParamsRows ( +function printMetricsParamsRows( params: Record>, offset: number ): (string | number)[][] { const r: (string | number)[][] = [] - function joinP (key: string, data: Record): (string | number)[][] { + function joinP(key: string, data: Record): (string | number)[][] { return Object.entries(data).map(([k, vv]) => [ offset, `${key}=${k}`, @@ -312,7 +312,7 @@ function printMetricsParamsRows ( return r } -function printMetricsChildrenRows (params: Record, offset: number): (string | number)[][] { +function printMetricsChildrenRows(params: Record, offset: number): (string | number)[][] { const r: (string | number)[][] = [] if (Object.keys(params).length > 0) { Object.entries(params).forEach(([k, vv]) => r.push(...toStringRows(k, vv, offset))) @@ -320,7 +320,7 @@ function printMetricsChildrenRows (params: Record, offset: numb return r } -function toStringRows (name: string, m: Metrics, offset: number): (number | string)[][] { +function toStringRows(name: string, m: Metrics, offset: number): (number | string)[][] { const r: (number | string)[][] = [ [ offset, @@ -338,6 +338,6 @@ function toStringRows (name: string, m: Metrics, offset: number): (number | stri /** * @public */ -export function metricsToRows (metrics: Metrics, name = 'System'): (number | string)[][] { +export function metricsToRows(metrics: Metrics, name = 'System'): (number | string)[][] { return toStringRows(name, metricsAggregate(metrics, 50, true), 0) } diff --git a/foundations/core/packages/model/src/dsl.ts b/foundations/core/packages/model/src/dsl.ts index d8e086d15d..9e726f2264 100644 --- a/foundations/core/packages/model/src/dsl.ts +++ b/foundations/core/packages/model/src/dsl.ts @@ -61,7 +61,7 @@ import toposort from 'toposort' const targets = new Map>() -function setIndex (target: any, property: string, index: IndexKind): void { +function setIndex(target: any, property: string, index: IndexKind): void { let indexes = targets.get(target) if (indexes === undefined) { indexes = new Map() @@ -70,7 +70,7 @@ function setIndex (target: any, property: string, index: IndexKind): void { indexes.set(property, index) } -function getIndex (target: any, property: string): IndexKind | undefined { +function getIndex(target: any, property: string): IndexKind | undefined { return targets.get(target)?.get(property) } @@ -91,7 +91,7 @@ interface ClassTxes { const transactions = new Map() -function getTxes (target: any): ClassTxes { +function getTxes(target: any): ClassTxes { const txes = transactions.get(target) if (txes === undefined) { const txes = { txes: [] } as unknown as ClassTxes @@ -102,7 +102,7 @@ function getTxes (target: any): ClassTxes { } const attributes = new Map>>() -function setAttr (target: any, prop: string, key: string, value: any): void { +function setAttr(target: any, prop: string, key: string, value: any): void { const props = attributes.get(target) ?? new Map>() const attrs = props.get(prop) ?? {} attrs[key] = value @@ -111,7 +111,7 @@ function setAttr (target: any, prop: string, key: string, value: any): void { attributes.set(target, props) } -function clearAttrs (target: any, prop: string): void { +function clearAttrs(target: any, prop: string): void { const props = attributes.get(target) props?.delete(prop) @@ -120,14 +120,14 @@ function clearAttrs (target: any, prop: string): void { } } -function getAttrs (target: any, prop: string): Record { +function getAttrs(target: any, prop: string): Record { return attributes.get(target)?.get(prop) ?? {} } /** * @public */ -export function Prop (type: Type, label: IntlString, extra: Partial> = {}) { +export function Prop(type: Type, label: IntlString, extra: Partial> = {}) { return function (target: any, propertyKey: string): void { const txes = getTxes(target) const tx: TxCreateDoc> = { @@ -159,7 +159,7 @@ export function Prop (type: Type, label: IntlString, extra: Partia /** * @public */ -export function Hidden () { +export function Hidden() { return function (target: any, propertyKey: string): void { setAttr(target, propertyKey, 'hidden', true) } @@ -168,7 +168,7 @@ export function Hidden () { /** * @public */ -export function ReadOnly () { +export function ReadOnly() { return function (target: any, propertyKey: string): void { setAttr(target, propertyKey, 'readonly', true) } @@ -177,7 +177,7 @@ export function ReadOnly () { /** * @public */ -export function Index (kind: IndexKind) { +export function Index(kind: IndexKind) { return function (target: any, propertyKey: string): void { setIndex(target, propertyKey, kind) } @@ -186,13 +186,13 @@ export function Index (kind: IndexKind) { /** * @public */ -export function Model ( +export function Model( _class: Ref>, _extends: Ref>, domain?: Domain, _implements?: Ref>[] ) { - return function classDecorator T> (constructor: C): void { + return function classDecorator T>(constructor: C): void { const txes = getTxes(constructor.prototype) txes._id = _class txes.extends = _class !== core.class.Obj ? _extends : undefined @@ -205,8 +205,8 @@ export function Model ( /** * @public */ -export function Implements (_interface: Ref>, _extends?: Ref>[]) { - return function classDecorator T> (constructor: C): void { +export function Implements(_interface: Ref>, _extends?: Ref>[]) { + return function classDecorator T>(constructor: C): void { const txes = getTxes(constructor.prototype) txes._id = _interface txes.implements = _extends @@ -217,8 +217,8 @@ export function Implements (_interface: Ref>, _exten /** * @public */ -export function Mixin (_class: Ref>, _extends: Ref>) { - return function classDecorator T> (constructor: C): void { +export function Mixin(_class: Ref>, _extends: Ref>) { + return function classDecorator T>(constructor: C): void { const txes = getTxes(constructor.prototype) txes._id = _class txes.extends = _extends @@ -229,7 +229,7 @@ export function Mixin (_class: Ref>, _extends: Ref ( +export function UX( label: IntlString, icon?: Asset, shortLabel?: string, @@ -237,7 +237,7 @@ export function UX ( filteringKey?: string, pluralLabel?: IntlString ) { - return function classDecorator T> (constructor: C): void { + return function classDecorator T>(constructor: C): void { const txes = getTxes(constructor.prototype) txes.label = label txes.icon = icon @@ -248,7 +248,7 @@ export function UX ( } } -function generateIds (objectId: Ref, txes: TxCreateDoc>[]): Tx[] { +function generateIds(objectId: Ref, txes: TxCreateDoc>[]): Tx[] { return txes.map((tx) => { const withId = { ...tx, @@ -262,7 +262,7 @@ function generateIds (objectId: Ref, txes: TxCreateDoc void - createModel (...classes: Array Obj>): void { + createModel(...classes: Array Obj>): void { const txes = classes.map((ctor) => getTxes(ctor.prototype)) const byId = new Map() @@ -336,7 +336,7 @@ export class Builder { } } - private generateTransactions (txes: ClassTxes[], byId: Map): Tx[] { + private generateTransactions(txes: ClassTxes[], byId: Map): Tx[] { const graph = this.createGraph(txes) const sorted = toposort(graph) .reverse() @@ -344,7 +344,7 @@ export class Builder { return sorted.flatMap((tx) => (tx != null ? _generateTx(tx) : [])) } - private createGraph (txes: ClassTxes[]): [string, string | undefined][] { + private createGraph(txes: ClassTxes[]): [string, string | undefined][] { return txes.map((tx) => [tx._id, tx.extends] as [string, string | undefined]) } @@ -378,7 +378,7 @@ export class Builder { this.hierarchy.tx(tx) } - getTxes (): Tx[] { + getTxes(): Tx[] { return [...this.txes] } } @@ -388,112 +388,112 @@ export class Builder { /** * @public */ -export function TypeString (): Type { +export function TypeString(): Type { return { _class: core.class.TypeString, label: core.string.String, icon: core.icon.TypeString } } /** * @public */ -export function TypeRelation (): Type { +export function TypeRelation(): Type { return { _class: core.class.TypeRelation, label: core.string.Relation, icon: core.icon.TypeRef } } /** * @public */ -export function TypeBlob (): Type { +export function TypeBlob(): Type { return { _class: core.class.TypeBlob, label: core.string.String, icon: core.icon.TypeBlob } } /** * @public */ -export function TypeHyperlink (): Type { +export function TypeHyperlink(): Type { return { _class: core.class.TypeHyperlink, label: core.string.Hyperlink, icon: core.icon.TypeHyperlink } } /** * @public */ -export function TypeNumber (min?: number, max?: number, digits?: number): TypeNumberType { +export function TypeNumber(min?: number, max?: number, digits?: number): TypeNumberType { return { _class: core.class.TypeNumber, label: core.string.Number, icon: core.icon.TypeNumber, min, max, digits } } /** * @public */ -export function TypeMarkup (): Type { +export function TypeMarkup(): Type { return { _class: core.class.TypeMarkup, label: core.string.Markup, icon: core.icon.TypeMarkup } } /** * @public */ -export function TypeRecord (): Type> { +export function TypeRecord(): Type> { return { _class: core.class.TypeRecord, label: core.string.Record, icon: core.icon.TypeRecord } } /** * @public */ -export function TypeIntlString (): Type { +export function TypeIntlString(): Type { return { _class: core.class.TypeIntlString, label: core.string.IntlString, icon: core.icon.TypeRef } } /** * @public */ -export function TypeBoolean (): Type { +export function TypeBoolean(): Type { return { _class: core.class.TypeBoolean, label: core.string.Boolean, icon: core.icon.TypeBoolean } } /** * @public */ -export function TypeTimestamp (): Type { +export function TypeTimestamp(): Type { return { _class: core.class.TypeTimestamp, label: core.string.Timestamp, icon: core.icon.TypeDate } } /** * @public */ -export function TypeDate (mode: DateRangeMode = DateRangeMode.DATE, withShift: boolean = true): TypeDateType { +export function TypeDate(mode: DateRangeMode = DateRangeMode.DATE, withShift: boolean = true): TypeDateType { return { _class: core.class.TypeDate, label: core.string.Date, icon: core.icon.TypeDate, mode, withShift } } /** * @public */ -export function TypeRef (_class: Ref>): RefTo { +export function TypeRef(_class: Ref>): RefTo { return { _class: core.class.RefTo, label: core.string.Ref, icon: core.icon.TypeRef, to: _class } } /** * @public */ -export function TypeIdentifier (of: Ref): TypeIdentifierType { +export function TypeIdentifier(of: Ref): TypeIdentifierType { return { _class: core.class.TypeIdentifier, label: core.string.Id, icon: core.icon.TypeRef, of } } /** * @public */ -export function TypeEnum (of: Ref): EnumOf { +export function TypeEnum(of: Ref): EnumOf { return { _class: core.class.EnumOf, label: core.string.Enum, icon: core.icon.TypeEnumOf, of } } /** * @public */ -export function TypeFileSize (): Type { +export function TypeFileSize(): Type { return { _class: core.class.TypeFileSize, label: core.string.Size, icon: core.icon.TypeNumber } } /** * @public */ -export function TypeAny ( +export function TypeAny( presenter: AnyComponent, label: IntlString, editor?: AnyComponent @@ -504,7 +504,7 @@ export function TypeAny ( /** * @public */ -export function Collection (clazz: Ref>, itemLabel?: IntlString): TypeCollection { +export function Collection(clazz: Ref>, itemLabel?: IntlString): TypeCollection { return { _class: core.class.Collection, label: core.string.Collection, @@ -517,28 +517,28 @@ export function Collection (clazz: Ref>, itemLab /** * @public */ -export function ArrOf> (type: Type): TypeArrOf { +export function ArrOf>(type: Type): TypeArrOf { return { _class: core.class.ArrOf, label: core.string.Array, of: type, icon: core.icon.TypeArray } } /** * @public */ -export function TypeCollaborativeDoc (): Type { +export function TypeCollaborativeDoc(): Type { return { _class: core.class.TypeCollaborativeDoc, label: core.string.MarkupBlobRef, icon: core.icon.TypeMarkup } } /** * @public */ -export function TypeRank (pos: 'start' | 'end' = 'end'): TypeRankType { +export function TypeRank(pos: 'start' | 'end' = 'end'): TypeRankType { return { _class: core.class.TypeRank, label: core.string.Rank, icon: core.icon.TypeRank, pos } } -export function TypePersonId (): Type { +export function TypePersonId(): Type { return { _class: core.class.TypePersonId, label: core.string.PersonId } } -export function TypeAccountUuid (): Type { +export function TypeAccountUuid(): Type { return { _class: core.class.TypeAccountUuid, label: core.string.AccountId } } diff --git a/foundations/core/packages/model/src/migration.ts b/foundations/core/packages/model/src/migration.ts index 9c19a97a60..2d7d8e9ac1 100644 --- a/foundations/core/packages/model/src/migration.ts +++ b/foundations/core/packages/model/src/migration.ts @@ -94,7 +94,7 @@ export interface MigrationClient { bulk: ( domain: Domain, - operations: { filter: MigrationDocumentQuery, update: MigrateUpdate }[] + operations: { filter: MigrationDocumentQuery; update: MigrateUpdate }[] ) => Promise // Move documents per domain @@ -169,7 +169,7 @@ export interface UpgradeOperations { /** * @public */ -export async function tryMigrate ( +export async function tryMigrate( mode: MigrateMode, client: MigrationClient, plugin: string, @@ -210,7 +210,7 @@ export async function tryMigrate ( /** * @public */ -export async function tryUpgrade ( +export async function tryUpgrade( mode: MigrateMode, state: Map>, client: () => Promise, @@ -249,7 +249,7 @@ type RequiredData = Omit, keyof DefaultSpaceData> & /** * @public */ -export async function createDefaultSpace ( +export async function createDefaultSpace( client: MigrationUpgradeClient, _id: Ref, props: RequiredData, @@ -280,7 +280,7 @@ export async function createDefaultSpace ( /** * @public */ -export async function migrateSpace ( +export async function migrateSpace( client: MigrationClient, from: Ref, to: Ref, @@ -292,7 +292,7 @@ export async function migrateSpace ( await client.update(DOMAIN_TX, { objectSpace: from }, { objectSpace: to }) } -export async function migrateSpaceRanks (client: MigrationClient, domain: Domain, space: Space): Promise { +export async function migrateSpaceRanks(client: MigrationClient, domain: Domain, space: Space): Promise { type WithRank = Doc & { rank: Rank } const iterator = await client.traverse( @@ -310,7 +310,7 @@ export async function migrateSpaceRanks (client: MigrationClient, domain: Domain break } - const updates: { filter: MigrationDocumentQuery>, update: MigrateUpdate> }[] = [] + const updates: { filter: MigrationDocumentQuery>; update: MigrateUpdate> }[] = [] for (const doc of docs) { rank = makeRank(rank, undefined) updates.push({ filter: { _id: doc._id }, update: { rank } }) diff --git a/foundations/core/packages/model/src/utils.ts b/foundations/core/packages/model/src/utils.ts index e333ebbde3..45cbe70c60 100644 --- a/foundations/core/packages/model/src/utils.ts +++ b/foundations/core/packages/model/src/utils.ts @@ -10,11 +10,11 @@ import { } from '@hcengineering/core' import { deepEqual } from 'fast-equals' -function toUndef (value: any): any { +function toUndef(value: any): any { return value === null ? undefined : value } -function diffAttributes (doc: Data, newDoc: Data): DocumentUpdate { +function diffAttributes(doc: Data, newDoc: Data): DocumentUpdate { const result: DocumentUpdate = {} const allDocuments = new Map(Object.entries(doc)) const newDocuments = new Map(Object.entries(newDoc)) @@ -44,7 +44,7 @@ function diffAttributes (doc: Data, newDoc: Data): DocumentUpdate * Create or update document if modified only by system account. * @public */ -export async function createOrUpdate ( +export async function createOrUpdate( client: TxOperations, _class: Ref>, space: Ref, @@ -79,7 +79,7 @@ const errorPrinter = ({ message, stack, ...rest }: Error): object => ({ stack, ...rest }) -function replacer (value: any): any { +function replacer(value: any): any { return value instanceof Error ? errorPrinter(value) : value } @@ -87,10 +87,10 @@ function replacer (value: any): any { * @public */ export const consoleModelLogger: ModelLogger = { - log (msg: string, data: any): void { + log(msg: string, data: any): void { console.log(msg, data) }, - error (msg: string, data: any): void { + error(msg: string, data: any): void { console.error(msg, replacer(data)) } } diff --git a/foundations/core/packages/platform/src/__tests__/i18n.test.ts b/foundations/core/packages/platform/src/__tests__/i18n.test.ts index 9b2b04d21d..05840a8d90 100644 --- a/foundations/core/packages/platform/src/__tests__/i18n.test.ts +++ b/foundations/core/packages/platform/src/__tests__/i18n.test.ts @@ -21,7 +21,7 @@ import { Severity, Status } from '../status' import { addStringsLoader, loadPluginStrings, translate, translateCB } from '../i18n' import { addEventListener, PlatformEvent, removeEventListener } from '../event' -function translateCBAsync ( +function translateCBAsync( message: IntlString, params: Record, language: string | undefined diff --git a/foundations/core/packages/platform/src/event.ts b/foundations/core/packages/platform/src/event.ts index 138dbe6087..ff6231d295 100644 --- a/foundations/core/packages/platform/src/event.ts +++ b/foundations/core/packages/platform/src/event.ts @@ -33,7 +33,7 @@ const eventListeners = new Map() * @param event - * @param listener - */ -export function addEventListener (event: string, listener: EventListener): void { +export function addEventListener(event: string, listener: EventListener): void { const listeners = eventListeners.get(event) if (listeners !== undefined) { listeners.push(listener) @@ -47,7 +47,7 @@ export function addEventListener (event: string, listener: EventListener): void * @param event - * @param listener - */ -export function removeEventListener (event: string, listener: EventListener): void { +export function removeEventListener(event: string, listener: EventListener): void { const listeners = eventListeners.get(event) if (listeners !== undefined) { listeners.splice(listeners.indexOf(listener), 1) @@ -57,7 +57,7 @@ export function removeEventListener (event: string, listener: EventListener): vo /** * @public */ -export async function broadcastEvent (event: string, data: any): Promise { +export async function broadcastEvent(event: string, data: any): Promise { const listeners = eventListeners.get(event) if (listeners !== undefined) { const promises = listeners.map(async (listener) => { @@ -72,7 +72,7 @@ export async function broadcastEvent (event: string, data: any): Promise { * @param status - * @returns */ -export async function setPlatformStatus (status: Status): Promise { +export async function setPlatformStatus(status: Status): Promise { if (status.severity === Severity.ERROR) { console.trace('Platform Error Status', status) } @@ -85,7 +85,7 @@ export async function setPlatformStatus (status: Status): Promise { * @param promise - * @returns */ -export async function monitor (status: Status, promise: Promise): Promise { +export async function monitor(status: Status, promise: Promise): Promise { void setPlatformStatus(status) // eslint-disable-line no-void try { const result = await promise diff --git a/foundations/core/packages/platform/src/i18n.ts b/foundations/core/packages/platform/src/i18n.ts index e4658b087b..9db5214f45 100644 --- a/foundations/core/packages/platform/src/i18n.ts +++ b/foundations/core/packages/platform/src/i18n.ts @@ -39,7 +39,7 @@ const englishTranslationsForMissing = new Map() * @param plugin - * @param loader - */ -export function addStringsLoader (plugin: Plugin, loader: Loader): void { +export function addStringsLoader(plugin: Plugin, loader: Loader): void { loaders.set(plugin, loader) } @@ -47,7 +47,7 @@ export function addStringsLoader (plugin: Plugin, loader: Loader): void { * Perform load of all internationalization sources for all plugins available. * @public */ -export async function loadPluginStrings (locale: string, force: boolean = false): Promise { +export async function loadPluginStrings(locale: string, force: boolean = false): Promise { if (force) { cache.clear() } @@ -64,14 +64,14 @@ export async function loadPluginStrings (locale: string, force: boolean = false) } } -async function setStatus (status: Status, skipError?: boolean): Promise { +async function setStatus(status: Status, skipError?: boolean): Promise { if (skipError !== true) { await setPlatformStatus(status) } } /** Notify platform and return a Status for load/resolve paths that do not use the per-message format cache. */ -async function pipelineErrorToStatus (err: unknown, skipError?: boolean): Promise { +async function pipelineErrorToStatus(err: unknown, skipError?: boolean): Promise { const status = unknownError(err) await setStatus(status, skipError) return status @@ -80,7 +80,7 @@ async function pipelineErrorToStatus (err: unknown, skipError?: boolean): Promis /** * On compile/resolve failure: cache failure for this intl id, notify platform, return `message` as UI fallback. */ -async function handleIntlPipelineFailure ( +async function handleIntlPipelineFailure( err: unknown, message: IntlString, localeCache: Map, @@ -92,7 +92,7 @@ async function handleIntlPipelineFailure ( return message } -async function loadTranslationsForComponent ( +async function loadTranslationsForComponent( plugin: Plugin, locale: string, skipError?: boolean @@ -115,7 +115,7 @@ async function loadTranslationsForComponent ( } } -function getCachedTranslation (id: _IdInfo, locale: string): IntlString | Status | undefined { +function getCachedTranslation(id: _IdInfo, locale: string): IntlString | Status | undefined { const localtTanslations = translations.get(locale) if (localtTanslations === undefined) { return undefined @@ -134,7 +134,7 @@ function getCachedTranslation (id: _IdInfo, locale: string): IntlString | Status } } -async function getTranslation ( +async function getTranslation( id: _IdInfo, locale: string, skipError?: boolean @@ -180,7 +180,7 @@ async function getTranslation ( * @param params - * @returns */ -export async function translate

> ( +export async function translate

>( message: IntlString

, params: P, language?: string, @@ -236,7 +236,7 @@ export async function translate

> ( /** * Will do a translation in case language file already in cache, a translate is called and Promise is returned overwise */ -export function translateCB

> ( +export function translateCB

>( message: IntlString

, params: P, language: string | undefined, diff --git a/foundations/core/packages/platform/src/ident.ts b/foundations/core/packages/platform/src/ident.ts index 52caa1d9ff..06199b8a1d 100644 --- a/foundations/core/packages/platform/src/ident.ts +++ b/foundations/core/packages/platform/src/ident.ts @@ -30,7 +30,7 @@ export interface _IdInfo { /** * @internal */ -export function _parseId (id: Id): _IdInfo { +export function _parseId(id: Id): _IdInfo { const path = id.split(_ID_SEPARATOR) if (path.length < 3) { throw new PlatformError(new Status(Severity.ERROR, platform.status.InvalidId, { id })) diff --git a/foundations/core/packages/platform/src/metadata.ts b/foundations/core/packages/platform/src/metadata.ts index df8774f7e8..df7ba9c788 100644 --- a/foundations/core/packages/platform/src/metadata.ts +++ b/foundations/core/packages/platform/src/metadata.ts @@ -40,7 +40,7 @@ const metadata = new Map, any>() * @param id - * @returns */ -export function getMetadata (id: Metadata): T | undefined { +export function getMetadata(id: Metadata): T | undefined { return metadata.get(id) } @@ -49,7 +49,7 @@ export function getMetadata (id: Metadata): T | undefined { * @param id - * @param value - */ -export function setMetadata (id: Metadata, value: T): void { +export function setMetadata(id: Metadata, value: T): void { metadata.set(id, value) } @@ -58,7 +58,7 @@ export function setMetadata (id: Metadata, value: T): void { * @param ids - * @param data - */ -export function loadMetadata>> (ids: X, data: ExtractType): void { +export function loadMetadata>>(ids: X, data: ExtractType): void { for (const key in ids) { const id = ids[key] const resource = data[key] diff --git a/foundations/core/packages/platform/src/platform.ts b/foundations/core/packages/platform/src/platform.ts index 241a31dfb4..c34887c725 100644 --- a/foundations/core/packages/platform/src/platform.ts +++ b/foundations/core/packages/platform/src/platform.ts @@ -75,7 +75,7 @@ export const _ID_SEPARATOR = ':' */ export const _EmbeddedId = 'embedded' -function identify (result: Record, prefix: string, namespace: Record): Namespace { +function identify(result: Record, prefix: string, namespace: Record): Namespace { for (const key in namespace) { const value = namespace[key] if (typeof result[key] === 'string') { @@ -90,7 +90,7 @@ function identify (result: Record, prefix: string, namespace: Recor /** * @public */ -export function getEmbeddedLabel (str: string): IntlString { +export function getEmbeddedLabel(str: string): IntlString { return (_EmbeddedId + _ID_SEPARATOR + _EmbeddedId + _ID_SEPARATOR + str) as IntlString } @@ -102,7 +102,7 @@ export function getEmbeddedLabel (str: string): IntlString { * @param namespace - * @returns */ -export function plugin (plugin: Plugin, namespace: N): N { +export function plugin(plugin: Plugin, namespace: N): N { return identify({}, plugin, namespace) as N } @@ -115,7 +115,7 @@ export function plugin (plugin: Plugin, namespace: N): N { * @param merge - * @returns */ -export function mergeIds (plugin: Plugin, ns: N, merge: M): N & M { +export function mergeIds(plugin: Plugin, ns: N, merge: M): N & M { return identify({ ...ns }, plugin, merge) as N & M } @@ -148,17 +148,17 @@ export default plugin(platformId, { ExpiredLink: '' as StatusCode, UnknownMethod: '' as StatusCode<{ method: string }>, InternalServerError: '' as StatusCode, - MaintenanceWarning: '' as StatusCode<{ time: number, message?: string }>, + MaintenanceWarning: '' as StatusCode<{ time: number; message?: string }>, MaintenanceWarningTime: '' as IntlString, AccountNotFound: '' as StatusCode<{ account?: string }>, - AccountMismatch: '' as StatusCode<{ account?: string, requiredAccount?: string }>, + AccountMismatch: '' as StatusCode<{ account?: string; requiredAccount?: string }>, AccountNotConfirmed: '' as StatusCode, - WorkspaceNotFound: '' as StatusCode<{ workspaceUuid?: string, workspaceName?: string, workspaceUrl?: string }>, + WorkspaceNotFound: '' as StatusCode<{ workspaceUuid?: string; workspaceName?: string; workspaceUrl?: string }>, WorkspaceArchived: '' as StatusCode<{ workspaceUuid: string }>, WorkspaceMigration: '' as StatusCode<{ workspaceUuid: string }>, - SocialIdNotFound: '' as StatusCode<{ value?: string, type?: string, _id?: string }>, - SocialIdNotConfirmed: '' as StatusCode<{ socialId: string, type: string }>, - SocialIdAlreadyConfirmed: '' as StatusCode<{ socialId: string, type: string }>, + SocialIdNotFound: '' as StatusCode<{ value?: string; type?: string; _id?: string }>, + SocialIdNotConfirmed: '' as StatusCode<{ socialId: string; type: string }>, + SocialIdAlreadyConfirmed: '' as StatusCode<{ socialId: string; type: string }>, IntegrationExists: '' as StatusCode, IntegrationAlreadyExists: '' as StatusCode, IntegrationNotFound: '' as StatusCode, diff --git a/foundations/core/packages/platform/src/resource.ts b/foundations/core/packages/platform/src/resource.ts index 890c8306b0..9ede59c780 100644 --- a/foundations/core/packages/platform/src/resource.ts +++ b/foundations/core/packages/platform/src/resource.ts @@ -46,7 +46,7 @@ const locations = new Map>() * @param plugin - * @param module - */ -export function addLocation (plugin: Plugin, module: PluginLoader): void { +export function addLocation(plugin: Plugin, module: PluginLoader): void { locations.set(plugin, module) } @@ -54,11 +54,11 @@ export function addLocation (plugin: Plugin, module: Plugin * @public * return list of registred plugins. */ -export function getPlugins (): Plugin[] { +export function getPlugins(): Plugin[] { return Array.from(locations.keys()) } -function getLocation (plugin: Plugin): PluginLoader { +function getLocation(plugin: Plugin): PluginLoader { const location = locations.get(plugin) if (location === undefined) { throw new PlatformError( @@ -72,7 +72,7 @@ function getLocation (plugin: Plugin): PluginLoader { const loading = new Map>() -function loadPlugin (id: Plugin): Resources | Promise { +function loadPlugin(id: Plugin): Resources | Promise { let pluginLoader = loading.get(id) if (pluginLoader === undefined) { const status = new Status(Severity.INFO, platform.status.LoadingPlugin, { @@ -109,7 +109,7 @@ const cachedResource = new Map() * @param resource - * @returns */ -export async function getResource (resource: Resource): Promise { +export async function getResource(resource: Resource): Promise { const cached = cachedResource.get(resource) if (cached !== undefined) { return cached @@ -133,7 +133,7 @@ export async function getResource (resource: Resource): Promise { * @param resource - * @returns */ -export function getResourceP (resource: Resource): T | Promise { +export function getResourceP(resource: Resource): T | Promise { return cachedResource.get(resource) ?? getResource(resource) } @@ -142,7 +142,7 @@ export function getResourceP (resource: Resource): T | Promise { * @param resource - * @returns */ -export function getResourceC (resource: Resource | undefined, callback: (resource: T | undefined) => void): void { +export function getResourceC(resource: Resource | undefined, callback: (resource: T | undefined) => void): void { if (resource === undefined) { callback(undefined) return @@ -164,7 +164,7 @@ export function getResourceC (resource: Resource | undefined, callback: (r /** * @public */ -export function getResourcePlugin (resource: Resource): Plugin { +export function getResourcePlugin(resource: Resource): Plugin { const info = _parseId(resource) return info.component } diff --git a/foundations/core/packages/platform/src/status.ts b/foundations/core/packages/platform/src/status.ts index 119308d396..b17136b9b6 100644 --- a/foundations/core/packages/platform/src/status.ts +++ b/foundations/core/packages/platform/src/status.ts @@ -41,7 +41,7 @@ export class Status

= any> { readonly code: StatusCode

readonly params: P - constructor (severity: Severity, code: StatusCode

, params: P) { + constructor(severity: Severity, code: StatusCode

, params: P) { this.severity = severity this.code = code this.params = params @@ -55,7 +55,7 @@ export class Status

= any> { export class PlatformError

> extends Error { readonly status: Status

- constructor (status: Status

) { + constructor(status: Status

) { super(`${status.severity}: ${status.code} ${JSON.stringify(status.params)}`) this.status = status } @@ -84,11 +84,11 @@ export const UNAUTHORIZED = new Status(Severity.ERROR, platform.status.Unauthori * @param message - * @returns */ -export function unknownStatus (message: string): Status { +export function unknownStatus(message: string): Status { return new Status(Severity.ERROR, platform.status.UnknownError, { message }) } -function isStatusLike (err: unknown): err is Pick { +function isStatusLike(err: unknown): err is Pick { if (typeof err !== 'object' || err === null) return false const o = err as Record return ( @@ -96,7 +96,7 @@ function isStatusLike (err: unknown): err is Pick ({ ...obj, @@ -17,7 +17,7 @@ const langs = ['en', 'ru'] * @param loader - * @returns */ -export function makeLocalesTest (loader: Loader) { +export function makeLocalesTest(loader: Loader) { return async () => { const [target, ...rest] = await Promise.all(langs.map(loader)) const matcher = makeLocaleMatcher(target) diff --git a/foundations/core/packages/postgres-base/src/index.ts b/foundations/core/packages/postgres-base/src/index.ts index 4f820c16be..70f8ef5f38 100644 --- a/foundations/core/packages/postgres-base/src/index.ts +++ b/foundations/core/packages/postgres-base/src/index.ts @@ -30,7 +30,7 @@ export interface DBClient { raw: () => postgres.Sql } -export function createDBClient (client: postgres.Sql, release: () => void = () => {}): DBClient { +export function createDBClient(client: postgres.Sql, release: () => void = () => {}): DBClient { return { execute: (query, parameters) => client.unsafe(query, doFetchTypes ? parameters : convertArrayParams(parameters), getPrepare()), @@ -45,7 +45,7 @@ export function createDBClient (client: postgres.Sql, release: () => void = () = } } -export function convertArrayParams (params?: unknown[]): any[] | undefined { +export function convertArrayParams(params?: unknown[]): any[] | undefined { if (params === undefined) return undefined return params.map((param) => { @@ -74,7 +74,7 @@ export function convertArrayParams (params?: unknown[]): any[] | undefined { }) } -export async function retryTxn ( +export async function retryTxn( pool: postgres.Sql, operation: (client: postgres.TransactionSql) => Promise ): Promise { @@ -87,7 +87,7 @@ export async function retryTxn ( /** * @public */ -export async function shutdownPostgres (): Promise { +export async function shutdownPostgres(): Promise { for (const c of connections.values()) { c.close(true) } @@ -108,7 +108,7 @@ class PostgresClientReferenceImpl { mgr: ConnectionMgr - constructor ( + constructor( readonly connectionString: string, client: postgres.Sql, readonly onclose: () => void @@ -118,15 +118,15 @@ class PostgresClientReferenceImpl { this.mgr = new ConnectionMgr(createDBClient(this.client)) } - url (): string { + url(): string { return this.connectionString } - getClient (): postgres.Sql { + getClient(): postgres.Sql { return this.client } - close (force: boolean = false): void { + close(force: boolean = false): void { this.count-- if (this.count === 0 || force) { if (force) { @@ -141,25 +141,25 @@ class PostgresClientReferenceImpl { } } - addRef (): void { + addRef(): void { this.count++ } } export class ClientRef implements PostgresClientReference { id = ++clId - constructor ( + constructor( readonly client: PostgresClientReferenceImpl, readonly mgr: ConnectionMgr ) { clientRefs.set(this.id, this) } - url (): string { + url(): string { return this.client.url() } closed = false - async getClient (): Promise { + async getClient(): Promise { if (!this.closed) { return this.client.getClient() } else { @@ -167,7 +167,7 @@ export class ClientRef implements PostgresClientReference { } } - close (): void { + close(): void { // Do not allow double close of mongo connection client if (!this.closed) { clientRefs.delete(this.id) @@ -178,11 +178,11 @@ export class ClientRef implements PostgresClientReference { } export let dbExtraOptions: Partial> = {} -export function setDBExtraOptions (options: Partial>): void { +export function setDBExtraOptions(options: Partial>): void { dbExtraOptions = options } -export function getPrepare (): { prepare: boolean } { +export function getPrepare(): { prepare: boolean } { return { prepare: dbExtraOptions.prepare ?? false } } @@ -194,7 +194,7 @@ const connections = new Map() * Initialize a connection to DB * @public */ -export function getDBClient ( +export function getDBClient( connectionString: string, database?: string, serviceName: string = 'transactor' @@ -219,8 +219,8 @@ export function getDBClient ( }, debug: false, notice: false, - onnotice (notice) {}, - onparameter (key, value) {}, + onnotice(notice) {}, + onparameter(key, value) {}, ...dbExtraOptions, ...extraOptions, fetch_types: doFetchTypes @@ -242,14 +242,14 @@ class ConnectionInfo { released: boolean = false - constructor ( + constructor( readonly connectionId: string, protected readonly client: DBClient, readonly managed: boolean, readonly mgrId: string ) {} - async withReserve (action: (reservedClient: DBClient) => Promise, forced: boolean = false): Promise { + async withReserve(action: (reservedClient: DBClient) => Promise, forced: boolean = false): Promise { let reserved: DBClient | undefined // Check if we have at least one available connection and reserve one more if required. @@ -284,7 +284,7 @@ class ConnectionInfo { } } - release (): void { + release(): void { for (const c of [...this.available]) { c.release() } @@ -294,9 +294,9 @@ class ConnectionInfo { export class ConnectionMgr { private readonly connections = new Map() - constructor (protected readonly client: DBClient) {} + constructor(protected readonly client: DBClient) {} - async write (id: string | undefined, mgrId: string, fn: (client: DBClient) => Promise): Promise { + async write(id: string | undefined, mgrId: string, fn: (client: DBClient) => Promise): Promise { const backoffInterval = 25 // millis const maxTries = 5 let tries = 0 @@ -345,7 +345,7 @@ export class ConnectionMgr { } } - async retry (id: string | undefined, mgrId: string, fn: (client: DBClient) => Promise): Promise { + async retry(id: string | undefined, mgrId: string, fn: (client: DBClient) => Promise): Promise { const backoffInterval = 25 // millis const maxTries = 5 let tries = 0 @@ -390,7 +390,7 @@ export class ConnectionMgr { } } - release (id: string): void { + release(id: string): void { const conn = this.connections.get(id) if (conn !== undefined) { conn.released = true @@ -399,7 +399,7 @@ export class ConnectionMgr { } } - close (mgrId?: string): void { + close(mgrId?: string): void { const cnts = this.connections for (const [k, conn] of Array.from(cnts.entries())) { if (mgrId !== undefined && conn.mgrId !== mgrId) { @@ -414,7 +414,7 @@ export class ConnectionMgr { } } - getConnection (id: string, mgrId: string, managed: boolean = true): ConnectionInfo { + getConnection(id: string, mgrId: string, managed: boolean = true): ConnectionInfo { let conn = this.connections.get(id) if (conn === undefined) { conn = new ConnectionInfo(id, this.client, managed, mgrId) @@ -425,7 +425,7 @@ export class ConnectionMgr { return conn } - private isRetryableError (err: any): boolean { + private isRetryableError(err: any): boolean { const msg: string = err?.message ?? '' return ( diff --git a/foundations/core/packages/query/src/__tests__/advanced-coverage.test.ts b/foundations/core/packages/query/src/__tests__/advanced-coverage.test.ts index bcb1046eaa..6e03333466 100644 --- a/foundations/core/packages/query/src/__tests__/advanced-coverage.test.ts +++ b/foundations/core/packages/query/src/__tests__/advanced-coverage.test.ts @@ -7,7 +7,7 @@ import core, { createClient, Ref, SortingOrder, TxOperations } from '@hcengineer import { LiveQuery } from '..' import { connect } from './connection' -async function getClient (): Promise<{ liveQuery: LiveQuery, factory: TxOperations, close: () => Promise }> { +async function getClient(): Promise<{ liveQuery: LiveQuery; factory: TxOperations; close: () => Promise }> { const storage = await createClient(connect) const liveQuery = new LiveQuery(storage) storage.notify = (...tx) => { diff --git a/foundations/core/packages/query/src/__tests__/bug-hunting.test.ts b/foundations/core/packages/query/src/__tests__/bug-hunting.test.ts index 72163f1559..1c097fbdc6 100644 --- a/foundations/core/packages/query/src/__tests__/bug-hunting.test.ts +++ b/foundations/core/packages/query/src/__tests__/bug-hunting.test.ts @@ -8,7 +8,7 @@ import { LiveQuery } from '..' import { connect } from './connection' import { test } from './minmodel' -async function getClient (): Promise<{ liveQuery: LiveQuery, factory: TxOperations, close: () => Promise }> { +async function getClient(): Promise<{ liveQuery: LiveQuery; factory: TxOperations; close: () => Promise }> { const storage = await createClient(connect) const liveQuery = new LiveQuery(storage) storage.notify = (...tx) => { diff --git a/foundations/core/packages/query/src/__tests__/connection.ts b/foundations/core/packages/query/src/__tests__/connection.ts index d217ff4ea0..a1d5b34525 100644 --- a/foundations/core/packages/query/src/__tests__/connection.ts +++ b/foundations/core/packages/query/src/__tests__/connection.ts @@ -51,14 +51,14 @@ import core, { } from '@hcengineering/core' import { genMinModel } from './minmodel' -export async function connect (handler: (tx: Tx) => void): Promise< -Client & -BackupClient & -FulltextStorage & { - isConnected: () => boolean - loadModel: (last: Timestamp, hash?: string) => Promise - pushHandler: (handler: TxHandler) => void -} +export async function connect(handler: (tx: Tx) => void): Promise< + Client & + BackupClient & + FulltextStorage & { + isConnected: () => boolean + loadModel: (last: Timestamp, hash?: string) => Promise + pushHandler: (handler: TxHandler) => void + } > { const txes = genMinModel() @@ -77,17 +77,17 @@ FulltextStorage & { private readonly model: ModelDb private readonly transactions: TxDb - constructor (hierarchy: Hierarchy, model: ModelDb, transactions: TxDb) { + constructor(hierarchy: Hierarchy, model: ModelDb, transactions: TxDb) { this.hierarchy = hierarchy this.model = model this.transactions = transactions } - isConnected (): boolean { + isConnected(): boolean { return true } - pushHandler (): void {} + pushHandler(): void {} async findAll( _class: Ref>, @@ -150,15 +150,15 @@ FulltextStorage & { return { domain, value: null } } - getHierarchy (): Hierarchy { + getHierarchy(): Hierarchy { return this.hierarchy } - getModel (): ModelDb { + getModel(): ModelDb { return this.model } - async tx (tx: Tx): Promise { + async tx(tx: Tx): Promise { if (tx.objectSpace === core.space.Model) { this.hierarchy.tx(tx) } @@ -167,9 +167,9 @@ FulltextStorage & { return {} } - async close (): Promise {} + async close(): Promise {} - async loadChunk (domain: Domain, idx?: number): Promise { + async loadChunk(domain: Domain, idx?: number): Promise { return { idx: -1, docs: [], @@ -177,40 +177,40 @@ FulltextStorage & { } } - async getDomainHash (domain: Domain): Promise { + async getDomainHash(domain: Domain): Promise { return generateId() } - async loadModel (lastTxTime: Timestamp): Promise { + async loadModel(lastTxTime: Timestamp): Promise { return txes } - async closeChunk (idx: number): Promise {} + async closeChunk(idx: number): Promise {} - async loadDocs (domain: Domain, docs: Ref[]): Promise { + async loadDocs(domain: Domain, docs: Ref[]): Promise { return [] } - async upload (domain: Domain, docs: Doc[]): Promise {} + async upload(domain: Domain, docs: Doc[]): Promise {} - async clean (domain: Domain, docs: Ref[]): Promise {} + async clean(domain: Domain, docs: Ref[]): Promise {} - async searchFulltext (query: SearchQuery, options: SearchOptions): Promise { + async searchFulltext(query: SearchQuery, options: SearchOptions): Promise { return { docs: [] } } - async sendForceClose (): Promise {} + async sendForceClose(): Promise {} handler?: (event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise - set onConnect ( + set onConnect( handler: ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) | undefined ) { this.handler = handler void this.handler?.(ClientConnectEvent.Connected, '', {}) } - get onConnect (): ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) | undefined { + get onConnect(): ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) | undefined { return this.handler } } diff --git a/foundations/core/packages/query/src/__tests__/deep-lookup.test.ts b/foundations/core/packages/query/src/__tests__/deep-lookup.test.ts index c75b416cd2..f5ef02406c 100644 --- a/foundations/core/packages/query/src/__tests__/deep-lookup.test.ts +++ b/foundations/core/packages/query/src/__tests__/deep-lookup.test.ts @@ -8,7 +8,7 @@ import { LiveQuery } from '..' import { connect } from './connection' import { test } from './minmodel' -async function getClient (): Promise<{ liveQuery: LiveQuery, factory: TxOperations, close: () => Promise }> { +async function getClient(): Promise<{ liveQuery: LiveQuery; factory: TxOperations; close: () => Promise }> { const storage = await createClient(connect) const liveQuery = new LiveQuery(storage) storage.notify = (...tx) => { diff --git a/foundations/core/packages/query/src/__tests__/final-coverage.test.ts b/foundations/core/packages/query/src/__tests__/final-coverage.test.ts index 1d239bb045..956425fe39 100644 --- a/foundations/core/packages/query/src/__tests__/final-coverage.test.ts +++ b/foundations/core/packages/query/src/__tests__/final-coverage.test.ts @@ -8,7 +8,7 @@ import { LiveQuery } from '..' import { connect } from './connection' import { test } from './minmodel' -async function getClient (): Promise<{ liveQuery: LiveQuery, factory: TxOperations, close: () => Promise }> { +async function getClient(): Promise<{ liveQuery: LiveQuery; factory: TxOperations; close: () => Promise }> { const storage = await createClient(connect) const liveQuery = new LiveQuery(storage) storage.notify = (...tx) => { diff --git a/foundations/core/packages/query/src/__tests__/init-utility.test.ts b/foundations/core/packages/query/src/__tests__/init-utility.test.ts index 58bfa9f6e5..69ad1a7027 100644 --- a/foundations/core/packages/query/src/__tests__/init-utility.test.ts +++ b/foundations/core/packages/query/src/__tests__/init-utility.test.ts @@ -8,7 +8,7 @@ import { LiveQuery } from '..' import { connect } from './connection' import { test } from './minmodel' -async function getClient (): Promise<{ liveQuery: LiveQuery, factory: TxOperations, close: () => Promise }> { +async function getClient(): Promise<{ liveQuery: LiveQuery; factory: TxOperations; close: () => Promise }> { const storage = await createClient(connect) const liveQuery = new LiveQuery(storage) storage.notify = (...tx) => { diff --git a/foundations/core/packages/query/src/__tests__/livequery-coverage.test.ts b/foundations/core/packages/query/src/__tests__/livequery-coverage.test.ts index 92fe59594b..4cb8eb5349 100644 --- a/foundations/core/packages/query/src/__tests__/livequery-coverage.test.ts +++ b/foundations/core/packages/query/src/__tests__/livequery-coverage.test.ts @@ -7,7 +7,7 @@ import core, { createClient, TxOperations } from '@hcengineering/core' import { LiveQuery } from '..' import { connect } from './connection' -async function getClient (): Promise<{ liveQuery: LiveQuery, factory: TxOperations, close: () => Promise }> { +async function getClient(): Promise<{ liveQuery: LiveQuery; factory: TxOperations; close: () => Promise }> { const storage = await createClient(connect) const liveQuery = new LiveQuery(storage) storage.notify = (...tx) => { diff --git a/foundations/core/packages/query/src/__tests__/minmodel.ts b/foundations/core/packages/query/src/__tests__/minmodel.ts index 6cb584cc6e..825d75eef5 100644 --- a/foundations/core/packages/query/src/__tests__/minmodel.ts +++ b/foundations/core/packages/query/src/__tests__/minmodel.ts @@ -34,14 +34,14 @@ import { plugin } from '@hcengineering/platform' const txFactory = new TxFactory(core.account.System) -function createClass (_class: Ref>, attributes: Data>): TxCreateDoc { +function createClass(_class: Ref>, attributes: Data>): TxCreateDoc { return txFactory.createTxCreateDoc(core.class.Class, core.space.Model, attributes, _class) } /** * @public */ -export function createDoc ( +export function createDoc( _class: Ref>, attributes: Data, id?: Ref, @@ -105,7 +105,7 @@ const DOMAIN_TEST: Domain = 'test' as Domain * Generate minimal model for testing purposes. * @returns R */ -export function genMinModel (): TxCUD[] { +export function genMinModel(): TxCUD[] { const txes = [] // Fill Tx'es with basic model classes. txes.push(createClass(core.class.Obj, { label: 'Obj' as IntlString, kind: ClassifierKind.CLASS })) diff --git a/foundations/core/packages/query/src/__tests__/push-pull.test.ts b/foundations/core/packages/query/src/__tests__/push-pull.test.ts index a0ee4cb042..7fe2629990 100644 --- a/foundations/core/packages/query/src/__tests__/push-pull.test.ts +++ b/foundations/core/packages/query/src/__tests__/push-pull.test.ts @@ -8,7 +8,7 @@ import { LiveQuery } from '..' import { connect } from './connection' import { test } from './minmodel' -async function getClient (): Promise<{ liveQuery: LiveQuery, factory: TxOperations, close: () => Promise }> { +async function getClient(): Promise<{ liveQuery: LiveQuery; factory: TxOperations; close: () => Promise }> { const storage = await createClient(connect) const liveQuery = new LiveQuery(storage) storage.notify = (...tx) => { diff --git a/foundations/core/packages/query/src/__tests__/query.test.ts b/foundations/core/packages/query/src/__tests__/query.test.ts index bd6ea9526c..a0f4cee841 100644 --- a/foundations/core/packages/query/src/__tests__/query.test.ts +++ b/foundations/core/packages/query/src/__tests__/query.test.ts @@ -35,7 +35,7 @@ interface Channel extends Space { x: number } -async function getClient (): Promise<{ liveQuery: LiveQuery, factory: TxOperations }> { +async function getClient(): Promise<{ liveQuery: LiveQuery; factory: TxOperations }> { const storage = await createClient(connect) const liveQuery = new LiveQuery(storage) storage.notify = (...tx: Tx[]) => { diff --git a/foundations/core/packages/query/src/__tests__/queue-bugs.test.ts b/foundations/core/packages/query/src/__tests__/queue-bugs.test.ts index d40cac51ba..82afcbdc08 100644 --- a/foundations/core/packages/query/src/__tests__/queue-bugs.test.ts +++ b/foundations/core/packages/query/src/__tests__/queue-bugs.test.ts @@ -17,7 +17,7 @@ import core, { createClient, SortingOrder, Space, Tx, TxOperations } from '@hcen import { LiveQuery } from '..' import { connect } from './connection' -async function getClient (): Promise<{ liveQuery: LiveQuery, factory: TxOperations }> { +async function getClient(): Promise<{ liveQuery: LiveQuery; factory: TxOperations }> { const storage = await createClient(connect) const liveQuery = new LiveQuery(storage) storage.notify = (...tx: Tx[]) => { diff --git a/foundations/core/packages/query/src/__tests__/refs-coverage.test.ts b/foundations/core/packages/query/src/__tests__/refs-coverage.test.ts index fbf27df928..8a9071ed2e 100644 --- a/foundations/core/packages/query/src/__tests__/refs-coverage.test.ts +++ b/foundations/core/packages/query/src/__tests__/refs-coverage.test.ts @@ -7,7 +7,7 @@ import core, { createClient, TxOperations } from '@hcengineering/core' import { LiveQuery } from '..' import { connect } from './connection' -async function getClient (): Promise<{ liveQuery: LiveQuery, factory: TxOperations, close: () => Promise }> { +async function getClient(): Promise<{ liveQuery: LiveQuery; factory: TxOperations; close: () => Promise }> { const storage = await createClient(connect) const liveQuery = new LiveQuery(storage) storage.notify = (...tx) => { diff --git a/foundations/core/packages/query/src/__tests__/remaining-edge-cases.test.ts b/foundations/core/packages/query/src/__tests__/remaining-edge-cases.test.ts index d140cc3039..c1a3d88cda 100644 --- a/foundations/core/packages/query/src/__tests__/remaining-edge-cases.test.ts +++ b/foundations/core/packages/query/src/__tests__/remaining-edge-cases.test.ts @@ -8,7 +8,7 @@ import { LiveQuery } from '..' import { connect } from './connection' import { test } from './minmodel' -async function getClient (): Promise<{ liveQuery: LiveQuery, factory: TxOperations, close: () => Promise }> { +async function getClient(): Promise<{ liveQuery: LiveQuery; factory: TxOperations; close: () => Promise }> { const storage = await createClient(connect) const liveQuery = new LiveQuery(storage) storage.notify = (...tx) => { diff --git a/foundations/core/packages/query/src/__tests__/workspace-events.test.ts b/foundations/core/packages/query/src/__tests__/workspace-events.test.ts index 6a92c88844..279dbbeaee 100644 --- a/foundations/core/packages/query/src/__tests__/workspace-events.test.ts +++ b/foundations/core/packages/query/src/__tests__/workspace-events.test.ts @@ -16,7 +16,7 @@ import { LiveQuery } from '..' import { connect } from './connection' import { test } from './minmodel' -async function getClient (): Promise<{ liveQuery: LiveQuery, factory: TxOperations, close: () => Promise }> { +async function getClient(): Promise<{ liveQuery: LiveQuery; factory: TxOperations; close: () => Promise }> { const storage = await createClient(connect) const liveQuery = new LiveQuery(storage) storage.notify = (...tx) => { diff --git a/foundations/core/packages/query/src/index.ts b/foundations/core/packages/query/src/index.ts index 4ad4e1d9f4..3448e620be 100644 --- a/foundations/core/packages/query/src/index.ts +++ b/foundations/core/packages/query/src/index.ts @@ -89,8 +89,8 @@ export interface RefreshConnectStats { droppedDocs: number activeQueries: number activeDocs: number - droppedByClass: Map - activeByClass: Map + droppedByClass: Map + activeByClass: Map } /** @@ -107,24 +107,24 @@ export class LiveQuery implements WithTx, Client { private readonly refs = new Refs(() => this.getHierarchy()) - constructor (client: Client) { + constructor(client: Client) { this.client = client } - public isClosed (): boolean { + public isClosed(): boolean { return this.closed } - async close (): Promise { + async close(): Promise { this.closed = true await this.client.close() } - getHierarchy (): Hierarchy { + getHierarchy(): Hierarchy { return this.client.getHierarchy() } - getModel (): ModelDb { + getModel(): ModelDb { return this.client.getModel() } @@ -141,7 +141,7 @@ export class LiveQuery implements WithTx, Client { // `lastReconnectGapMs` — ms since previous successful connection. When the // gap is large, drop idle queries instead of refreshing them. // Returns stats so the caller can log/track it. - async refreshConnect (clean: boolean, lastReconnectGapMs: number = 0): Promise { + async refreshConnect(clean: boolean, lastReconnectGapMs: number = 0): Promise { const dropIdle = lastReconnectGapMs > LiveQuery.IDLE_DROP_GAP_MS const sizeOf = (q: Query): number => (q.result instanceof Promise ? 0 : q.result.length) @@ -212,7 +212,7 @@ export class LiveQuery implements WithTx, Client { return stats } - private cleanQuery (q: Query): void { + private cleanQuery(q: Query): void { q.callbacks.forEach((callback) => { callback(toFindResult([], 0)) }) @@ -220,7 +220,7 @@ export class LiveQuery implements WithTx, Client { q.total = -1 } - private match (q: Query, doc: Doc, skipLookup = false): boolean { + private match(q: Query, doc: Doc, skipLookup = false): boolean { if (this.getHierarchy().isMixin(q._class)) { if (this.getHierarchy().hasMixin(doc, q._class)) { doc = this.getHierarchy().as(doc, q._class) @@ -320,7 +320,7 @@ export class LiveQuery implements WithTx, Client { return await this.client.domainRequest(domain, params, options) } - searchFulltext (query: SearchQuery, options: SearchOptions): Promise { + searchFulltext(query: SearchQuery, options: SearchOptions): Promise { return this.client.searchFulltext(query, options) } @@ -362,13 +362,13 @@ export class LiveQuery implements WithTx, Client { return q.result.getClone>().shift() } - private optionsCompare (opt1?: FindOptions, opt2?: FindOptions): boolean { + private optionsCompare(opt1?: FindOptions, opt2?: FindOptions): boolean { const { ctx: _1, ..._opt1 } = (opt1 ?? {}) as any const { ctx: _2, ..._opt2 } = (opt2 ?? {}) as any return deepEqual(_opt1, _opt2) } - private queryCompare (q1: DocumentQuery, q2: DocumentQuery): boolean { + private queryCompare(q1: DocumentQuery, q2: DocumentQuery): boolean { if (Object.keys(q1).length !== Object.keys(q2).length) { return false } @@ -389,7 +389,7 @@ export class LiveQuery implements WithTx, Client { } } - private removeFromQueue (q: Query, update = true): boolean { + private removeFromQueue(q: Query, update = true): boolean { if (q.callbacks.size === 0) { const removed = this.queue.delete(q.id) if (removed) { @@ -404,7 +404,7 @@ export class LiveQuery implements WithTx, Client { return false } - private pushCallback ( + private pushCallback( q: Query, callback: { callback: (result: Doc[]) => void @@ -440,7 +440,7 @@ export class LiveQuery implements WithTx, Client { } } - private getQueueMap (_class: Ref>): Map { + private getQueueMap(_class: Ref>): Map { let cq = this.queries.get(_class) if (cq === undefined) { cq = new Map() @@ -452,7 +452,7 @@ export class LiveQuery implements WithTx, Client { private createQuery( _class: Ref>, query: DocumentQuery, - callback: { callback: (result: FindResult) => void, callbackId: string } | undefined, + callback: { callback: (result: FindResult) => void; callbackId: string } | undefined, options?: FindOptions ): Query { const _query: DocumentQuery = clone(query) @@ -489,7 +489,7 @@ export class LiveQuery implements WithTx, Client { return q } - private remove (): void { + private remove(): void { const used = Array.from(this.queue.values()).sort((a, b) => a.lastUsed - b.lastUsed) // Remove enough queries to bring the queue back down to 80% of CACHE_SIZE // This prevents constant cleanup cycles @@ -502,7 +502,7 @@ export class LiveQuery implements WithTx, Client { } } - removeQueue (q: Query): void { + removeQueue(q: Query): void { const queries = this.getQueueMap(q._class) const removed = queries.delete(q.id) this.queue.delete(q.id) @@ -579,7 +579,7 @@ export class LiveQuery implements WithTx, Client { return toFindResult(current.result.getClone(), current.total) } - private async checkSearch (q: Query, _id: Ref): Promise { + private async checkSearch(q: Query, _id: Ref): Promise { const match = await this.client.findOne(q._class, { $search: q.query.$search, _id }, q.options) if (q.result instanceof Promise) { q.result = await q.result @@ -607,7 +607,7 @@ export class LiveQuery implements WithTx, Client { return false } - private async getDocFromCache ( + private async getDocFromCache( docCache: Map, _id: Ref, _class: Ref>, @@ -636,14 +636,14 @@ export class LiveQuery implements WithTx, Client { return current } - private asMixin (doc: Doc, mixin: Ref>): Doc { + private asMixin(doc: Doc, mixin: Ref>): Doc { if (this.getHierarchy().isMixin(mixin)) { return this.getHierarchy().as(doc, mixin) } return doc } - private async getCurrentDoc ( + private async getCurrentDoc( q: Query, _id: Ref, space: Ref, @@ -676,7 +676,7 @@ export class LiveQuery implements WithTx, Client { return false } - private async __updateMixinDoc (q: Query, updatedDoc: WithLookup, tx: TxMixin): Promise { + private async __updateMixinDoc(q: Query, updatedDoc: WithLookup, tx: TxMixin): Promise { updatedDoc = TxProcessor.updateMixin4Doc(updatedDoc, tx) const ops = { @@ -687,7 +687,7 @@ export class LiveQuery implements WithTx, Client { await this.__updateLookup(q, updatedDoc, ops) } - private checkUpdatedDocMatch (q: Query, result: ResultArray, updatedDoc: WithLookup): boolean { + private checkUpdatedDocMatch(q: Query, result: ResultArray, updatedDoc: WithLookup): boolean { if (!this.match(q, updatedDoc)) { if (q.options?.limit === result.length) { void this.refresh(q) @@ -706,7 +706,7 @@ export class LiveQuery implements WithTx, Client { return false } - protected async txMixin (tx: TxMixin, docCache: Map): Promise { + protected async txMixin(tx: TxMixin, docCache: Map): Promise { const hierarchy = this.client.getHierarchy() for (const queries of this.queries.entries()) { @@ -767,7 +767,7 @@ export class LiveQuery implements WithTx, Client { return {} } - async txUpdateDoc (tx: TxUpdateDoc, docCache: Map): Promise { + async txUpdateDoc(tx: TxUpdateDoc, docCache: Map): Promise { for (const queries of this.queries.entries()) { const isTx = this.client.getHierarchy().isDerived(queries[0], core.class.Tx) for (const q of queries[1].values()) { @@ -786,7 +786,7 @@ export class LiveQuery implements WithTx, Client { return {} } - private async handleDocUpdate (q: Query, tx: TxUpdateDoc, docCache: Map): Promise { + private async handleDocUpdate(q: Query, tx: TxUpdateDoc, docCache: Map): Promise { if (q.result instanceof Promise) { q.result = await q.result } @@ -830,7 +830,7 @@ export class LiveQuery implements WithTx, Client { await this.handleDocUpdateRelation(q, tx) } - private isPossibleAssociationTx (tx: TxUpdateDoc | TxMixin, association: Association): boolean { + private isPossibleAssociationTx(tx: TxUpdateDoc | TxMixin, association: Association): boolean { const h = this.getHierarchy() const byClass = h.isDerived(tx.objectClass, association.classA) || @@ -847,7 +847,7 @@ export class LiveQuery implements WithTx, Client { return false } - private async handleDocUpdateRelation (q: Query, tx: TxUpdateDoc | TxMixin): Promise { + private async handleDocUpdateRelation(q: Query, tx: TxUpdateDoc | TxMixin): Promise { if (q.options?.associations === undefined) return for (const assoc of q.options.associations) { const association = this.getModel().findObject(assoc[0]) @@ -875,7 +875,7 @@ export class LiveQuery implements WithTx, Client { } } - private async handleDocUpdateLookup (q: Query, tx: TxUpdateDoc | TxMixin): Promise { + private async handleDocUpdateLookup(q: Query, tx: TxUpdateDoc | TxMixin): Promise { if (q.options?.lookup === undefined) return const lookup = q.options.lookup if (q.result instanceof Promise) { @@ -892,7 +892,7 @@ export class LiveQuery implements WithTx, Client { } } - private async processLookupUpdateDoc ( + private async processLookupUpdateDoc( docs: ResultArray, lookup: Lookup, tx: TxUpdateDoc | TxMixin @@ -957,12 +957,12 @@ export class LiveQuery implements WithTx, Client { return needCallback } - private async refresh (q: Query): Promise { + private async refresh(q: Query): Promise { this.queriesToUpdate.delete(q.id) await q.refresh() } - private async doRefresh (q: Query): Promise { + private async doRefresh(q: Query): Promise { const qid = ++q.refreshId const res = await this.client.findAll(q._class, q.query, q.options) if (q.refreshId === qid && (!deepEqual(res, q.result) || (res.total !== q.total && q.options?.total === true))) { @@ -972,7 +972,7 @@ export class LiveQuery implements WithTx, Client { } } - private matchQuerySync (q: Query, tx: TxUpdateDoc): boolean { + private matchQuerySync(q: Query, tx: TxUpdateDoc): boolean { const clazz = this.getHierarchy().isMixin(q._class) ? this.getHierarchy().getBaseClass(q._class) : q._class const target = (tx.operations as any)._class ?? tx.objectClass if (!this.client.getHierarchy().isDerived(target, clazz)) { @@ -982,7 +982,7 @@ export class LiveQuery implements WithTx, Client { } // Check if query is partially matched. - private async matchQuery (q: Query, tx: TxUpdateDoc, docCache: Map): Promise { + private async matchQuery(q: Query, tx: TxUpdateDoc, docCache: Map): Promise { const doc: Doc = { _id: tx.objectId, _class: tx.objectClass, @@ -1084,7 +1084,7 @@ export class LiveQuery implements WithTx, Client { lookup: ReverseLookups, result: LookupData ): Promise { - for (const key in lookup._id) { + for (const key of Object.keys(lookup._id)) { if ((doc as any)[key] === undefined || (doc as any)[key] === 0) { continue } @@ -1110,7 +1110,7 @@ export class LiveQuery implements WithTx, Client { ;(doc as WithLookup).$lookup = result } - protected async txCreateDoc (tx: TxCreateDoc, docCache: Map): Promise { + protected async txCreateDoc(tx: TxCreateDoc, docCache: Map): Promise { const docTx = TxProcessor.createDoc2Doc(tx) for (const queries of this.queries.entries()) { const doc = this.client.getHierarchy().isDerived(queries[0], core.class.Tx) ? tx : docTx @@ -1127,7 +1127,7 @@ export class LiveQuery implements WithTx, Client { return {} } - private async handleDocAdd (q: Query, doc: Doc, handleLookup = true, docCache: Map): Promise { + private async handleDocAdd(q: Query, doc: Doc, handleLookup = true, docCache: Map): Promise { let needPush = true if (q.result instanceof Promise) { q.result = await q.result @@ -1171,7 +1171,7 @@ export class LiveQuery implements WithTx, Client { } } - private async callback (q: Query, bulkUpdate = false): Promise { + private async callback(q: Query, bulkUpdate = false): Promise { if (q.result instanceof Promise) { q.result = await q.result } @@ -1190,7 +1190,7 @@ export class LiveQuery implements WithTx, Client { } } - private async handleDocAddRelation (q: Query, doc: Doc): Promise { + private async handleDocAddRelation(q: Query, doc: Doc): Promise { if (q.options?.associations === undefined) return if (doc._class !== core.class.Relation) return const relation = doc as Relation @@ -1206,7 +1206,7 @@ export class LiveQuery implements WithTx, Client { } } - async fillRelationDoc ( + async fillRelationDoc( qRes: ResultArray, docs: WithLookup[], associations: AssociationQuery[] | undefined, @@ -1278,7 +1278,7 @@ export class LiveQuery implements WithTx, Client { return result } - private async handleDocAddLookup (q: Query, doc: Doc): Promise { + private async handleDocAddLookup(q: Query, doc: Doc): Promise { if (q.options?.lookup === undefined) return const lookup = q.options.lookup if (q.result instanceof Promise) { @@ -1295,7 +1295,7 @@ export class LiveQuery implements WithTx, Client { } } - private proccesLookupAddDoc (docs: ResultArray, lookup: Lookup, doc: Doc): boolean { + private proccesLookupAddDoc(docs: ResultArray, lookup: Lookup, doc: Doc): boolean { let needCallback = false const lookupWays = this.getLookupWays(lookup, doc._class) for (const lookupWay of lookupWays) { @@ -1334,7 +1334,7 @@ export class LiveQuery implements WithTx, Client { return needCallback } - protected async txRemoveDoc (tx: TxRemoveDoc, docCache: Map): Promise { + protected async txRemoveDoc(tx: TxRemoveDoc, docCache: Map): Promise { for (const queries of this.queries.entries()) { const isTx = this.client.getHierarchy().isDerived(queries[0], core.class.Tx) for (const q of queries[1].values()) { @@ -1354,7 +1354,7 @@ export class LiveQuery implements WithTx, Client { return {} } - private async handleDocRemove (q: Query, tx: TxRemoveDoc): Promise { + private async handleDocRemove(q: Query, tx: TxRemoveDoc): Promise { const h = this.client.getHierarchy() if (q._class === tx.objectClass || h.isDerived(q._class, tx.objectClass) || h.isDerived(tx.objectClass, q._class)) { if (q.result instanceof Promise) { @@ -1379,13 +1379,13 @@ export class LiveQuery implements WithTx, Client { await this.handleDocRemoveRelation(q, tx) } - private async handleDocRemoveRelation (q: Query, tx: TxRemoveDoc): Promise { + private async handleDocRemoveRelation(q: Query, tx: TxRemoveDoc): Promise { if (q.options?.associations === undefined) return if (tx.objectClass !== core.class.Relation) return await this.refresh(q) } - private async handleDocRemoveLookup (q: Query, tx: TxRemoveDoc): Promise { + private async handleDocRemoveLookup(q: Query, tx: TxRemoveDoc): Promise { if (q.options?.lookup === undefined) return let needCallback = false const lookupWays = this.getLookupWays(q.options.lookup, tx.objectClass) @@ -1425,7 +1425,7 @@ export class LiveQuery implements WithTx, Client { } } - private getLookupWays ( + private getLookupWays( lookup: Lookup, _class: Ref>, parent: string = '' @@ -1433,7 +1433,7 @@ export class LiveQuery implements WithTx, Client { const result: [string, string, string?][] = [] const hierarchy = this.client.getHierarchy() if (lookup._id !== undefined) { - for (const key in lookup._id) { + for (const key of Object.keys(lookup._id)) { const value = (lookup._id as any)[key] const [valueClass, reverseLookupKey] = Array.isArray(value) ? value : [value, 'attachedTo'] const clazz = hierarchy.isMixin(valueClass) ? hierarchy.getBaseClass(valueClass) : valueClass @@ -1466,7 +1466,7 @@ export class LiveQuery implements WithTx, Client { return result } - async _tx (tx: Tx, docCache: Map): Promise { + async _tx(tx: Tx, docCache: Map): Promise { switch (tx._class) { case core.class.TxCreateDoc: return await this.txCreateDoc(tx as TxCreateDoc, docCache) @@ -1482,7 +1482,7 @@ export class LiveQuery implements WithTx, Client { return {} } - async tx (...txes: Tx[]): Promise { + async tx(...txes: Tx[]): Promise { const result: TxResult[] = [] const docCache = new Map() for (const tx of txes) { @@ -1511,9 +1511,9 @@ export class LiveQuery implements WithTx, Client { return result } - private async checkUpdateEvents (evt: TxWorkspaceEvent, trigger = true): Promise { + private async checkUpdateEvents(evt: TxWorkspaceEvent, trigger = true): Promise { const h = this.client.getHierarchy() - function hasClass (q: Query, classes: Ref>[]): boolean { + function hasClass(q: Query, classes: Ref>[]): boolean { return classes.includes(q._class) || classes.some((it) => h.isDerived(q._class, it) || h.isDerived(it, q._class)) } if (evt.event === WorkspaceEvent.IndexingUpdate) { @@ -1574,7 +1574,7 @@ export class LiveQuery implements WithTx, Client { } } - private async changePrivateHandler (evt: TxWorkspaceEvent): Promise { + private async changePrivateHandler(evt: TxWorkspaceEvent): Promise { if (evt.event === WorkspaceEvent.SecurityChange) { for (const q of [...this.queue.values()]) { if (typeof q.query.space !== 'string' || q.query.space === evt.objectSpace) { @@ -1603,7 +1603,7 @@ export class LiveQuery implements WithTx, Client { } } - private async __updateLookup (q: Query, updatedDoc: WithLookup, ops: any): Promise { + private async __updateLookup(q: Query, updatedDoc: WithLookup, ops: any): Promise { for (const key in ops) { if (!key.startsWith('$')) { if (q.options !== undefined) { @@ -1679,7 +1679,7 @@ export class LiveQuery implements WithTx, Client { } } - private async __updateDoc (q: Query, updatedDoc: WithLookup, tx: TxUpdateDoc): Promise { + private async __updateDoc(q: Query, updatedDoc: WithLookup, tx: TxUpdateDoc): Promise { TxProcessor.updateDoc2Doc(updatedDoc, tx) const ops = { @@ -1690,7 +1690,7 @@ export class LiveQuery implements WithTx, Client { await this.__updateLookup(q, updatedDoc, ops) } - private async sort (q: Query, tx: TxUpdateDoc | TxMixin): Promise { + private async sort(q: Query, tx: TxUpdateDoc | TxMixin): Promise { const sort = q.options?.sort if (sort === undefined) return let needSort = sort.modifiedBy !== undefined || sort.modifiedOn !== undefined @@ -1704,7 +1704,7 @@ export class LiveQuery implements WithTx, Client { } } - private checkNeedSort (sort: SortingQuery, tx: TxUpdateDoc | TxMixin): boolean { + private checkNeedSort(sort: SortingQuery, tx: TxUpdateDoc | TxMixin): boolean { const ops = tx._class === core.class.TxMixin ? (tx as TxMixin).attributes @@ -1721,7 +1721,7 @@ export class LiveQuery implements WithTx, Client { return false } - private async updatedDocCallback (q: Query, res: ResultArray, updatedDoc: Doc | undefined): Promise { + private async updatedDocCallback(q: Query, res: ResultArray, updatedDoc: Doc | undefined): Promise { if (q.options?.limit !== undefined && res.length > q.options.limit) { if (updatedDoc === undefined) { await this.refresh(q) @@ -1740,15 +1740,15 @@ export class LiveQuery implements WithTx, Client { } } -function getNestedLookup (lookup: Ref> | [Ref>, Lookup]): Lookup | undefined { +function getNestedLookup(lookup: Ref> | [Ref>, Lookup]): Lookup | undefined { return Array.isArray(lookup) ? lookup[1] : undefined } -function getLookupClass (lookup: Ref> | [Ref>, Lookup]): Ref> { +function getLookupClass(lookup: Ref> | [Ref>, Lookup]): Ref> { return Array.isArray(lookup) ? lookup[0] : lookup } -function findAssociation ( +function findAssociation( associations: AssociationQuery[], association: Ref ): AssociationQuery | undefined { diff --git a/foundations/core/packages/query/src/refs.ts b/foundations/core/packages/query/src/refs.ts index a044270328..92080fb942 100644 --- a/foundations/core/packages/query/src/refs.ts +++ b/foundations/core/packages/query/src/refs.ts @@ -22,9 +22,9 @@ export class Refs { // A map of _class to documents. private readonly documentRefs = new Map, DocumentRef>>() - constructor (readonly getHierarchy: () => Hierarchy) {} + constructor(readonly getHierarchy: () => Hierarchy) {} - public updateDocuments (q: Query, docs: Doc[], clean: boolean = false): void { + public updateDocuments(q: Query, docs: Doc[], clean: boolean = false): void { if (q.options?.projection !== undefined) { return } diff --git a/foundations/core/packages/query/src/results.ts b/foundations/core/packages/query/src/results.ts index bc10576de8..aabf3d9730 100644 --- a/foundations/core/packages/query/src/results.ts +++ b/foundations/core/packages/query/src/results.ts @@ -14,26 +14,26 @@ export class ResultArray { private readonly clones = new Map, WithLookup>>() - get length (): number { + get length(): number { return this.docs.size } - constructor ( + constructor( docs: Doc[], readonly hierarchy: Hierarchy ) { this.docs = new Map(docs.map((it) => [it._id, it])) } - clean (): void { + clean(): void { this.clones.clear() } - getDocs (): WithLookup[] { + getDocs(): WithLookup[] { return Array.from(this.docs.values()) } - findDoc (_id: Ref): WithLookup | undefined { + findDoc(_id: Ref): WithLookup | undefined { return this.docs.get(_id) } @@ -41,7 +41,7 @@ export class ResultArray { return this.hierarchy.clone(this.getDocs()) } - getResult (id: string): Doc[] { + getResult(id: string): Doc[] { // Lets form a new list based on clones we have already. const info = this.clones.get(id) if (info === undefined) { @@ -53,7 +53,7 @@ export class ResultArray { } } - delete (_id: Ref): Doc | undefined { + delete(_id: Ref): Doc | undefined { const doc = this.docs.get(_id) this.docs.delete(_id) for (const [, v] of this.clones.entries()) { @@ -62,14 +62,14 @@ export class ResultArray { return doc } - updateDoc (doc: WithLookup, mainClone = true): void { + updateDoc(doc: WithLookup, mainClone = true): void { this.docs.set(doc._id, mainClone ? this.hierarchy.clone(doc) : doc) for (const [, v] of this.clones.entries()) { v.set(doc._id, this.hierarchy.clone(doc)) } } - push (doc: WithLookup): void { + push(doc: WithLookup): void { this.docs.set(doc._id, this.hierarchy.clone(doc)) for (const [, v] of this.clones.entries()) { v.set(doc._id, this.hierarchy.clone(doc)) @@ -77,7 +77,7 @@ export class ResultArray { // this.changes.add(doc._id) } - pop (): WithLookup | undefined { + pop(): WithLookup | undefined { const lastElement = Array.from(this.docs)[this.docs.size - 1] if (lastElement !== undefined) { this.docs.delete(lastElement[0]) diff --git a/foundations/core/packages/rank/src/utils.ts b/foundations/core/packages/rank/src/utils.ts index 4f43e8925b..c2aee23bcb 100644 --- a/foundations/core/packages/rank/src/utils.ts +++ b/foundations/core/packages/rank/src/utils.ts @@ -18,7 +18,7 @@ import type { Rank } from './types' import { LexoDecimal, LexoNumeralSystem36, LexoRank } from 'lexorank' /** @public */ -export function genRanks (count: number): Rank[] { +export function genRanks(count: number): Rank[] { const sys = new LexoNumeralSystem36() const base = 36 const max = base ** 6 @@ -33,7 +33,7 @@ export function genRanks (count: number): Rank[] { } /** @public */ -export function makeRank (prev: Rank | undefined, next: Rank | undefined): Rank { +export function makeRank(prev: Rank | undefined, next: Rank | undefined): Rank { try { if (prev != null && prev.trim() === '') { prev = undefined diff --git a/foundations/core/packages/retry/src/__test__/decorator.test.ts b/foundations/core/packages/retry/src/__test__/decorator.test.ts index 557661d011..8a6d81692b 100644 --- a/foundations/core/packages/retry/src/__test__/decorator.test.ts +++ b/foundations/core/packages/retry/src/__test__/decorator.test.ts @@ -54,7 +54,7 @@ describe('Retryable decorator', () => { callCount = 0 @Retryable(mockOptions) - async testMethod (param1: string, param2: number): Promise { + async testMethod(param1: string, param2: number): Promise { this.callCount++ if (this.callCount === 1) { throw error @@ -87,7 +87,7 @@ describe('Retryable decorator', () => { callCount = 0 @Retryable() - async testMethod (): Promise { + async testMethod(): Promise { this.callCount++ if (this.callCount === 1) { throw new Error('network error') @@ -108,7 +108,7 @@ describe('Retryable decorator', () => { private counter = 0 @Retryable(mockOptions) - async incrementAndGet (): Promise { + async incrementAndGet(): Promise { if (this.counter === 0) { this.counter++ throw new Error('network error') @@ -117,7 +117,7 @@ describe('Retryable decorator', () => { return this.counter } - getCounter (): number { + getCounter(): number { return this.counter } } @@ -140,7 +140,7 @@ describe('Retryable decorator', () => { logger: mockLogger, isRetryable: retryAllErrors }) - async alwaysFailingMethod (): Promise { + async alwaysFailingMethod(): Promise { throw new Error('Persistent failure') } } @@ -163,7 +163,7 @@ describe('Retryable decorator', () => { // Create a class with an async method that fails then resolves class TestService { @Retryable(mockOptions) - async delayedMethod (): Promise { + async delayedMethod(): Promise { return await new Promise((resolve, reject) => { resolutionCount++ if (resolutionCount === 1) { @@ -195,7 +195,7 @@ describe('Retryable decorator', () => { logger: mockLogger, isRetryable: retryAllErrors }) - async unstableMethod (): Promise { + async unstableMethod(): Promise { callCount++ if (callCount < 4) { // Succeed on the 4th attempt @@ -235,7 +235,7 @@ describe('Retryable decorator', () => { }), isRetryable: retryAllErrors }) - async delayingMethod (): Promise { + async delayingMethod(): Promise { callCount++ if (callCount < 4) { throw new Error(`Attempt ${callCount} failed`) @@ -274,7 +274,7 @@ describe('Retryable decorator', () => { }), isRetryable: retryAllErrors }) - async method (): Promise { + async method(): Promise { callCount++ if (callCount < 3) { throw new Error(`Attempt ${callCount} failed`) @@ -299,7 +299,7 @@ describe('Retryable decorator', () => { }), isRetryable: retryAllErrors }) - async method (): Promise { + async method(): Promise { callCount++ if (callCount < 4) { throw new Error(`Attempt ${callCount} failed`) @@ -319,7 +319,7 @@ describe('Retryable decorator', () => { class TestService { @Retryable(mockOptions) - nonAsyncMethod (input: string): string { + nonAsyncMethod(input: string): string { callCount++ if (callCount === 1) { throw new Error('Sync error') @@ -344,7 +344,7 @@ describe('Retryable decorator', () => { // eslint-disable-next-line @typescript-eslint/no-extraneous-class class TestService { @Retryable(mockOptions) - static async staticMethod (input: string): Promise { + static async staticMethod(input: string): Promise { callCount++ if (callCount === 1) { throw new Error('Static method error') @@ -372,7 +372,7 @@ describe('Retryable decorator', () => { return err instanceof Error && err.message.includes('Please retry') } }) - async conditionalRetryMethod (): Promise { + async conditionalRetryMethod(): Promise { this.callCount++ if (this.callCount === 1) { throw new Error('Please retry this') // should be retried diff --git a/foundations/core/packages/retry/src/__test__/retry.test.ts b/foundations/core/packages/retry/src/__test__/retry.test.ts index 7118520e46..c8df6134d0 100644 --- a/foundations/core/packages/retry/src/__test__/retry.test.ts +++ b/foundations/core/packages/retry/src/__test__/retry.test.ts @@ -315,7 +315,7 @@ describe('Using retry in class methods', () => { class TestService { counter = 0 - async unstableFunction (): Promise { + async unstableFunction(): Promise { this.counter++ if (this.counter < 3) { throw new Error(`network error ${this.counter}`) diff --git a/foundations/core/packages/retry/src/__test__/retryable.test.ts b/foundations/core/packages/retry/src/__test__/retryable.test.ts index 8814cc8008..65062d49bb 100644 --- a/foundations/core/packages/retry/src/__test__/retryable.test.ts +++ b/foundations/core/packages/retry/src/__test__/retryable.test.ts @@ -151,7 +151,7 @@ describe('retryNetworkErrors', () => { /** * Helper function to create an Error object with a status property */ -function createErrorWithStatus (status: number): Error { +function createErrorWithStatus(status: number): Error { const error: any = new Error(`HTTP Error ${status}`) error.status = status return error diff --git a/foundations/core/packages/retry/src/decorator.ts b/foundations/core/packages/retry/src/decorator.ts index cb6080e0ae..f51fd0527a 100644 --- a/foundations/core/packages/retry/src/decorator.ts +++ b/foundations/core/packages/retry/src/decorator.ts @@ -21,7 +21,7 @@ import { type RetryOptions, DEFAULT_RETRY_OPTIONS, withRetry } from './retry' * @param operationName - Name of the operation for logging (defaults to method name) * @returns Method decorator */ -export function Retryable (options: Partial = DEFAULT_RETRY_OPTIONS): MethodDecorator { +export function Retryable(options: Partial = DEFAULT_RETRY_OPTIONS): MethodDecorator { return function (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) { const originalMethod = descriptor.value as (...args: any[]) => any diff --git a/foundations/core/packages/retry/src/delay.ts b/foundations/core/packages/retry/src/delay.ts index 5adbd17d36..4826a598ef 100644 --- a/foundations/core/packages/retry/src/delay.ts +++ b/foundations/core/packages/retry/src/delay.ts @@ -17,21 +17,21 @@ export const DelayStrategyFactory = { /** * Create a fixed delay strategy */ - fixed (options: FixedDelayOptions): DelayStrategy { + fixed(options: FixedDelayOptions): DelayStrategy { return new FixedDelayStrategy(options) }, /** * Create an exponential backoff delay strategy */ - exponentialBackoff (options: ExponentialBackoffOptions): DelayStrategy { + exponentialBackoff(options: ExponentialBackoffOptions): DelayStrategy { return new ExponentialBackoffStrategy(options) }, /** * Create a Fibonacci delay strategy */ - fibonacci (options: FibonacciDelayOptions): DelayStrategy { + fibonacci(options: FibonacciDelayOptions): DelayStrategy { return new FibonacciDelayStrategy(options) } } @@ -54,12 +54,12 @@ export class FixedDelayStrategy implements DelayStrategy { private readonly delayMs: number private readonly jitter: number - constructor (options: FixedDelayOptions) { + constructor(options: FixedDelayOptions) { this.delayMs = options.delayMs this.jitter = options.jitter ?? 0 } - getDelay (_attempt: number): number { + getDelay(_attempt: number): number { if (this.jitter > 0) { const jitterAmount = this.delayMs * this.jitter * (Math.random() * 2 - 1) return Math.max(0, this.delayMs + jitterAmount) @@ -88,14 +88,14 @@ export class ExponentialBackoffStrategy implements DelayStrategy { private readonly backoffFactor: number private readonly jitter: number - constructor (options: ExponentialBackoffOptions) { + constructor(options: ExponentialBackoffOptions) { this.initialDelayMs = options.initialDelayMs this.maxDelayMs = options.maxDelayMs this.backoffFactor = options.backoffFactor this.jitter = options.jitter ?? 0 } - getDelay (attempt: number): number { + getDelay(attempt: number): number { const baseDelay = Math.min(this.initialDelayMs * Math.pow(this.backoffFactor, attempt - 1), this.maxDelayMs) if (this.jitter > 0) { @@ -124,7 +124,7 @@ export class FibonacciDelayStrategy implements DelayStrategy { // Cache for Fibonacci numbers to improve performance private readonly fibCache: Map - constructor (options: FibonacciDelayOptions) { + constructor(options: FibonacciDelayOptions) { this.baseDelayMs = options.baseDelayMs this.maxDelayMs = options.maxDelayMs this.jitter = options.jitter ?? 0 @@ -134,7 +134,7 @@ export class FibonacciDelayStrategy implements DelayStrategy { ]) } - private fibonacci (n: number): number { + private fibonacci(n: number): number { // Return from cache if available if (this.fibCache.has(n)) { return this.fibCache.get(n) as number @@ -150,7 +150,7 @@ export class FibonacciDelayStrategy implements DelayStrategy { return result } - getDelay (attempt: number): number { + getDelay(attempt: number): number { const fibNumber = this.fibonacci(attempt + 1) const baseDelay = Math.min(fibNumber * this.baseDelayMs, this.maxDelayMs) @@ -166,6 +166,6 @@ export class FibonacciDelayStrategy implements DelayStrategy { /** * Promise-based sleep function */ -export function sleep (ms: number): Promise { +export function sleep(ms: number): Promise { return new Promise((resolve) => setTimeout(resolve, ms)) } diff --git a/foundations/core/packages/retry/src/retry.ts b/foundations/core/packages/retry/src/retry.ts index 692b602660..5df6936a09 100644 --- a/foundations/core/packages/retry/src/retry.ts +++ b/foundations/core/packages/retry/src/retry.ts @@ -54,7 +54,7 @@ export const DEFAULT_RETRY_OPTIONS: RetryOptions = { * @returns The result of the operation * @throws The last error encountered after all retries have been exhausted */ -export async function withRetry ( +export async function withRetry( operation: () => Promise, options: Partial = {}, operationName: string = 'operation' @@ -117,7 +117,7 @@ export async function withRetry ( * @param operationName - Name of the operation for logging * @returns A wrapped function that applies retry logic */ -export function createRetryableFunction Promise> ( +export function createRetryableFunction Promise>( fn: T, options: Partial = {}, operationName: string = 'operation' diff --git a/foundations/core/packages/rpc/src/rpc.ts b/foundations/core/packages/rpc/src/rpc.ts index cab4593d11..797bbe6b1b 100644 --- a/foundations/core/packages/rpc/src/rpc.ts +++ b/foundations/core/packages/rpc/src/rpc.ts @@ -55,10 +55,10 @@ export interface HelloResponse extends Response { useCompression?: boolean } -function isTotalArray (value: any): value is { total?: number, lookupMap?: Record } & any[] { +function isTotalArray(value: any): value is { total?: number; lookupMap?: Record } & any[] { return Array.isArray(value) && ((value as any).total !== undefined || (value as any).lookupMap !== undefined) } -export function rpcJSONReplacer (key: string, value: any): any { +export function rpcJSONReplacer(key: string, value: any): any { if (isTotalArray(value)) { return { dataType: 'TotalArray', @@ -88,7 +88,7 @@ export function rpcJSONReplacer (key: string, value: any): any { } } -export function rpcJSONReceiver (key: string, value: any): any { +export function rpcJSONReceiver(key: string, value: any): any { if (typeof value === 'object' && value !== null) { if (value.dataType === 'TotalArray') { return Object.assign(value.value, { total: value.total, lookupMap: value.lookupMap }) @@ -140,14 +140,14 @@ export interface Response { export class RPCHandler { packr = new Packr({ structuredClone: true, bundleStrings: true, copyBuffers: false }) - protoSerialize (object: object, binary: boolean): any { + protoSerialize(object: object, binary: boolean): any { if (!binary) { return JSON.stringify(object, rpcJSONReplacer) } return new Uint8Array(this.packr.pack(object)) } - protoDeserialize (data: any, binary: boolean): any { + protoDeserialize(data: any, binary: boolean): any { if (!binary) { let _data = data if (_data instanceof ArrayBuffer) { @@ -170,7 +170,7 @@ export class RPCHandler { * @param object - * @returns */ - serialize (object: Request | Response, binary: boolean): any { + serialize(object: Request | Response, binary: boolean): any { if ((object as any).result !== undefined) { ;(object as any).result = rpcJSONReplacer('result', (object as any).result) } @@ -210,6 +210,6 @@ export class RPCHandler { * @param id - * @returns */ -export function fromStatus (status: Status, id?: ReqId): Response { +export function fromStatus(status: Status, id?: ReqId): Response { return { id, error: status } } diff --git a/foundations/core/packages/rpc/src/sliding.ts b/foundations/core/packages/rpc/src/sliding.ts index 15ffbfa275..84dae8fb5e 100644 --- a/foundations/core/packages/rpc/src/sliding.ts +++ b/foundations/core/packages/rpc/src/sliding.ts @@ -2,15 +2,15 @@ import type { RateLimitInfo } from './rpc' export class SlidingWindowRateLimitter { private readonly rateLimits = new Map< - string, - { - requests: number[] - rejectedRequests: number // Counter for rejected requests - resetTime: number - } + string, + { + requests: number[] + rejectedRequests: number // Counter for rejected requests + resetTime: number + } >() - constructor ( + constructor( readonly rateLimitMax: number, readonly rateLimitWindow: number, readonly now: () => number = Date.now @@ -19,7 +19,7 @@ export class SlidingWindowRateLimitter { this.rateLimitWindow = rateLimitWindow } - public checkRateLimit (groupId: string): RateLimitInfo { + public checkRateLimit(groupId: string): RateLimitInfo { const now = this.now() const windowStart = now - this.rateLimitWindow @@ -68,7 +68,7 @@ export class SlidingWindowRateLimitter { } // Add a reset method for testing purposes - public reset (): void { + public reset(): void { this.rateLimits.clear() } } diff --git a/foundations/core/packages/storage-client/src/__tests__/integration.test.ts b/foundations/core/packages/storage-client/src/__tests__/integration.test.ts index 31817c5116..0d68bca774 100644 --- a/foundations/core/packages/storage-client/src/__tests__/integration.test.ts +++ b/foundations/core/packages/storage-client/src/__tests__/integration.test.ts @@ -40,23 +40,23 @@ class MockXMLHttpRequest { public onabort: (() => void) | null = null public ontimeout: (() => void) | null = null - open (method: string, url: string, async: boolean = true): void { + open(method: string, url: string, async: boolean = true): void { this.method = method this.url = url } - setRequestHeader (key: string, value: string): void { + setRequestHeader(key: string, value: string): void { this.headers[key] = value } - send (body: any): void { + send(body: any): void { this.body = body setTimeout(() => { this.onload?.() }, 0) } - abort (): void { + abort(): void { this.onabort?.() } } @@ -349,7 +349,7 @@ describe('Storage Client Integration Tests', () => { describe('Error Handling Integration', () => { it('should handle upload failures across all storage types', async () => { - const configs: Array<{ name: string, config: FileStorageConfig }> = [ + const configs: Array<{ name: string; config: FileStorageConfig }> = [ { name: 'Front', config: { uploadUrl: 'https://front.example.com' } }, { name: 'Datalake', @@ -383,7 +383,7 @@ describe('Storage Client Integration Tests', () => { }) it('should handle delete failures across all storage types', async () => { - const configs: Array<{ name: string, config: FileStorageConfig }> = [ + const configs: Array<{ name: string; config: FileStorageConfig }> = [ { name: 'Front', config: { uploadUrl: 'https://front.example.com' } }, { name: 'Datalake', @@ -456,7 +456,7 @@ describe('Storage Client Integration Tests', () => { signal: controller.signal } - const configs: Array<{ name: string, config: FileStorageConfig }> = [ + const configs: Array<{ name: string; config: FileStorageConfig }> = [ { name: 'Front', config: { uploadUrl: 'https://front.example.com' } }, { name: 'Datalake', diff --git a/foundations/core/packages/storage-client/src/__tests__/upload.test.ts b/foundations/core/packages/storage-client/src/__tests__/upload.test.ts index 198203c4e0..757b3349c4 100644 --- a/foundations/core/packages/storage-client/src/__tests__/upload.test.ts +++ b/foundations/core/packages/storage-client/src/__tests__/upload.test.ts @@ -30,39 +30,39 @@ class MockXMLHttpRequest { public onabort: (() => void) | null = null public ontimeout: (() => void) | null = null - open (method: string, url: string, async: boolean = true): void { + open(method: string, url: string, async: boolean = true): void { this.method = method this.url = url } - setRequestHeader (key: string, value: string): void { + setRequestHeader(key: string, value: string): void { this.headers[key] = value } - send (body: any): void { + send(body: any): void { this.body = body // Don't auto-call onload - let tests control when it's called } - abort (): void { + abort(): void { this.onabort?.() } // Test helpers - simulateProgress (loaded: number, total: number): void { + simulateProgress(loaded: number, total: number): void { const event: Partial = { loaded, total, lengthComputable: true } this.upload.onprogress?.(event as ProgressEvent) } - simulateError (): void { + simulateError(): void { this.onerror?.() } - simulateTimeout (): void { + simulateTimeout(): void { this.ontimeout?.() } - simulateSuccess (responseText: string = ''): void { + simulateSuccess(responseText: string = ''): void { this.responseText = responseText this.onload?.() } @@ -562,7 +562,7 @@ describe('uploadMultipart', () => { const file = new File(['test content'], 'test.txt', { type: 'text/plain' }) Object.defineProperty(file, 'size', { value: 5 * 1024 * 1024 }) // 5MB - const progressUpdates: Array<{ loaded: number, total: number, percentage: number }> = [] + const progressUpdates: Array<{ loaded: number; total: number; percentage: number }> = [] const onProgress = jest.fn((progress) => { progressUpdates.push({ ...progress }) }) @@ -626,7 +626,7 @@ describe('uploadMultipart', () => { const file = new File(['test content'], 'test.txt', { type: 'text/plain' }) Object.defineProperty(file, 'size', { value: 10 * 1024 * 1024 }) // 10MB = 2 chunks - const progressUpdates: Array<{ loaded: number, total: number, percentage: number }> = [] + const progressUpdates: Array<{ loaded: number; total: number; percentage: number }> = [] const onProgress = jest.fn((progress) => { progressUpdates.push({ ...progress }) }) diff --git a/foundations/core/packages/storage-client/src/client/datalake.ts b/foundations/core/packages/storage-client/src/client/datalake.ts index 97ef5884ae..b04a34940d 100644 --- a/foundations/core/packages/storage-client/src/client/datalake.ts +++ b/foundations/core/packages/storage-client/src/client/datalake.ts @@ -25,9 +25,9 @@ const getPathname = (url: string): string => { /** @public */ export class DatalakeStorage implements FileStorage { - constructor (private readonly baseUrl: string) {} + constructor(private readonly baseUrl: string) {} - getFileUrl (workspace: string, file: string, filename?: string): string { + getFileUrl(workspace: string, file: string, filename?: string): string { const encodedWorkspace = encodePathSegment(workspace) const encodedFile = encodePathSegment(file) const path = @@ -37,12 +37,12 @@ export class DatalakeStorage implements FileStorage { return concatLink(this.baseUrl, path) } - getCookiePath (workspace: string): string { + getCookiePath(workspace: string): string { const url = concatLink(this.baseUrl, `/blob/${workspace}`) return getPathname(url) } - async getFileMeta (token: string, workspace: string, file: string): Promise> { + async getFileMeta(token: string, workspace: string, file: string): Promise> { const url = concatLink(this.baseUrl, `/meta/${encodeURIComponent(workspace)}/${encodeURIComponent(file)}`) try { const response = await fetch(url, { @@ -57,7 +57,7 @@ export class DatalakeStorage implements FileStorage { return {} } - async deleteFile (token: string, workspace: string, file: string): Promise { + async deleteFile(token: string, workspace: string, file: string): Promise { const url = this.getFileUrl(workspace, file) const response = await fetch(url, { @@ -72,7 +72,7 @@ export class DatalakeStorage implements FileStorage { } } - async uploadFile ( + async uploadFile( token: string, workspace: string, uuid: string, diff --git a/foundations/core/packages/storage-client/src/client/front.ts b/foundations/core/packages/storage-client/src/client/front.ts index 7dfa5d6896..e6386a3ab1 100644 --- a/foundations/core/packages/storage-client/src/client/front.ts +++ b/foundations/core/packages/storage-client/src/client/front.ts @@ -25,9 +25,9 @@ const getPathname = (url: string): string => { /** @public */ export class FrontStorage implements FileStorage { - constructor (private readonly baseUrl: string) {} + constructor(private readonly baseUrl: string) {} - getFileUrl (workspace: string, file: string, filename?: string): string { + getFileUrl(workspace: string, file: string, filename?: string): string { const encodedWorkspace = encodePathSegment(workspace) const encodedFile = encodePathSegment(file) const encodedFilename = encodePathSegment(filename ?? file) @@ -35,16 +35,16 @@ export class FrontStorage implements FileStorage { return concatLink(this.baseUrl, path) } - getCookiePath (workspace: string): string { + getCookiePath(workspace: string): string { const url = concatLink(this.baseUrl, `/${workspace}`) return getPathname(url) } - async getFileMeta (token: string, workspace: string, file: string): Promise> { + async getFileMeta(token: string, workspace: string, file: string): Promise> { return {} } - async deleteFile (token: string, workspace: string, file: string): Promise { + async deleteFile(token: string, workspace: string, file: string): Promise { const url = this.getFileUrl(workspace, file) const response = await fetch(url, { @@ -59,7 +59,7 @@ export class FrontStorage implements FileStorage { } } - async uploadFile ( + async uploadFile( token: string, workspace: string, uuid: string, diff --git a/foundations/core/packages/storage-client/src/client/hulylake.ts b/foundations/core/packages/storage-client/src/client/hulylake.ts index 00acdb31f6..f632da88a5 100644 --- a/foundations/core/packages/storage-client/src/client/hulylake.ts +++ b/foundations/core/packages/storage-client/src/client/hulylake.ts @@ -24,23 +24,23 @@ const getPathname = (url: string): string => { /** @public */ export class HulylakeStorage implements FileStorage { - constructor (private readonly baseUrl: string) {} + constructor(private readonly baseUrl: string) {} - getFileUrl (workspace: string, file: string, filename?: string): string { + getFileUrl(workspace: string, file: string, filename?: string): string { const path = `/api/${workspace}/${file}` return concatLink(this.baseUrl, path) } - getCookiePath (workspace: string): string { + getCookiePath(workspace: string): string { const url = concatLink(this.baseUrl, `/api/${workspace}`) return getPathname(url) } - async getFileMeta (token: string, workspace: string, file: string): Promise> { + async getFileMeta(token: string, workspace: string, file: string): Promise> { return {} } - async deleteFile (token: string, workspace: string, file: string): Promise { + async deleteFile(token: string, workspace: string, file: string): Promise { const url = this.getFileUrl(workspace, file) const response = await fetch(url, { @@ -55,7 +55,7 @@ export class HulylakeStorage implements FileStorage { } } - async uploadFile ( + async uploadFile( token: string, workspace: string, uuid: string, diff --git a/foundations/core/packages/storage-client/src/client/index.ts b/foundations/core/packages/storage-client/src/client/index.ts index 4ee30a2b8f..6c39060d0c 100644 --- a/foundations/core/packages/storage-client/src/client/index.ts +++ b/foundations/core/packages/storage-client/src/client/index.ts @@ -27,7 +27,7 @@ export interface FileStorageConfig { } /** @public */ -export function createFileStorage (config: FileStorageConfig): FileStorage { +export function createFileStorage(config: FileStorageConfig): FileStorage { const { uploadUrl, datalakeUrl, hulylakeUrl } = config if (datalakeUrl !== undefined && datalakeUrl !== '') { diff --git a/foundations/core/packages/storage-client/src/client/utils.ts b/foundations/core/packages/storage-client/src/client/utils.ts index e6e41b9a6b..83d917c45d 100644 --- a/foundations/core/packages/storage-client/src/client/utils.ts +++ b/foundations/core/packages/storage-client/src/client/utils.ts @@ -13,6 +13,6 @@ // limitations under the License. // -export function encodePathSegment (value: string): string { +export function encodePathSegment(value: string): string { return encodeURIComponent(value) } diff --git a/foundations/core/packages/storage-client/src/upload.ts b/foundations/core/packages/storage-client/src/upload.ts index 9272c9b6a9..98a16b7774 100644 --- a/foundations/core/packages/storage-client/src/upload.ts +++ b/foundations/core/packages/storage-client/src/upload.ts @@ -31,7 +31,7 @@ export interface XHRUploadResult { } /** @public */ -export async function uploadXhr (upload: XHRUpload, options?: FileStorageUploadOptions): Promise { +export async function uploadXhr(upload: XHRUpload, options?: FileStorageUploadOptions): Promise { const signal = options?.signal const onProgress = options?.onProgress @@ -108,7 +108,7 @@ export interface MultipartUpload { } /** @public */ -export async function uploadMultipart (upload: MultipartUpload, options?: FileStorageUploadOptions): Promise { +export async function uploadMultipart(upload: MultipartUpload, options?: FileStorageUploadOptions): Promise { const CHUNK_SIZE = 5 * 1024 * 1024 // 5MB chunks const { url, headers, body } = upload const signal = options?.signal @@ -119,7 +119,7 @@ export async function uploadMultipart (upload: MultipartUpload, options?: FileSt try { const { uploadId } = await multipartUploadCreate(url, { ...headers, 'Content-Type': body.type }, signal) - const parts: Array<{ partNumber: number, etag: string }> = [] + const parts: Array<{ partNumber: number; etag: string }> = [] const totalParts = Math.ceil(body.size / CHUNK_SIZE) let uploaded = 0 @@ -163,17 +163,17 @@ export async function uploadMultipart (upload: MultipartUpload, options?: FileSt } } -function throwIfAborted (signal?: AbortSignal): void { +function throwIfAborted(signal?: AbortSignal): void { if (signal?.aborted === true) { throw new Error('Upload aborted') } } -async function multipartUploadCreate ( +async function multipartUploadCreate( baseUrl: string, headers: Record, signal?: AbortSignal -): Promise<{ uuid: string, uploadId: string }> { +): Promise<{ uuid: string; uploadId: string }> { const response = await fetch(baseUrl, { signal, method: 'POST', @@ -188,11 +188,11 @@ async function multipartUploadCreate ( return { uuid, uploadId } } -async function multipartUploadComplete ( +async function multipartUploadComplete( baseUrl: string, headers: Record, uploadId: string, - parts: Array<{ partNumber: number, etag: string }>, + parts: Array<{ partNumber: number; etag: string }>, signal?: AbortSignal ): Promise { const url = new URL(concatLink(baseUrl, '/complete')) @@ -213,7 +213,7 @@ async function multipartUploadComplete ( } } -async function multipartUploadPart ( +async function multipartUploadPart( baseUrl: string, headers: Record, uploadId: string, @@ -243,7 +243,7 @@ async function multipartUploadPart ( } } -async function multipartUploadAbort (baseUrl: string, headers: Record, uploadId: string): Promise { +async function multipartUploadAbort(baseUrl: string, headers: Record, uploadId: string): Promise { const url = new URL(concatLink(baseUrl, '/abort')) url.searchParams.set('uploadId', uploadId) diff --git a/foundations/core/packages/storage/src/index.ts b/foundations/core/packages/storage/src/index.ts index 255680bb64..2104013a0a 100644 --- a/foundations/core/packages/storage/src/index.ts +++ b/foundations/core/packages/storage/src/index.ts @@ -90,40 +90,40 @@ export interface StorageAdapterEx extends StorageAdapter { */ export class DummyStorageAdapter implements StorageAdapter, StorageAdapterEx { defaultAdapter: string = '' - async syncBlobFromStorage (ctx: MeasureContext, wsIds: WorkspaceIds, objectName: string): Promise { + async syncBlobFromStorage(ctx: MeasureContext, wsIds: WorkspaceIds, objectName: string): Promise { throw new PlatformError(unknownError('Method not implemented')) } - async initialize (ctx: MeasureContext, wsIds: WorkspaceIds): Promise {} + async initialize(ctx: MeasureContext, wsIds: WorkspaceIds): Promise {} - async close (): Promise {} + async close(): Promise {} - async exists (ctx: MeasureContext, wsIds: WorkspaceIds): Promise { + async exists(ctx: MeasureContext, wsIds: WorkspaceIds): Promise { return false } - find (ctx: MeasureContext, wsIds: WorkspaceIds): StorageIterator { + find(ctx: MeasureContext, wsIds: WorkspaceIds): StorageIterator { return { next: async (ctx) => [], close: async (ctx) => {} } } - async listBuckets (ctx: MeasureContext): Promise { + async listBuckets(ctx: MeasureContext): Promise { return [] } - async make (ctx: MeasureContext, wsIds: WorkspaceIds): Promise {} + async make(ctx: MeasureContext, wsIds: WorkspaceIds): Promise {} - async delete (ctx: MeasureContext, wsIds: WorkspaceIds): Promise {} + async delete(ctx: MeasureContext, wsIds: WorkspaceIds): Promise {} - async remove (ctx: MeasureContext, wsIds: WorkspaceIds, objectNames: string[]): Promise {} + async remove(ctx: MeasureContext, wsIds: WorkspaceIds, objectNames: string[]): Promise {} - async list (ctx: MeasureContext, wsIds: WorkspaceIds): Promise { + async list(ctx: MeasureContext, wsIds: WorkspaceIds): Promise { return [] } - async listStream (ctx: MeasureContext, wsIds: WorkspaceIds): Promise { + async listStream(ctx: MeasureContext, wsIds: WorkspaceIds): Promise { return { next: async (): Promise => { return [] @@ -132,15 +132,15 @@ export class DummyStorageAdapter implements StorageAdapter, StorageAdapterEx { } } - async stat (ctx: MeasureContext, wsIds: WorkspaceIds, name: string): Promise { + async stat(ctx: MeasureContext, wsIds: WorkspaceIds, name: string): Promise { return undefined } - async get (ctx: MeasureContext, wsIds: WorkspaceIds, name: string): Promise { + async get(ctx: MeasureContext, wsIds: WorkspaceIds, name: string): Promise { throw new Error('not implemented') } - async partial ( + async partial( ctx: MeasureContext, wsIds: WorkspaceIds, objectName: string, @@ -150,11 +150,11 @@ export class DummyStorageAdapter implements StorageAdapter, StorageAdapterEx { throw new Error('not implemented') } - async read (ctx: MeasureContext, wsIds: WorkspaceIds, name: string): Promise { + async read(ctx: MeasureContext, wsIds: WorkspaceIds, name: string): Promise { throw new Error('not implemented') } - async put ( + async put( ctx: MeasureContext, wsIds: WorkspaceIds, objectName: string, @@ -165,16 +165,16 @@ export class DummyStorageAdapter implements StorageAdapter, StorageAdapterEx { throw new Error('not implemented') } - async getUrl (ctx: MeasureContext, wsIds: WorkspaceIds, objectName: string): Promise { + async getUrl(ctx: MeasureContext, wsIds: WorkspaceIds, objectName: string): Promise { throw new Error('not implemented') } } -export function createDummyStorageAdapter (): StorageAdapter { +export function createDummyStorageAdapter(): StorageAdapter { return new DummyStorageAdapter() } -export async function removeAllObjects ( +export async function removeAllObjects( ctx: MeasureContext, storage: StorageAdapter, wsIds: WorkspaceIds @@ -206,7 +206,7 @@ export async function removeAllObjects ( } } -export async function objectsToArray ( +export async function objectsToArray( ctx: MeasureContext, storage: StorageAdapter, wsIds: WorkspaceIds @@ -228,6 +228,6 @@ export async function objectsToArray ( } } -export function getDataId (wsIds: WorkspaceIds): WorkspaceDataId { +export function getDataId(wsIds: WorkspaceIds): WorkspaceDataId { return wsIds.dataId ?? (wsIds.uuid as unknown as WorkspaceDataId) } diff --git a/foundations/core/packages/text-core/src/markup/dsl.ts b/foundations/core/packages/text-core/src/markup/dsl.ts index f72a1bb2db..dd5b4424e2 100644 --- a/foundations/core/packages/text-core/src/markup/dsl.ts +++ b/foundations/core/packages/text-core/src/markup/dsl.ts @@ -17,63 +17,63 @@ import { MarkupMark, MarkupMarkType, MarkupNode, MarkupNodeType } from './model' // Nodes -export function nodeDoc (...content: MarkupNode[]): MarkupNode { +export function nodeDoc(...content: MarkupNode[]): MarkupNode { return node(MarkupNodeType.doc, ...content) } -export function nodeParagraph (...content: MarkupNode[]): MarkupNode { +export function nodeParagraph(...content: MarkupNode[]): MarkupNode { return node(MarkupNodeType.paragraph, ...content) } -export function nodeText (text: string): MarkupNode { +export function nodeText(text: string): MarkupNode { return { type: MarkupNodeType.text, text } } -export function nodeImage (attrs: { src: string, alt?: string, width?: number, height?: number }): MarkupNode { +export function nodeImage(attrs: { src: string; alt?: string; width?: number; height?: number }): MarkupNode { return { type: MarkupNodeType.image, attrs } } -export function nodeReference (attrs: { id: string, label: string, objectclass: string }): MarkupNode { +export function nodeReference(attrs: { id: string; label: string; objectclass: string }): MarkupNode { return { type: MarkupNodeType.reference, attrs } } // Marks -export function markBold (node: MarkupNode): MarkupNode { +export function markBold(node: MarkupNode): MarkupNode { return withMarks(node, mark(MarkupMarkType.bold)) } -export function markCode (node: MarkupNode): MarkupNode { +export function markCode(node: MarkupNode): MarkupNode { return withMarks(node, mark(MarkupMarkType.code)) } -export function markItalic (node: MarkupNode): MarkupNode { +export function markItalic(node: MarkupNode): MarkupNode { return withMarks(node, mark(MarkupMarkType.em)) } -export function markStrike (node: MarkupNode): MarkupNode { +export function markStrike(node: MarkupNode): MarkupNode { return withMarks(node, mark(MarkupMarkType.strike)) } -export function markUnderline (node: MarkupNode): MarkupNode { +export function markUnderline(node: MarkupNode): MarkupNode { return withMarks(node, mark(MarkupMarkType.underline)) } -export function markLink (attrs: { href: string, title: string }, node: MarkupNode): MarkupNode { +export function markLink(attrs: { href: string; title: string }, node: MarkupNode): MarkupNode { return withMarks(node, mark(MarkupMarkType.link, attrs)) } // Utility -function node (type: MarkupNodeType, ...content: MarkupNode[]): MarkupNode { +function node(type: MarkupNodeType, ...content: MarkupNode[]): MarkupNode { return { type, content } } -function mark (type: MarkupMarkType, attrs?: Record): MarkupMark { +function mark(type: MarkupMarkType, attrs?: Record): MarkupMark { return { type, attrs: attrs ?? {} } } -function withMarks (node: MarkupNode, ...marks: MarkupMark[]): MarkupNode { +function withMarks(node: MarkupNode, ...marks: MarkupMark[]): MarkupNode { const current = node.marks ?? [] current.push(...marks) diff --git a/foundations/core/packages/text-core/src/markup/model.ts b/foundations/core/packages/text-core/src/markup/model.ts index 9b275c14f0..e7cebea7c9 100644 --- a/foundations/core/packages/text-core/src/markup/model.ts +++ b/foundations/core/packages/text-core/src/markup/model.ts @@ -77,7 +77,7 @@ export interface MarkupNode { } /** @public */ -export function emptyMarkupNode (): MarkupNode { +export function emptyMarkupNode(): MarkupNode { return { type: MarkupNodeType.doc, content: [{ type: MarkupNodeType.paragraph, content: [] }] @@ -93,5 +93,5 @@ export interface LinkMark extends MarkupMark { /** @public */ export interface ReferenceMarkupNode extends MarkupNode { type: MarkupNodeType.reference - attrs: { id: string, label: string, objectclass: string } + attrs: { id: string; label: string; objectclass: string } } diff --git a/foundations/core/packages/text-core/src/markup/traverse.ts b/foundations/core/packages/text-core/src/markup/traverse.ts index 08f6dc1e5e..a935bfaaae 100644 --- a/foundations/core/packages/text-core/src/markup/traverse.ts +++ b/foundations/core/packages/text-core/src/markup/traverse.ts @@ -15,14 +15,14 @@ import { MarkupMark, MarkupNode } from './model' -export function traverseNode ( +export function traverseNode( node: MarkupNode, fn: (el: MarkupNode, parent: MarkupNode | undefined) => boolean | undefined ): void { _traverseNode(node, undefined, fn) } -function _traverseNode ( +function _traverseNode( node: MarkupNode, parent: MarkupNode | undefined, fn: (el: MarkupNode, parent: MarkupNode | undefined) => boolean | undefined @@ -35,19 +35,19 @@ function _traverseNode ( } } -export function traverseNodeMarks (node: MarkupNode, f: (el: MarkupMark) => void): void { +export function traverseNodeMarks(node: MarkupNode, f: (el: MarkupMark) => void): void { node.marks?.forEach((p) => { f(p) }) } -export function traverseNodeContent (node: MarkupNode, f: (el: MarkupNode) => void): void { +export function traverseNodeContent(node: MarkupNode, f: (el: MarkupNode) => void): void { node.content?.forEach((p) => { f(p) }) } -export function traverseAllMarks (node: MarkupNode, f: (el: MarkupNode, mark: MarkupMark) => void): void { +export function traverseAllMarks(node: MarkupNode, f: (el: MarkupNode, mark: MarkupMark) => void): void { traverseNode(node, (node) => { traverseNodeMarks(node, (mark) => { f(node, mark) diff --git a/foundations/core/packages/text-core/src/markup/utils.ts b/foundations/core/packages/text-core/src/markup/utils.ts index dd5efd7630..0643f177fa 100644 --- a/foundations/core/packages/text-core/src/markup/utils.ts +++ b/foundations/core/packages/text-core/src/markup/utils.ts @@ -26,7 +26,7 @@ import { traverseAllMarks, traverseNode } from './traverse' export const EmptyMarkup: Markup = jsonToMarkup(emptyMarkupNode()) /** @public */ -export function isEmptyMarkup (markup: Markup | undefined): boolean { +export function isEmptyMarkup(markup: Markup | undefined): boolean { if (markup === undefined || markup === null || markup === '') { return true } @@ -34,7 +34,7 @@ export function isEmptyMarkup (markup: Markup | undefined): boolean { } /** @public */ -export function areEqualMarkups (markup1: Markup, markup2: Markup): boolean { +export function areEqualMarkups(markup1: Markup, markup2: Markup): boolean { if (markup1 === markup2) { return true } @@ -50,11 +50,11 @@ export function areEqualMarkups (markup1: Markup, markup2: Markup): boolean { } /** @public */ -export function areEqualJson (json1: MarkupNode, json2: MarkupNode): boolean { +export function areEqualJson(json1: MarkupNode, json2: MarkupNode): boolean { return equalNodes(json1, json2) } -function equalNodes (node1: MarkupNode, node2: MarkupNode): boolean { +function equalNodes(node1: MarkupNode, node2: MarkupNode): boolean { if (node1.type !== node2.type) return false const text1 = node1.text ?? '' @@ -68,7 +68,7 @@ function equalNodes (node1: MarkupNode, node2: MarkupNode): boolean { return true } -function equalArrays (a: T[] | undefined, b: T[] | undefined, equal: (a: T, b: T) => boolean): boolean { +function equalArrays(a: T[] | undefined, b: T[] | undefined, equal: (a: T, b: T) => boolean): boolean { if (a === b) return true const arr1 = a ?? [] const arr2 = b ?? [] @@ -76,14 +76,14 @@ function equalArrays (a: T[] | undefined, b: T[] | undefined, equal: (a: T, b return arr1.every((item1, i) => equal(item1, arr2[i])) } -function equalRecords (a: Record | undefined, b: Record | undefined): boolean { +function equalRecords(a: Record | undefined, b: Record | undefined): boolean { if (a === b) return true a = Object.fromEntries(Object.entries(a ?? {}).filter(([_, v]) => v != null)) b = Object.fromEntries(Object.entries(b ?? {}).filter(([_, v]) => v != null)) return deepEqual(a, b) } -export function equalMarks (a: MarkupMark, b: MarkupMark): boolean { +export function equalMarks(a: MarkupMark, b: MarkupMark): boolean { return a.type === b.type && equalRecords(a.attrs, b.attrs) } @@ -99,7 +99,7 @@ const nonEmptyNodes = [ ] /** @public */ -export function isEmptyNode (node: MarkupNode): boolean { +export function isEmptyNode(node: MarkupNode): boolean { if (emptyNodes.includes(node.type)) return true if (nonEmptyNodes.includes(node.type)) return false if (node.text !== undefined && node.text?.trim().length > 0) return false @@ -111,12 +111,12 @@ export function isEmptyNode (node: MarkupNode): boolean { // Markup /** @public */ -export function jsonToMarkup (json: MarkupNode): Markup { +export function jsonToMarkup(json: MarkupNode): Markup { return JSON.stringify(json) } /** @public */ -export function markupToJSON (markup: Markup): MarkupNode { +export function markupToJSON(markup: Markup): MarkupNode { if (markup == null || markup === '') { return emptyMarkupNode() } @@ -145,7 +145,7 @@ const ELLIPSIS_CHAR = '…' const WHITESPACE = ' ' /** @public */ -export function stripTags (markup: Markup, textLimit = 0): string { +export function stripTags(markup: Markup, textLimit = 0): string { const parsed = markupToJSON(markup) const textParts: string[] = [] @@ -195,7 +195,7 @@ export function stripTags (markup: Markup, textLimit = 0): string { return result } -export function markupToText (markup: Markup): string { +export function markupToText(markup: Markup): string { const jsonModel = markupToJSON(markup) const fragments: string[] = [] @@ -218,12 +218,12 @@ export function markupToText (markup: Markup): string { const hashedMarkNameRegex = /(.*)(--[a-zA-Z0-9+/=]{8})$/ /** @public */ -export function stripHash (attrName: string): string { +export function stripHash(attrName: string): string { return hashedMarkNameRegex.exec(attrName)?.[1] ?? attrName } /** @public */ -export function hashAttrs (attrs: any): string { +export function hashAttrs(attrs: any): string { const hash = hashIt(attrs) return (hash >>> 0).toString(16).padStart(8, '0') } diff --git a/foundations/core/packages/text-html/src/__tests__/html.test.ts b/foundations/core/packages/text-html/src/__tests__/html.test.ts index 7df7fb1c60..d9c134e535 100644 --- a/foundations/core/packages/text-html/src/__tests__/html.test.ts +++ b/foundations/core/packages/text-html/src/__tests__/html.test.ts @@ -16,7 +16,7 @@ import { MarkupNode } from '@hcengineering/text-core' import { htmlToMarkup, markupToHtml } from '..' -const tests: Array<{ name: string, markup: object, html: string }> = [ +const tests: Array<{ name: string; markup: object; html: string }> = [ { name: 'paragraph', markup: { diff --git a/foundations/core/packages/text-html/src/index.ts b/foundations/core/packages/text-html/src/index.ts index 1462f0008a..7fc738de0c 100644 --- a/foundations/core/packages/text-html/src/index.ts +++ b/foundations/core/packages/text-html/src/index.ts @@ -22,7 +22,7 @@ export function markupToHtml (markup: MarkupNode, options: HtmlSerializerOptions return serializer.serialize(markup) } -export function htmlToMarkup (html: string, options: HtmlParserOptions = {}): MarkupNode { +export function htmlToMarkup(html: string, options: HtmlParserOptions = {}): MarkupNode { const parser = new HtmlParser(options) return parser.parse(html) } diff --git a/foundations/core/packages/text-html/src/parser.ts b/foundations/core/packages/text-html/src/parser.ts index 44a8aa9fe9..2982b11e98 100644 --- a/foundations/core/packages/text-html/src/parser.ts +++ b/foundations/core/packages/text-html/src/parser.ts @@ -59,18 +59,18 @@ class HtmlParseState { private readonly stack: MarkupNode[] = [] private readonly marks: MarkupMark[] = [] - constructor ( + constructor( readonly root: MarkupNode, readonly handlers: Record ) { this.stack.push(root) } - top (): MarkupNode | undefined { + top(): MarkupNode | undefined { return this.stack[this.stack.length - 1] } - addText (text: string): void { + addText(text: string): void { const top = this.top() if (top === undefined || text.length === 0) { return @@ -96,21 +96,21 @@ class HtmlParseState { this.push(node) } - openMark (mark: MarkupMarkType, attrs?: Record): void { + openMark(mark: MarkupMarkType, attrs?: Record): void { this.marks.push(attrs !== undefined ? { type: mark, attrs } : { type: mark }) } - closeMark (mark: MarkupMarkType): void { + closeMark(mark: MarkupMarkType): void { if (this.marks[this.marks.length - 1]?.type === mark) { this.marks.pop() } } - openNode (node: MarkupNodeType, attrs?: Record): void { + openNode(node: MarkupNodeType, attrs?: Record): void { this.stack.push(attrs !== undefined ? { type: node, attrs } : { type: node }) } - closeNode (node: MarkupNodeType): void { + closeNode(node: MarkupNodeType): void { this.marks.splice(0) const info = this.stack.pop() if (info !== undefined) { @@ -118,11 +118,11 @@ class HtmlParseState { } } - addNode (node: MarkupNode): void { + addNode(node: MarkupNode): void { this.push(node) } - push (node: MarkupNode): void { + push(node: MarkupNode): void { const parent = this.top() if (parent !== undefined) { const content = parent.content ?? [] @@ -132,7 +132,7 @@ class HtmlParseState { } } -function nodeHandler ({ node, getAttrs, wrapContent, wrapNode }: HtmlNodeRule): HtmlTagHandler { +function nodeHandler({ node, getAttrs, wrapContent, wrapNode }: HtmlNodeRule): HtmlTagHandler { const wrapStack: boolean[] = [] return { @@ -170,7 +170,7 @@ function nodeHandler ({ node, getAttrs, wrapContent, wrapNode }: HtmlNodeRule): } } -function markHandler ({ mark, getAttrs }: HtmlMarkRule): HtmlTagHandler { +function markHandler({ mark, getAttrs }: HtmlMarkRule): HtmlTagHandler { return { handleOpenTag: (state: HtmlParseState, tag: string, attributes: Record) => { const attrs = @@ -187,14 +187,14 @@ function markHandler ({ mark, getAttrs }: HtmlMarkRule): HtmlTagHandler { } } -function ignoreHandler (rule: HtmlIgnoreRule): HtmlTagHandler { +function ignoreHandler(rule: HtmlIgnoreRule): HtmlTagHandler { return { handleOpenTag: () => {}, handleCloseTag: () => {} } } -function specialHandler (rule: HtmlSpecialRule): HtmlTagHandler { +function specialHandler(rule: HtmlSpecialRule): HtmlTagHandler { return { handleOpenTag: (state: HtmlParseState, tag: string, attributes: Record) => { rule.handleOpenTag(state, tag, attributes) @@ -491,7 +491,7 @@ const ignoreRules: Record = { export class HtmlParser { private readonly handlers: Record = {} - constructor (private readonly options: HtmlParserOptions = {}) { + constructor(private readonly options: HtmlParserOptions = {}) { Object.entries(nodeRules).forEach(([tag, rule]) => { this.handlers[tag] = nodeHandler(rule) }) @@ -509,7 +509,7 @@ export class HtmlParser { }) } - parse (html: string): MarkupNode { + parse(html: string): MarkupNode { const root: MarkupNode = { type: MarkupNodeType.doc, content: [] } const state = new HtmlParseState(root, this.handlers) @@ -518,7 +518,7 @@ export class HtmlParser { const parser = new Parser( { - onopentag (tag: string, attributes: Record) { + onopentag(tag: string, attributes: Record) { if (rawDepth !== undefined) { rawDepth += 1 return @@ -540,7 +540,7 @@ export class HtmlParser { } }, - ontext (text: string) { + ontext(text: string) { if (rawDepth !== undefined) { return } @@ -552,7 +552,7 @@ export class HtmlParser { state.addText(text) }, - oncomment (text: string) { + oncomment(text: string) { if (rawDepth !== undefined) { return } @@ -562,7 +562,7 @@ export class HtmlParser { state.closeNode(MarkupNodeType.comment) }, - onclosetag (tag: string) { + onclosetag(tag: string) { if (rawDepth !== undefined) { rawDepth -= 1 @@ -599,7 +599,7 @@ export class HtmlParser { } } -function extractStyleAttrs (attrs: Record, rules: HtmlStyleRule[]): Record | undefined { +function extractStyleAttrs(attrs: Record, rules: HtmlStyleRule[]): Record | undefined { const style = attrs.style if (style !== undefined) { const styles: Record = {} diff --git a/foundations/core/packages/text-html/src/serializer.ts b/foundations/core/packages/text-html/src/serializer.ts index ff427a2e4c..222351b073 100644 --- a/foundations/core/packages/text-html/src/serializer.ts +++ b/foundations/core/packages/text-html/src/serializer.ts @@ -26,9 +26,9 @@ import { export interface HtmlSerializerOptions {} export class HtmlSerializer { - constructor (private readonly options: HtmlSerializerOptions = {}) {} + constructor(private readonly options: HtmlSerializerOptions = {}) {} - serialize (markup: MarkupNode): string { + serialize(markup: MarkupNode): string { const builder = new NodeBuilder(true) addNode(builder, markup) return builder.toText() @@ -38,16 +38,16 @@ export class HtmlSerializer { class NodeBuilder { textParts: string[] = [] - constructor (private readonly addTags: boolean) {} + constructor(private readonly addTags: boolean) {} - addText (text: string): void { + addText(text: string): void { this.textParts.push(text) } - openTag ( + openTag( tag: string, attributes: Record = {}, - options?: { newLine?: boolean, selfClosing?: boolean } + options?: { newLine?: boolean; selfClosing?: boolean } ): void { if (this.addTags) { this.textParts.push('<') @@ -73,7 +73,7 @@ class NodeBuilder { } } - closeTag (tag: string, options?: { newLine: boolean }): void { + closeTag(tag: string, options?: { newLine: boolean }): void { if (this.addTags) { this.textParts.push(``) } else if (options?.newLine === true) { @@ -81,13 +81,13 @@ class NodeBuilder { } } - toText (): string { + toText(): string { return this.textParts.join('') } } // Helper function to escape HTML special characters -function escapeHtml (text: string): string { +function escapeHtml(text: string): string { return text .replace(/&/g, '&') .replace(/ void): void { +function addMark(builder: NodeBuilder, mark?: MarkupMark, next?: () => void): void { if (mark != null) { const attrs = mark.attrs ?? {} @@ -163,7 +163,7 @@ function addMark (builder: NodeBuilder, mark?: MarkupMark, next?: () => void): v } } -function addMarks (builder: NodeBuilder, marks: MarkupMark[], next?: () => void): void { +function addMarks(builder: NodeBuilder, marks: MarkupMark[], next?: () => void): void { if (marks.length > 0) { const mark = marks[0] const others = marks.slice(1) @@ -178,13 +178,13 @@ function addMarks (builder: NodeBuilder, marks: MarkupMark[], next?: () => void) } } -function addNodes (builder: NodeBuilder, nodes: MarkupNode[]): void { +function addNodes(builder: NodeBuilder, nodes: MarkupNode[]): void { nodes.forEach((childNode) => { addNode(builder, childNode) }) } -function addNodeContent (builder: NodeBuilder, node?: MarkupNode): void { +function addNodeContent(builder: NodeBuilder, node?: MarkupNode): void { if (node == null) return const attrs = node.attrs ?? {} @@ -338,7 +338,7 @@ function addNodeContent (builder: NodeBuilder, node?: MarkupNode): void { } } -function addNode (builder: NodeBuilder, node: MarkupNode): void { +function addNode(builder: NodeBuilder, node: MarkupNode): void { const marks = node.marks ?? [] if (marks.length > 0) { @@ -350,11 +350,11 @@ function addNode (builder: NodeBuilder, node: MarkupNode): void { } } -function toString (value: AttrValue | undefined): string | undefined { +function toString(value: AttrValue | undefined): string | undefined { return value !== undefined ? `${value}` : undefined } -function toNumber (value: AttrValue | undefined): number | undefined { +function toNumber(value: AttrValue | undefined): number | undefined { if (typeof value === 'boolean') { return value ? 1 : 0 } @@ -362,7 +362,7 @@ function toNumber (value: AttrValue | undefined): number | undefined { return value != null ? (typeof value === 'string' ? parseInt(value) : value) : undefined } -function toStyleAttr (attrs: Attrs): string | undefined { +function toStyleAttr(attrs: Attrs): string | undefined { const styles: string[] = [] if (attrs.textAlign != null) { diff --git a/foundations/core/packages/text-markdown/src/__tests__/markdown.test.ts b/foundations/core/packages/text-markdown/src/__tests__/markdown.test.ts index 1068e7b2ad..e7de964374 100644 --- a/foundations/core/packages/text-markdown/src/__tests__/markdown.test.ts +++ b/foundations/core/packages/text-markdown/src/__tests__/markdown.test.ts @@ -31,7 +31,7 @@ declare global { } expect.extend({ - toEqualMarkdown (received: string, expected: string) { + toEqualMarkdown(received: string, expected: string) { const pass = isMarkdownsEquals(received, expected) return { message: () => @@ -44,7 +44,7 @@ expect.extend({ }) describe('markdownToMarkup', () => { - const tests: Array<{ name: string, markdown: string, markup: object }> = [ + const tests: Array<{ name: string; markdown: string; markup: object }> = [ { name: 'simple text', markdown: 'Lorem ipsum dolor sit amet.', @@ -954,7 +954,7 @@ Lorem ipsum dolor sit amet. }) describe('markupToMarkdown', () => { - const tests: Array<{ name: string, markdown: string, markup: object }> = [ + const tests: Array<{ name: string; markdown: string; markup: object }> = [ { name: 'links', markdown: `[Link](https://example.com) @@ -1114,7 +1114,7 @@ describe('markupToMarkdown', () => { }) describe('markdownToMarkup -> markupToMarkdown', () => { - const tests: Array<{ name: string, markdown: string, alternate?: string }> = [ + const tests: Array<{ name: string; markdown: string; alternate?: string }> = [ { name: 'Italic', markdown: '*Asteriscs* and _Underscores_' }, { name: 'Bold', markdown: '**Asteriscs** and __Underscores__' }, { name: 'Bullet list with asteriscs', markdown: 'Asterisks :\r\n* Firstly\r\n* Secondly' }, diff --git a/foundations/core/packages/text-markdown/src/compare.ts b/foundations/core/packages/text-markdown/src/compare.ts index aef9fdb0a1..55934f5555 100644 --- a/foundations/core/packages/text-markdown/src/compare.ts +++ b/foundations/core/packages/text-markdown/src/compare.ts @@ -16,7 +16,7 @@ /** * Calculate Sørensen–Dice coefficient */ -export function calcSørensenDiceCoefficient (a: string, b: string): number { +export function calcSørensenDiceCoefficient(a: string, b: string): number { if (a == null || b == null) return 0 const first = a.replace(/\s+/g, '') @@ -53,13 +53,13 @@ export function calcSørensenDiceCoefficient (a: string, b: string): number { /** * Perform markdown diff/comparison to understand do we have a major differences. */ -export function isMarkdownsEquals (source1: string, source2: string): boolean { +export function isMarkdownsEquals(source1: string, source2: string): boolean { const normalized1 = normalizeMarkdown(source1) const normalized2 = normalizeMarkdown(source2) return normalized1 === normalized2 } -export function normalizeMarkdown (source: string): string { +export function normalizeMarkdown(source: string): string { if (source == null || typeof source !== 'string') return '' const tagRegex = /<(\w+)([^>]*?)(\/?)>/g diff --git a/foundations/core/packages/text-markdown/src/index.ts b/foundations/core/packages/text-markdown/src/index.ts index 7618c5548b..5c99481b9a 100644 --- a/foundations/core/packages/text-markdown/src/index.ts +++ b/foundations/core/packages/text-markdown/src/index.ts @@ -28,7 +28,7 @@ export interface MarkdownOptions { } /** @public */ -export function markupToMarkdown (markup: MarkupNode, options?: MarkdownOptions): string { +export function markupToMarkdown(markup: MarkupNode, options?: MarkdownOptions): string { const refUrl = options?.refUrl ?? 'ref://' const imageUrl = options?.imageUrl ?? 'image://' @@ -38,7 +38,7 @@ export function markupToMarkdown (markup: MarkupNode, options?: MarkdownOptions) } /** @public */ -export function markdownToMarkup (markdown: string, options?: MarkdownOptions): MarkupNode { +export function markdownToMarkup(markdown: string, options?: MarkdownOptions): MarkupNode { const refUrl = options?.refUrl ?? 'ref://' const imageUrl = options?.imageUrl ?? 'image://' diff --git a/foundations/core/packages/text-markdown/src/marks.ts b/foundations/core/packages/text-markdown/src/marks.ts index 66585ddddb..9174398dcd 100644 --- a/foundations/core/packages/text-markdown/src/marks.ts +++ b/foundations/core/packages/text-markdown/src/marks.ts @@ -16,15 +16,15 @@ import { MarkupMark, MarkupMarkType } from '@hcengineering/text-core' import { deepEqual } from 'fast-equals' -export function markAttrs (mark: MarkupMark): Record { +export function markAttrs(mark: MarkupMark): Record { return mark.attrs ?? {} } -export function isInSet (mark: MarkupMark, marks: MarkupMark[]): boolean { +export function isInSet(mark: MarkupMark, marks: MarkupMark[]): boolean { return marks.find((m) => markEq(mark, m)) !== undefined } -export function addToSet (mark: MarkupMark, marks: MarkupMark[]): MarkupMark[] { +export function addToSet(mark: MarkupMark, marks: MarkupMark[]): MarkupMark[] { const m = marks.find((m) => markEq(mark, m)) if (m !== undefined) { // We already have mark @@ -33,14 +33,14 @@ export function addToSet (mark: MarkupMark, marks: MarkupMark[]): MarkupMark[] { return [...marks, mark] } -export function removeFromSet (markType: MarkupMarkType, marks: MarkupMark[]): MarkupMark[] { +export function removeFromSet(markType: MarkupMarkType, marks: MarkupMark[]): MarkupMark[] { return marks.filter((m) => m.type !== markType) } -export function sameSet (a?: MarkupMark[], b?: MarkupMark[]): boolean { +export function sameSet(a?: MarkupMark[], b?: MarkupMark[]): boolean { return deepEqual(a, b) } -export function markEq (first: MarkupMark, other: MarkupMark): boolean { +export function markEq(first: MarkupMark, other: MarkupMark): boolean { return deepEqual(first, other) } diff --git a/foundations/core/packages/text-markdown/src/node.ts b/foundations/core/packages/text-markdown/src/node.ts index 45c6f286bc..c92b0a32fc 100644 --- a/foundations/core/packages/text-markdown/src/node.ts +++ b/foundations/core/packages/text-markdown/src/node.ts @@ -15,10 +15,10 @@ import { Attrs, MarkupNode } from '@hcengineering/text-core' -export function nodeContent (node: MarkupNode): MarkupNode[] { +export function nodeContent(node: MarkupNode): MarkupNode[] { return node?.content ?? [] } -export function nodeAttrs (node: MarkupNode): Attrs { +export function nodeAttrs(node: MarkupNode): Attrs { return node.attrs ?? {} } diff --git a/foundations/core/packages/text-markdown/src/parser.ts b/foundations/core/packages/text-markdown/src/parser.ts index 6e71bae4cc..f92a894e25 100644 --- a/foundations/core/packages/text-markdown/src/parser.ts +++ b/foundations/core/packages/text-markdown/src/parser.ts @@ -24,7 +24,7 @@ import { nodeContent } from './node' type SpecRule = T | ((tok: Token, state: MarkdownParseState) => T) -function readSpec (rule: SpecRule, tok: Token, state: MarkdownParseState): T { +function readSpec(rule: SpecRule, tok: Token, state: MarkdownParseState): T { if (typeof rule === 'function') { return (rule as (tok: Token, state: MarkdownParseState) => T)(tok, state) } @@ -50,7 +50,7 @@ interface ParsingMarkRule { } interface ParsingSpecialRule { - type: (state: MarkdownParseState, tok: Token) => { type: MarkupMarkType | MarkupNodeType, node: boolean } | undefined + type: (state: MarkdownParseState, tok: Token) => { type: MarkupMarkType | MarkupNodeType; node: boolean } | undefined getAttrs?: (tok: Token, state: MarkdownParseState) => Attrs | undefined } @@ -65,10 +65,10 @@ type HandlersRecord = Record // **************************************************************** // Markdown parser // **************************************************************** -function isText (a: MarkupNode, b: MarkupNode): boolean { +function isText(a: MarkupNode, b: MarkupNode): boolean { return (a.type === MarkupNodeType.text || a.type === MarkupNodeType.reference) && b.type === MarkupNodeType.text } -function maybeMerge (a: MarkupNode, b: MarkupNode): MarkupNode | undefined { +function maybeMerge(a: MarkupNode, b: MarkupNode): MarkupNode | undefined { if (isText(a, b) && (sameSet(a.marks, b.marks) || (a.text === '' && (a.marks?.length ?? 0) === 0))) { if (a.text === '' && (a.marks?.length ?? 0) === 0) { return { ...b } @@ -90,7 +90,7 @@ class MarkdownParseState { marks: MarkupMark[] tokenHandlers: Record void> - constructor ( + constructor( tokenHandlers: Record void>, readonly refUrl: string, readonly imageUrl: string @@ -100,18 +100,18 @@ class MarkdownParseState { this.tokenHandlers = tokenHandlers } - top (): StateElement | undefined { + top(): StateElement | undefined { return this.stack[this.stack.length - 1] } - push (elt: MarkupNode): void { + push(elt: MarkupNode): void { if (this.stack.length > 0) { const tt = this.top() tt?.content.push(elt) } } - mergeWithLast (nodes: MarkupNode[], node: MarkupNode): boolean { + mergeWithLast(nodes: MarkupNode[], node: MarkupNode): boolean { const last = nodes[nodes.length - 1] let merged: MarkupNode | undefined if (last !== undefined && (merged = maybeMerge(last, node)) !== undefined) { @@ -123,7 +123,7 @@ class MarkdownParseState { // Adds the given text to the current position in the document, // using the current marks as styling. - addText (text?: string): void { + addText(text?: string): void { const top = this.top() if (text === undefined || top === undefined || text.length === 0) { return @@ -145,16 +145,16 @@ class MarkdownParseState { } // Adds the given mark to the set of active marks. - openMark (mark: MarkupMark): void { + openMark(mark: MarkupMark): void { this.marks = addToSet(mark, this.marks) } // Removes the given mark from the set of active marks. - closeMark (mark: MarkupMarkType): void { + closeMark(mark: MarkupMarkType): void { this.marks = removeFromSet(mark, this.marks) } - parseTokens (toks: Token[] | null): void { + parseTokens(toks: Token[] | null): void { const _toks = [...(toks ?? [])] while (_toks.length > 0) { const tok = _toks.shift() @@ -197,7 +197,7 @@ class MarkdownParseState { } // Add a node at the current position. - addNode (type: MarkupNodeType, attrs: Attrs, content: MarkupNode[] = []): MarkupNode { + addNode(type: MarkupNodeType, attrs: Attrs, content: MarkupNode[] = []): MarkupNode { const node: MarkupNode = { type, content } if (Object.keys(attrs ?? {}).length > 0) { @@ -211,12 +211,12 @@ class MarkdownParseState { } // Wrap subsequent content in a node of the given type. - openNode (type: MarkupNodeType, attrs: Attrs): void { + openNode(type: MarkupNodeType, attrs: Attrs): void { this.stack.push({ type, attrs, content: [] }) } // Close and return the node that is currently on top of the stack. - closeNode (): MarkupNode { + closeNode(): MarkupNode { if (this.marks.length > 0) this.marks = [] const info = this.stack.pop() if (info !== undefined) { @@ -226,7 +226,7 @@ class MarkdownParseState { } } -function attrs ( +function attrs( spec: ParsingBlockRule | ParsingMarkRule | ParsingNodeRule, token: Token, state: MarkdownParseState @@ -236,15 +236,15 @@ function attrs ( // Code content is represented as a single token with a `content` // property in Markdown-it. -function noCloseToken (spec: ParsingBlockRule | ParsingMarkRule, type: string): boolean { +function noCloseToken(spec: ParsingBlockRule | ParsingMarkRule, type: string): boolean { return (spec.noCloseToken ?? false) || ['code_inline', 'code_block', 'fence'].indexOf(type) > 0 } -function withoutTrailingNewline (str: string): string { +function withoutTrailingNewline(str: string): string { return str[str.length - 1] === '\n' ? str.slice(0, str.length - 1) : str } -function addSpecBlock ( +function addSpecBlock( handlers: HandlersRecord, spec: ParsingBlockRule, type: string, @@ -267,7 +267,7 @@ function addSpecBlock ( } } } -function newSimpleBlockHandler (specBlock: SpecRule, spec: ParsingBlockRule): HandlerRecord { +function newSimpleBlockHandler(specBlock: SpecRule, spec: ParsingBlockRule): HandlerRecord { return (state, tok) => { state.openNode(readSpec(specBlock, tok, state), attrs(spec, tok, state)) state.addText(withoutTrailingNewline(tok.content)) @@ -275,7 +275,7 @@ function newSimpleBlockHandler (specBlock: SpecRule, spec: Parsi } } -function addSpecMark (handlers: HandlersRecord, spec: ParsingMarkRule, type: string, specMark: MarkupMarkType): void { +function addSpecMark(handlers: HandlersRecord, spec: ParsingMarkRule, type: string, specMark: MarkupMarkType): void { if (noCloseToken(spec, type)) { handlers[type] = newSimpleMarkHandler(spec, specMark) } else { @@ -287,7 +287,7 @@ function addSpecMark (handlers: HandlersRecord, spec: ParsingMarkRule, type: str } } } -function addSpecialRule (handlers: HandlersRecord, spec: ParsingSpecialRule, type: string): void { +function addSpecialRule(handlers: HandlersRecord, spec: ParsingSpecialRule, type: string): void { handlers[type + '_open'] = (state, tok) => { const type = spec.type(state, tok) if (type !== undefined) { @@ -309,11 +309,11 @@ function addSpecialRule (handlers: HandlersRecord, spec: ParsingSpecialRule, typ } } } -function addIgnoreRule (handlers: HandlersRecord, spec: ParsingIgnoreRule, type: string): void { +function addIgnoreRule(handlers: HandlersRecord, spec: ParsingIgnoreRule, type: string): void { handlers[type + '_open'] = (state, tok) => {} handlers[type + '_close'] = (state, tok) => {} } -function newSimpleMarkHandler (spec: ParsingMarkRule, specMark: MarkupMarkType): HandlerRecord { +function newSimpleMarkHandler(spec: ParsingMarkRule, specMark: MarkupMarkType): HandlerRecord { return (state: MarkdownParseState, tok: Token): void => { state.openMark({ attrs: attrs(spec, tok, state), type: specMark }) state.addText(withoutTrailingNewline(tok.content)) @@ -321,7 +321,7 @@ function newSimpleMarkHandler (spec: ParsingMarkRule, specMark: MarkupMarkType): } } -function tokenHandlers ( +function tokenHandlers( tokensBlock: Record, tokensNode: Record, tokensMark: Record, @@ -395,7 +395,7 @@ function tokenHandlers ( return handlers } -function addTextHandlers (handlers: HandlersRecord): void { +function addTextHandlers(handlers: HandlersRecord): void { handlers.text = (state, tok) => { state.addText(tok.content) } @@ -407,11 +407,11 @@ function addTextHandlers (handlers: HandlersRecord): void { } } -function addSpecNode (handlers: HandlersRecord, type: string, spec: ParsingNodeRule): void { +function addSpecNode(handlers: HandlersRecord, type: string, spec: ParsingNodeRule): void { handlers[type] = (state: MarkdownParseState, tok: Token) => state.addNode(spec.node, attrs(spec, tok, state)) } -function tokAttrGet (token: Token, name: string): string | undefined { +function tokAttrGet(token: Token, name: string): string | undefined { const attr = token.attrGet(name) if (attr != null) { return attr @@ -424,7 +424,7 @@ function tokAttrGet (token: Token, name: string): string | undefined { } } -function tokToAttrs (token: Token, ...names: string[]): Record { +function tokToAttrs(token: Token, ...names: string[]): Record { const result: Record = {} for (const name of names) { const attr = token.attrGet(name) @@ -435,7 +435,7 @@ function tokToAttrs (token: Token, ...names: string[]): Record { return result } -function todoItemMetaAttrsGet (tok: Token): Record { +function todoItemMetaAttrsGet(tok: Token): Record { const userid = tokAttrGet(tok, 'userid') const todoid = tokAttrGet(tok, 'todoid') @@ -675,7 +675,7 @@ export class MarkdownParser { tokenHandlers: Record void> htmlParser: HtmlParser - constructor (private readonly options: MarkdownParserOptions) { + constructor(private readonly options: MarkdownParserOptions) { this.tokenizer = MarkdownIt('default', { html: true }) @@ -686,7 +686,7 @@ export class MarkdownParser { this.tokenHandlers = tokenHandlers(tokensBlock, tokensNode, tokensMark, specialRule, ignoreRule, this.htmlParser) } - parse (text: string): MarkupNode { + parse(text: string): MarkupNode { const state = new MarkdownParseState(this.tokenHandlers, this.options.refUrl, this.options.imageUrl) let doc: MarkupNode @@ -714,7 +714,7 @@ export class MarkdownParser { listRule: RuleCore = (state: TaskListStateCore): boolean => { const tokens = (state as any).tokens - const states: Array<{ closeIdx: number, lastItemIdx: number }> = [] + const states: Array<{ closeIdx: number; lastItemIdx: number }> = [] // step #1 - convert list items to todo items for (let open = 0; open < tokens.length; open++) { @@ -763,7 +763,7 @@ export class MarkdownParser { } } -function convertTodoList (tokens: Token[], open: number, close: number, item: number): void { +function convertTodoList(tokens: Token[], open: number, close: number, item: number): void { if (tokens[open].type !== 'bullet_list_open') { throw new Error('bullet_list_open token expected') } @@ -777,7 +777,7 @@ function convertTodoList (tokens: Token[], open: number, close: number, item: nu } } -function convertTodoItem (tokens: Token[], open: number): boolean { +function convertTodoItem(tokens: Token[], open: number): boolean { const close = findListItemCloseToken(tokens, open) if (close !== -1) { tokens[open].type = 'todo_item_open' @@ -821,7 +821,7 @@ function convertTodoItem (tokens: Token[], open: number): boolean { return false } -function findListItemCloseToken (tokens: Token[], open: number): number { +function findListItemCloseToken(tokens: Token[], open: number): number { if (tokens[open].type !== 'list_item_open') { throw new Error('list_item_open token expected') } @@ -840,7 +840,7 @@ function findListItemCloseToken (tokens: Token[], open: number): number { // tokens[i].type === list_item_open // tokens[i + 1].type === paragraph // tokens[i + 2].type === inline -function isTodoListItem (tokens: Token[], pos: number): boolean { +function isTodoListItem(tokens: Token[], pos: number): boolean { return ( isListItemToken(tokens[pos]) && isParagraphToken(tokens[pos + 1]) && @@ -849,7 +849,7 @@ function isTodoListItem (tokens: Token[], pos: number): boolean { ) } -function convertStringLikeToken (tok: Token, attrValue?: string): string { +function convertStringLikeToken(tok: Token, attrValue?: string): string { if (typeof attrValue === 'string' && attrValue !== '') { return attrValue } diff --git a/foundations/core/packages/text-markdown/src/serializer.ts b/foundations/core/packages/text-markdown/src/serializer.ts index dd204f3d79..db879540e2 100644 --- a/foundations/core/packages/text-markdown/src/serializer.ts +++ b/foundations/core/packages/text-markdown/src/serializer.ts @@ -56,11 +56,11 @@ interface InlineState { // ************************************************************* -function backticksFor (side: boolean): string { +function backticksFor(side: boolean): string { return side ? '`' : '`' } -function isPlainURL (link: MarkupMark, parent: MarkupNode, index: number): boolean { +function isPlainURL(link: MarkupMark, parent: MarkupNode, index: number): boolean { if (link.attrs?.title !== undefined || !/^\w+:/.test(link.attrs?.href)) return false const content = parent.content?.[index] if (content === undefined) { @@ -459,7 +459,7 @@ export class MarkdownState implements IState { imageUrl: string htmlWriter: HtmlWriter - constructor ( + constructor( nodes = storeNodes, marks = storeMarks, options: StateOptions = { tightLists: true, refUrl: 'ref://', imageUrl: 'http://' } @@ -476,7 +476,7 @@ export class MarkdownState implements IState { this.options = options } - flushClose (size: number): void { + flushClose(size: number): void { if (this.closed) { if (!this.atBlank()) this.out += '\n' if (size > 1) { @@ -486,7 +486,7 @@ export class MarkdownState implements IState { } } - private addDelim (size: number): void { + private addDelim(size: number): void { let delimMin = this.delim const trim = /\s+$/.exec(delimMin) if (trim !== null) { @@ -497,11 +497,11 @@ export class MarkdownState implements IState { } } - renderHtml (node: MarkupNode): string { + renderHtml(node: MarkupNode): string { return this.htmlWriter(node) } - wrapBlock (delim: string, firstDelim: string | null, node: MarkupNode, f: () => void): void { + wrapBlock(delim: string, firstDelim: string | null, node: MarkupNode, f: () => void): void { const old = this.delim this.write(firstDelim ?? delim) this.delim += delim @@ -510,13 +510,13 @@ export class MarkdownState implements IState { this.closeBlock(node) } - atBlank (): boolean { + atBlank(): boolean { return /(^|\n)$/.test(this.out) } // :: () // Ensure the current content ends with a newline. - ensureNewLine (): void { + ensureNewLine(): void { if (!this.atBlank()) this.out += '\n' } @@ -524,7 +524,7 @@ export class MarkdownState implements IState { // Prepare the state for writing output (closing closed paragraphs, // adding delimiters, and so on), and then optionally add content // (unescaped) to the output. - write (content: string): void { + write(content: string): void { this.flushClose(2) if (this.delim !== undefined && this.atBlank()) this.out += this.delim if (content.length > 0) this.out += content @@ -532,7 +532,7 @@ export class MarkdownState implements IState { // :: (Node) // Close the block for the given node. - closeBlock (node: MarkupNode): void { + closeBlock(node: MarkupNode): void { this.closedNode = node this.closed = true } @@ -540,7 +540,7 @@ export class MarkdownState implements IState { // :: (string, ?bool) // Add the given text to the document. When escape is not `false`, // it will be escaped. - text (text: string, escape = false): void { + text(text: string, escape = false): void { const lines = text.split('\n') for (let i = 0; i < lines.length; i++) { const startOfLine = this.atBlank() || this.closed @@ -561,13 +561,13 @@ export class MarkdownState implements IState { // :: (Node) // Render the contents of `parent` as block nodes. - renderContent (parent: MarkupNode): void { + renderContent(parent: MarkupNode): void { nodeContent(parent).forEach((node: MarkupNode, i: number) => { this.render(node, parent, i) }) } - reorderMixableMark (state: InlineState, mark: MarkupMark, i: number, len: number): void { + reorderMixableMark(state: InlineState, mark: MarkupMark, i: number, len: number): void { for (let j = 0; j < state.active.length; j++) { const other = state.active[j] if (!this.marks[other.type].mixable || this.checkSwitchMarks(i, j, state, mark, other, len)) { @@ -576,7 +576,7 @@ export class MarkdownState implements IState { } } - reorderMixableMarks (state: InlineState, len: number): void { + reorderMixableMarks(state: InlineState, len: number): void { // Try to reorder 'mixable' marks, such as em and strong, which // in Markdown may be opened and closed in different order, so // that order of the marks for the token matches the order in @@ -593,7 +593,7 @@ export class MarkdownState implements IState { } } - private checkSwitchMarks ( + private checkSwitchMarks( i: number, j: number, state: InlineState, @@ -608,7 +608,7 @@ export class MarkdownState implements IState { return true } - private switchMarks (i: number, j: number, state: InlineState, mark: MarkupMark, len: number): void { + private switchMarks(i: number, j: number, state: InlineState, mark: MarkupMark, len: number): void { if (i > j) { state.marks = state.marks .slice(0, j) @@ -625,7 +625,7 @@ export class MarkdownState implements IState { } } - renderNodeInline (state: InlineState, index: number): void { + renderNodeInline(state: InlineState, index: number): void { state.marks = state.node?.marks ?? [] this.updateHardBreakMarks(state, index) @@ -647,7 +647,7 @@ export class MarkdownState implements IState { this.checkOpenMarks(state, len, index, inner, noEsc) } - private checkOpenMarks ( + private checkOpenMarks( state: InlineState, len: number, index: number, @@ -667,7 +667,7 @@ export class MarkdownState implements IState { } } - private isNoEscapeRequire ( + private isNoEscapeRequire( node: MarkupNode, inner: MarkupMark | undefined, noEsc: boolean, @@ -676,7 +676,7 @@ export class MarkdownState implements IState { return inner !== undefined && noEsc && node.type === MarkupNodeType.text } - private renderMarkText (inner: MarkupMark, state: InlineState, index: number): void { + private renderMarkText(inner: MarkupMark, state: InlineState, index: number): void { this.text( this.markString(inner, true, state.parent, index) + (state.node?.text as string) + @@ -685,7 +685,7 @@ export class MarkdownState implements IState { ) } - private updateActiveMarks (state: InlineState, len: number, index: number): void { + private updateActiveMarks(state: InlineState, len: number, index: number): void { while (state.active.length < len) { const add = state.marks[state.active.length] state.active.push(add) @@ -693,7 +693,7 @@ export class MarkdownState implements IState { } } - private checkCloseMarks (state: InlineState, len: number, index: number): void { + private checkCloseMarks(state: InlineState, len: number, index: number): void { let keep = 0 while (keep < Math.min(state.active.length, len) && markEq(state.marks[keep], state.active[keep])) { ++keep @@ -708,7 +708,7 @@ export class MarkdownState implements IState { } } - private adjustLeading (state: InlineState): string { + private adjustLeading(state: InlineState): string { let leading = state.trailing state.trailing = '' // If whitespace has to be expelled from the node, adjust @@ -726,11 +726,11 @@ export class MarkdownState implements IState { return leading } - private isMarksHasExpelEnclosingWhitespace (state: InlineState): boolean { + private isMarksHasExpelEnclosingWhitespace(state: InlineState): boolean { return state.marks.some((mark) => this.marks[mark.type]?.expelEnclosingWhitespace) } - private adjustLeadingTextNode ( + private adjustLeadingTextNode( lead: string, trail: string, state: InlineState, @@ -745,13 +745,13 @@ export class MarkdownState implements IState { } } - private updateHardBreakMarks (state: InlineState, index: number): void { + private updateHardBreakMarks(state: InlineState, index: number): void { if (state.node !== undefined && state.node.type === MarkupNodeType.hard_break) { state.marks = this.filterHardBreakMarks(state.marks, index, state) } } - private filterHardBreakMarks (marks: MarkupMark[], index: number, state: InlineState): MarkupMark[] { + private filterHardBreakMarks(marks: MarkupMark[], index: number, state: InlineState): MarkupMark[] { const content = state.parent.content ?? [] const next = content[index + 1] if (!this.isHardbreakText(next)) { @@ -760,19 +760,19 @@ export class MarkdownState implements IState { return marks.filter((m) => isInSet(m, next.marks ?? [])) } - private isHardbreakText (next?: MarkupNode): boolean { + private isHardbreakText(next?: MarkupNode): boolean { return ( next !== undefined && (next.type !== MarkupNodeType.text || (next.text !== undefined && /\S/.test(next.text))) ) } - private isText (node?: MarkupNode): boolean { + private isText(node?: MarkupNode): boolean { return node !== undefined && node.type === MarkupNodeType.text && node.text !== undefined } // :: (Node) // Render the contents of `parent` as inline content. - renderInline (parent: MarkupNode): void { + renderInline(parent: MarkupNode): void { const state: InlineState = { active: [], trailing: '', parent, marks: [] } nodeContent(parent).forEach((nde, index) => { state.node = nde @@ -787,7 +787,7 @@ export class MarkdownState implements IState { // indentation added to all lines except the first in an item, // `firstDelim` is a function going from an item index to a // delimiter for the first line of the item. - renderList (node: MarkupNode, delim: string, firstDelim: FirstDelim): void { + renderList(node: MarkupNode, delim: string, firstDelim: FirstDelim): void { this.flushListClose(node) const isTight: boolean = @@ -801,7 +801,7 @@ export class MarkdownState implements IState { this.inTightList = prevTight } - renderListItem ( + renderListItem( node: MarkupNode, child: MarkupNode, i: number, @@ -815,7 +815,7 @@ export class MarkdownState implements IState { }) } - private flushListClose (node: MarkupNode): void { + private flushListClose(node: MarkupNode): void { if (this.closed && this.closedNode?.type === node.type) { this.flushClose(3) } else if (this.inTightList) { @@ -827,7 +827,7 @@ export class MarkdownState implements IState { // Escape the given string so that it can safely appear in Markdown // content. If `startOfLine` is true, also escape characters that // has special meaning only at the start of the line. - esc (str: string, startOfLine = false): string { + esc(str: string, startOfLine = false): string { if (str == null) { return '' } @@ -839,7 +839,7 @@ export class MarkdownState implements IState { return str } - htmlEsc (str: string): string { + htmlEsc(str: string): string { if (str == null) { return '' } @@ -852,14 +852,14 @@ export class MarkdownState implements IState { .replace(/'/g, ''') } - quote (str: string): string { + quote(str: string): string { const wrap = !(str?.includes('"') ?? false) ? '""' : !(str?.includes("'") ?? false) ? "''" : '()' return wrap[0] + str + wrap[1] } // :: (string, number) → string // Repeat the given string `n` times. - repeat (str: string, n: number): string { + repeat(str: string, n: number): string { let out = '' for (let i = 0; i < n; i++) out += str return out @@ -867,7 +867,7 @@ export class MarkdownState implements IState { // : (Mark, bool, string?) → string // Get the markdown string for a given opening or closing mark. - markString (mark: MarkupMark, open: boolean, parent: MarkupNode, index: number): string { + markString(mark: MarkupMark, open: boolean, parent: MarkupNode, index: number): string { let value = mark.attrs?.marker if (value === undefined) { const info = this.marks[mark.type] @@ -880,7 +880,7 @@ export class MarkdownState implements IState { } } -function makeQuery (obj: Record): string { +function makeQuery(obj: Record): string { return Object.keys(obj) .filter((it) => it[1] != null) .map(function (k) { diff --git a/foundations/core/packages/text-ydoc/src/__tests__/ydoc.test.ts b/foundations/core/packages/text-ydoc/src/__tests__/ydoc.test.ts index 43d6f6fab5..7f078a24b8 100644 --- a/foundations/core/packages/text-ydoc/src/__tests__/ydoc.test.ts +++ b/foundations/core/packages/text-ydoc/src/__tests__/ydoc.test.ts @@ -31,7 +31,7 @@ declare global { } expect.extend({ - toEqualMarkup (received: string, expected: string) { + toEqualMarkup(received: string, expected: string) { const pass = received === expected || deepEqual(JSON.parse(received), JSON.parse(expected)) return { message: () => @@ -42,7 +42,7 @@ expect.extend({ } }, - toEqualYdoc (received: YDoc, expected: YDoc) { + toEqualYdoc(received: YDoc, expected: YDoc) { const expectedJSON = expected.toJSON() const receivedJSON = received.toJSON() @@ -57,19 +57,19 @@ expect.extend({ } }) -function referenceMarkupToYDoc (markup: Markup, field: string): YDoc { +function referenceMarkupToYDoc(markup: Markup, field: string): YDoc { const ydoc = new YDoc({ guid: generateId() }) const fragment = ydoc.getXmlFragment(field) prosemirrorToYXmlFragment(jsonToPmNode(markupToJSON(markup)), fragment) return ydoc } -function referenceYDocToMarkup (ydoc: YDoc, field: string): Markup { +function referenceYDocToMarkup(ydoc: YDoc, field: string): Markup { const json = yDocToProsemirrorJSON(ydoc, field) return jsonToMarkup(json as MarkupNode) } -const markups: Array<{ name: string, markup: Markup, skipYdocCompare?: boolean }> = [ +const markups: Array<{ name: string; markup: Markup; skipYdocCompare?: boolean }> = [ { name: 'text', markup: '{"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"hello world"}]}]}' diff --git a/foundations/core/packages/text-ydoc/src/ydoc.ts b/foundations/core/packages/text-ydoc/src/ydoc.ts index f777c7eb4a..65f151b2ba 100644 --- a/foundations/core/packages/text-ydoc/src/ydoc.ts +++ b/foundations/core/packages/text-ydoc/src/ydoc.ts @@ -23,7 +23,7 @@ import { Doc as YDoc, XmlElement as YXmlElement, XmlFragment as YXmlFragment, Xm * * @public */ -export function markupToYDoc (markup: Markup, field: string): YDoc { +export function markupToYDoc(markup: Markup, field: string): YDoc { return jsonToYDoc(markupToJSON(markup), field) } @@ -32,7 +32,7 @@ export function markupToYDoc (markup: Markup, field: string): YDoc { * * @public */ -export function jsonToYDoc (json: MarkupNode, field: string): YDoc { +export function jsonToYDoc(json: MarkupNode, field: string): YDoc { const ydoc = new YDoc({ guid: generateId() }) const fragment = ydoc.getXmlFragment(field) @@ -42,7 +42,7 @@ export function jsonToYDoc (json: MarkupNode, field: string): YDoc { return ydoc } -function nodeToXmlElement (parent: YXmlFragment, node: MarkupNode): YXmlElement | YXmlText { +function nodeToXmlElement(parent: YXmlFragment, node: MarkupNode): YXmlElement | YXmlText { const elem = node.type === 'text' ? new YXmlText() : new YXmlElement(node.type) parent.push([elem]) @@ -88,13 +88,13 @@ function nodeToXmlElement (parent: YXmlFragment, node: MarkupNode): YXmlElement * * @public */ -export function yDocToMarkup (ydoc: YDoc, field: string): Markup { +export function yDocToMarkup(ydoc: YDoc, field: string): Markup { const fragment = ydoc.getXmlFragment(field) const json = xmlFragmentToNode(fragment) return jsonToMarkup({ type: MarkupNodeType.doc, content: json }) } -function xmlFragmentToNode (fragment: YXmlFragment): MarkupNode[] { +function xmlFragmentToNode(fragment: YXmlFragment): MarkupNode[] { const result: MarkupNode[] = [] for (let i = 0; i < fragment.length; i++) { diff --git a/foundations/core/packages/text/src/kit.ts b/foundations/core/packages/text/src/kit.ts index 7600dbf98f..f3432ffad3 100644 --- a/foundations/core/packages/text/src/kit.ts +++ b/foundations/core/packages/text/src/kit.ts @@ -29,13 +29,13 @@ export type ExtensionSpecOptions = { [K in keyof T]: T[K] extends ExtensionSpec ? Partial | boolean : never } -export function extensionKit ( +export function extensionKit( name: string, fn: (e: ExtensionFactory, o: O) => K ): Extension> { return Extension.create({ name, - addExtensions () { + addExtensions() { const e: ExtensionFactory = (extension, options) => { // ExtensionFactory -> ExtensionSpec is mostly intented as a wrapper to provide a comfortable typing return { extension, options: options ?? true } @@ -70,7 +70,7 @@ export function extensionKit ( }) } -export function mergeKitOptions> (target: T, source: T): T { +export function mergeKitOptions>(target: T, source: T): T { if (typeof target === 'object' && typeof source === 'object') { const output = { ...target } Object.keys(source).forEach((key: keyof T) => { diff --git a/foundations/core/packages/text/src/marks/code.ts b/foundations/core/packages/text/src/marks/code.ts index 282848acfe..d50c7f18b1 100644 --- a/foundations/core/packages/text/src/marks/code.ts +++ b/foundations/core/packages/text/src/marks/code.ts @@ -15,7 +15,7 @@ export const codeOptions: CodeOptions = { * import 'prosemirror-codemark/dist/codemark.css' */ export const CodeExtension = Code.extend({ - addProseMirrorPlugins () { + addProseMirrorPlugins() { return [ ...codemark({ markType: this.editor.schema.marks.code }), new Plugin({ diff --git a/foundations/core/packages/text/src/marks/colors.ts b/foundations/core/packages/text/src/marks/colors.ts index a29f83a49f..6f93d7aee9 100644 --- a/foundations/core/packages/text/src/marks/colors.ts +++ b/foundations/core/packages/text/src/marks/colors.ts @@ -34,13 +34,13 @@ declare module '@tiptap/core' { export const BackgroundColor = Extension.create({ name: 'backgroundColor', - addOptions () { + addOptions() { return { types: [] } }, - addGlobalAttributes () { + addGlobalAttributes() { return [ { types: this.options.types, @@ -65,23 +65,23 @@ export const BackgroundColor = Extension.create({ ] }, - addCommands () { + addCommands() { return { setBackgroundColor: (backgroundColor: string) => - ({ commands }) => { - return this.options.types - .map((type) => commands.updateAttributes(type, { backgroundColor })) - .every((response) => response) - }, + ({ commands }) => { + return this.options.types + .map((type) => commands.updateAttributes(type, { backgroundColor })) + .every((response) => response) + }, unsetBackgroundColor: () => - ({ commands }) => { - return this.options.types - .map((type) => commands.resetAttributes(type, 'backgroundColor')) - .every((response) => response) - } + ({ commands }) => { + return this.options.types + .map((type) => commands.resetAttributes(type, 'backgroundColor')) + .every((response) => response) + } } } }) @@ -93,13 +93,13 @@ export interface TextColorOptions { export const TextColor = Extension.create({ name: 'textColor', - addOptions () { + addOptions() { return { types: ['textStyle'] } }, - addGlobalAttributes () { + addGlobalAttributes() { return [ { types: this.options.types, @@ -124,13 +124,13 @@ export const TextColor = Extension.create({ ] }, - addCommands () { + addCommands() { return { setTextColor: (color: string) => - ({ chain }) => { - return chain().setMark('textStyle', { color }).run() - }, + ({ chain }) => { + return chain().setMark('textStyle', { color }).run() + }, unsetTextColor: () => diff --git a/foundations/core/packages/text/src/marks/inlineComment.ts b/foundations/core/packages/text/src/marks/inlineComment.ts index a2d942fc57..f3daf43149 100644 --- a/foundations/core/packages/text/src/marks/inlineComment.ts +++ b/foundations/core/packages/text/src/marks/inlineComment.ts @@ -23,7 +23,7 @@ export const InlineCommentMark = Mark.create({ inclusive: false, - parseHTML () { + parseHTML() { return [ { tag: 'span.proseInlineComment[data-inline-comment-thread]' @@ -31,11 +31,11 @@ export const InlineCommentMark = Mark.create({ ] }, - renderHTML ({ HTMLAttributes, mark }) { + renderHTML({ HTMLAttributes, mark }) { return ['span', { ...HTMLAttributes, class: 'proseInlineComment' }, 0] }, - addAttributes () { + addAttributes() { const name = 'data-inline-comment-thread-id' return { thread: { @@ -50,12 +50,12 @@ export const InlineCommentMark = Mark.create({ } }, - addProseMirrorPlugins () { + addProseMirrorPlugins() { return [...(this.parent?.() ?? []), InlineCommentPasteFixPlugin()] } }) -function removeMarkFromNode (node: Node, name: string): Node { +function removeMarkFromNode(node: Node, name: string): Node { if (node.isText) { return node.mark(node.marks.filter((mark) => mark.type.name !== name)) } @@ -71,7 +71,7 @@ function removeMarkFromNode (node: Node, name: string): Node { return node } -export function InlineCommentPasteFixPlugin (): Plugin { +export function InlineCommentPasteFixPlugin(): Plugin { return new Plugin({ key: new PluginKey('inline-comment-paste-fix-plugin'), props: { diff --git a/foundations/core/packages/text/src/marks/noteBase.ts b/foundations/core/packages/text/src/marks/noteBase.ts index 1114d061ce..6cee47eb56 100644 --- a/foundations/core/packages/text/src/marks/noteBase.ts +++ b/foundations/core/packages/text/src/marks/noteBase.ts @@ -26,7 +26,7 @@ declare module '@tiptap/core' { export const NoteBaseExtension = Mark.create({ name, - parseHTML () { + parseHTML() { return [ { tag: `span[data-mark="${name}"]` @@ -34,7 +34,7 @@ export const NoteBaseExtension = Mark.create({ ] }, - renderHTML ({ HTMLAttributes, mark }) { + renderHTML({ HTMLAttributes, mark }) { return [ 'span', { ...HTMLAttributes, 'data-mark': this.name, class: `theme-text-editor-note-anchor ${mark.attrs.kind}` }, @@ -42,7 +42,7 @@ export const NoteBaseExtension = Mark.create({ ] }, - addAttributes () { + addAttributes() { return { title: { default: null diff --git a/foundations/core/packages/text/src/marks/qmsInlineCommentMark.ts b/foundations/core/packages/text/src/marks/qmsInlineCommentMark.ts index 72391e10dc..600e36db76 100644 --- a/foundations/core/packages/text/src/marks/qmsInlineCommentMark.ts +++ b/foundations/core/packages/text/src/marks/qmsInlineCommentMark.ts @@ -9,7 +9,7 @@ export const QMSInlineCommentMark = Mark.create({ name: NAME, inline: true, - parseHTML () { + parseHTML() { return [ { tag: `span[${NAME}]` @@ -17,7 +17,7 @@ export const QMSInlineCommentMark = Mark.create({ ] }, - renderHTML ({ HTMLAttributes }) { + renderHTML({ HTMLAttributes }) { return ['span', HTMLAttributes, 0] } }) diff --git a/foundations/core/packages/text/src/markup/utils.ts b/foundations/core/packages/text/src/markup/utils.ts index 0746171454..e84f360e61 100644 --- a/foundations/core/packages/text/src/markup/utils.ts +++ b/foundations/core/packages/text/src/markup/utils.ts @@ -25,25 +25,25 @@ import { defaultExtensions } from '../extensions' const defaultSchema = getSchema(defaultExtensions) /** @public */ -export function getMarkup (editor?: Editor): Markup { +export function getMarkup(editor?: Editor): Markup { return jsonToMarkup(editor?.getJSON() as MarkupNode) } // Markup /** @public */ -export function jsonToPmNode (json: MarkupNode, schema?: Schema, extensions?: Extensions): ProseMirrorNode { +export function jsonToPmNode(json: MarkupNode, schema?: Schema, extensions?: Extensions): ProseMirrorNode { schema ??= extensions == null ? defaultSchema : getSchema(extensions ?? defaultExtensions) return ProseMirrorNode.fromJSON(schema, json) } /** @public */ -export function pmNodeToJSON (node: ProseMirrorNode): MarkupNode { +export function pmNodeToJSON(node: ProseMirrorNode): MarkupNode { return node.toJSON() } /** @public */ -export function jsonToText (node: MarkupNode, schema?: Schema, extensions?: Extensions): string { +export function jsonToText(node: MarkupNode, schema?: Schema, extensions?: Extensions): string { const pmNode = jsonToPmNode(node, schema, extensions) return pmNode.textBetween(0, pmNode.content.size, '\n', '') } @@ -56,7 +56,7 @@ export function jsonToText (node: MarkupNode, schema?: Schema, extensions?: Exte // HTML /** @public */ -export function htmlToMarkup (html: string, extensions?: Extensions): Markup { +export function htmlToMarkup(html: string, extensions?: Extensions): Markup { const json = htmlToJSON(html, extensions) return jsonToMarkup(json) } @@ -68,13 +68,13 @@ export function htmlToMarkup (html: string, extensions?: Extensions): Markup { // } /** @public */ -export function htmlToJSON (html: string, extensions?: Extensions): MarkupNode { +export function htmlToJSON(html: string, extensions?: Extensions): MarkupNode { extensions = extensions ?? defaultExtensions return generateJSON(html, extensions, { preserveWhitespace: 'full' }) as MarkupNode } /** @public */ -export function jsonToHTML (json: MarkupNode, extensions?: Extensions): string { +export function jsonToHTML(json: MarkupNode, extensions?: Extensions): string { extensions = extensions ?? defaultExtensions return generateHTML(json, extensions) } diff --git a/foundations/core/packages/text/src/nodes/codeblock.ts b/foundations/core/packages/text/src/nodes/codeblock.ts index 29e686ee29..3c52fbafc3 100644 --- a/foundations/core/packages/text/src/nodes/codeblock.ts +++ b/foundations/core/packages/text/src/nodes/codeblock.ts @@ -39,7 +39,7 @@ export const tildeInputRegex = /^~~~$/ export const CodeBlockExtension = CodeBlock.extend({ marks: 'inline-comment', - addAttributes () { + addAttributes() { return { language: { default: null, @@ -73,7 +73,7 @@ export const CodeBlockExtension = CodeBlock.extend({ } } }, - addInputRules () { + addInputRules() { return [ textblockTypeInputRule({ find: backtickInputRegex, diff --git a/foundations/core/packages/text/src/nodes/comment.ts b/foundations/core/packages/text/src/nodes/comment.ts index 9bec970fa6..e8336f36fa 100644 --- a/foundations/core/packages/text/src/nodes/comment.ts +++ b/foundations/core/packages/text/src/nodes/comment.ts @@ -25,7 +25,7 @@ export const CommentNode = Node.create({ content: 'text*', marks: '_', - parseHTML () { + parseHTML() { return [ { tag: 'comment' @@ -33,7 +33,7 @@ export const CommentNode = Node.create({ ] }, - renderText () { + renderText() { return '' } }) diff --git a/foundations/core/packages/text/src/nodes/embed.ts b/foundations/core/packages/text/src/nodes/embed.ts index 401c1e02ca..7a2616af09 100644 --- a/foundations/core/packages/text/src/nodes/embed.ts +++ b/foundations/core/packages/text/src/nodes/embed.ts @@ -18,7 +18,7 @@ import { mergeAttributes, Node } from '@tiptap/core' export const EmbedNode = Node.create({ name: 'embed', - addOptions () { + addOptions() { return {} }, @@ -27,7 +27,7 @@ export const EmbedNode = Node.create({ atom: false, draggable: false, - addAttributes () { + addAttributes() { return { src: { default: null @@ -35,7 +35,7 @@ export const EmbedNode = Node.create({ } }, - parseHTML () { + parseHTML() { return [ { priority: 60, @@ -44,7 +44,7 @@ export const EmbedNode = Node.create({ ] }, - renderHTML ({ HTMLAttributes }) { + renderHTML({ HTMLAttributes }) { return ['figure', { 'data-type': this.name }, ['iframe', mergeAttributes(HTMLAttributes)]] } }) diff --git a/foundations/core/packages/text/src/nodes/emoji.ts b/foundations/core/packages/text/src/nodes/emoji.ts index 96fb909ae7..52ded58783 100644 --- a/foundations/core/packages/text/src/nodes/emoji.ts +++ b/foundations/core/packages/text/src/nodes/emoji.ts @@ -25,7 +25,7 @@ declare module '@tiptap/core' { } export interface EmojiNodeOptions { - getBlobRef: (fileId: Ref, filename?: string, size?: number) => Promise<{ src: string, srcset: string }> + getBlobRef: (fileId: Ref, filename?: string, size?: number) => Promise<{ src: string; srcset: string }> } export const EmojiNode = Node.create({ @@ -35,7 +35,7 @@ export const EmojiNode = Node.create({ atom: true, selectable: false, - addAttributes () { + addAttributes() { return { emoji: { default: '' @@ -49,21 +49,21 @@ export const EmojiNode = Node.create({ } }, - addCommands () { + addCommands() { return { insertEmoji: (emoji: string, kind: 'unicode' | 'image', image?: Ref) => - ({ commands }) => { - if (kind === 'image') emoji = `:${emoji}:` - return commands.insertContent({ - type: this.name, - attrs: { emoji, kind, image } - }) - } + ({ commands }) => { + if (kind === 'image') emoji = `:${emoji}:` + return commands.insertContent({ + type: this.name, + attrs: { emoji, kind, image } + }) + } } }, - parseHTML () { + parseHTML() { return [ { tag: `span[data-type="${this.name}"]` @@ -71,7 +71,7 @@ export const EmojiNode = Node.create({ ] }, - addNodeView () { + addNodeView() { return ({ node, HTMLAttributes }) => { const container = document.createElement('span') const containerAttributes = mergeAttributes( @@ -107,7 +107,7 @@ export const EmojiNode = Node.create({ } }, - renderHTML ({ node, HTMLAttributes }) { + renderHTML({ node, HTMLAttributes }) { if (node.attrs.kind === 'image') { return [ 'span', diff --git a/foundations/core/packages/text/src/nodes/file.ts b/foundations/core/packages/text/src/nodes/file.ts index 8f88dd3305..c24117a880 100644 --- a/foundations/core/packages/text/src/nodes/file.ts +++ b/foundations/core/packages/text/src/nodes/file.ts @@ -28,18 +28,18 @@ export interface FileOptions { export const FileNode = Node.create({ name: 'file', - addOptions () { + addOptions() { return { inline: true, HTMLAttributes: {} } }, - inline () { + inline() { return this.options.inline }, - group () { + group() { return this.options.inline ? 'inline' : 'block' }, @@ -47,7 +47,7 @@ export const FileNode = Node.create({ selectable: true, - addAttributes () { + addAttributes() { return { 'file-id': { default: null @@ -67,7 +67,7 @@ export const FileNode = Node.create({ } }, - parseHTML () { + parseHTML() { return [ { tag: `div[data-type="${this.name}"]` @@ -75,7 +75,7 @@ export const FileNode = Node.create({ ] }, - renderHTML ({ node, HTMLAttributes }) { + renderHTML({ node, HTMLAttributes }) { const nodeAttributes = { 'data-type': this.name } diff --git a/foundations/core/packages/text/src/nodes/image.ts b/foundations/core/packages/text/src/nodes/image.ts index ae29f14042..c69af349ca 100644 --- a/foundations/core/packages/text/src/nodes/image.ts +++ b/foundations/core/packages/text/src/nodes/image.ts @@ -36,7 +36,7 @@ declare module '@tiptap/core' { /** * Add an image */ - setImage: (options: { src: string, alt?: string, title?: string }) => ReturnType + setImage: (options: { src: string; alt?: string; title?: string }) => ReturnType /** * Set image alignment */ @@ -57,7 +57,7 @@ export interface ImageOptions { HTMLAttributes: Record loadingImgSrc?: string - getBlobRef: (fileId: Ref, filename?: string, size?: number) => Promise<{ src: string, srcset: string }> + getBlobRef: (fileId: Ref, filename?: string, size?: number) => Promise<{ src: string; srcset: string }> } /** @@ -66,7 +66,7 @@ export interface ImageOptions { export const ImageNode = Node.create({ name: 'image', - addOptions () { + addOptions() { return { inline: true, HTMLAttributes: {}, @@ -74,11 +74,11 @@ export const ImageNode = Node.create({ } }, - inline () { + inline() { return this.options.inline }, - group () { + group() { return this.options.inline ? 'inline' : 'block' }, @@ -86,7 +86,7 @@ export const ImageNode = Node.create({ selectable: true, - addAttributes () { + addAttributes() { return { 'file-id': { default: null @@ -113,7 +113,7 @@ export const ImageNode = Node.create({ } }, - parseHTML () { + parseHTML() { return [ { tag: `img[data-type="${this.name}"]` @@ -124,7 +124,7 @@ export const ImageNode = Node.create({ ] }, - renderHTML ({ node, HTMLAttributes }) { + renderHTML({ node, HTMLAttributes }) { const divAttributes = { class: 'text-editor-image-container', 'data-type': this.name, diff --git a/foundations/core/packages/text/src/nodes/markdown.ts b/foundations/core/packages/text/src/nodes/markdown.ts index dd3e2f2194..6d74e8ed1d 100644 --- a/foundations/core/packages/text/src/nodes/markdown.ts +++ b/foundations/core/packages/text/src/nodes/markdown.ts @@ -23,7 +23,7 @@ export const MarkdownNode = Node.create({ code: true, defining: true, - parseHTML () { + parseHTML() { return [ { tag: 'pre[data-type="markdown"]', @@ -32,7 +32,7 @@ export const MarkdownNode = Node.create({ ] }, - renderHTML ({ node, HTMLAttributes }) { + renderHTML({ node, HTMLAttributes }) { return [ 'pre', mergeAttributes({ 'data-type': this.name }, this.options.HTMLAttributes, HTMLAttributes), diff --git a/foundations/core/packages/text/src/nodes/mermaid.ts b/foundations/core/packages/text/src/nodes/mermaid.ts index 4290c60864..caf1374cbf 100644 --- a/foundations/core/packages/text/src/nodes/mermaid.ts +++ b/foundations/core/packages/text/src/nodes/mermaid.ts @@ -26,7 +26,7 @@ export const MermaidExtension = CodeBlock.extend({ group: 'block', marks: 'inline-comment', - parseHTML () { + parseHTML() { return [ { tag: 'div.mermaid-diagram', @@ -35,7 +35,7 @@ export const MermaidExtension = CodeBlock.extend({ ] }, - addAttributes () { + addAttributes() { return { language: { default: 'mermaid' diff --git a/foundations/core/packages/text/src/nodes/reference.ts b/foundations/core/packages/text/src/nodes/reference.ts index 8a9bbf685a..a0cb5bfad4 100644 --- a/foundations/core/packages/text/src/nodes/reference.ts +++ b/foundations/core/packages/text/src/nodes/reference.ts @@ -39,7 +39,7 @@ export const ReferenceNode = Node.create({ inline: true, selectable: true, - addAttributes () { + addAttributes() { return { id: getDataAttribute('id'), objectclass: getDataAttribute('objectclass'), @@ -59,14 +59,14 @@ export const ReferenceNode = Node.create({ } }, - addOptions () { + addOptions() { return { suggestion: { char: '@' }, HTMLAttributes: {} } }, - parseHTML () { + parseHTML() { return [ { priority: 60, @@ -81,7 +81,7 @@ export const ReferenceNode = Node.create({ ] }, - renderHTML ({ node, HTMLAttributes }) { + renderHTML({ node, HTMLAttributes }) { return [ 'span', mergeAttributes( @@ -100,7 +100,7 @@ export const ReferenceNode = Node.create({ } }) -function getAttrs (el: HTMLSpanElement): Attrs | false { +function getAttrs(el: HTMLSpanElement): Attrs | false { const id = el.dataset.id?.trim() const label = el.dataset.label?.trim() const objectclass = el.dataset.objectclass?.trim() diff --git a/foundations/core/packages/text/src/nodes/todo.ts b/foundations/core/packages/text/src/nodes/todo.ts index f7d28ba147..7b1b42f11e 100644 --- a/foundations/core/packages/text/src/nodes/todo.ts +++ b/foundations/core/packages/text/src/nodes/todo.ts @@ -7,7 +7,7 @@ export const TodoItemNode = TaskItem.extend({ name: 'todoItem', group: 'listItems', - addOptions () { + addOptions() { return { nested: true, HTMLAttributes: {}, @@ -15,7 +15,7 @@ export const TodoItemNode = TaskItem.extend({ } }, - addAttributes () { + addAttributes() { return { ...this.parent?.(), todoid: getDataAttribute('todoid', { default: null, keepOnSplit: false }), @@ -27,7 +27,7 @@ export const TodoItemNode = TaskItem.extend({ export const TodoListNode = TaskList.extend({ name: 'todoList', - addOptions () { + addOptions() { return { itemTypeName: 'todoItem', HTMLAttributes: {} diff --git a/foundations/core/packages/text/src/nodes/utils.ts b/foundations/core/packages/text/src/nodes/utils.ts index 0e051f1520..3dc635307e 100644 --- a/foundations/core/packages/text/src/nodes/utils.ts +++ b/foundations/core/packages/text/src/nodes/utils.ts @@ -18,7 +18,7 @@ import { Attribute } from '@tiptap/core' /** * @public */ -export function getDataAttribute ( +export function getDataAttribute( name: string, options?: Partial> ): Partial { diff --git a/foundations/core/packages/token/src/__tests__/token.test.ts b/foundations/core/packages/token/src/__tests__/token.test.ts index 31080ceb17..304c4f9bdf 100644 --- a/foundations/core/packages/token/src/__tests__/token.test.ts +++ b/foundations/core/packages/token/src/__tests__/token.test.ts @@ -18,7 +18,7 @@ import type { AccountUuid, PersonUuid, WorkspaceUuid } from '@hcengineering/core import { decodeToken, generateToken, isTokenExpired, setApiTokenRevocationChecker, verifyToken } from '../token' import plugin from '../plugin' -export function decodeTokenPayload (token: string): any { +export function decodeTokenPayload(token: string): any { try { return JSON.parse(atob(token.split('.')[1])) } catch (err: any) { diff --git a/foundations/core/packages/token/src/token.ts b/foundations/core/packages/token/src/token.ts index 550576e2d7..1b31e9eb84 100644 --- a/foundations/core/packages/token/src/token.ts +++ b/foundations/core/packages/token/src/token.ts @@ -39,7 +39,7 @@ export interface PermissionsGrant { * @public */ export class TokenError extends Error { - constructor (message: string) { + constructor(message: string) { super(message) this.name = 'TokenError' } @@ -52,7 +52,7 @@ const getSecret = (): string => { /** * @public */ -export function generateToken ( +export function generateToken( accountUuid: PersonUuid, workspaceUuid?: WorkspaceUuid, extra?: Record, @@ -114,7 +114,7 @@ export function generateToken ( /** * @public */ -export function decodeToken (token: string, verify: boolean = true, secret?: string): Token { +export function decodeToken(token: string, verify: boolean = true, secret?: string): Token { try { return decode(token, secret ?? getSecret(), !verify) } catch (err: any) { @@ -125,7 +125,7 @@ export function decodeToken (token: string, verify: boolean = true, secret?: str /** * @public */ -export function decodeTokenVerbose (ctx: MeasureContext, token: string): Token { +export function decodeTokenVerbose(ctx: MeasureContext, token: string): Token { try { return decodeToken(token) } catch (err: any) { diff --git a/foundations/utils/packages/platform-rig/bin/format.js b/foundations/utils/packages/platform-rig/bin/format.js index f1d3b94bae..d76a714d2a 100755 --- a/foundations/utils/packages/platform-rig/bin/format.js +++ b/foundations/utils/packages/platform-rig/bin/format.js @@ -44,7 +44,8 @@ async function loadEslintConfig() { ...LEGACY_COMPATIBILITY_RULES, '@typescript-eslint/array-type': 'off', '@typescript-eslint/promise-function-async': 'off', - '@typescript-eslint/consistent-type-imports': 'off' + '@typescript-eslint/consistent-type-imports': 'off', + 'space-before-function-paren': ['error', 'always'] } }, { @@ -216,9 +217,6 @@ if (filesToCheck.length > 0) { }) const results = await eslint.lintFiles(filesToCheck) - // Apply fixes - await ESLint.outputFixes(results) - const formatter = await eslint.loadFormatter('stylish') const resultText = formatter.format(results) diff --git a/packages/billing-client/src/client.ts b/packages/billing-client/src/client.ts index f427d545a1..61e5c2dc87 100644 --- a/packages/billing-client/src/client.ts +++ b/packages/billing-client/src/client.ts @@ -13,7 +13,7 @@ import { } from './types' /** @public */ -export function getClient (billingUrl?: string, token?: string): BillingClient { +export function getClient(billingUrl?: string, token?: string): BillingClient { if (billingUrl === undefined || billingUrl == null || billingUrl === '') { throw new Error('Billing url not specified') } @@ -27,7 +27,7 @@ export function getClient (billingUrl?: string, token?: string): BillingClient { export class BillingClient { private readonly headers: Record - constructor ( + constructor( private readonly endpoint: string, private readonly token: string ) { @@ -37,63 +37,63 @@ export class BillingClient { } } - async getBillingStats (workspace: WorkspaceUuid): Promise { + async getBillingStats(workspace: WorkspaceUuid): Promise { const path = `/api/v1/${workspace}/stats` const url = new URL(concatLink(this.endpoint, path)) const response = await fetchSafe(url, { headers: { ...this.headers } }) return (await response.json()) as BillingStats } - async getDatalakeStats (workspace: WorkspaceUuid): Promise { + async getDatalakeStats(workspace: WorkspaceUuid): Promise { const path = `/api/v1/${workspace}/datalake/stats` const url = new URL(concatLink(this.endpoint, path)) const response = await fetchSafe(url, { headers: { ...this.headers } }) return (await response.json()) as DatalakeStats } - async getLiveKitStats (workspace: WorkspaceUuid): Promise { + async getLiveKitStats(workspace: WorkspaceUuid): Promise { const path = `/api/v1/${workspace}/livekit/stats` const url = new URL(concatLink(this.endpoint, path)) const response = await fetchSafe(url, { headers: { ...this.headers } }) return (await response.json()) as LiveKitStats } - async getLiveKitSessionsStats (workspace: WorkspaceUuid): Promise { + async getLiveKitSessionsStats(workspace: WorkspaceUuid): Promise { const path = `/api/v1/${workspace}/livekit/sessions` const url = new URL(concatLink(this.endpoint, path)) const response = await fetchSafe(url, { headers: { ...this.headers } }) return (await response.json()) as LiveKitSessionsStats[] } - async getLiveKitEgressStats (workspace: WorkspaceUuid): Promise { + async getLiveKitEgressStats(workspace: WorkspaceUuid): Promise { const path = `/api/v1/${workspace}/livekit/egress` const url = new URL(concatLink(this.endpoint, path)) const response = await fetchSafe(url, { headers: { ...this.headers } }) return (await response.json()) as LiveKitEgressStats[] } - async postLiveKitSessions (sessions: LiveKitSessionData[]): Promise { + async postLiveKitSessions(sessions: LiveKitSessionData[]): Promise { const path = '/api/v1/livekit/sessions' const url = new URL(concatLink(this.endpoint, path)) const body = JSON.stringify(sessions) await fetchSafe(url, { method: 'POST', headers: { ...this.headers }, body }) } - async postLiveKitEgress (egress: LiveKitEgressData[]): Promise { + async postLiveKitEgress(egress: LiveKitEgressData[]): Promise { const path = '/api/v1/livekit/egress' const url = new URL(concatLink(this.endpoint, path)) const body = JSON.stringify(egress) await fetchSafe(url, { method: 'POST', headers: { ...this.headers }, body }) } - async getAiTranscriptLastData (): Promise { + async getAiTranscriptLastData(): Promise { const path = '/api/v1/ai/transcript/last' const url = new URL(concatLink(this.endpoint, path)) const response = await fetchSafe(url, { headers: { ...this.headers } }) return (await response.json()) as AiTranscriptData | undefined } - async postAiTranscriptData (data: AiTranscriptData[]): Promise { + async postAiTranscriptData(data: AiTranscriptData[]): Promise { const path = '/api/v1/ai/transcript' const url = new URL(concatLink(this.endpoint, path)) const body = JSON.stringify(data) @@ -101,7 +101,7 @@ export class BillingClient { await fetchSafe(url, { method: 'POST', headers: { ...this.headers }, body }) } - async postAiTokensData (data: AiTokensData[]): Promise { + async postAiTokensData(data: AiTokensData[]): Promise { const path = '/api/v1/ai/tokens' const url = new URL(concatLink(this.endpoint, path)) const body = JSON.stringify(data) diff --git a/packages/billing-client/src/error.ts b/packages/billing-client/src/error.ts index 927b4ed658..bf9d5a2a09 100644 --- a/packages/billing-client/src/error.ts +++ b/packages/billing-client/src/error.ts @@ -1,12 +1,12 @@ export class NetworkError extends Error { - constructor (message: string) { + constructor(message: string) { super(message) this.name = 'NetworkError' } } export class BillingError extends Error { - constructor (message: string) { + constructor(message: string) { super(message) this.name = 'BillingError' } diff --git a/packages/integration-client/src/client.ts b/packages/integration-client/src/client.ts index 8241e22c69..b3f9f043e0 100644 --- a/packages/integration-client/src/client.ts +++ b/packages/integration-client/src/client.ts @@ -28,7 +28,7 @@ import { IntegrationClient, IntegrationEventData, IntegrationUpdatedData, Integr import { isConnection } from './utils' import { type EventCallback, getIntegrationEventBus } from './events' -export function getIntegrationClient ( +export function getIntegrationClient( accountsUrl: string, token: string, integrationKind: IntegrationKind, @@ -41,7 +41,7 @@ export function getIntegrationClient ( export class IntegrationClientImpl implements IntegrationClient { private readonly events = getIntegrationEventBus() - constructor ( + constructor( private readonly client: AccountClient, private readonly integrationKind: IntegrationKind, private readonly serviceName: string @@ -52,7 +52,7 @@ export class IntegrationClientImpl implements IntegrationClient { return this.events.on(event, callback) } - off (event: string, callback?: EventCallback): void { + off(event: string, callback?: EventCallback): void { this.events.off(event, callback) } @@ -60,11 +60,11 @@ export class IntegrationClientImpl implements IntegrationClient { this.events.emit(event, data) } - async getIntegrations (): Promise { + async getIntegrations(): Promise { return (await this.client.listIntegrations({ kind: this.integrationKind })) ?? [] } - async getConnection (integration: Integration): Promise { + async getConnection(integration: Integration): Promise { try { if (isConnection(integration)) { return integration @@ -87,7 +87,7 @@ export class IntegrationClientImpl implements IntegrationClient { } } - async integrate (connection: Integration, workspace: WorkspaceUuid, data?: Record): Promise { + async integrate(connection: Integration, workspace: WorkspaceUuid, data?: Record): Promise { try { const existingData = data ?? connection.data ?? {} const integration = { @@ -132,7 +132,7 @@ export class IntegrationClientImpl implements IntegrationClient { } } - async connect (socialId: PersonId, data?: Record): Promise { + async connect(socialId: PersonId, data?: Record): Promise { try { const connection = { socialId, @@ -194,7 +194,7 @@ export class IntegrationClientImpl implements IntegrationClient { } } - async updateConfig ( + async updateConfig( integrationKey: IntegrationKey, config: Record, refresh?: () => Promise @@ -238,15 +238,15 @@ export class IntegrationClientImpl implements IntegrationClient { } } - async removeIntegration ( + async removeIntegration( socialId: PersonId | undefined | null, workspaceUuid: WorkspaceUuid | null | undefined ): Promise< | { - connectionRemoved: boolean - } + connectionRemoved: boolean + } | undefined - > { + > { if (socialId == null) return try { @@ -297,7 +297,7 @@ export class IntegrationClientImpl implements IntegrationClient { } } - async removeConnection (connection: Integration): Promise { + async removeConnection(connection: Integration): Promise { try { const integrations = await this.client.listIntegrations({ kind: connection.kind, @@ -328,7 +328,7 @@ export class IntegrationClientImpl implements IntegrationClient { } } - async setSecret (data: IntegrationSecret): Promise { + async setSecret(data: IntegrationSecret): Promise { const { secret, ...secretKey } = data const currentSecret = await this.client.getIntegrationSecret(secretKey) if (currentSecret != null) { @@ -338,7 +338,7 @@ export class IntegrationClientImpl implements IntegrationClient { } } - async setIntegrationEnabled (integrationKey: IntegrationKey, enabled: boolean): Promise { + async setIntegrationEnabled(integrationKey: IntegrationKey, enabled: boolean): Promise { try { const integration = await this.client.getIntegration(integrationKey) if (integration == null) { diff --git a/packages/integration-client/src/events.ts b/packages/integration-client/src/events.ts index e95efe92af..70f85910af 100644 --- a/packages/integration-client/src/events.ts +++ b/packages/integration-client/src/events.ts @@ -62,7 +62,7 @@ export class IntegrationEventEmitter implements EventEmitter { }) } - off (event: string, callback?: EventCallback): void { + off(event: string, callback?: EventCallback): void { if (callback == null) { this.listeners.delete(event) return @@ -77,7 +77,7 @@ export class IntegrationEventEmitter implements EventEmitter { } } - removeAllListeners (event?: string): void { + removeAllListeners(event?: string): void { if (event !== undefined) { this.listeners.delete(event) } else { @@ -86,7 +86,7 @@ export class IntegrationEventEmitter implements EventEmitter { } // Utility method to get listener count - listenerCount (event: string): number { + listenerCount(event: string): number { return this.listeners.get(event)?.size ?? 0 } } @@ -94,14 +94,14 @@ export class IntegrationEventEmitter implements EventEmitter { const GlobalIntegrationEventBus = { instance: null as IntegrationEventEmitter | null, - getInstance (): IntegrationEventEmitter { + getInstance(): IntegrationEventEmitter { if (GlobalIntegrationEventBus.instance == null) { GlobalIntegrationEventBus.instance = new IntegrationEventEmitter() } return GlobalIntegrationEventBus.instance }, - resetInstance (): void { + resetInstance(): void { GlobalIntegrationEventBus.instance = null } } @@ -110,7 +110,7 @@ export const getIntegrationEventBus = (): IntegrationEventEmitter => { return GlobalIntegrationEventBus.getInstance() } -export function onIntegrationEvent ( +export function onIntegrationEvent( event: string, callback: (data: T) => void, filter?: (data: T) => boolean diff --git a/packages/integration-client/src/request.ts b/packages/integration-client/src/request.ts index 06c2d30685..d6da7869f6 100644 --- a/packages/integration-client/src/request.ts +++ b/packages/integration-client/src/request.ts @@ -37,7 +37,7 @@ export interface RequestOptions { * @returns Promise that resolves to the parsed JSON response, or undefined for empty responses * @throws {PlatformError} When network errors occur or HTTP status indicates failure */ -export async function request (options: RequestOptions): Promise { +export async function request(options: RequestOptions): Promise { const { baseUrl, method, path, token, body } = options let response: Response try { diff --git a/packages/integration-client/src/types.ts b/packages/integration-client/src/types.ts index 3afbc3e5a9..ed0715324b 100644 --- a/packages/integration-client/src/types.ts +++ b/packages/integration-client/src/types.ts @@ -57,10 +57,10 @@ export interface IntegrationClient { socialId: PersonId | undefined | null, workspaceUuid: WorkspaceUuid | null | undefined ) => Promise< - | { - connectionRemoved: boolean - } - | undefined + | { + connectionRemoved: boolean + } + | undefined > /** @@ -273,7 +273,7 @@ export interface ServiceClient { * Integration-specific error types */ export class IntegrationError extends Error { - constructor ( + constructor( message: string, public code: string, public integrationId: string, @@ -285,21 +285,21 @@ export class IntegrationError extends Error { } export class ConnectionError extends IntegrationError { - constructor (message: string, integrationId: string, workspace: WorkspaceUuid) { + constructor(message: string, integrationId: string, workspace: WorkspaceUuid) { super(message, 'CONNECTION_ERROR', integrationId, workspace) this.name = 'ConnectionError' } } export class ConfigurationError extends IntegrationError { - constructor (message: string, integrationId: string, workspace: WorkspaceUuid) { + constructor(message: string, integrationId: string, workspace: WorkspaceUuid) { super(message, 'CONFIGURATION_ERROR', integrationId, workspace) this.name = 'ConfigurationError' } } export class DisconnectionError extends IntegrationError { - constructor (message: string, integrationId: string, workspace: WorkspaceUuid) { + constructor(message: string, integrationId: string, workspace: WorkspaceUuid) { super(message, 'DISCONNECTION_ERROR', integrationId, workspace) this.name = 'DisconnectionError' } diff --git a/packages/integration-client/src/utils.ts b/packages/integration-client/src/utils.ts index a08d2b13b9..ca9a9c3658 100644 --- a/packages/integration-client/src/utils.ts +++ b/packages/integration-client/src/utils.ts @@ -17,30 +17,30 @@ import { Integration } from '@hcengineering/account-client' import platform, { PlatformError } from '@hcengineering/platform' import { IntegrationEventData } from './types' -export function isWorkspaceIntegration (integration: Integration): boolean { +export function isWorkspaceIntegration(integration: Integration): boolean { return integration.workspaceUuid != null } -export function isConnection (integration: Integration): boolean { +export function isConnection(integration: Integration): boolean { return integration.workspaceUuid == null } -export function isSameIntegrationEvent (event: IntegrationEventData, integration: Integration): boolean { +export function isSameIntegrationEvent(event: IntegrationEventData, integration: Integration): boolean { return ( event.integration?.socialId === integration.socialId && event.integration?.workspaceUuid === integration.workspaceUuid ) } -export function getIntegrationConfig (integration: Integration): Record | undefined { +export function getIntegrationConfig(integration: Integration): Record | undefined { return integration?.data?.config } -export function isDisabled (integration: Integration): boolean { +export function isDisabled(integration: Integration): boolean { return integration?.data?.disabled === true } -export function isUnauthorizedError (error: any): boolean { +export function isUnauthorizedError(error: any): boolean { if (error instanceof PlatformError && error.status.code === platform.status.Unauthorized) { return true } diff --git a/packages/kvs-client/src/client.ts b/packages/kvs-client/src/client.ts index f209ab689b..72cbb026f5 100644 --- a/packages/kvs-client/src/client.ts +++ b/packages/kvs-client/src/client.ts @@ -25,7 +25,7 @@ import { KeyValueClient, ListResult } from './types' * @returns KeyValueClient instance * @public */ -export function getClient (namespace: string, baseUrl: string, token?: string, retryTimeoutMs?: number): KeyValueClient { +export function getClient(namespace: string, baseUrl: string, token?: string, retryTimeoutMs?: number): KeyValueClient { if (baseUrl === undefined) { throw new Error('Key-value API URL not specified') } @@ -36,7 +36,7 @@ export function getClient (namespace: string, baseUrl: string, token?: string, r class KeyValueClientImpl implements KeyValueClient { private readonly requestInit: RequestInit - constructor ( + constructor( private readonly namespace: string, private readonly baseUrl: string, private readonly token?: string, @@ -83,7 +83,7 @@ class KeyValueClientImpl implements KeyValueClient { }) } - async deleteKey (key: string): Promise { + async deleteKey(key: string): Promise { const url = this.buildUrl(key) await this.sendRequest(url, { method: 'DELETE', @@ -92,7 +92,7 @@ class KeyValueClientImpl implements KeyValueClient { }) } - async listKeys (prefix?: string): Promise { + async listKeys(prefix?: string): Promise { let url = this.buildUrl() if (prefix !== undefined) { url += `?prefix=${encodeURIComponent(prefix)}` @@ -103,7 +103,7 @@ class KeyValueClientImpl implements KeyValueClient { }) } - private buildUrl (key?: string): string { + private buildUrl(key?: string): string { const baseApiUrl = concatLink(this.baseUrl, `/api/${encodeURIComponent(this.namespace)}`) return key !== undefined ? concatLink(baseApiUrl, encodeURIComponent(key)) : baseApiUrl } @@ -165,7 +165,7 @@ class KeyValueClientImpl implements KeyValueClient { return null } - private async fetchWithRetry (url: string, init: RequestInit): Promise { + private async fetchWithRetry(url: string, init: RequestInit): Promise { const timeout = Date.now() + this.retryTimeoutMs const connectionErrorCodes = ['ECONNRESET', 'ECONNREFUSED', 'ENOTFOUND'] let intervalMs = 25 diff --git a/packages/payment-client/src/client.ts b/packages/payment-client/src/client.ts index 02b6cf753a..bd0d00fec6 100644 --- a/packages/payment-client/src/client.ts +++ b/packages/payment-client/src/client.ts @@ -23,7 +23,7 @@ import { PaymentError, NetworkError } from './error' * @param token - Authentication token * @returns PaymentClient instance */ -export function getClient (paymentUrl?: string, token?: string): PaymentClient { +export function getClient(paymentUrl?: string, token?: string): PaymentClient { if (paymentUrl === undefined || paymentUrl == null || paymentUrl === '') { throw new Error('Payment service URL not specified') } @@ -41,7 +41,7 @@ export function getClient (paymentUrl?: string, token?: string): PaymentClient { export class PaymentClient { private readonly headers: Record - constructor ( + constructor( private readonly endpoint: string, private readonly token: string ) { @@ -57,7 +57,7 @@ export class PaymentClient { * @param request - Subscription request details * @returns Checkout details with URL for payment */ - async createSubscription (workspace: WorkspaceUuid, request: SubscribeRequest): Promise { + async createSubscription(workspace: WorkspaceUuid, request: SubscribeRequest): Promise { const path = `/api/v1/subscriptions/${workspace}/subscribe` const url = new URL(concatLink(this.endpoint, path)) const body = JSON.stringify(request) @@ -74,7 +74,7 @@ export class PaymentClient { * @param subscriptionId - Subscription ID * @returns Subscription details from payment provider */ - async getSubscription (subscriptionId: string): Promise { + async getSubscription(subscriptionId: string): Promise { const path = `/api/v1/subscriptions/${subscriptionId}` const url = new URL(concatLink(this.endpoint, path)) const response = await fetchSafe(url, { headers: { ...this.headers } }) @@ -86,7 +86,7 @@ export class PaymentClient { * @param subscriptionId - Subscription ID to cancel * @returns Cancellation confirmation */ - async cancelSubscription (subscriptionId: string): Promise { + async cancelSubscription(subscriptionId: string): Promise { const path = `/api/v1/subscriptions/${subscriptionId}/cancel` const url = new URL(concatLink(this.endpoint, path)) const response = await fetchSafe(url, { @@ -101,7 +101,7 @@ export class PaymentClient { * @param subscriptionId - Subscription ID to uncancel * @returns Reactivation confirmation */ - async uncancelSubscription (subscriptionId: string): Promise { + async uncancelSubscription(subscriptionId: string): Promise { const path = `/api/v1/subscriptions/${subscriptionId}/uncancel` const url = new URL(concatLink(this.endpoint, path)) const response = await fetchSafe(url, { @@ -119,7 +119,7 @@ export class PaymentClient { * @param plan - New plan name * @returns CheckoutResponse for free-to-paid upgrades or updated SubscriptionData for direct updates */ - async updateSubscriptionPlan (subscriptionId: string, plan: string): Promise { + async updateSubscriptionPlan(subscriptionId: string, plan: string): Promise { const path = `/api/v1/subscriptions/${subscriptionId}/updatePlan` const url = new URL(concatLink(this.endpoint, path)) const body = JSON.stringify({ plan }) @@ -137,7 +137,7 @@ export class PaymentClient { * @param checkoutId - Checkout ID returned from createSubscription * @returns Checkout status with subscription details if completed */ - async getCheckoutStatus (checkoutId: string): Promise { + async getCheckoutStatus(checkoutId: string): Promise { const path = `/api/v1/checkouts/${checkoutId}/status` const url = new URL(concatLink(this.endpoint, path)) const response = await fetchSafe(url, { headers: { ...this.headers } }) @@ -153,7 +153,7 @@ export class PaymentClient { * @throws NetworkError on network issues * @throws PaymentError on non-ok responses */ -async function fetchSafe (url: string | URL, init?: RequestInit): Promise { +async function fetchSafe(url: string | URL, init?: RequestInit): Promise { let response try { response = await fetch(url, init) diff --git a/packages/payment-client/src/error.ts b/packages/payment-client/src/error.ts index 782e6aa89c..c1a2cd3cc4 100644 --- a/packages/payment-client/src/error.ts +++ b/packages/payment-client/src/error.ts @@ -15,7 +15,7 @@ /** Error for payment service errors */ export class PaymentError extends Error { - constructor (message: string) { + constructor(message: string) { super(message) this.name = 'PaymentError' } @@ -23,7 +23,7 @@ export class PaymentError extends Error { /** Error for network/connectivity issues */ export class NetworkError extends Error { - constructor (message: string) { + constructor(message: string) { super(message) this.name = 'NetworkError' } diff --git a/packages/rekoni/src/index.ts b/packages/rekoni/src/index.ts index c997230208..4373fbabb1 100644 --- a/packages/rekoni/src/index.ts +++ b/packages/rekoni/src/index.ts @@ -24,7 +24,7 @@ export * from './types' /** * @public */ -export async function recognizeDocument (token: string, file: File): Promise { +export async function recognizeDocument(token: string, file: File): Promise { const rekoniUrl = getMetadata(plugin.metadata.RekoniUrl) if (rekoniUrl === undefined) { // We could try use recognition service to find some document properties. diff --git a/packages/theme/src/Theme.svelte b/packages/theme/src/Theme.svelte index 1e2837ffda..3dd490e10e 100644 --- a/packages/theme/src/Theme.svelte +++ b/packages/theme/src/Theme.svelte @@ -102,7 +102,7 @@ let remove: any = null - function checkSystemTheme (): void { + function checkSystemTheme(): void { const theme = $currentTheme if (remove !== null || theme !== 'theme-system') { remove() diff --git a/packages/theme/src/index.ts b/packages/theme/src/index.ts index ef98ab7488..7f66199fd1 100644 --- a/packages/theme/src/index.ts +++ b/packages/theme/src/index.ts @@ -31,7 +31,7 @@ export const setDefaultLanguage = (language: string): void => { } } -function getDefaultProps (prop: string, value: string): string { +function getDefaultProps(prop: string, value: string): string { localStorage.setItem(prop, value) return value } @@ -69,7 +69,7 @@ export const getCurrentEmoji = (): string => localStorage.getItem('emoji') ?? ge export class ThemeOptions { readonly variant: ThemeVariantType - constructor ( + constructor( readonly fontSize: number, readonly dark: boolean, readonly language: string, @@ -80,7 +80,7 @@ export class ThemeOptions { } export const themeStore = writable() -export function initThemeStore (): void { +export function initThemeStore(): void { themeStore.set( new ThemeOptions( getCurrentFontSize() === 'normal-font' ? 16 : 14, diff --git a/packages/ui/src/colors.ts b/packages/ui/src/colors.ts index cd3ffd7899..777d08f8eb 100644 --- a/packages/ui/src/colors.ts +++ b/packages/ui/src/colors.ts @@ -211,7 +211,7 @@ export const avatarDarkColors = Object.freeze([ defineAvatarColor('Grey 1', 210, 11, 89, [20, 2, 0], true) ]) -export function defaultBackground (dark: boolean): string { +export function defaultBackground(dark: boolean): string { return dark ? 'linear-gradient(90deg, #22242A, #161719)' : '#FFFFFF' } @@ -240,7 +240,7 @@ export const CadetGreyColor = '#95A2B3' /** * @public */ -export function getPlatformColor (hash: number | number[], darkTheme: boolean): string { +export function getPlatformColor(hash: number | number[], darkTheme: boolean): string { const palette = darkTheme ? darkPalette : whitePalette return (palette[Math.abs(Array.isArray(hash) ? hash[0] : hash) % palette.length] ?? palette[0]).color } @@ -248,7 +248,7 @@ export function getPlatformColor (hash: number | number[], darkTheme: boolean): /** * @public */ -export function getPlatformColorDef (hash: number | number[], darkTheme: boolean): ColorDefinition { +export function getPlatformColorDef(hash: number | number[], darkTheme: boolean): ColorDefinition { const palette = darkTheme ? darkPalette : whitePalette return palette[Math.abs(Array.isArray(hash) ? hash[0] : hash) % palette.length] ?? palette[0] } @@ -256,7 +256,7 @@ export function getPlatformColorDef (hash: number | number[], darkTheme: boolean /** * @public */ -export function getPlatformAvatarColorDef (hash: number, darkTheme: boolean): ColorDefinition { +export function getPlatformAvatarColorDef(hash: number, darkTheme: boolean): ColorDefinition { const palette = darkTheme ? avatarDarkColors : avatarWhiteColors return palette[Math.abs(hash) % palette.length] ?? palette[0] } @@ -264,14 +264,14 @@ export function getPlatformAvatarColorDef (hash: number, darkTheme: boolean): Co /** * @public */ -export function getPlatformAvatarColorForTextDef (text: string, darkTheme: boolean): ColorDefinition { +export function getPlatformAvatarColorForTextDef(text: string, darkTheme: boolean): ColorDefinition { return getPlatformAvatarColorDef(hashCode(text), darkTheme) } /** * @public */ -export function getPlatformAvatarColorByName (name: string, darkTheme: boolean): ColorDefinition { +export function getPlatformAvatarColorByName(name: string, darkTheme: boolean): ColorDefinition { const defaultIndex = 0 return getColorByName(name, darkTheme, avatarWhiteColors, avatarDarkColors, defaultIndex) } @@ -279,26 +279,26 @@ export function getPlatformAvatarColorByName (name: string, darkTheme: boolean): /** * @public */ -export function getPlatformColorByName (name: string, darkTheme: boolean): ColorDefinition | undefined { +export function getPlatformColorByName(name: string, darkTheme: boolean): ColorDefinition | undefined { const defaultIndex: number | undefined = undefined return getColorByName(name, darkTheme, whitePalette, darkPalette, defaultIndex) } -function getColorByName ( +function getColorByName( name: string, darkTheme: boolean, paletteLight: readonly ColorDefinition[], paletteDark: readonly ColorDefinition[], defaultIndex: number ): ColorDefinition -function getColorByName ( +function getColorByName( name: string, darkTheme: boolean, paletteLight: readonly ColorDefinition[], paletteDark: readonly ColorDefinition[], defaultIndex: undefined ): ColorDefinition | undefined -function getColorByName ( +function getColorByName( name: string, darkTheme: boolean, paletteLight: readonly ColorDefinition[], @@ -316,31 +316,31 @@ function getColorByName ( /** * @public */ -export function getPlatformAvatarColors (darkTheme: boolean): readonly ColorDefinition[] { +export function getPlatformAvatarColors(darkTheme: boolean): readonly ColorDefinition[] { return darkTheme ? avatarDarkColors : avatarWhiteColors } /** * @public */ -export function getPlatformColorForText (text: string, darkTheme: boolean): string { +export function getPlatformColorForText(text: string, darkTheme: boolean): string { return getPlatformColor(hashCode(text), darkTheme) } /** * @public */ -export function getPlatformColorForTextDef (text: string, darkTheme: boolean): ColorDefinition { +export function getPlatformColorForTextDef(text: string, darkTheme: boolean): ColorDefinition { return getPlatformColorDef(hashCode(text), darkTheme) } /** * @public */ -export function getPlatformColors (darkTheme: boolean): readonly ColorDefinition[] { +export function getPlatformColors(darkTheme: boolean): readonly ColorDefinition[] { return darkTheme ? darkPalette : whitePalette } -function hashCode (str: string): number { +function hashCode(str: string): number { return (str ?? '') .split('') .reduce((prevHash, currVal) => ((prevHash << 5) - prevHash + currVal.charCodeAt(0)) | 0, 0) @@ -349,7 +349,7 @@ function hashCode (str: string): number { /** * @public */ -export function getColorNumberByText (str: string): number { +export function getColorNumberByText(str: string): number { const hash = hashCode(str) return Math.abs(hash) % Math.min(darkPalette.length, whitePalette.length) } @@ -357,7 +357,7 @@ export function getColorNumberByText (str: string): number { /** * @public */ -export function hexColorToNumber (hexColor: string): number { +export function hexColorToNumber(hexColor: string): number { if (hexColor === undefined || hexColor === null) { return 0 } @@ -367,7 +367,7 @@ export function hexColorToNumber (hexColor: string): number { /** * @public */ -export function hexToRgb (color: string): RGBColor { +export function hexToRgb(color: string): RGBColor { if (!color.startsWith('#')) { return { r: 128, g: 128, b: 128 } } @@ -389,14 +389,14 @@ export function hexToRgb (color: string): RGBColor { /** * @public */ -export function hexHSLToRgb (color: string, percent = 100): RGBColor { +export function hexHSLToRgb(color: string, percent = 100): RGBColor { const h = parseInt(color.slice(0, 2), 16) const s = parseInt(color.slice(2, 4), 16) const l = parseInt(color.slice(4, 6), 16) return hslToRgb(h, s, (l / 100) * percent) } -function addZero (d: string): string { +function addZero(d: string): string { if (d.length < 2) { return '0' + d } @@ -406,7 +406,7 @@ function addZero (d: string): string { /** * @public */ -export function defineAlpha (dark: boolean, color: string, percent = 100): string { +export function defineAlpha(dark: boolean, color: string, percent = 100): string { let rgb = color if (!rgb.startsWith('#')) { rgb = '#' + rgb @@ -431,7 +431,7 @@ export function defineAlpha (dark: boolean, color: string, percent = 100): strin /** * @public */ -export function numberToHexColor (color: number): string { +export function numberToHexColor(color: number): string { if (color === undefined || color === null) { return '' } @@ -441,7 +441,7 @@ export function numberToHexColor (color: number): string { /** * @public */ -export function numberToRGB (color: number, alpha?: number): string { +export function numberToRGB(color: number, alpha?: number): string { if (color === undefined || color === null) { return '' } @@ -456,13 +456,13 @@ export function numberToRGB (color: number, alpha?: number): string { /** * @public */ -export function hslToRgb (h: number, s: number, l: number): RGBColor { +export function hslToRgb(h: number, s: number, l: number): RGBColor { let r, g, b if (s === 0) { r = g = b = l // achromatic } else { - const hue2rgb = function hue2rgb (p: number, q: number, t: number): number { + const hue2rgb = function hue2rgb(p: number, q: number, t: number): number { if (t < 0) t += 1 if (t > 1) t -= 1 if (t < 1 / 6) return p + (q - p) * 6 * t @@ -484,7 +484,7 @@ export function hslToRgb (h: number, s: number, l: number): RGBColor { /** * @public */ -export function rgbToHex (color: RGBColor): string { +export function rgbToHex(color: RGBColor): string { return ( '#' + addZero((Math.round(color.r) % 255).toString(16)) + @@ -493,7 +493,7 @@ export function rgbToHex (color: RGBColor): string { ) } -export async function svgToColor (img: SVGSVGElement): Promise { +export async function svgToColor(img: SVGSVGElement): Promise { const outerHTML = img.outerHTML const blob = new Blob([outerHTML], { type: 'image/svg+xml;charset=utf-8' }) const blobURL = URL.createObjectURL(blob) @@ -510,7 +510,7 @@ export async function svgToColor (img: SVGSVGElement): Promise diff --git a/packages/ui/src/components/ButtonMenu.svelte b/packages/ui/src/components/ButtonMenu.svelte index 05ec10d9c5..9178458be2 100644 --- a/packages/ui/src/components/ButtonMenu.svelte +++ b/packages/ui/src/components/ButtonMenu.svelte @@ -48,7 +48,7 @@ const dispatch = createEventDispatcher() - function openPopup () { + function openPopup() { if (!opened) { if (autoSelectionIfOne && items.length === 1) { selected = items[0].id diff --git a/packages/ui/src/components/ButtonWithDropdown.svelte b/packages/ui/src/components/ButtonWithDropdown.svelte index 29542b0a64..9f4e1391c5 100644 --- a/packages/ui/src/components/ButtonWithDropdown.svelte +++ b/packages/ui/src/components/ButtonWithDropdown.svelte @@ -47,7 +47,7 @@ const dispatch = createEventDispatcher() - function openDropdown (ev: MouseEvent): void { + function openDropdown(ev: MouseEvent): void { showPopup(SelectPopup, { value: dropdownItems }, eventToHTMLElement(ev), (res) => { dispatch('dropdown-selected', res) }) diff --git a/packages/ui/src/components/Chip.svelte b/packages/ui/src/components/Chip.svelte index 58d7ac0a87..220979e81b 100644 --- a/packages/ui/src/components/Chip.svelte +++ b/packages/ui/src/components/Chip.svelte @@ -26,13 +26,13 @@ let buttonRef: ButtonIcon | undefined - function handleBackspace (event: KeyboardEvent) { + function handleBackspace(event: KeyboardEvent) { if (event.key === 'Backspace') { dispatch('remove') } } - export function focus () { + export function focus() { buttonRef?.focus() } diff --git a/packages/ui/src/components/CircleButton.svelte b/packages/ui/src/components/CircleButton.svelte index 767e310706..dc0a427dd6 100644 --- a/packages/ui/src/components/CircleButton.svelte +++ b/packages/ui/src/components/CircleButton.svelte @@ -28,7 +28,7 @@ const dispatch = createEventDispatcher() - function onKeydown (key: KeyboardEvent): void { + function onKeydown(key: KeyboardEvent): void { if (key.code === 'Space') { key.preventDefault() key.stopPropagation() diff --git a/packages/ui/src/components/CodeForm.svelte b/packages/ui/src/components/CodeForm.svelte index 85d277b4e2..1998690527 100644 --- a/packages/ui/src/components/CodeForm.svelte +++ b/packages/ui/src/components/CodeForm.svelte @@ -18,7 +18,7 @@ import CodeInput from './CodeInput.svelte' - export let fields: { id: string, name: string, optional: boolean }[] = [] + export let fields: { id: string; name: string; optional: boolean }[] = [] export let size: 'small' | 'medium' = 'small' export let kind: 'primary' | 'secondary' = 'primary' export let padding: string | null = null @@ -29,23 +29,23 @@ let formElement: HTMLFormElement | undefined - function trim (field: string): void { + function trim(field: string): void { formData[field] = formData[field].trim() } - export function clear (): void { + export function clear(): void { Object.keys(formData).forEach((key) => { formData[key] = '' }) } - async function validateCode (): Promise { + async function validateCode(): Promise { const code = Object.values(formData).join('') dispatch('submit', code) } - function onInput (e: Event): void { + function onInput(e: Event): void { if (e.target == null) return const target = e.target as HTMLInputElement const { value } = target @@ -64,7 +64,7 @@ } } - function onKeydown (e: KeyboardEvent): void { + function onKeydown(e: KeyboardEvent): void { if (e.key === undefined) { return } @@ -86,7 +86,7 @@ } } - function onPaste (e: ClipboardEvent): void { + function onPaste(e: ClipboardEvent): void { e.preventDefault() if (e.clipboardData == null) return const text = e.clipboardData.getData('text') diff --git a/packages/ui/src/components/ColorPopup.svelte b/packages/ui/src/components/ColorPopup.svelte index c6233c60c3..8413dc75d2 100644 --- a/packages/ui/src/components/ColorPopup.svelte +++ b/packages/ui/src/components/ColorPopup.svelte @@ -27,7 +27,7 @@ export let placeholderParam: any | undefined = undefined export let searchable: boolean = false export let selected: number | string | undefined = undefined - export let value: Array<{ id: number | string, color: number, label: string }> + export let value: Array<{ id: number | string; color: number; label: string }> let search: string = '' @@ -38,12 +38,12 @@ let selection = 0 let list: ListView - async function handleSelection (_: Event | undefined, selection: number): Promise { + async function handleSelection(_: Event | undefined, selection: number): Promise { const space = objects[selection] dispatch('close', space) } - function onKeydown (key: KeyboardEvent): void { + function onKeydown(key: KeyboardEvent): void { if (key.code === 'ArrowUp') { key.stopPropagation() key.preventDefault() diff --git a/packages/ui/src/components/Component.svelte b/packages/ui/src/components/Component.svelte index 7569fd62a8..049c4aec2f 100644 --- a/packages/ui/src/components/Component.svelte +++ b/packages/ui/src/components/Component.svelte @@ -42,10 +42,10 @@ const filterDefaultUndefined = (pnew: any, pold: any): any => pnew != null ? Object.fromEntries( - Object.entries(clone(pnew, undefined, undefined, 10)).filter( - ([k, v]) => v !== undefined || pold?.[k] !== undefined + Object.entries(clone(pnew, undefined, undefined, 10)).filter( + ([k, v]) => v !== undefined || pold?.[k] !== undefined + ) ) - ) : pnew let _props: any = filterDefaultUndefined(props, props) @@ -65,7 +65,7 @@ let error: any let counter = 0 - function updateComponent (_is: AnyComponent | AnySvelteComponent): void { + function updateComponent(_is: AnyComponent | AnySvelteComponent): void { const current = ++counter if (_is == null) { Ctor = undefined diff --git a/packages/ui/src/components/Dialog.svelte b/packages/ui/src/components/Dialog.svelte index ddfed586fc..c8b8a89a44 100644 --- a/packages/ui/src/components/Dialog.svelte +++ b/packages/ui/src/components/Dialog.svelte @@ -36,7 +36,7 @@ const dispatch = createEventDispatcher() - export function maximize (): void { + export function maximize(): void { toggleFullSize = true } diff --git a/packages/ui/src/components/Dock.svelte b/packages/ui/src/components/Dock.svelte index d58ea1b8af..eff851b53a 100644 --- a/packages/ui/src/components/Dock.svelte +++ b/packages/ui/src/components/Dock.svelte @@ -15,7 +15,7 @@ diff --git a/packages/ui/src/components/EditWithIcon.svelte b/packages/ui/src/components/EditWithIcon.svelte index d87405bb86..e298e75846 100644 --- a/packages/ui/src/components/EditWithIcon.svelte +++ b/packages/ui/src/components/EditWithIcon.svelte @@ -39,7 +39,7 @@ let textHTML: HTMLInputElement let phTranslate: string = '' - export function focus (): void { + export function focus(): void { textHTML.focus() autoFocus = false } diff --git a/packages/ui/src/components/EmbeddedHTML.svelte b/packages/ui/src/components/EmbeddedHTML.svelte index e8cd5adfb7..a701a4016c 100644 --- a/packages/ui/src/components/EmbeddedHTML.svelte +++ b/packages/ui/src/components/EmbeddedHTML.svelte @@ -25,7 +25,7 @@ let iframeSrc: string | undefined - async function loadFile (src: string): Promise { + async function loadFile(src: string): Promise { if (iframeSrc !== undefined) { URL.revokeObjectURL(iframeSrc) iframeSrc = undefined diff --git a/packages/ui/src/components/FilterButton.svelte b/packages/ui/src/components/FilterButton.svelte index 420b1b8d18..0c71b3f64f 100644 --- a/packages/ui/src/components/FilterButton.svelte +++ b/packages/ui/src/components/FilterButton.svelte @@ -36,24 +36,24 @@ change: ActiveFilter[] }>() - function clearFilters (): void { + function clearFilters(): void { dispatch('change', []) } - function addFilter (filter: ActiveFilter): void { + function addFilter(filter: ActiveFilter): void { // Remove any existing filter for the same category and add the new one const filtered = activeFilters.filter((f) => f.categoryId !== filter.categoryId) dispatch('change', [...filtered, filter]) } - function removeFilter (categoryId: string): void { + function removeFilter(categoryId: string): void { dispatch( 'change', activeFilters.filter((f) => f.categoryId !== categoryId) ) } - function showFilterPopup (e: MouseEvent): void { + function showFilterPopup(e: MouseEvent): void { const target = eventToHTMLElement(e) showPopup( FilterCategoryPopup, diff --git a/packages/ui/src/components/FilterCategoryPopup.svelte b/packages/ui/src/components/FilterCategoryPopup.svelte index 7139878c7f..335ae8a487 100644 --- a/packages/ui/src/components/FilterCategoryPopup.svelte +++ b/packages/ui/src/components/FilterCategoryPopup.svelte @@ -30,17 +30,17 @@ let selectedCategory: FilterCategory | null = null let view: 'categories' | 'options' = 'categories' - function selectCategory (category: FilterCategory): void { + function selectCategory(category: FilterCategory): void { selectedCategory = category view = 'options' } - function goBackToCategories (): void { + function goBackToCategories(): void { selectedCategory = null view = 'categories' } - function selectOption (option: FilterOption): void { + function selectOption(option: FilterOption): void { if (selectedCategory === null) return const filter: ActiveFilter = { @@ -53,17 +53,17 @@ dispatch('close') } - function clearCategoryFilter (): void { + function clearCategoryFilter(): void { if (selectedCategory === null) return onFilterRemove(selectedCategory.id) dispatch('close') } - function isActive (categoryId: string): boolean { + function isActive(categoryId: string): boolean { return activeFilters.some((f) => f.categoryId === categoryId) } - function isOptionSelected (optionId: string): boolean { + function isOptionSelected(optionId: string): boolean { if (selectedCategory === null) return false return activeFilters.some((f) => f.categoryId === selectedCategory?.id && f.optionId === optionId) } diff --git a/packages/ui/src/components/FilterOptionPopup.svelte b/packages/ui/src/components/FilterOptionPopup.svelte index a01a511656..a4578b5077 100644 --- a/packages/ui/src/components/FilterOptionPopup.svelte +++ b/packages/ui/src/components/FilterOptionPopup.svelte @@ -21,7 +21,7 @@ export let onFilterChange: (filter: ActiveFilter) => void export let onFilterRemove: (categoryId: string) => void - function selectOption (option: FilterOption): void { + function selectOption(option: FilterOption): void { const filter: ActiveFilter = { categoryId: category.id, optionId: option.id, @@ -31,11 +31,11 @@ onFilterChange(filter) } - function clearFilter (): void { + function clearFilter(): void { onFilterRemove(category.id) } - function isSelected (optionId: string): boolean { + function isSelected(optionId: string): boolean { return activeFilters.some((f) => f.categoryId === category.id && f.optionId === optionId) } diff --git a/packages/ui/src/components/FocusHandler.svelte b/packages/ui/src/components/FocusHandler.svelte index 5da16d97af..324462e83b 100644 --- a/packages/ui/src/components/FocusHandler.svelte +++ b/packages/ui/src/components/FocusHandler.svelte @@ -4,7 +4,7 @@ export let manager: FocusManager export let isEnabled: boolean = true - function handleKey (evt: KeyboardEvent): void { + function handleKey(evt: KeyboardEvent): void { if (evt.code === 'Tab' && isEnabled) { evt.preventDefault() evt.stopPropagation() diff --git a/packages/ui/src/components/Header.svelte b/packages/ui/src/components/Header.svelte index c58ca2d26c..5da56ca694 100644 --- a/packages/ui/src/components/Header.svelte +++ b/packages/ui/src/components/Header.svelte @@ -86,7 +86,7 @@ if (closeButton) window.removeEventListener('keydown', _close) }) - function _close (ev: KeyboardEvent): void { + function _close(ev: KeyboardEvent): void { if (closeButton && ev.key === 'Escape' && closeOnEscape) { ev.preventDefault() ev.stopPropagation() diff --git a/packages/ui/src/components/HeaderButton.svelte b/packages/ui/src/components/HeaderButton.svelte index 5c258e8ab5..961ffe6f6c 100644 --- a/packages/ui/src/components/HeaderButton.svelte +++ b/packages/ui/src/components/HeaderButton.svelte @@ -29,7 +29,7 @@ $: filterVisibleActions(allowedActions, visibleActions) $: filterAllowedActions(actions).catch(() => {}) - function filterVisibleActions (allowed: HeaderButtonAction[], visible: (string | number | null)[]): void { + function filterVisibleActions(allowed: HeaderButtonAction[], visible: (string | number | null)[]): void { items = allowed.filter((action) => visible.includes(action.id)) mainAction = items.find((a) => a.id === mainActionId) if (mainAction === undefined && items.length > 0) { @@ -37,7 +37,7 @@ } } - async function filterAllowedActions (actions: HeaderButtonAction[]): Promise { + async function filterAllowedActions(actions: HeaderButtonAction[]): Promise { const result: HeaderButtonAction[] = [] for (const action of actions) { if (await isActionAllowed(action)) { @@ -49,7 +49,7 @@ return result } - async function isActionAllowed (action: HeaderButtonAction): Promise { + async function isActionAllowed(action: HeaderButtonAction): Promise { if (action.accountRole === undefined && action.permissions === undefined) return true if (action.accountRole !== undefined && hasAccountRole(getCurrentAccount(), action.accountRole)) return true if (action.permissions !== undefined) { diff --git a/packages/ui/src/components/Icon.svelte b/packages/ui/src/components/Icon.svelte index 1f259e7632..0a9bc9404e 100644 --- a/packages/ui/src/components/Icon.svelte +++ b/packages/ui/src/components/Icon.svelte @@ -22,11 +22,11 @@ export let iconProps: any | undefined = undefined export let fill: string | undefined = 'currentColor' - function isAsset (icon: Asset | AnySvelteComponent): boolean { + function isAsset(icon: Asset | AnySvelteComponent): boolean { return typeof icon === 'string' } - function toAsset (icon: AnySvelteComponent | Asset): Asset { + function toAsset(icon: AnySvelteComponent | Asset): Asset { return icon as Asset } diff --git a/packages/ui/src/components/Image.svelte b/packages/ui/src/components/Image.svelte index 5fcc2fc48a..480e98dd10 100644 --- a/packages/ui/src/components/Image.svelte +++ b/packages/ui/src/components/Image.svelte @@ -27,12 +27,12 @@ let retry: number = 0 - function handleLoad (): void { + function handleLoad(): void { retry = 0 dispatch('load') } - function handleLoadStart (): void { + function handleLoadStart(): void { dispatch('loadstart') } @@ -41,7 +41,7 @@ handleLoadStart() } - function handleError (event: any): void { + function handleError(event: any): void { if (retry > 3) { event.target.src = undefined } else if (retry > 0) { diff --git a/packages/ui/src/components/ListView.svelte b/packages/ui/src/components/ListView.svelte index c1e98444ee..4e9ffde6b3 100644 --- a/packages/ui/src/components/ListView.svelte +++ b/packages/ui/src/components/ListView.svelte @@ -37,13 +37,13 @@ let oldSelection = Date.now() - function onRow (item: number): void { + function onRow(item: number): void { if (updateSelection(item)) { dispatch('on-select', item) } } - function updateSelection (item: number): boolean { + function updateSelection(item: number): boolean { const now = Date.now() if (now - oldSelection >= 25) { selection = item @@ -53,7 +53,7 @@ return false } - export function select (pos: number): void { + export function select(pos: number): void { if (pos < 0) { pos = 0 } diff --git a/packages/ui/src/components/Menu.svelte b/packages/ui/src/components/Menu.svelte index abae62e837..9010c28b2e 100644 --- a/packages/ui/src/components/Menu.svelte +++ b/packages/ui/src/components/Menu.svelte @@ -79,7 +79,7 @@ closePopup(category) }) - function showActionPopup (action: Action, target: HTMLElement, isPopupHidden?: boolean): void { + function showActionPopup(action: Action, target: HTMLElement, isPopupHidden?: boolean): void { closePopup(category) closePopup(nextCategory) @@ -96,13 +96,13 @@ ) } } - function focusTarget (action: Action, target: HTMLElement, isPopupHidden?: boolean): void { + function focusTarget(action: Action, target: HTMLElement, isPopupHidden?: boolean): void { if (focusSpeed && target !== activeElement) { activeElement = target showActionPopup(action, target, isPopupHidden) } } - export function clearFocus (): void { + export function clearFocus(): void { closePopup(category) activeElement = popup } diff --git a/packages/ui/src/components/Modal.svelte b/packages/ui/src/components/Modal.svelte index 4e226981ca..42a4a12a46 100644 --- a/packages/ui/src/components/Modal.svelte +++ b/packages/ui/src/components/Modal.svelte @@ -43,7 +43,7 @@ const dispatch = createEventDispatcher() - function close (): void { + function close(): void { if (onCancel !== undefined) { onCancel() } else { @@ -51,7 +51,7 @@ } } - function onKeyDown (ev: KeyboardEvent): void { + function onKeyDown(ev: KeyboardEvent): void { if (ev.key === 'Escape') { ev.preventDefault() ev.stopPropagation() diff --git a/packages/ui/src/components/ModeSelector.svelte b/packages/ui/src/components/ModeSelector.svelte index 48f14fcd25..4d8661b9e1 100644 --- a/packages/ui/src/components/ModeSelector.svelte +++ b/packages/ui/src/components/ModeSelector.svelte @@ -11,15 +11,15 @@ $: modeList = props.config != null ? props.config.map((c) => { - return { - id: c[0], - labelIntl: c[1], - labelParams: c[2], - action: () => { - props.onChange(c[0]) + return { + id: c[0], + labelIntl: c[1], + labelParams: c[2], + action: () => { + props.onChange(c[0]) + } } - } - }) + }) : [] diff --git a/packages/ui/src/components/ModernDialog.svelte b/packages/ui/src/components/ModernDialog.svelte index 1518a64e27..e3f51afd5f 100644 --- a/packages/ui/src/components/ModernDialog.svelte +++ b/packages/ui/src/components/ModernDialog.svelte @@ -49,15 +49,15 @@ const dispatch = createEventDispatcher() - function submit (): void { + function submit(): void { dispatch('submit') } - function close (): void { + function close(): void { dispatch('close') } - function cancel (): void { + function cancel(): void { dispatch('cancel') if (shouldCloseOnCancel) { diff --git a/packages/ui/src/components/ModernTab.svelte b/packages/ui/src/components/ModernTab.svelte index 7fea148ad8..62a39e0da9 100644 --- a/packages/ui/src/components/ModernTab.svelte +++ b/packages/ui/src/components/ModernTab.svelte @@ -33,7 +33,7 @@ const dispatch = createEventDispatcher() - function handleContextMenu (e: MouseEvent): void { + function handleContextMenu(e: MouseEvent): void { if (readonly) return e.preventDefault() e.stopPropagation() diff --git a/packages/ui/src/components/MouseSpeedTracker.svelte b/packages/ui/src/components/MouseSpeedTracker.svelte index 889a7ba0a6..69a3e9e600 100644 --- a/packages/ui/src/components/MouseSpeedTracker.svelte +++ b/packages/ui/src/components/MouseSpeedTracker.svelte @@ -30,7 +30,7 @@ $: focusSpeed = speedD < 50 - function update (now: number) { + function update(now: number) { maxSpeedY = 0 maxSpeedX = 0 maxSpeedD = 0 @@ -38,7 +38,7 @@ $: update($ticker) - function trackMouse (evt: MouseEvent): void { + function trackMouse(evt: MouseEvent): void { if (timestamp === 0) { timestamp = Date.now() lastMouseX = evt.screenX diff --git a/packages/ui/src/components/MultiProgress.svelte b/packages/ui/src/components/MultiProgress.svelte index 7ac0b6094e..a155c4416a 100644 --- a/packages/ui/src/components/MultiProgress.svelte +++ b/packages/ui/src/components/MultiProgress.svelte @@ -31,7 +31,7 @@ const width: number[] = [] $: width.length = filtred.length - function getLeft (width: number[], i: number): number { + function getLeft(width: number[], i: number): number { let res = 0 for (let index = 0; index < width.length; index++) { if (index === i) break @@ -40,7 +40,7 @@ return res } - function getWidth (values: Progress[], i: number): number { + function getWidth(values: Progress[], i: number): number { let value = values[i].value if (value > max) value = max if (value < min) value = min diff --git a/packages/ui/src/components/NavGroup.svelte b/packages/ui/src/components/NavGroup.svelte index 0bb1680e8e..b985a1c688 100644 --- a/packages/ui/src/components/NavGroup.svelte +++ b/packages/ui/src/components/NavGroup.svelte @@ -72,7 +72,7 @@ } } - function toggle (e: MouseEvent): void { + function toggle(e: MouseEvent): void { e.stopPropagation() e.preventDefault() if (!empty) { @@ -81,7 +81,7 @@ } } - function handleMenuClicked (ev: MouseEvent): void { + function handleMenuClicked(ev: MouseEvent): void { if (actions.length === 0) return ev.stopPropagation() pressed = true diff --git a/packages/ui/src/components/NestedDropdown.svelte b/packages/ui/src/components/NestedDropdown.svelte index f6e466f49d..5ff1ac4233 100644 --- a/packages/ui/src/components/NestedDropdown.svelte +++ b/packages/ui/src/components/NestedDropdown.svelte @@ -41,7 +41,7 @@ const dispatch = createEventDispatcher() - function openPopup (): void { + function openPopup(): void { if (!opened) { opened = true showPopup(NestedMenu, { items, withIcon, disableFocusOnMouseover, withSearch }, container, (result) => { diff --git a/packages/ui/src/components/NestedMenu.svelte b/packages/ui/src/components/NestedMenu.svelte index 859691ed04..f5247ec800 100644 --- a/packages/ui/src/components/NestedMenu.svelte +++ b/packages/ui/src/components/NestedMenu.svelte @@ -53,7 +53,7 @@ $: displayItems = withSearch ? filteredItems : items // Prevent resize observer from triggering on initial render and debounce rapid changes - function handleResize (): void { + function handleResize(): void { if (isInitialRender && withSearch) { isInitialRender = false return @@ -79,11 +79,11 @@ } } - function onNestedSelect (val: any): void { + function onNestedSelect(val: any): void { dispatch('close', val) } - function click (val: DropdownIntlItem): void { + function click(val: DropdownIntlItem): void { onSelect?.(val) dispatch('close', val) } diff --git a/packages/ui/src/components/NestedSelectPopup.svelte b/packages/ui/src/components/NestedSelectPopup.svelte index 3be6c1e7cb..a87dd807d4 100644 --- a/packages/ui/src/components/NestedSelectPopup.svelte +++ b/packages/ui/src/components/NestedSelectPopup.svelte @@ -37,7 +37,7 @@ const dispatch = createEventDispatcher() let search: string = '' - function filterNodes (nodes: NestedSelectItem[], query: string): NestedSelectItem[] { + function filterNodes(nodes: NestedSelectItem[], query: string): NestedSelectItem[] { if (!query) return nodes const q = query.toLowerCase() @@ -57,7 +57,7 @@ $: displayItems = isTopLevel ? filterNodes(items, search) : items - function toggle (id: string | number): void { + function toggle(id: string | number): void { const set = new Set(selectedValues) if (set.has(id)) { set.delete(id) @@ -69,7 +69,7 @@ onChange?.(selectedValues) } - function handleUpdate (values: (string | number)[]): void { + function handleUpdate(values: (string | number)[]): void { selectedValues = values dispatch('update', selectedValues) onChange?.(selectedValues) diff --git a/packages/ui/src/components/NumberInput.svelte b/packages/ui/src/components/NumberInput.svelte index 745f875406..21785d2990 100644 --- a/packages/ui/src/components/NumberInput.svelte +++ b/packages/ui/src/components/NumberInput.svelte @@ -55,7 +55,7 @@ } } - function setValue (val: number | undefined, maxValue: number | undefined, minValue: number | undefined): void { + function setValue(val: number | undefined, maxValue: number | undefined, minValue: number | undefined): void { if (typeof val !== 'number' || Number.isNaN(val)) { dispatch('change') return @@ -73,7 +73,7 @@ phTranslate = res }) - function computeSize (t: HTMLInputElement | EventTarget | null) { + function computeSize(t: HTMLInputElement | EventTarget | null) { if (t == null) { return } @@ -103,10 +103,10 @@ computeSize(input) }) - export function focusInput () { + export function focusInput() { input?.focus() } - export function selectInput () { + export function selectInput() { input?.select() } @@ -126,7 +126,7 @@ input.addEventListener('focus', updateFocus, { once: true }) } - export function focus (): void { + export function focus(): void { input.focus() } diff --git a/packages/ui/src/components/Panel.svelte b/packages/ui/src/components/Panel.svelte index ecacc188f1..58751648ab 100644 --- a/packages/ui/src/components/Panel.svelte +++ b/packages/ui/src/components/Panel.svelte @@ -59,11 +59,11 @@ export let overflowExtra: boolean = false export let element: HTMLElement | undefined = undefined - export function getAside (): string | boolean { + export function getAside(): string | boolean { if (customAside) return selectedAside return asideShown } - export function setAside (id: string | boolean): void { + export function setAside(id: string | boolean): void { if (typeof id === 'string' && customAside) { const i = customAside.findIndex((as) => as.id === id) if (i === -1) return diff --git a/packages/ui/src/components/PanelInstance.svelte b/packages/ui/src/components/PanelInstance.svelte index 329e01ea0c..fff116abf0 100644 --- a/packages/ui/src/components/PanelInstance.svelte +++ b/packages/ui/src/components/PanelInstance.svelte @@ -51,7 +51,7 @@ let keepSize: boolean = false let props: PanelProps | undefined - function _close (): void { + function _close(): void { closePanel() } @@ -69,7 +69,7 @@ props = undefined } - function escapeClose (): void { + function escapeClose(): void { // Check if there is popup visible, then ignore if ($popupstore.length > 0) { return @@ -107,13 +107,13 @@ } } - function handleKeydown (ev: KeyboardEvent): void { + function handleKeydown(ev: KeyboardEvent): void { if (ev.key === 'Escape') { escapeClose() } } - function _open (): void { + function _open(): void { if (modalHTML != null && props != null) { if (props.element === 'content') { modalHTML.classList.add('bg') @@ -154,7 +154,7 @@ } } - export function fitPopupInstance (): void { + export function fitPopupInstance(): void { if (props != null && contentPanel != null) fitPopup(props, contentPanel) } diff --git a/packages/ui/src/components/PlainTextEditor.svelte b/packages/ui/src/components/PlainTextEditor.svelte index 0f2996f21b..718b8e302e 100644 --- a/packages/ui/src/components/PlainTextEditor.svelte +++ b/packages/ui/src/components/PlainTextEditor.svelte @@ -47,7 +47,7 @@ afterUpdate(adjustHeight) - function adjustHeight (): void { + function adjustHeight(): void { if (input == null) { return } @@ -56,7 +56,7 @@ input.style.height = `${input.scrollHeight + 2}px` } - export function focus (): void { + export function focus(): void { input.focus() } diff --git a/packages/ui/src/components/Popup.svelte b/packages/ui/src/components/Popup.svelte index 6f1db96fbd..7abfdcd992 100644 --- a/packages/ui/src/components/Popup.svelte +++ b/packages/ui/src/components/Popup.svelte @@ -15,10 +15,10 @@ @@ -35,7 +35,7 @@ const instances: PopupInstance[] = [] - export function fitPopupInstance (): void { + export function fitPopupInstance(): void { instances.forEach((p) => p.fitPopupInstance()) } diff --git a/packages/ui/src/components/PopupInstance.svelte b/packages/ui/src/components/PopupInstance.svelte index 8c4543ee6b..c734b07bf0 100644 --- a/packages/ui/src/components/PopupInstance.svelte +++ b/packages/ui/src/components/PopupInstance.svelte @@ -84,17 +84,17 @@ (el) => element === el ) - function _update (result: any): void { + function _update(result: any): void { if (onUpdate !== undefined) onUpdate(result) } - function _close (result: any): void { + function _close(result: any): void { if (onClose !== undefined) onClose(result) overlay = false close() } - function escapeClose (): void { + function escapeClose(): void { if (componentInstance?.canClose) { if (!componentInstance.canClose()) return } @@ -120,7 +120,7 @@ options.fullSize = fullSize } - function handleKeydown (ev: KeyboardEvent) { + function handleKeydown(ev: KeyboardEvent) { if (ev.key === 'Escape' && is && top) { ev.preventDefault() ev.stopPropagation() @@ -163,11 +163,11 @@ let notFit: number = 0 let locked: boolean = false - const windowSize: { width: number, height: number } = { width: 0, height: 0 } - const dragParams: { offsetX: number, offsetY: number } = { offsetX: 0, offsetY: 0 } + const windowSize: { width: number; height: number } = { width: 0, height: 0 } + const dragParams: { offsetX: number; offsetY: number } = { offsetX: 0, offsetY: 0 } let popupParams: PopupParams = { x: 0, y: 0, width: 0, height: 0 } - const updatedPopupParams = (pp: { x: number, y: number, width: number, height: number }): void => { + const updatedPopupParams = (pp: { x: number; y: number; width: number; height: number }): void => { if (pp.width === 0 || pp.height === 0 || element !== 'movable') return options.props.left = `${pp.x}px` options.props.right = '' @@ -176,7 +176,7 @@ } $: updatedPopupParams(popupParams) - function mouseDown (e: MouseEvent & { currentTarget: EventTarget & HTMLDivElement }): void { + function mouseDown(e: MouseEvent & { currentTarget: EventTarget & HTMLDivElement }): void { if (element !== 'movable') return const rect = e.currentTarget.getBoundingClientRect() popupParams = { x: rect.left, y: rect.top, width: rect.width, height: rect.height } @@ -187,7 +187,7 @@ window.addEventListener('mouseup', mouseUp) } - function mouseMove (e: MouseEvent): void { + function mouseMove(e: MouseEvent): void { if (element !== 'movable' && !drag) return let newTop = e.clientY - dragParams.offsetY let newLeft = e.clientX - dragParams.offsetX @@ -202,13 +202,13 @@ popupParams = { ...popupParams, x: newLeft, y: newTop } } - function mouseUp (): void { + function mouseUp(): void { drag = false window.removeEventListener('mousemove', mouseMove) window.removeEventListener('mouseup', mouseUp) } - function checkSize (): void { + function checkSize(): void { const rect = modalHTML.getBoundingClientRect() const newParams: PopupParams = { x: rect.left, y: rect.top, width: rect.width, height: rect.height } if (popupParams.width === 0 && popupParams.height === 0) popupParams = newParams @@ -249,7 +249,7 @@ locked = false } - export function fitPopupInstance (): void { + export function fitPopupInstance(): void { if (modalHTML) { fitPopup(modalHTML, element, contentPanel) } diff --git a/packages/ui/src/components/Progress.svelte b/packages/ui/src/components/Progress.svelte index 0063416906..721c5ec208 100644 --- a/packages/ui/src/components/Progress.svelte +++ b/packages/ui/src/components/Progress.svelte @@ -32,13 +32,13 @@ const dispatch = createEventDispatcher() - function click (e: MouseEvent): void { + function click(e: MouseEvent): void { if (!editable) return calcValue(e) dispatch('change', value) } - function calcValue (e: MouseEvent): void { + function calcValue(e: MouseEvent): void { const rect = (e.currentTarget as HTMLElement).getBoundingClientRect() const x = e.clientX - rect.left - $deviceOptionsStore.fontSize / 2 let pos = x / (rect.width - $deviceOptionsStore.fontSize) @@ -47,14 +47,14 @@ value = (max - min) * pos + min } - function save (): void { + function save(): void { if (drag) { dispatch('change', value) drag = false } } - function move (e: MouseEvent): void { + function move(e: MouseEvent): void { if (!drag) return calcValue(e) } diff --git a/packages/ui/src/components/ScrollBox.svelte b/packages/ui/src/components/ScrollBox.svelte index 1139537f4a..4bfbf6c93b 100644 --- a/packages/ui/src/components/ScrollBox.svelte +++ b/packages/ui/src/components/ScrollBox.svelte @@ -29,7 +29,7 @@ if (autoscrollable && autoscroll) div.scrollTo(0, div.scrollHeight) }) - function setAutoscroll () { + function setAutoscroll() { closeTooltip() autoscroll = div.scrollTop > div.scrollHeight - div.clientHeight - 50 } diff --git a/packages/ui/src/components/Scroller.svelte b/packages/ui/src/components/Scroller.svelte index 10f0ecca64..11ce7fad82 100644 --- a/packages/ui/src/components/Scroller.svelte +++ b/packages/ui/src/components/Scroller.svelte @@ -56,13 +56,13 @@ export let maxHeight: number | undefined = undefined export let hideBar: boolean = false - export function scroll (top: number, left?: number, behavior: 'auto' | 'smooth' = 'auto') { + export function scroll(top: number, left?: number, behavior: 'auto' | 'smooth' = 'auto') { if (divScroll) { if (top !== 0) divScroll.scroll({ top, left: 0, behavior }) if (left !== 0 && left !== undefined) divScroll.scroll({ top: 0, left, behavior }) } } - export function scrollBy (top: number, left?: number, behavior: 'auto' | 'smooth' = 'auto') { + export function scrollBy(top: number, left?: number, behavior: 'auto' | 'smooth' = 'auto') { if (divScroll) { if (top !== 0) divScroll.scrollBy({ top, left: 0, behavior }) if (left !== 0 || left !== undefined) divScroll.scrollBy({ top: 0, left, behavior }) @@ -328,7 +328,7 @@ } } - function checkAutoScroll () { + function checkAutoScroll() { if (firstScroll && divHeight && divScroll) { scrollDown() firstScroll = false diff --git a/packages/ui/src/components/SearchEdit.svelte b/packages/ui/src/components/SearchEdit.svelte index ea36004b07..bd515bda0e 100644 --- a/packages/ui/src/components/SearchEdit.svelte +++ b/packages/ui/src/components/SearchEdit.svelte @@ -12,7 +12,7 @@ const dispatch = createEventDispatcher() let timer: any - function restartTimer (): void { + function restartTimer(): void { clearTimeout(timer) timer = setTimeout(() => { value = _search diff --git a/packages/ui/src/components/SearchInput.svelte b/packages/ui/src/components/SearchInput.svelte index a6ce7b0a27..5938bd07fc 100644 --- a/packages/ui/src/components/SearchInput.svelte +++ b/packages/ui/src/components/SearchInput.svelte @@ -40,7 +40,7 @@ const dispatch = createEventDispatcher() let timer: any - function restartTimer (): void { + function restartTimer(): void { clearTimeout(timer) timer = setTimeout(() => { value = _search diff --git a/packages/ui/src/components/SearchPicker.svelte b/packages/ui/src/components/SearchPicker.svelte index ec00394511..ce91ecb881 100644 --- a/packages/ui/src/components/SearchPicker.svelte +++ b/packages/ui/src/components/SearchPicker.svelte @@ -31,19 +31,19 @@ let inputRef: HTMLInputElement | undefined const itemsRef: Chip[] = [] - function handleBackspace (event: KeyboardEvent) { + function handleBackspace(event: KeyboardEvent) { if (event.key === 'Backspace' && value === '' && items.length > 0) { itemsRef[items.length - 1].focus() } dispatch('keydown', event) } - function handleItemRemove (id: string) { + function handleItemRemove(id: string) { dispatch('item-remove', id) inputRef?.focus() } - export function focus () { + export function focus() { inputRef?.focus() autoFocus = false } diff --git a/packages/ui/src/components/SelectPopup.svelte b/packages/ui/src/components/SelectPopup.svelte index 967babacaa..c5dde87dee 100644 --- a/packages/ui/src/components/SelectPopup.svelte +++ b/packages/ui/src/components/SelectPopup.svelte @@ -53,7 +53,7 @@ let selected: any - function sendSelect (id: SelectPopupValueType['id']): void { + function sendSelect(id: SelectPopupValueType['id']): void { selected = id if (onSelect) { onSelect(id) @@ -62,7 +62,7 @@ } } - export function onKeydown (key: KeyboardEvent): boolean { + export function onKeydown(key: KeyboardEvent): boolean { if (key.code === 'Tab') { dispatch('close') key.preventDefault() @@ -93,7 +93,7 @@ let itemLabelsTranslation: Map = new Map() - async function translateLabels (values: SelectPopupValueType[]): Promise { + async function translateLabels(values: SelectPopupValueType[]): Promise { const translateValue: (value: SelectPopupValueType) => Promise<[string, string] | null> = async (e) => { if (e.label === undefined) { return null diff --git a/packages/ui/src/components/Separator.svelte b/packages/ui/src/components/Separator.svelte index 498ffd9b73..0f46780148 100644 --- a/packages/ui/src/components/Separator.svelte +++ b/packages/ui/src/components/Separator.svelte @@ -58,14 +58,14 @@ let realIndex: number = index let offset: number = 0 let separatorsSizes: number[] | null = null - const separatorsWide: { before: number, after: number, total: number } = { before: 0, after: 0, total: 0 } - const containers: { minStart: number, minEnd: number, maxStart: number, maxEnd: number } = { + const separatorsWide: { before: number; after: number; total: number } = { before: 0, after: 0, total: 0 } + const containers: { minStart: number; minEnd: number; maxStart: number; maxEnd: number } = { minStart: -1, minEnd: -1, maxStart: -1, maxEnd: -1 } - let parentSize: { start: number, end: number, size: number } | null = null + let parentSize: { start: number; end: number; size: number } | null = null let disabled: boolean = false let side: 'start' | 'end' | undefined = undefined @@ -300,7 +300,7 @@ return 0 } - function pointerMove (event: PointerEvent): void { + function pointerMove(event: PointerEvent): void { if (sState === SeparatorState.NORMAL) normalMouseMove(event) else if (sState === SeparatorState.FLOAT) floatMouseMove(event) } @@ -322,7 +322,7 @@ parentElement.style.pointerEvents = 'none' } - function floatMouseMove (event: PointerEvent): void { + function floatMouseMove(event: PointerEvent): void { if (!isSeparate || parentSize === null || parentElement === null) return const coord: number = Math.round(direction === 'horizontal' ? event.clientX - offset : event.clientY - offset) let parentCoord: number = coord - parentSize.start @@ -347,7 +347,7 @@ setSize(parentElement, newCoord) } - function normalMouseMove (event: PointerEvent): void { + function normalMouseMove(event: PointerEvent): void { if (!isSeparate || separatorMap === undefined || parentSize === null || separatorsSizes === null) return const coord: number = Math.round(direction === 'horizontal' ? event.clientX - offset : event.clientY - offset) let parentCoord: number = coord - parentSize.start @@ -430,13 +430,13 @@ if ($panelstore.panel?.refit !== undefined) $panelstore.panel.refit() } - function pointerUp (): void { + function pointerUp(): void { finalSeparation() enableUserSelect() document.removeEventListener('pointermove', pointerMove) document.removeEventListener('pointerup', pointerUp) } - function finalSeparation (): void { + function finalSeparation(): void { isSeparate = false if (sState === SeparatorState.NORMAL) { applyStyles(true) @@ -469,7 +469,7 @@ document.body.style.cursor = '' } - function pointerDown (event: PointerEvent): void { + function pointerDown(event: PointerEvent): void { if (checkFullWidth()) return event.preventDefault() disableUserSelect() @@ -477,7 +477,7 @@ document.addEventListener('pointermove', pointerMove) document.addEventListener('pointerup', pointerUp) } - function prepareSeparation (event: PointerEvent): void { + function prepareSeparation(event: PointerEvent): void { if (parentElement == null) return if (sState === SeparatorState.FLOAT && parentElement === null) { checkParent() @@ -575,7 +575,7 @@ const children: Element[] = Array.from(parentElement.children) let totalSize: number = 0 let ind: number = 0 - const rects = new Map() + const rects = new Map() const hasSep: string[] = [] children.forEach((ch) => { const rect = ch.getBoundingClientRect() diff --git a/packages/ui/src/components/StepsDialog.svelte b/packages/ui/src/components/StepsDialog.svelte index 7e368e59d6..1e1d681433 100644 --- a/packages/ui/src/components/StepsDialog.svelte +++ b/packages/ui/src/components/StepsDialog.svelte @@ -49,7 +49,7 @@ let isStepValid = false let isSaving = false - async function handleStepSelect (index: number) { + async function handleStepSelect(index: number) { const newStepIndex = index < steps.length ? Math.max(0, index) : Math.max(0, steps.length - 1) if (newStepIndex > currentStepIndex) { @@ -60,17 +60,17 @@ isStepValid = false } - function handleComponentChange (ev: CustomEvent<{ isValid?: boolean }>) { + function handleComponentChange(ev: CustomEvent<{ isValid?: boolean }>) { isStepValid = !!ev.detail.isValid } - async function handleDone () { + async function handleDone() { await completeCurrentStep() dispatch('close') } - async function completeCurrentStep () { + async function completeCurrentStep() { if (!step?.done) { return } @@ -124,8 +124,8 @@ on:click={isDone ? handleDone : async () => { - await handleStepSelect(currentStepIndex + 1) - }} + await handleStepSelect(currentStepIndex + 1) + }} /> @@ -162,8 +162,8 @@ on:click={disabled || selected ? undefined : async () => { - await handleStepSelect(index) - }} + await handleStepSelect(index) + }} >

, @@ -260,7 +260,7 @@ class PlatformClientImpl implements PlatformClient { ) } - async removeCollection( + async removeCollection ( _class: Ref>, space: Ref, objectId: Ref

, @@ -273,7 +273,7 @@ class PlatformClientImpl implements PlatformClient { // MixinOperations - async createMixin( + async createMixin ( objectId: Ref, objectClass: Ref>, objectSpace: Ref, @@ -284,7 +284,7 @@ class PlatformClientImpl implements PlatformClient { return await this.client.createMixin(objectId, objectClass, objectSpace, mixin, data) } - async updateMixin( + async updateMixin ( objectId: Ref, objectClass: Ref>, objectSpace: Ref, @@ -297,7 +297,7 @@ class PlatformClientImpl implements PlatformClient { // Markup - async fetchMarkup( + async fetchMarkup ( objectClass: Ref>, objectId: Ref, objectAttr: string, @@ -307,7 +307,7 @@ class PlatformClientImpl implements PlatformClient { return await this.markup.fetchMarkup(objectClass, objectId, objectAttr, markup, format) } - async uploadMarkup( + async uploadMarkup ( objectClass: Ref>, objectId: Ref, objectAttr: string, @@ -319,7 +319,7 @@ class PlatformClientImpl implements PlatformClient { // AsyncDisposable - async [Symbol.asyncDispose](): Promise { + async [Symbol.asyncDispose] (): Promise { await this.close() } } diff --git a/foundations/core/packages/api-client/src/config.ts b/foundations/core/packages/api-client/src/config.ts index 652f537238..9386748a38 100644 --- a/foundations/core/packages/api-client/src/config.ts +++ b/foundations/core/packages/api-client/src/config.ts @@ -22,7 +22,7 @@ export interface ServerConfig { UPLOAD_URL: string } -export async function loadServerConfig(url: string): Promise { +export async function loadServerConfig (url: string): Promise { const configUrl = concatLink(url, '/config.json') const res = await fetch(configUrl, { keepalive: true }) if (res.ok) { diff --git a/foundations/core/packages/api-client/src/index.ts b/foundations/core/packages/api-client/src/index.ts index 2379b838de..136511a1f9 100644 --- a/foundations/core/packages/api-client/src/index.ts +++ b/foundations/core/packages/api-client/src/index.ts @@ -16,7 +16,7 @@ export * from './client' export * from './markup/types' export * from './socket' -export * from './types' +export type * from './types' export * from './rest' export * from './config' export * from './utils' diff --git a/foundations/core/packages/api-client/src/markup/client.ts b/foundations/core/packages/api-client/src/markup/client.ts index ad61bf922e..5a783a2080 100644 --- a/foundations/core/packages/api-client/src/markup/client.ts +++ b/foundations/core/packages/api-client/src/markup/client.ts @@ -29,7 +29,7 @@ import { markdownToMarkup, markupToMarkdown } from '@hcengineering/text-markdown import { type ServerConfig } from '../config' import { type MarkupOperations, type MarkupFormat, type MarkupRef } from './types' -export function createMarkupOperations( +export function createMarkupOperations ( url: string, workspace: WorkspaceUuid, token: string, @@ -43,7 +43,7 @@ class MarkupOperationsImpl implements MarkupOperations { private readonly imageUrl: string private readonly refUrl: string - constructor( + constructor ( private readonly url: string, private readonly workspace: WorkspaceUuid, private readonly token: string, @@ -54,7 +54,7 @@ class MarkupOperationsImpl implements MarkupOperations { this.collaborator = getClient(workspace, token, config.COLLABORATOR_URL) } - async fetchMarkup( + async fetchMarkup ( objectClass: Ref>, objectId: Ref, objectAttr: string, @@ -77,7 +77,7 @@ class MarkupOperationsImpl implements MarkupOperations { } } - async uploadMarkup( + async uploadMarkup ( objectClass: Ref>, objectId: Ref, objectAttr: string, diff --git a/foundations/core/packages/api-client/src/markup/types.ts b/foundations/core/packages/api-client/src/markup/types.ts index 57e368183f..a4f6765689 100644 --- a/foundations/core/packages/api-client/src/markup/types.ts +++ b/foundations/core/packages/api-client/src/markup/types.ts @@ -23,19 +23,19 @@ export type MarkupFormat = 'markup' | 'html' | 'markdown' /** @public */ export class MarkupContent { - constructor( + constructor ( readonly content: string, readonly kind: MarkupFormat ) {} } /** @public */ -export function html(content: string): MarkupContent { +export function html (content: string): MarkupContent { return new MarkupContent(content, 'html') } /** @public */ -export function markdown(content: string): MarkupContent { +export function markdown (content: string): MarkupContent { return new MarkupContent(content, 'markdown') } diff --git a/foundations/core/packages/api-client/src/rest/adapter.ts b/foundations/core/packages/api-client/src/rest/adapter.ts index c8bfbd03f7..01e7f3ae8f 100644 --- a/foundations/core/packages/api-client/src/rest/adapter.ts +++ b/foundations/core/packages/api-client/src/rest/adapter.ts @@ -41,13 +41,13 @@ import { import type { RestClient } from './types' export class RestClientAdapter implements Client { - constructor( + constructor ( private readonly client: RestClient, private readonly hierarchy: Hierarchy | undefined, private readonly model: ModelDb | undefined ) {} - async domainRequest( + async domainRequest ( domain: OperationDomain, params: DomainParams, options?: DomainRequestOptions @@ -55,7 +55,7 @@ export class RestClientAdapter implements Client { return await this.client.domainRequest(domain, params, options) } - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -83,7 +83,7 @@ export class RestClientAdapter implements Client { return await this.client.tx(tx) } - async findOne( + async findOne ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -91,22 +91,22 @@ export class RestClientAdapter implements Client { return await this.client.findOne(_class, query, options) } - async searchFulltext(query: SearchQuery, options: SearchOptions): Promise { + async searchFulltext (query: SearchQuery, options: SearchOptions): Promise { return await this.client.searchFulltext(query, options) } - async close(): Promise { + async close (): Promise { // No ned to close the REST client } - getHierarchy(): Hierarchy { + getHierarchy (): Hierarchy { if (this.hierarchy === undefined) { throw new Error('Hierarchy is not defined') } return this.hierarchy } - getModel(): ModelDb { + getModel (): ModelDb { if (this.model === undefined) { throw new Error('Model is not defined') } diff --git a/foundations/core/packages/api-client/src/rest/index.ts b/foundations/core/packages/api-client/src/rest/index.ts index e2f5f2608f..00bf83f7d7 100644 --- a/foundations/core/packages/api-client/src/rest/index.ts +++ b/foundations/core/packages/api-client/src/rest/index.ts @@ -16,4 +16,4 @@ export { RestClientAdapter } from './adapter' export { createRestClient, connectRest } from './rest' export { createRestTxOperations } from './tx' -export * from './types' +export type * from './types' diff --git a/foundations/core/packages/api-client/src/rest/rest.ts b/foundations/core/packages/api-client/src/rest/rest.ts index 766385869e..6242ed040a 100644 --- a/foundations/core/packages/api-client/src/rest/rest.ts +++ b/foundations/core/packages/api-client/src/rest/rest.ts @@ -59,18 +59,18 @@ import { getWorkspaceToken } from '../utils' import type { EnsurePersonOptions, RestClient } from './types' import { extractJson, withRetry } from './utils' -export function createRestClient(endpoint: string, workspaceId: string, token: string): RestClient { +export function createRestClient (endpoint: string, workspaceId: string, token: string): RestClient { return new RestClientImpl(endpoint, workspaceId, token) } -export async function connectRest(url: string, options: AuthOptions): Promise { +export async function connectRest (url: string, options: AuthOptions): Promise { const { endpoint, token, workspaceId } = await getWorkspaceToken(url, options) return createRestClient(endpoint, workspaceId, token) } const rateLimitError = 'rate-limit' -function isRLE(err: any): boolean { +function isRLE (err: any): boolean { return err.message === rateLimitError } @@ -78,11 +78,11 @@ export class RestClientImpl implements RestClient { endpoint: string slowDownTimer = 0 - currentRateLimit: { remaining: number; limit: number } = { remaining: 1000, limit: 1000 } + currentRateLimit: { remaining: number, limit: number } = { remaining: 1000, limit: 1000 } remaining: number = 1000 limit: number = 1000 - constructor( + constructor ( endpoint: string, readonly workspace: string, readonly token: string @@ -90,7 +90,7 @@ export class RestClientImpl implements RestClient { this.endpoint = endpoint.replace('ws', 'http') } - jsonHeaders(): Record { + jsonHeaders (): Record { return { 'Content-Type': 'application/json', Authorization: 'Bearer ' + this.token, @@ -98,7 +98,7 @@ export class RestClientImpl implements RestClient { } } - requestInit(): RequestInit { + requestInit (): RequestInit { return { method: 'GET', keepalive: true, @@ -106,7 +106,7 @@ export class RestClientImpl implements RestClient { } } - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -258,13 +258,13 @@ export class RestClientImpl implements RestClient { } } - private updateRateLimit(response: Response): void { + private updateRateLimit (response: Response): void { const rateLimitLimit: number = parseInt(response.headers.get('X-RateLimit-Limit') ?? '100') const remaining: number = parseInt(response.headers.get('X-RateLimit-Remaining') ?? '100') this.currentRateLimit = { remaining, limit: rateLimitLimit } } - private async checkRateLimits(response: Response): Promise { + private async checkRateLimits (response: Response): Promise { if (response.status === 429) { // Extract rate limit information from headers const retryAfter = response.headers.get('Retry-After') @@ -284,7 +284,7 @@ export class RestClientImpl implements RestClient { } } - async getAccount(): Promise { + async getAccount (): Promise { const requestUrl = concatLink(this.endpoint, `/api/v1/account/${this.workspace}`) await this.checkRate() const result = await withRetry(async () => { @@ -302,13 +302,13 @@ export class RestClientImpl implements RestClient { return result } - async getModel(full: boolean = false): Promise<{ hierarchy: Hierarchy; model: ModelDb }> { + async getModel (full: boolean = false): Promise<{ hierarchy: Hierarchy, model: ModelDb }> { const requestUrl = new URL(concatLink(this.endpoint, `/api/v1/load-model/${this.workspace}`)) if (full) { requestUrl.searchParams.append('full', 'true') } await this.checkRate() - const result = await withRetry<{ hierarchy: Hierarchy; model: ModelDb; error?: Status }>(async () => { + const result = await withRetry<{ hierarchy: Hierarchy, model: ModelDb, error?: Status }>(async () => { const response = await fetch(requestUrl, this.requestInit()) if (!response.ok) { await this.checkRateLimits(response) @@ -332,7 +332,7 @@ export class RestClientImpl implements RestClient { return result } - async findOne( + async findOne ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -340,7 +340,7 @@ export class RestClientImpl implements RestClient { return (await this.findAll(_class, query, { ...options, limit: 1 })).shift() } - async tx(tx: Tx): Promise { + async tx (tx: Tx): Promise { const requestUrl = concatLink(this.endpoint, `/api/v1/tx/${this.workspace}`) await this.checkRate() const result = await withRetry(async () => { @@ -363,7 +363,7 @@ export class RestClientImpl implements RestClient { return result } - async searchFulltext(query: SearchQuery, options: SearchOptions): Promise { + async searchFulltext (query: SearchQuery, options: SearchOptions): Promise { const result = await withRetry(async () => { const params = new URLSearchParams() params.append('query', query.query) @@ -395,7 +395,7 @@ export class RestClientImpl implements RestClient { return result } - async domainRequest( + async domainRequest ( domain: OperationDomain, params: DomainParams, options?: DomainRequestOptions @@ -420,13 +420,13 @@ export class RestClientImpl implements RestClient { }, isRLE) } - async ensurePerson( + async ensurePerson ( socialType: SocialIdType, socialValue: string, firstName: string, lastName: string, options?: EnsurePersonOptions - ): Promise<{ uuid: PersonUuid; socialId: PersonId; localPerson: string }> { + ): Promise<{ uuid: PersonUuid, socialId: PersonId, localPerson: string }> { const requestUrl = concatLink(this.endpoint, `/api/v1/ensure-person/${this.workspace}`) await this.checkRate() const result = await withRetry(async () => { @@ -447,7 +447,7 @@ export class RestClientImpl implements RestClient { throw new PlatformError(unknownError(response.statusText)) } this.updateRateLimit(response) - return await extractJson<{ uuid: PersonUuid; socialId: PersonId; localPerson: string }>(response) + return await extractJson<{ uuid: PersonUuid, socialId: PersonId, localPerson: string }>(response) }, isRLE) if (result.error !== undefined) { throw new PlatformError(result.error) @@ -455,10 +455,10 @@ export class RestClientImpl implements RestClient { return result } - private async v1op(op: string, data: any): Promise

{ + private async v1op (op: string, data: any): Promise

{ const requestUrl = concatLink(this.endpoint, `/api/v1/${op}/${this.workspace}`) await this.checkRate() - const result = await withRetry<{ result?: Ref; error?: Status }>(async () => { + const result = await withRetry<{ result?: Ref, error?: Status }>(async () => { const response = await fetch(requestUrl, { method: 'POST', headers: this.jsonHeaders(), @@ -478,7 +478,7 @@ export class RestClientImpl implements RestClient { return result as P } - createDoc( + createDoc ( _class: Ref>, space: Ref, attributes: Data, @@ -496,7 +496,7 @@ export class RestClientImpl implements RestClient { }) } - addCollection( + addCollection ( _class: Ref>, space: Ref, attachedTo: Ref, @@ -520,7 +520,7 @@ export class RestClientImpl implements RestClient { }) } - update( + update ( doc: T, update: DocumentUpdate, retrieve?: boolean, @@ -545,7 +545,7 @@ export class RestClientImpl implements RestClient { return this.v1op('update', req) } - remove(doc: T, modifiedOn?: Timestamp, modifiedBy?: PersonId): Promise { + remove (doc: T, modifiedOn?: Timestamp, modifiedBy?: PersonId): Promise { const req = { _class: doc._class, _id: doc._id, @@ -562,7 +562,7 @@ export class RestClientImpl implements RestClient { return this.v1op('remove', req) } - createMixin( + createMixin ( objectId: Ref, objectClass: Ref>, objectSpace: Ref, @@ -582,7 +582,7 @@ export class RestClientImpl implements RestClient { }) } - updateMixin( + updateMixin ( objectId: Ref, objectClass: Ref>, objectSpace: Ref, diff --git a/foundations/core/packages/api-client/src/rest/tx.ts b/foundations/core/packages/api-client/src/rest/tx.ts index 5efe321f39..fe91671b8b 100644 --- a/foundations/core/packages/api-client/src/rest/tx.ts +++ b/foundations/core/packages/api-client/src/rest/tx.ts @@ -42,7 +42,7 @@ import { } from '@hcengineering/core' import { RestClientImpl } from './rest' -export async function createRestTxOperations( +export async function createRestTxOperations ( endpoint: string, workspaceId: string, token: string, @@ -57,18 +57,18 @@ export async function createRestTxOperations( } class RestTxClient implements Client { - constructor( + constructor ( readonly client: RestClientImpl, readonly hierarchy: Hierarchy, readonly model: ModelDb, readonly account: Account ) {} - close(): Promise { + close (): Promise { return Promise.resolve() } - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -119,7 +119,7 @@ class RestTxClient implements Client { return await this.client.domainRequest(domain, params, options) } - async findOne( + async findOne ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -134,15 +134,15 @@ class RestTxClient implements Client { getHierarchy: () => Hierarchy = () => this.hierarchy getModel: () => ModelDb = () => this.model - async getAccount(): Promise { + async getAccount (): Promise { return this.account } - async tx(tx: Tx): Promise { + async tx (tx: Tx): Promise { return await this.client.tx(tx) } - async searchFulltext(query: SearchQuery, options: SearchOptions): Promise { + async searchFulltext (query: SearchQuery, options: SearchOptions): Promise { return await this.client.searchFulltext(query, options) } } diff --git a/foundations/core/packages/api-client/src/rest/types.ts b/foundations/core/packages/api-client/src/rest/types.ts index 9a552cdb4b..ec921ca383 100644 --- a/foundations/core/packages/api-client/src/rest/types.ts +++ b/foundations/core/packages/api-client/src/rest/types.ts @@ -82,7 +82,7 @@ export interface RestClient extends Storage, FulltextStorage { firstName: string, lastName: string, options?: EnsurePersonOptions - ) => Promise<{ uuid: PersonUuid; socialId: PersonId; localPerson: string }> + ) => Promise<{ uuid: PersonUuid, socialId: PersonId, localPerson: string }> createDoc: ( _class: Ref>, diff --git a/foundations/core/packages/api-client/src/rest/utils.ts b/foundations/core/packages/api-client/src/rest/utils.ts index 466f5ec467..8b098ac7e5 100644 --- a/foundations/core/packages/api-client/src/rest/utils.ts +++ b/foundations/core/packages/api-client/src/rest/utils.ts @@ -1,6 +1,6 @@ import { uncompress } from 'snappyjs' -export async function withRetry(fn: () => Promise, ignoreAttemptCheck?: (err: any) => boolean): Promise { +export async function withRetry (fn: () => Promise, ignoreAttemptCheck?: (err: any) => boolean): Promise { const maxRetries = 3 let lastError: any @@ -23,7 +23,7 @@ export async function withRetry(fn: () => Promise, ignoreAttemptCheck?: (e throw lastError } -function rpcJSONReceiver(key: string, value: any): any { +function rpcJSONReceiver (key: string, value: any): any { if (typeof value === 'object' && value !== null) { if (value.dataType === 'TotalArray') { return Object.assign(value.value, { total: value.total, lookupMap: value.lookupMap }) @@ -32,7 +32,7 @@ function rpcJSONReceiver(key: string, value: any): any { return value } -export async function extractJson(response: Response): Promise { +export async function extractJson (response: Response): Promise { const encoding = response.headers.get('content-encoding') if (encoding === 'snappy') { const buffer = await response.arrayBuffer() diff --git a/foundations/core/packages/api-client/src/socket/node.ts b/foundations/core/packages/api-client/src/socket/node.ts index 175561a3d8..5b8285e3db 100644 --- a/foundations/core/packages/api-client/src/socket/node.ts +++ b/foundations/core/packages/api-client/src/socket/node.ts @@ -30,7 +30,7 @@ export const NodeWebSocketFactory: ClientSocketFactory = (url: string): ClientSo const ws = new WebSocket(url) const client: ClientSocket = { - get readyState(): number { + get readyState (): number { return ws.readyState }, diff --git a/foundations/core/packages/api-client/src/storage/client.ts b/foundations/core/packages/api-client/src/storage/client.ts index 1d8d40f1ae..b628d8b742 100644 --- a/foundations/core/packages/api-client/src/storage/client.ts +++ b/foundations/core/packages/api-client/src/storage/client.ts @@ -45,7 +45,7 @@ type BlobUploadResult = BlobUploadSuccess | BlobUploadError export class StorageClientImpl implements StorageClient { private readonly headers: Record - constructor( + constructor ( readonly filesUrl: string, readonly uploadUrl: string, token: string, @@ -56,11 +56,11 @@ export class StorageClientImpl implements StorageClient { } } - getObjectUrl(objectName: string): string { + getObjectUrl (objectName: string): string { return this.filesUrl.replace(':filename', objectName).replace(':blobId', objectName) } - async stat(objectName: string): Promise { + async stat (objectName: string): Promise { const url = this.getObjectUrl(objectName) let response try { @@ -88,7 +88,7 @@ export class StorageClientImpl implements StorageClient { } } - async get(objectName: string): Promise { + async get (objectName: string): Promise { const url = this.getObjectUrl(objectName) const response = await wrappedFetch(url, { headers: { ...this.headers } }) @@ -99,7 +99,7 @@ export class StorageClientImpl implements StorageClient { return Readable.from(response.body) } - async put(objectName: string, stream: Readable | Buffer | string, contentType: string, size?: number): Promise { + async put (objectName: string, stream: Readable | Buffer | string, contentType: string, size?: number): Promise { const buffer = await toBuffer(stream) const file = new File([new Uint8Array(buffer)], objectName, { type: contentType }) const formData = new FormData() @@ -138,7 +138,7 @@ export class StorageClientImpl implements StorageClient { } } - async partial(objectName: string, offset: number, length?: number): Promise { + async partial (objectName: string, offset: number, length?: number): Promise { const url = this.getObjectUrl(objectName) const response = await wrappedFetch(url, { @@ -154,7 +154,7 @@ export class StorageClientImpl implements StorageClient { return Readable.from(response.body) } - async remove(objectName: string): Promise { + async remove (objectName: string): Promise { const url = this.getObjectUrl(objectName) await wrappedFetch(url, { method: 'DELETE', @@ -163,7 +163,7 @@ export class StorageClientImpl implements StorageClient { } } -async function toBuffer(data: Buffer | string | Readable): Promise { +async function toBuffer (data: Buffer | string | Readable): Promise { if (Buffer.isBuffer(data)) { return data } else if (typeof data === 'string') { @@ -173,13 +173,13 @@ async function toBuffer(data: Buffer | string | Readable): Promise { for await (const chunk of data) { chunks.push(chunk) } - return Buffer.concat(chunks as any) + return Buffer.concat(chunks) } else { throw new TypeError('Unsupported data type') } } -async function wrappedFetch(url: string | URL, init?: RequestInit): Promise { +async function wrappedFetch (url: string | URL, init?: RequestInit): Promise { let response: Response try { response = await fetch(url, init) @@ -197,7 +197,7 @@ async function wrappedFetch(url: string | URL, init?: RequestInit): Promise { +export async function connectStorage (url: string, options: AuthOptions, config?: ServerConfig): Promise { config ??= await loadServerConfig(url) const token = await getWorkspaceToken(url, options, config) const filesUrl = (config.FILES_URL.startsWith('/') ? concatLink(url, config.FILES_URL) : config.FILES_URL).replace( diff --git a/foundations/core/packages/api-client/src/storage/error.ts b/foundations/core/packages/api-client/src/storage/error.ts index 207275ad58..2e5d98590d 100644 --- a/foundations/core/packages/api-client/src/storage/error.ts +++ b/foundations/core/packages/api-client/src/storage/error.ts @@ -14,21 +14,21 @@ // export class NetworkError extends Error { - constructor(message: string) { + constructor (message: string) { super(message) this.name = 'NetworkError' } } export class StorageError extends Error { - constructor(message: string) { + constructor (message: string) { super(message) this.name = 'StorageError' } } export class NotFoundError extends StorageError { - constructor(message = 'Not Found') { + constructor (message = 'Not Found') { super(message) this.name = 'NotFoundError' } diff --git a/foundations/core/packages/api-client/src/storage/index.ts b/foundations/core/packages/api-client/src/storage/index.ts index 8be0b038d4..555ed78e2c 100644 --- a/foundations/core/packages/api-client/src/storage/index.ts +++ b/foundations/core/packages/api-client/src/storage/index.ts @@ -15,4 +15,4 @@ export { createStorageClient, connectStorage } from './client' export * from './error' -export * from './types' +export type * from './types' diff --git a/foundations/core/packages/api-client/src/utils.ts b/foundations/core/packages/api-client/src/utils.ts index 99b65d5cdc..0d6efe5f3c 100644 --- a/foundations/core/packages/api-client/src/utils.ts +++ b/foundations/core/packages/api-client/src/utils.ts @@ -25,7 +25,7 @@ export interface WorkspaceToken { info: WorkspaceLoginInfo } -export async function getWorkspaceToken( +export async function getWorkspaceToken ( url: string, options: AuthOptions, config?: ServerConfig diff --git a/foundations/core/packages/client-resources/src/__tests__/connection.test.ts b/foundations/core/packages/client-resources/src/__tests__/connection.test.ts index bf1ffda707..ec33251c2b 100644 --- a/foundations/core/packages/client-resources/src/__tests__/connection.test.ts +++ b/foundations/core/packages/client-resources/src/__tests__/connection.test.ts @@ -30,7 +30,7 @@ class MockCloseEvent { readonly type: string readonly code: number - constructor(type: string, init?: { code?: number }) { + constructor (type: string, init?: { code?: number }) { this.type = type this.code = init?.code ?? 1000 } @@ -42,7 +42,7 @@ class MockMessageEvent { readonly type: string readonly data: any - constructor(type: string, init: { data: any }) { + constructor (type: string, init: { data: any }) { this.type = type this.data = init.data } @@ -53,7 +53,7 @@ class MockMessageEvent { class MockEvent { readonly type: string - constructor(type: string) { + constructor (type: string) { this.type = type } } @@ -71,7 +71,7 @@ class MockWebSocket implements ClientSocket { private closeCode?: number private timers: any[] = [] - constructor(public url: string) { + constructor (public url: string) { // Simulate async connection const timer = setTimeout(() => { if (this.readyState === ClientSocketReadyState.CLOSED) { @@ -87,14 +87,14 @@ class MockWebSocket implements ClientSocket { this.timers.push(timer) } - clearAllTimers(): void { + clearAllTimers (): void { for (const timer of this.timers) { clearTimeout(timer) } this.timers = [] } - send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void { + send (data: string | ArrayBufferLike | Blob | ArrayBufferView): void { if (this.readyState !== ClientSocketReadyState.OPEN) { throw new Error('WebSocket is not open') } @@ -170,7 +170,7 @@ class MockWebSocket implements ClientSocket { } } - close(code?: number): void { + close (code?: number): void { this.closeCode = code this.readyState = ClientSocketReadyState.CLOSING this.clearAllTimers() @@ -184,7 +184,7 @@ class MockWebSocket implements ClientSocket { } // Helper method to simulate receiving messages - simulateMessage(data: string | ArrayBuffer): void { + simulateMessage (data: string | ArrayBuffer): void { if (this.readyState === ClientSocketReadyState.OPEN) { if (this.onmessage !== null && this.onmessage !== undefined) { const event = new MockMessageEvent('message', { data }) @@ -195,7 +195,7 @@ class MockWebSocket implements ClientSocket { } } - private processQueue(): void { + private processQueue (): void { while (this.messageQueue.length > 0) { const data = this.messageQueue.shift() this.simulateMessage(data) @@ -203,7 +203,7 @@ class MockWebSocket implements ClientSocket { } // Helper to simulate server-initiated transactions - simulateTransaction(tx: Tx): void { + simulateTransaction (tx: Tx): void { const message = { result: { _class: 'core:class:TxNotification', @@ -303,7 +303,7 @@ describe('connect function', () => { mockWebSockets.push(mockWs) const client = connect('ws://localhost:3333', handler, workspaceId, userId, { - socketFactory: (url: string) => mockWs as any + socketFactory: (url: string) => mockWs }) connections.push(client) @@ -333,7 +333,7 @@ describe('connect function', () => { const mockWs = new MockWebSocket('ws://localhost:3333') const client = connect('ws://localhost:3333', handler, workspaceId, userId, { - socketFactory: (url: string) => mockWs as any + socketFactory: (url: string) => mockWs }) connections.push(client) diff --git a/foundations/core/packages/client-resources/src/__tests__/integration.test.ts b/foundations/core/packages/client-resources/src/__tests__/integration.test.ts index 876550e2c5..f144c2e3eb 100644 --- a/foundations/core/packages/client-resources/src/__tests__/integration.test.ts +++ b/foundations/core/packages/client-resources/src/__tests__/integration.test.ts @@ -54,12 +54,12 @@ import type { IntlString } from '@hcengineering/platform' const txFactory = new TxFactory(core.account.System) -function createClass(_class: Ref>, attributes: Data>): TxCreateDoc { +function createClass (_class: Ref>, attributes: Data>): TxCreateDoc { return txFactory.createTxCreateDoc(core.class.Class, core.space.Model, attributes, _class) } // Generate minimal model for testing -function generateMinimalModel(): Tx[] { +function generateMinimalModel (): Tx[] { const txes: Tx[] = [] txes.push(createClass(core.class.Obj, { label: 'Obj' as IntlString, kind: ClassifierKind.CLASS })) @@ -138,7 +138,7 @@ export class MockClientConnection implements ClientConnection { onConnect?: (event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise getLastHash?: () => Promise - constructor(txes: Tx[] = []) { + constructor (txes: Tx[] = []) { const minimalModel = txes.length === 0 ? generateMinimalModel() : txes this.hierarchy = new Hierarchy() @@ -155,19 +155,19 @@ export class MockClientConnection implements ClientConnection { } } - isConnected(): boolean { + isConnected (): boolean { return this._connected } - setConnected(value: boolean): void { + setConnected (value: boolean): void { this._connected = value } - pushHandler(handler: TxHandler): void { + pushHandler (handler: TxHandler): void { this.handlers.push(handler) } - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -175,11 +175,11 @@ export class MockClientConnection implements ClientConnection { return await this.model.findAll(_class, query, options) } - async searchFulltext(query: SearchQuery, options: SearchOptions): Promise { + async searchFulltext (query: SearchQuery, options: SearchOptions): Promise { return { docs: [] } } - async tx(tx: Tx): Promise { + async tx (tx: Tx): Promise { if (tx.objectSpace === core.space.Model) { this.hierarchy.tx(tx) await this.model.tx(tx) @@ -193,7 +193,7 @@ export class MockClientConnection implements ClientConnection { return {} } - async loadModel(last: Timestamp, hash?: string): Promise { + async loadModel (last: Timestamp, hash?: string): Promise { const txes = await this.transactions.findAll(core.class.Tx, { objectSpace: core.space.Model, modifiedOn: { $gt: last } @@ -209,11 +209,11 @@ export class MockClientConnection implements ClientConnection { return txes } - async close(): Promise { + async close (): Promise { this._connected = false } - async loadChunk(domain: Domain, idx?: number): Promise { + async loadChunk (domain: Domain, idx?: number): Promise { return { idx: idx ?? 0, docs: [], @@ -221,23 +221,23 @@ export class MockClientConnection implements ClientConnection { } } - async getDomainHash(domain: Domain): Promise { + async getDomainHash (domain: Domain): Promise { return 'test-hash' } - async closeChunk(idx: number): Promise {} + async closeChunk (idx: number): Promise {} - async loadDocs(domain: Domain, docs: Ref[]): Promise { + async loadDocs (domain: Domain, docs: Ref[]): Promise { return [] } - async upload(domain: Domain, docs: Doc[]): Promise {} + async upload (domain: Domain, docs: Doc[]): Promise {} - async clean(domain: Domain, docs: Ref[]): Promise {} + async clean (domain: Domain, docs: Ref[]): Promise {} - async sendForceClose(): Promise {} + async sendForceClose (): Promise {} - async domainRequest( + async domainRequest ( ctx: OperationDomain, params: DomainParams, options?: DomainRequestOptions @@ -245,13 +245,13 @@ export class MockClientConnection implements ClientConnection { return { domain: ctx, value: null } } - simulateTransaction(tx: Tx): void { + simulateTransaction (tx: Tx): void { this.handlers.forEach((h) => { h(tx) }) } - async simulateConnect(event: ClientConnectEvent = ClientConnectEvent.Connected): Promise { + async simulateConnect (event: ClientConnectEvent = ClientConnectEvent.Connected): Promise { if (this.onConnect !== undefined) { await this.onConnect(event, undefined, {}) } @@ -261,7 +261,7 @@ export class MockClientConnection implements ClientConnection { /** * Create a test client with mock connection */ -export async function createTestClient(initialTxes: Tx[] = []): Promise<{ +export async function createTestClient (initialTxes: Tx[] = []): Promise<{ client: Client connection: MockClientConnection close: () => Promise @@ -285,7 +285,7 @@ export async function createTestClient(initialTxes: Tx[] = []): Promise<{ /** * Helper to create a test transaction */ -export function createTestTx(objectClass: Ref> = core.class.Space, attributes: any = {}): TxCreateDoc { +export function createTestTx (objectClass: Ref> = core.class.Space, attributes: any = {}): TxCreateDoc { return { _id: generateId(), _class: core.class.TxCreateDoc, diff --git a/foundations/core/packages/client-resources/src/connection.ts b/foundations/core/packages/client-resources/src/connection.ts index a5aef43c45..db857400f3 100644 --- a/foundations/core/packages/client-resources/src/connection.ts +++ b/foundations/core/packages/client-resources/src/connection.ts @@ -93,7 +93,7 @@ class RequestPromise { // Required to properly handle rate limits sendData: () => void = () => {} - constructor( + constructor ( readonly method: string, readonly params: any[], @@ -105,7 +105,7 @@ class RequestPromise { }) } - chunks?: { index: number; data: FindResult }[] + chunks?: { index: number, data: FindResult }[] } const globalRPCHandler: RPCHandler = new RPCHandler() @@ -150,7 +150,7 @@ class Connection implements ClientConnection { handlers: TxHandler[] = [] - constructor( + constructor ( private readonly ctx: MeasureContext, private readonly url: string, handler: TxHandler, @@ -185,7 +185,7 @@ class Connection implements ClientConnection { this.scheduleOpen(this.ctx, false) } - private installVisibilityHandler(): void { + private installVisibilityHandler (): void { if (typeof document === 'undefined') return this.visibilityHandler = () => { if (this.closed) return @@ -238,16 +238,16 @@ class Connection implements ClientConnection { document.addEventListener('visibilitychange', this.visibilityHandler) } - pushHandler(handler: TxHandler): void { + pushHandler (handler: TxHandler): void { this.handlers.push(handler) } - async getLastHash(ctx: MeasureContext): Promise { + async getLastHash (ctx: MeasureContext): Promise { await this.waitOpenConnection(ctx) return this.lastHash } - private schedulePing(socketId: number): void { + private schedulePing (socketId: number): void { this.pingResponse = platformNow() const wsocket = this.websocket @@ -302,7 +302,7 @@ class Connection implements ClientConnection { }, pingTimeout) } - async close(): Promise { + async close (): Promise { this.closed = true clearTimeout(this.openAction) clearTimeout(this.dialTimer) @@ -323,14 +323,14 @@ class Connection implements ClientConnection { } } - isConnected(): boolean { + isConnected (): boolean { return this.websocket != null && this.websocket.readyState === ClientSocketReadyState.OPEN && this.helloReceived } delay = 0 onConnectHandlers: OnConnectHandler[] = [] - private waitOpenConnection(ctx: MeasureContext): Promise | undefined { + private waitOpenConnection (ctx: MeasureContext): Promise | undefined { if (this.isConnected()) { return undefined } @@ -350,7 +350,7 @@ class Connection implements ClientConnection { ) } - scheduleOpen(ctx: MeasureContext, force: boolean): void { + scheduleOpen (ctx: MeasureContext, force: boolean): void { if (force) { ctx.withSync('close-ws', {}, () => { if (this.websocket !== null) { @@ -381,10 +381,10 @@ class Connection implements ClientConnection { currentRateLimit: RateLimitInfo | undefined slowDownTimer = 0 - handleMsg( + handleMsg ( socketId: number, resp: Response, - sizes: { compressedSize: number; uncompressedSize: number } = { compressedSize: 0, uncompressedSize: 0 } + sizes: { compressedSize: number, uncompressedSize: number } = { compressedSize: 0, uncompressedSize: 0 } ): void { if (this.closed) { return @@ -621,7 +621,7 @@ class Connection implements ClientConnection { } } - checkArrayBufferPing(data: ArrayBuffer): boolean { + checkArrayBufferPing (data: ArrayBuffer): boolean { if (data.byteLength === pingConst.length || data.byteLength === pongConst.length) { const text = new TextDecoder().decode(data) if (text === pingConst) { @@ -638,7 +638,7 @@ class Connection implements ClientConnection { return false } - private openConnection(ctx: MeasureContext, socketId: number): void { + private openConnection (ctx: MeasureContext, socketId: number): void { this.binaryMode = false this.helloReceived = false // Use defined factory or browser default one. @@ -795,7 +795,7 @@ class Connection implements ClientConnection { } } - private sendRequest(data: { + private sendRequest (data: { method: string params: any[] // If not defined, on reconnect with timeout, will retry automatically. @@ -885,18 +885,18 @@ class Connection implements ClientConnection { ) } - loadModel(last: Timestamp, hash?: string): Promise { + loadModel (last: Timestamp, hash?: string): Promise { return this.sendRequest({ method: 'loadModel', params: [last, hash] }) } - getAccount(): Promise { + getAccount (): Promise { if (this.account !== undefined) { return Promise.resolve(clone(this.account)) } return this.sendRequest({ method: 'getAccount', params: [] }) } - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -1015,35 +1015,35 @@ class Connection implements ClientConnection { }) } - loadChunk(domain: Domain, idx?: number): Promise { + loadChunk (domain: Domain, idx?: number): Promise { return this.sendRequest({ method: 'loadChunk', params: [domain, idx] }) } - async getDomainHash(domain: Domain): Promise { + async getDomainHash (domain: Domain): Promise { return await this.sendRequest({ method: 'getDomainHash', params: [domain] }) } - closeChunk(idx: number): Promise { + closeChunk (idx: number): Promise { return this.sendRequest({ method: 'closeChunk', params: [idx] }) } - loadDocs(domain: Domain, docs: Ref[]): Promise { + loadDocs (domain: Domain, docs: Ref[]): Promise { return this.sendRequest({ method: 'loadDocs', params: [domain, docs] }) } - upload(domain: Domain, docs: Doc[]): Promise { + upload (domain: Domain, docs: Doc[]): Promise { return this.sendRequest({ method: 'upload', params: [domain, docs] }) } - clean(domain: Domain, docs: Ref[]): Promise { + clean (domain: Domain, docs: Ref[]): Promise { return this.sendRequest({ method: 'clean', params: [domain, docs] }) } - searchFulltext(query: SearchQuery, options: SearchOptions): Promise { + searchFulltext (query: SearchQuery, options: SearchOptions): Promise { return this.sendRequest({ method: 'searchFulltext', params: [query, options] }) } - domainRequest(domain: OperationDomain, params: DomainParams, options?: DomainRequestOptions): Promise { + domainRequest (domain: OperationDomain, params: DomainParams, options?: DomainRequestOptions): Promise { return this.sendRequest({ method: 'domainRequest', params: [domain, params], @@ -1053,7 +1053,7 @@ class Connection implements ClientConnection { }) } - sendForceClose(): Promise { + sendForceClose (): Promise { return this.sendRequest({ method: 'forceClose', params: [], allowReconnect: false, overrideId: -2, once: true }) } } @@ -1061,7 +1061,7 @@ class Connection implements ClientConnection { /** * @public */ -export function connect( +export function connect ( url: string, handler: TxHandler, workspace: WorkspaceUuid, diff --git a/foundations/core/packages/client-resources/src/index.ts b/foundations/core/packages/client-resources/src/index.ts index daa457e3cf..9d126e8987 100644 --- a/foundations/core/packages/client-resources/src/index.ts +++ b/foundations/core/packages/client-resources/src/index.ts @@ -83,7 +83,7 @@ interface TokenPayload { /** * @public */ -function decodeTokenPayload(token: string): TokenPayload { +function decodeTokenPayload (token: string): TokenPayload { try { return JSON.parse(atob(token.split('.')[1])) } catch (err: any) { @@ -182,7 +182,7 @@ export default async () => { } } } -function returnUITxes(txes: Tx[], extraFilter: string[]): Tx[] { +function returnUITxes (txes: Tx[], extraFilter: string[]): Tx[] { const configs = new Map, PluginConfiguration>() fillConfiguration(txes, configs) @@ -193,7 +193,7 @@ function returnUITxes(txes: Tx[], extraFilter: string[]): Tx[] { return pluginFilterTx(excludedPlugins, configs, txes) } -function returnClientTxes(txes: Tx[]): Tx[] { +function returnClientTxes (txes: Tx[]): Tx[] { const configs = new Map, PluginConfiguration>() fillConfiguration(txes, configs) const excludedPlugins = Array.from(configs.values()).filter((it) => !it.enabled || it.pluginId.startsWith('server-')) @@ -240,7 +240,7 @@ function returnClientTxes(txes: Tx[]): Tx[] { return result } -function createModelPersistence(workspace: string): TxPersistenceStore | undefined { +function createModelPersistence (workspace: string): TxPersistenceStore | undefined { const overrideStore = getMetadata(clientPlugin.metadata.OverridePersistenceStore) if (overrideStore !== undefined) { return overrideStore @@ -253,8 +253,8 @@ function createModelPersistence(workspace: string): TxPersistenceStore | undefin try { const transaction = db.transaction('model', 'readwrite') // (1) const models = transaction.objectStore('model') // (2) - const model = await new Promise<{ id: string; model: LoadModelResponse } | undefined>((resolve) => { - const storedValue: IDBRequest<{ id: string; model: LoadModelResponse }> = models.get(workspace) + const model = await new Promise<{ id: string, model: LoadModelResponse } | undefined>((resolve) => { + const storedValue: IDBRequest<{ id: string, model: LoadModelResponse }> = models.get(workspace) storedValue.onsuccess = function () { resolve(storedValue.result) } @@ -292,7 +292,7 @@ function createModelPersistence(workspace: string): TxPersistenceStore | undefin } } -function getWSFromToken(token: string): string { +function getWSFromToken (token: string): string { const parts = token.split('.') const payload = parts[1] diff --git a/foundations/core/packages/client/src/__tests__/client.test.ts b/foundations/core/packages/client/src/__tests__/client.test.ts index 9db1c05c78..6b2c77d0ae 100644 --- a/foundations/core/packages/client/src/__tests__/client.test.ts +++ b/foundations/core/packages/client/src/__tests__/client.test.ts @@ -56,12 +56,12 @@ import type { IntlString } from '@hcengineering/platform' const txFactory = new TxFactory(core.account.System) -function createClass(_class: Ref>, attributes: Data>): TxCreateDoc { +function createClass (_class: Ref>, attributes: Data>): TxCreateDoc { return txFactory.createTxCreateDoc(core.class.Class, core.space.Model, attributes, _class) } // Minimal model for testing - similar to query tests -function generateMinimalModel(): Tx[] { +function generateMinimalModel (): Tx[] { const txes: Tx[] = [] // Fill Tx'es with basic model classes @@ -135,7 +135,7 @@ class TestConnection implements ClientConnection { onConnect?: (event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise getLastHash?: () => Promise - constructor(txes: Tx[]) { + constructor (txes: Tx[]) { this.hierarchy = new Hierarchy() for (const tx of txes) { this.hierarchy.tx(tx) @@ -149,19 +149,19 @@ class TestConnection implements ClientConnection { } } - isConnected(): boolean { + isConnected (): boolean { return this._connected } - setConnected(value: boolean): void { + setConnected (value: boolean): void { this._connected = value } - pushHandler(handler: TxHandler): void { + pushHandler (handler: TxHandler): void { this.handlers.push(handler) } - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -173,11 +173,11 @@ class TestConnection implements ClientConnection { return await this.model.findAll(_class, query, options) } - async searchFulltext(query: SearchQuery, options: SearchOptions): Promise { + async searchFulltext (query: SearchQuery, options: SearchOptions): Promise { return { docs: [] } } - async tx(tx: Tx): Promise { + async tx (tx: Tx): Promise { if (tx.objectSpace === core.space.Model) { this.hierarchy.tx(tx) await this.model.tx(tx) @@ -192,7 +192,7 @@ class TestConnection implements ClientConnection { return {} } - async loadModel(last: Timestamp, hash?: string): Promise { + async loadModel (last: Timestamp, hash?: string): Promise { const txes = await this.transactions.findAll(core.class.Tx, { objectSpace: core.space.Model, modifiedOn: { $gt: last } @@ -209,11 +209,11 @@ class TestConnection implements ClientConnection { return txes } - async close(): Promise { + async close (): Promise { this._connected = false } - async loadChunk(domain: Domain, idx?: number): Promise { + async loadChunk (domain: Domain, idx?: number): Promise { return { idx: idx ?? 0, docs: [], @@ -221,23 +221,23 @@ class TestConnection implements ClientConnection { } } - async getDomainHash(domain: Domain): Promise { + async getDomainHash (domain: Domain): Promise { return 'test-hash' } - async closeChunk(idx: number): Promise {} + async closeChunk (idx: number): Promise {} - async loadDocs(domain: Domain, docs: Ref[]): Promise { + async loadDocs (domain: Domain, docs: Ref[]): Promise { return [] } - async upload(domain: Domain, docs: Doc[]): Promise {} + async upload (domain: Domain, docs: Doc[]): Promise {} - async clean(domain: Domain, docs: Ref[]): Promise {} + async clean (domain: Domain, docs: Ref[]): Promise {} - async sendForceClose(): Promise {} + async sendForceClose (): Promise {} - async domainRequest( + async domainRequest ( ctx: OperationDomain, params: DomainParams, options?: DomainRequestOptions @@ -246,7 +246,7 @@ class TestConnection implements ClientConnection { } // Simulate receiving transactions from server - simulateTransaction(tx: Tx): void { + simulateTransaction (tx: Tx): void { this.handlers.forEach((h) => { h(tx) }) diff --git a/foundations/core/packages/collaborator-client/src/client.ts b/foundations/core/packages/collaborator-client/src/client.ts index 1e64fd965c..c4b77aeae3 100644 --- a/foundations/core/packages/collaborator-client/src/client.ts +++ b/foundations/core/packages/collaborator-client/src/client.ts @@ -54,19 +54,19 @@ export interface CollaboratorClient { } /** @public */ -export function getClient(workspaceId: WorkspaceUuid, token: string, collaboratorUrl: string): CollaboratorClient { +export function getClient (workspaceId: WorkspaceUuid, token: string, collaboratorUrl: string): CollaboratorClient { const url = collaboratorUrl.replaceAll('wss://', 'https://').replace('ws://', 'http://') return new CollaboratorClientImpl(workspaceId, token, url) } class CollaboratorClientImpl implements CollaboratorClient { - constructor( + constructor ( private readonly workspace: WorkspaceUuid, private readonly token: string, private readonly collaboratorUrl: string ) {} - private async rpc(document: CollaborativeDoc, method: string, payload: P): Promise { + private async rpc (document: CollaborativeDoc, method: string, payload: P): Promise { const workspace = this.workspace const documentId = encodeDocumentId(workspace, document) @@ -94,7 +94,7 @@ class CollaboratorClientImpl implements CollaboratorClient { return result as R } - async getMarkup(document: CollaborativeDoc, source?: Ref | null): Promise { + async getMarkup (document: CollaborativeDoc, source?: Ref | null): Promise { const payload: GetContentRequest = { source: source !== null ? source : undefined } @@ -110,7 +110,7 @@ class CollaboratorClientImpl implements CollaboratorClient { return res.content[document.objectAttr] ?? '' } - async createMarkup(document: CollaborativeDoc, markup: Markup): Promise { + async createMarkup (document: CollaborativeDoc, markup: Markup): Promise { const content = { [document.objectAttr]: markup } @@ -126,7 +126,7 @@ class CollaboratorClientImpl implements CollaboratorClient { return res.content[document.objectAttr] } - async updateMarkup(document: CollaborativeDoc, markup: Markup): Promise { + async updateMarkup (document: CollaborativeDoc, markup: Markup): Promise { const content = { [document.objectAttr]: markup } @@ -140,13 +140,13 @@ class CollaboratorClientImpl implements CollaboratorClient { ) } - async copyContent(source: CollaborativeDoc, target: CollaborativeDoc, content?: Ref): Promise { + async copyContent (source: CollaborativeDoc, target: CollaborativeDoc, content?: Ref): Promise { const markup = await this.getMarkup(source, content) await this.updateMarkup(target, markup) } } -async function retry(retries: number, op: () => Promise, delay: number = 100): Promise { +async function retry (retries: number, op: () => Promise, delay: number = 100): Promise { let error: any while (retries > 0) { retries-- diff --git a/foundations/core/packages/collaborator-client/src/utils.ts b/foundations/core/packages/collaborator-client/src/utils.ts index 918ab3bcd2..f6225ba0aa 100644 --- a/foundations/core/packages/collaborator-client/src/utils.ts +++ b/foundations/core/packages/collaborator-client/src/utils.ts @@ -16,13 +16,13 @@ import { Class, CollaborativeDoc, Doc, Ref } from '@hcengineering/core' /** @public */ -export function encodeDocumentId(workspaceId: string, documentId: CollaborativeDoc): string { +export function encodeDocumentId (workspaceId: string, documentId: CollaborativeDoc): string { const { objectClass, objectId, objectAttr } = documentId return [workspaceId, objectClass, objectId, objectAttr].join('|') } /** @public */ -export function decodeDocumentId(documentId: string): { +export function decodeDocumentId (documentId: string): { workspaceId: string documentId: CollaborativeDoc } { diff --git a/foundations/core/packages/core/src/__tests__/client.test.ts b/foundations/core/packages/core/src/__tests__/client.test.ts index 615eb54f19..2a063625df 100644 --- a/foundations/core/packages/core/src/__tests__/client.test.ts +++ b/foundations/core/packages/core/src/__tests__/client.test.ts @@ -36,7 +36,7 @@ import { fillConfiguration, generateId, pluginFilterTx } from '../utils' import { connect } from './connection' import { genMinModel } from './minmodel' -function filterPlugin(plugin: Plugin): (txes: Tx[]) => Tx[] { +function filterPlugin (plugin: Plugin): (txes: Tx[]) => Tx[] { return (txes) => { const configs = new Map, PluginConfiguration>() fillConfiguration(txes, configs) @@ -95,7 +95,7 @@ describe('client', () => { ) ) - async function connectPlugin(handler: (tx: Tx) => void): Promise { + async function connectPlugin (handler: (tx: Tx) => void): Promise { const hierarchy = new Hierarchy() for (const tx of txes) hierarchy.tx(tx) @@ -107,21 +107,21 @@ describe('client', () => { await model.tx(tx) } - async function findAll(_class: Ref>, query: DocumentQuery): Promise> { + async function findAll (_class: Ref>, query: DocumentQuery): Promise> { return await transactions.findAll(_class, query) } return new (class implements ClientConnection { handler?: (event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise - set onConnect( + set onConnect ( handler: ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) | undefined ) { this.handler = handler void this.handler?.(ClientConnectEvent.Connected, '', {}) } - get onConnect(): + get onConnect (): | ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) | undefined { return this.handler @@ -131,7 +131,7 @@ describe('client', () => { findAll = findAll pushHandler = (): void => {} - domainRequest(): Promise { + domainRequest (): Promise { return Promise.resolve({ domain: 'test' as Domain, value: null }) } @@ -153,22 +153,22 @@ describe('client', () => { finished: true }) - async getDomainHash(domain: Domain): Promise { + async getDomainHash (domain: Domain): Promise { return generateId() } - async closeChunk(idx: number): Promise {} - async loadDocs(domain: Domain, docs: Ref[]): Promise { + async closeChunk (idx: number): Promise {} + async loadDocs (domain: Domain, docs: Ref[]): Promise { return [] } - async upload(domain: Domain, docs: Doc[]): Promise {} - async clean(domain: Domain, docs: Ref[]): Promise {} - async loadModel(last: Timestamp): Promise { + async upload (domain: Domain, docs: Doc[]): Promise {} + async clean (domain: Domain, docs: Ref[]): Promise {} + async loadModel (last: Timestamp): Promise { return txes } - async sendForceClose(): Promise {} + async sendForceClose (): Promise {} })() } const spyCreate = jest.spyOn(TxProcessor, 'createDoc2Doc') diff --git a/foundations/core/packages/core/src/__tests__/connection.ts b/foundations/core/packages/core/src/__tests__/connection.ts index cd9d960084..3dc05a7673 100644 --- a/foundations/core/packages/core/src/__tests__/connection.ts +++ b/foundations/core/packages/core/src/__tests__/connection.ts @@ -32,7 +32,7 @@ import type { Tx } from '../tx' import { DOMAIN_TX } from '../tx' import { genMinModel } from './minmodel' -export async function connect(handler: (tx: Tx) => void): Promise { +export async function connect (handler: (tx: Tx) => void): Promise { const txes = genMinModel() const hierarchy = new Hierarchy() @@ -45,7 +45,7 @@ export async function connect(handler: (tx: Tx) => void): Promise(_class: Ref>, query: DocumentQuery): Promise> { + async function findAll (_class: Ref>, query: DocumentQuery): Promise> { const { domain } = hierarchy.getClass(_class) if (domain === DOMAIN_TX) return await transactions.findAll(_class, query) return await model.findAll(_class, query) @@ -57,24 +57,24 @@ export async function connect(handler: (tx: Tx) => void): Promise Promise - set onConnect( + set onConnect ( handler: ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) | undefined ) { this.handler = handler void this.handler?.(ClientConnectEvent.Connected, '', {}) } - get onConnect(): ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) | undefined { + get onConnect (): ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) | undefined { return this.handler } - async searchFulltext(query: SearchQuery, options: SearchOptions): Promise { + async searchFulltext (query: SearchQuery, options: SearchOptions): Promise { return { docs: [] } } pushHandler = (): void => {} - async tx(tx: Tx): Promise { + async tx (tx: Tx): Promise { if (tx.objectSpace === core.space.Model) { hierarchy.tx(tx) } @@ -82,13 +82,13 @@ export async function connect(handler: (tx: Tx) => void): Promise { + async domainRequest (): Promise { return await Promise.resolve({ domain: 'test' as Domain, value: null }) } - async close(): Promise {} + async close (): Promise {} - async loadChunk(domain: Domain, idx?: number): Promise { + async loadChunk (domain: Domain, idx?: number): Promise { return { idx: -1, docs: [], @@ -96,22 +96,22 @@ export async function connect(handler: (tx: Tx) => void): Promise { + async getDomainHash (domain: Domain): Promise { return generateId() } - async closeChunk(idx: number): Promise {} - async loadDocs(domain: Domain, docs: Ref[]): Promise { + async closeChunk (idx: number): Promise {} + async loadDocs (domain: Domain, docs: Ref[]): Promise { return [] } - async upload(domain: Domain, docs: Doc[]): Promise {} - async clean(domain: Domain, docs: Ref[]): Promise {} - async loadModel(last: Timestamp): Promise { + async upload (domain: Domain, docs: Doc[]): Promise {} + async clean (domain: Domain, docs: Ref[]): Promise {} + async loadModel (last: Timestamp): Promise { return txes } - async sendForceClose(): Promise {} + async sendForceClose (): Promise {} } return new ClientConnectionImpl() diff --git a/foundations/core/packages/core/src/__tests__/hierarchy.test.ts b/foundations/core/packages/core/src/__tests__/hierarchy.test.ts index 21ca1a5191..18ef686d1c 100644 --- a/foundations/core/packages/core/src/__tests__/hierarchy.test.ts +++ b/foundations/core/packages/core/src/__tests__/hierarchy.test.ts @@ -24,7 +24,7 @@ import { genMinModel, test } from './minmodel' const txes = genMinModel() -function prepare(): Hierarchy { +function prepare (): Hierarchy { const hierarchy = new Hierarchy() for (const tx of txes) hierarchy.tx(tx) return hierarchy @@ -682,7 +682,7 @@ describe('hierarchy', () => { it('should handle getAllAttributes with traverse callback', async () => { const hierarchy = prepare() - const traversed: Array<{ name: string; attrId: string }> = [] + const traversed: Array<{ name: string, attrId: string }> = [] const attributes = hierarchy.getAllAttributes(core.class.TxCreateDoc, undefined, (name, attr) => { traversed.push({ name, attrId: attr._id }) }) diff --git a/foundations/core/packages/core/src/__tests__/memdb.test.ts b/foundations/core/packages/core/src/__tests__/memdb.test.ts index cbefe83940..f2396edba9 100644 --- a/foundations/core/packages/core/src/__tests__/memdb.test.ts +++ b/foundations/core/packages/core/src/__tests__/memdb.test.ts @@ -39,15 +39,15 @@ const txes = genMinModel() class ClientModel extends ModelDb implements Client { notify?: ((...tx: Tx[]) => void) | undefined - getHierarchy(): Hierarchy { + getHierarchy (): Hierarchy { return this.hierarchy } - getModel(): ModelDb { + getModel (): ModelDb { return this } - async findOne( + async findOne ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -94,7 +94,7 @@ class ClientModel extends ModelDb implements Client { return { docs: [] } } - async domainRequest( + async domainRequest ( domain: OperationDomain, params: DomainParams, options?: DomainRequestOptions @@ -102,10 +102,10 @@ class ClientModel extends ModelDb implements Client { return { domain, value: null as any } } - async close(): Promise {} + async close (): Promise {} } -async function createModel(modelTxes: Tx[] = txes): Promise<{ model: ClientModel; hierarchy: Hierarchy; txDb: TxDb }> { +async function createModel (modelTxes: Tx[] = txes): Promise<{ model: ClientModel, hierarchy: Hierarchy, txDb: TxDb }> { const hierarchy = new Hierarchy() for (const tx of modelTxes) { hierarchy.tx(tx) diff --git a/foundations/core/packages/core/src/__tests__/minmodel.ts b/foundations/core/packages/core/src/__tests__/minmodel.ts index aca9f16b99..de03e2a8ac 100644 --- a/foundations/core/packages/core/src/__tests__/minmodel.ts +++ b/foundations/core/packages/core/src/__tests__/minmodel.ts @@ -23,19 +23,19 @@ import { DOMAIN_TX, TxFactory } from '../tx' const txFactory = new TxFactory(core.account.System) -function createClass(_class: Ref>, attributes: Data>): TxCreateDoc { +function createClass (_class: Ref>, attributes: Data>): TxCreateDoc { return txFactory.createTxCreateDoc(core.class.Class, core.space.Model, attributes, _class) } -function createInterface(_interface: Ref>, attributes: Data>): TxCreateDoc { +function createInterface (_interface: Ref>, attributes: Data>): TxCreateDoc { return txFactory.createTxCreateDoc(core.class.Interface, core.space.Model, attributes, _interface) } -export function createDoc(_class: Ref>, attributes: Data): TxCreateDoc { +export function createDoc (_class: Ref>, attributes: Data): TxCreateDoc { return txFactory.createTxCreateDoc(_class, core.space.Model, attributes) } -export function updateDoc( +export function updateDoc ( _class: Ref>, space: Ref, objectId: Ref, @@ -44,7 +44,7 @@ export function updateDoc( return txFactory.createTxUpdateDoc(_class, space, objectId, operations) } -export function deleteDoc(_class: Ref>, space: Ref, objectId: Ref): TxRemoveDoc { +export function deleteDoc (_class: Ref>, space: Ref, objectId: Ref): TxRemoveDoc { return txFactory.createTxRemoveDoc(_class, space, objectId) } @@ -98,7 +98,7 @@ export const test = plugin('test' as Plugin, { * Generate minimal model for testing purposes. * @returns R */ -export function genMinModel(): TxCUD[] { +export function genMinModel (): TxCUD[] { const txes = [] // Fill Tx'es with basic model classes. txes.push(createClass(core.class.Obj, { label: 'Obj' as IntlString, kind: ClassifierKind.CLASS })) diff --git a/foundations/core/packages/core/src/__tests__/query.test.ts b/foundations/core/packages/core/src/__tests__/query.test.ts index b40e673ecd..781017c149 100644 --- a/foundations/core/packages/core/src/__tests__/query.test.ts +++ b/foundations/core/packages/core/src/__tests__/query.test.ts @@ -16,7 +16,7 @@ import { findProperty } from '../query' import type { Doc, Ref, Class } from '../classes' -function doc(id: string, fields: Record = {}): Doc { +function doc (id: string, fields: Record = {}): Doc { const doc: Doc = { _id: id as Ref, _class: 'test:class:Issue' as Ref>, ...fields } as any return doc } diff --git a/foundations/core/packages/core/src/__tests__/time.test.ts b/foundations/core/packages/core/src/__tests__/time.test.ts index 35f3bc787c..7c663c99ca 100644 --- a/foundations/core/packages/core/src/__tests__/time.test.ts +++ b/foundations/core/packages/core/src/__tests__/time.test.ts @@ -348,7 +348,7 @@ const supportedTimezones: string[] = [ 'Africa/Johannesburg' ] -function testGetDay(date: Date, timezone: string): void { +function testGetDay (date: Date, timezone: string): void { const timestamp: Timestamp = getDay(date.getTime()) const convertedDate: Date = new Date(timestamp) const originalLocaleDate: string = date.toLocaleDateString('en-US', { timeZone: 'Europe/London' }) @@ -356,7 +356,7 @@ function testGetDay(date: Date, timezone: string): void { expect(convertedLocaleDate).toEqual(originalLocaleDate) } -function testConvertToDay(date: Date, timezone: string): void { +function testConvertToDay (date: Date, timezone: string): void { const convertedDate: Date = convertToDay(date) const originalLocaleDate: string = date.toLocaleDateString('en-US', { timeZone: 'Europe/London' }) const convertedLocaleDate: string = convertedDate.toLocaleDateString('en-US', { timeZone: timezone }) diff --git a/foundations/core/packages/core/src/autoJoinRoles.ts b/foundations/core/packages/core/src/autoJoinRoles.ts index bae22a8807..737f9dbb03 100644 --- a/foundations/core/packages/core/src/autoJoinRoles.ts +++ b/foundations/core/packages/core/src/autoJoinRoles.ts @@ -19,7 +19,7 @@ import { AccountRole } from './classes' * Toggle {@link AccountRole.Guest} in {@link Space.autoJoinForRoles}; other roles are preserved. * @public */ -export function setWorkspaceGuestAutoJoinRoles( +export function setWorkspaceGuestAutoJoinRoles ( existing: AccountRole[] | undefined, includeGuest: boolean ): AccountRole[] { diff --git a/foundations/core/packages/core/src/classes.ts b/foundations/core/packages/core/src/classes.ts index c54e742dcd..415676f8ae 100644 --- a/foundations/core/packages/core/src/classes.ts +++ b/foundations/core/packages/core/src/classes.ts @@ -680,7 +680,7 @@ export interface MigrationState extends Doc { /** * @public */ -export function versionToString(version: Version | Data): string { +export function versionToString (version: Version | Data): string { return `${version?.major}.${version?.minor}.${version?.patch}` } @@ -879,13 +879,13 @@ export type WorkspaceMode = export type WorkspaceUserOperation = 'archive' | 'migrate-to' | 'unarchive' | 'delete' | 'reset-attempts' -export function isActiveMode(mode?: WorkspaceMode): boolean { +export function isActiveMode (mode?: WorkspaceMode): boolean { return mode === 'active' } -export function isDeletingMode(mode: WorkspaceMode): boolean { +export function isDeletingMode (mode: WorkspaceMode): boolean { return mode === 'pending-deletion' || mode === 'deleting' || mode === 'deleted' } -export function isArchivingMode(mode?: WorkspaceMode): boolean { +export function isArchivingMode (mode?: WorkspaceMode): boolean { return ( mode === 'archiving-pending-backup' || mode === 'archiving-backup' || @@ -895,7 +895,7 @@ export function isArchivingMode(mode?: WorkspaceMode): boolean { ) } -export function isMigrationMode(mode?: WorkspaceMode): boolean { +export function isMigrationMode (mode?: WorkspaceMode): boolean { return ( mode === 'migration-pending-backup' || mode === 'migration-backup' || @@ -903,11 +903,11 @@ export function isMigrationMode(mode?: WorkspaceMode): boolean { mode === 'migration-clean' ) } -export function isRestoringMode(mode?: WorkspaceMode): boolean { +export function isRestoringMode (mode?: WorkspaceMode): boolean { return mode === 'restoring' || mode === 'pending-restore' } -export function isUpgradingMode(mode?: WorkspaceMode): boolean { +export function isUpgradingMode (mode?: WorkspaceMode): boolean { return mode === 'upgrading' } diff --git a/foundations/core/packages/core/src/client.ts b/foundations/core/packages/core/src/client.ts index a7ea63aa64..d8bdb8c5f5 100644 --- a/foundations/core/packages/core/src/client.ts +++ b/foundations/core/packages/core/src/client.ts @@ -138,26 +138,26 @@ class ClientImpl implements Client, BackupClient { hierarchy!: Hierarchy model!: ModelDb private readonly appliedModelTransactions = new Set>() - constructor(private readonly conn: ClientConnection) {} + constructor (private readonly conn: ClientConnection) {} - getConnection(): ClientConnection { + getConnection (): ClientConnection { return this.conn } - setModel(hierarchy: Hierarchy, model: ModelDb): void { + setModel (hierarchy: Hierarchy, model: ModelDb): void { this.hierarchy = hierarchy this.model = model } - getHierarchy(): Hierarchy { + getHierarchy (): Hierarchy { return this.hierarchy } - getModel(): ModelDb { + getModel (): ModelDb { return this.model } - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -254,7 +254,7 @@ class ClientImpl implements Client, BackupClient { return await this.conn.searchFulltext(query, options) } - async domainRequest( + async domainRequest ( ctx: OperationDomain, params: DomainParams, options?: DomainRequestOptions @@ -262,7 +262,7 @@ class ClientImpl implements Client, BackupClient { return await this.conn.domainRequest(ctx, params, options) } - async findOne( + async findOne ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -270,7 +270,7 @@ class ClientImpl implements Client, BackupClient { return (await this.findAll(_class, query, { ...options, limit: 1 }))[0] } - async tx(tx: Tx): Promise { + async tx (tx: Tx): Promise { if (tx.objectSpace === core.space.Model) { this.hierarchy.tx(tx) await this.model.tx(tx) @@ -280,7 +280,7 @@ class ClientImpl implements Client, BackupClient { return await this.conn.tx(tx) } - async updateFromRemote(...tx: Tx[]): Promise { + async updateFromRemote (...tx: Tx[]): Promise { for (const t of tx) { try { if (t.objectSpace === core.space.Model) { @@ -300,35 +300,35 @@ class ClientImpl implements Client, BackupClient { this.notify?.(...tx) } - async close(): Promise { + async close (): Promise { await this.conn.close() } - async loadChunk(domain: Domain, idx?: number): Promise { + async loadChunk (domain: Domain, idx?: number): Promise { return await this.conn.loadChunk(domain, idx) } - async getDomainHash(domain: Domain): Promise { + async getDomainHash (domain: Domain): Promise { return await this.conn.getDomainHash(domain) } - async closeChunk(idx: number): Promise { + async closeChunk (idx: number): Promise { await this.conn.closeChunk(idx) } - async loadDocs(domain: Domain, docs: Ref[]): Promise { + async loadDocs (domain: Domain, docs: Ref[]): Promise { return await this.conn.loadDocs(domain, docs) } - async upload(domain: Domain, docs: Doc[]): Promise { + async upload (domain: Domain, docs: Doc[]): Promise { await this.conn.upload(domain, docs) } - async clean(domain: Domain, docs: Ref[]): Promise { + async clean (domain: Domain, docs: Ref[]): Promise { await this.conn.clean(domain, docs) } - async sendForceClose(): Promise { + async sendForceClose (): Promise { await this.conn.sendForceClose() } } @@ -346,7 +346,7 @@ export type ModelFilter = (tx: Tx[]) => Tx[] /** * @public */ -export async function createClient( +export async function createClient ( connect: (txHandler: TxHandler) => Promise, // If set will build model with only allowed plugins. modelFilter?: ModelFilter, @@ -364,7 +364,7 @@ export async function createClient( let lastTx: string | undefined - function txHandler(...tx: Tx[]): void { + function txHandler (...tx: Tx[]): void { if (tx == null || tx.length === 0) { return } @@ -462,11 +462,11 @@ export async function createClient( return client } -async function loadModel( +async function loadModel ( ctx: MeasureContext, conn: ClientConnection, persistence?: TxPersistenceStore -): Promise<{ mode: 'same' | 'addition' | 'upgrade'; current: Tx[]; addition: Tx[] }> { +): Promise<{ mode: 'same' | 'addition' | 'upgrade', current: Tx[], addition: Tx[] }> { const t = platformNow() const current = (await ctx.with('persistence-load', {}, () => persistence?.load())) ?? { @@ -515,7 +515,7 @@ async function loadModel( return { mode: 'addition', current: current.transactions, addition: result.transactions } } -export function buildModel( +export function buildModel ( ctx: MeasureContext, transactions: Tx[], modelFilter: ModelFilter | undefined, @@ -545,7 +545,7 @@ export function buildModel( }) } -function getLastTxTime(txes: Tx[]): number { +function getLastTxTime (txes: Tx[]): number { let lastTxTime = 0 for (const tx of txes) { if (tx.modifiedOn > lastTxTime) { diff --git a/foundations/core/packages/core/src/clone.ts b/foundations/core/packages/core/src/clone.ts index 840f930f43..d576a7eba0 100644 --- a/foundations/core/packages/core/src/clone.ts +++ b/foundations/core/packages/core/src/clone.ts @@ -1,7 +1,7 @@ const se = typeof Symbol !== 'undefined' const ste = se && typeof Symbol.toStringTag !== 'undefined' -export function getTypeOf(obj: any): string { +export function getTypeOf (obj: any): string { const typeofObj = typeof obj if (typeofObj !== 'object') { return typeofObj @@ -45,7 +45,7 @@ export function getTypeOf(obj: any): string { } } -export function clone( +export function clone ( obj: any, as?: (doc: any, m: any) => any, needAs?: (value: any) => any | undefined, diff --git a/foundations/core/packages/core/src/collaboration.ts b/foundations/core/packages/core/src/collaboration.ts index f84aa531c1..ecf14a96b9 100644 --- a/foundations/core/packages/core/src/collaboration.ts +++ b/foundations/core/packages/core/src/collaboration.ts @@ -23,7 +23,7 @@ export interface CollaborativeDoc { } /** @public */ -export function makeCollabId( +export function makeCollabId ( objectClass: Ref>, objectId: Ref, objectAttr: Extract | string @@ -32,7 +32,7 @@ export function makeCollabId( } /** @public */ -export function makeDocCollabId( +export function makeDocCollabId ( doc: T, objectAttr: Extract | string ): CollaborativeDoc { @@ -40,13 +40,13 @@ export function makeDocCollabId( } /** @public */ -export function makeCollabYdocId(doc: CollaborativeDoc): Ref { +export function makeCollabYdocId (doc: CollaborativeDoc): Ref { const { objectId, objectAttr } = doc return `${objectId}%${objectAttr}` as Ref } /** @public */ -export function makeCollabJsonId(doc: CollaborativeDoc): MarkupBlobRef { +export function makeCollabJsonId (doc: CollaborativeDoc): MarkupBlobRef { const timestamp = Date.now() const { objectId, objectAttr } = doc return [objectId, objectAttr, timestamp].join('-') as MarkupBlobRef diff --git a/foundations/core/packages/core/src/collaborators.ts b/foundations/core/packages/core/src/collaborators.ts index 0fd12d0b1f..1574a2c140 100644 --- a/foundations/core/packages/core/src/collaborators.ts +++ b/foundations/core/packages/core/src/collaborators.ts @@ -15,7 +15,7 @@ import core, { Class, ClassCollaborators, Doc, Hierarchy, ModelDb, Ref } from '.' -export function getClassCollaborators( +export function getClassCollaborators ( model: ModelDb, hiearachy: Hierarchy, _id: Ref> diff --git a/foundations/core/packages/core/src/common.ts b/foundations/core/packages/core/src/common.ts index 63f2c3377e..fc4ee3158f 100644 --- a/foundations/core/packages/core/src/common.ts +++ b/foundations/core/packages/core/src/common.ts @@ -1,4 +1,4 @@ -export function groupByArray(array: T[], keyProvider: (item: T) => K): Map { +export function groupByArray (array: T[], keyProvider: (item: T) => K): Map { const result = new Map() array.forEach((item) => { @@ -14,7 +14,7 @@ export function groupByArray(array: T[], keyProvider: (item: T) => K): Map return result } -export async function groupByArrayAsync(array: T[], keyProvider: (item: T) => Promise): Promise> { +export async function groupByArrayAsync (array: T[], keyProvider: (item: T) => Promise): Promise> { const result = new Map() for (const item of array) { @@ -30,7 +30,7 @@ export async function groupByArrayAsync(array: T[], keyProvider: (item: T) return result } -export function flipSet(set: Set, item: T): Set { +export function flipSet (set: Set, item: T): Set { if (set.has(item)) { set.delete(item) } else { diff --git a/foundations/core/packages/core/src/component.ts b/foundations/core/packages/core/src/component.ts index bc3be584c2..ce5f6fc8ec 100644 --- a/foundations/core/packages/core/src/component.ts +++ b/foundations/core/packages/core/src/component.ts @@ -227,7 +227,7 @@ export default plugin(coreId, { }, status: { ObjectNotFound: '' as StatusCode<{ _id: Ref }>, - ItemNotFound: '' as StatusCode<{ _id: Ref; _localId: string }> + ItemNotFound: '' as StatusCode<{ _id: Ref, _localId: string }> }, version: { Model: '' as Ref diff --git a/foundations/core/packages/core/src/hierarchy.ts b/foundations/core/packages/core/src/hierarchy.ts index c5a53d8102..409a549c07 100644 --- a/foundations/core/packages/core/src/hierarchy.ts +++ b/foundations/core/packages/core/src/hierarchy.ts @@ -35,14 +35,14 @@ export class Hierarchy { private readonly classifierProperties = new Map, Map>() - private createMixinProxyHandler(mixin: Ref>): ProxyHandler { + private createMixinProxyHandler (mixin: Ref>): ProxyHandler { const value = this.getClass(mixin) const ancestor = this.getClass(value.extends!) const ancestorProxy = ancestor.kind === ClassifierKind.MIXIN ? this.getMixinProxyHandler(ancestor._id) : null return _createMixinProxy(value, ancestorProxy) } - private getMixinProxyHandler(mixin: Ref>): ProxyHandler { + private getMixinProxyHandler (mixin: Ref>): ProxyHandler { const handler = this.proxies.get(mixin) if (handler === undefined) { const handler = this.createMixinProxyHandler(mixin) @@ -52,46 +52,46 @@ export class Hierarchy { return handler } - as(doc: D, mixin: Ref>): M { + as (doc: D, mixin: Ref>): M { if ((doc as any)[PROXY_MIXIN_CLASS_KEY] === mixin) return doc as M return new Proxy(Hierarchy.toDoc(doc), this.getMixinProxyHandler(mixin)) as M } - asIf(doc: D | undefined, mixin: Ref>): M | undefined { + asIf (doc: D | undefined, mixin: Ref>): M | undefined { if (doc === undefined) { return undefined } return this.hasMixin(doc, mixin) ? this.as(doc, mixin) : undefined } - asIfArray(docs: D[], mixin: Ref>): M[] { + asIfArray (docs: D[], mixin: Ref>): M[] { return docs.map((it) => this.asIf(it, mixin)).filter((it) => it !== undefined) } - static toDoc(doc: D): D { + static toDoc (doc: D): D { return _toDoc(doc) } - static mixinClass(doc: D): Ref> | undefined { + static mixinClass (doc: D): Ref> | undefined { return _mixinClass(doc) } - static mixinOrClass(doc: D): Ref | Class> { + static mixinOrClass (doc: D): Ref | Class> { const m = _mixinClass(doc) return m ?? doc._class } - static hasMixin(doc: D, mixin: Ref>): boolean { + static hasMixin (doc: D, mixin: Ref>): boolean { const d = Hierarchy.toDoc(doc) return typeof (d as any)[mixin] === 'object' } - hasMixin(doc: D, mixin: Ref>): boolean { + hasMixin (doc: D, mixin: Ref>): boolean { return Hierarchy.hasMixin(doc, mixin) } - classHierarchyMixin( + classHierarchyMixin ( _class: Ref>, mixin: Ref>, filter?: (value: M) => boolean @@ -109,7 +109,7 @@ export class Hierarchy { } } - findClassOrMixinMixin(doc: Doc, mixin: Ref>): M | undefined { + findClassOrMixinMixin (doc: Doc, mixin: Ref>): M | undefined { const cc = this.classHierarchyMixin(doc._class, mixin) if (cc !== undefined) { return cc @@ -127,7 +127,7 @@ export class Hierarchy { } } - findMixinMixins(doc: Doc, mixin: Ref>): M[] { + findMixinMixins (doc: Doc, mixin: Ref>): M[] { const _doc = _toDoc(doc) const result: M[] = [] const resultSet = new Set() @@ -147,7 +147,7 @@ export class Hierarchy { return result } - findAllMixins(doc: Doc): Ref>[] { + findAllMixins (doc: Doc): Ref>[] { const _doc = _toDoc(doc) const resultSet = new Set>>() for (const [k, v] of Object.entries(_doc)) { @@ -162,7 +162,7 @@ export class Hierarchy { return Array.from(resultSet) } - getAllPossibleMixins(_class: Ref>, to: Ref> = core.class.Doc): Ref>[] { + getAllPossibleMixins (_class: Ref>, to: Ref> = core.class.Doc): Ref>[] { const result = new Set>>() let c = this.getClass(_class) @@ -179,12 +179,12 @@ export class Hierarchy { return [...result] } - isMixin(_class: Ref>): boolean { + isMixin (_class: Ref>): boolean { const data = this.classifiers.get(_class) return data !== undefined && this._isMixin(data) } - getAncestors(_class: Ref): Ref[] { + getAncestors (_class: Ref): Ref[] { const result = this.ancestors.get(_class) if (result === undefined) { throw new Error(`ancestors not found: ${_class}`) @@ -192,7 +192,7 @@ export class Hierarchy { return result } - getClass(_class: Ref>): Class { + getClass (_class: Ref>): Class { const data = this.classifiers.get(_class) if (data === undefined || this.isInterface(data)) { throw new Error(`class not found: ${_class}`) @@ -200,7 +200,7 @@ export class Hierarchy { return data } - findClass(_class: Ref>): Class | undefined { + findClass (_class: Ref>): Class | undefined { const data = this.classifiers.get(_class) if (data === undefined || this.isInterface(data)) { return undefined @@ -208,13 +208,13 @@ export class Hierarchy { return data } - hasClass(_class: Ref>): boolean { + hasClass (_class: Ref>): boolean { const data = this.classifiers.get(_class) return !(data === undefined || this.isInterface(data)) } - getClassOrInterface(_class: Ref>): Class { + getClassOrInterface (_class: Ref>): Class { const data = this.classifiers.get(_class) if (data === undefined) { throw new Error(`class not found: ${_class}`) @@ -222,7 +222,7 @@ export class Hierarchy { return data } - getInterface(_interface: Ref>): Interface { + getInterface (_interface: Ref>): Interface { const data = this.classifiers.get(_interface) if (data === undefined || !this.isInterface(data)) { throw new Error(`interface not found: ${_interface}`) @@ -230,7 +230,7 @@ export class Hierarchy { return data } - getDomain(_class: Ref>): Domain { + getDomain (_class: Ref>): Domain { const domain = this.findDomain(_class) if (domain === undefined) { throw new Error(`domain not found: ${_class} `) @@ -238,7 +238,7 @@ export class Hierarchy { return domain } - public findDomain(_class: Ref>): Domain | undefined { + public findDomain (_class: Ref>): Domain | undefined { const klazz = this.findClass(_class) if (klazz === undefined) return if (klazz.domain !== undefined) { @@ -257,7 +257,7 @@ export class Hierarchy { } } - tx(tx: Tx): void { + tx (tx: Tx): void { switch (tx._class) { case core.class.TxCreateDoc: this.txCreateDoc(tx as TxCreateDoc) @@ -273,12 +273,12 @@ export class Hierarchy { } } - private isClassifierTx(tx: TxCUD): boolean { + private isClassifierTx (tx: TxCUD): boolean { const base = [core.class.Class, core.class.Mixin, core.class.Interface] return base.includes(tx.objectClass) || this.isDerived(tx.objectClass, core.class.Class) } - private txCreateDoc(tx: TxCreateDoc): void { + private txCreateDoc (tx: TxCreateDoc): void { if (this.isClassifierTx(tx)) { const _id = tx.objectId as Ref this.classifiers.set(_id, TxProcessor.createDoc2Doc(tx as TxCreateDoc)) @@ -290,7 +290,7 @@ export class Hierarchy { } } - private txUpdateDoc(tx: TxUpdateDoc): void { + private txUpdateDoc (tx: TxUpdateDoc): void { if (tx.objectClass === core.class.Attribute) { const updateTx = tx as TxUpdateDoc const doc = this.attributesById.get(updateTx.objectId) @@ -307,7 +307,7 @@ export class Hierarchy { } } - private txRemoveDoc(tx: TxRemoveDoc): void { + private txRemoveDoc (tx: TxRemoveDoc): void { if (tx.objectClass === core.class.Attribute) { const removeTx = tx as TxRemoveDoc const doc = this.attributesById.get(removeTx.objectId) @@ -323,7 +323,7 @@ export class Hierarchy { } } - private txMixin(tx: TxMixin): void { + private txMixin (tx: TxMixin): void { if (this.isClassifierTx(tx)) { const obj = this.getClass(tx.objectId as Ref>) as any TxProcessor.updateMixin4Doc(obj, tx) @@ -334,14 +334,14 @@ export class Hierarchy { * Check if passed _class is derived from `from` class. * It will iterate over parents. */ - isDerived(_class: Ref>, from: Ref>): boolean { + isDerived (_class: Ref>, from: Ref>): boolean { return this.ancestors.get(_class)?.includes(from) ?? false } /** * Return first non interface/mixin parent */ - getBaseClass(_class: Ref>): Ref> { + getBaseClass (_class: Ref>): Ref> { let cl: Ref> | undefined = _class while (cl !== undefined) { const clz: Class = this.getClass(cl) @@ -355,7 +355,7 @@ export class Hierarchy { * Check if passed _class implements passed interfaces `from`. * It will check for class parents and their interfaces. */ - isImplements(_class: Ref>, from: Ref>): boolean { + isImplements (_class: Ref>, from: Ref>): boolean { let cl: Ref> | undefined = _class while (cl !== undefined) { const klazz: Class = this.getClass(cl) @@ -370,7 +370,7 @@ export class Hierarchy { /** * Check if interface extends passed interface. */ - private isExtends(extendsOrImplements: Ref>[], from: Ref>): boolean { + private isExtends (extendsOrImplements: Ref>[], from: Ref>): boolean { const result: Ref>[] = [] const toVisit = [...extendsOrImplements] while (toVisit.length > 0) { @@ -384,7 +384,7 @@ export class Hierarchy { return false } - getDescendants(_class: Ref>): Ref>[] { + getDescendants (_class: Ref>): Ref>[] { const data = this.descendants.get(_class) if (data === undefined) { throw new Error(`descendants not found: ${_class}`) @@ -392,7 +392,7 @@ export class Hierarchy { return data } - private updateDescendant(_class: Ref, add = true): void { + private updateDescendant (_class: Ref, add = true): void { let hierarchy: Ref[] = [] try { @@ -420,7 +420,7 @@ export class Hierarchy { } } - private updateAncestors(_class: Ref, add = true): void { + private updateAncestors (_class: Ref, add = true): void { const cl: Ref[] = [_class] const visited = new Set>() const ancestorList: Ref[] = [] @@ -443,7 +443,7 @@ export class Hierarchy { /** * Return extends and implemnets as combined list of references */ - private ancestorsOf(classifier: Ref): Ref[] { + private ancestorsOf (classifier: Ref): Ref[] { const attrs = this.classifiers.get(classifier) const result: Ref[] = [] if (this.isClass(attrs) || this._isMixin(attrs)) { @@ -459,19 +459,19 @@ export class Hierarchy { return result } - private isClass(attrs?: Classifier): boolean { + private isClass (attrs?: Classifier): boolean { return attrs?.kind === ClassifierKind.CLASS } - private _isMixin(attrs?: Classifier): boolean { + private _isMixin (attrs?: Classifier): boolean { return attrs?.kind === ClassifierKind.MIXIN } - private isInterface(attrs?: Classifier): boolean { + private isInterface (attrs?: Classifier): boolean { return attrs?.kind === ClassifierKind.INTERFACE } - private addAttribute(attribute: AnyAttribute): void { + private addAttribute (attribute: AnyAttribute): void { const _class = attribute.attributeOf let attributes = this.attributes.get(_class) if (attributes === undefined) { @@ -483,7 +483,7 @@ export class Hierarchy { this.classifierProperties.delete(attribute.attributeOf) } - getAllAttributes( + getAllAttributes ( clazz: Ref, to?: Ref, traverse?: (name: string, attr: AnyAttribute) => void @@ -517,7 +517,7 @@ export class Hierarchy { return result } - getOwnAttributes(clazz: Ref): Map { + getOwnAttributes (clazz: Ref): Map { const result = new Map() const attributes = this.attributes.get(clazz) @@ -530,7 +530,7 @@ export class Hierarchy { return result } - getParentClass(_class: Ref>): Ref> { + getParentClass (_class: Ref>): Ref> { const baseDomain = this.getDomain(_class) const ancestors = this.getAncestors(_class) let result: Ref> = _class @@ -545,7 +545,7 @@ export class Hierarchy { return result } - getAttribute(classifier: Ref, name: string): AnyAttribute { + getAttribute (classifier: Ref, name: string): AnyAttribute { const attr = this.findAttribute(classifier, name) if (attr === undefined) { throw new Error(`attribute not found: ${name}`) @@ -553,7 +553,7 @@ export class Hierarchy { return attr } - public findAttribute(classifier: Ref, name: string): AnyAttribute | undefined { + public findAttribute (classifier: Ref, name: string): AnyAttribute | undefined { const list = [classifier] const visited = new Set>() while (list.length > 0) { @@ -569,7 +569,7 @@ export class Hierarchy { } } - updateLookupMixin( + updateLookupMixin ( _class: Ref>, result: WithLookup, options?: FindOptions @@ -611,7 +611,7 @@ export class Hierarchy { return vResult } - clone(obj: any): any { + clone (obj: any): any { return deepClone( obj, (doc, m) => this.as(doc, m), @@ -619,7 +619,7 @@ export class Hierarchy { ) } - domains(): Domain[] { + domains (): Domain[] { const classes = Array.from(this.classifiers.values()).filter( (it) => this.isClass(it) || this._isMixin(it) ) as Class[] @@ -629,11 +629,11 @@ export class Hierarchy { .filter((it, idx, array) => array.findIndex((pt) => pt === it) === idx) } - getClassifierProp(cl: Ref>, prop: string): any | undefined { + getClassifierProp (cl: Ref>, prop: string): any | undefined { return this.classifierProperties.get(cl)?.get(prop) } - setClassifierProp(cl: Ref>, prop: string, value: any): void { + setClassifierProp (cl: Ref>, prop: string, value: any): void { let cur = this.classifierProperties.get(cl) if (cur === undefined) { cur = new Map() @@ -643,7 +643,7 @@ export class Hierarchy { } } -function addNew(val: Set, value: T): boolean { +function addNew (val: Set, value: T): boolean { if (val.has(value)) { return false } @@ -651,13 +651,13 @@ function addNew(val: Set, value: T): boolean { return true } -function addIf(array: T[], value: T): void { +function addIf (array: T[], value: T): void { if (!array.includes(value)) { array.push(value) } } -function getClass(vvv: ToClassRefT): Ref> { +function getClass (vvv: ToClassRefT): Ref> { if (Array.isArray(vvv)) { return vvv[0] } diff --git a/foundations/core/packages/core/src/memdb.ts b/foundations/core/packages/core/src/memdb.ts index ecf146510c..5d8840dde2 100644 --- a/foundations/core/packages/core/src/memdb.ts +++ b/foundations/core/packages/core/src/memdb.ts @@ -41,11 +41,11 @@ export abstract class MemDb extends TxProcessor implements Storage { private readonly objectsByClass = new Map>, Map, Doc>>() private readonly objectById = new Map, Doc>() - constructor(protected readonly hierarchy: Hierarchy) { + constructor (protected readonly hierarchy: Hierarchy) { super() } - private getObjectsByClass(_class: Ref>): Map, Doc> { + private getObjectsByClass (_class: Ref>): Map, Doc> { const result = this.objectsByClass.get(_class) if (result === undefined) { const result = new Map, Doc>() @@ -55,14 +55,14 @@ export abstract class MemDb extends TxProcessor implements Storage { return result } - private cleanObjectByClass(_class: Ref>, _id: Ref): void { + private cleanObjectByClass (_class: Ref>, _id: Ref): void { const result = this.objectsByClass.get(_class) if (result !== undefined) { result.delete(_id) } } - private getByIdQuery(query: DocumentQuery, _class: Ref>): T[] { + private getByIdQuery (query: DocumentQuery, _class: Ref>): T[] { const result: T[] = [] if (typeof query._id === 'string') { const obj = this.objectById.get(query._id) as T @@ -77,7 +77,7 @@ export abstract class MemDb extends TxProcessor implements Storage { return result } - getObject(_id: Ref): T { + getObject (_id: Ref): T { const doc = this.objectById.get(_id) if (doc === undefined) { throw new PlatformError(new Status(Severity.ERROR, core.status.ObjectNotFound, { _id })) @@ -85,12 +85,12 @@ export abstract class MemDb extends TxProcessor implements Storage { return doc as T } - findObject(_id: Ref): T | undefined { + findObject (_id: Ref): T | undefined { const doc = this.objectById.get(_id) return doc as T } - private async getLookupValue( + private async getLookupValue ( _class: Ref>, doc: T, lookup: Lookup, @@ -120,7 +120,7 @@ export abstract class MemDb extends TxProcessor implements Storage { } } - private async getReverseLookupValue( + private async getReverseLookupValue ( doc: T, lookup: ReverseLookups, result: LookupData @@ -137,7 +137,7 @@ export abstract class MemDb extends TxProcessor implements Storage { } } - private async lookup(_class: Ref>, docs: T[], lookup: Lookup): Promise[]> { + private async lookup (_class: Ref>, docs: T[], lookup: Lookup): Promise[]> { const withLookup: WithLookup[] = [] for (const doc of docs) { const result: LookupData = {} @@ -147,7 +147,7 @@ export abstract class MemDb extends TxProcessor implements Storage { return withLookup } - private async fillAssociations(docs: T[], associations: AssociationQuery[]): Promise[]> { + private async fillAssociations (docs: T[], associations: AssociationQuery[]): Promise[]> { const withLookup: WithLookup[] = [] for (const doc of docs) { const result = await this.getAssociationValue(doc, associations) @@ -156,7 +156,7 @@ export abstract class MemDb extends TxProcessor implements Storage { return withLookup } - private async getAssociationValue( + private async getAssociationValue ( doc: T, associations: AssociationQuery[] ): Promise[]>> { @@ -179,7 +179,7 @@ export abstract class MemDb extends TxProcessor implements Storage { return result } - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -219,7 +219,7 @@ export abstract class MemDb extends TxProcessor implements Storage { return toFindResult(res, total) } - async findOne( + async findOne ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -231,7 +231,7 @@ export abstract class MemDb extends TxProcessor implements Storage { * Only in model find without lookups and sorting. * Do not clone results, so be aware modifications are not allowed. */ - findAllSync(_class: Ref>, query: DocumentQuery, options?: FindOptions): FindResult { + findAllSync (_class: Ref>, query: DocumentQuery, options?: FindOptions): FindResult { let result: WithLookup[] const baseClass = this.hierarchy.getBaseClass(_class) if ( @@ -259,7 +259,7 @@ export abstract class MemDb extends TxProcessor implements Storage { ) } - addDoc(doc: Doc): void { + addDoc (doc: Doc): void { this.hierarchy.getAncestors(doc._class).forEach((_class) => { const arr = this.getObjectsByClass(_class) arr.set(doc._id, doc) @@ -268,7 +268,7 @@ export abstract class MemDb extends TxProcessor implements Storage { this.objectById.set(doc._id, doc) } - delDoc(_id: Ref): void { + delDoc (_id: Ref): void { const doc = this.objectById.get(_id) if (doc === undefined) { throw new PlatformError(new Status(Severity.ERROR, core.status.ObjectNotFound, { _id })) @@ -279,7 +279,7 @@ export abstract class MemDb extends TxProcessor implements Storage { }) } - updateDoc(_id: Ref, doc: Doc, update: TxUpdateDoc | TxMixin): void { + updateDoc (_id: Ref, doc: Doc, update: TxUpdateDoc | TxMixin): void { // TODO: track updates on Contact to adjust memdb accounts? } } @@ -290,23 +290,23 @@ export abstract class MemDb extends TxProcessor implements Storage { * @public */ export class TxDb extends MemDb { - protected txCreateDoc(tx: TxCreateDoc): Promise { + protected txCreateDoc (tx: TxCreateDoc): Promise { throw new Error('Method not implemented.') } - protected txUpdateDoc(tx: TxUpdateDoc): Promise { + protected txUpdateDoc (tx: TxUpdateDoc): Promise { throw new Error('Method not implemented.') } - protected txRemoveDoc(tx: TxRemoveDoc): Promise { + protected txRemoveDoc (tx: TxRemoveDoc): Promise { throw new Error('Method not implemented.') } - protected txMixin(tx: TxMixin): Promise { + protected txMixin (tx: TxMixin): Promise { throw new Error('Method not implemented.') } - async tx(tx: Tx): Promise { + async tx (tx: Tx): Promise { this.addDoc(tx) return [] } @@ -318,7 +318,7 @@ export class TxDb extends MemDb { * @public */ export class ModelDb extends MemDb { - protected override async txCreateDoc(tx: TxCreateDoc): Promise { + protected override async txCreateDoc (tx: TxCreateDoc): Promise { this.addDoc(TxProcessor.createDoc2Doc(tx)) return {} } @@ -392,7 +392,7 @@ export class ModelDb extends MemDb { } } - protected async txUpdateDoc(tx: TxUpdateDoc): Promise { + protected async txUpdateDoc (tx: TxUpdateDoc): Promise { try { const doc = this.getObject(tx.objectId) as any this.updateDoc(tx.objectId, doc, tx) @@ -402,7 +402,7 @@ export class ModelDb extends MemDb { return {} } - protected async txRemoveDoc(tx: TxRemoveDoc): Promise { + protected async txRemoveDoc (tx: TxRemoveDoc): Promise { try { this.delDoc(tx.objectId) } catch (err: any) {} @@ -410,7 +410,7 @@ export class ModelDb extends MemDb { } // TODO: process ancessor mixins - protected async txMixin(tx: TxMixin): Promise { + protected async txMixin (tx: TxMixin): Promise { const doc = this.getObject(tx.objectId) as any this.updateDoc(tx.objectId, doc, tx) TxProcessor.updateMixin4Doc(doc, tx) diff --git a/foundations/core/packages/core/src/objvalue.ts b/foundations/core/packages/core/src/objvalue.ts index e9be369af8..9cdbdb79fa 100644 --- a/foundations/core/packages/core/src/objvalue.ts +++ b/foundations/core/packages/core/src/objvalue.ts @@ -6,7 +6,7 @@ import core from './component' /** * @public */ -export function getObjectValue(key: string, doc: Doc): any { +export function getObjectValue (key: string, doc: Doc): any { // Check dot notation if (key.length === 0) { return doc @@ -33,7 +33,7 @@ export function getObjectValue(key: string, doc: Doc): any { /** * @public */ -export function setObjectValue(key: string, doc: Doc, newValue: any): void { +export function setObjectValue (key: string, doc: Doc, newValue: any): void { // Check dot notation if (key.length === 0) { return @@ -64,11 +64,11 @@ export function setObjectValue(key: string, doc: Doc, newValue: any): void { return value } -function isNestedArrayQuery(value: any, d: string): boolean { +function isNestedArrayQuery (value: any, d: string): boolean { return Number.isNaN(Number.parseInt(d)) && value?.[d as any] === undefined } -function getNestedArrayValue(value: any[], name: string): any[] { +function getNestedArrayValue (value: any[], name: string): any[] { const result = [] for (const v of value) { result.push(...arrayOrValue(getObjectValue(name, v))) @@ -76,6 +76,6 @@ function getNestedArrayValue(value: any[], name: string): any[] { return result } -function arrayOrValue(vv: any): any[] { +function arrayOrValue (vv: any): any[] { return Array.isArray(vv) ? vv : [vv] } diff --git a/foundations/core/packages/core/src/operations.ts b/foundations/core/packages/core/src/operations.ts index ad9e098a46..a85564e316 100644 --- a/foundations/core/packages/core/src/operations.ts +++ b/foundations/core/packages/core/src/operations.ts @@ -53,7 +53,7 @@ import { type DocumentClassQuery, type Tx, type TxApplyResult, type TxCUD, TxFac export class TxOperations implements Omit { readonly txFactory: TxFactory - constructor( + constructor ( readonly client: Client, readonly user: PersonId, readonly isDerived = false @@ -61,19 +61,19 @@ export class TxOperations implements Omit { this.txFactory = new TxFactory(user, isDerived) } - getHierarchy(): Hierarchy { + getHierarchy (): Hierarchy { return this.client.getHierarchy() } - getModel(): ModelDb { + getModel (): ModelDb { return this.client.getModel() } - async close(): Promise { + async close (): Promise { await this.client.close() } - findAll( + findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -105,19 +105,19 @@ export class TxOperations implements Omit { return this.client.findOne(_class, query, options) } - domainRequest(domain: OperationDomain, params: DomainParams): Promise> { + domainRequest (domain: OperationDomain, params: DomainParams): Promise> { return this.client.domainRequest(domain, params) } - searchFulltext(query: SearchQuery, options: SearchOptions): Promise { + searchFulltext (query: SearchQuery, options: SearchOptions): Promise { return this.client.searchFulltext(query, options) } - tx(tx: Tx): Promise { + tx (tx: Tx): Promise { return this.client.tx(tx) } - async createDoc( + async createDoc ( _class: Ref>, space: Ref, attributes: Data, @@ -137,7 +137,7 @@ export class TxOperations implements Omit { return tx.objectId } - async addCollection( + async addCollection ( _class: Ref>, space: Ref, attachedTo: Ref, @@ -161,7 +161,7 @@ export class TxOperations implements Omit { return tx.objectId } - async updateCollection( + async updateCollection ( _class: Ref>, space: Ref, objectId: Ref

, @@ -186,7 +186,7 @@ export class TxOperations implements Omit { return attachedTo } - async removeCollection( + async removeCollection ( _class: Ref>, space: Ref, objectId: Ref

, @@ -209,7 +209,7 @@ export class TxOperations implements Omit { return attachedTo } - updateDoc( + updateDoc ( _class: Ref>, space: Ref, objectId: Ref, @@ -222,7 +222,7 @@ export class TxOperations implements Omit { return this.tx(tx) } - removeDoc( + removeDoc ( _class: Ref>, space: Ref, objectId: Ref, @@ -233,7 +233,7 @@ export class TxOperations implements Omit { return this.tx(tx) } - createMixin( + createMixin ( objectId: Ref, objectClass: Ref>, objectSpace: Ref, @@ -254,7 +254,7 @@ export class TxOperations implements Omit { return this.tx(tx) } - updateMixin( + updateMixin ( objectId: Ref, objectClass: Ref>, objectSpace: Ref, @@ -275,7 +275,7 @@ export class TxOperations implements Omit { return this.tx(tx) } - async update( + async update ( doc: T, update: DocumentUpdate, retrieve?: boolean, @@ -331,7 +331,7 @@ export class TxOperations implements Omit { return await this.updateDoc(doc._class, doc.space, doc._id, update, retrieve, modifiedOn, modifiedBy) } - remove(doc: T, modifiedOn?: Timestamp, modifiedBy?: PersonId): Promise { + remove (doc: T, modifiedOn?: Timestamp, modifiedBy?: PersonId): Promise { if (this.client.getHierarchy().isDerived(doc._class, core.class.AttachedDoc)) { const adoc = doc as unknown as AttachedDoc return this.removeCollection( @@ -348,11 +348,11 @@ export class TxOperations implements Omit { return this.removeDoc(doc._class, doc.space, doc._id) } - apply(scope?: string, measure?: string, derived?: boolean): ApplyOperations { + apply (scope?: string, measure?: string, derived?: boolean): ApplyOperations { return new ApplyOperations(this, scope, measure, derived ?? this.isDerived) } - async diffUpdate( + async diffUpdate ( doc: T, update: T | Data | DocumentUpdate, date?: Timestamp, @@ -366,7 +366,7 @@ export class TxOperations implements Omit { return doc } - async mixinDiffUpdate( + async mixinDiffUpdate ( doc: Doc, raw: MixinData>, mixin: Ref>>, @@ -399,7 +399,7 @@ export class TxOperations implements Omit { } } -export function getDiffUpdate(doc: T, update: T | Data | DocumentUpdate): DocumentUpdate { +export function getDiffUpdate (doc: T, update: T | Data | DocumentUpdate): DocumentUpdate { // We need to update fields if they are different. const documentUpdate: DocumentUpdate = {} for (const [k, v] of Object.entries(update)) { @@ -414,7 +414,7 @@ export function getDiffUpdate(doc: T, update: T | Data | Docum return documentUpdate } -export function splitMixinUpdate( +export function splitMixinUpdate ( hierarchy: Hierarchy, update: DocumentUpdate, mixClass: Ref>, @@ -448,7 +448,7 @@ export function splitMixinUpdate( return result } -function splitObjectAttributes( +function splitObjectAttributes ( hierarchy: Hierarchy, obj: T, objClass: Ref>, @@ -481,7 +481,7 @@ export class ApplyOperations extends TxOperations { txes: TxCUD[] = [] matches: DocumentClassQuery[] = [] notMatches: DocumentClassQuery[] = [] - constructor( + constructor ( readonly ops: TxOperations, readonly scope?: string, readonly measureName?: string, @@ -507,17 +507,17 @@ export class ApplyOperations extends TxOperations { super(txClient, ops.user, isDerived ?? false) } - match(_class: Ref>, query: DocumentQuery): this { + match (_class: Ref>, query: DocumentQuery): this { this.matches.push({ _class, query }) return this } - notMatch(_class: Ref>, query: DocumentQuery): this { + notMatch (_class: Ref>, query: DocumentQuery): this { this.notMatches.push({ _class, query }) return this } - async commit(notify = true, extraNotify: Ref>[] = []): Promise { + async commit (notify = true, extraNotify: Ref>[] = []): Promise { if ( this.txes.length === 1 && this.matches.length === 0 && @@ -574,7 +574,7 @@ export class ApplyOperations extends TxOperations { } // Apply for this will reuse, same apply context. - apply(scope?: string, measure?: string): this { + apply (scope?: string, measure?: string): this { return this } } @@ -587,7 +587,7 @@ export class ApplyOperations extends TxOperations { export class TxBuilder extends TxOperations { txes: TxCUD[] = [] matches: DocumentClassQuery[] = [] - constructor( + constructor ( readonly hierarchy: Hierarchy, readonly modelDb: ModelDb, user: PersonId @@ -616,11 +616,11 @@ export class TxBuilder extends TxOperations { /** * @public */ -export async function updateAttribute( +export async function updateAttribute ( client: TxOperations, object: Doc, _class: Ref>, - attribute: { key: string; attr: AnyAttribute }, + attribute: { key: string, attr: AnyAttribute }, value: any, saveModified = false, analyticsProps: Record = {} diff --git a/foundations/core/packages/core/src/operator.ts b/foundations/core/packages/core/src/operator.ts index f13d4cafd0..4a5c2f8c2c 100644 --- a/foundations/core/packages/core/src/operator.ts +++ b/foundations/core/packages/core/src/operator.ts @@ -23,7 +23,7 @@ import type { Position, PullArray, QueryUpdate } from './tx' */ export type _OperatorFunc = (doc: Doc, op: any) => void -function $push(document: Doc, keyval: Record): void { +function $push (document: Doc, keyval: Record): void { const doc = document as any for (const key in keyval) { if (doc[key] === undefined) { @@ -51,7 +51,7 @@ function $push(document: Doc, keyval: Record): void { } } -function $pull(document: Doc, keyval: Record): void { +function $pull (document: Doc, keyval: Record): void { const doc = document as any for (const key in keyval) { if (doc[key] === undefined) { @@ -87,7 +87,7 @@ function $pull(document: Doc, keyval: Record): void { } } -function matchArrayElement(docs: any[], query: Partial): any[] { +function matchArrayElement (docs: any[], query: Partial): any[] { let result = [...docs] for (const key in query) { const value = (query as any)[key] @@ -107,7 +107,7 @@ function matchArrayElement(docs: any[], query: Partial): any[] return result } -function $update(document: Doc, keyval: Record): void { +function $update (document: Doc, keyval: Record): void { const doc = document as any for (const key in keyval) { if (doc[key] === undefined) { @@ -134,7 +134,7 @@ function $update(document: Doc, keyval: Record): void { } } -function $inc(document: Doc, keyval: Record): void { +function $inc (document: Doc, keyval: Record): void { const doc = document as unknown as Record for (const key in keyval) { const cur = doc[key] ?? 0 @@ -158,7 +158,7 @@ function $inc(document: Doc, keyval: Record): void { } } -function $unset(document: Doc, keyval: Record): void { +function $unset (document: Doc, keyval: Record): void { const doc = document as any for (const key in keyval) { if (doc[key] !== undefined) { @@ -168,7 +168,7 @@ function $unset(document: Doc, keyval: Record): void { } } -function $rename(document: Doc, keyval: Record): void { +function $rename (document: Doc, keyval: Record): void { const doc = document as any for (const key in keyval) { if (doc[key] !== undefined) { @@ -191,7 +191,7 @@ const operators: Record = { /** * @public */ -export function isOperator(o: Record): boolean { +export function isOperator (o: Record): boolean { if (o === null || typeof o !== 'object') { return false } @@ -204,7 +204,7 @@ export function isOperator(o: Record): boolean { * @param name - * @returns */ -export function _getOperator(name: string): _OperatorFunc { +export function _getOperator (name: string): _OperatorFunc { const operator = operators[name] if (operator === undefined) throw new Error(`unknown operator: ${name}`) return operator diff --git a/foundations/core/packages/core/src/predicate.ts b/foundations/core/packages/core/src/predicate.ts index 9c85c19872..1844371a24 100644 --- a/foundations/core/packages/core/src/predicate.ts +++ b/foundations/core/packages/core/src/predicate.ts @@ -25,7 +25,7 @@ type PredicateFactory = (pred: any, propertyKey: string) => Predicate type ExecPredicate = (value: any) => boolean -function execPredicate(docs: Doc[], propertyKey: string, pred: ExecPredicate): Doc[] { +function execPredicate (docs: Doc[], propertyKey: string, pred: ExecPredicate): Doc[] { const result: Doc[] = [] for (const doc of docs) { const value = getObjectValue(propertyKey, doc) @@ -88,7 +88,7 @@ const predicates: Record = { return (docs) => execPredicate(docs, propertyKey, (value) => regex.test(value)) }, - $regex: (o: { $regex: string; $options: string }, propertyKey: string): Predicate => { + $regex: (o: { $regex: string, $options: string }, propertyKey: string): Predicate => { const re = new RegExp(o.$regex, o.$options) return (docs) => execPredicate(docs, propertyKey, (value) => value.match(re) !== null) }, @@ -126,7 +126,7 @@ const predicates: Record = { }) } -export function isPredicate(o: Record): boolean { +export function isPredicate (o: Record): boolean { if (o === null || typeof o !== 'object') { return false } @@ -134,7 +134,7 @@ export function isPredicate(o: Record): boolean { return keys.length > 0 && keys.every((key) => key.startsWith('$')) } -export function createPredicates(o: Record, propertyKey: string): Predicate[] { +export function createPredicates (o: Record, propertyKey: string): Predicate[] { const keys = Object.keys(o) const result: Predicate[] = [] for (const key of keys) { diff --git a/foundations/core/packages/core/src/proxy.ts b/foundations/core/packages/core/src/proxy.ts index 88a68f70a2..90bcd72b78 100644 --- a/foundations/core/packages/core/src/proxy.ts +++ b/foundations/core/packages/core/src/proxy.ts @@ -8,9 +8,9 @@ export const PROXY_MIXIN_CLASS_KEY = '$__mixin' /** * @internal */ -export function _createMixinProxy(mixin: Mixin, ancestorProxy: ProxyHandler | null): ProxyHandler { +export function _createMixinProxy (mixin: Mixin, ancestorProxy: ProxyHandler | null): ProxyHandler { return { - get(target: any, property: string, receiver: any): any { + get (target: any, property: string, receiver: any): any { if (property === PROXY_TARGET_KEY) { return target } @@ -27,7 +27,7 @@ export function _createMixinProxy(mixin: Mixin, ancestorProxy: ProxyHandler } } -export function freeze(value: any): any { +export function freeze (value: any): any { if (value != null && typeof value === 'object') { if (Array.isArray(value)) { return value.map((it) => freeze(it)) @@ -45,23 +45,23 @@ export function freeze(value: any): any { /** * @internal */ -export function _createFreezeProxy(doc: Doc): ProxyHandler { +export function _createFreezeProxy (doc: Doc): ProxyHandler { return { - get(target: any, property: string, receiver: any): any { + get (target: any, property: string, receiver: any): any { const value = target[property] return freeze(value) }, - set(target, p, newValue, receiver): any { + set (target, p, newValue, receiver): any { throw new PlatformError(unknownError('Modification is not allowed')) }, - defineProperty(target, property, attributes): any { + defineProperty (target, property, attributes): any { throw new PlatformError(unknownError('Modification is not allowed')) }, - deleteProperty(target, p): any { + deleteProperty (target, p): any { throw new PlatformError(unknownError('Modification is not allowed')) }, - setPrototypeOf(target, v): any { + setPrototypeOf (target, v): any { throw new PlatformError(unknownError('Modification is not allowed')) } } @@ -70,7 +70,7 @@ export function _createFreezeProxy(doc: Doc): ProxyHandler { /** * @internal */ -export function _toDoc(doc: D): D { +export function _toDoc (doc: D): D { const targetDoc = (doc as any)[PROXY_TARGET_KEY] if (targetDoc !== undefined) { return targetDoc as D @@ -81,6 +81,6 @@ export function _toDoc(doc: D): D { /** * @internal */ -export function _mixinClass(doc: D): Ref> | undefined { +export function _mixinClass (doc: D): Ref> | undefined { return (doc as any)[PROXY_MIXIN_CLASS_KEY] } diff --git a/foundations/core/packages/core/src/query.ts b/foundations/core/packages/core/src/query.ts index e7661a4a3b..8f88c9b71f 100644 --- a/foundations/core/packages/core/src/query.ts +++ b/foundations/core/packages/core/src/query.ts @@ -9,7 +9,7 @@ import type { SortQuerySelector, SortingOrder, SortingQuery, SortingRules } from /** * @public */ -export function findProperty(objects: Doc[], propertyKey: string, value: any): Doc[] { +export function findProperty (objects: Doc[], propertyKey: string, value: any): Doc[] { if (isPredicate(value)) { const preds = createPredicates(value, propertyKey) for (const pred of preds) { @@ -27,11 +27,11 @@ export function findProperty(objects: Doc[], propertyKey: string, value: any): D return result } -function isArrayValueCheck(val: T, value: P): boolean { +function isArrayValueCheck (val: T, value: P): boolean { return Array.isArray(val) && !Array.isArray(value) && val.includes(value) } -function getEnumValue( +function getEnumValue ( key: string, _class: Ref>, hierarchy: Hierarchy, @@ -47,7 +47,7 @@ function getEnumValue( /** * @public */ -export function resultSort( +export function resultSort ( result: T[], sortOptions: SortingQuery, _class: Ref>, @@ -70,7 +70,7 @@ export function resultSort( result.sort(sortFunc) } -function mapSortingValue(order: SortingOrder | SortingRules, val: any): any { +function mapSortingValue (order: SortingOrder | SortingRules, val: any): any { if (typeof order !== 'object') { return val } @@ -93,7 +93,7 @@ function mapSortingValue(order: SortingOrder | SortingRules, val: any): any } } -function getSortingResult(aValue: any, bValue: any, order: SortingOrder | SortingRules): number { +function getSortingResult (aValue: any, bValue: any, order: SortingOrder | SortingRules): number { let res = 0 if (typeof aValue === 'undefined') { return typeof bValue === 'undefined' ? 0 : -1 @@ -116,7 +116,7 @@ function getSortingResult(aValue: any, bValue: any, order: SortingOrder | Sortin return res * orderOrder } -function getEnums( +function getEnums ( _class: Ref>, sortOptions: SortingQuery, hierarchy: Hierarchy, @@ -138,7 +138,7 @@ function getEnums( return res } -function getValue(key: string, obj: any, _class: Ref>, hierarchy: Hierarchy): any { +function getValue (key: string, obj: any, _class: Ref>, hierarchy: Hierarchy): any { const tkey = checkMixinKey(key, _class, hierarchy) let value = getObjectValue(tkey, obj) if (typeof value === 'object' && !Array.isArray(value)) { @@ -149,7 +149,7 @@ function getValue(key: string, obj: any, _class: Ref>, h /** * @public */ -export function matchQuery( +export function matchQuery ( docs: Doc[], query: DocumentQuery, clazz: Ref>, @@ -178,7 +178,7 @@ export function matchQuery( /** * @public */ -export function checkMixinKey(key: string, clazz: Ref>, hierarchy: Hierarchy): string { +export function checkMixinKey (key: string, clazz: Ref>, hierarchy: Hierarchy): string { if (!key.includes('.')) { try { const attr = hierarchy.findAttribute(clazz, key) diff --git a/foundations/core/packages/core/src/storage.ts b/foundations/core/packages/core/src/storage.ts index 9b444f3c69..375c146f78 100644 --- a/foundations/core/packages/core/src/storage.ts +++ b/foundations/core/packages/core/src/storage.ts @@ -344,7 +344,7 @@ export interface FulltextStorage { searchFulltext: (query: SearchQuery, options: SearchOptions) => Promise } -export function shouldShowArchived( +export function shouldShowArchived ( query: DocumentQuery, options: FindOptions | undefined ): boolean { diff --git a/foundations/core/packages/core/src/time.ts b/foundations/core/packages/core/src/time.ts index 625b7954c3..18297331de 100644 --- a/foundations/core/packages/core/src/time.ts +++ b/foundations/core/packages/core/src/time.ts @@ -14,12 +14,12 @@ // import type { Timestamp } from './classes' -export function getDay(time: Timestamp): Timestamp { +export function getDay (time: Timestamp): Timestamp { const date: Date = new Date(time) return convertToDay(date).getTime() } -export function convertToDay(date: Date): Date { +export function convertToDay (date: Date): Date { const originalDay: number = date.getDate() const convertedDate: Date = new Date(date) // Set 12 AM UTC time, since it will be the same day in most timezones @@ -30,13 +30,13 @@ export function convertToDay(date: Date): Date { return convertedDate } -export function getHour(time: Timestamp): Timestamp { +export function getHour (time: Timestamp): Timestamp { const date: Date = new Date(time) date.setMinutes(0, 0, 0) return date.getTime() } -export function getDisplayTime(time: number): string { +export function getDisplayTime (time: number): string { let options: Intl.DateTimeFormatOptions = { hour: 'numeric', minute: 'numeric' } if (!isToday(time)) { options = { @@ -49,15 +49,15 @@ export function getDisplayTime(time: number): string { return new Date(time).toLocaleString('default', options) } -export function isOtherDay(time1: Timestamp, time2: Timestamp): boolean { +export function isOtherDay (time1: Timestamp, time2: Timestamp): boolean { return getDay(time1) !== getDay(time2) } -export function isOtherHour(time1: Timestamp, time2: Timestamp): boolean { +export function isOtherHour (time1: Timestamp, time2: Timestamp): boolean { return getHour(time1) !== getHour(time2) } -function isToday(time: number): boolean { +function isToday (time: number): boolean { const current = new Date() const target = new Date(time) return ( diff --git a/foundations/core/packages/core/src/tx.ts b/foundations/core/packages/core/src/tx.ts index ae3e5688df..126c4157b6 100644 --- a/foundations/core/packages/core/src/tx.ts +++ b/foundations/core/packages/core/src/tx.ts @@ -319,7 +319,7 @@ export interface WithTx { * @public */ export abstract class TxProcessor implements WithTx { - async tx(...txes: Tx[]): Promise { + async tx (...txes: Tx[]): Promise { const result: TxResult[] = [] for (const tx of txes) { switch (tx._class) { @@ -343,7 +343,7 @@ export abstract class TxProcessor implements WithTx { return result } - static createDoc2Doc(tx: TxCreateDoc, doClone = true): T { + static createDoc2Doc (tx: TxCreateDoc, doClone = true): T { const attached = tx.attachedTo !== undefined ? { @@ -367,7 +367,7 @@ export abstract class TxProcessor implements WithTx { } as T } - static updateDoc2Doc(rawDoc: T, tx: TxUpdateDoc): T { + static updateDoc2Doc (rawDoc: T, tx: TxUpdateDoc): T { const doc = _toDoc(rawDoc) TxProcessor.applyUpdate(doc, tx.operations as any) doc.modifiedBy = tx.modifiedBy @@ -375,7 +375,7 @@ export abstract class TxProcessor implements WithTx { return rawDoc } - static applyUpdate(doc: T, ops: any): void { + static applyUpdate (doc: T, ops: any): void { for (const key in ops) { if (key.startsWith('$')) { const operator = _getOperator(key) @@ -386,7 +386,7 @@ export abstract class TxProcessor implements WithTx { } } - static updateMixin4Doc(rawDoc: D, tx: TxMixin): D { + static updateMixin4Doc (rawDoc: D, tx: TxMixin): D { const ops = tx.attributes as any const doc = _toDoc(rawDoc) const mixin = (doc as any)[tx.mixin] ?? {} @@ -404,7 +404,7 @@ export abstract class TxProcessor implements WithTx { return rawDoc } - static buildDoc2Doc(txes: Tx[]): D | undefined | null { + static buildDoc2Doc (txes: Tx[]): D | undefined | null { let doc: Doc const deleteTx = txes.find((tx) => tx._class === core.class.TxRemoveDoc) if (deleteTx !== undefined) { @@ -426,7 +426,7 @@ export abstract class TxProcessor implements WithTx { return doc as D } - static isExtendsCUD(_class: Ref>): boolean { + static isExtendsCUD (_class: Ref>): boolean { return ( _class === core.class.TxCreateDoc || _class === core.class.TxUpdateDoc || @@ -435,11 +435,11 @@ export abstract class TxProcessor implements WithTx { ) } - static txHasUpdate(tx: TxUpdateDoc, attribute: string): boolean { + static txHasUpdate (tx: TxUpdateDoc, attribute: string): boolean { return TxProcessor.hasUpdate(tx.operations, attribute) } - static hasUpdate(ops: DocumentUpdate, attribute: string): boolean { + static hasUpdate (ops: DocumentUpdate, attribute: string): boolean { if ((ops as any)[attribute] !== undefined) return true for (const op in ops) { if (op.startsWith('$')) { @@ -465,14 +465,14 @@ export abstract class TxProcessor implements WithTx { */ export class TxFactory { private readonly txSpace: Ref - constructor( + constructor ( readonly account: PersonId, readonly isDerived = false ) { this.txSpace = isDerived ? core.space.DerivedTx : core.space.Tx } - createTxCreateDoc( + createTxCreateDoc ( _class: Ref>, space: Ref, attributes: Data, @@ -494,7 +494,7 @@ export class TxFactory { } } - createTxCollectionCUD( + createTxCollectionCUD ( _class: Ref>, objectId: Ref, space: Ref, @@ -513,7 +513,7 @@ export class TxFactory { } } - createTxUpdateDoc( + createTxUpdateDoc ( _class: Ref>, space: Ref, objectId: Ref, @@ -536,7 +536,7 @@ export class TxFactory { } } - createTxRemoveDoc( + createTxRemoveDoc ( _class: Ref>, space: Ref, objectId: Ref, @@ -555,7 +555,7 @@ export class TxFactory { } } - createTxMixin( + createTxMixin ( objectId: Ref, objectClass: Ref>, objectSpace: Ref, @@ -578,7 +578,7 @@ export class TxFactory { } } - createTxApplyIf( + createTxApplyIf ( space: Ref, scope: string | undefined, match: DocumentClassQuery[], diff --git a/foundations/core/packages/core/src/utils.ts b/foundations/core/packages/core/src/utils.ts index d03cbfd4b2..b373b4ddfa 100644 --- a/foundations/core/packages/core/src/utils.ts +++ b/foundations/core/packages/core/src/utils.ts @@ -55,7 +55,7 @@ import type { Branding, BrandingMap } from './server' import type { DocumentQuery, FindResult } from './storage' import { DOMAIN_TX, type Tx, type TxCreateDoc, type TxCUD, TxProcessor, type TxUpdateDoc } from './tx' -function toHex(value: number, chars: number): string { +function toHex (value: number, chars: number): string { const result = value.toString(16) if (result.length < chars) { return '0'.repeat(chars - result.length) + result @@ -66,12 +66,12 @@ function toHex(value: number, chars: number): string { let counter = (Math.random() * (1 << 24)) | 0 const random = toHex((Math.random() * (1 << 24)) | 0, 6) + toHex((Math.random() * (1 << 16)) | 0, 4) -function timestamp(): string { +function timestamp (): string { const time = (Date.now() / 1000) | 0 return toHex(time, 8) } -function count(): string { +function count (): string { const val = counter++ & 0xffffff return toHex(val, 6) } @@ -80,17 +80,17 @@ function count(): string { * @public * @returns */ -export function generateId(join = ''): Ref { +export function generateId (join = ''): Ref { return (timestamp() + join + random + join + count()) as Ref } -export function generateUuid(): string { +export function generateUuid (): string { // Consider own implementation if it will be slow return crypto.randomUUID() } /** @public */ -export function isId(value: any): value is Ref { +export function isId (value: any): value is Ref { return typeof value === 'string' && /^[0-9a-f]{24,24}$/.test(value) } @@ -100,7 +100,7 @@ let currentAccount: Account * @public * @returns */ -export function getCurrentAccount(): Account { +export function getCurrentAccount (): Account { return currentAccount } @@ -108,20 +108,20 @@ export function getCurrentAccount(): Account { * @public * @param account - */ -export function setCurrentAccount(account: Account): void { +export function setCurrentAccount (account: Account): void { currentAccount = account } /** * @public */ -export function escapeLikeForRegexp(value: string): string { +export function escapeLikeForRegexp (value: string): string { return value.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&') } /** * @public */ -export function toFindResult(docs: T[], total?: number, lookupMap?: Record): FindResult { +export function toFindResult (docs: T[], total?: number, lookupMap?: Record): FindResult { const length = total ?? docs.length if (Object.keys(lookupMap ?? {}).length === 0) { lookupMap = undefined @@ -140,7 +140,7 @@ export interface WorkspaceIds { /** * @public */ -export function isWorkspaceCreating(mode?: WorkspaceMode): boolean { +export function isWorkspaceCreating (mode?: WorkspaceMode): boolean { if (mode === undefined) { return false } @@ -151,14 +151,14 @@ export function isWorkspaceCreating(mode?: WorkspaceMode): boolean { /** * @public */ -export function docKey(name: string, _class?: Ref>): string { +export function docKey (name: string, _class?: Ref>): string { return _class === undefined || _class !== core.class.Doc ? name : `${_class}%${name}` } /** * @public */ -export function isFullTextAttribute(attr: AnyAttribute): boolean { +export function isFullTextAttribute (attr: AnyAttribute): boolean { return ( attr.index === IndexKind.FullText || attr.type._class === core.class.TypeBlob || @@ -170,7 +170,7 @@ export function isFullTextAttribute(attr: AnyAttribute): boolean { /** * @public */ -export function isIndexedAttribute(attr: AnyAttribute): boolean { +export function isIndexedAttribute (attr: AnyAttribute): boolean { return attr.index === IndexKind.Indexed || attr.index === IndexKind.IndexedDsc } @@ -182,14 +182,14 @@ export interface IdMap extends Map, T> {} /** * @public */ -export function toIdMap(arr: T[]): IdMap { +export function toIdMap (arr: T[]): IdMap { return new Map(arr.map((p) => [p._id, p])) } /** * @public */ -export function concatLink(host: string, path: string): string { +export function concatLink (host: string, path: string): string { if (!host.endsWith('/') && !path.startsWith('/')) { return `${host}/${path}` } else if (host.endsWith('/') && path.startsWith('/')) { @@ -203,7 +203,7 @@ export function concatLink(host: string, path: string): string { /** * @public */ -export function fillDefaults( +export function fillDefaults ( hierarchy: Hierarchy, object: DocData | T, _class: Ref> @@ -225,7 +225,7 @@ export function fillDefaults( * @public */ export class AggregateValueData { - constructor( + constructor ( readonly name: string, readonly _id: Ref, readonly space: Ref, @@ -233,7 +233,7 @@ export class AggregateValueData { readonly category?: Ref ) {} - getRank(): string { + getRank (): string { return this.rank ?? '' } } @@ -242,7 +242,7 @@ export class AggregateValueData { * @public */ export class AggregateValue { - constructor( + constructor ( readonly name: string | undefined, readonly values: AggregateValueData[] ) {} @@ -266,23 +266,23 @@ export interface IDocManager { export class DocManager implements IDocManager { protected readonly byId: IdMap - constructor(protected readonly docs: T[]) { + constructor (protected readonly docs: T[]) { this.byId = toIdMap(docs) } - get(ref: Ref): T | undefined { + get (ref: Ref): T | undefined { return this.byId.get(ref) } - getDocs(): T[] { + getDocs (): T[] { return this.docs } - getIdMap(): IdMap { + getIdMap (): IdMap { return this.byId } - filter(predicate: (value: T) => boolean): T[] { + filter (predicate: (value: T) => boolean): T[] { return this.docs.filter(predicate) } } @@ -299,13 +299,13 @@ export class RateLimiter { queue: (() => Promise)[] = [] - constructor(rate: number) { + constructor (rate: number) { this.rate = rate } notify: (() => void)[] = [] - async exec = any>(op: (args?: B) => Promise, args?: B): Promise { + async exec = any> (op: (args?: B) => Promise, args?: B): Promise { const processingId = this.idCounter++ while (this.processingQueue.size >= this.rate) { @@ -326,7 +326,7 @@ export class RateLimiter { } } - async add = any>( + async add = any> ( op: (args?: B) => Promise, args?: B, errHandler?: (err: any) => void @@ -344,7 +344,7 @@ export class RateLimiter { }) } - async waitProcessing(): Promise { + async waitProcessing (): Promise { while (this.processingQueue.size > 0) { await new Promise((resolve) => { this.notify.push(resolve) @@ -353,7 +353,7 @@ export class RateLimiter { } } -export function mergeQueries(query1: DocumentQuery, query2: DocumentQuery): DocumentQuery { +export function mergeQueries (query1: DocumentQuery, query2: DocumentQuery): DocumentQuery { const keys1 = Object.keys(query1) const keys2 = Object.keys(query2) @@ -379,7 +379,7 @@ export function mergeQueries(query1: DocumentQuery, query2: Do return query } -function mergeField(field1: any, field2: any): any | undefined { +function mergeField (field1: any, field2: any): any | undefined { // this is a special predicate that causes query never return any docs // it is used in cases when queries intersection is empty const never = { $in: [] } @@ -447,7 +447,7 @@ function mergeField(field1: any, field2: any): any | undefined { } } -function mergePredicateWithPredicate(predicate: string, val1: any, val2: any): any | undefined { +function mergePredicateWithPredicate (predicate: string, val1: any, val2: any): any | undefined { if (val1 === undefined) return val2 if (val2 === undefined) return val1 @@ -468,7 +468,7 @@ function mergePredicateWithPredicate(predicate: string, val1: any, val2: any): a return val1 } -function mergePredicateWithValue(predicate: string, val1: any, val2: any): any | undefined { +function mergePredicateWithValue (predicate: string, val1: any, val2: any): any | undefined { switch (predicate) { case '$in': return Array.isArray(val1) && val1.includes(val2) ? val2 : undefined @@ -492,7 +492,7 @@ function mergePredicateWithValue(predicate: string, val1: any, val2: any): any | return val2 } -function getInNiN(query1: any, query2: any): any { +function getInNiN (query1: any, query2: any): any { const aIn = typeof query1 === 'object' && '$in' in query1 ? query1.$in : undefined const bIn = typeof query2 === 'object' && '$in' in query2 ? query2.$in : undefined const aNIn = @@ -526,7 +526,7 @@ function getInNiN(query1: any, query2: any): any { return {} } -export function cutObjectArray(obj: any): any { +export function cutObjectArray (obj: any): any { if (obj == null) { return obj } @@ -547,7 +547,7 @@ export function cutObjectArray(obj: any): any { return r } -export function includesAny(arr1: string[] | null | undefined, arr2: string[] | null | undefined): boolean { +export function includesAny (arr1: string[] | null | undefined, arr2: string[] | null | undefined): boolean { if (arr1 == null || arr1.length === 0 || arr2 == null || arr2.length === 0) { return false } @@ -560,7 +560,7 @@ export const isEnum = (token: any): token is T[keyof T] => typeof token === 'string' && Object.values(e as Record).includes(token) -export async function checkPermission( +export async function checkPermission ( client: TxOperations, _id: Ref, _space: Ref, @@ -572,7 +572,7 @@ export async function checkPermission( return await hasPermission(client, _id, _space, space) } -export async function checkForbiddenPermission( +export async function checkForbiddenPermission ( client: TxOperations, _id: Ref, _space: Ref, @@ -584,7 +584,7 @@ export async function checkForbiddenPermission( return await hasPermission(client, _id, _space, space) } -async function hasPermission( +async function hasPermission ( client: TxOperations, _id: Ref, _space: Ref, @@ -615,14 +615,14 @@ async function hasPermission( /** * @public */ -export function getRoleAttributeLabel(roleName: string): IntlString { +export function getRoleAttributeLabel (roleName: string): IntlString { return getEmbeddedLabel(`Role: ${roleName.trim()}`) } /** * @public */ -export function getFullTextIndexableAttributes( +export function getFullTextIndexableAttributes ( hierarchy: Hierarchy, clazz: Ref>, skipDocs = false @@ -658,7 +658,7 @@ const ctxKey = 'indexer_ftc' /** * @public */ -export function getFullTextContext( +export function getFullTextContext ( hierarchy: Hierarchy, objectClass: Ref>, contexts: Map>, FullTextSearchContext> @@ -689,7 +689,7 @@ export function getFullTextContext( /** * @public */ -export function isClassIndexable( +export function isClassIndexable ( hierarchy: Hierarchy, c: Ref>, contexts: Map>, FullTextSearchContext> @@ -792,12 +792,12 @@ export function reduceCalls) => Promise< } } -export function isOwnerOrMaintainer(): boolean { +export function isOwnerOrMaintainer (): boolean { const account = getCurrentAccount() return hasAccountRole(account, AccountRole.Maintainer) } -export function hasAccountRole(acc: Account, targerRole: AccountRole): boolean { +export function hasAccountRole (acc: Account, targerRole: AccountRole): boolean { return roleOrder[acc.role] >= roleOrder[targerRole] } @@ -807,7 +807,7 @@ export function getBranding (brandings: BrandingMap, key: string | undefined): B return Object.values(brandings).find((branding) => branding.key === key) ?? null } -export function fillConfiguration(systemTx: Tx[], configs: Map, PluginConfiguration>): void { +export function fillConfiguration (systemTx: Tx[], configs: Map, PluginConfiguration>): void { for (const t of systemTx) { if (t._class === core.class.TxCreateDoc) { const ct = t as TxCreateDoc @@ -828,7 +828,7 @@ export function fillConfiguration(systemTx: Tx[], configs: Map, PluginConfiguration>, systemTx: Tx[] @@ -877,22 +877,22 @@ export class TimeRateLimiter { last = 0 rate: number period: number - executions: { time: number; running: boolean }[] = [] + executions: { time: number, running: boolean }[] = [] queue: (() => Promise)[] = [] notify: (() => void)[] = [] - constructor(rate: number, period = 1000) { + constructor (rate: number, period = 1000) { this.rate = rate this.period = period } - private cleanupExecutions(): void { + private cleanupExecutions (): void { const now = Date.now() this.executions = this.executions.filter((time) => time.running || now - time.time < this.period) } - async exec = any>(op: (args?: B) => Promise, args?: B): Promise { + async exec = any> (op: (args?: B) => Promise, args?: B): Promise { while (this.active >= this.rate || this.executions.length >= this.rate) { this.cleanupExecutions() if (this.executions.length < this.rate) { @@ -920,7 +920,7 @@ export class TimeRateLimiter { } } - async waitProcessing(): Promise { + async waitProcessing (): Promise { while (this.active > 0) { await new Promise((resolve) => { this.notify.push(resolve) @@ -929,7 +929,7 @@ export class TimeRateLimiter { } } -export function combineAttributes( +export function combineAttributes ( attributes: any[], key: string, operator: '$push' | '$pull' | '$unset', @@ -950,11 +950,11 @@ export function combineAttributes( ).filter((v) => v != null) } -export function buildSocialIdString(key: SocialKey): string { +export function buildSocialIdString (key: SocialKey): string { return `${key.type}:${key.value}` } -export function parseSocialIdString(id: string): SocialKey { +export function parseSocialIdString (id: string): SocialKey { const [type, value] = id.split(':') if (type === undefined || value === undefined) { @@ -968,7 +968,7 @@ export function parseSocialIdString(id: string): SocialKey { return { type: type as SocialIdType, value } } -export function pickPrimarySocialId(socialIds: SocialId[]): SocialId { +export function pickPrimarySocialId (socialIds: SocialId[]): SocialId { const activeSocialIds = socialIds.filter((si) => si.isDeleted !== true) if (activeSocialIds.length === 0) { throw new Error('No active social ids provided') @@ -980,15 +980,15 @@ export function pickPrimarySocialId(socialIds: SocialId[]): SocialId { export const loginSocialTypes = [SocialIdType.EMAIL, SocialIdType.GOOGLE, SocialIdType.GITHUB, SocialIdType.OIDC] -export function notEmpty(id: T | undefined | null): id is T { +export function notEmpty (id: T | undefined | null): id is T { return id !== undefined && id !== null && id !== '' } -export function unique(arr: T[]): T[] { +export function unique (arr: T[]): T[] { return Array.from(new Set(arr)) } -export function uniqueNotEmpty>(arr: Array): T[] { +export function uniqueNotEmpty> (arr: Array): T[] { return unique(arr).filter(notEmpty) } export { platformNow, platformNowDiff } from '@hcengineering/measurements' @@ -1000,7 +1000,7 @@ export interface PermissionsGrant { export type KeysByType = { [k in keyof O]-?: O[k] extends T ? k : never }[keyof O] -export function toRank(str: string | undefined): Rank | undefined { +export function toRank (str: string | undefined): Rank | undefined { if (str === undefined) return if (str.startsWith('0|')) { return str diff --git a/foundations/core/packages/hulylake-client/src/client.ts b/foundations/core/packages/hulylake-client/src/client.ts index beab4d8dda..8445b55448 100644 --- a/foundations/core/packages/hulylake-client/src/client.ts +++ b/foundations/core/packages/hulylake-client/src/client.ts @@ -29,48 +29,48 @@ import { Body } from './types' -export function getWorkspaceClient(baseUrl: string, workspace: WorkspaceUuid, token: string): HulylakeWorkspaceClient { +export function getWorkspaceClient (baseUrl: string, workspace: WorkspaceUuid, token: string): HulylakeWorkspaceClient { const client = new Client(baseUrl, token) return new WorkspaceClient(client, workspace) } -export function getClient(baseUrl: string, token: string): HulylakeClient { +export function getClient (baseUrl: string, token: string): HulylakeClient { return new Client(baseUrl, token) } class WorkspaceClient implements HulylakeWorkspaceClient { - constructor( + constructor ( private readonly client: HulylakeClient, private readonly workspace: WorkspaceUuid ) {} - head(key: string, retryOptions?: RetryOptions): Promise> { + head (key: string, retryOptions?: RetryOptions): Promise> { return this.client.head(this.workspace, key, retryOptions) } - get(key: string, retryOptions?: RetryOptions): Promise>> { + get (key: string, retryOptions?: RetryOptions): Promise>> { return this.client.get(this.workspace, key, retryOptions) } - put(key: string, body: Body, opts: PutOptions, retryOptions?: RetryOptions): Promise> { + put (key: string, body: Body, opts: PutOptions, retryOptions?: RetryOptions): Promise> { return this.client.put(this.workspace, key, body, opts, retryOptions) } - patch(key: string, body: Body, opts: PatchOptions, retryOptions?: RetryOptions): Promise> { + patch (key: string, body: Body, opts: PatchOptions, retryOptions?: RetryOptions): Promise> { return this.client.patch(this.workspace, key, body, opts, retryOptions) } - delete(key: string, retryOptions?: RetryOptions): Promise> { + delete (key: string, retryOptions?: RetryOptions): Promise> { return this.client.delete(this.workspace, key, retryOptions) } - public async getJson(key: string, retryOptions?: RetryOptions): Promise> { + public async getJson (key: string, retryOptions?: RetryOptions): Promise> { const res = await this.client.get(this.workspace, key, retryOptions) const body = res.ok && res.body != null ? ((await new Response(res.body).json()) as T) : undefined return { ...res, body } } - public async putJson( + public async putJson ( key: string, json: T, options?: Omit, @@ -79,7 +79,7 @@ class WorkspaceClient implements HulylakeWorkspaceClient { return await this.put(key, JSON.stringify(json), { ...options, mergeStrategy: 'jsonpatch' }, retryOptions) } - public async patchJson( + public async patchJson ( key: string, body: JsonPatch[], options?: Omit, @@ -95,28 +95,28 @@ class WorkspaceClient implements HulylakeWorkspaceClient { } class Client implements HulylakeClient { - constructor( + constructor ( private readonly baseUrl: string, private readonly token: string ) { this.baseUrl = this.baseUrl.endsWith('/') ? this.baseUrl.slice(0, -1) : this.baseUrl } - private authHeaders(init?: HeadersInit): Headers { + private authHeaders (init?: HeadersInit): Headers { const headers = new Headers(init) headers.set('Authorization', `Bearer ${this.token}`) return headers } - private applyHeaders(h: Headers, headers?: HulyHeaders): void { + private applyHeaders (h: Headers, headers?: HulyHeaders): void { if (headers != null) for (const [k, v] of Object.entries(headers)) h.set(`huly-header-${k}`, v) } - private applyMeta(h: Headers, meta?: HulyMeta): void { + private applyMeta (h: Headers, meta?: HulyMeta): void { if (meta != null) for (const [k, v] of Object.entries(meta)) h.set(`huly-meta-${k}`, v) } - public async status(): Promise { + public async status (): Promise { try { const res = await fetchSafe(`${this.baseUrl}/status`) return res.ok @@ -125,11 +125,11 @@ class Client implements HulylakeClient { } } - public objectUrl(workspace: string, key: string): string { + public objectUrl (workspace: string, key: string): string { return `${this.baseUrl}/api/${workspace}/${encodeURIComponent(key)}` } - public async head(workspace: string, key: string, retryOptions?: RetryOptions): Promise> { + public async head (workspace: string, key: string, retryOptions?: RetryOptions): Promise> { const res = await fetchSafe( this.objectUrl(workspace, key), { @@ -150,7 +150,7 @@ class Client implements HulylakeClient { } } - public async get( + public async get ( workspace: string, key: string, retryOptions?: RetryOptions @@ -189,7 +189,7 @@ class Client implements HulylakeClient { } } - public async partial( + public async partial ( workspace: string, key: string, offset: number, @@ -229,7 +229,7 @@ class Client implements HulylakeClient { } } - public async put( + public async put ( workspace: string, key: string, body: Body, @@ -283,7 +283,7 @@ class Client implements HulylakeClient { } } - public async patch( + public async patch ( workspace: string, key: string, body: Body, @@ -330,7 +330,7 @@ class Client implements HulylakeClient { } } - public async delete(workspace: string, key: string, retryOptions?: RetryOptions): Promise> { + public async delete (workspace: string, key: string, retryOptions?: RetryOptions): Promise> { const res = await fetchSafe( this.objectUrl(workspace, key), { diff --git a/foundations/core/packages/hulylake-client/src/error.ts b/foundations/core/packages/hulylake-client/src/error.ts index 38e36c8ec1..a26cbd711a 100644 --- a/foundations/core/packages/hulylake-client/src/error.ts +++ b/foundations/core/packages/hulylake-client/src/error.ts @@ -14,14 +14,14 @@ // export class NetworkError extends Error { - constructor(message: string) { + constructor (message: string) { super(message) this.name = 'NetworkError' } } export class HulylakeError extends Error { - constructor(message: string) { + constructor (message: string) { super(message) this.name = 'HulylakeError' } diff --git a/foundations/core/packages/hulylake-client/src/index.ts b/foundations/core/packages/hulylake-client/src/index.ts index 0f078ded71..0ce0730482 100644 --- a/foundations/core/packages/hulylake-client/src/index.ts +++ b/foundations/core/packages/hulylake-client/src/index.ts @@ -14,4 +14,4 @@ // export * from './client' -export * from './types' +export type * from './types' diff --git a/foundations/core/packages/hulylake-client/src/types.ts b/foundations/core/packages/hulylake-client/src/types.ts index c5a3abb9f2..06a39598e9 100644 --- a/foundations/core/packages/hulylake-client/src/types.ts +++ b/foundations/core/packages/hulylake-client/src/types.ts @@ -98,15 +98,15 @@ export interface PatchOptions { } export type JsonPatch = - | { op: 'add'; path: string; value: any } - | { op: 'replace'; path: string; value: any } - | { op: 'remove'; path: string } - | { op: 'move'; from: string; path: string } - | { op: 'copy'; from: string; path: string } - | { op: 'test'; path: string; value: any } - | { hop: 'add'; path: string; value: any; safe?: boolean } - | { hop: 'inc'; path: string; value: number; safe?: boolean } - | { hop: 'remove'; path: string; safe?: boolean } + | { op: 'add', path: string, value: any } + | { op: 'replace', path: string, value: any } + | { op: 'remove', path: string } + | { op: 'move', from: string, path: string } + | { op: 'copy', from: string, path: string } + | { op: 'test', path: string, value: any } + | { hop: 'add', path: string, value: any, safe?: boolean } + | { hop: 'inc', path: string, value: number, safe?: boolean } + | { hop: 'remove', path: string, safe?: boolean } export interface HulyResponse { ok: boolean diff --git a/foundations/core/packages/hulylake-client/src/utils.ts b/foundations/core/packages/hulylake-client/src/utils.ts index 4322d2210c..1d93750e86 100644 --- a/foundations/core/packages/hulylake-client/src/utils.ts +++ b/foundations/core/packages/hulylake-client/src/utils.ts @@ -16,7 +16,7 @@ import { RetryOptions, withRetry } from '@hcengineering/retry' import { HulylakeError, NetworkError } from './error' -async function innerFetchSafe(url: string | URL, init?: RequestInit): Promise { +async function innerFetchSafe (url: string | URL, init?: RequestInit): Promise { let response try { response = await fetch(url, init) @@ -37,14 +37,14 @@ async function innerFetchSafe(url: string | URL, init?: RequestInit): Promise { +export async function fetchSafe (url: string | URL, init?: RequestInit, retryOptions?: RetryOptions): Promise { if (retryOptions != null) { return await withRetry(async () => await innerFetchSafe(url, init), retryOptions) } return await innerFetchSafe(url, init) } -export function unwrapEtag(etag: string | null | undefined): string | undefined { +export function unwrapEtag (etag: string | null | undefined): string | undefined { if (etag == null) { return undefined } @@ -60,14 +60,14 @@ export function unwrapEtag(etag: string | null | undefined): string | undefined return etag } -export function unwrapContentLength(length: string | null | undefined): number | undefined { +export function unwrapContentLength (length: string | null | undefined): number | undefined { if (length == null) { return undefined } return parseInt(length, 10) } -export function unwrapLastModified(lastModified: string | null | undefined): number | undefined { +export function unwrapLastModified (lastModified: string | null | undefined): number | undefined { if (lastModified == null) { return undefined } diff --git a/foundations/core/packages/measurements-otlp/src/telemetry.ts b/foundations/core/packages/measurements-otlp/src/telemetry.ts index c37474e822..55adf342b4 100644 --- a/foundations/core/packages/measurements-otlp/src/telemetry.ts +++ b/foundations/core/packages/measurements-otlp/src/telemetry.ts @@ -43,10 +43,10 @@ import { NodeSDK } from '@opentelemetry/sdk-node' import { BatchSpanProcessor } from '@opentelemetry/sdk-trace-node' class MetricsContext { - counters = new Map() - constructor(readonly meter?: Meter) {} + counters = new Map() + constructor (readonly meter?: Meter) {} - getCounter(name: string): { counter: Gauge; value: number } | undefined { + getCounter (name: string): { counter: Gauge, value: number } | undefined { if (this.meter === undefined) { return undefined } @@ -76,7 +76,7 @@ export class OpenTelemetryMetricsContext implements MeasureContext { isDone = false doneTrace: string = '' - private done(value?: number, override?: boolean): void { + private done (value?: number, override?: boolean): void { if (!this.isDone) { this.doneTrace = new Error().stack ?? '' this.isDone = true @@ -85,7 +85,7 @@ export class OpenTelemetryMetricsContext implements MeasureContext { } } - constructor( + constructor ( name: string, readonly tracer: Tracer, readonly context: Context | undefined, @@ -117,7 +117,7 @@ export class OpenTelemetryMetricsContext implements MeasureContext { this.logger = logger ?? (this.logParams != null ? consoleLogger(this.logParams ?? {}) : noParamsLogger) } - measure(name: string, value: number, override?: boolean): void { + measure (name: string, value: number, override?: boolean): void { const cnt = this.meter?.getCounter(name) if (cnt !== undefined) { if (cnt.value !== value) { @@ -127,7 +127,7 @@ export class OpenTelemetryMetricsContext implements MeasureContext { } } - newChild( + newChild ( name: string, params: ParamsType, opt?: { @@ -181,7 +181,7 @@ export class OpenTelemetryMetricsContext implements MeasureContext { return result } - extractMeta(): Record { + extractMeta (): Record { const headers: Record = {} if (this.context !== undefined) { propagation.inject(this.context, headers) @@ -189,7 +189,7 @@ export class OpenTelemetryMetricsContext implements MeasureContext { return headers } - with( + with ( name: string, params: ParamsType, op: (ctx: MeasureContext) => T | Promise, @@ -249,7 +249,7 @@ export class OpenTelemetryMetricsContext implements MeasureContext { } } - withSync( + withSync ( name: string, params: ParamsType, op: (ctx: MeasureContext) => T, @@ -265,7 +265,7 @@ export class OpenTelemetryMetricsContext implements MeasureContext { } } - error(message: string, args?: Record): void { + error (message: string, args?: Record): void { if (this.otlpLogger !== undefined) { this.otlpLogger.emit({ severityNumber: SeverityNumber.ERROR, @@ -281,7 +281,7 @@ export class OpenTelemetryMetricsContext implements MeasureContext { this.logger.error(message, { ...this.params, ...args, ...(this.logParams ?? {}) }) } - info(message: string, args?: Record): void { + info (message: string, args?: Record): void { if (this.otlpLogger !== undefined) { this.otlpLogger.emit({ context: this.context, @@ -297,7 +297,7 @@ export class OpenTelemetryMetricsContext implements MeasureContext { this.logger.info(message, { ...this.params, ...args, ...(this.logParams ?? {}) }) } - warn(message: string, args?: Record): void { + warn (message: string, args?: Record): void { if (this.otlpLogger !== undefined) { this.otlpLogger.emit({ severityNumber: SeverityNumber.WARN, @@ -313,7 +313,7 @@ export class OpenTelemetryMetricsContext implements MeasureContext { this.logger.warn(message, { ...this.params, ...args, ...(this.logParams ?? {}) }) } - debug(message: string, args?: Record): void { + debug (message: string, args?: Record): void { if (this.logLevel !== 'debug') return if (this.otlpLogger !== undefined) { this.otlpLogger.emit({ @@ -330,11 +330,11 @@ export class OpenTelemetryMetricsContext implements MeasureContext { this.logger.debug(message, { ...this.params, ...args, ...(this.logParams ?? {}) }) } - end(): void { + end (): void { this.done() } - getParams(): ParamsType { + getParams (): ParamsType { return this.params } } @@ -345,7 +345,7 @@ export class OpenTelemetryMetricsContext implements MeasureContext { * W3C baggage format: "key1=value1,key2=value2;property=value,key3=value3" * Returns only the key-value pairs, ignoring properties */ -function parseBaggage(baggageHeader?: string): Record { +function parseBaggage (baggageHeader?: string): Record { if (baggageHeader == null || typeof baggageHeader !== 'string') { return {} } @@ -393,7 +393,7 @@ let sdkServiceName: string | undefined let sdkServiceVersion: string | undefined let loggerProvider: LoggerProvider | undefined -export function initOpenTelemetrySDK(serviceName: string, version: string): boolean { +export function initOpenTelemetrySDK (serviceName: string, version: string): boolean { if (sdk !== undefined) { return true } @@ -501,7 +501,7 @@ export function initOpenTelemetrySDK(serviceName: string, version: string): bool return true } -export function reportOTELError(error: Error, attributes?: Record): void { +export function reportOTELError (error: Error, attributes?: Record): void { if (sdkServiceName !== undefined && sdkServiceVersion !== undefined && loggerProvider !== undefined) { const otlpLogger = loggerProvider?.getLogger(sdkServiceName, sdkServiceVersion) otlpLogger?.emit({ @@ -519,7 +519,7 @@ export function reportOTELError(error: Error, attributes?: Record): } } -export function reportOTEL( +export function reportOTEL ( severity: 'info' | 'warning', message: string, time: number, @@ -542,7 +542,7 @@ export function reportOTEL( } } -export function createOpenTelemetryMetricsContext( +export function createOpenTelemetryMetricsContext ( name: string, params: ParamsType, fullParams: FullParamsType | (() => FullParamsType) = {}, @@ -584,7 +584,7 @@ export function createOpenTelemetryMetricsContext( ) return ctx } -function parseTraceExporterHeaders(): Record { +function parseTraceExporterHeaders (): Record { const headers: Record = parseBaggage(process.env.OTEL_EXPORTER_OTLP_HEADERS) ?? {} if (process.env.OTEL_EXPORTER_OTLP_TRACES_HEADERS !== undefined) { @@ -596,7 +596,7 @@ function parseTraceExporterHeaders(): Record { return headers } -function getTracesUrl(): string | undefined { +function getTracesUrl (): string | undefined { let tracesUrl = process.env.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT ?? process.env.OTEL_EXPORTER_OTLP_ENDPOINT if (tracesUrl !== undefined && !tracesUrl.endsWith('/v1/traces')) { @@ -609,7 +609,7 @@ function getTracesUrl(): string | undefined { return tracesUrl } -function getLogsUrl(): string | undefined { +function getLogsUrl (): string | undefined { let logsUrl = process.env.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT ?? process.env.OTEL_EXPORTER_OTLP_ENDPOINT if (logsUrl !== undefined && !logsUrl.endsWith('/v1/logs')) { @@ -621,7 +621,7 @@ function getLogsUrl(): string | undefined { } return logsUrl } -function parseLogsExporterHeaders(): Record { +function parseLogsExporterHeaders (): Record { const headers: Record = parseBaggage(process.env.OTEL_EXPORTER_OTLP_HEADERS) ?? {} if (process.env.OTEL_EXPORTER_OTLP_LOGS_HEADERS !== undefined) { @@ -633,7 +633,7 @@ function parseLogsExporterHeaders(): Record { return headers } -function getMetricsUrl(): string | undefined { +function getMetricsUrl (): string | undefined { let metricsUrl = process.env.OTEL_EXPORTER_OTLP_METRICS_ENDPOINT ?? process.env.OTEL_EXPORTER_OTLP_ENDPOINT if (metricsUrl !== undefined && !metricsUrl.endsWith('/v1/metrics')) { @@ -645,7 +645,7 @@ function getMetricsUrl(): string | undefined { } return metricsUrl } -function parseMetricsExporterHeaders(): Record { +function parseMetricsExporterHeaders (): Record { const headers: Record = parseBaggage(process.env.OTEL_EXPORTER_OTLP_HEADERS) ?? {} if (process.env.OTEL_EXPORTER_OTLP_METRICS_HEADERS !== undefined) { diff --git a/foundations/core/packages/measurements/src/__tests__/context.test.ts b/foundations/core/packages/measurements/src/__tests__/context.test.ts index 349b18230e..818ecbd616 100644 --- a/foundations/core/packages/measurements/src/__tests__/context.test.ts +++ b/foundations/core/packages/measurements/src/__tests__/context.test.ts @@ -344,7 +344,7 @@ describe('context', () => { it('should wrap method with context', async () => { class TestClass { @withContext('testOperation', { service: 'test' }) - async testMethod(ctx: MeasureContext, value: number): Promise { + async testMethod (ctx: MeasureContext, value: number): Promise { return value * 2 } } diff --git a/foundations/core/packages/measurements/src/__tests__/performance.test.ts b/foundations/core/packages/measurements/src/__tests__/performance.test.ts index c05308ef04..fdb6065973 100644 --- a/foundations/core/packages/measurements/src/__tests__/performance.test.ts +++ b/foundations/core/packages/measurements/src/__tests__/performance.test.ts @@ -202,7 +202,7 @@ describe('performance', () => { // Helper functions -async function simulateWork(durationMs: number): Promise { +async function simulateWork (durationMs: number): Promise { const end = performance.now() + durationMs while (performance.now() < end) { // Busy wait to simulate work @@ -211,7 +211,7 @@ async function simulateWork(durationMs: number): Promise { } } -async function deepNestedExecution( +async function deepNestedExecution ( ctx: MeasureContext, depth: number, workMs: number, @@ -227,7 +227,7 @@ async function deepNestedExecution( }) } -async function simulateAPIRequest(ctx: MeasureContext | null, requestId: number): Promise { +async function simulateAPIRequest (ctx: MeasureContext | null, requestId: number): Promise { const method = ['GET', 'POST', 'PUT'][requestId % 3] const endpoint = `/api/resource/${requestId % 10}` diff --git a/foundations/core/packages/measurements/src/context.ts b/foundations/core/packages/measurements/src/context.ts index 4f364a3956..6a2da671a8 100644 --- a/foundations/core/packages/measurements/src/context.ts +++ b/foundations/core/packages/measurements/src/context.ts @@ -19,7 +19,7 @@ const errorPrinter = ({ message, stack, ...rest }: Error): object => ({ stack, ...rest }) -function replacer(value: any): any { +function replacer (value: any): any { return value instanceof Error ? errorPrinter(value) : value } @@ -75,11 +75,11 @@ export class MeasureMetricsContext implements MeasureContext { st = platformNow() contextData: object = {} - private done(value?: number, override?: boolean): void { + private done (value?: number, override?: boolean): void { updateMeasure(this.metrics, this.st, this.params, this.fullParams, (spend) => {}, value, override) } - constructor( + constructor ( name: string, params: ParamsType, fullParams: FullParamsType | (() => FullParamsType) = {}, @@ -106,7 +106,7 @@ export class MeasureMetricsContext implements MeasureContext { this.logger = logger ?? (this.logParams != null ? consoleLogger(this.logParams ?? {}) : noParamsLogger) } - measure(name: string, value: number, override?: boolean): void { + measure (name: string, value: number, override?: boolean): void { const c = new MeasureMetricsContext( '#' + name, {}, @@ -121,7 +121,7 @@ export class MeasureMetricsContext implements MeasureContext { c.done(value, override) } - newChild( + newChild ( name: string, params: ParamsType, opt?: { @@ -147,7 +147,7 @@ export class MeasureMetricsContext implements MeasureContext { return result } - with( + with ( name: string, params: ParamsType, op: (ctx: MeasureContext) => T | Promise, @@ -182,11 +182,11 @@ export class MeasureMetricsContext implements MeasureContext { } } - extractMeta(): Record { + extractMeta (): Record { return {} } - withSync( + withSync ( name: string, params: ParamsType, op: (ctx: MeasureContext) => T, @@ -200,28 +200,28 @@ export class MeasureMetricsContext implements MeasureContext { } } - error(message: string, args?: Record): void { + error (message: string, args?: Record): void { this.logger.error(message, { ...this.params, ...args, ...(this.logParams ?? {}) }) } - info(message: string, args?: Record): void { + info (message: string, args?: Record): void { this.logger.info(message, { ...this.params, ...args, ...(this.logParams ?? {}) }) } - warn(message: string, args?: Record): void { + warn (message: string, args?: Record): void { this.logger.warn(message, { ...this.params, ...args, ...(this.logParams ?? {}) }) } - debug(message: string, args?: Record): void { + debug (message: string, args?: Record): void { if (this.logLevel !== 'debug') return this.logger.debug(message, { ...this.params, ...args, ...(this.logParams ?? {}) }) } - end(): void { + end (): void { this.done() } - getParams(): ParamsType { + getParams (): ParamsType { return this.params } } @@ -234,14 +234,14 @@ export class NoMetricsContext implements MeasureContext { private readonly logLevel: MeasureLogLevel - constructor(logger?: MeasureLogger, logLevel: MeasureLogLevel = 'info') { + constructor (logger?: MeasureLogger, logLevel: MeasureLogLevel = 'info') { this.logger = logger ?? consoleLogger({}) this.logLevel = logLevel } - measure(name: string, value: number, override?: boolean): void {} + measure (name: string, value: number, override?: boolean): void {} - newChild( + newChild ( name: string, params: ParamsType, opt?: { @@ -258,7 +258,7 @@ export class NoMetricsContext implements MeasureContext { return result } - with( + with ( name: string, params: ParamsType, op: (ctx: MeasureContext) => T | Promise, @@ -268,11 +268,11 @@ export class NoMetricsContext implements MeasureContext { return r instanceof Promise ? r : Promise.resolve(r) } - extractMeta(): Record { + extractMeta (): Record { return {} } - withSync( + withSync ( name: string, params: ParamsType, op: (ctx: MeasureContext) => T, @@ -282,7 +282,7 @@ export class NoMetricsContext implements MeasureContext { return op(c) } - withLog( + withLog ( name: string, params: ParamsType, op: (ctx: MeasureContext) => T | Promise, @@ -292,26 +292,26 @@ export class NoMetricsContext implements MeasureContext { return r instanceof Promise ? r : Promise.resolve(r) } - error(message: string, args?: Record): void { + error (message: string, args?: Record): void { this.logger.error(message, { ...args }) } - info(message: string, args?: Record): void { + info (message: string, args?: Record): void { this.logger.info(message, { ...args }) } - warn(message: string, args?: Record): void { + warn (message: string, args?: Record): void { this.logger.warn(message, { ...args }) } - debug(message: string, args?: Record): void { + debug (message: string, args?: Record): void { if (this.logLevel !== 'debug') return this.logger.debug(message, { ...args }) } - end(): void {} + end (): void {} - getParams(): ParamsType { + getParams (): ParamsType { return {} } } @@ -319,7 +319,7 @@ export class NoMetricsContext implements MeasureContext { /** * Allow to use decorator for context enabled functions */ -export function withContext(name: string, params: ParamsType = {}, options?: WithOptions): any { +export function withContext (name: string, params: ParamsType = {}, options?: WithOptions): any { return (target: any, propertyKey: string, descriptor: PropertyDescriptor): PropertyDescriptor => { const originalMethod = descriptor.value descriptor.value = function (...args: any[]): Promise { @@ -338,13 +338,13 @@ export function withContext(name: string, params: ParamsType = {}, options?: Wit let operationProfiling = false -export function setOperationLogProfiling(value: boolean): void { +export function setOperationLogProfiling (value: boolean): void { operationProfiling = value } let globalId: number = 0 -export function registerOperationLog(ctx: MeasureContext): { opLogMetrics?: Metrics; op?: OperationLog } { +export function registerOperationLog (ctx: MeasureContext): { opLogMetrics?: Metrics, op?: OperationLog } { if (!operationProfiling) { return {} } @@ -364,7 +364,7 @@ export function registerOperationLog(ctx: MeasureContext): { opLogMetrics?: Metr return { opLogMetrics, op } } -export function updateOperationLog(opLogMetrics: Metrics | undefined, op: OperationLog | undefined): void { +export function updateOperationLog (opLogMetrics: Metrics | undefined, op: OperationLog | undefined): void { if (!operationProfiling) { return } @@ -386,7 +386,7 @@ export function updateOperationLog(opLogMetrics: Metrics | undefined, op: Operat } } -export function addOperation( +export function addOperation ( ctx: MeasureContext, name: string, params: ParamsType, diff --git a/foundations/core/packages/measurements/src/metrics.ts b/foundations/core/packages/measurements/src/metrics.ts index 0d25f68ebb..695dc0372a 100644 --- a/foundations/core/packages/measurements/src/metrics.ts +++ b/foundations/core/packages/measurements/src/metrics.ts @@ -12,7 +12,7 @@ export const globals: Metrics = newMetrics() * @public * @returns */ -export function newMetrics(): Metrics { +export function newMetrics (): Metrics { return { operations: 0, value: 0, @@ -22,7 +22,7 @@ export function newMetrics(): Metrics { } } -function getUpdatedTopResult( +function getUpdatedTopResult ( current: Metrics['topResult'], time: number, params: FullParamsType @@ -59,7 +59,7 @@ function getUpdatedTopResult( * Measure with tree expansion. Operation counter will be added only to leaf's. * @public */ -export function measure( +export function measure ( metrics: Metrics, params: ParamsType, fullParams: FullParamsType | (() => FullParamsType) = {}, @@ -70,7 +70,7 @@ export function measure( updateMeasure(metrics, st, params, fullParams, endOp) } } -export function updateMeasure( +export function updateMeasure ( metrics: Metrics, st: number, params: ParamsType, @@ -145,7 +145,7 @@ export function updateMeasure( /** * @public */ -export function childMetrics(root: Metrics, path: string[]): Metrics { +export function childMetrics (root: Metrics, path: string[]): Metrics { const segments = path let oop = root for (const p of segments) { @@ -159,7 +159,7 @@ export function childMetrics(root: Metrics, path: string[]): Metrics { /** * @public */ -export function metricsAggregate(m: Metrics, limit: number = -1, roundMath: boolean = false): Metrics { +export function metricsAggregate (m: Metrics, limit: number = -1, roundMath: boolean = false): Metrics { let ms = aggregateMetrics(m.measurements, limit) // Use child overage, if there is no top level value specified. @@ -200,7 +200,7 @@ export function metricsAggregate(m: Metrics, limit: number = -1, roundMath: bool } } -function aggregateMetrics(m: Record, limit: number = -1): Record { +function aggregateMetrics (m: Record, limit: number = -1): Record { const result: Record = {} for (const [k, v] of Object.entries(m).sort((a, b) => b[1].value - a[1].value)) { result[k] = metricsAggregate(v, limit) @@ -208,14 +208,14 @@ function aggregateMetrics(m: Record, limit: number = -1): Recor return result } -function toLen(val: string, sep: string, len: number): string { +function toLen (val: string, sep: string, len: number): string { while (val.length < len) { val += sep } return val } -function printMetricsChildren(params: Record, offset: number, length: number): string { +function printMetricsChildren (params: Record, offset: number, length: number): string { let r = '' if (Object.keys(params).length > 0) { r += '\n' + toLen('', ' ', offset) @@ -227,7 +227,7 @@ function printMetricsChildren(params: Record, offset: number, l return r } -function printMetricsParams( +function printMetricsParams ( params: Record>, offset: number, length: number @@ -250,7 +250,7 @@ function printMetricsParams( return r } -function toString(name: string, m: Metrics, offset: number, length: number): string { +function toString (name: string, m: Metrics, offset: number, length: number): string { let r = `${toLen('', ' ', offset)}${toLen(name, '-', length - offset)}: avg ${ Math.round((m.value / (m.operations > 0 ? m.operations : 1)) * 100) / 100 } total: ${Math.round(m.value * 100) / 100} ops: ${m.operations}`.trim() @@ -259,7 +259,7 @@ function toString(name: string, m: Metrics, offset: number, length: number): str return r } -function toJson(m: Metrics): any { +function toJson (m: Metrics): any { const obj: any = { $total: m.value, $ops: m.operations @@ -284,20 +284,20 @@ function toJson(m: Metrics): any { /** * @public */ -export function metricsToString(metrics: Metrics, name = 'System', length: number): string { +export function metricsToString (metrics: Metrics, name = 'System', length: number): string { return toString(name, metricsAggregate(metrics, 50, true), 0, length) } -export function metricsToJson(metrics: Metrics): any { +export function metricsToJson (metrics: Metrics): any { return toJson(metricsAggregate(metrics)) } -function printMetricsParamsRows( +function printMetricsParamsRows ( params: Record>, offset: number ): (string | number)[][] { const r: (string | number)[][] = [] - function joinP(key: string, data: Record): (string | number)[][] { + function joinP (key: string, data: Record): (string | number)[][] { return Object.entries(data).map(([k, vv]) => [ offset, `${key}=${k}`, @@ -312,7 +312,7 @@ function printMetricsParamsRows( return r } -function printMetricsChildrenRows(params: Record, offset: number): (string | number)[][] { +function printMetricsChildrenRows (params: Record, offset: number): (string | number)[][] { const r: (string | number)[][] = [] if (Object.keys(params).length > 0) { Object.entries(params).forEach(([k, vv]) => r.push(...toStringRows(k, vv, offset))) @@ -320,7 +320,7 @@ function printMetricsChildrenRows(params: Record, offset: numbe return r } -function toStringRows(name: string, m: Metrics, offset: number): (number | string)[][] { +function toStringRows (name: string, m: Metrics, offset: number): (number | string)[][] { const r: (number | string)[][] = [ [ offset, @@ -338,6 +338,6 @@ function toStringRows(name: string, m: Metrics, offset: number): (number | strin /** * @public */ -export function metricsToRows(metrics: Metrics, name = 'System'): (number | string)[][] { +export function metricsToRows (metrics: Metrics, name = 'System'): (number | string)[][] { return toStringRows(name, metricsAggregate(metrics, 50, true), 0) } diff --git a/foundations/core/packages/model/src/dsl.ts b/foundations/core/packages/model/src/dsl.ts index 9e726f2264..2e66b52437 100644 --- a/foundations/core/packages/model/src/dsl.ts +++ b/foundations/core/packages/model/src/dsl.ts @@ -61,7 +61,7 @@ import toposort from 'toposort' const targets = new Map>() -function setIndex(target: any, property: string, index: IndexKind): void { +function setIndex (target: any, property: string, index: IndexKind): void { let indexes = targets.get(target) if (indexes === undefined) { indexes = new Map() @@ -70,7 +70,7 @@ function setIndex(target: any, property: string, index: IndexKind): void { indexes.set(property, index) } -function getIndex(target: any, property: string): IndexKind | undefined { +function getIndex (target: any, property: string): IndexKind | undefined { return targets.get(target)?.get(property) } @@ -91,7 +91,7 @@ interface ClassTxes { const transactions = new Map() -function getTxes(target: any): ClassTxes { +function getTxes (target: any): ClassTxes { const txes = transactions.get(target) if (txes === undefined) { const txes = { txes: [] } as unknown as ClassTxes @@ -102,7 +102,7 @@ function getTxes(target: any): ClassTxes { } const attributes = new Map>>() -function setAttr(target: any, prop: string, key: string, value: any): void { +function setAttr (target: any, prop: string, key: string, value: any): void { const props = attributes.get(target) ?? new Map>() const attrs = props.get(prop) ?? {} attrs[key] = value @@ -111,7 +111,7 @@ function setAttr(target: any, prop: string, key: string, value: any): void { attributes.set(target, props) } -function clearAttrs(target: any, prop: string): void { +function clearAttrs (target: any, prop: string): void { const props = attributes.get(target) props?.delete(prop) @@ -120,14 +120,14 @@ function clearAttrs(target: any, prop: string): void { } } -function getAttrs(target: any, prop: string): Record { +function getAttrs (target: any, prop: string): Record { return attributes.get(target)?.get(prop) ?? {} } /** * @public */ -export function Prop(type: Type, label: IntlString, extra: Partial> = {}) { +export function Prop (type: Type, label: IntlString, extra: Partial> = {}) { return function (target: any, propertyKey: string): void { const txes = getTxes(target) const tx: TxCreateDoc> = { @@ -159,7 +159,7 @@ export function Prop(type: Type, label: IntlString, extra: Partial /** * @public */ -export function Hidden() { +export function Hidden () { return function (target: any, propertyKey: string): void { setAttr(target, propertyKey, 'hidden', true) } @@ -168,7 +168,7 @@ export function Hidden() { /** * @public */ -export function ReadOnly() { +export function ReadOnly () { return function (target: any, propertyKey: string): void { setAttr(target, propertyKey, 'readonly', true) } @@ -177,7 +177,7 @@ export function ReadOnly() { /** * @public */ -export function Index(kind: IndexKind) { +export function Index (kind: IndexKind) { return function (target: any, propertyKey: string): void { setIndex(target, propertyKey, kind) } @@ -186,7 +186,7 @@ export function Index(kind: IndexKind) { /** * @public */ -export function Model( +export function Model ( _class: Ref>, _extends: Ref>, domain?: Domain, @@ -205,7 +205,7 @@ export function Model( /** * @public */ -export function Implements(_interface: Ref>, _extends?: Ref>[]) { +export function Implements (_interface: Ref>, _extends?: Ref>[]) { return function classDecorator T>(constructor: C): void { const txes = getTxes(constructor.prototype) txes._id = _interface @@ -217,7 +217,7 @@ export function Implements(_interface: Ref>, _extend /** * @public */ -export function Mixin(_class: Ref>, _extends: Ref>) { +export function Mixin (_class: Ref>, _extends: Ref>) { return function classDecorator T>(constructor: C): void { const txes = getTxes(constructor.prototype) txes._id = _class @@ -229,7 +229,7 @@ export function Mixin(_class: Ref>, _extends: Ref( +export function UX ( label: IntlString, icon?: Asset, shortLabel?: string, @@ -248,7 +248,7 @@ export function UX( } } -function generateIds(objectId: Ref, txes: TxCreateDoc>[]): Tx[] { +function generateIds (objectId: Ref, txes: TxCreateDoc>[]): Tx[] { return txes.map((tx) => { const withId = { ...tx, @@ -262,7 +262,7 @@ function generateIds(objectId: Ref, txes: TxCreateDoc void - createModel(...classes: Array Obj>): void { + createModel (...classes: Array Obj>): void { const txes = classes.map((ctor) => getTxes(ctor.prototype)) const byId = new Map() @@ -336,7 +336,7 @@ export class Builder { } } - private generateTransactions(txes: ClassTxes[], byId: Map): Tx[] { + private generateTransactions (txes: ClassTxes[], byId: Map): Tx[] { const graph = this.createGraph(txes) const sorted = toposort(graph) .reverse() @@ -344,12 +344,12 @@ export class Builder { return sorted.flatMap((tx) => (tx != null ? _generateTx(tx) : [])) } - private createGraph(txes: ClassTxes[]): [string, string | undefined][] { + private createGraph (txes: ClassTxes[]): [string, string | undefined][] { return txes.map((tx) => [tx._id, tx.extends] as [string, string | undefined]) } // do we need this? - createDoc( + createDoc ( _class: Ref>, space: Ref, attributes: Data, @@ -366,7 +366,7 @@ export class Builder { return TxProcessor.createDoc2Doc(tx) } - mixin( + mixin ( objectId: Ref, objectClass: Ref>, mixin: Ref>, @@ -378,7 +378,7 @@ export class Builder { this.hierarchy.tx(tx) } - getTxes(): Tx[] { + getTxes (): Tx[] { return [...this.txes] } } @@ -388,112 +388,112 @@ export class Builder { /** * @public */ -export function TypeString(): Type { +export function TypeString (): Type { return { _class: core.class.TypeString, label: core.string.String, icon: core.icon.TypeString } } /** * @public */ -export function TypeRelation(): Type { +export function TypeRelation (): Type { return { _class: core.class.TypeRelation, label: core.string.Relation, icon: core.icon.TypeRef } } /** * @public */ -export function TypeBlob(): Type { +export function TypeBlob (): Type { return { _class: core.class.TypeBlob, label: core.string.String, icon: core.icon.TypeBlob } } /** * @public */ -export function TypeHyperlink(): Type { +export function TypeHyperlink (): Type { return { _class: core.class.TypeHyperlink, label: core.string.Hyperlink, icon: core.icon.TypeHyperlink } } /** * @public */ -export function TypeNumber(min?: number, max?: number, digits?: number): TypeNumberType { +export function TypeNumber (min?: number, max?: number, digits?: number): TypeNumberType { return { _class: core.class.TypeNumber, label: core.string.Number, icon: core.icon.TypeNumber, min, max, digits } } /** * @public */ -export function TypeMarkup(): Type { +export function TypeMarkup (): Type { return { _class: core.class.TypeMarkup, label: core.string.Markup, icon: core.icon.TypeMarkup } } /** * @public */ -export function TypeRecord(): Type> { +export function TypeRecord (): Type> { return { _class: core.class.TypeRecord, label: core.string.Record, icon: core.icon.TypeRecord } } /** * @public */ -export function TypeIntlString(): Type { +export function TypeIntlString (): Type { return { _class: core.class.TypeIntlString, label: core.string.IntlString, icon: core.icon.TypeRef } } /** * @public */ -export function TypeBoolean(): Type { +export function TypeBoolean (): Type { return { _class: core.class.TypeBoolean, label: core.string.Boolean, icon: core.icon.TypeBoolean } } /** * @public */ -export function TypeTimestamp(): Type { +export function TypeTimestamp (): Type { return { _class: core.class.TypeTimestamp, label: core.string.Timestamp, icon: core.icon.TypeDate } } /** * @public */ -export function TypeDate(mode: DateRangeMode = DateRangeMode.DATE, withShift: boolean = true): TypeDateType { +export function TypeDate (mode: DateRangeMode = DateRangeMode.DATE, withShift: boolean = true): TypeDateType { return { _class: core.class.TypeDate, label: core.string.Date, icon: core.icon.TypeDate, mode, withShift } } /** * @public */ -export function TypeRef(_class: Ref>): RefTo { +export function TypeRef (_class: Ref>): RefTo { return { _class: core.class.RefTo, label: core.string.Ref, icon: core.icon.TypeRef, to: _class } } /** * @public */ -export function TypeIdentifier(of: Ref): TypeIdentifierType { +export function TypeIdentifier (of: Ref): TypeIdentifierType { return { _class: core.class.TypeIdentifier, label: core.string.Id, icon: core.icon.TypeRef, of } } /** * @public */ -export function TypeEnum(of: Ref): EnumOf { +export function TypeEnum (of: Ref): EnumOf { return { _class: core.class.EnumOf, label: core.string.Enum, icon: core.icon.TypeEnumOf, of } } /** * @public */ -export function TypeFileSize(): Type { +export function TypeFileSize (): Type { return { _class: core.class.TypeFileSize, label: core.string.Size, icon: core.icon.TypeNumber } } /** * @public */ -export function TypeAny( +export function TypeAny ( presenter: AnyComponent, label: IntlString, editor?: AnyComponent @@ -504,7 +504,7 @@ export function TypeAny( /** * @public */ -export function Collection(clazz: Ref>, itemLabel?: IntlString): TypeCollection { +export function Collection (clazz: Ref>, itemLabel?: IntlString): TypeCollection { return { _class: core.class.Collection, label: core.string.Collection, @@ -517,28 +517,28 @@ export function Collection(clazz: Ref>, itemLabe /** * @public */ -export function ArrOf>(type: Type): TypeArrOf { +export function ArrOf> (type: Type): TypeArrOf { return { _class: core.class.ArrOf, label: core.string.Array, of: type, icon: core.icon.TypeArray } } /** * @public */ -export function TypeCollaborativeDoc(): Type { +export function TypeCollaborativeDoc (): Type { return { _class: core.class.TypeCollaborativeDoc, label: core.string.MarkupBlobRef, icon: core.icon.TypeMarkup } } /** * @public */ -export function TypeRank(pos: 'start' | 'end' = 'end'): TypeRankType { +export function TypeRank (pos: 'start' | 'end' = 'end'): TypeRankType { return { _class: core.class.TypeRank, label: core.string.Rank, icon: core.icon.TypeRank, pos } } -export function TypePersonId(): Type { +export function TypePersonId (): Type { return { _class: core.class.TypePersonId, label: core.string.PersonId } } -export function TypeAccountUuid(): Type { +export function TypeAccountUuid (): Type { return { _class: core.class.TypeAccountUuid, label: core.string.AccountId } } diff --git a/foundations/core/packages/model/src/migration.ts b/foundations/core/packages/model/src/migration.ts index 2d7d8e9ac1..9c19a97a60 100644 --- a/foundations/core/packages/model/src/migration.ts +++ b/foundations/core/packages/model/src/migration.ts @@ -94,7 +94,7 @@ export interface MigrationClient { bulk: ( domain: Domain, - operations: { filter: MigrationDocumentQuery; update: MigrateUpdate }[] + operations: { filter: MigrationDocumentQuery, update: MigrateUpdate }[] ) => Promise // Move documents per domain @@ -169,7 +169,7 @@ export interface UpgradeOperations { /** * @public */ -export async function tryMigrate( +export async function tryMigrate ( mode: MigrateMode, client: MigrationClient, plugin: string, @@ -210,7 +210,7 @@ export async function tryMigrate( /** * @public */ -export async function tryUpgrade( +export async function tryUpgrade ( mode: MigrateMode, state: Map>, client: () => Promise, @@ -249,7 +249,7 @@ type RequiredData = Omit, keyof DefaultSpaceData> & /** * @public */ -export async function createDefaultSpace( +export async function createDefaultSpace ( client: MigrationUpgradeClient, _id: Ref, props: RequiredData, @@ -280,7 +280,7 @@ export async function createDefaultSpace( /** * @public */ -export async function migrateSpace( +export async function migrateSpace ( client: MigrationClient, from: Ref, to: Ref, @@ -292,7 +292,7 @@ export async function migrateSpace( await client.update(DOMAIN_TX, { objectSpace: from }, { objectSpace: to }) } -export async function migrateSpaceRanks(client: MigrationClient, domain: Domain, space: Space): Promise { +export async function migrateSpaceRanks (client: MigrationClient, domain: Domain, space: Space): Promise { type WithRank = Doc & { rank: Rank } const iterator = await client.traverse( @@ -310,7 +310,7 @@ export async function migrateSpaceRanks(client: MigrationClient, domain: Domain, break } - const updates: { filter: MigrationDocumentQuery>; update: MigrateUpdate> }[] = [] + const updates: { filter: MigrationDocumentQuery>, update: MigrateUpdate> }[] = [] for (const doc of docs) { rank = makeRank(rank, undefined) updates.push({ filter: { _id: doc._id }, update: { rank } }) diff --git a/foundations/core/packages/model/src/utils.ts b/foundations/core/packages/model/src/utils.ts index 45cbe70c60..e333ebbde3 100644 --- a/foundations/core/packages/model/src/utils.ts +++ b/foundations/core/packages/model/src/utils.ts @@ -10,11 +10,11 @@ import { } from '@hcengineering/core' import { deepEqual } from 'fast-equals' -function toUndef(value: any): any { +function toUndef (value: any): any { return value === null ? undefined : value } -function diffAttributes(doc: Data, newDoc: Data): DocumentUpdate { +function diffAttributes (doc: Data, newDoc: Data): DocumentUpdate { const result: DocumentUpdate = {} const allDocuments = new Map(Object.entries(doc)) const newDocuments = new Map(Object.entries(newDoc)) @@ -44,7 +44,7 @@ function diffAttributes(doc: Data, newDoc: Data): DocumentUpdate * Create or update document if modified only by system account. * @public */ -export async function createOrUpdate( +export async function createOrUpdate ( client: TxOperations, _class: Ref>, space: Ref, @@ -79,7 +79,7 @@ const errorPrinter = ({ message, stack, ...rest }: Error): object => ({ stack, ...rest }) -function replacer(value: any): any { +function replacer (value: any): any { return value instanceof Error ? errorPrinter(value) : value } @@ -87,10 +87,10 @@ function replacer(value: any): any { * @public */ export const consoleModelLogger: ModelLogger = { - log(msg: string, data: any): void { + log (msg: string, data: any): void { console.log(msg, data) }, - error(msg: string, data: any): void { + error (msg: string, data: any): void { console.error(msg, replacer(data)) } } diff --git a/foundations/core/packages/platform/src/__tests__/i18n.test.ts b/foundations/core/packages/platform/src/__tests__/i18n.test.ts index 05840a8d90..9b2b04d21d 100644 --- a/foundations/core/packages/platform/src/__tests__/i18n.test.ts +++ b/foundations/core/packages/platform/src/__tests__/i18n.test.ts @@ -21,7 +21,7 @@ import { Severity, Status } from '../status' import { addStringsLoader, loadPluginStrings, translate, translateCB } from '../i18n' import { addEventListener, PlatformEvent, removeEventListener } from '../event' -function translateCBAsync( +function translateCBAsync ( message: IntlString, params: Record, language: string | undefined diff --git a/foundations/core/packages/platform/src/event.ts b/foundations/core/packages/platform/src/event.ts index ff6231d295..138dbe6087 100644 --- a/foundations/core/packages/platform/src/event.ts +++ b/foundations/core/packages/platform/src/event.ts @@ -33,7 +33,7 @@ const eventListeners = new Map() * @param event - * @param listener - */ -export function addEventListener(event: string, listener: EventListener): void { +export function addEventListener (event: string, listener: EventListener): void { const listeners = eventListeners.get(event) if (listeners !== undefined) { listeners.push(listener) @@ -47,7 +47,7 @@ export function addEventListener(event: string, listener: EventListener): void { * @param event - * @param listener - */ -export function removeEventListener(event: string, listener: EventListener): void { +export function removeEventListener (event: string, listener: EventListener): void { const listeners = eventListeners.get(event) if (listeners !== undefined) { listeners.splice(listeners.indexOf(listener), 1) @@ -57,7 +57,7 @@ export function removeEventListener(event: string, listener: EventListener): voi /** * @public */ -export async function broadcastEvent(event: string, data: any): Promise { +export async function broadcastEvent (event: string, data: any): Promise { const listeners = eventListeners.get(event) if (listeners !== undefined) { const promises = listeners.map(async (listener) => { @@ -72,7 +72,7 @@ export async function broadcastEvent(event: string, data: any): Promise { * @param status - * @returns */ -export async function setPlatformStatus(status: Status): Promise { +export async function setPlatformStatus (status: Status): Promise { if (status.severity === Severity.ERROR) { console.trace('Platform Error Status', status) } @@ -85,7 +85,7 @@ export async function setPlatformStatus(status: Status): Promise { * @param promise - * @returns */ -export async function monitor(status: Status, promise: Promise): Promise { +export async function monitor (status: Status, promise: Promise): Promise { void setPlatformStatus(status) // eslint-disable-line no-void try { const result = await promise diff --git a/foundations/core/packages/platform/src/i18n.ts b/foundations/core/packages/platform/src/i18n.ts index 9db5214f45..e4658b087b 100644 --- a/foundations/core/packages/platform/src/i18n.ts +++ b/foundations/core/packages/platform/src/i18n.ts @@ -39,7 +39,7 @@ const englishTranslationsForMissing = new Map() * @param plugin - * @param loader - */ -export function addStringsLoader(plugin: Plugin, loader: Loader): void { +export function addStringsLoader (plugin: Plugin, loader: Loader): void { loaders.set(plugin, loader) } @@ -47,7 +47,7 @@ export function addStringsLoader(plugin: Plugin, loader: Loader): void { * Perform load of all internationalization sources for all plugins available. * @public */ -export async function loadPluginStrings(locale: string, force: boolean = false): Promise { +export async function loadPluginStrings (locale: string, force: boolean = false): Promise { if (force) { cache.clear() } @@ -64,14 +64,14 @@ export async function loadPluginStrings(locale: string, force: boolean = false): } } -async function setStatus(status: Status, skipError?: boolean): Promise { +async function setStatus (status: Status, skipError?: boolean): Promise { if (skipError !== true) { await setPlatformStatus(status) } } /** Notify platform and return a Status for load/resolve paths that do not use the per-message format cache. */ -async function pipelineErrorToStatus(err: unknown, skipError?: boolean): Promise { +async function pipelineErrorToStatus (err: unknown, skipError?: boolean): Promise { const status = unknownError(err) await setStatus(status, skipError) return status @@ -80,7 +80,7 @@ async function pipelineErrorToStatus(err: unknown, skipError?: boolean): Promise /** * On compile/resolve failure: cache failure for this intl id, notify platform, return `message` as UI fallback. */ -async function handleIntlPipelineFailure( +async function handleIntlPipelineFailure ( err: unknown, message: IntlString, localeCache: Map, @@ -92,7 +92,7 @@ async function handleIntlPipelineFailure( return message } -async function loadTranslationsForComponent( +async function loadTranslationsForComponent ( plugin: Plugin, locale: string, skipError?: boolean @@ -115,7 +115,7 @@ async function loadTranslationsForComponent( } } -function getCachedTranslation(id: _IdInfo, locale: string): IntlString | Status | undefined { +function getCachedTranslation (id: _IdInfo, locale: string): IntlString | Status | undefined { const localtTanslations = translations.get(locale) if (localtTanslations === undefined) { return undefined @@ -134,7 +134,7 @@ function getCachedTranslation(id: _IdInfo, locale: string): IntlString | Status } } -async function getTranslation( +async function getTranslation ( id: _IdInfo, locale: string, skipError?: boolean @@ -180,7 +180,7 @@ async function getTranslation( * @param params - * @returns */ -export async function translate

>( +export async function translate

> ( message: IntlString

, params: P, language?: string, @@ -236,7 +236,7 @@ export async function translate

>( /** * Will do a translation in case language file already in cache, a translate is called and Promise is returned overwise */ -export function translateCB

>( +export function translateCB

> ( message: IntlString

, params: P, language: string | undefined, diff --git a/foundations/core/packages/platform/src/ident.ts b/foundations/core/packages/platform/src/ident.ts index 06199b8a1d..52caa1d9ff 100644 --- a/foundations/core/packages/platform/src/ident.ts +++ b/foundations/core/packages/platform/src/ident.ts @@ -30,7 +30,7 @@ export interface _IdInfo { /** * @internal */ -export function _parseId(id: Id): _IdInfo { +export function _parseId (id: Id): _IdInfo { const path = id.split(_ID_SEPARATOR) if (path.length < 3) { throw new PlatformError(new Status(Severity.ERROR, platform.status.InvalidId, { id })) diff --git a/foundations/core/packages/platform/src/metadata.ts b/foundations/core/packages/platform/src/metadata.ts index df7ba9c788..df8774f7e8 100644 --- a/foundations/core/packages/platform/src/metadata.ts +++ b/foundations/core/packages/platform/src/metadata.ts @@ -40,7 +40,7 @@ const metadata = new Map, any>() * @param id - * @returns */ -export function getMetadata(id: Metadata): T | undefined { +export function getMetadata (id: Metadata): T | undefined { return metadata.get(id) } @@ -49,7 +49,7 @@ export function getMetadata(id: Metadata): T | undefined { * @param id - * @param value - */ -export function setMetadata(id: Metadata, value: T): void { +export function setMetadata (id: Metadata, value: T): void { metadata.set(id, value) } @@ -58,7 +58,7 @@ export function setMetadata(id: Metadata, value: T): void { * @param ids - * @param data - */ -export function loadMetadata>>(ids: X, data: ExtractType): void { +export function loadMetadata>> (ids: X, data: ExtractType): void { for (const key in ids) { const id = ids[key] const resource = data[key] diff --git a/foundations/core/packages/platform/src/platform.ts b/foundations/core/packages/platform/src/platform.ts index c34887c725..241a31dfb4 100644 --- a/foundations/core/packages/platform/src/platform.ts +++ b/foundations/core/packages/platform/src/platform.ts @@ -75,7 +75,7 @@ export const _ID_SEPARATOR = ':' */ export const _EmbeddedId = 'embedded' -function identify(result: Record, prefix: string, namespace: Record): Namespace { +function identify (result: Record, prefix: string, namespace: Record): Namespace { for (const key in namespace) { const value = namespace[key] if (typeof result[key] === 'string') { @@ -90,7 +90,7 @@ function identify(result: Record, prefix: string, namespace: Record /** * @public */ -export function getEmbeddedLabel(str: string): IntlString { +export function getEmbeddedLabel (str: string): IntlString { return (_EmbeddedId + _ID_SEPARATOR + _EmbeddedId + _ID_SEPARATOR + str) as IntlString } @@ -102,7 +102,7 @@ export function getEmbeddedLabel(str: string): IntlString { * @param namespace - * @returns */ -export function plugin(plugin: Plugin, namespace: N): N { +export function plugin (plugin: Plugin, namespace: N): N { return identify({}, plugin, namespace) as N } @@ -115,7 +115,7 @@ export function plugin(plugin: Plugin, namespace: N): N { * @param merge - * @returns */ -export function mergeIds(plugin: Plugin, ns: N, merge: M): N & M { +export function mergeIds (plugin: Plugin, ns: N, merge: M): N & M { return identify({ ...ns }, plugin, merge) as N & M } @@ -148,17 +148,17 @@ export default plugin(platformId, { ExpiredLink: '' as StatusCode, UnknownMethod: '' as StatusCode<{ method: string }>, InternalServerError: '' as StatusCode, - MaintenanceWarning: '' as StatusCode<{ time: number; message?: string }>, + MaintenanceWarning: '' as StatusCode<{ time: number, message?: string }>, MaintenanceWarningTime: '' as IntlString, AccountNotFound: '' as StatusCode<{ account?: string }>, - AccountMismatch: '' as StatusCode<{ account?: string; requiredAccount?: string }>, + AccountMismatch: '' as StatusCode<{ account?: string, requiredAccount?: string }>, AccountNotConfirmed: '' as StatusCode, - WorkspaceNotFound: '' as StatusCode<{ workspaceUuid?: string; workspaceName?: string; workspaceUrl?: string }>, + WorkspaceNotFound: '' as StatusCode<{ workspaceUuid?: string, workspaceName?: string, workspaceUrl?: string }>, WorkspaceArchived: '' as StatusCode<{ workspaceUuid: string }>, WorkspaceMigration: '' as StatusCode<{ workspaceUuid: string }>, - SocialIdNotFound: '' as StatusCode<{ value?: string; type?: string; _id?: string }>, - SocialIdNotConfirmed: '' as StatusCode<{ socialId: string; type: string }>, - SocialIdAlreadyConfirmed: '' as StatusCode<{ socialId: string; type: string }>, + SocialIdNotFound: '' as StatusCode<{ value?: string, type?: string, _id?: string }>, + SocialIdNotConfirmed: '' as StatusCode<{ socialId: string, type: string }>, + SocialIdAlreadyConfirmed: '' as StatusCode<{ socialId: string, type: string }>, IntegrationExists: '' as StatusCode, IntegrationAlreadyExists: '' as StatusCode, IntegrationNotFound: '' as StatusCode, diff --git a/foundations/core/packages/platform/src/resource.ts b/foundations/core/packages/platform/src/resource.ts index 9ede59c780..890c8306b0 100644 --- a/foundations/core/packages/platform/src/resource.ts +++ b/foundations/core/packages/platform/src/resource.ts @@ -46,7 +46,7 @@ const locations = new Map>() * @param plugin - * @param module - */ -export function addLocation(plugin: Plugin, module: PluginLoader): void { +export function addLocation (plugin: Plugin, module: PluginLoader): void { locations.set(plugin, module) } @@ -54,11 +54,11 @@ export function addLocation(plugin: Plugin, module: PluginL * @public * return list of registred plugins. */ -export function getPlugins(): Plugin[] { +export function getPlugins (): Plugin[] { return Array.from(locations.keys()) } -function getLocation(plugin: Plugin): PluginLoader { +function getLocation (plugin: Plugin): PluginLoader { const location = locations.get(plugin) if (location === undefined) { throw new PlatformError( @@ -72,7 +72,7 @@ function getLocation(plugin: Plugin): PluginLoader { const loading = new Map>() -function loadPlugin(id: Plugin): Resources | Promise { +function loadPlugin (id: Plugin): Resources | Promise { let pluginLoader = loading.get(id) if (pluginLoader === undefined) { const status = new Status(Severity.INFO, platform.status.LoadingPlugin, { @@ -109,7 +109,7 @@ const cachedResource = new Map() * @param resource - * @returns */ -export async function getResource(resource: Resource): Promise { +export async function getResource (resource: Resource): Promise { const cached = cachedResource.get(resource) if (cached !== undefined) { return cached @@ -133,7 +133,7 @@ export async function getResource(resource: Resource): Promise { * @param resource - * @returns */ -export function getResourceP(resource: Resource): T | Promise { +export function getResourceP (resource: Resource): T | Promise { return cachedResource.get(resource) ?? getResource(resource) } @@ -142,7 +142,7 @@ export function getResourceP(resource: Resource): T | Promise { * @param resource - * @returns */ -export function getResourceC(resource: Resource | undefined, callback: (resource: T | undefined) => void): void { +export function getResourceC (resource: Resource | undefined, callback: (resource: T | undefined) => void): void { if (resource === undefined) { callback(undefined) return @@ -164,7 +164,7 @@ export function getResourceC(resource: Resource | undefined, callback: (re /** * @public */ -export function getResourcePlugin(resource: Resource): Plugin { +export function getResourcePlugin (resource: Resource): Plugin { const info = _parseId(resource) return info.component } diff --git a/foundations/core/packages/platform/src/status.ts b/foundations/core/packages/platform/src/status.ts index b17136b9b6..1a6728736b 100644 --- a/foundations/core/packages/platform/src/status.ts +++ b/foundations/core/packages/platform/src/status.ts @@ -41,7 +41,7 @@ export class Status

= any> { readonly code: StatusCode

readonly params: P - constructor(severity: Severity, code: StatusCode

, params: P) { + constructor (severity: Severity, code: StatusCode

, params: P) { this.severity = severity this.code = code this.params = params @@ -55,7 +55,7 @@ export class Status

= any> { export class PlatformError

> extends Error { readonly status: Status

- constructor(status: Status

) { + constructor (status: Status

) { super(`${status.severity}: ${status.code} ${JSON.stringify(status.params)}`) this.status = status } @@ -84,11 +84,11 @@ export const UNAUTHORIZED = new Status(Severity.ERROR, platform.status.Unauthori * @param message - * @returns */ -export function unknownStatus(message: string): Status { +export function unknownStatus (message: string): Status { return new Status(Severity.ERROR, platform.status.UnknownError, { message }) } -function isStatusLike(err: unknown): err is Pick { +function isStatusLike (err: unknown): err is Pick { if (typeof err !== 'object' || err === null) return false const o = err as Record return ( @@ -96,22 +96,22 @@ function isStatusLike(err: unknown): err is Pick ({ ...obj, @@ -17,7 +17,7 @@ const langs = ['en', 'ru'] * @param loader - * @returns */ -export function makeLocalesTest(loader: Loader) { +export function makeLocalesTest (loader: Loader) { return async () => { const [target, ...rest] = await Promise.all(langs.map(loader)) const matcher = makeLocaleMatcher(target) diff --git a/foundations/core/packages/postgres-base/src/index.ts b/foundations/core/packages/postgres-base/src/index.ts index 70f8ef5f38..d7ec7f4ba5 100644 --- a/foundations/core/packages/postgres-base/src/index.ts +++ b/foundations/core/packages/postgres-base/src/index.ts @@ -30,7 +30,7 @@ export interface DBClient { raw: () => postgres.Sql } -export function createDBClient(client: postgres.Sql, release: () => void = () => {}): DBClient { +export function createDBClient (client: postgres.Sql, release: () => void = () => {}): DBClient { return { execute: (query, parameters) => client.unsafe(query, doFetchTypes ? parameters : convertArrayParams(parameters), getPrepare()), @@ -45,7 +45,7 @@ export function createDBClient(client: postgres.Sql, release: () => void = () => } } -export function convertArrayParams(params?: unknown[]): any[] | undefined { +export function convertArrayParams (params?: unknown[]): any[] | undefined { if (params === undefined) return undefined return params.map((param) => { @@ -74,7 +74,7 @@ export function convertArrayParams(params?: unknown[]): any[] | undefined { }) } -export async function retryTxn( +export async function retryTxn ( pool: postgres.Sql, operation: (client: postgres.TransactionSql) => Promise ): Promise { @@ -87,7 +87,7 @@ export async function retryTxn( /** * @public */ -export async function shutdownPostgres(): Promise { +export async function shutdownPostgres (): Promise { for (const c of connections.values()) { c.close(true) } @@ -108,7 +108,7 @@ class PostgresClientReferenceImpl { mgr: ConnectionMgr - constructor( + constructor ( readonly connectionString: string, client: postgres.Sql, readonly onclose: () => void @@ -118,15 +118,15 @@ class PostgresClientReferenceImpl { this.mgr = new ConnectionMgr(createDBClient(this.client)) } - url(): string { + url (): string { return this.connectionString } - getClient(): postgres.Sql { + getClient (): postgres.Sql { return this.client } - close(force: boolean = false): void { + close (force: boolean = false): void { this.count-- if (this.count === 0 || force) { if (force) { @@ -141,25 +141,25 @@ class PostgresClientReferenceImpl { } } - addRef(): void { + addRef (): void { this.count++ } } export class ClientRef implements PostgresClientReference { id = ++clId - constructor( + constructor ( readonly client: PostgresClientReferenceImpl, readonly mgr: ConnectionMgr ) { clientRefs.set(this.id, this) } - url(): string { + url (): string { return this.client.url() } closed = false - async getClient(): Promise { + async getClient (): Promise { if (!this.closed) { return this.client.getClient() } else { @@ -167,7 +167,7 @@ export class ClientRef implements PostgresClientReference { } } - close(): void { + close (): void { // Do not allow double close of mongo connection client if (!this.closed) { clientRefs.delete(this.id) @@ -178,11 +178,11 @@ export class ClientRef implements PostgresClientReference { } export let dbExtraOptions: Partial> = {} -export function setDBExtraOptions(options: Partial>): void { +export function setDBExtraOptions (options: Partial>): void { dbExtraOptions = options } -export function getPrepare(): { prepare: boolean } { +export function getPrepare (): { prepare: boolean } { return { prepare: dbExtraOptions.prepare ?? false } } @@ -194,7 +194,7 @@ const connections = new Map() * Initialize a connection to DB * @public */ -export function getDBClient( +export function getDBClient ( connectionString: string, database?: string, serviceName: string = 'transactor' @@ -219,8 +219,8 @@ export function getDBClient( }, debug: false, notice: false, - onnotice(notice) {}, - onparameter(key, value) {}, + onnotice (notice) {}, + onparameter (key, value) {}, ...dbExtraOptions, ...extraOptions, fetch_types: doFetchTypes @@ -242,14 +242,14 @@ class ConnectionInfo { released: boolean = false - constructor( + constructor ( readonly connectionId: string, protected readonly client: DBClient, readonly managed: boolean, readonly mgrId: string ) {} - async withReserve(action: (reservedClient: DBClient) => Promise, forced: boolean = false): Promise { + async withReserve (action: (reservedClient: DBClient) => Promise, forced: boolean = false): Promise { let reserved: DBClient | undefined // Check if we have at least one available connection and reserve one more if required. @@ -258,7 +258,7 @@ class ConnectionInfo { reserved = await this.client.reserve() } } else { - reserved = this.available.shift() as DBClient + reserved = this.available.shift() } try { @@ -284,7 +284,7 @@ class ConnectionInfo { } } - release(): void { + release (): void { for (const c of [...this.available]) { c.release() } @@ -294,9 +294,9 @@ class ConnectionInfo { export class ConnectionMgr { private readonly connections = new Map() - constructor(protected readonly client: DBClient) {} + constructor (protected readonly client: DBClient) {} - async write(id: string | undefined, mgrId: string, fn: (client: DBClient) => Promise): Promise { + async write (id: string | undefined, mgrId: string, fn: (client: DBClient) => Promise): Promise { const backoffInterval = 25 // millis const maxTries = 5 let tries = 0 @@ -345,7 +345,7 @@ export class ConnectionMgr { } } - async retry(id: string | undefined, mgrId: string, fn: (client: DBClient) => Promise): Promise { + async retry (id: string | undefined, mgrId: string, fn: (client: DBClient) => Promise): Promise { const backoffInterval = 25 // millis const maxTries = 5 let tries = 0 @@ -390,7 +390,7 @@ export class ConnectionMgr { } } - release(id: string): void { + release (id: string): void { const conn = this.connections.get(id) if (conn !== undefined) { conn.released = true @@ -399,7 +399,7 @@ export class ConnectionMgr { } } - close(mgrId?: string): void { + close (mgrId?: string): void { const cnts = this.connections for (const [k, conn] of Array.from(cnts.entries())) { if (mgrId !== undefined && conn.mgrId !== mgrId) { @@ -414,7 +414,7 @@ export class ConnectionMgr { } } - getConnection(id: string, mgrId: string, managed: boolean = true): ConnectionInfo { + getConnection (id: string, mgrId: string, managed: boolean = true): ConnectionInfo { let conn = this.connections.get(id) if (conn === undefined) { conn = new ConnectionInfo(id, this.client, managed, mgrId) @@ -425,7 +425,7 @@ export class ConnectionMgr { return conn } - private isRetryableError(err: any): boolean { + private isRetryableError (err: any): boolean { const msg: string = err?.message ?? '' return ( diff --git a/foundations/core/packages/query/src/__tests__/advanced-coverage.test.ts b/foundations/core/packages/query/src/__tests__/advanced-coverage.test.ts index 6e03333466..bcb1046eaa 100644 --- a/foundations/core/packages/query/src/__tests__/advanced-coverage.test.ts +++ b/foundations/core/packages/query/src/__tests__/advanced-coverage.test.ts @@ -7,7 +7,7 @@ import core, { createClient, Ref, SortingOrder, TxOperations } from '@hcengineer import { LiveQuery } from '..' import { connect } from './connection' -async function getClient(): Promise<{ liveQuery: LiveQuery; factory: TxOperations; close: () => Promise }> { +async function getClient (): Promise<{ liveQuery: LiveQuery, factory: TxOperations, close: () => Promise }> { const storage = await createClient(connect) const liveQuery = new LiveQuery(storage) storage.notify = (...tx) => { diff --git a/foundations/core/packages/query/src/__tests__/bug-hunting.test.ts b/foundations/core/packages/query/src/__tests__/bug-hunting.test.ts index 1c097fbdc6..72163f1559 100644 --- a/foundations/core/packages/query/src/__tests__/bug-hunting.test.ts +++ b/foundations/core/packages/query/src/__tests__/bug-hunting.test.ts @@ -8,7 +8,7 @@ import { LiveQuery } from '..' import { connect } from './connection' import { test } from './minmodel' -async function getClient(): Promise<{ liveQuery: LiveQuery; factory: TxOperations; close: () => Promise }> { +async function getClient (): Promise<{ liveQuery: LiveQuery, factory: TxOperations, close: () => Promise }> { const storage = await createClient(connect) const liveQuery = new LiveQuery(storage) storage.notify = (...tx) => { diff --git a/foundations/core/packages/query/src/__tests__/connection.ts b/foundations/core/packages/query/src/__tests__/connection.ts index a1d5b34525..a9763ba582 100644 --- a/foundations/core/packages/query/src/__tests__/connection.ts +++ b/foundations/core/packages/query/src/__tests__/connection.ts @@ -51,7 +51,7 @@ import core, { } from '@hcengineering/core' import { genMinModel } from './minmodel' -export async function connect(handler: (tx: Tx) => void): Promise< +export async function connect (handler: (tx: Tx) => void): Promise< Client & BackupClient & FulltextStorage & { @@ -77,19 +77,19 @@ export async function connect(handler: (tx: Tx) => void): Promise< private readonly model: ModelDb private readonly transactions: TxDb - constructor(hierarchy: Hierarchy, model: ModelDb, transactions: TxDb) { + constructor (hierarchy: Hierarchy, model: ModelDb, transactions: TxDb) { this.hierarchy = hierarchy this.model = model this.transactions = transactions } - isConnected(): boolean { + isConnected (): boolean { return true } - pushHandler(): void {} + pushHandler (): void {} - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -99,7 +99,7 @@ export async function connect(handler: (tx: Tx) => void): Promise< return await this.model.findAll(_class, query, options) } - async findOne( + async findOne ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -150,15 +150,15 @@ export async function connect(handler: (tx: Tx) => void): Promise< return { domain, value: null } } - getHierarchy(): Hierarchy { + getHierarchy (): Hierarchy { return this.hierarchy } - getModel(): ModelDb { + getModel (): ModelDb { return this.model } - async tx(tx: Tx): Promise { + async tx (tx: Tx): Promise { if (tx.objectSpace === core.space.Model) { this.hierarchy.tx(tx) } @@ -167,9 +167,9 @@ export async function connect(handler: (tx: Tx) => void): Promise< return {} } - async close(): Promise {} + async close (): Promise {} - async loadChunk(domain: Domain, idx?: number): Promise { + async loadChunk (domain: Domain, idx?: number): Promise { return { idx: -1, docs: [], @@ -177,40 +177,40 @@ export async function connect(handler: (tx: Tx) => void): Promise< } } - async getDomainHash(domain: Domain): Promise { + async getDomainHash (domain: Domain): Promise { return generateId() } - async loadModel(lastTxTime: Timestamp): Promise { + async loadModel (lastTxTime: Timestamp): Promise { return txes } - async closeChunk(idx: number): Promise {} + async closeChunk (idx: number): Promise {} - async loadDocs(domain: Domain, docs: Ref[]): Promise { + async loadDocs (domain: Domain, docs: Ref[]): Promise { return [] } - async upload(domain: Domain, docs: Doc[]): Promise {} + async upload (domain: Domain, docs: Doc[]): Promise {} - async clean(domain: Domain, docs: Ref[]): Promise {} + async clean (domain: Domain, docs: Ref[]): Promise {} - async searchFulltext(query: SearchQuery, options: SearchOptions): Promise { + async searchFulltext (query: SearchQuery, options: SearchOptions): Promise { return { docs: [] } } - async sendForceClose(): Promise {} + async sendForceClose (): Promise {} handler?: (event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise - set onConnect( + set onConnect ( handler: ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) | undefined ) { this.handler = handler void this.handler?.(ClientConnectEvent.Connected, '', {}) } - get onConnect(): ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) | undefined { + get onConnect (): ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) | undefined { return this.handler } } diff --git a/foundations/core/packages/query/src/__tests__/deep-lookup.test.ts b/foundations/core/packages/query/src/__tests__/deep-lookup.test.ts index f5ef02406c..c75b416cd2 100644 --- a/foundations/core/packages/query/src/__tests__/deep-lookup.test.ts +++ b/foundations/core/packages/query/src/__tests__/deep-lookup.test.ts @@ -8,7 +8,7 @@ import { LiveQuery } from '..' import { connect } from './connection' import { test } from './minmodel' -async function getClient(): Promise<{ liveQuery: LiveQuery; factory: TxOperations; close: () => Promise }> { +async function getClient (): Promise<{ liveQuery: LiveQuery, factory: TxOperations, close: () => Promise }> { const storage = await createClient(connect) const liveQuery = new LiveQuery(storage) storage.notify = (...tx) => { diff --git a/foundations/core/packages/query/src/__tests__/final-coverage.test.ts b/foundations/core/packages/query/src/__tests__/final-coverage.test.ts index 956425fe39..1d239bb045 100644 --- a/foundations/core/packages/query/src/__tests__/final-coverage.test.ts +++ b/foundations/core/packages/query/src/__tests__/final-coverage.test.ts @@ -8,7 +8,7 @@ import { LiveQuery } from '..' import { connect } from './connection' import { test } from './minmodel' -async function getClient(): Promise<{ liveQuery: LiveQuery; factory: TxOperations; close: () => Promise }> { +async function getClient (): Promise<{ liveQuery: LiveQuery, factory: TxOperations, close: () => Promise }> { const storage = await createClient(connect) const liveQuery = new LiveQuery(storage) storage.notify = (...tx) => { diff --git a/foundations/core/packages/query/src/__tests__/init-utility.test.ts b/foundations/core/packages/query/src/__tests__/init-utility.test.ts index 69ad1a7027..58bfa9f6e5 100644 --- a/foundations/core/packages/query/src/__tests__/init-utility.test.ts +++ b/foundations/core/packages/query/src/__tests__/init-utility.test.ts @@ -8,7 +8,7 @@ import { LiveQuery } from '..' import { connect } from './connection' import { test } from './minmodel' -async function getClient(): Promise<{ liveQuery: LiveQuery; factory: TxOperations; close: () => Promise }> { +async function getClient (): Promise<{ liveQuery: LiveQuery, factory: TxOperations, close: () => Promise }> { const storage = await createClient(connect) const liveQuery = new LiveQuery(storage) storage.notify = (...tx) => { diff --git a/foundations/core/packages/query/src/__tests__/livequery-coverage.test.ts b/foundations/core/packages/query/src/__tests__/livequery-coverage.test.ts index 4cb8eb5349..92fe59594b 100644 --- a/foundations/core/packages/query/src/__tests__/livequery-coverage.test.ts +++ b/foundations/core/packages/query/src/__tests__/livequery-coverage.test.ts @@ -7,7 +7,7 @@ import core, { createClient, TxOperations } from '@hcengineering/core' import { LiveQuery } from '..' import { connect } from './connection' -async function getClient(): Promise<{ liveQuery: LiveQuery; factory: TxOperations; close: () => Promise }> { +async function getClient (): Promise<{ liveQuery: LiveQuery, factory: TxOperations, close: () => Promise }> { const storage = await createClient(connect) const liveQuery = new LiveQuery(storage) storage.notify = (...tx) => { diff --git a/foundations/core/packages/query/src/__tests__/minmodel.ts b/foundations/core/packages/query/src/__tests__/minmodel.ts index 825d75eef5..6cb584cc6e 100644 --- a/foundations/core/packages/query/src/__tests__/minmodel.ts +++ b/foundations/core/packages/query/src/__tests__/minmodel.ts @@ -34,14 +34,14 @@ import { plugin } from '@hcengineering/platform' const txFactory = new TxFactory(core.account.System) -function createClass(_class: Ref>, attributes: Data>): TxCreateDoc { +function createClass (_class: Ref>, attributes: Data>): TxCreateDoc { return txFactory.createTxCreateDoc(core.class.Class, core.space.Model, attributes, _class) } /** * @public */ -export function createDoc( +export function createDoc ( _class: Ref>, attributes: Data, id?: Ref, @@ -105,7 +105,7 @@ const DOMAIN_TEST: Domain = 'test' as Domain * Generate minimal model for testing purposes. * @returns R */ -export function genMinModel(): TxCUD[] { +export function genMinModel (): TxCUD[] { const txes = [] // Fill Tx'es with basic model classes. txes.push(createClass(core.class.Obj, { label: 'Obj' as IntlString, kind: ClassifierKind.CLASS })) diff --git a/foundations/core/packages/query/src/__tests__/push-pull.test.ts b/foundations/core/packages/query/src/__tests__/push-pull.test.ts index 7fe2629990..a0ee4cb042 100644 --- a/foundations/core/packages/query/src/__tests__/push-pull.test.ts +++ b/foundations/core/packages/query/src/__tests__/push-pull.test.ts @@ -8,7 +8,7 @@ import { LiveQuery } from '..' import { connect } from './connection' import { test } from './minmodel' -async function getClient(): Promise<{ liveQuery: LiveQuery; factory: TxOperations; close: () => Promise }> { +async function getClient (): Promise<{ liveQuery: LiveQuery, factory: TxOperations, close: () => Promise }> { const storage = await createClient(connect) const liveQuery = new LiveQuery(storage) storage.notify = (...tx) => { diff --git a/foundations/core/packages/query/src/__tests__/query.test.ts b/foundations/core/packages/query/src/__tests__/query.test.ts index a0f4cee841..7fea01fed4 100644 --- a/foundations/core/packages/query/src/__tests__/query.test.ts +++ b/foundations/core/packages/query/src/__tests__/query.test.ts @@ -35,7 +35,7 @@ interface Channel extends Space { x: number } -async function getClient(): Promise<{ liveQuery: LiveQuery; factory: TxOperations }> { +async function getClient (): Promise<{ liveQuery: LiveQuery, factory: TxOperations }> { const storage = await createClient(connect) const liveQuery = new LiveQuery(storage) storage.notify = (...tx: Tx[]) => { @@ -930,7 +930,7 @@ describe('query', () => { const pp = await new Promise((resolve) => { liveQuery.query( test.class.ParticipantsHolder, - { participants: 'a' as Ref }, + { participants: 'a' }, (result) => { if (attempt > 0) { resolvePpv(result) diff --git a/foundations/core/packages/query/src/__tests__/queue-bugs.test.ts b/foundations/core/packages/query/src/__tests__/queue-bugs.test.ts index 82afcbdc08..d40cac51ba 100644 --- a/foundations/core/packages/query/src/__tests__/queue-bugs.test.ts +++ b/foundations/core/packages/query/src/__tests__/queue-bugs.test.ts @@ -17,7 +17,7 @@ import core, { createClient, SortingOrder, Space, Tx, TxOperations } from '@hcen import { LiveQuery } from '..' import { connect } from './connection' -async function getClient(): Promise<{ liveQuery: LiveQuery; factory: TxOperations }> { +async function getClient (): Promise<{ liveQuery: LiveQuery, factory: TxOperations }> { const storage = await createClient(connect) const liveQuery = new LiveQuery(storage) storage.notify = (...tx: Tx[]) => { diff --git a/foundations/core/packages/query/src/__tests__/refs-coverage.test.ts b/foundations/core/packages/query/src/__tests__/refs-coverage.test.ts index 8a9071ed2e..fbf27df928 100644 --- a/foundations/core/packages/query/src/__tests__/refs-coverage.test.ts +++ b/foundations/core/packages/query/src/__tests__/refs-coverage.test.ts @@ -7,7 +7,7 @@ import core, { createClient, TxOperations } from '@hcengineering/core' import { LiveQuery } from '..' import { connect } from './connection' -async function getClient(): Promise<{ liveQuery: LiveQuery; factory: TxOperations; close: () => Promise }> { +async function getClient (): Promise<{ liveQuery: LiveQuery, factory: TxOperations, close: () => Promise }> { const storage = await createClient(connect) const liveQuery = new LiveQuery(storage) storage.notify = (...tx) => { diff --git a/foundations/core/packages/query/src/__tests__/remaining-edge-cases.test.ts b/foundations/core/packages/query/src/__tests__/remaining-edge-cases.test.ts index c1a3d88cda..d140cc3039 100644 --- a/foundations/core/packages/query/src/__tests__/remaining-edge-cases.test.ts +++ b/foundations/core/packages/query/src/__tests__/remaining-edge-cases.test.ts @@ -8,7 +8,7 @@ import { LiveQuery } from '..' import { connect } from './connection' import { test } from './minmodel' -async function getClient(): Promise<{ liveQuery: LiveQuery; factory: TxOperations; close: () => Promise }> { +async function getClient (): Promise<{ liveQuery: LiveQuery, factory: TxOperations, close: () => Promise }> { const storage = await createClient(connect) const liveQuery = new LiveQuery(storage) storage.notify = (...tx) => { diff --git a/foundations/core/packages/query/src/__tests__/workspace-events.test.ts b/foundations/core/packages/query/src/__tests__/workspace-events.test.ts index 279dbbeaee..6a92c88844 100644 --- a/foundations/core/packages/query/src/__tests__/workspace-events.test.ts +++ b/foundations/core/packages/query/src/__tests__/workspace-events.test.ts @@ -16,7 +16,7 @@ import { LiveQuery } from '..' import { connect } from './connection' import { test } from './minmodel' -async function getClient(): Promise<{ liveQuery: LiveQuery; factory: TxOperations; close: () => Promise }> { +async function getClient (): Promise<{ liveQuery: LiveQuery, factory: TxOperations, close: () => Promise }> { const storage = await createClient(connect) const liveQuery = new LiveQuery(storage) storage.notify = (...tx) => { diff --git a/foundations/core/packages/query/src/index.ts b/foundations/core/packages/query/src/index.ts index 3448e620be..8e052eaf5a 100644 --- a/foundations/core/packages/query/src/index.ts +++ b/foundations/core/packages/query/src/index.ts @@ -89,8 +89,8 @@ export interface RefreshConnectStats { droppedDocs: number activeQueries: number activeDocs: number - droppedByClass: Map - activeByClass: Map + droppedByClass: Map + activeByClass: Map } /** @@ -107,24 +107,24 @@ export class LiveQuery implements WithTx, Client { private readonly refs = new Refs(() => this.getHierarchy()) - constructor(client: Client) { + constructor (client: Client) { this.client = client } - public isClosed(): boolean { + public isClosed (): boolean { return this.closed } - async close(): Promise { + async close (): Promise { this.closed = true await this.client.close() } - getHierarchy(): Hierarchy { + getHierarchy (): Hierarchy { return this.client.getHierarchy() } - getModel(): ModelDb { + getModel (): ModelDb { return this.client.getModel() } @@ -141,7 +141,7 @@ export class LiveQuery implements WithTx, Client { // `lastReconnectGapMs` — ms since previous successful connection. When the // gap is large, drop idle queries instead of refreshing them. // Returns stats so the caller can log/track it. - async refreshConnect(clean: boolean, lastReconnectGapMs: number = 0): Promise { + async refreshConnect (clean: boolean, lastReconnectGapMs: number = 0): Promise { const dropIdle = lastReconnectGapMs > LiveQuery.IDLE_DROP_GAP_MS const sizeOf = (q: Query): number => (q.result instanceof Promise ? 0 : q.result.length) @@ -212,7 +212,7 @@ export class LiveQuery implements WithTx, Client { return stats } - private cleanQuery(q: Query): void { + private cleanQuery (q: Query): void { q.callbacks.forEach((callback) => { callback(toFindResult([], 0)) }) @@ -220,7 +220,7 @@ export class LiveQuery implements WithTx, Client { q.total = -1 } - private match(q: Query, doc: Doc, skipLookup = false): boolean { + private match (q: Query, doc: Doc, skipLookup = false): boolean { if (this.getHierarchy().isMixin(q._class)) { if (this.getHierarchy().hasMixin(doc, q._class)) { doc = this.getHierarchy().as(doc, q._class) @@ -248,7 +248,7 @@ export class LiveQuery implements WithTx, Client { return true } - private createDumpQuery( + private createDumpQuery ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -261,7 +261,7 @@ export class LiveQuery implements WithTx, Client { return q } - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -320,11 +320,11 @@ export class LiveQuery implements WithTx, Client { return await this.client.domainRequest(domain, params, options) } - searchFulltext(query: SearchQuery, options: SearchOptions): Promise { + searchFulltext (query: SearchQuery, options: SearchOptions): Promise { return this.client.searchFulltext(query, options) } - async findOne( + async findOne ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -362,20 +362,20 @@ export class LiveQuery implements WithTx, Client { return q.result.getClone>().shift() } - private optionsCompare(opt1?: FindOptions, opt2?: FindOptions): boolean { + private optionsCompare (opt1?: FindOptions, opt2?: FindOptions): boolean { const { ctx: _1, ..._opt1 } = (opt1 ?? {}) as any const { ctx: _2, ..._opt2 } = (opt2 ?? {}) as any return deepEqual(_opt1, _opt2) } - private queryCompare(q1: DocumentQuery, q2: DocumentQuery): boolean { + private queryCompare (q1: DocumentQuery, q2: DocumentQuery): boolean { if (Object.keys(q1).length !== Object.keys(q2).length) { return false } return deepEqual(q1, q2) } - private findQuery( + private findQuery ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -389,7 +389,7 @@ export class LiveQuery implements WithTx, Client { } } - private removeFromQueue(q: Query, update = true): boolean { + private removeFromQueue (q: Query, update = true): boolean { if (q.callbacks.size === 0) { const removed = this.queue.delete(q.id) if (removed) { @@ -404,7 +404,7 @@ export class LiveQuery implements WithTx, Client { return false } - private pushCallback( + private pushCallback ( q: Query, callback: { callback: (result: Doc[]) => void @@ -422,7 +422,7 @@ export class LiveQuery implements WithTx, Client { }, 0) } - private getQuery( + private getQuery ( _class: Ref>, query: DocumentQuery, callback: { @@ -440,7 +440,7 @@ export class LiveQuery implements WithTx, Client { } } - private getQueueMap(_class: Ref>): Map { + private getQueueMap (_class: Ref>): Map { let cq = this.queries.get(_class) if (cq === undefined) { cq = new Map() @@ -449,10 +449,10 @@ export class LiveQuery implements WithTx, Client { return cq } - private createQuery( + private createQuery ( _class: Ref>, query: DocumentQuery, - callback: { callback: (result: FindResult) => void; callbackId: string } | undefined, + callback: { callback: (result: FindResult) => void, callbackId: string } | undefined, options?: FindOptions ): Query { const _query: DocumentQuery = clone(query) @@ -464,7 +464,7 @@ export class LiveQuery implements WithTx, Client { query: _query, result: result.then((docs) => new ResultArray(docs, this.getHierarchy())), total: 0, - options: options as FindOptions, + options, callbacks: new Map(), refresh: reduceCalls(() => this.doRefresh(q)), refreshId: 0 @@ -489,7 +489,7 @@ export class LiveQuery implements WithTx, Client { return q } - private remove(): void { + private remove (): void { const used = Array.from(this.queue.values()).sort((a, b) => a.lastUsed - b.lastUsed) // Remove enough queries to bring the queue back down to 80% of CACHE_SIZE // This prevents constant cleanup cycles @@ -502,7 +502,7 @@ export class LiveQuery implements WithTx, Client { } } - removeQueue(q: Query): void { + removeQueue (q: Query): void { const queries = this.getQueueMap(q._class) const removed = queries.delete(q.id) this.queue.delete(q.id) @@ -513,7 +513,7 @@ export class LiveQuery implements WithTx, Client { } } - query( + query ( _class: Ref>, query: DocumentQuery, callback: (result: FindResult) => void, @@ -547,7 +547,7 @@ export class LiveQuery implements WithTx, Client { } } - async queryFind( + async queryFind ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -579,7 +579,7 @@ export class LiveQuery implements WithTx, Client { return toFindResult(current.result.getClone(), current.total) } - private async checkSearch(q: Query, _id: Ref): Promise { + private async checkSearch (q: Query, _id: Ref): Promise { const match = await this.client.findOne(q._class, { $search: q.query.$search, _id }, q.options) if (q.result instanceof Promise) { q.result = await q.result @@ -607,7 +607,7 @@ export class LiveQuery implements WithTx, Client { return false } - private async getDocFromCache( + private async getDocFromCache ( docCache: Map, _id: Ref, _class: Ref>, @@ -636,14 +636,14 @@ export class LiveQuery implements WithTx, Client { return current } - private asMixin(doc: Doc, mixin: Ref>): Doc { + private asMixin (doc: Doc, mixin: Ref>): Doc { if (this.getHierarchy().isMixin(mixin)) { return this.getHierarchy().as(doc, mixin) } return doc } - private async getCurrentDoc( + private async getCurrentDoc ( q: Query, _id: Ref, space: Ref, @@ -676,7 +676,7 @@ export class LiveQuery implements WithTx, Client { return false } - private async __updateMixinDoc(q: Query, updatedDoc: WithLookup, tx: TxMixin): Promise { + private async __updateMixinDoc (q: Query, updatedDoc: WithLookup, tx: TxMixin): Promise { updatedDoc = TxProcessor.updateMixin4Doc(updatedDoc, tx) const ops = { @@ -687,7 +687,7 @@ export class LiveQuery implements WithTx, Client { await this.__updateLookup(q, updatedDoc, ops) } - private checkUpdatedDocMatch(q: Query, result: ResultArray, updatedDoc: WithLookup): boolean { + private checkUpdatedDocMatch (q: Query, result: ResultArray, updatedDoc: WithLookup): boolean { if (!this.match(q, updatedDoc)) { if (q.options?.limit === result.length) { void this.refresh(q) @@ -706,7 +706,7 @@ export class LiveQuery implements WithTx, Client { return false } - protected async txMixin(tx: TxMixin, docCache: Map): Promise { + protected async txMixin (tx: TxMixin, docCache: Map): Promise { const hierarchy = this.client.getHierarchy() for (const queries of this.queries.entries()) { @@ -767,7 +767,7 @@ export class LiveQuery implements WithTx, Client { return {} } - async txUpdateDoc(tx: TxUpdateDoc, docCache: Map): Promise { + async txUpdateDoc (tx: TxUpdateDoc, docCache: Map): Promise { for (const queries of this.queries.entries()) { const isTx = this.client.getHierarchy().isDerived(queries[0], core.class.Tx) for (const q of queries[1].values()) { @@ -786,7 +786,7 @@ export class LiveQuery implements WithTx, Client { return {} } - private async handleDocUpdate(q: Query, tx: TxUpdateDoc, docCache: Map): Promise { + private async handleDocUpdate (q: Query, tx: TxUpdateDoc, docCache: Map): Promise { if (q.result instanceof Promise) { q.result = await q.result } @@ -830,7 +830,7 @@ export class LiveQuery implements WithTx, Client { await this.handleDocUpdateRelation(q, tx) } - private isPossibleAssociationTx(tx: TxUpdateDoc | TxMixin, association: Association): boolean { + private isPossibleAssociationTx (tx: TxUpdateDoc | TxMixin, association: Association): boolean { const h = this.getHierarchy() const byClass = h.isDerived(tx.objectClass, association.classA) || @@ -847,7 +847,7 @@ export class LiveQuery implements WithTx, Client { return false } - private async handleDocUpdateRelation(q: Query, tx: TxUpdateDoc | TxMixin): Promise { + private async handleDocUpdateRelation (q: Query, tx: TxUpdateDoc | TxMixin): Promise { if (q.options?.associations === undefined) return for (const assoc of q.options.associations) { const association = this.getModel().findObject(assoc[0]) @@ -875,7 +875,7 @@ export class LiveQuery implements WithTx, Client { } } - private async handleDocUpdateLookup(q: Query, tx: TxUpdateDoc | TxMixin): Promise { + private async handleDocUpdateLookup (q: Query, tx: TxUpdateDoc | TxMixin): Promise { if (q.options?.lookup === undefined) return const lookup = q.options.lookup if (q.result instanceof Promise) { @@ -892,7 +892,7 @@ export class LiveQuery implements WithTx, Client { } } - private async processLookupUpdateDoc( + private async processLookupUpdateDoc ( docs: ResultArray, lookup: Lookup, tx: TxUpdateDoc | TxMixin @@ -957,12 +957,12 @@ export class LiveQuery implements WithTx, Client { return needCallback } - private async refresh(q: Query): Promise { + private async refresh (q: Query): Promise { this.queriesToUpdate.delete(q.id) await q.refresh() } - private async doRefresh(q: Query): Promise { + private async doRefresh (q: Query): Promise { const qid = ++q.refreshId const res = await this.client.findAll(q._class, q.query, q.options) if (q.refreshId === qid && (!deepEqual(res, q.result) || (res.total !== q.total && q.options?.total === true))) { @@ -972,7 +972,7 @@ export class LiveQuery implements WithTx, Client { } } - private matchQuerySync(q: Query, tx: TxUpdateDoc): boolean { + private matchQuerySync (q: Query, tx: TxUpdateDoc): boolean { const clazz = this.getHierarchy().isMixin(q._class) ? this.getHierarchy().getBaseClass(q._class) : q._class const target = (tx.operations as any)._class ?? tx.objectClass if (!this.client.getHierarchy().isDerived(target, clazz)) { @@ -982,7 +982,7 @@ export class LiveQuery implements WithTx, Client { } // Check if query is partially matched. - private async matchQuery(q: Query, tx: TxUpdateDoc, docCache: Map): Promise { + private async matchQuery (q: Query, tx: TxUpdateDoc, docCache: Map): Promise { const doc: Doc = { _id: tx.objectId, _class: tx.objectClass, @@ -1049,7 +1049,7 @@ export class LiveQuery implements WithTx, Client { return false } - private async getLookupValue( + private async getLookupValue ( _class: Ref>, doc: T, lookup: Lookup, @@ -1079,7 +1079,7 @@ export class LiveQuery implements WithTx, Client { } } - private async getReverseLookupValue( + private async getReverseLookupValue ( doc: T, lookup: ReverseLookups, result: LookupData @@ -1104,13 +1104,13 @@ export class LiveQuery implements WithTx, Client { } } - private async lookup(_class: Ref>, doc: T, lookup: Lookup): Promise { + private async lookup (_class: Ref>, doc: T, lookup: Lookup): Promise { const result: LookupData = {} await this.getLookupValue(_class, doc, lookup, result) ;(doc as WithLookup).$lookup = result } - protected async txCreateDoc(tx: TxCreateDoc, docCache: Map): Promise { + protected async txCreateDoc (tx: TxCreateDoc, docCache: Map): Promise { const docTx = TxProcessor.createDoc2Doc(tx) for (const queries of this.queries.entries()) { const doc = this.client.getHierarchy().isDerived(queries[0], core.class.Tx) ? tx : docTx @@ -1127,7 +1127,7 @@ export class LiveQuery implements WithTx, Client { return {} } - private async handleDocAdd(q: Query, doc: Doc, handleLookup = true, docCache: Map): Promise { + private async handleDocAdd (q: Query, doc: Doc, handleLookup = true, docCache: Map): Promise { let needPush = true if (q.result instanceof Promise) { q.result = await q.result @@ -1171,7 +1171,7 @@ export class LiveQuery implements WithTx, Client { } } - private async callback(q: Query, bulkUpdate = false): Promise { + private async callback (q: Query, bulkUpdate = false): Promise { if (q.result instanceof Promise) { q.result = await q.result } @@ -1190,7 +1190,7 @@ export class LiveQuery implements WithTx, Client { } } - private async handleDocAddRelation(q: Query, doc: Doc): Promise { + private async handleDocAddRelation (q: Query, doc: Doc): Promise { if (q.options?.associations === undefined) return if (doc._class !== core.class.Relation) return const relation = doc as Relation @@ -1206,7 +1206,7 @@ export class LiveQuery implements WithTx, Client { } } - async fillRelationDoc( + async fillRelationDoc ( qRes: ResultArray, docs: WithLookup[], associations: AssociationQuery[] | undefined, @@ -1278,7 +1278,7 @@ export class LiveQuery implements WithTx, Client { return result } - private async handleDocAddLookup(q: Query, doc: Doc): Promise { + private async handleDocAddLookup (q: Query, doc: Doc): Promise { if (q.options?.lookup === undefined) return const lookup = q.options.lookup if (q.result instanceof Promise) { @@ -1295,7 +1295,7 @@ export class LiveQuery implements WithTx, Client { } } - private proccesLookupAddDoc(docs: ResultArray, lookup: Lookup, doc: Doc): boolean { + private proccesLookupAddDoc (docs: ResultArray, lookup: Lookup, doc: Doc): boolean { let needCallback = false const lookupWays = this.getLookupWays(lookup, doc._class) for (const lookupWay of lookupWays) { @@ -1334,7 +1334,7 @@ export class LiveQuery implements WithTx, Client { return needCallback } - protected async txRemoveDoc(tx: TxRemoveDoc, docCache: Map): Promise { + protected async txRemoveDoc (tx: TxRemoveDoc, docCache: Map): Promise { for (const queries of this.queries.entries()) { const isTx = this.client.getHierarchy().isDerived(queries[0], core.class.Tx) for (const q of queries[1].values()) { @@ -1354,7 +1354,7 @@ export class LiveQuery implements WithTx, Client { return {} } - private async handleDocRemove(q: Query, tx: TxRemoveDoc): Promise { + private async handleDocRemove (q: Query, tx: TxRemoveDoc): Promise { const h = this.client.getHierarchy() if (q._class === tx.objectClass || h.isDerived(q._class, tx.objectClass) || h.isDerived(tx.objectClass, q._class)) { if (q.result instanceof Promise) { @@ -1379,13 +1379,13 @@ export class LiveQuery implements WithTx, Client { await this.handleDocRemoveRelation(q, tx) } - private async handleDocRemoveRelation(q: Query, tx: TxRemoveDoc): Promise { + private async handleDocRemoveRelation (q: Query, tx: TxRemoveDoc): Promise { if (q.options?.associations === undefined) return if (tx.objectClass !== core.class.Relation) return await this.refresh(q) } - private async handleDocRemoveLookup(q: Query, tx: TxRemoveDoc): Promise { + private async handleDocRemoveLookup (q: Query, tx: TxRemoveDoc): Promise { if (q.options?.lookup === undefined) return let needCallback = false const lookupWays = this.getLookupWays(q.options.lookup, tx.objectClass) @@ -1425,7 +1425,7 @@ export class LiveQuery implements WithTx, Client { } } - private getLookupWays( + private getLookupWays ( lookup: Lookup, _class: Ref>, parent: string = '' @@ -1466,7 +1466,7 @@ export class LiveQuery implements WithTx, Client { return result } - async _tx(tx: Tx, docCache: Map): Promise { + async _tx (tx: Tx, docCache: Map): Promise { switch (tx._class) { case core.class.TxCreateDoc: return await this.txCreateDoc(tx as TxCreateDoc, docCache) @@ -1482,7 +1482,7 @@ export class LiveQuery implements WithTx, Client { return {} } - async tx(...txes: Tx[]): Promise { + async tx (...txes: Tx[]): Promise { const result: TxResult[] = [] const docCache = new Map() for (const tx of txes) { @@ -1511,9 +1511,9 @@ export class LiveQuery implements WithTx, Client { return result } - private async checkUpdateEvents(evt: TxWorkspaceEvent, trigger = true): Promise { + private async checkUpdateEvents (evt: TxWorkspaceEvent, trigger = true): Promise { const h = this.client.getHierarchy() - function hasClass(q: Query, classes: Ref>[]): boolean { + function hasClass (q: Query, classes: Ref>[]): boolean { return classes.includes(q._class) || classes.some((it) => h.isDerived(q._class, it) || h.isDerived(it, q._class)) } if (evt.event === WorkspaceEvent.IndexingUpdate) { @@ -1574,7 +1574,7 @@ export class LiveQuery implements WithTx, Client { } } - private async changePrivateHandler(evt: TxWorkspaceEvent): Promise { + private async changePrivateHandler (evt: TxWorkspaceEvent): Promise { if (evt.event === WorkspaceEvent.SecurityChange) { for (const q of [...this.queue.values()]) { if (typeof q.query.space !== 'string' || q.query.space === evt.objectSpace) { @@ -1603,7 +1603,7 @@ export class LiveQuery implements WithTx, Client { } } - private async __updateLookup(q: Query, updatedDoc: WithLookup, ops: any): Promise { + private async __updateLookup (q: Query, updatedDoc: WithLookup, ops: any): Promise { for (const key in ops) { if (!key.startsWith('$')) { if (q.options !== undefined) { @@ -1679,7 +1679,7 @@ export class LiveQuery implements WithTx, Client { } } - private async __updateDoc(q: Query, updatedDoc: WithLookup, tx: TxUpdateDoc): Promise { + private async __updateDoc (q: Query, updatedDoc: WithLookup, tx: TxUpdateDoc): Promise { TxProcessor.updateDoc2Doc(updatedDoc, tx) const ops = { @@ -1690,7 +1690,7 @@ export class LiveQuery implements WithTx, Client { await this.__updateLookup(q, updatedDoc, ops) } - private async sort(q: Query, tx: TxUpdateDoc | TxMixin): Promise { + private async sort (q: Query, tx: TxUpdateDoc | TxMixin): Promise { const sort = q.options?.sort if (sort === undefined) return let needSort = sort.modifiedBy !== undefined || sort.modifiedOn !== undefined @@ -1704,7 +1704,7 @@ export class LiveQuery implements WithTx, Client { } } - private checkNeedSort(sort: SortingQuery, tx: TxUpdateDoc | TxMixin): boolean { + private checkNeedSort (sort: SortingQuery, tx: TxUpdateDoc | TxMixin): boolean { const ops = tx._class === core.class.TxMixin ? (tx as TxMixin).attributes @@ -1721,7 +1721,7 @@ export class LiveQuery implements WithTx, Client { return false } - private async updatedDocCallback(q: Query, res: ResultArray, updatedDoc: Doc | undefined): Promise { + private async updatedDocCallback (q: Query, res: ResultArray, updatedDoc: Doc | undefined): Promise { if (q.options?.limit !== undefined && res.length > q.options.limit) { if (updatedDoc === undefined) { await this.refresh(q) @@ -1740,15 +1740,15 @@ export class LiveQuery implements WithTx, Client { } } -function getNestedLookup(lookup: Ref> | [Ref>, Lookup]): Lookup | undefined { +function getNestedLookup (lookup: Ref> | [Ref>, Lookup]): Lookup | undefined { return Array.isArray(lookup) ? lookup[1] : undefined } -function getLookupClass(lookup: Ref> | [Ref>, Lookup]): Ref> { +function getLookupClass (lookup: Ref> | [Ref>, Lookup]): Ref> { return Array.isArray(lookup) ? lookup[0] : lookup } -function findAssociation( +function findAssociation ( associations: AssociationQuery[], association: Ref ): AssociationQuery | undefined { diff --git a/foundations/core/packages/query/src/refs.ts b/foundations/core/packages/query/src/refs.ts index 92080fb942..49d26c51c5 100644 --- a/foundations/core/packages/query/src/refs.ts +++ b/foundations/core/packages/query/src/refs.ts @@ -22,9 +22,9 @@ export class Refs { // A map of _class to documents. private readonly documentRefs = new Map, DocumentRef>>() - constructor(readonly getHierarchy: () => Hierarchy) {} + constructor (readonly getHierarchy: () => Hierarchy) {} - public updateDocuments(q: Query, docs: Doc[], clean: boolean = false): void { + public updateDocuments (q: Query, docs: Doc[], clean: boolean = false): void { if (q.options?.projection !== undefined) { return } @@ -55,7 +55,7 @@ export class Refs { } } - public findFromDocs( + public findFromDocs ( _class: Ref>, query: DocumentQuery, options?: FindOptions diff --git a/foundations/core/packages/query/src/results.ts b/foundations/core/packages/query/src/results.ts index aabf3d9730..a669b58ffb 100644 --- a/foundations/core/packages/query/src/results.ts +++ b/foundations/core/packages/query/src/results.ts @@ -14,34 +14,34 @@ export class ResultArray { private readonly clones = new Map, WithLookup>>() - get length(): number { + get length (): number { return this.docs.size } - constructor( + constructor ( docs: Doc[], readonly hierarchy: Hierarchy ) { this.docs = new Map(docs.map((it) => [it._id, it])) } - clean(): void { + clean (): void { this.clones.clear() } - getDocs(): WithLookup[] { + getDocs (): WithLookup[] { return Array.from(this.docs.values()) } - findDoc(_id: Ref): WithLookup | undefined { + findDoc (_id: Ref): WithLookup | undefined { return this.docs.get(_id) } - getClone(): T[] { + getClone (): T[] { return this.hierarchy.clone(this.getDocs()) } - getResult(id: string): Doc[] { + getResult (id: string): Doc[] { // Lets form a new list based on clones we have already. const info = this.clones.get(id) if (info === undefined) { @@ -53,7 +53,7 @@ export class ResultArray { } } - delete(_id: Ref): Doc | undefined { + delete (_id: Ref): Doc | undefined { const doc = this.docs.get(_id) this.docs.delete(_id) for (const [, v] of this.clones.entries()) { @@ -62,14 +62,14 @@ export class ResultArray { return doc } - updateDoc(doc: WithLookup, mainClone = true): void { + updateDoc (doc: WithLookup, mainClone = true): void { this.docs.set(doc._id, mainClone ? this.hierarchy.clone(doc) : doc) for (const [, v] of this.clones.entries()) { v.set(doc._id, this.hierarchy.clone(doc)) } } - push(doc: WithLookup): void { + push (doc: WithLookup): void { this.docs.set(doc._id, this.hierarchy.clone(doc)) for (const [, v] of this.clones.entries()) { v.set(doc._id, this.hierarchy.clone(doc)) @@ -77,7 +77,7 @@ export class ResultArray { // this.changes.add(doc._id) } - pop(): WithLookup | undefined { + pop (): WithLookup | undefined { const lastElement = Array.from(this.docs)[this.docs.size - 1] if (lastElement !== undefined) { this.docs.delete(lastElement[0]) @@ -89,7 +89,7 @@ export class ResultArray { return undefined } - sort(_class: Ref>, sort: SortingQuery, hierarchy: Hierarchy, memdb: MemDb): void { + sort (_class: Ref>, sort: SortingQuery, hierarchy: Hierarchy, memdb: MemDb): void { const docs = Array.from(this.docs.values()) resultSort(docs, sort, _class, hierarchy, memdb) this.docs = new Map(docs.map((it) => [it._id, it])) diff --git a/foundations/core/packages/rank/src/index.ts b/foundations/core/packages/rank/src/index.ts index f6894a9426..d11989a1f6 100644 --- a/foundations/core/packages/rank/src/index.ts +++ b/foundations/core/packages/rank/src/index.ts @@ -13,5 +13,5 @@ // limitations under the License. // -export * from './types' +export type * from './types' export * from './utils' diff --git a/foundations/core/packages/rank/src/utils.ts b/foundations/core/packages/rank/src/utils.ts index c2aee23bcb..4f43e8925b 100644 --- a/foundations/core/packages/rank/src/utils.ts +++ b/foundations/core/packages/rank/src/utils.ts @@ -18,7 +18,7 @@ import type { Rank } from './types' import { LexoDecimal, LexoNumeralSystem36, LexoRank } from 'lexorank' /** @public */ -export function genRanks(count: number): Rank[] { +export function genRanks (count: number): Rank[] { const sys = new LexoNumeralSystem36() const base = 36 const max = base ** 6 @@ -33,7 +33,7 @@ export function genRanks(count: number): Rank[] { } /** @public */ -export function makeRank(prev: Rank | undefined, next: Rank | undefined): Rank { +export function makeRank (prev: Rank | undefined, next: Rank | undefined): Rank { try { if (prev != null && prev.trim() === '') { prev = undefined diff --git a/foundations/core/packages/retry/src/__test__/decorator.test.ts b/foundations/core/packages/retry/src/__test__/decorator.test.ts index 8a6d81692b..557661d011 100644 --- a/foundations/core/packages/retry/src/__test__/decorator.test.ts +++ b/foundations/core/packages/retry/src/__test__/decorator.test.ts @@ -54,7 +54,7 @@ describe('Retryable decorator', () => { callCount = 0 @Retryable(mockOptions) - async testMethod(param1: string, param2: number): Promise { + async testMethod (param1: string, param2: number): Promise { this.callCount++ if (this.callCount === 1) { throw error @@ -87,7 +87,7 @@ describe('Retryable decorator', () => { callCount = 0 @Retryable() - async testMethod(): Promise { + async testMethod (): Promise { this.callCount++ if (this.callCount === 1) { throw new Error('network error') @@ -108,7 +108,7 @@ describe('Retryable decorator', () => { private counter = 0 @Retryable(mockOptions) - async incrementAndGet(): Promise { + async incrementAndGet (): Promise { if (this.counter === 0) { this.counter++ throw new Error('network error') @@ -117,7 +117,7 @@ describe('Retryable decorator', () => { return this.counter } - getCounter(): number { + getCounter (): number { return this.counter } } @@ -140,7 +140,7 @@ describe('Retryable decorator', () => { logger: mockLogger, isRetryable: retryAllErrors }) - async alwaysFailingMethod(): Promise { + async alwaysFailingMethod (): Promise { throw new Error('Persistent failure') } } @@ -163,7 +163,7 @@ describe('Retryable decorator', () => { // Create a class with an async method that fails then resolves class TestService { @Retryable(mockOptions) - async delayedMethod(): Promise { + async delayedMethod (): Promise { return await new Promise((resolve, reject) => { resolutionCount++ if (resolutionCount === 1) { @@ -195,7 +195,7 @@ describe('Retryable decorator', () => { logger: mockLogger, isRetryable: retryAllErrors }) - async unstableMethod(): Promise { + async unstableMethod (): Promise { callCount++ if (callCount < 4) { // Succeed on the 4th attempt @@ -235,7 +235,7 @@ describe('Retryable decorator', () => { }), isRetryable: retryAllErrors }) - async delayingMethod(): Promise { + async delayingMethod (): Promise { callCount++ if (callCount < 4) { throw new Error(`Attempt ${callCount} failed`) @@ -274,7 +274,7 @@ describe('Retryable decorator', () => { }), isRetryable: retryAllErrors }) - async method(): Promise { + async method (): Promise { callCount++ if (callCount < 3) { throw new Error(`Attempt ${callCount} failed`) @@ -299,7 +299,7 @@ describe('Retryable decorator', () => { }), isRetryable: retryAllErrors }) - async method(): Promise { + async method (): Promise { callCount++ if (callCount < 4) { throw new Error(`Attempt ${callCount} failed`) @@ -319,7 +319,7 @@ describe('Retryable decorator', () => { class TestService { @Retryable(mockOptions) - nonAsyncMethod(input: string): string { + nonAsyncMethod (input: string): string { callCount++ if (callCount === 1) { throw new Error('Sync error') @@ -344,7 +344,7 @@ describe('Retryable decorator', () => { // eslint-disable-next-line @typescript-eslint/no-extraneous-class class TestService { @Retryable(mockOptions) - static async staticMethod(input: string): Promise { + static async staticMethod (input: string): Promise { callCount++ if (callCount === 1) { throw new Error('Static method error') @@ -372,7 +372,7 @@ describe('Retryable decorator', () => { return err instanceof Error && err.message.includes('Please retry') } }) - async conditionalRetryMethod(): Promise { + async conditionalRetryMethod (): Promise { this.callCount++ if (this.callCount === 1) { throw new Error('Please retry this') // should be retried diff --git a/foundations/core/packages/retry/src/__test__/retry.test.ts b/foundations/core/packages/retry/src/__test__/retry.test.ts index c8df6134d0..7118520e46 100644 --- a/foundations/core/packages/retry/src/__test__/retry.test.ts +++ b/foundations/core/packages/retry/src/__test__/retry.test.ts @@ -315,7 +315,7 @@ describe('Using retry in class methods', () => { class TestService { counter = 0 - async unstableFunction(): Promise { + async unstableFunction (): Promise { this.counter++ if (this.counter < 3) { throw new Error(`network error ${this.counter}`) diff --git a/foundations/core/packages/retry/src/__test__/retryable.test.ts b/foundations/core/packages/retry/src/__test__/retryable.test.ts index 65062d49bb..8814cc8008 100644 --- a/foundations/core/packages/retry/src/__test__/retryable.test.ts +++ b/foundations/core/packages/retry/src/__test__/retryable.test.ts @@ -151,7 +151,7 @@ describe('retryNetworkErrors', () => { /** * Helper function to create an Error object with a status property */ -function createErrorWithStatus(status: number): Error { +function createErrorWithStatus (status: number): Error { const error: any = new Error(`HTTP Error ${status}`) error.status = status return error diff --git a/foundations/core/packages/retry/src/decorator.ts b/foundations/core/packages/retry/src/decorator.ts index f51fd0527a..cb6080e0ae 100644 --- a/foundations/core/packages/retry/src/decorator.ts +++ b/foundations/core/packages/retry/src/decorator.ts @@ -21,7 +21,7 @@ import { type RetryOptions, DEFAULT_RETRY_OPTIONS, withRetry } from './retry' * @param operationName - Name of the operation for logging (defaults to method name) * @returns Method decorator */ -export function Retryable(options: Partial = DEFAULT_RETRY_OPTIONS): MethodDecorator { +export function Retryable (options: Partial = DEFAULT_RETRY_OPTIONS): MethodDecorator { return function (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) { const originalMethod = descriptor.value as (...args: any[]) => any diff --git a/foundations/core/packages/retry/src/delay.ts b/foundations/core/packages/retry/src/delay.ts index 4826a598ef..5adbd17d36 100644 --- a/foundations/core/packages/retry/src/delay.ts +++ b/foundations/core/packages/retry/src/delay.ts @@ -17,21 +17,21 @@ export const DelayStrategyFactory = { /** * Create a fixed delay strategy */ - fixed(options: FixedDelayOptions): DelayStrategy { + fixed (options: FixedDelayOptions): DelayStrategy { return new FixedDelayStrategy(options) }, /** * Create an exponential backoff delay strategy */ - exponentialBackoff(options: ExponentialBackoffOptions): DelayStrategy { + exponentialBackoff (options: ExponentialBackoffOptions): DelayStrategy { return new ExponentialBackoffStrategy(options) }, /** * Create a Fibonacci delay strategy */ - fibonacci(options: FibonacciDelayOptions): DelayStrategy { + fibonacci (options: FibonacciDelayOptions): DelayStrategy { return new FibonacciDelayStrategy(options) } } @@ -54,12 +54,12 @@ export class FixedDelayStrategy implements DelayStrategy { private readonly delayMs: number private readonly jitter: number - constructor(options: FixedDelayOptions) { + constructor (options: FixedDelayOptions) { this.delayMs = options.delayMs this.jitter = options.jitter ?? 0 } - getDelay(_attempt: number): number { + getDelay (_attempt: number): number { if (this.jitter > 0) { const jitterAmount = this.delayMs * this.jitter * (Math.random() * 2 - 1) return Math.max(0, this.delayMs + jitterAmount) @@ -88,14 +88,14 @@ export class ExponentialBackoffStrategy implements DelayStrategy { private readonly backoffFactor: number private readonly jitter: number - constructor(options: ExponentialBackoffOptions) { + constructor (options: ExponentialBackoffOptions) { this.initialDelayMs = options.initialDelayMs this.maxDelayMs = options.maxDelayMs this.backoffFactor = options.backoffFactor this.jitter = options.jitter ?? 0 } - getDelay(attempt: number): number { + getDelay (attempt: number): number { const baseDelay = Math.min(this.initialDelayMs * Math.pow(this.backoffFactor, attempt - 1), this.maxDelayMs) if (this.jitter > 0) { @@ -124,7 +124,7 @@ export class FibonacciDelayStrategy implements DelayStrategy { // Cache for Fibonacci numbers to improve performance private readonly fibCache: Map - constructor(options: FibonacciDelayOptions) { + constructor (options: FibonacciDelayOptions) { this.baseDelayMs = options.baseDelayMs this.maxDelayMs = options.maxDelayMs this.jitter = options.jitter ?? 0 @@ -134,7 +134,7 @@ export class FibonacciDelayStrategy implements DelayStrategy { ]) } - private fibonacci(n: number): number { + private fibonacci (n: number): number { // Return from cache if available if (this.fibCache.has(n)) { return this.fibCache.get(n) as number @@ -150,7 +150,7 @@ export class FibonacciDelayStrategy implements DelayStrategy { return result } - getDelay(attempt: number): number { + getDelay (attempt: number): number { const fibNumber = this.fibonacci(attempt + 1) const baseDelay = Math.min(fibNumber * this.baseDelayMs, this.maxDelayMs) @@ -166,6 +166,6 @@ export class FibonacciDelayStrategy implements DelayStrategy { /** * Promise-based sleep function */ -export function sleep(ms: number): Promise { +export function sleep (ms: number): Promise { return new Promise((resolve) => setTimeout(resolve, ms)) } diff --git a/foundations/core/packages/retry/src/retry.ts b/foundations/core/packages/retry/src/retry.ts index 5df6936a09..25a9e3e15b 100644 --- a/foundations/core/packages/retry/src/retry.ts +++ b/foundations/core/packages/retry/src/retry.ts @@ -54,7 +54,7 @@ export const DEFAULT_RETRY_OPTIONS: RetryOptions = { * @returns The result of the operation * @throws The last error encountered after all retries have been exhausted */ -export async function withRetry( +export async function withRetry ( operation: () => Promise, options: Partial = {}, operationName: string = 'operation' diff --git a/foundations/core/packages/rpc/src/rpc.ts b/foundations/core/packages/rpc/src/rpc.ts index 797bbe6b1b..08dc996873 100644 --- a/foundations/core/packages/rpc/src/rpc.ts +++ b/foundations/core/packages/rpc/src/rpc.ts @@ -55,10 +55,10 @@ export interface HelloResponse extends Response { useCompression?: boolean } -function isTotalArray(value: any): value is { total?: number; lookupMap?: Record } & any[] { +function isTotalArray (value: any): value is { total?: number, lookupMap?: Record } & any[] { return Array.isArray(value) && ((value as any).total !== undefined || (value as any).lookupMap !== undefined) } -export function rpcJSONReplacer(key: string, value: any): any { +export function rpcJSONReplacer (key: string, value: any): any { if (isTotalArray(value)) { return { dataType: 'TotalArray', @@ -88,7 +88,7 @@ export function rpcJSONReplacer(key: string, value: any): any { } } -export function rpcJSONReceiver(key: string, value: any): any { +export function rpcJSONReceiver (key: string, value: any): any { if (typeof value === 'object' && value !== null) { if (value.dataType === 'TotalArray') { return Object.assign(value.value, { total: value.total, lookupMap: value.lookupMap }) @@ -140,14 +140,14 @@ export interface Response { export class RPCHandler { packr = new Packr({ structuredClone: true, bundleStrings: true, copyBuffers: false }) - protoSerialize(object: object, binary: boolean): any { + protoSerialize (object: object, binary: boolean): any { if (!binary) { return JSON.stringify(object, rpcJSONReplacer) } return new Uint8Array(this.packr.pack(object)) } - protoDeserialize(data: any, binary: boolean): any { + protoDeserialize (data: any, binary: boolean): any { if (!binary) { let _data = data if (_data instanceof ArrayBuffer) { @@ -170,7 +170,7 @@ export class RPCHandler { * @param object - * @returns */ - serialize(object: Request | Response, binary: boolean): any { + serialize (object: Request | Response, binary: boolean): any { if ((object as any).result !== undefined) { ;(object as any).result = rpcJSONReplacer('result', (object as any).result) } @@ -182,7 +182,7 @@ export class RPCHandler { * @param response - * @returns */ - readResponse(response: any, binary: boolean): Response { + readResponse (response: any, binary: boolean): Response { const data = this.protoDeserialize(response, binary) if (data.result !== undefined) { data.result = rpcJSONReceiver('result', data.result) @@ -195,7 +195,7 @@ export class RPCHandler { * @param request - * @returns */ - readRequest

(request: any, binary: boolean): Request

{ + readRequest

(request: any, binary: boolean): Request

{ const result: Request

= this.protoDeserialize(request, binary) if (typeof result.method !== 'string') { throw new PlatformError(new Status(Severity.ERROR, platform.status.BadRequest, {})) @@ -210,6 +210,6 @@ export class RPCHandler { * @param id - * @returns */ -export function fromStatus(status: Status, id?: ReqId): Response { +export function fromStatus (status: Status, id?: ReqId): Response { return { id, error: status } } diff --git a/foundations/core/packages/rpc/src/sliding.ts b/foundations/core/packages/rpc/src/sliding.ts index 84dae8fb5e..7e149d1a84 100644 --- a/foundations/core/packages/rpc/src/sliding.ts +++ b/foundations/core/packages/rpc/src/sliding.ts @@ -10,7 +10,7 @@ export class SlidingWindowRateLimitter { } >() - constructor( + constructor ( readonly rateLimitMax: number, readonly rateLimitWindow: number, readonly now: () => number = Date.now @@ -19,7 +19,7 @@ export class SlidingWindowRateLimitter { this.rateLimitWindow = rateLimitWindow } - public checkRateLimit(groupId: string): RateLimitInfo { + public checkRateLimit (groupId: string): RateLimitInfo { const now = this.now() const windowStart = now - this.rateLimitWindow @@ -68,7 +68,7 @@ export class SlidingWindowRateLimitter { } // Add a reset method for testing purposes - public reset(): void { + public reset (): void { this.rateLimits.clear() } } diff --git a/foundations/core/packages/storage-client/src/__tests__/integration.test.ts b/foundations/core/packages/storage-client/src/__tests__/integration.test.ts index 0d68bca774..31817c5116 100644 --- a/foundations/core/packages/storage-client/src/__tests__/integration.test.ts +++ b/foundations/core/packages/storage-client/src/__tests__/integration.test.ts @@ -40,23 +40,23 @@ class MockXMLHttpRequest { public onabort: (() => void) | null = null public ontimeout: (() => void) | null = null - open(method: string, url: string, async: boolean = true): void { + open (method: string, url: string, async: boolean = true): void { this.method = method this.url = url } - setRequestHeader(key: string, value: string): void { + setRequestHeader (key: string, value: string): void { this.headers[key] = value } - send(body: any): void { + send (body: any): void { this.body = body setTimeout(() => { this.onload?.() }, 0) } - abort(): void { + abort (): void { this.onabort?.() } } @@ -349,7 +349,7 @@ describe('Storage Client Integration Tests', () => { describe('Error Handling Integration', () => { it('should handle upload failures across all storage types', async () => { - const configs: Array<{ name: string; config: FileStorageConfig }> = [ + const configs: Array<{ name: string, config: FileStorageConfig }> = [ { name: 'Front', config: { uploadUrl: 'https://front.example.com' } }, { name: 'Datalake', @@ -383,7 +383,7 @@ describe('Storage Client Integration Tests', () => { }) it('should handle delete failures across all storage types', async () => { - const configs: Array<{ name: string; config: FileStorageConfig }> = [ + const configs: Array<{ name: string, config: FileStorageConfig }> = [ { name: 'Front', config: { uploadUrl: 'https://front.example.com' } }, { name: 'Datalake', @@ -456,7 +456,7 @@ describe('Storage Client Integration Tests', () => { signal: controller.signal } - const configs: Array<{ name: string; config: FileStorageConfig }> = [ + const configs: Array<{ name: string, config: FileStorageConfig }> = [ { name: 'Front', config: { uploadUrl: 'https://front.example.com' } }, { name: 'Datalake', diff --git a/foundations/core/packages/storage-client/src/__tests__/upload.test.ts b/foundations/core/packages/storage-client/src/__tests__/upload.test.ts index 757b3349c4..198203c4e0 100644 --- a/foundations/core/packages/storage-client/src/__tests__/upload.test.ts +++ b/foundations/core/packages/storage-client/src/__tests__/upload.test.ts @@ -30,39 +30,39 @@ class MockXMLHttpRequest { public onabort: (() => void) | null = null public ontimeout: (() => void) | null = null - open(method: string, url: string, async: boolean = true): void { + open (method: string, url: string, async: boolean = true): void { this.method = method this.url = url } - setRequestHeader(key: string, value: string): void { + setRequestHeader (key: string, value: string): void { this.headers[key] = value } - send(body: any): void { + send (body: any): void { this.body = body // Don't auto-call onload - let tests control when it's called } - abort(): void { + abort (): void { this.onabort?.() } // Test helpers - simulateProgress(loaded: number, total: number): void { + simulateProgress (loaded: number, total: number): void { const event: Partial = { loaded, total, lengthComputable: true } this.upload.onprogress?.(event as ProgressEvent) } - simulateError(): void { + simulateError (): void { this.onerror?.() } - simulateTimeout(): void { + simulateTimeout (): void { this.ontimeout?.() } - simulateSuccess(responseText: string = ''): void { + simulateSuccess (responseText: string = ''): void { this.responseText = responseText this.onload?.() } @@ -562,7 +562,7 @@ describe('uploadMultipart', () => { const file = new File(['test content'], 'test.txt', { type: 'text/plain' }) Object.defineProperty(file, 'size', { value: 5 * 1024 * 1024 }) // 5MB - const progressUpdates: Array<{ loaded: number; total: number; percentage: number }> = [] + const progressUpdates: Array<{ loaded: number, total: number, percentage: number }> = [] const onProgress = jest.fn((progress) => { progressUpdates.push({ ...progress }) }) @@ -626,7 +626,7 @@ describe('uploadMultipart', () => { const file = new File(['test content'], 'test.txt', { type: 'text/plain' }) Object.defineProperty(file, 'size', { value: 10 * 1024 * 1024 }) // 10MB = 2 chunks - const progressUpdates: Array<{ loaded: number; total: number; percentage: number }> = [] + const progressUpdates: Array<{ loaded: number, total: number, percentage: number }> = [] const onProgress = jest.fn((progress) => { progressUpdates.push({ ...progress }) }) diff --git a/foundations/core/packages/storage-client/src/client/datalake.ts b/foundations/core/packages/storage-client/src/client/datalake.ts index b04a34940d..97ef5884ae 100644 --- a/foundations/core/packages/storage-client/src/client/datalake.ts +++ b/foundations/core/packages/storage-client/src/client/datalake.ts @@ -25,9 +25,9 @@ const getPathname = (url: string): string => { /** @public */ export class DatalakeStorage implements FileStorage { - constructor(private readonly baseUrl: string) {} + constructor (private readonly baseUrl: string) {} - getFileUrl(workspace: string, file: string, filename?: string): string { + getFileUrl (workspace: string, file: string, filename?: string): string { const encodedWorkspace = encodePathSegment(workspace) const encodedFile = encodePathSegment(file) const path = @@ -37,12 +37,12 @@ export class DatalakeStorage implements FileStorage { return concatLink(this.baseUrl, path) } - getCookiePath(workspace: string): string { + getCookiePath (workspace: string): string { const url = concatLink(this.baseUrl, `/blob/${workspace}`) return getPathname(url) } - async getFileMeta(token: string, workspace: string, file: string): Promise> { + async getFileMeta (token: string, workspace: string, file: string): Promise> { const url = concatLink(this.baseUrl, `/meta/${encodeURIComponent(workspace)}/${encodeURIComponent(file)}`) try { const response = await fetch(url, { @@ -57,7 +57,7 @@ export class DatalakeStorage implements FileStorage { return {} } - async deleteFile(token: string, workspace: string, file: string): Promise { + async deleteFile (token: string, workspace: string, file: string): Promise { const url = this.getFileUrl(workspace, file) const response = await fetch(url, { @@ -72,7 +72,7 @@ export class DatalakeStorage implements FileStorage { } } - async uploadFile( + async uploadFile ( token: string, workspace: string, uuid: string, diff --git a/foundations/core/packages/storage-client/src/client/front.ts b/foundations/core/packages/storage-client/src/client/front.ts index e6386a3ab1..7dfa5d6896 100644 --- a/foundations/core/packages/storage-client/src/client/front.ts +++ b/foundations/core/packages/storage-client/src/client/front.ts @@ -25,9 +25,9 @@ const getPathname = (url: string): string => { /** @public */ export class FrontStorage implements FileStorage { - constructor(private readonly baseUrl: string) {} + constructor (private readonly baseUrl: string) {} - getFileUrl(workspace: string, file: string, filename?: string): string { + getFileUrl (workspace: string, file: string, filename?: string): string { const encodedWorkspace = encodePathSegment(workspace) const encodedFile = encodePathSegment(file) const encodedFilename = encodePathSegment(filename ?? file) @@ -35,16 +35,16 @@ export class FrontStorage implements FileStorage { return concatLink(this.baseUrl, path) } - getCookiePath(workspace: string): string { + getCookiePath (workspace: string): string { const url = concatLink(this.baseUrl, `/${workspace}`) return getPathname(url) } - async getFileMeta(token: string, workspace: string, file: string): Promise> { + async getFileMeta (token: string, workspace: string, file: string): Promise> { return {} } - async deleteFile(token: string, workspace: string, file: string): Promise { + async deleteFile (token: string, workspace: string, file: string): Promise { const url = this.getFileUrl(workspace, file) const response = await fetch(url, { @@ -59,7 +59,7 @@ export class FrontStorage implements FileStorage { } } - async uploadFile( + async uploadFile ( token: string, workspace: string, uuid: string, diff --git a/foundations/core/packages/storage-client/src/client/hulylake.ts b/foundations/core/packages/storage-client/src/client/hulylake.ts index f632da88a5..00acdb31f6 100644 --- a/foundations/core/packages/storage-client/src/client/hulylake.ts +++ b/foundations/core/packages/storage-client/src/client/hulylake.ts @@ -24,23 +24,23 @@ const getPathname = (url: string): string => { /** @public */ export class HulylakeStorage implements FileStorage { - constructor(private readonly baseUrl: string) {} + constructor (private readonly baseUrl: string) {} - getFileUrl(workspace: string, file: string, filename?: string): string { + getFileUrl (workspace: string, file: string, filename?: string): string { const path = `/api/${workspace}/${file}` return concatLink(this.baseUrl, path) } - getCookiePath(workspace: string): string { + getCookiePath (workspace: string): string { const url = concatLink(this.baseUrl, `/api/${workspace}`) return getPathname(url) } - async getFileMeta(token: string, workspace: string, file: string): Promise> { + async getFileMeta (token: string, workspace: string, file: string): Promise> { return {} } - async deleteFile(token: string, workspace: string, file: string): Promise { + async deleteFile (token: string, workspace: string, file: string): Promise { const url = this.getFileUrl(workspace, file) const response = await fetch(url, { @@ -55,7 +55,7 @@ export class HulylakeStorage implements FileStorage { } } - async uploadFile( + async uploadFile ( token: string, workspace: string, uuid: string, diff --git a/foundations/core/packages/storage-client/src/client/index.ts b/foundations/core/packages/storage-client/src/client/index.ts index 6c39060d0c..4ee30a2b8f 100644 --- a/foundations/core/packages/storage-client/src/client/index.ts +++ b/foundations/core/packages/storage-client/src/client/index.ts @@ -27,7 +27,7 @@ export interface FileStorageConfig { } /** @public */ -export function createFileStorage(config: FileStorageConfig): FileStorage { +export function createFileStorage (config: FileStorageConfig): FileStorage { const { uploadUrl, datalakeUrl, hulylakeUrl } = config if (datalakeUrl !== undefined && datalakeUrl !== '') { diff --git a/foundations/core/packages/storage-client/src/client/utils.ts b/foundations/core/packages/storage-client/src/client/utils.ts index 83d917c45d..e6e41b9a6b 100644 --- a/foundations/core/packages/storage-client/src/client/utils.ts +++ b/foundations/core/packages/storage-client/src/client/utils.ts @@ -13,6 +13,6 @@ // limitations under the License. // -export function encodePathSegment(value: string): string { +export function encodePathSegment (value: string): string { return encodeURIComponent(value) } diff --git a/foundations/core/packages/storage-client/src/index.ts b/foundations/core/packages/storage-client/src/index.ts index 0f078ded71..0ce0730482 100644 --- a/foundations/core/packages/storage-client/src/index.ts +++ b/foundations/core/packages/storage-client/src/index.ts @@ -14,4 +14,4 @@ // export * from './client' -export * from './types' +export type * from './types' diff --git a/foundations/core/packages/storage-client/src/upload.ts b/foundations/core/packages/storage-client/src/upload.ts index 98a16b7774..9272c9b6a9 100644 --- a/foundations/core/packages/storage-client/src/upload.ts +++ b/foundations/core/packages/storage-client/src/upload.ts @@ -31,7 +31,7 @@ export interface XHRUploadResult { } /** @public */ -export async function uploadXhr(upload: XHRUpload, options?: FileStorageUploadOptions): Promise { +export async function uploadXhr (upload: XHRUpload, options?: FileStorageUploadOptions): Promise { const signal = options?.signal const onProgress = options?.onProgress @@ -108,7 +108,7 @@ export interface MultipartUpload { } /** @public */ -export async function uploadMultipart(upload: MultipartUpload, options?: FileStorageUploadOptions): Promise { +export async function uploadMultipart (upload: MultipartUpload, options?: FileStorageUploadOptions): Promise { const CHUNK_SIZE = 5 * 1024 * 1024 // 5MB chunks const { url, headers, body } = upload const signal = options?.signal @@ -119,7 +119,7 @@ export async function uploadMultipart(upload: MultipartUpload, options?: FileSto try { const { uploadId } = await multipartUploadCreate(url, { ...headers, 'Content-Type': body.type }, signal) - const parts: Array<{ partNumber: number; etag: string }> = [] + const parts: Array<{ partNumber: number, etag: string }> = [] const totalParts = Math.ceil(body.size / CHUNK_SIZE) let uploaded = 0 @@ -163,17 +163,17 @@ export async function uploadMultipart(upload: MultipartUpload, options?: FileSto } } -function throwIfAborted(signal?: AbortSignal): void { +function throwIfAborted (signal?: AbortSignal): void { if (signal?.aborted === true) { throw new Error('Upload aborted') } } -async function multipartUploadCreate( +async function multipartUploadCreate ( baseUrl: string, headers: Record, signal?: AbortSignal -): Promise<{ uuid: string; uploadId: string }> { +): Promise<{ uuid: string, uploadId: string }> { const response = await fetch(baseUrl, { signal, method: 'POST', @@ -188,11 +188,11 @@ async function multipartUploadCreate( return { uuid, uploadId } } -async function multipartUploadComplete( +async function multipartUploadComplete ( baseUrl: string, headers: Record, uploadId: string, - parts: Array<{ partNumber: number; etag: string }>, + parts: Array<{ partNumber: number, etag: string }>, signal?: AbortSignal ): Promise { const url = new URL(concatLink(baseUrl, '/complete')) @@ -213,7 +213,7 @@ async function multipartUploadComplete( } } -async function multipartUploadPart( +async function multipartUploadPart ( baseUrl: string, headers: Record, uploadId: string, @@ -243,7 +243,7 @@ async function multipartUploadPart( } } -async function multipartUploadAbort(baseUrl: string, headers: Record, uploadId: string): Promise { +async function multipartUploadAbort (baseUrl: string, headers: Record, uploadId: string): Promise { const url = new URL(concatLink(baseUrl, '/abort')) url.searchParams.set('uploadId', uploadId) diff --git a/foundations/core/packages/storage/src/index.ts b/foundations/core/packages/storage/src/index.ts index 2104013a0a..255680bb64 100644 --- a/foundations/core/packages/storage/src/index.ts +++ b/foundations/core/packages/storage/src/index.ts @@ -90,40 +90,40 @@ export interface StorageAdapterEx extends StorageAdapter { */ export class DummyStorageAdapter implements StorageAdapter, StorageAdapterEx { defaultAdapter: string = '' - async syncBlobFromStorage(ctx: MeasureContext, wsIds: WorkspaceIds, objectName: string): Promise { + async syncBlobFromStorage (ctx: MeasureContext, wsIds: WorkspaceIds, objectName: string): Promise { throw new PlatformError(unknownError('Method not implemented')) } - async initialize(ctx: MeasureContext, wsIds: WorkspaceIds): Promise {} + async initialize (ctx: MeasureContext, wsIds: WorkspaceIds): Promise {} - async close(): Promise {} + async close (): Promise {} - async exists(ctx: MeasureContext, wsIds: WorkspaceIds): Promise { + async exists (ctx: MeasureContext, wsIds: WorkspaceIds): Promise { return false } - find(ctx: MeasureContext, wsIds: WorkspaceIds): StorageIterator { + find (ctx: MeasureContext, wsIds: WorkspaceIds): StorageIterator { return { next: async (ctx) => [], close: async (ctx) => {} } } - async listBuckets(ctx: MeasureContext): Promise { + async listBuckets (ctx: MeasureContext): Promise { return [] } - async make(ctx: MeasureContext, wsIds: WorkspaceIds): Promise {} + async make (ctx: MeasureContext, wsIds: WorkspaceIds): Promise {} - async delete(ctx: MeasureContext, wsIds: WorkspaceIds): Promise {} + async delete (ctx: MeasureContext, wsIds: WorkspaceIds): Promise {} - async remove(ctx: MeasureContext, wsIds: WorkspaceIds, objectNames: string[]): Promise {} + async remove (ctx: MeasureContext, wsIds: WorkspaceIds, objectNames: string[]): Promise {} - async list(ctx: MeasureContext, wsIds: WorkspaceIds): Promise { + async list (ctx: MeasureContext, wsIds: WorkspaceIds): Promise { return [] } - async listStream(ctx: MeasureContext, wsIds: WorkspaceIds): Promise { + async listStream (ctx: MeasureContext, wsIds: WorkspaceIds): Promise { return { next: async (): Promise => { return [] @@ -132,15 +132,15 @@ export class DummyStorageAdapter implements StorageAdapter, StorageAdapterEx { } } - async stat(ctx: MeasureContext, wsIds: WorkspaceIds, name: string): Promise { + async stat (ctx: MeasureContext, wsIds: WorkspaceIds, name: string): Promise { return undefined } - async get(ctx: MeasureContext, wsIds: WorkspaceIds, name: string): Promise { + async get (ctx: MeasureContext, wsIds: WorkspaceIds, name: string): Promise { throw new Error('not implemented') } - async partial( + async partial ( ctx: MeasureContext, wsIds: WorkspaceIds, objectName: string, @@ -150,11 +150,11 @@ export class DummyStorageAdapter implements StorageAdapter, StorageAdapterEx { throw new Error('not implemented') } - async read(ctx: MeasureContext, wsIds: WorkspaceIds, name: string): Promise { + async read (ctx: MeasureContext, wsIds: WorkspaceIds, name: string): Promise { throw new Error('not implemented') } - async put( + async put ( ctx: MeasureContext, wsIds: WorkspaceIds, objectName: string, @@ -165,16 +165,16 @@ export class DummyStorageAdapter implements StorageAdapter, StorageAdapterEx { throw new Error('not implemented') } - async getUrl(ctx: MeasureContext, wsIds: WorkspaceIds, objectName: string): Promise { + async getUrl (ctx: MeasureContext, wsIds: WorkspaceIds, objectName: string): Promise { throw new Error('not implemented') } } -export function createDummyStorageAdapter(): StorageAdapter { +export function createDummyStorageAdapter (): StorageAdapter { return new DummyStorageAdapter() } -export async function removeAllObjects( +export async function removeAllObjects ( ctx: MeasureContext, storage: StorageAdapter, wsIds: WorkspaceIds @@ -206,7 +206,7 @@ export async function removeAllObjects( } } -export async function objectsToArray( +export async function objectsToArray ( ctx: MeasureContext, storage: StorageAdapter, wsIds: WorkspaceIds @@ -228,6 +228,6 @@ export async function objectsToArray( } } -export function getDataId(wsIds: WorkspaceIds): WorkspaceDataId { +export function getDataId (wsIds: WorkspaceIds): WorkspaceDataId { return wsIds.dataId ?? (wsIds.uuid as unknown as WorkspaceDataId) } diff --git a/foundations/core/packages/text-core/src/markup/dsl.ts b/foundations/core/packages/text-core/src/markup/dsl.ts index dd5b4424e2..f72a1bb2db 100644 --- a/foundations/core/packages/text-core/src/markup/dsl.ts +++ b/foundations/core/packages/text-core/src/markup/dsl.ts @@ -17,63 +17,63 @@ import { MarkupMark, MarkupMarkType, MarkupNode, MarkupNodeType } from './model' // Nodes -export function nodeDoc(...content: MarkupNode[]): MarkupNode { +export function nodeDoc (...content: MarkupNode[]): MarkupNode { return node(MarkupNodeType.doc, ...content) } -export function nodeParagraph(...content: MarkupNode[]): MarkupNode { +export function nodeParagraph (...content: MarkupNode[]): MarkupNode { return node(MarkupNodeType.paragraph, ...content) } -export function nodeText(text: string): MarkupNode { +export function nodeText (text: string): MarkupNode { return { type: MarkupNodeType.text, text } } -export function nodeImage(attrs: { src: string; alt?: string; width?: number; height?: number }): MarkupNode { +export function nodeImage (attrs: { src: string, alt?: string, width?: number, height?: number }): MarkupNode { return { type: MarkupNodeType.image, attrs } } -export function nodeReference(attrs: { id: string; label: string; objectclass: string }): MarkupNode { +export function nodeReference (attrs: { id: string, label: string, objectclass: string }): MarkupNode { return { type: MarkupNodeType.reference, attrs } } // Marks -export function markBold(node: MarkupNode): MarkupNode { +export function markBold (node: MarkupNode): MarkupNode { return withMarks(node, mark(MarkupMarkType.bold)) } -export function markCode(node: MarkupNode): MarkupNode { +export function markCode (node: MarkupNode): MarkupNode { return withMarks(node, mark(MarkupMarkType.code)) } -export function markItalic(node: MarkupNode): MarkupNode { +export function markItalic (node: MarkupNode): MarkupNode { return withMarks(node, mark(MarkupMarkType.em)) } -export function markStrike(node: MarkupNode): MarkupNode { +export function markStrike (node: MarkupNode): MarkupNode { return withMarks(node, mark(MarkupMarkType.strike)) } -export function markUnderline(node: MarkupNode): MarkupNode { +export function markUnderline (node: MarkupNode): MarkupNode { return withMarks(node, mark(MarkupMarkType.underline)) } -export function markLink(attrs: { href: string; title: string }, node: MarkupNode): MarkupNode { +export function markLink (attrs: { href: string, title: string }, node: MarkupNode): MarkupNode { return withMarks(node, mark(MarkupMarkType.link, attrs)) } // Utility -function node(type: MarkupNodeType, ...content: MarkupNode[]): MarkupNode { +function node (type: MarkupNodeType, ...content: MarkupNode[]): MarkupNode { return { type, content } } -function mark(type: MarkupMarkType, attrs?: Record): MarkupMark { +function mark (type: MarkupMarkType, attrs?: Record): MarkupMark { return { type, attrs: attrs ?? {} } } -function withMarks(node: MarkupNode, ...marks: MarkupMark[]): MarkupNode { +function withMarks (node: MarkupNode, ...marks: MarkupMark[]): MarkupNode { const current = node.marks ?? [] current.push(...marks) diff --git a/foundations/core/packages/text-core/src/markup/model.ts b/foundations/core/packages/text-core/src/markup/model.ts index e7cebea7c9..9b275c14f0 100644 --- a/foundations/core/packages/text-core/src/markup/model.ts +++ b/foundations/core/packages/text-core/src/markup/model.ts @@ -77,7 +77,7 @@ export interface MarkupNode { } /** @public */ -export function emptyMarkupNode(): MarkupNode { +export function emptyMarkupNode (): MarkupNode { return { type: MarkupNodeType.doc, content: [{ type: MarkupNodeType.paragraph, content: [] }] @@ -93,5 +93,5 @@ export interface LinkMark extends MarkupMark { /** @public */ export interface ReferenceMarkupNode extends MarkupNode { type: MarkupNodeType.reference - attrs: { id: string; label: string; objectclass: string } + attrs: { id: string, label: string, objectclass: string } } diff --git a/foundations/core/packages/text-core/src/markup/traverse.ts b/foundations/core/packages/text-core/src/markup/traverse.ts index a935bfaaae..08f6dc1e5e 100644 --- a/foundations/core/packages/text-core/src/markup/traverse.ts +++ b/foundations/core/packages/text-core/src/markup/traverse.ts @@ -15,14 +15,14 @@ import { MarkupMark, MarkupNode } from './model' -export function traverseNode( +export function traverseNode ( node: MarkupNode, fn: (el: MarkupNode, parent: MarkupNode | undefined) => boolean | undefined ): void { _traverseNode(node, undefined, fn) } -function _traverseNode( +function _traverseNode ( node: MarkupNode, parent: MarkupNode | undefined, fn: (el: MarkupNode, parent: MarkupNode | undefined) => boolean | undefined @@ -35,19 +35,19 @@ function _traverseNode( } } -export function traverseNodeMarks(node: MarkupNode, f: (el: MarkupMark) => void): void { +export function traverseNodeMarks (node: MarkupNode, f: (el: MarkupMark) => void): void { node.marks?.forEach((p) => { f(p) }) } -export function traverseNodeContent(node: MarkupNode, f: (el: MarkupNode) => void): void { +export function traverseNodeContent (node: MarkupNode, f: (el: MarkupNode) => void): void { node.content?.forEach((p) => { f(p) }) } -export function traverseAllMarks(node: MarkupNode, f: (el: MarkupNode, mark: MarkupMark) => void): void { +export function traverseAllMarks (node: MarkupNode, f: (el: MarkupNode, mark: MarkupMark) => void): void { traverseNode(node, (node) => { traverseNodeMarks(node, (mark) => { f(node, mark) diff --git a/foundations/core/packages/text-core/src/markup/utils.ts b/foundations/core/packages/text-core/src/markup/utils.ts index 0643f177fa..dd5efd7630 100644 --- a/foundations/core/packages/text-core/src/markup/utils.ts +++ b/foundations/core/packages/text-core/src/markup/utils.ts @@ -26,7 +26,7 @@ import { traverseAllMarks, traverseNode } from './traverse' export const EmptyMarkup: Markup = jsonToMarkup(emptyMarkupNode()) /** @public */ -export function isEmptyMarkup(markup: Markup | undefined): boolean { +export function isEmptyMarkup (markup: Markup | undefined): boolean { if (markup === undefined || markup === null || markup === '') { return true } @@ -34,7 +34,7 @@ export function isEmptyMarkup(markup: Markup | undefined): boolean { } /** @public */ -export function areEqualMarkups(markup1: Markup, markup2: Markup): boolean { +export function areEqualMarkups (markup1: Markup, markup2: Markup): boolean { if (markup1 === markup2) { return true } @@ -50,11 +50,11 @@ export function areEqualMarkups(markup1: Markup, markup2: Markup): boolean { } /** @public */ -export function areEqualJson(json1: MarkupNode, json2: MarkupNode): boolean { +export function areEqualJson (json1: MarkupNode, json2: MarkupNode): boolean { return equalNodes(json1, json2) } -function equalNodes(node1: MarkupNode, node2: MarkupNode): boolean { +function equalNodes (node1: MarkupNode, node2: MarkupNode): boolean { if (node1.type !== node2.type) return false const text1 = node1.text ?? '' @@ -68,7 +68,7 @@ function equalNodes(node1: MarkupNode, node2: MarkupNode): boolean { return true } -function equalArrays(a: T[] | undefined, b: T[] | undefined, equal: (a: T, b: T) => boolean): boolean { +function equalArrays (a: T[] | undefined, b: T[] | undefined, equal: (a: T, b: T) => boolean): boolean { if (a === b) return true const arr1 = a ?? [] const arr2 = b ?? [] @@ -76,14 +76,14 @@ function equalArrays(a: T[] | undefined, b: T[] | undefined, equal: (a: T, b: return arr1.every((item1, i) => equal(item1, arr2[i])) } -function equalRecords(a: Record | undefined, b: Record | undefined): boolean { +function equalRecords (a: Record | undefined, b: Record | undefined): boolean { if (a === b) return true a = Object.fromEntries(Object.entries(a ?? {}).filter(([_, v]) => v != null)) b = Object.fromEntries(Object.entries(b ?? {}).filter(([_, v]) => v != null)) return deepEqual(a, b) } -export function equalMarks(a: MarkupMark, b: MarkupMark): boolean { +export function equalMarks (a: MarkupMark, b: MarkupMark): boolean { return a.type === b.type && equalRecords(a.attrs, b.attrs) } @@ -99,7 +99,7 @@ const nonEmptyNodes = [ ] /** @public */ -export function isEmptyNode(node: MarkupNode): boolean { +export function isEmptyNode (node: MarkupNode): boolean { if (emptyNodes.includes(node.type)) return true if (nonEmptyNodes.includes(node.type)) return false if (node.text !== undefined && node.text?.trim().length > 0) return false @@ -111,12 +111,12 @@ export function isEmptyNode(node: MarkupNode): boolean { // Markup /** @public */ -export function jsonToMarkup(json: MarkupNode): Markup { +export function jsonToMarkup (json: MarkupNode): Markup { return JSON.stringify(json) } /** @public */ -export function markupToJSON(markup: Markup): MarkupNode { +export function markupToJSON (markup: Markup): MarkupNode { if (markup == null || markup === '') { return emptyMarkupNode() } @@ -145,7 +145,7 @@ const ELLIPSIS_CHAR = '…' const WHITESPACE = ' ' /** @public */ -export function stripTags(markup: Markup, textLimit = 0): string { +export function stripTags (markup: Markup, textLimit = 0): string { const parsed = markupToJSON(markup) const textParts: string[] = [] @@ -195,7 +195,7 @@ export function stripTags(markup: Markup, textLimit = 0): string { return result } -export function markupToText(markup: Markup): string { +export function markupToText (markup: Markup): string { const jsonModel = markupToJSON(markup) const fragments: string[] = [] @@ -218,12 +218,12 @@ export function markupToText(markup: Markup): string { const hashedMarkNameRegex = /(.*)(--[a-zA-Z0-9+/=]{8})$/ /** @public */ -export function stripHash(attrName: string): string { +export function stripHash (attrName: string): string { return hashedMarkNameRegex.exec(attrName)?.[1] ?? attrName } /** @public */ -export function hashAttrs(attrs: any): string { +export function hashAttrs (attrs: any): string { const hash = hashIt(attrs) return (hash >>> 0).toString(16).padStart(8, '0') } diff --git a/foundations/core/packages/text-html/src/__tests__/html.test.ts b/foundations/core/packages/text-html/src/__tests__/html.test.ts index d9c134e535..7df7fb1c60 100644 --- a/foundations/core/packages/text-html/src/__tests__/html.test.ts +++ b/foundations/core/packages/text-html/src/__tests__/html.test.ts @@ -16,7 +16,7 @@ import { MarkupNode } from '@hcengineering/text-core' import { htmlToMarkup, markupToHtml } from '..' -const tests: Array<{ name: string; markup: object; html: string }> = [ +const tests: Array<{ name: string, markup: object, html: string }> = [ { name: 'paragraph', markup: { diff --git a/foundations/core/packages/text-html/src/index.ts b/foundations/core/packages/text-html/src/index.ts index 7fc738de0c..1462f0008a 100644 --- a/foundations/core/packages/text-html/src/index.ts +++ b/foundations/core/packages/text-html/src/index.ts @@ -22,7 +22,7 @@ export function markupToHtml (markup: MarkupNode, options: HtmlSerializerOptions return serializer.serialize(markup) } -export function htmlToMarkup(html: string, options: HtmlParserOptions = {}): MarkupNode { +export function htmlToMarkup (html: string, options: HtmlParserOptions = {}): MarkupNode { const parser = new HtmlParser(options) return parser.parse(html) } diff --git a/foundations/core/packages/text-html/src/parser.ts b/foundations/core/packages/text-html/src/parser.ts index 2982b11e98..44a8aa9fe9 100644 --- a/foundations/core/packages/text-html/src/parser.ts +++ b/foundations/core/packages/text-html/src/parser.ts @@ -59,18 +59,18 @@ class HtmlParseState { private readonly stack: MarkupNode[] = [] private readonly marks: MarkupMark[] = [] - constructor( + constructor ( readonly root: MarkupNode, readonly handlers: Record ) { this.stack.push(root) } - top(): MarkupNode | undefined { + top (): MarkupNode | undefined { return this.stack[this.stack.length - 1] } - addText(text: string): void { + addText (text: string): void { const top = this.top() if (top === undefined || text.length === 0) { return @@ -96,21 +96,21 @@ class HtmlParseState { this.push(node) } - openMark(mark: MarkupMarkType, attrs?: Record): void { + openMark (mark: MarkupMarkType, attrs?: Record): void { this.marks.push(attrs !== undefined ? { type: mark, attrs } : { type: mark }) } - closeMark(mark: MarkupMarkType): void { + closeMark (mark: MarkupMarkType): void { if (this.marks[this.marks.length - 1]?.type === mark) { this.marks.pop() } } - openNode(node: MarkupNodeType, attrs?: Record): void { + openNode (node: MarkupNodeType, attrs?: Record): void { this.stack.push(attrs !== undefined ? { type: node, attrs } : { type: node }) } - closeNode(node: MarkupNodeType): void { + closeNode (node: MarkupNodeType): void { this.marks.splice(0) const info = this.stack.pop() if (info !== undefined) { @@ -118,11 +118,11 @@ class HtmlParseState { } } - addNode(node: MarkupNode): void { + addNode (node: MarkupNode): void { this.push(node) } - push(node: MarkupNode): void { + push (node: MarkupNode): void { const parent = this.top() if (parent !== undefined) { const content = parent.content ?? [] @@ -132,7 +132,7 @@ class HtmlParseState { } } -function nodeHandler({ node, getAttrs, wrapContent, wrapNode }: HtmlNodeRule): HtmlTagHandler { +function nodeHandler ({ node, getAttrs, wrapContent, wrapNode }: HtmlNodeRule): HtmlTagHandler { const wrapStack: boolean[] = [] return { @@ -170,7 +170,7 @@ function nodeHandler({ node, getAttrs, wrapContent, wrapNode }: HtmlNodeRule): H } } -function markHandler({ mark, getAttrs }: HtmlMarkRule): HtmlTagHandler { +function markHandler ({ mark, getAttrs }: HtmlMarkRule): HtmlTagHandler { return { handleOpenTag: (state: HtmlParseState, tag: string, attributes: Record) => { const attrs = @@ -187,14 +187,14 @@ function markHandler({ mark, getAttrs }: HtmlMarkRule): HtmlTagHandler { } } -function ignoreHandler(rule: HtmlIgnoreRule): HtmlTagHandler { +function ignoreHandler (rule: HtmlIgnoreRule): HtmlTagHandler { return { handleOpenTag: () => {}, handleCloseTag: () => {} } } -function specialHandler(rule: HtmlSpecialRule): HtmlTagHandler { +function specialHandler (rule: HtmlSpecialRule): HtmlTagHandler { return { handleOpenTag: (state: HtmlParseState, tag: string, attributes: Record) => { rule.handleOpenTag(state, tag, attributes) @@ -491,7 +491,7 @@ const ignoreRules: Record = { export class HtmlParser { private readonly handlers: Record = {} - constructor(private readonly options: HtmlParserOptions = {}) { + constructor (private readonly options: HtmlParserOptions = {}) { Object.entries(nodeRules).forEach(([tag, rule]) => { this.handlers[tag] = nodeHandler(rule) }) @@ -509,7 +509,7 @@ export class HtmlParser { }) } - parse(html: string): MarkupNode { + parse (html: string): MarkupNode { const root: MarkupNode = { type: MarkupNodeType.doc, content: [] } const state = new HtmlParseState(root, this.handlers) @@ -518,7 +518,7 @@ export class HtmlParser { const parser = new Parser( { - onopentag(tag: string, attributes: Record) { + onopentag (tag: string, attributes: Record) { if (rawDepth !== undefined) { rawDepth += 1 return @@ -540,7 +540,7 @@ export class HtmlParser { } }, - ontext(text: string) { + ontext (text: string) { if (rawDepth !== undefined) { return } @@ -552,7 +552,7 @@ export class HtmlParser { state.addText(text) }, - oncomment(text: string) { + oncomment (text: string) { if (rawDepth !== undefined) { return } @@ -562,7 +562,7 @@ export class HtmlParser { state.closeNode(MarkupNodeType.comment) }, - onclosetag(tag: string) { + onclosetag (tag: string) { if (rawDepth !== undefined) { rawDepth -= 1 @@ -599,7 +599,7 @@ export class HtmlParser { } } -function extractStyleAttrs(attrs: Record, rules: HtmlStyleRule[]): Record | undefined { +function extractStyleAttrs (attrs: Record, rules: HtmlStyleRule[]): Record | undefined { const style = attrs.style if (style !== undefined) { const styles: Record = {} diff --git a/foundations/core/packages/text-html/src/serializer.ts b/foundations/core/packages/text-html/src/serializer.ts index 222351b073..ff427a2e4c 100644 --- a/foundations/core/packages/text-html/src/serializer.ts +++ b/foundations/core/packages/text-html/src/serializer.ts @@ -26,9 +26,9 @@ import { export interface HtmlSerializerOptions {} export class HtmlSerializer { - constructor(private readonly options: HtmlSerializerOptions = {}) {} + constructor (private readonly options: HtmlSerializerOptions = {}) {} - serialize(markup: MarkupNode): string { + serialize (markup: MarkupNode): string { const builder = new NodeBuilder(true) addNode(builder, markup) return builder.toText() @@ -38,16 +38,16 @@ export class HtmlSerializer { class NodeBuilder { textParts: string[] = [] - constructor(private readonly addTags: boolean) {} + constructor (private readonly addTags: boolean) {} - addText(text: string): void { + addText (text: string): void { this.textParts.push(text) } - openTag( + openTag ( tag: string, attributes: Record = {}, - options?: { newLine?: boolean; selfClosing?: boolean } + options?: { newLine?: boolean, selfClosing?: boolean } ): void { if (this.addTags) { this.textParts.push('<') @@ -73,7 +73,7 @@ class NodeBuilder { } } - closeTag(tag: string, options?: { newLine: boolean }): void { + closeTag (tag: string, options?: { newLine: boolean }): void { if (this.addTags) { this.textParts.push(``) } else if (options?.newLine === true) { @@ -81,13 +81,13 @@ class NodeBuilder { } } - toText(): string { + toText (): string { return this.textParts.join('') } } // Helper function to escape HTML special characters -function escapeHtml(text: string): string { +function escapeHtml (text: string): string { return text .replace(/&/g, '&') .replace(/ void): void { +function addMark (builder: NodeBuilder, mark?: MarkupMark, next?: () => void): void { if (mark != null) { const attrs = mark.attrs ?? {} @@ -163,7 +163,7 @@ function addMark(builder: NodeBuilder, mark?: MarkupMark, next?: () => void): vo } } -function addMarks(builder: NodeBuilder, marks: MarkupMark[], next?: () => void): void { +function addMarks (builder: NodeBuilder, marks: MarkupMark[], next?: () => void): void { if (marks.length > 0) { const mark = marks[0] const others = marks.slice(1) @@ -178,13 +178,13 @@ function addMarks(builder: NodeBuilder, marks: MarkupMark[], next?: () => void): } } -function addNodes(builder: NodeBuilder, nodes: MarkupNode[]): void { +function addNodes (builder: NodeBuilder, nodes: MarkupNode[]): void { nodes.forEach((childNode) => { addNode(builder, childNode) }) } -function addNodeContent(builder: NodeBuilder, node?: MarkupNode): void { +function addNodeContent (builder: NodeBuilder, node?: MarkupNode): void { if (node == null) return const attrs = node.attrs ?? {} @@ -338,7 +338,7 @@ function addNodeContent(builder: NodeBuilder, node?: MarkupNode): void { } } -function addNode(builder: NodeBuilder, node: MarkupNode): void { +function addNode (builder: NodeBuilder, node: MarkupNode): void { const marks = node.marks ?? [] if (marks.length > 0) { @@ -350,11 +350,11 @@ function addNode(builder: NodeBuilder, node: MarkupNode): void { } } -function toString(value: AttrValue | undefined): string | undefined { +function toString (value: AttrValue | undefined): string | undefined { return value !== undefined ? `${value}` : undefined } -function toNumber(value: AttrValue | undefined): number | undefined { +function toNumber (value: AttrValue | undefined): number | undefined { if (typeof value === 'boolean') { return value ? 1 : 0 } @@ -362,7 +362,7 @@ function toNumber(value: AttrValue | undefined): number | undefined { return value != null ? (typeof value === 'string' ? parseInt(value) : value) : undefined } -function toStyleAttr(attrs: Attrs): string | undefined { +function toStyleAttr (attrs: Attrs): string | undefined { const styles: string[] = [] if (attrs.textAlign != null) { diff --git a/foundations/core/packages/text-markdown/src/__tests__/markdown.test.ts b/foundations/core/packages/text-markdown/src/__tests__/markdown.test.ts index e7de964374..1068e7b2ad 100644 --- a/foundations/core/packages/text-markdown/src/__tests__/markdown.test.ts +++ b/foundations/core/packages/text-markdown/src/__tests__/markdown.test.ts @@ -31,7 +31,7 @@ declare global { } expect.extend({ - toEqualMarkdown(received: string, expected: string) { + toEqualMarkdown (received: string, expected: string) { const pass = isMarkdownsEquals(received, expected) return { message: () => @@ -44,7 +44,7 @@ expect.extend({ }) describe('markdownToMarkup', () => { - const tests: Array<{ name: string; markdown: string; markup: object }> = [ + const tests: Array<{ name: string, markdown: string, markup: object }> = [ { name: 'simple text', markdown: 'Lorem ipsum dolor sit amet.', @@ -954,7 +954,7 @@ Lorem ipsum dolor sit amet. }) describe('markupToMarkdown', () => { - const tests: Array<{ name: string; markdown: string; markup: object }> = [ + const tests: Array<{ name: string, markdown: string, markup: object }> = [ { name: 'links', markdown: `[Link](https://example.com) @@ -1114,7 +1114,7 @@ describe('markupToMarkdown', () => { }) describe('markdownToMarkup -> markupToMarkdown', () => { - const tests: Array<{ name: string; markdown: string; alternate?: string }> = [ + const tests: Array<{ name: string, markdown: string, alternate?: string }> = [ { name: 'Italic', markdown: '*Asteriscs* and _Underscores_' }, { name: 'Bold', markdown: '**Asteriscs** and __Underscores__' }, { name: 'Bullet list with asteriscs', markdown: 'Asterisks :\r\n* Firstly\r\n* Secondly' }, diff --git a/foundations/core/packages/text-markdown/src/compare.ts b/foundations/core/packages/text-markdown/src/compare.ts index 55934f5555..aef9fdb0a1 100644 --- a/foundations/core/packages/text-markdown/src/compare.ts +++ b/foundations/core/packages/text-markdown/src/compare.ts @@ -16,7 +16,7 @@ /** * Calculate Sørensen–Dice coefficient */ -export function calcSørensenDiceCoefficient(a: string, b: string): number { +export function calcSørensenDiceCoefficient (a: string, b: string): number { if (a == null || b == null) return 0 const first = a.replace(/\s+/g, '') @@ -53,13 +53,13 @@ export function calcSørensenDiceCoefficient(a: string, b: string): number { /** * Perform markdown diff/comparison to understand do we have a major differences. */ -export function isMarkdownsEquals(source1: string, source2: string): boolean { +export function isMarkdownsEquals (source1: string, source2: string): boolean { const normalized1 = normalizeMarkdown(source1) const normalized2 = normalizeMarkdown(source2) return normalized1 === normalized2 } -export function normalizeMarkdown(source: string): string { +export function normalizeMarkdown (source: string): string { if (source == null || typeof source !== 'string') return '' const tagRegex = /<(\w+)([^>]*?)(\/?)>/g diff --git a/foundations/core/packages/text-markdown/src/index.ts b/foundations/core/packages/text-markdown/src/index.ts index 5c99481b9a..7618c5548b 100644 --- a/foundations/core/packages/text-markdown/src/index.ts +++ b/foundations/core/packages/text-markdown/src/index.ts @@ -28,7 +28,7 @@ export interface MarkdownOptions { } /** @public */ -export function markupToMarkdown(markup: MarkupNode, options?: MarkdownOptions): string { +export function markupToMarkdown (markup: MarkupNode, options?: MarkdownOptions): string { const refUrl = options?.refUrl ?? 'ref://' const imageUrl = options?.imageUrl ?? 'image://' @@ -38,7 +38,7 @@ export function markupToMarkdown(markup: MarkupNode, options?: MarkdownOptions): } /** @public */ -export function markdownToMarkup(markdown: string, options?: MarkdownOptions): MarkupNode { +export function markdownToMarkup (markdown: string, options?: MarkdownOptions): MarkupNode { const refUrl = options?.refUrl ?? 'ref://' const imageUrl = options?.imageUrl ?? 'image://' diff --git a/foundations/core/packages/text-markdown/src/marks.ts b/foundations/core/packages/text-markdown/src/marks.ts index 9174398dcd..66585ddddb 100644 --- a/foundations/core/packages/text-markdown/src/marks.ts +++ b/foundations/core/packages/text-markdown/src/marks.ts @@ -16,15 +16,15 @@ import { MarkupMark, MarkupMarkType } from '@hcengineering/text-core' import { deepEqual } from 'fast-equals' -export function markAttrs(mark: MarkupMark): Record { +export function markAttrs (mark: MarkupMark): Record { return mark.attrs ?? {} } -export function isInSet(mark: MarkupMark, marks: MarkupMark[]): boolean { +export function isInSet (mark: MarkupMark, marks: MarkupMark[]): boolean { return marks.find((m) => markEq(mark, m)) !== undefined } -export function addToSet(mark: MarkupMark, marks: MarkupMark[]): MarkupMark[] { +export function addToSet (mark: MarkupMark, marks: MarkupMark[]): MarkupMark[] { const m = marks.find((m) => markEq(mark, m)) if (m !== undefined) { // We already have mark @@ -33,14 +33,14 @@ export function addToSet(mark: MarkupMark, marks: MarkupMark[]): MarkupMark[] { return [...marks, mark] } -export function removeFromSet(markType: MarkupMarkType, marks: MarkupMark[]): MarkupMark[] { +export function removeFromSet (markType: MarkupMarkType, marks: MarkupMark[]): MarkupMark[] { return marks.filter((m) => m.type !== markType) } -export function sameSet(a?: MarkupMark[], b?: MarkupMark[]): boolean { +export function sameSet (a?: MarkupMark[], b?: MarkupMark[]): boolean { return deepEqual(a, b) } -export function markEq(first: MarkupMark, other: MarkupMark): boolean { +export function markEq (first: MarkupMark, other: MarkupMark): boolean { return deepEqual(first, other) } diff --git a/foundations/core/packages/text-markdown/src/node.ts b/foundations/core/packages/text-markdown/src/node.ts index c92b0a32fc..45c6f286bc 100644 --- a/foundations/core/packages/text-markdown/src/node.ts +++ b/foundations/core/packages/text-markdown/src/node.ts @@ -15,10 +15,10 @@ import { Attrs, MarkupNode } from '@hcengineering/text-core' -export function nodeContent(node: MarkupNode): MarkupNode[] { +export function nodeContent (node: MarkupNode): MarkupNode[] { return node?.content ?? [] } -export function nodeAttrs(node: MarkupNode): Attrs { +export function nodeAttrs (node: MarkupNode): Attrs { return node.attrs ?? {} } diff --git a/foundations/core/packages/text-markdown/src/parser.ts b/foundations/core/packages/text-markdown/src/parser.ts index f92a894e25..6e71bae4cc 100644 --- a/foundations/core/packages/text-markdown/src/parser.ts +++ b/foundations/core/packages/text-markdown/src/parser.ts @@ -24,7 +24,7 @@ import { nodeContent } from './node' type SpecRule = T | ((tok: Token, state: MarkdownParseState) => T) -function readSpec(rule: SpecRule, tok: Token, state: MarkdownParseState): T { +function readSpec (rule: SpecRule, tok: Token, state: MarkdownParseState): T { if (typeof rule === 'function') { return (rule as (tok: Token, state: MarkdownParseState) => T)(tok, state) } @@ -50,7 +50,7 @@ interface ParsingMarkRule { } interface ParsingSpecialRule { - type: (state: MarkdownParseState, tok: Token) => { type: MarkupMarkType | MarkupNodeType; node: boolean } | undefined + type: (state: MarkdownParseState, tok: Token) => { type: MarkupMarkType | MarkupNodeType, node: boolean } | undefined getAttrs?: (tok: Token, state: MarkdownParseState) => Attrs | undefined } @@ -65,10 +65,10 @@ type HandlersRecord = Record // **************************************************************** // Markdown parser // **************************************************************** -function isText(a: MarkupNode, b: MarkupNode): boolean { +function isText (a: MarkupNode, b: MarkupNode): boolean { return (a.type === MarkupNodeType.text || a.type === MarkupNodeType.reference) && b.type === MarkupNodeType.text } -function maybeMerge(a: MarkupNode, b: MarkupNode): MarkupNode | undefined { +function maybeMerge (a: MarkupNode, b: MarkupNode): MarkupNode | undefined { if (isText(a, b) && (sameSet(a.marks, b.marks) || (a.text === '' && (a.marks?.length ?? 0) === 0))) { if (a.text === '' && (a.marks?.length ?? 0) === 0) { return { ...b } @@ -90,7 +90,7 @@ class MarkdownParseState { marks: MarkupMark[] tokenHandlers: Record void> - constructor( + constructor ( tokenHandlers: Record void>, readonly refUrl: string, readonly imageUrl: string @@ -100,18 +100,18 @@ class MarkdownParseState { this.tokenHandlers = tokenHandlers } - top(): StateElement | undefined { + top (): StateElement | undefined { return this.stack[this.stack.length - 1] } - push(elt: MarkupNode): void { + push (elt: MarkupNode): void { if (this.stack.length > 0) { const tt = this.top() tt?.content.push(elt) } } - mergeWithLast(nodes: MarkupNode[], node: MarkupNode): boolean { + mergeWithLast (nodes: MarkupNode[], node: MarkupNode): boolean { const last = nodes[nodes.length - 1] let merged: MarkupNode | undefined if (last !== undefined && (merged = maybeMerge(last, node)) !== undefined) { @@ -123,7 +123,7 @@ class MarkdownParseState { // Adds the given text to the current position in the document, // using the current marks as styling. - addText(text?: string): void { + addText (text?: string): void { const top = this.top() if (text === undefined || top === undefined || text.length === 0) { return @@ -145,16 +145,16 @@ class MarkdownParseState { } // Adds the given mark to the set of active marks. - openMark(mark: MarkupMark): void { + openMark (mark: MarkupMark): void { this.marks = addToSet(mark, this.marks) } // Removes the given mark from the set of active marks. - closeMark(mark: MarkupMarkType): void { + closeMark (mark: MarkupMarkType): void { this.marks = removeFromSet(mark, this.marks) } - parseTokens(toks: Token[] | null): void { + parseTokens (toks: Token[] | null): void { const _toks = [...(toks ?? [])] while (_toks.length > 0) { const tok = _toks.shift() @@ -197,7 +197,7 @@ class MarkdownParseState { } // Add a node at the current position. - addNode(type: MarkupNodeType, attrs: Attrs, content: MarkupNode[] = []): MarkupNode { + addNode (type: MarkupNodeType, attrs: Attrs, content: MarkupNode[] = []): MarkupNode { const node: MarkupNode = { type, content } if (Object.keys(attrs ?? {}).length > 0) { @@ -211,12 +211,12 @@ class MarkdownParseState { } // Wrap subsequent content in a node of the given type. - openNode(type: MarkupNodeType, attrs: Attrs): void { + openNode (type: MarkupNodeType, attrs: Attrs): void { this.stack.push({ type, attrs, content: [] }) } // Close and return the node that is currently on top of the stack. - closeNode(): MarkupNode { + closeNode (): MarkupNode { if (this.marks.length > 0) this.marks = [] const info = this.stack.pop() if (info !== undefined) { @@ -226,7 +226,7 @@ class MarkdownParseState { } } -function attrs( +function attrs ( spec: ParsingBlockRule | ParsingMarkRule | ParsingNodeRule, token: Token, state: MarkdownParseState @@ -236,15 +236,15 @@ function attrs( // Code content is represented as a single token with a `content` // property in Markdown-it. -function noCloseToken(spec: ParsingBlockRule | ParsingMarkRule, type: string): boolean { +function noCloseToken (spec: ParsingBlockRule | ParsingMarkRule, type: string): boolean { return (spec.noCloseToken ?? false) || ['code_inline', 'code_block', 'fence'].indexOf(type) > 0 } -function withoutTrailingNewline(str: string): string { +function withoutTrailingNewline (str: string): string { return str[str.length - 1] === '\n' ? str.slice(0, str.length - 1) : str } -function addSpecBlock( +function addSpecBlock ( handlers: HandlersRecord, spec: ParsingBlockRule, type: string, @@ -267,7 +267,7 @@ function addSpecBlock( } } } -function newSimpleBlockHandler(specBlock: SpecRule, spec: ParsingBlockRule): HandlerRecord { +function newSimpleBlockHandler (specBlock: SpecRule, spec: ParsingBlockRule): HandlerRecord { return (state, tok) => { state.openNode(readSpec(specBlock, tok, state), attrs(spec, tok, state)) state.addText(withoutTrailingNewline(tok.content)) @@ -275,7 +275,7 @@ function newSimpleBlockHandler(specBlock: SpecRule, spec: Parsin } } -function addSpecMark(handlers: HandlersRecord, spec: ParsingMarkRule, type: string, specMark: MarkupMarkType): void { +function addSpecMark (handlers: HandlersRecord, spec: ParsingMarkRule, type: string, specMark: MarkupMarkType): void { if (noCloseToken(spec, type)) { handlers[type] = newSimpleMarkHandler(spec, specMark) } else { @@ -287,7 +287,7 @@ function addSpecMark(handlers: HandlersRecord, spec: ParsingMarkRule, type: stri } } } -function addSpecialRule(handlers: HandlersRecord, spec: ParsingSpecialRule, type: string): void { +function addSpecialRule (handlers: HandlersRecord, spec: ParsingSpecialRule, type: string): void { handlers[type + '_open'] = (state, tok) => { const type = spec.type(state, tok) if (type !== undefined) { @@ -309,11 +309,11 @@ function addSpecialRule(handlers: HandlersRecord, spec: ParsingSpecialRule, type } } } -function addIgnoreRule(handlers: HandlersRecord, spec: ParsingIgnoreRule, type: string): void { +function addIgnoreRule (handlers: HandlersRecord, spec: ParsingIgnoreRule, type: string): void { handlers[type + '_open'] = (state, tok) => {} handlers[type + '_close'] = (state, tok) => {} } -function newSimpleMarkHandler(spec: ParsingMarkRule, specMark: MarkupMarkType): HandlerRecord { +function newSimpleMarkHandler (spec: ParsingMarkRule, specMark: MarkupMarkType): HandlerRecord { return (state: MarkdownParseState, tok: Token): void => { state.openMark({ attrs: attrs(spec, tok, state), type: specMark }) state.addText(withoutTrailingNewline(tok.content)) @@ -321,7 +321,7 @@ function newSimpleMarkHandler(spec: ParsingMarkRule, specMark: MarkupMarkType): } } -function tokenHandlers( +function tokenHandlers ( tokensBlock: Record, tokensNode: Record, tokensMark: Record, @@ -395,7 +395,7 @@ function tokenHandlers( return handlers } -function addTextHandlers(handlers: HandlersRecord): void { +function addTextHandlers (handlers: HandlersRecord): void { handlers.text = (state, tok) => { state.addText(tok.content) } @@ -407,11 +407,11 @@ function addTextHandlers(handlers: HandlersRecord): void { } } -function addSpecNode(handlers: HandlersRecord, type: string, spec: ParsingNodeRule): void { +function addSpecNode (handlers: HandlersRecord, type: string, spec: ParsingNodeRule): void { handlers[type] = (state: MarkdownParseState, tok: Token) => state.addNode(spec.node, attrs(spec, tok, state)) } -function tokAttrGet(token: Token, name: string): string | undefined { +function tokAttrGet (token: Token, name: string): string | undefined { const attr = token.attrGet(name) if (attr != null) { return attr @@ -424,7 +424,7 @@ function tokAttrGet(token: Token, name: string): string | undefined { } } -function tokToAttrs(token: Token, ...names: string[]): Record { +function tokToAttrs (token: Token, ...names: string[]): Record { const result: Record = {} for (const name of names) { const attr = token.attrGet(name) @@ -435,7 +435,7 @@ function tokToAttrs(token: Token, ...names: string[]): Record { return result } -function todoItemMetaAttrsGet(tok: Token): Record { +function todoItemMetaAttrsGet (tok: Token): Record { const userid = tokAttrGet(tok, 'userid') const todoid = tokAttrGet(tok, 'todoid') @@ -675,7 +675,7 @@ export class MarkdownParser { tokenHandlers: Record void> htmlParser: HtmlParser - constructor(private readonly options: MarkdownParserOptions) { + constructor (private readonly options: MarkdownParserOptions) { this.tokenizer = MarkdownIt('default', { html: true }) @@ -686,7 +686,7 @@ export class MarkdownParser { this.tokenHandlers = tokenHandlers(tokensBlock, tokensNode, tokensMark, specialRule, ignoreRule, this.htmlParser) } - parse(text: string): MarkupNode { + parse (text: string): MarkupNode { const state = new MarkdownParseState(this.tokenHandlers, this.options.refUrl, this.options.imageUrl) let doc: MarkupNode @@ -714,7 +714,7 @@ export class MarkdownParser { listRule: RuleCore = (state: TaskListStateCore): boolean => { const tokens = (state as any).tokens - const states: Array<{ closeIdx: number; lastItemIdx: number }> = [] + const states: Array<{ closeIdx: number, lastItemIdx: number }> = [] // step #1 - convert list items to todo items for (let open = 0; open < tokens.length; open++) { @@ -763,7 +763,7 @@ export class MarkdownParser { } } -function convertTodoList(tokens: Token[], open: number, close: number, item: number): void { +function convertTodoList (tokens: Token[], open: number, close: number, item: number): void { if (tokens[open].type !== 'bullet_list_open') { throw new Error('bullet_list_open token expected') } @@ -777,7 +777,7 @@ function convertTodoList(tokens: Token[], open: number, close: number, item: num } } -function convertTodoItem(tokens: Token[], open: number): boolean { +function convertTodoItem (tokens: Token[], open: number): boolean { const close = findListItemCloseToken(tokens, open) if (close !== -1) { tokens[open].type = 'todo_item_open' @@ -821,7 +821,7 @@ function convertTodoItem(tokens: Token[], open: number): boolean { return false } -function findListItemCloseToken(tokens: Token[], open: number): number { +function findListItemCloseToken (tokens: Token[], open: number): number { if (tokens[open].type !== 'list_item_open') { throw new Error('list_item_open token expected') } @@ -840,7 +840,7 @@ function findListItemCloseToken(tokens: Token[], open: number): number { // tokens[i].type === list_item_open // tokens[i + 1].type === paragraph // tokens[i + 2].type === inline -function isTodoListItem(tokens: Token[], pos: number): boolean { +function isTodoListItem (tokens: Token[], pos: number): boolean { return ( isListItemToken(tokens[pos]) && isParagraphToken(tokens[pos + 1]) && @@ -849,7 +849,7 @@ function isTodoListItem(tokens: Token[], pos: number): boolean { ) } -function convertStringLikeToken(tok: Token, attrValue?: string): string { +function convertStringLikeToken (tok: Token, attrValue?: string): string { if (typeof attrValue === 'string' && attrValue !== '') { return attrValue } diff --git a/foundations/core/packages/text-markdown/src/serializer.ts b/foundations/core/packages/text-markdown/src/serializer.ts index db879540e2..dd204f3d79 100644 --- a/foundations/core/packages/text-markdown/src/serializer.ts +++ b/foundations/core/packages/text-markdown/src/serializer.ts @@ -56,11 +56,11 @@ interface InlineState { // ************************************************************* -function backticksFor(side: boolean): string { +function backticksFor (side: boolean): string { return side ? '`' : '`' } -function isPlainURL(link: MarkupMark, parent: MarkupNode, index: number): boolean { +function isPlainURL (link: MarkupMark, parent: MarkupNode, index: number): boolean { if (link.attrs?.title !== undefined || !/^\w+:/.test(link.attrs?.href)) return false const content = parent.content?.[index] if (content === undefined) { @@ -459,7 +459,7 @@ export class MarkdownState implements IState { imageUrl: string htmlWriter: HtmlWriter - constructor( + constructor ( nodes = storeNodes, marks = storeMarks, options: StateOptions = { tightLists: true, refUrl: 'ref://', imageUrl: 'http://' } @@ -476,7 +476,7 @@ export class MarkdownState implements IState { this.options = options } - flushClose(size: number): void { + flushClose (size: number): void { if (this.closed) { if (!this.atBlank()) this.out += '\n' if (size > 1) { @@ -486,7 +486,7 @@ export class MarkdownState implements IState { } } - private addDelim(size: number): void { + private addDelim (size: number): void { let delimMin = this.delim const trim = /\s+$/.exec(delimMin) if (trim !== null) { @@ -497,11 +497,11 @@ export class MarkdownState implements IState { } } - renderHtml(node: MarkupNode): string { + renderHtml (node: MarkupNode): string { return this.htmlWriter(node) } - wrapBlock(delim: string, firstDelim: string | null, node: MarkupNode, f: () => void): void { + wrapBlock (delim: string, firstDelim: string | null, node: MarkupNode, f: () => void): void { const old = this.delim this.write(firstDelim ?? delim) this.delim += delim @@ -510,13 +510,13 @@ export class MarkdownState implements IState { this.closeBlock(node) } - atBlank(): boolean { + atBlank (): boolean { return /(^|\n)$/.test(this.out) } // :: () // Ensure the current content ends with a newline. - ensureNewLine(): void { + ensureNewLine (): void { if (!this.atBlank()) this.out += '\n' } @@ -524,7 +524,7 @@ export class MarkdownState implements IState { // Prepare the state for writing output (closing closed paragraphs, // adding delimiters, and so on), and then optionally add content // (unescaped) to the output. - write(content: string): void { + write (content: string): void { this.flushClose(2) if (this.delim !== undefined && this.atBlank()) this.out += this.delim if (content.length > 0) this.out += content @@ -532,7 +532,7 @@ export class MarkdownState implements IState { // :: (Node) // Close the block for the given node. - closeBlock(node: MarkupNode): void { + closeBlock (node: MarkupNode): void { this.closedNode = node this.closed = true } @@ -540,7 +540,7 @@ export class MarkdownState implements IState { // :: (string, ?bool) // Add the given text to the document. When escape is not `false`, // it will be escaped. - text(text: string, escape = false): void { + text (text: string, escape = false): void { const lines = text.split('\n') for (let i = 0; i < lines.length; i++) { const startOfLine = this.atBlank() || this.closed @@ -561,13 +561,13 @@ export class MarkdownState implements IState { // :: (Node) // Render the contents of `parent` as block nodes. - renderContent(parent: MarkupNode): void { + renderContent (parent: MarkupNode): void { nodeContent(parent).forEach((node: MarkupNode, i: number) => { this.render(node, parent, i) }) } - reorderMixableMark(state: InlineState, mark: MarkupMark, i: number, len: number): void { + reorderMixableMark (state: InlineState, mark: MarkupMark, i: number, len: number): void { for (let j = 0; j < state.active.length; j++) { const other = state.active[j] if (!this.marks[other.type].mixable || this.checkSwitchMarks(i, j, state, mark, other, len)) { @@ -576,7 +576,7 @@ export class MarkdownState implements IState { } } - reorderMixableMarks(state: InlineState, len: number): void { + reorderMixableMarks (state: InlineState, len: number): void { // Try to reorder 'mixable' marks, such as em and strong, which // in Markdown may be opened and closed in different order, so // that order of the marks for the token matches the order in @@ -593,7 +593,7 @@ export class MarkdownState implements IState { } } - private checkSwitchMarks( + private checkSwitchMarks ( i: number, j: number, state: InlineState, @@ -608,7 +608,7 @@ export class MarkdownState implements IState { return true } - private switchMarks(i: number, j: number, state: InlineState, mark: MarkupMark, len: number): void { + private switchMarks (i: number, j: number, state: InlineState, mark: MarkupMark, len: number): void { if (i > j) { state.marks = state.marks .slice(0, j) @@ -625,7 +625,7 @@ export class MarkdownState implements IState { } } - renderNodeInline(state: InlineState, index: number): void { + renderNodeInline (state: InlineState, index: number): void { state.marks = state.node?.marks ?? [] this.updateHardBreakMarks(state, index) @@ -647,7 +647,7 @@ export class MarkdownState implements IState { this.checkOpenMarks(state, len, index, inner, noEsc) } - private checkOpenMarks( + private checkOpenMarks ( state: InlineState, len: number, index: number, @@ -667,7 +667,7 @@ export class MarkdownState implements IState { } } - private isNoEscapeRequire( + private isNoEscapeRequire ( node: MarkupNode, inner: MarkupMark | undefined, noEsc: boolean, @@ -676,7 +676,7 @@ export class MarkdownState implements IState { return inner !== undefined && noEsc && node.type === MarkupNodeType.text } - private renderMarkText(inner: MarkupMark, state: InlineState, index: number): void { + private renderMarkText (inner: MarkupMark, state: InlineState, index: number): void { this.text( this.markString(inner, true, state.parent, index) + (state.node?.text as string) + @@ -685,7 +685,7 @@ export class MarkdownState implements IState { ) } - private updateActiveMarks(state: InlineState, len: number, index: number): void { + private updateActiveMarks (state: InlineState, len: number, index: number): void { while (state.active.length < len) { const add = state.marks[state.active.length] state.active.push(add) @@ -693,7 +693,7 @@ export class MarkdownState implements IState { } } - private checkCloseMarks(state: InlineState, len: number, index: number): void { + private checkCloseMarks (state: InlineState, len: number, index: number): void { let keep = 0 while (keep < Math.min(state.active.length, len) && markEq(state.marks[keep], state.active[keep])) { ++keep @@ -708,7 +708,7 @@ export class MarkdownState implements IState { } } - private adjustLeading(state: InlineState): string { + private adjustLeading (state: InlineState): string { let leading = state.trailing state.trailing = '' // If whitespace has to be expelled from the node, adjust @@ -726,11 +726,11 @@ export class MarkdownState implements IState { return leading } - private isMarksHasExpelEnclosingWhitespace(state: InlineState): boolean { + private isMarksHasExpelEnclosingWhitespace (state: InlineState): boolean { return state.marks.some((mark) => this.marks[mark.type]?.expelEnclosingWhitespace) } - private adjustLeadingTextNode( + private adjustLeadingTextNode ( lead: string, trail: string, state: InlineState, @@ -745,13 +745,13 @@ export class MarkdownState implements IState { } } - private updateHardBreakMarks(state: InlineState, index: number): void { + private updateHardBreakMarks (state: InlineState, index: number): void { if (state.node !== undefined && state.node.type === MarkupNodeType.hard_break) { state.marks = this.filterHardBreakMarks(state.marks, index, state) } } - private filterHardBreakMarks(marks: MarkupMark[], index: number, state: InlineState): MarkupMark[] { + private filterHardBreakMarks (marks: MarkupMark[], index: number, state: InlineState): MarkupMark[] { const content = state.parent.content ?? [] const next = content[index + 1] if (!this.isHardbreakText(next)) { @@ -760,19 +760,19 @@ export class MarkdownState implements IState { return marks.filter((m) => isInSet(m, next.marks ?? [])) } - private isHardbreakText(next?: MarkupNode): boolean { + private isHardbreakText (next?: MarkupNode): boolean { return ( next !== undefined && (next.type !== MarkupNodeType.text || (next.text !== undefined && /\S/.test(next.text))) ) } - private isText(node?: MarkupNode): boolean { + private isText (node?: MarkupNode): boolean { return node !== undefined && node.type === MarkupNodeType.text && node.text !== undefined } // :: (Node) // Render the contents of `parent` as inline content. - renderInline(parent: MarkupNode): void { + renderInline (parent: MarkupNode): void { const state: InlineState = { active: [], trailing: '', parent, marks: [] } nodeContent(parent).forEach((nde, index) => { state.node = nde @@ -787,7 +787,7 @@ export class MarkdownState implements IState { // indentation added to all lines except the first in an item, // `firstDelim` is a function going from an item index to a // delimiter for the first line of the item. - renderList(node: MarkupNode, delim: string, firstDelim: FirstDelim): void { + renderList (node: MarkupNode, delim: string, firstDelim: FirstDelim): void { this.flushListClose(node) const isTight: boolean = @@ -801,7 +801,7 @@ export class MarkdownState implements IState { this.inTightList = prevTight } - renderListItem( + renderListItem ( node: MarkupNode, child: MarkupNode, i: number, @@ -815,7 +815,7 @@ export class MarkdownState implements IState { }) } - private flushListClose(node: MarkupNode): void { + private flushListClose (node: MarkupNode): void { if (this.closed && this.closedNode?.type === node.type) { this.flushClose(3) } else if (this.inTightList) { @@ -827,7 +827,7 @@ export class MarkdownState implements IState { // Escape the given string so that it can safely appear in Markdown // content. If `startOfLine` is true, also escape characters that // has special meaning only at the start of the line. - esc(str: string, startOfLine = false): string { + esc (str: string, startOfLine = false): string { if (str == null) { return '' } @@ -839,7 +839,7 @@ export class MarkdownState implements IState { return str } - htmlEsc(str: string): string { + htmlEsc (str: string): string { if (str == null) { return '' } @@ -852,14 +852,14 @@ export class MarkdownState implements IState { .replace(/'/g, ''') } - quote(str: string): string { + quote (str: string): string { const wrap = !(str?.includes('"') ?? false) ? '""' : !(str?.includes("'") ?? false) ? "''" : '()' return wrap[0] + str + wrap[1] } // :: (string, number) → string // Repeat the given string `n` times. - repeat(str: string, n: number): string { + repeat (str: string, n: number): string { let out = '' for (let i = 0; i < n; i++) out += str return out @@ -867,7 +867,7 @@ export class MarkdownState implements IState { // : (Mark, bool, string?) → string // Get the markdown string for a given opening or closing mark. - markString(mark: MarkupMark, open: boolean, parent: MarkupNode, index: number): string { + markString (mark: MarkupMark, open: boolean, parent: MarkupNode, index: number): string { let value = mark.attrs?.marker if (value === undefined) { const info = this.marks[mark.type] @@ -880,7 +880,7 @@ export class MarkdownState implements IState { } } -function makeQuery(obj: Record): string { +function makeQuery (obj: Record): string { return Object.keys(obj) .filter((it) => it[1] != null) .map(function (k) { diff --git a/foundations/core/packages/text-ydoc/src/__tests__/ydoc.test.ts b/foundations/core/packages/text-ydoc/src/__tests__/ydoc.test.ts index 7f078a24b8..43d6f6fab5 100644 --- a/foundations/core/packages/text-ydoc/src/__tests__/ydoc.test.ts +++ b/foundations/core/packages/text-ydoc/src/__tests__/ydoc.test.ts @@ -31,7 +31,7 @@ declare global { } expect.extend({ - toEqualMarkup(received: string, expected: string) { + toEqualMarkup (received: string, expected: string) { const pass = received === expected || deepEqual(JSON.parse(received), JSON.parse(expected)) return { message: () => @@ -42,7 +42,7 @@ expect.extend({ } }, - toEqualYdoc(received: YDoc, expected: YDoc) { + toEqualYdoc (received: YDoc, expected: YDoc) { const expectedJSON = expected.toJSON() const receivedJSON = received.toJSON() @@ -57,19 +57,19 @@ expect.extend({ } }) -function referenceMarkupToYDoc(markup: Markup, field: string): YDoc { +function referenceMarkupToYDoc (markup: Markup, field: string): YDoc { const ydoc = new YDoc({ guid: generateId() }) const fragment = ydoc.getXmlFragment(field) prosemirrorToYXmlFragment(jsonToPmNode(markupToJSON(markup)), fragment) return ydoc } -function referenceYDocToMarkup(ydoc: YDoc, field: string): Markup { +function referenceYDocToMarkup (ydoc: YDoc, field: string): Markup { const json = yDocToProsemirrorJSON(ydoc, field) return jsonToMarkup(json as MarkupNode) } -const markups: Array<{ name: string; markup: Markup; skipYdocCompare?: boolean }> = [ +const markups: Array<{ name: string, markup: Markup, skipYdocCompare?: boolean }> = [ { name: 'text', markup: '{"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"hello world"}]}]}' diff --git a/foundations/core/packages/text-ydoc/src/ydoc.ts b/foundations/core/packages/text-ydoc/src/ydoc.ts index 65f151b2ba..f777c7eb4a 100644 --- a/foundations/core/packages/text-ydoc/src/ydoc.ts +++ b/foundations/core/packages/text-ydoc/src/ydoc.ts @@ -23,7 +23,7 @@ import { Doc as YDoc, XmlElement as YXmlElement, XmlFragment as YXmlFragment, Xm * * @public */ -export function markupToYDoc(markup: Markup, field: string): YDoc { +export function markupToYDoc (markup: Markup, field: string): YDoc { return jsonToYDoc(markupToJSON(markup), field) } @@ -32,7 +32,7 @@ export function markupToYDoc(markup: Markup, field: string): YDoc { * * @public */ -export function jsonToYDoc(json: MarkupNode, field: string): YDoc { +export function jsonToYDoc (json: MarkupNode, field: string): YDoc { const ydoc = new YDoc({ guid: generateId() }) const fragment = ydoc.getXmlFragment(field) @@ -42,7 +42,7 @@ export function jsonToYDoc(json: MarkupNode, field: string): YDoc { return ydoc } -function nodeToXmlElement(parent: YXmlFragment, node: MarkupNode): YXmlElement | YXmlText { +function nodeToXmlElement (parent: YXmlFragment, node: MarkupNode): YXmlElement | YXmlText { const elem = node.type === 'text' ? new YXmlText() : new YXmlElement(node.type) parent.push([elem]) @@ -88,13 +88,13 @@ function nodeToXmlElement(parent: YXmlFragment, node: MarkupNode): YXmlElement | * * @public */ -export function yDocToMarkup(ydoc: YDoc, field: string): Markup { +export function yDocToMarkup (ydoc: YDoc, field: string): Markup { const fragment = ydoc.getXmlFragment(field) const json = xmlFragmentToNode(fragment) return jsonToMarkup({ type: MarkupNodeType.doc, content: json }) } -function xmlFragmentToNode(fragment: YXmlFragment): MarkupNode[] { +function xmlFragmentToNode (fragment: YXmlFragment): MarkupNode[] { const result: MarkupNode[] = [] for (let i = 0; i < fragment.length; i++) { diff --git a/foundations/core/packages/text/src/kit.ts b/foundations/core/packages/text/src/kit.ts index f3432ffad3..7600dbf98f 100644 --- a/foundations/core/packages/text/src/kit.ts +++ b/foundations/core/packages/text/src/kit.ts @@ -29,13 +29,13 @@ export type ExtensionSpecOptions = { [K in keyof T]: T[K] extends ExtensionSpec ? Partial | boolean : never } -export function extensionKit( +export function extensionKit ( name: string, fn: (e: ExtensionFactory, o: O) => K ): Extension> { return Extension.create({ name, - addExtensions() { + addExtensions () { const e: ExtensionFactory = (extension, options) => { // ExtensionFactory -> ExtensionSpec is mostly intented as a wrapper to provide a comfortable typing return { extension, options: options ?? true } @@ -70,7 +70,7 @@ export function extensionKit( }) } -export function mergeKitOptions>(target: T, source: T): T { +export function mergeKitOptions> (target: T, source: T): T { if (typeof target === 'object' && typeof source === 'object') { const output = { ...target } Object.keys(source).forEach((key: keyof T) => { diff --git a/foundations/core/packages/text/src/marks/code.ts b/foundations/core/packages/text/src/marks/code.ts index d50c7f18b1..282848acfe 100644 --- a/foundations/core/packages/text/src/marks/code.ts +++ b/foundations/core/packages/text/src/marks/code.ts @@ -15,7 +15,7 @@ export const codeOptions: CodeOptions = { * import 'prosemirror-codemark/dist/codemark.css' */ export const CodeExtension = Code.extend({ - addProseMirrorPlugins() { + addProseMirrorPlugins () { return [ ...codemark({ markType: this.editor.schema.marks.code }), new Plugin({ diff --git a/foundations/core/packages/text/src/marks/colors.ts b/foundations/core/packages/text/src/marks/colors.ts index 6f93d7aee9..3c68a476a6 100644 --- a/foundations/core/packages/text/src/marks/colors.ts +++ b/foundations/core/packages/text/src/marks/colors.ts @@ -34,13 +34,13 @@ declare module '@tiptap/core' { export const BackgroundColor = Extension.create({ name: 'backgroundColor', - addOptions() { + addOptions () { return { types: [] } }, - addGlobalAttributes() { + addGlobalAttributes () { return [ { types: this.options.types, @@ -65,7 +65,7 @@ export const BackgroundColor = Extension.create({ ] }, - addCommands() { + addCommands () { return { setBackgroundColor: (backgroundColor: string) => @@ -93,13 +93,13 @@ export interface TextColorOptions { export const TextColor = Extension.create({ name: 'textColor', - addOptions() { + addOptions () { return { types: ['textStyle'] } }, - addGlobalAttributes() { + addGlobalAttributes () { return [ { types: this.options.types, @@ -124,7 +124,7 @@ export const TextColor = Extension.create({ ] }, - addCommands() { + addCommands () { return { setTextColor: (color: string) => diff --git a/foundations/core/packages/text/src/marks/inlineComment.ts b/foundations/core/packages/text/src/marks/inlineComment.ts index f3daf43149..a2d942fc57 100644 --- a/foundations/core/packages/text/src/marks/inlineComment.ts +++ b/foundations/core/packages/text/src/marks/inlineComment.ts @@ -23,7 +23,7 @@ export const InlineCommentMark = Mark.create({ inclusive: false, - parseHTML() { + parseHTML () { return [ { tag: 'span.proseInlineComment[data-inline-comment-thread]' @@ -31,11 +31,11 @@ export const InlineCommentMark = Mark.create({ ] }, - renderHTML({ HTMLAttributes, mark }) { + renderHTML ({ HTMLAttributes, mark }) { return ['span', { ...HTMLAttributes, class: 'proseInlineComment' }, 0] }, - addAttributes() { + addAttributes () { const name = 'data-inline-comment-thread-id' return { thread: { @@ -50,12 +50,12 @@ export const InlineCommentMark = Mark.create({ } }, - addProseMirrorPlugins() { + addProseMirrorPlugins () { return [...(this.parent?.() ?? []), InlineCommentPasteFixPlugin()] } }) -function removeMarkFromNode(node: Node, name: string): Node { +function removeMarkFromNode (node: Node, name: string): Node { if (node.isText) { return node.mark(node.marks.filter((mark) => mark.type.name !== name)) } @@ -71,7 +71,7 @@ function removeMarkFromNode(node: Node, name: string): Node { return node } -export function InlineCommentPasteFixPlugin(): Plugin { +export function InlineCommentPasteFixPlugin (): Plugin { return new Plugin({ key: new PluginKey('inline-comment-paste-fix-plugin'), props: { diff --git a/foundations/core/packages/text/src/marks/noteBase.ts b/foundations/core/packages/text/src/marks/noteBase.ts index 6cee47eb56..1114d061ce 100644 --- a/foundations/core/packages/text/src/marks/noteBase.ts +++ b/foundations/core/packages/text/src/marks/noteBase.ts @@ -26,7 +26,7 @@ declare module '@tiptap/core' { export const NoteBaseExtension = Mark.create({ name, - parseHTML() { + parseHTML () { return [ { tag: `span[data-mark="${name}"]` @@ -34,7 +34,7 @@ export const NoteBaseExtension = Mark.create({ ] }, - renderHTML({ HTMLAttributes, mark }) { + renderHTML ({ HTMLAttributes, mark }) { return [ 'span', { ...HTMLAttributes, 'data-mark': this.name, class: `theme-text-editor-note-anchor ${mark.attrs.kind}` }, @@ -42,7 +42,7 @@ export const NoteBaseExtension = Mark.create({ ] }, - addAttributes() { + addAttributes () { return { title: { default: null diff --git a/foundations/core/packages/text/src/marks/qmsInlineCommentMark.ts b/foundations/core/packages/text/src/marks/qmsInlineCommentMark.ts index 600e36db76..72391e10dc 100644 --- a/foundations/core/packages/text/src/marks/qmsInlineCommentMark.ts +++ b/foundations/core/packages/text/src/marks/qmsInlineCommentMark.ts @@ -9,7 +9,7 @@ export const QMSInlineCommentMark = Mark.create({ name: NAME, inline: true, - parseHTML() { + parseHTML () { return [ { tag: `span[${NAME}]` @@ -17,7 +17,7 @@ export const QMSInlineCommentMark = Mark.create({ ] }, - renderHTML({ HTMLAttributes }) { + renderHTML ({ HTMLAttributes }) { return ['span', HTMLAttributes, 0] } }) diff --git a/foundations/core/packages/text/src/markup/__tests__/utils.test.ts b/foundations/core/packages/text/src/markup/__tests__/utils.test.ts index 1fb1554f17..6a4b55e6ee 100644 --- a/foundations/core/packages/text/src/markup/__tests__/utils.test.ts +++ b/foundations/core/packages/text/src/markup/__tests__/utils.test.ts @@ -284,7 +284,7 @@ describe('pmNodeToJSON', () => { const json: MarkupNode = { type: MarkupNodeType.paragraph, - attrs: { textAlign: null as any }, + attrs: { textAlign: null }, content: [nodeText('Hello, world!')] } expect(pmNodeToJSON(node)).toEqual(json) @@ -310,7 +310,7 @@ describe('jsonToPmNode', () => { content: [ { type: MarkupNodeType.paragraph, - attrs: { textAlign: null as any }, + attrs: { textAlign: null }, content: [ { type: MarkupNodeType.text, diff --git a/foundations/core/packages/text/src/markup/utils.ts b/foundations/core/packages/text/src/markup/utils.ts index e84f360e61..0746171454 100644 --- a/foundations/core/packages/text/src/markup/utils.ts +++ b/foundations/core/packages/text/src/markup/utils.ts @@ -25,25 +25,25 @@ import { defaultExtensions } from '../extensions' const defaultSchema = getSchema(defaultExtensions) /** @public */ -export function getMarkup(editor?: Editor): Markup { +export function getMarkup (editor?: Editor): Markup { return jsonToMarkup(editor?.getJSON() as MarkupNode) } // Markup /** @public */ -export function jsonToPmNode(json: MarkupNode, schema?: Schema, extensions?: Extensions): ProseMirrorNode { +export function jsonToPmNode (json: MarkupNode, schema?: Schema, extensions?: Extensions): ProseMirrorNode { schema ??= extensions == null ? defaultSchema : getSchema(extensions ?? defaultExtensions) return ProseMirrorNode.fromJSON(schema, json) } /** @public */ -export function pmNodeToJSON(node: ProseMirrorNode): MarkupNode { +export function pmNodeToJSON (node: ProseMirrorNode): MarkupNode { return node.toJSON() } /** @public */ -export function jsonToText(node: MarkupNode, schema?: Schema, extensions?: Extensions): string { +export function jsonToText (node: MarkupNode, schema?: Schema, extensions?: Extensions): string { const pmNode = jsonToPmNode(node, schema, extensions) return pmNode.textBetween(0, pmNode.content.size, '\n', '') } @@ -56,7 +56,7 @@ export function jsonToText(node: MarkupNode, schema?: Schema, extensions?: Exten // HTML /** @public */ -export function htmlToMarkup(html: string, extensions?: Extensions): Markup { +export function htmlToMarkup (html: string, extensions?: Extensions): Markup { const json = htmlToJSON(html, extensions) return jsonToMarkup(json) } @@ -68,13 +68,13 @@ export function htmlToMarkup(html: string, extensions?: Extensions): Markup { // } /** @public */ -export function htmlToJSON(html: string, extensions?: Extensions): MarkupNode { +export function htmlToJSON (html: string, extensions?: Extensions): MarkupNode { extensions = extensions ?? defaultExtensions return generateJSON(html, extensions, { preserveWhitespace: 'full' }) as MarkupNode } /** @public */ -export function jsonToHTML(json: MarkupNode, extensions?: Extensions): string { +export function jsonToHTML (json: MarkupNode, extensions?: Extensions): string { extensions = extensions ?? defaultExtensions return generateHTML(json, extensions) } diff --git a/foundations/core/packages/text/src/nodes/codeblock.ts b/foundations/core/packages/text/src/nodes/codeblock.ts index 3c52fbafc3..29e686ee29 100644 --- a/foundations/core/packages/text/src/nodes/codeblock.ts +++ b/foundations/core/packages/text/src/nodes/codeblock.ts @@ -39,7 +39,7 @@ export const tildeInputRegex = /^~~~$/ export const CodeBlockExtension = CodeBlock.extend({ marks: 'inline-comment', - addAttributes() { + addAttributes () { return { language: { default: null, @@ -73,7 +73,7 @@ export const CodeBlockExtension = CodeBlock.extend({ } } }, - addInputRules() { + addInputRules () { return [ textblockTypeInputRule({ find: backtickInputRegex, diff --git a/foundations/core/packages/text/src/nodes/comment.ts b/foundations/core/packages/text/src/nodes/comment.ts index e8336f36fa..9bec970fa6 100644 --- a/foundations/core/packages/text/src/nodes/comment.ts +++ b/foundations/core/packages/text/src/nodes/comment.ts @@ -25,7 +25,7 @@ export const CommentNode = Node.create({ content: 'text*', marks: '_', - parseHTML() { + parseHTML () { return [ { tag: 'comment' @@ -33,7 +33,7 @@ export const CommentNode = Node.create({ ] }, - renderText() { + renderText () { return '' } }) diff --git a/foundations/core/packages/text/src/nodes/embed.ts b/foundations/core/packages/text/src/nodes/embed.ts index 7a2616af09..401c1e02ca 100644 --- a/foundations/core/packages/text/src/nodes/embed.ts +++ b/foundations/core/packages/text/src/nodes/embed.ts @@ -18,7 +18,7 @@ import { mergeAttributes, Node } from '@tiptap/core' export const EmbedNode = Node.create({ name: 'embed', - addOptions() { + addOptions () { return {} }, @@ -27,7 +27,7 @@ export const EmbedNode = Node.create({ atom: false, draggable: false, - addAttributes() { + addAttributes () { return { src: { default: null @@ -35,7 +35,7 @@ export const EmbedNode = Node.create({ } }, - parseHTML() { + parseHTML () { return [ { priority: 60, @@ -44,7 +44,7 @@ export const EmbedNode = Node.create({ ] }, - renderHTML({ HTMLAttributes }) { + renderHTML ({ HTMLAttributes }) { return ['figure', { 'data-type': this.name }, ['iframe', mergeAttributes(HTMLAttributes)]] } }) diff --git a/foundations/core/packages/text/src/nodes/emoji.ts b/foundations/core/packages/text/src/nodes/emoji.ts index 52ded58783..21aa434548 100644 --- a/foundations/core/packages/text/src/nodes/emoji.ts +++ b/foundations/core/packages/text/src/nodes/emoji.ts @@ -25,7 +25,7 @@ declare module '@tiptap/core' { } export interface EmojiNodeOptions { - getBlobRef: (fileId: Ref, filename?: string, size?: number) => Promise<{ src: string; srcset: string }> + getBlobRef: (fileId: Ref, filename?: string, size?: number) => Promise<{ src: string, srcset: string }> } export const EmojiNode = Node.create({ @@ -35,7 +35,7 @@ export const EmojiNode = Node.create({ atom: true, selectable: false, - addAttributes() { + addAttributes () { return { emoji: { default: '' @@ -49,7 +49,7 @@ export const EmojiNode = Node.create({ } }, - addCommands() { + addCommands () { return { insertEmoji: (emoji: string, kind: 'unicode' | 'image', image?: Ref) => @@ -63,7 +63,7 @@ export const EmojiNode = Node.create({ } }, - parseHTML() { + parseHTML () { return [ { tag: `span[data-type="${this.name}"]` @@ -71,7 +71,7 @@ export const EmojiNode = Node.create({ ] }, - addNodeView() { + addNodeView () { return ({ node, HTMLAttributes }) => { const container = document.createElement('span') const containerAttributes = mergeAttributes( @@ -107,7 +107,7 @@ export const EmojiNode = Node.create({ } }, - renderHTML({ node, HTMLAttributes }) { + renderHTML ({ node, HTMLAttributes }) { if (node.attrs.kind === 'image') { return [ 'span', diff --git a/foundations/core/packages/text/src/nodes/file.ts b/foundations/core/packages/text/src/nodes/file.ts index c24117a880..8f88dd3305 100644 --- a/foundations/core/packages/text/src/nodes/file.ts +++ b/foundations/core/packages/text/src/nodes/file.ts @@ -28,18 +28,18 @@ export interface FileOptions { export const FileNode = Node.create({ name: 'file', - addOptions() { + addOptions () { return { inline: true, HTMLAttributes: {} } }, - inline() { + inline () { return this.options.inline }, - group() { + group () { return this.options.inline ? 'inline' : 'block' }, @@ -47,7 +47,7 @@ export const FileNode = Node.create({ selectable: true, - addAttributes() { + addAttributes () { return { 'file-id': { default: null @@ -67,7 +67,7 @@ export const FileNode = Node.create({ } }, - parseHTML() { + parseHTML () { return [ { tag: `div[data-type="${this.name}"]` @@ -75,7 +75,7 @@ export const FileNode = Node.create({ ] }, - renderHTML({ node, HTMLAttributes }) { + renderHTML ({ node, HTMLAttributes }) { const nodeAttributes = { 'data-type': this.name } diff --git a/foundations/core/packages/text/src/nodes/image.ts b/foundations/core/packages/text/src/nodes/image.ts index c69af349ca..ae29f14042 100644 --- a/foundations/core/packages/text/src/nodes/image.ts +++ b/foundations/core/packages/text/src/nodes/image.ts @@ -36,7 +36,7 @@ declare module '@tiptap/core' { /** * Add an image */ - setImage: (options: { src: string; alt?: string; title?: string }) => ReturnType + setImage: (options: { src: string, alt?: string, title?: string }) => ReturnType /** * Set image alignment */ @@ -57,7 +57,7 @@ export interface ImageOptions { HTMLAttributes: Record loadingImgSrc?: string - getBlobRef: (fileId: Ref, filename?: string, size?: number) => Promise<{ src: string; srcset: string }> + getBlobRef: (fileId: Ref, filename?: string, size?: number) => Promise<{ src: string, srcset: string }> } /** @@ -66,7 +66,7 @@ export interface ImageOptions { export const ImageNode = Node.create({ name: 'image', - addOptions() { + addOptions () { return { inline: true, HTMLAttributes: {}, @@ -74,11 +74,11 @@ export const ImageNode = Node.create({ } }, - inline() { + inline () { return this.options.inline }, - group() { + group () { return this.options.inline ? 'inline' : 'block' }, @@ -86,7 +86,7 @@ export const ImageNode = Node.create({ selectable: true, - addAttributes() { + addAttributes () { return { 'file-id': { default: null @@ -113,7 +113,7 @@ export const ImageNode = Node.create({ } }, - parseHTML() { + parseHTML () { return [ { tag: `img[data-type="${this.name}"]` @@ -124,7 +124,7 @@ export const ImageNode = Node.create({ ] }, - renderHTML({ node, HTMLAttributes }) { + renderHTML ({ node, HTMLAttributes }) { const divAttributes = { class: 'text-editor-image-container', 'data-type': this.name, diff --git a/foundations/core/packages/text/src/nodes/markdown.ts b/foundations/core/packages/text/src/nodes/markdown.ts index 6d74e8ed1d..dd3e2f2194 100644 --- a/foundations/core/packages/text/src/nodes/markdown.ts +++ b/foundations/core/packages/text/src/nodes/markdown.ts @@ -23,7 +23,7 @@ export const MarkdownNode = Node.create({ code: true, defining: true, - parseHTML() { + parseHTML () { return [ { tag: 'pre[data-type="markdown"]', @@ -32,7 +32,7 @@ export const MarkdownNode = Node.create({ ] }, - renderHTML({ node, HTMLAttributes }) { + renderHTML ({ node, HTMLAttributes }) { return [ 'pre', mergeAttributes({ 'data-type': this.name }, this.options.HTMLAttributes, HTMLAttributes), diff --git a/foundations/core/packages/text/src/nodes/mermaid.ts b/foundations/core/packages/text/src/nodes/mermaid.ts index caf1374cbf..4290c60864 100644 --- a/foundations/core/packages/text/src/nodes/mermaid.ts +++ b/foundations/core/packages/text/src/nodes/mermaid.ts @@ -26,7 +26,7 @@ export const MermaidExtension = CodeBlock.extend({ group: 'block', marks: 'inline-comment', - parseHTML() { + parseHTML () { return [ { tag: 'div.mermaid-diagram', @@ -35,7 +35,7 @@ export const MermaidExtension = CodeBlock.extend({ ] }, - addAttributes() { + addAttributes () { return { language: { default: 'mermaid' diff --git a/foundations/core/packages/text/src/nodes/reference.ts b/foundations/core/packages/text/src/nodes/reference.ts index a0cb5bfad4..8a9bbf685a 100644 --- a/foundations/core/packages/text/src/nodes/reference.ts +++ b/foundations/core/packages/text/src/nodes/reference.ts @@ -39,7 +39,7 @@ export const ReferenceNode = Node.create({ inline: true, selectable: true, - addAttributes() { + addAttributes () { return { id: getDataAttribute('id'), objectclass: getDataAttribute('objectclass'), @@ -59,14 +59,14 @@ export const ReferenceNode = Node.create({ } }, - addOptions() { + addOptions () { return { suggestion: { char: '@' }, HTMLAttributes: {} } }, - parseHTML() { + parseHTML () { return [ { priority: 60, @@ -81,7 +81,7 @@ export const ReferenceNode = Node.create({ ] }, - renderHTML({ node, HTMLAttributes }) { + renderHTML ({ node, HTMLAttributes }) { return [ 'span', mergeAttributes( @@ -100,7 +100,7 @@ export const ReferenceNode = Node.create({ } }) -function getAttrs(el: HTMLSpanElement): Attrs | false { +function getAttrs (el: HTMLSpanElement): Attrs | false { const id = el.dataset.id?.trim() const label = el.dataset.label?.trim() const objectclass = el.dataset.objectclass?.trim() diff --git a/foundations/core/packages/text/src/nodes/todo.ts b/foundations/core/packages/text/src/nodes/todo.ts index 7b1b42f11e..f7d28ba147 100644 --- a/foundations/core/packages/text/src/nodes/todo.ts +++ b/foundations/core/packages/text/src/nodes/todo.ts @@ -7,7 +7,7 @@ export const TodoItemNode = TaskItem.extend({ name: 'todoItem', group: 'listItems', - addOptions() { + addOptions () { return { nested: true, HTMLAttributes: {}, @@ -15,7 +15,7 @@ export const TodoItemNode = TaskItem.extend({ } }, - addAttributes() { + addAttributes () { return { ...this.parent?.(), todoid: getDataAttribute('todoid', { default: null, keepOnSplit: false }), @@ -27,7 +27,7 @@ export const TodoItemNode = TaskItem.extend({ export const TodoListNode = TaskList.extend({ name: 'todoList', - addOptions() { + addOptions () { return { itemTypeName: 'todoItem', HTMLAttributes: {} diff --git a/foundations/core/packages/text/src/nodes/utils.ts b/foundations/core/packages/text/src/nodes/utils.ts index 3dc635307e..0e051f1520 100644 --- a/foundations/core/packages/text/src/nodes/utils.ts +++ b/foundations/core/packages/text/src/nodes/utils.ts @@ -18,7 +18,7 @@ import { Attribute } from '@tiptap/core' /** * @public */ -export function getDataAttribute( +export function getDataAttribute ( name: string, options?: Partial> ): Partial { diff --git a/foundations/core/packages/token/src/__tests__/token.test.ts b/foundations/core/packages/token/src/__tests__/token.test.ts index 304c4f9bdf..31080ceb17 100644 --- a/foundations/core/packages/token/src/__tests__/token.test.ts +++ b/foundations/core/packages/token/src/__tests__/token.test.ts @@ -18,7 +18,7 @@ import type { AccountUuid, PersonUuid, WorkspaceUuid } from '@hcengineering/core import { decodeToken, generateToken, isTokenExpired, setApiTokenRevocationChecker, verifyToken } from '../token' import plugin from '../plugin' -export function decodeTokenPayload(token: string): any { +export function decodeTokenPayload (token: string): any { try { return JSON.parse(atob(token.split('.')[1])) } catch (err: any) { diff --git a/foundations/core/packages/token/src/token.ts b/foundations/core/packages/token/src/token.ts index 1b31e9eb84..550576e2d7 100644 --- a/foundations/core/packages/token/src/token.ts +++ b/foundations/core/packages/token/src/token.ts @@ -39,7 +39,7 @@ export interface PermissionsGrant { * @public */ export class TokenError extends Error { - constructor(message: string) { + constructor (message: string) { super(message) this.name = 'TokenError' } @@ -52,7 +52,7 @@ const getSecret = (): string => { /** * @public */ -export function generateToken( +export function generateToken ( accountUuid: PersonUuid, workspaceUuid?: WorkspaceUuid, extra?: Record, @@ -114,7 +114,7 @@ export function generateToken( /** * @public */ -export function decodeToken(token: string, verify: boolean = true, secret?: string): Token { +export function decodeToken (token: string, verify: boolean = true, secret?: string): Token { try { return decode(token, secret ?? getSecret(), !verify) } catch (err: any) { @@ -125,7 +125,7 @@ export function decodeToken(token: string, verify: boolean = true, secret?: stri /** * @public */ -export function decodeTokenVerbose(ctx: MeasureContext, token: string): Token { +export function decodeTokenVerbose (ctx: MeasureContext, token: string): Token { try { return decodeToken(token) } catch (err: any) { diff --git a/foundations/server/packages/collaboration/src/storage.ts b/foundations/server/packages/collaboration/src/storage.ts index e0dc833f3d..efe678d71e 100644 --- a/foundations/server/packages/collaboration/src/storage.ts +++ b/foundations/server/packages/collaboration/src/storage.ts @@ -105,7 +105,7 @@ export async function loadCollabJson ( } const buffer = await storageAdapter.read(ctx, wsIds, blobId) - return Buffer.concat(buffer as any).toString() + return Buffer.concat(buffer).toString() } /** @public */ diff --git a/foundations/server/packages/core/src/__tests__/performance-benchmark.ts b/foundations/server/packages/core/src/__tests__/performance-benchmark.ts index 39584c221d..af0812b0b8 100644 --- a/foundations/server/packages/core/src/__tests__/performance-benchmark.ts +++ b/foundations/server/packages/core/src/__tests__/performance-benchmark.ts @@ -25,7 +25,7 @@ interface PerfResult { time: number } -function benchmark(name: string, obj: any, iterations: number = 1000): PerfResult { +function benchmark (name: string, obj: any, iterations: number = 1000): PerfResult { const start = process.hrtime.bigint() let size = 0 for (let i = 0; i < iterations; i++) { diff --git a/foundations/server/packages/core/src/__tests__/shared-integration.ts b/foundations/server/packages/core/src/__tests__/shared-integration.ts index 06be7b682a..ecc7978f86 100644 --- a/foundations/server/packages/core/src/__tests__/shared-integration.ts +++ b/foundations/server/packages/core/src/__tests__/shared-integration.ts @@ -49,7 +49,7 @@ export interface TestContext { * @param adapterName - Name of the adapter being tested (e.g., 'PostgreSQL', 'MongoDB') * @param getContext - Function that returns the current test context */ -export function runSharedIntegrationTests(adapterName: string, getContext: () => TestContext): void { +export function runSharedIntegrationTests (adapterName: string, getContext: () => TestContext): void { describe(`${adapterName} - Shared Integration Tests`, () => { describe('Basic CRUD Operations', () => { it('should create a document', async () => { diff --git a/foundations/server/packages/core/src/__tests__/utils.test.ts b/foundations/server/packages/core/src/__tests__/utils.test.ts index ce4a5c470e..93bf6581ec 100644 --- a/foundations/server/packages/core/src/__tests__/utils.test.ts +++ b/foundations/server/packages/core/src/__tests__/utils.test.ts @@ -24,7 +24,7 @@ describe('OneSecondCountersImpl', () => { ;(jest as any).useFakeTimers('modern') }) - function ageTimeouts(ms: number): void { + function ageTimeouts (ms: number): void { const timeouts = (counters as any).counterTimeouts as Map const now = platformNow() for (const [k, v] of timeouts.entries()) { diff --git a/foundations/server/packages/core/src/base.ts b/foundations/server/packages/core/src/base.ts index 546d81ca0c..8e5a84389f 100644 --- a/foundations/server/packages/core/src/base.ts +++ b/foundations/server/packages/core/src/base.ts @@ -45,12 +45,12 @@ export const emptyModelResult = Promise.resolve([]) * @public */ export abstract class BaseMiddleware implements Middleware { - protected constructor( + protected constructor ( readonly context: PipelineContext, protected readonly next?: Middleware ) {} - findAll( + findAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -59,7 +59,7 @@ export abstract class BaseMiddleware implements Middleware { return this.provideFindAll(ctx, _class, query, options) } - provideLoadModel( + provideLoadModel ( ctx: MeasureContext, lastModelTx: Timestamp, hash?: string @@ -67,7 +67,7 @@ export abstract class BaseMiddleware implements Middleware { return this.next?.loadModel(ctx, lastModelTx, hash) ?? emptyModelResult } - loadModel( + loadModel ( ctx: MeasureContext, lastModelTx: Timestamp, hash?: string @@ -75,7 +75,7 @@ export abstract class BaseMiddleware implements Middleware { return this.provideLoadModel(ctx, lastModelTx, hash) } - provideGroupBy( + provideGroupBy ( ctx: MeasureContext, domain: Domain, field: string, @@ -87,9 +87,9 @@ export abstract class BaseMiddleware implements Middleware { return Promise.resolve(new Map()) } - async close(): Promise {} + async close (): Promise {} - groupBy( + groupBy ( ctx: MeasureContext, domain: Domain, field: string, @@ -98,30 +98,30 @@ export abstract class BaseMiddleware implements Middleware { return this.provideGroupBy(ctx, domain, field, query) } - searchFulltext(ctx: MeasureContext, query: SearchQuery, options: SearchOptions): Promise { + searchFulltext (ctx: MeasureContext, query: SearchQuery, options: SearchOptions): Promise { return this.provideSearchFulltext(ctx, query, options) } - handleBroadcast(ctx: MeasureContext): Promise { + handleBroadcast (ctx: MeasureContext): Promise { return this.next?.handleBroadcast(ctx) ?? emptyBroadcastResult } - provideBroadcast(ctx: MeasureContext): Promise { + provideBroadcast (ctx: MeasureContext): Promise { return this.next?.handleBroadcast(ctx) ?? emptyBroadcastResult } - protected provideTx(ctx: MeasureContext, tx: Tx[]): Promise { + protected provideTx (ctx: MeasureContext, tx: Tx[]): Promise { if (this.next !== undefined) { return this.next.tx(ctx, tx) } return emptyTxResult } - tx(ctx: MeasureContext, tx: Tx[]): Promise { + tx (ctx: MeasureContext, tx: Tx[]): Promise { return this.provideTx(ctx, tx) } - protected provideFindAll( + protected provideFindAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -133,7 +133,7 @@ export abstract class BaseMiddleware implements Middleware { return emptyFindResult } - protected provideSearchFulltext( + protected provideSearchFulltext ( ctx: MeasureContext, query: SearchQuery, options: SearchOptions @@ -144,11 +144,11 @@ export abstract class BaseMiddleware implements Middleware { return emptySearchResult } - domainRequest(ctx: MeasureContext, domain: OperationDomain, params: DomainParams): Promise { + domainRequest (ctx: MeasureContext, domain: OperationDomain, params: DomainParams): Promise { return this.provideDomainRequest(ctx, domain, params) } - protected async provideDomainRequest( + protected async provideDomainRequest ( ctx: MeasureContext, domain: OperationDomain, params: DomainParams @@ -159,14 +159,14 @@ export abstract class BaseMiddleware implements Middleware { return { domain, value: null } } - provideCloseSession(ctx: MeasureContext, sessionId: string): Promise { + provideCloseSession (ctx: MeasureContext, sessionId: string): Promise { if (this.next !== undefined) { return this.next.closeSession(ctx, sessionId) } return Promise.resolve() } - closeSession(ctx: MeasureContext, sessionId: string): Promise { + closeSession (ctx: MeasureContext, sessionId: string): Promise { return this.provideCloseSession(ctx, sessionId) } } diff --git a/foundations/server/packages/core/src/benchmark/index.ts b/foundations/server/packages/core/src/benchmark/index.ts index 7400f4a49a..ba93882acc 100644 --- a/foundations/server/packages/core/src/benchmark/index.ts +++ b/foundations/server/packages/core/src/benchmark/index.ts @@ -37,7 +37,7 @@ import core, { import type { DbAdapter } from '../adapter' import { DummyDbAdapter } from '../mem' -function genData(dataSize: number): string { +function genData (dataSize: number): string { let result = '' const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789' const charactersLength = characters.length @@ -50,7 +50,7 @@ function genData(dataSize: number): string { let benchData = '' class BenchmarkDbAdapter extends DummyDbAdapter { - async findAll>( + async findAll> ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -91,12 +91,12 @@ class BenchmarkDbAdapter extends DummyDbAdapter { return toFindResult(result as T[]) } - getDomainHash(ctx: MeasureContext, domain: Domain): Promise { + getDomainHash (ctx: MeasureContext, domain: Domain): Promise { // Since benchmark coult not be changed. return Promise.resolve('') } - tx(ctx: MeasureContext, ...tx: Tx[]): Promise { + tx (ctx: MeasureContext, ...tx: Tx[]): Promise { if (benchData === '') { benchData = genData(1024 * 1024) } @@ -123,7 +123,7 @@ class BenchmarkDbAdapter extends DummyDbAdapter { /** * @public */ -export async function createBenchmarkAdapter( +export async function createBenchmarkAdapter ( ctx: MeasureContext, hierarchy: Hierarchy, url: string, diff --git a/foundations/server/packages/core/src/content.ts b/foundations/server/packages/core/src/content.ts index 6ad2cce33d..059a557f89 100644 --- a/foundations/server/packages/core/src/content.ts +++ b/foundations/server/packages/core/src/content.ts @@ -18,18 +18,18 @@ import { type ContentTextAdapterConfiguration } from './configuration' import { type ContentTextAdapter } from './types' class ContentAdapter implements ContentTextAdapter { - constructor( + constructor ( private readonly adapters: Map, private readonly defaultAdapter: ContentTextAdapter ) {} - content(ctx: MeasureContext, workspace: WorkspaceUuid, name: string, type: string, doc: Buffer): Promise { + content (ctx: MeasureContext, workspace: WorkspaceUuid, name: string, type: string, doc: Buffer): Promise { const adapter = this.adapters.get(type) ?? this.defaultAdapter return adapter.content(ctx, workspace, name, type, doc) } } -export async function createContentAdapter( +export async function createContentAdapter ( contentAdapters: Record, defaultContentAdapter: string ): Promise { diff --git a/foundations/server/packages/core/src/dbAdapterManager.ts b/foundations/server/packages/core/src/dbAdapterManager.ts index 67183c18e7..1f7b8153e9 100644 --- a/foundations/server/packages/core/src/dbAdapterManager.ts +++ b/foundations/server/packages/core/src/dbAdapterManager.ts @@ -33,7 +33,7 @@ export class DbAdapterManagerImpl implements DBAdapterManager { domainHelper?: DomainHelper - constructor( + constructor ( private readonly metrics: MeasureContext, readonly conf: DbConfiguration, @@ -42,7 +42,7 @@ export class DbAdapterManagerImpl implements DBAdapterManager { private readonly adapters: Map ) {} - reserveContext(id: string): () => void { + reserveContext (id: string): () => void { const ops: (() => void)[] = [] for (const adapter of this.adapters.values()) { try { @@ -60,16 +60,16 @@ export class DbAdapterManagerImpl implements DBAdapterManager { } } - getDefaultAdapter(): DbAdapter { + getDefaultAdapter (): DbAdapter { return this.defaultAdapter } - async registerHelper(ctx: MeasureContext, helper: DomainHelper): Promise { + async registerHelper (ctx: MeasureContext, helper: DomainHelper): Promise { this.domainHelper = helper await this.initDomains(ctx) } - async initDomains(ctx: MeasureContext): Promise { + async initDomains (ctx: MeasureContext): Promise { const adapterDomains = new Map>() for (const d of this.context.hierarchy.domains()) { // We need to init domain info @@ -121,7 +121,7 @@ export class DbAdapterManagerImpl implements DBAdapterManager { } } - async initAdapters(ctx: MeasureContext): Promise { + async initAdapters (ctx: MeasureContext): Promise { for (const [key, adapter] of this.adapters) { // already initialized if (key !== this.conf.domains[DOMAIN_TX] && adapter.init !== undefined) { @@ -149,7 +149,7 @@ export class DbAdapterManagerImpl implements DBAdapterManager { } } - private async updateInfo(d: Domain, adapterDomains: Map>, info: DomainInfo): Promise { + private async updateInfo (d: Domain, adapterDomains: Map>, info: DomainInfo): Promise { const name = this.conf.domains[d] ?? '#default' const adapter = this.adapters.get(name) ?? this.defaultAdapter if (adapter !== undefined) { @@ -169,7 +169,7 @@ export class DbAdapterManagerImpl implements DBAdapterManager { } } - private getDomainInfo(domain: Domain): DomainInfo { + private getDomainInfo (domain: Domain): DomainInfo { let info = this.domainInfo.get(domain) if (info === undefined) { info = { @@ -181,7 +181,7 @@ export class DbAdapterManagerImpl implements DBAdapterManager { return info } - async close(): Promise { + async close (): Promise { for (const o of this.adapters.values()) { try { await o.close() @@ -191,12 +191,12 @@ export class DbAdapterManagerImpl implements DBAdapterManager { } } - getAdapterName(domain: Domain): string { + getAdapterName (domain: Domain): string { const adapterName = this.conf.domains[domain] return adapterName ?? this.conf.defaultAdapter } - getAdapterByName(name: string): DbAdapter { + getAdapterByName (name: string): DbAdapter { if (name === this.conf.defaultAdapter) { return this.defaultAdapter } @@ -208,7 +208,7 @@ export class DbAdapterManagerImpl implements DBAdapterManager { return adapter } - public getAdapter(domain: Domain, requireExists: boolean): DbAdapter { + public getAdapter (domain: Domain, requireExists: boolean): DbAdapter { const name = this.conf.domains[domain] ?? '#default' const adapter = this.adapters.get(name) ?? this.defaultAdapter if (adapter === undefined) { diff --git a/foundations/server/packages/core/src/domainHelper.ts b/foundations/server/packages/core/src/domainHelper.ts index 78a4caf25e..adedf65d13 100644 --- a/foundations/server/packages/core/src/domainHelper.ts +++ b/foundations/server/packages/core/src/domainHelper.ts @@ -16,7 +16,7 @@ import type { DomainHelper, DomainHelperOperations } from './adapter' export class DomainIndexHelperImpl implements DomainHelper { domains = new Map>>() domainConfigurations: DomainIndexConfiguration[] = [] - constructor( + constructor ( readonly ctx: MeasureContext, readonly hierarchy: Hierarchy, readonly model: ModelDb, @@ -80,7 +80,7 @@ export class DomainIndexHelperImpl implements DomainHelper { /** * Check if some indexes need to be created for domain. */ - async checkDomain( + async checkDomain ( ctx: MeasureContext, domain: Domain, documents: number, @@ -100,7 +100,7 @@ export class DomainIndexHelperImpl implements DomainHelper { const allIndexes = (await operations.listIndexes(domain)).filter((it) => it.name !== '_id_') ctx.info('check indexes', { domain, has50Documents, documents }) if (has50Documents) { - async function checkIndex(vv: string | FieldIndexConfig, checkDisabled: boolean): Promise { + async function checkIndex (vv: string | FieldIndexConfig, checkDisabled: boolean): Promise { try { let name: string if (typeof vv === 'string') { diff --git a/foundations/server/packages/core/src/mem.ts b/foundations/server/packages/core/src/mem.ts index 8fd54c0e3b..929bd9e61e 100644 --- a/foundations/server/packages/core/src/mem.ts +++ b/foundations/server/packages/core/src/mem.ts @@ -44,7 +44,7 @@ import type { ServerFindOptions } from './types' export class DummyDbAdapter implements DbAdapter { on?: ((handler: DbAdapterHandler) => void) | undefined - async traverse( + async traverse ( domain: Domain, query: DocumentQuery, options?: Pick, 'sort' | 'limit' | 'projection'> @@ -55,7 +55,7 @@ export class DummyDbAdapter implements DbAdapter { } } - async findAll( + async findAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -64,16 +64,16 @@ export class DummyDbAdapter implements DbAdapter { return toFindResult([]) } - rawFind(ctx: MeasureContext, domain: Domain): RawFindIterator { + rawFind (ctx: MeasureContext, domain: Domain): RawFindIterator { return { find: async () => [], close: async () => {} } } - async init(): Promise {} + async init (): Promise {} - helper(): DomainHelperOperations { + helper (): DomainHelperOperations { return { create: async () => {}, exists: async () => true, @@ -85,36 +85,36 @@ export class DummyDbAdapter implements DbAdapter { } } - async createIndexes(domain: Domain, config: Pick, 'indexes'>): Promise {} - async removeOldIndex(domain: Domain, deletePattern: RegExp[], keepPattern: RegExp[]): Promise {} + async createIndexes (domain: Domain, config: Pick, 'indexes'>): Promise {} + async removeOldIndex (domain: Domain, deletePattern: RegExp[], keepPattern: RegExp[]): Promise {} - async tx(ctx: MeasureContext, ...tx: Tx[]): Promise { + async tx (ctx: MeasureContext, ...tx: Tx[]): Promise { return [] } - async close(): Promise {} + async close (): Promise {} - find(ctx: MeasureContext, domain: Domain): StorageIterator { + find (ctx: MeasureContext, domain: Domain): StorageIterator { return { next: async () => [], close: async () => {} } } - async load(ctx: MeasureContext, domain: Domain, docs: Ref[]): Promise { + async load (ctx: MeasureContext, domain: Domain, docs: Ref[]): Promise { return [] } - async upload(ctx: MeasureContext, domain: Domain, docs: Doc[]): Promise {} + async upload (ctx: MeasureContext, domain: Domain, docs: Doc[]): Promise {} - async clean(ctx: MeasureContext, domain: Domain, docs: Ref[]): Promise {} + async clean (ctx: MeasureContext, domain: Domain, docs: Ref[]): Promise {} - getDomainHash(ctx: MeasureContext, domain: Domain): Promise { + getDomainHash (ctx: MeasureContext, domain: Domain): Promise { // Return '' for empty documents content. return Promise.resolve('') } - async groupBy( + async groupBy ( ctx: MeasureContext, domain: Domain, field: string, @@ -123,28 +123,28 @@ export class DummyDbAdapter implements DbAdapter { return new Map() } - async rawFindAll(domain: Domain, query: DocumentQuery, options?: FindOptions): Promise { + async rawFindAll (domain: Domain, query: DocumentQuery, options?: FindOptions): Promise { return [] } - async rawUpdate( + async rawUpdate ( domain: Domain, query: DocumentQuery, operations: DocumentUpdate ): Promise {} - async rawDeleteMany(domain: Domain, query: DocumentQuery): Promise {} + async rawDeleteMany (domain: Domain, query: DocumentQuery): Promise {} } class InMemoryAdapter extends DummyDbAdapter implements DbAdapter { private readonly modeldb: ModelDb - constructor(readonly hierarchy: Hierarchy) { + constructor (readonly hierarchy: Hierarchy) { super() this.modeldb = new ModelDb(hierarchy) } - findAll( + findAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -162,11 +162,11 @@ class InMemoryAdapter extends DummyDbAdapter implements DbAdapter { ) } - load(ctx: MeasureContext, domain: Domain, docs: Ref[]): Promise { + load (ctx: MeasureContext, domain: Domain, docs: Ref[]): Promise { return this.modeldb.findAll(core.class.Doc, { _id: { $in: docs } }) } - tx(ctx: MeasureContext, ...tx: Tx[]): Promise { + tx (ctx: MeasureContext, ...tx: Tx[]): Promise { // Filter transactions with broadcast only flags const ftx = tx.filter((it) => { if (TxProcessor.isExtendsCUD(it._class)) { @@ -190,7 +190,7 @@ class InMemoryAdapter extends DummyDbAdapter implements DbAdapter { /** * @public */ -export async function createInMemoryAdapter( +export async function createInMemoryAdapter ( ctx: MeasureContext, hierarchy: Hierarchy, url: string, diff --git a/foundations/server/packages/core/src/nullAdapter.ts b/foundations/server/packages/core/src/nullAdapter.ts index ae45ba1674..9c0d3adb7e 100644 --- a/foundations/server/packages/core/src/nullAdapter.ts +++ b/foundations/server/packages/core/src/nullAdapter.ts @@ -20,7 +20,7 @@ import { DummyDbAdapter } from './mem' /** * @public */ -export async function createNullAdapter( +export async function createNullAdapter ( ctx: MeasureContext, hierarchy: Hierarchy, url: string, diff --git a/foundations/server/packages/core/src/pipeline.ts b/foundations/server/packages/core/src/pipeline.ts index 55ca44bc7e..c59912ef85 100644 --- a/foundations/server/packages/core/src/pipeline.ts +++ b/foundations/server/packages/core/src/pipeline.ts @@ -48,7 +48,7 @@ import { /** * @public */ -export async function createPipeline( +export async function createPipeline ( ctx: MeasureContext, constructors: MiddlewareCreator[], context: PipelineContext @@ -61,9 +61,9 @@ class PipelineImpl implements Pipeline { private readonly middlewares: Middleware[] = [] - private constructor(readonly context: PipelineContext) {} + private constructor (readonly context: PipelineContext) {} - static async create( + static async create ( ctx: MeasureContext, constructors: MiddlewareCreator[], context: PipelineContext @@ -76,7 +76,7 @@ class PipelineImpl implements Pipeline { } @withContext('build-chain') - private async buildChain( + private async buildChain ( ctx: MeasureContext, constructors: MiddlewareCreator[], context: PipelineContext @@ -102,7 +102,7 @@ class PipelineImpl implements Pipeline { return current } - findAll( + findAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -111,11 +111,11 @@ class PipelineImpl implements Pipeline { return this.head?.findAll(ctx, _class, query, options) ?? Promise.resolve(toFindResult([])) } - loadModel(ctx: MeasureContext, lastModelTx: Timestamp, hash?: string): Promise { + loadModel (ctx: MeasureContext, lastModelTx: Timestamp, hash?: string): Promise { return this.head?.loadModel(ctx, lastModelTx, hash) ?? Promise.resolve([]) } - groupBy( + groupBy ( ctx: MeasureContext, domain: Domain, field: string, @@ -124,19 +124,19 @@ class PipelineImpl implements Pipeline { return this.head?.groupBy(ctx, domain, field, query) ?? Promise.resolve(new Map()) } - searchFulltext(ctx: MeasureContext, query: SearchQuery, options: SearchOptions): Promise { + searchFulltext (ctx: MeasureContext, query: SearchQuery, options: SearchOptions): Promise { return this.head?.searchFulltext(ctx, query, options) ?? Promise.resolve({ docs: [] }) } - tx(ctx: MeasureContext, tx: Tx[]): Promise { + tx (ctx: MeasureContext, tx: Tx[]): Promise { return this.head?.tx(ctx, tx) ?? Promise.resolve({}) } - handleBroadcast(ctx: MeasureContext): Promise { + handleBroadcast (ctx: MeasureContext): Promise { return this.head?.handleBroadcast(ctx) ?? emptyBroadcastResult } - domainRequest( + domainRequest ( ctx: MeasureContext, domain: OperationDomain, params: DomainParams @@ -144,11 +144,11 @@ class PipelineImpl implements Pipeline { return this.head?.domainRequest(ctx, domain, params) ?? Promise.resolve({ domain, value: undefined }) } - closeSession(ctx: MeasureContext, sessionId: string): Promise { + closeSession (ctx: MeasureContext, sessionId: string): Promise { return this.head?.closeSession(ctx, sessionId) ?? Promise.resolve() } - async close(): Promise { + async close (): Promise { for (const mw of this.middlewares) { try { await mw.close() diff --git a/foundations/server/packages/core/src/queue/dummyQueue.ts b/foundations/server/packages/core/src/queue/dummyQueue.ts index a06bf0592b..e3c7a17120 100644 --- a/foundations/server/packages/core/src/queue/dummyQueue.ts +++ b/foundations/server/packages/core/src/queue/dummyQueue.ts @@ -5,15 +5,15 @@ import { type ConsumerHandle, type PlatformQueue, type PlatformQueueProducer, ty * A dummy implementation of PlatformQueueProducer for testing and development */ class DummyQueueProducer implements PlatformQueueProducer { - async send(ctx: MeasureContext, id: WorkspaceUuid | string, msgs: T[]): Promise { + async send (ctx: MeasureContext, id: WorkspaceUuid | string, msgs: T[]): Promise { await Promise.resolve() } - async close(): Promise { + async close (): Promise { await Promise.resolve() } - getQueue(): PlatformQueue { + getQueue (): PlatformQueue { return new DummyQueue() } } @@ -22,25 +22,25 @@ class DummyQueueProducer implements PlatformQueueProducer { * A dummy implementation of PlatformQueue for testing and development */ export class DummyQueue implements PlatformQueue { - getProducer(ctx: MeasureContext, topic: QueueTopic | string): PlatformQueueProducer { + getProducer (ctx: MeasureContext, topic: QueueTopic | string): PlatformQueueProducer { return new DummyQueueProducer() } - getClientId(): string { + getClientId (): string { return 'dummy' } - async shutdown(): Promise {} + async shutdown (): Promise {} - async createTopic(topics: string | string[], partitions: number): Promise {} + async createTopic (topics: string | string[], partitions: number): Promise {} - createConsumer( + createConsumer ( ctx: MeasureContext, topic: QueueTopic | string, groupId: string, onMessage: ( ctx: MeasureContext, - msg: { workspace: WorkspaceUuid; value: T }, + msg: { workspace: WorkspaceUuid, value: T }, queue: { pause: () => void heartbeat: () => Promise @@ -61,16 +61,16 @@ export class DummyQueue implements PlatformQueue { } } - async createTopics(tx: number): Promise { + async createTopics (tx: number): Promise { await Promise.resolve() } - async deleteTopics(topics?: (QueueTopic | string)[]): Promise {} + async deleteTopics (topics?: (QueueTopic | string)[]): Promise {} } /** * Creates a new instance of the dummy queue implementation */ -export function createDummyQueue(): PlatformQueue { +export function createDummyQueue (): PlatformQueue { return new DummyQueue() } diff --git a/foundations/server/packages/core/src/queue/users.ts b/foundations/server/packages/core/src/queue/users.ts index 0901ed254c..40c25970f0 100644 --- a/foundations/server/packages/core/src/queue/users.ts +++ b/foundations/server/packages/core/src/queue/users.ts @@ -17,13 +17,13 @@ export interface QueueUserLogin extends QueueUserMessage { } export const userEvents = { - login: function userLogin(data: Omit): QueueUserLogin { + login: function userLogin (data: Omit): QueueUserLogin { return { type: QueueUserEvent.login, ...data } }, - logout: function userLogout(data: Omit): QueueUserLogin { + logout: function userLogout (data: Omit): QueueUserLogin { return { type: QueueUserEvent.logout, ...data diff --git a/foundations/server/packages/core/src/queue/utils.ts b/foundations/server/packages/core/src/queue/utils.ts index 8b08433914..647d618ffe 100644 --- a/foundations/server/packages/core/src/queue/utils.ts +++ b/foundations/server/packages/core/src/queue/utils.ts @@ -1,5 +1,5 @@ import { type QueueTopic } from './types' -export function getDeadletterTopic(topic: QueueTopic): string { +export function getDeadletterTopic (topic: QueueTopic): string { return `${topic}-d` } diff --git a/foundations/server/packages/core/src/service.ts b/foundations/server/packages/core/src/service.ts index 081501810b..feec6b7506 100644 --- a/foundations/server/packages/core/src/service.ts +++ b/foundations/server/packages/core/src/service.ts @@ -18,27 +18,27 @@ import { type MeasureContext } from '@hcengineering/core' import { type ServiceAdapter, type ServiceAdapterConfig, type ServiceAdaptersManager } from './types' export class ServiceAdaptersManagerImpl implements ServiceAdaptersManager { - constructor( + constructor ( private readonly adapters: Map, private readonly context: MeasureContext ) {} - getAdapter(adapterId: string): ServiceAdapter | undefined { + getAdapter (adapterId: string): ServiceAdapter | undefined { return this.adapters.get(adapterId) } - async close(): Promise { + async close (): Promise { for (const adapter of this.adapters.values()) { await adapter.close() } } - metrics(): MeasureContext { + metrics (): MeasureContext { return this.context } } -export async function createServiceAdaptersManager( +export async function createServiceAdaptersManager ( serviceAdapters: Record, context: MeasureContext ): Promise { diff --git a/foundations/server/packages/core/src/stats.ts b/foundations/server/packages/core/src/stats.ts index c1bd857c6a..dfc74531ca 100644 --- a/foundations/server/packages/core/src/stats.ts +++ b/foundations/server/packages/core/src/stats.ts @@ -51,7 +51,7 @@ export interface ServiceStatistics { workspaces?: WorkspaceStatistics[] } -export function getMemoryInfo(): MemoryStatistics { +export function getMemoryInfo (): MemoryStatistics { const memU = process.memoryUsage() return { memoryUsed: Math.round((memU.heapUsed / 1024 / 1024) * 100) / 100, @@ -63,7 +63,7 @@ export function getMemoryInfo(): MemoryStatistics { } } -export function getCPUInfo(): CPUStatistics { +export function getCPUInfo (): CPUStatistics { return { usage: Math.round(os.loadavg()[0] * 100) / 100, cores: os.cpus().length @@ -74,7 +74,7 @@ const METRICS_UPDATE_INTERVAL = 5000 /** * @public */ -export function initStatisticsContext( +export function initStatisticsContext ( serviceName: string, ops?: { logFile?: string diff --git a/foundations/server/packages/core/src/storage.ts b/foundations/server/packages/core/src/storage.ts index ced480f7a4..7bffcab5f8 100644 --- a/foundations/server/packages/core/src/storage.ts +++ b/foundations/server/packages/core/src/storage.ts @@ -14,7 +14,7 @@ export * from '@hcengineering/storage' /** * @public */ -export function getBucketId(workspace: WorkspaceUuid): string { +export function getBucketId (workspace: WorkspaceUuid): string { return workspace } @@ -34,12 +34,12 @@ export interface ChunkInfo { * @public */ export class BackupClientOps { - constructor(protected readonly storage: LowLevelStorage) {} + constructor (protected readonly storage: LowLevelStorage) {} idIndex = 0 chunkInfo = new Map() - loadChunk( + loadChunk ( ctx: MeasureContext, domain: Domain, idx?: number @@ -89,11 +89,11 @@ export class BackupClientOps { }) } - getDomainHash(ctx: MeasureContext, domain: Domain): Promise { + getDomainHash (ctx: MeasureContext, domain: Domain): Promise { return this.storage.getDomainHash(ctx, domain) } - closeChunk(ctx: MeasureContext, idx: number): Promise { + closeChunk (ctx: MeasureContext, idx: number): Promise { return ctx.with('close-chunk', {}, async () => { const chunk = this.chunkInfo.get(idx) this.chunkInfo.delete(idx) @@ -103,15 +103,15 @@ export class BackupClientOps { }) } - loadDocs(ctx: MeasureContext, domain: Domain, docs: Ref[]): Promise { + loadDocs (ctx: MeasureContext, domain: Domain, docs: Ref[]): Promise { return this.storage.load(ctx, domain, docs) } - upload(ctx: MeasureContext, domain: Domain, docs: Doc[]): Promise { + upload (ctx: MeasureContext, domain: Domain, docs: Doc[]): Promise { return this.storage.upload(ctx, domain, docs) } - clean(ctx: MeasureContext, domain: Domain, docs: Ref[]): Promise { + clean (ctx: MeasureContext, domain: Domain, docs: Ref[]): Promise { return this.storage.clean(ctx, domain, docs) } } diff --git a/foundations/server/packages/core/src/triggers.ts b/foundations/server/packages/core/src/triggers.ts index ba5dcebda1..bba7f9f2a1 100644 --- a/foundations/server/packages/core/src/triggers.ts +++ b/foundations/server/packages/core/src/triggers.ts @@ -40,7 +40,7 @@ import serverCore from './plugin' interface TriggerRecord { query?: DocumentQuery - trigger: { op: TriggerFunc | Promise; resource: Resource; isAsync: boolean } + trigger: { op: TriggerFunc | Promise, resource: Resource, isAsync: boolean } } /** * @public @@ -48,16 +48,16 @@ interface TriggerRecord { export class Triggers { private readonly triggers: TriggerRecord[] = [] - constructor(protected readonly hierarchy: Hierarchy) {} + constructor (protected readonly hierarchy: Hierarchy) {} - init(model: ModelDb): void { + init (model: ModelDb): void { const allTriggers = model.findAllSync(serverCore.class.Trigger, {}) for (const t of allTriggers) { this.addTrigger(t) } } - private addTrigger(t: WithLookup): void { + private addTrigger (t: WithLookup): void { const match = t.txMatch const trigger = t.trigger @@ -70,7 +70,7 @@ export class Triggers { } tresolve = Promise.resolve() - tx(txes: Tx[]): Promise { + tx (txes: Tx[]): Promise { for (const tx of txes) { if (tx._class === core.class.TxCreateDoc) { const createTx = tx as TxCreateDoc @@ -83,7 +83,7 @@ export class Triggers { return this.tresolve } - async applyTrigger( + async applyTrigger ( ctx: MeasureContext, ctrl: Omit, matches: Tx[], @@ -122,7 +122,7 @@ export class Triggers { return result.concat(apply) } - async apply( + async apply ( ctx: MeasureContext, tx: Tx[], ctrl: Omit, @@ -159,7 +159,7 @@ export class Triggers { return result } - private addDerived(q: DocumentQuery, key: string): void { + private addDerived (q: DocumentQuery, key: string): void { if (q[key] === undefined) { return } diff --git a/foundations/server/packages/core/src/types.ts b/foundations/server/packages/core/src/types.ts index bc9243c9ac..dedcc4420e 100644 --- a/foundations/server/packages/core/src/types.ts +++ b/foundations/server/packages/core/src/types.ts @@ -221,7 +221,7 @@ export interface PipelineContext { contextVars: Record broadcastEvent?: (ctx: MeasureContext, tx: Tx[]) => Promise - userStatusMap?: Map, { online: boolean; user: AccountUuid }> + userStatusMap?: Map, { online: boolean, user: AccountUuid }> } /** * @public @@ -287,7 +287,7 @@ export interface TriggerControl { lowLevel: LowLevelStorage modelDb: ModelDb removedMap: Map, Doc> - userStatusMap: Map, { online: boolean; user: AccountUuid }> + userStatusMap: Map, { online: boolean, user: AccountUuid }> domainRequest: (ctx: MeasureContext, domain: OperationDomain, params: DomainParams) => Promise queue?: PlatformQueue @@ -423,7 +423,7 @@ export interface FullTextAdapter { close: () => Promise // If no field is provided, will return existing mapping of all dimms. - initMapping: (ctx: MeasureContext, field?: { key: string; dims: number }) => Promise + initMapping: (ctx: MeasureContext, field?: { key: string, dims: number }) => Promise } /** @@ -546,7 +546,7 @@ export interface StorageConfig { export class NoSuchKeyError extends Error { code: string - constructor( + constructor ( msg: string, readonly cause?: any ) { @@ -723,7 +723,7 @@ export let LOGGING_ENABLED = true /** * @public */ -export function disableLogging(): void { +export function disableLogging (): void { LOGGING_ENABLED = false } @@ -734,8 +734,8 @@ export interface AddSessionActive { } export type GetWorkspaceResponse = - | { upgrade: true; progress?: number } - | { error: any; terminate?: boolean; specialError?: 'archived' | 'migration' } + | { upgrade: true, progress?: number } + | { error: any, terminate?: boolean, specialError?: 'archived' | 'migration' } export type AddSessionResponse = AddSessionActive | GetWorkspaceResponse @@ -746,7 +746,7 @@ export type SessionHealth = 'healthy' | 'degraded' | 'unhealthy' */ export interface SessionManager { // workspaces: Map - sessions: Map + sessions: Map addSession: ( ctx: MeasureContext, diff --git a/foundations/server/packages/core/src/utils.ts b/foundations/server/packages/core/src/utils.ts index 655bb6466b..5f8347cf34 100644 --- a/foundations/server/packages/core/src/utils.ts +++ b/foundations/server/packages/core/src/utils.ts @@ -50,7 +50,7 @@ import type { OneSecondCounters, Pipeline } from './types' * Return some estimation for object size * Optimized version that handles circular references and uses more efficient queue processing */ -export function estimateDocSize(_obj: any): number { +export function estimateDocSize (_obj: any): number { let result = 0 const toProcess = [_obj] const visited = new WeakSet() @@ -125,7 +125,7 @@ export function estimateDocSize(_obj: any): number { /** * Calculate hash for object */ -export function updateHashForDoc(hash: Hash, _obj: any): void { +export function updateHashForDoc (hash: Hash, _obj: any): void { const toProcess = [_obj] while (toProcess.length > 0) { const obj = toProcess.shift() @@ -186,7 +186,7 @@ export class SessionDataImpl implements SessionData { _contextCache: Map | undefined _broadcast: SessionData['broadcast'] | undefined - constructor( + constructor ( readonly account: Account, readonly sessionId: string, readonly admin: boolean | undefined, @@ -211,7 +211,7 @@ export class SessionDataImpl implements SessionData { this._broadcast = _broadcast } - get broadcast(): SessionData['broadcast'] { + get broadcast (): SessionData['broadcast'] { if (this._broadcast === undefined) { this._broadcast = { targets: {}, @@ -223,14 +223,14 @@ export class SessionDataImpl implements SessionData { return this._broadcast } - get removedMap(): Map, Doc> { + get removedMap (): Map, Doc> { if (this._removedMap === undefined) { this._removedMap = new Map() } return this._removedMap } - get contextCache(): Map { + get contextCache (): Map { if (this._contextCache === undefined) { this._contextCache = new Map() } @@ -238,7 +238,7 @@ export class SessionDataImpl implements SessionData { } } -export function createBroadcastEvent(classes: Ref>[]): TxWorkspaceEvent { +export function createBroadcastEvent (classes: Ref>[]): TxWorkspaceEvent { return { _class: core.class.TxWorkspaceEvent, _id: generateId(), @@ -253,7 +253,7 @@ export function createBroadcastEvent(classes: Ref>[]): TxWorkspaceEve } } -export function loadBrandingMap(brandingPath?: string): BrandingMap { +export function loadBrandingMap (brandingPath?: string): BrandingMap { let brandings: BrandingMap = {} if (brandingPath !== undefined && brandingPath !== '') { brandings = JSON.parse(fs.readFileSync(brandingPath, 'utf8')) @@ -267,7 +267,7 @@ export function loadBrandingMap(brandingPath?: string): BrandingMap { return brandings } -export function wrapPipeline( +export function wrapPipeline ( ctx: MeasureContext, pipeline: Pipeline, wsIds: WorkspaceIds, @@ -369,26 +369,26 @@ export function wrapPipeline( } } -export function wrapAdapterToClient(ctx: MeasureContext, storageAdapter: DbAdapter, txes: Tx[]): ClientConnection { +export function wrapAdapterToClient (ctx: MeasureContext, storageAdapter: DbAdapter, txes: Tx[]): ClientConnection { class TestClientConnection implements ClientConnection { isConnected = (): boolean => true handler?: (event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise - set onConnect( + set onConnect ( handler: ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) | undefined ) { this.handler = handler void this.handler?.(ClientConnectEvent.Connected, '', {}) } - get onConnect(): ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) | undefined { + get onConnect (): ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) | undefined { return this.handler } - pushHandler(): void {} + pushHandler (): void {} - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -421,44 +421,44 @@ export function wrapAdapterToClient(ctx: MeasureContext, storageAdapter: DbAdapt return { domain, value: null as any } } - async tx(tx: Tx): Promise { + async tx (tx: Tx): Promise { return await storageAdapter.tx(ctx, tx) } - async searchFulltext(): Promise { + async searchFulltext (): Promise { return { docs: [] } } - async close(): Promise {} + async close (): Promise {} - async loadChunk(domain: Domain): Promise { + async loadChunk (domain: Domain): Promise { throw new Error('unsupported') } - async getDomainHash(domain: Domain): Promise { + async getDomainHash (domain: Domain): Promise { return await storageAdapter.getDomainHash(ctx, domain) } - async closeChunk(idx: number): Promise {} + async closeChunk (idx: number): Promise {} - async loadDocs(domain: Domain, docs: Ref[]): Promise { + async loadDocs (domain: Domain, docs: Ref[]): Promise { return [] } - async upload(domain: Domain, docs: Doc[]): Promise {} + async upload (domain: Domain, docs: Doc[]): Promise {} - async clean(domain: Domain, docs: Ref[]): Promise {} + async clean (domain: Domain, docs: Ref[]): Promise {} - async loadModel(): Promise { + async loadModel (): Promise { return txes } - async sendForceClose(): Promise {} + async sendForceClose (): Promise {} } return new TestClientConnection() } -export async function calcHashHash(ctx: MeasureContext, domain: Domain, adapter: DbAdapter): Promise { +export async function calcHashHash (ctx: MeasureContext, domain: Domain, adapter: DbAdapter): Promise { const hash = createHash('sha256') const it = adapter.find(ctx, domain) @@ -493,11 +493,11 @@ export class OneSecondCountersImpl implements OneSecondCounters { private readonly counterTimeouts = new Map() ids: number = 0 - add(counter: string, count: number): void { + add (counter: string, count: number): void { this.counters.set(counter, (this.counters.get(counter) ?? 0) + count) } - async withCounter(counter: string, count: number, op: () => Promise): Promise { + async withCounter (counter: string, count: number, op: () => Promise): Promise { this.add(counter, count) const id = ++this.ids const vv: TimerOp = [platformNow(), counter, count, false] @@ -509,11 +509,11 @@ export class OneSecondCountersImpl implements OneSecondCounters { } } - entries(): MapIterator<[string, number]> { + entries (): MapIterator<[string, number]> { return this.counters.entries() } - check(): void { + check (): void { // Check for timeouts const now = platformNow() for (const [k, [timeout, counter, count, completed]] of [...this.counterTimeouts.entries()]) { diff --git a/foundations/server/packages/datalake/src/client.ts b/foundations/server/packages/datalake/src/client.ts index 6c734b6b87..99fee800de 100644 --- a/foundations/server/packages/datalake/src/client.ts +++ b/foundations/server/packages/datalake/src/client.ts @@ -490,13 +490,13 @@ async function toBuffer (data: Buffer | string | Readable): Promise { for await (const chunk of data) { chunks.push(chunk) } - return Buffer.concat(chunks as any) + return Buffer.concat(chunks) } else { throw new TypeError('Unsupported data type') } } -async function * getChunks (data: Buffer | string | Readable, chunkSize: number): AsyncGenerator { +async function* getChunks (data: Buffer | string | Readable, chunkSize: number): AsyncGenerator { if (Buffer.isBuffer(data)) { let offset = 0 while (offset < data.length) { @@ -505,7 +505,7 @@ async function * getChunks (data: Buffer | string | Readable, chunkSize: number) } } else if (typeof data === 'string') { const buffer = Buffer.from(data) - yield * getChunks(buffer, chunkSize) + yield* getChunks(buffer, chunkSize) } else if (data instanceof Readable) { let buffer = Buffer.alloc(0) diff --git a/foundations/server/packages/datalake/src/index.ts b/foundations/server/packages/datalake/src/index.ts index 1884e6b09a..c2e5c6fef1 100644 --- a/foundations/server/packages/datalake/src/index.ts +++ b/foundations/server/packages/datalake/src/index.ts @@ -246,7 +246,7 @@ export class DatalakeService implements StorageAdapter { return this.client.getObjectUrl(ctx, wsIds.uuid, objectName) } - async retry(ctx: MeasureContext, op: () => Promise): Promise { + async retry (ctx: MeasureContext, op: () => Promise): Promise { return await withRetry(ctx, this.retryCount, op, this.retryInterval) } } diff --git a/foundations/server/packages/kafka/src/index.ts b/foundations/server/packages/kafka/src/index.ts index d35c81b43c..c2abb8444e 100644 --- a/foundations/server/packages/kafka/src/index.ts +++ b/foundations/server/packages/kafka/src/index.ts @@ -95,7 +95,7 @@ class PlatformQueueImpl implements PlatformQueue { } } - getProducer(ctx: MeasureContext, topic: QueueTopic | string): PlatformQueueProducer { + getProducer (ctx: MeasureContext, topic: QueueTopic | string): PlatformQueueProducer { const producer = this.producers.get(topic) if (producer !== undefined && !producer.isClosed()) return producer @@ -105,7 +105,7 @@ class PlatformQueueImpl implements PlatformQueue { return created } - createConsumer( + createConsumer ( ctx: MeasureContext, topic: QueueTopic | string, groupId: string, diff --git a/foundations/server/packages/middleware/src/applyTx.ts b/foundations/server/packages/middleware/src/applyTx.ts index f22bcfe767..7cb3ab85ae 100644 --- a/foundations/server/packages/middleware/src/applyTx.ts +++ b/foundations/server/packages/middleware/src/applyTx.ts @@ -30,11 +30,11 @@ import { BaseMiddleware } from '@hcengineering/server-core' export class ApplyTxMiddleware extends BaseMiddleware implements Middleware { scopes = new Map>() - static async create(ctx: MeasureContext, context: PipelineContext, next?: Middleware): Promise { + static async create (ctx: MeasureContext, context: PipelineContext, next?: Middleware): Promise { return new ApplyTxMiddleware(context, next) } - async tx(ctx: MeasureContext, txes: Tx[]): Promise { + async tx (ctx: MeasureContext, txes: Tx[]): Promise { const result: TxResult[] = [] let part: Tx[] = [] @@ -94,7 +94,7 @@ export class ApplyTxMiddleware extends BaseMiddleware implements Middleware { /** * Verify if apply if is possible to apply. */ - async verifyApplyIf( + async verifyApplyIf ( ctx: MeasureContext, applyIf: TxApplyIf ): Promise<{ diff --git a/foundations/server/packages/middleware/src/broadcast.ts b/foundations/server/packages/middleware/src/broadcast.ts index 792a630bae..030086dd5d 100644 --- a/foundations/server/packages/middleware/src/broadcast.ts +++ b/foundations/server/packages/middleware/src/broadcast.ts @@ -40,7 +40,7 @@ import { BaseMiddleware, createBroadcastEvent } from '@hcengineering/server-core * @public */ export class BroadcastMiddleware extends BaseMiddleware implements Middleware { - constructor( + constructor ( context: PipelineContext, protected readonly next: Middleware | undefined, readonly broadcast: BroadcastOps @@ -49,11 +49,11 @@ export class BroadcastMiddleware extends BaseMiddleware implements Middleware { context.broadcastEvent = (ctx, tx) => this.doBroadcast(ctx, tx) } - static create(broadcast: BroadcastOps): MiddlewareCreator { + static create (broadcast: BroadcastOps): MiddlewareCreator { return async (ctx, pipelineContext, next) => new BroadcastMiddleware(pipelineContext, next, broadcast) } - async handleBroadcast(ctx: MeasureContext): Promise { + async handleBroadcast (ctx: MeasureContext): Promise { await this.next?.handleBroadcast(ctx) await this.doBroadcast(ctx, ctx.contextData.broadcast.txes, ctx.contextData.broadcast.targets) @@ -63,14 +63,14 @@ export class BroadcastMiddleware extends BaseMiddleware implements Middleware { } } - tx(ctx: MeasureContext, tx: Tx[]): Promise { + tx (ctx: MeasureContext, tx: Tx[]): Promise { // We collect all broadcast information here, so we could send it later ctx.contextData.broadcast.txes.push(...tx) return this.provideTx(ctx, tx) } - async doBroadcast(ctx: MeasureContext, tx: Tx[], targets?: BroadcastTargets): Promise { + async doBroadcast (ctx: MeasureContext, tx: Tx[], targets?: BroadcastTargets): Promise { if (tx.length === 0) { return } @@ -150,7 +150,7 @@ export class BroadcastMiddleware extends BaseMiddleware implements Middleware { await handleSend(ctx, toSendAll, undefined, Array.from(toSendTarget.keys()) as AccountUuid[]) } - private async sendWithPart( + private async sendWithPart ( derived: Tx[], ctx: MeasureContext, target: AccountUuid | undefined, @@ -171,6 +171,6 @@ export class BroadcastMiddleware extends BaseMiddleware implements Middleware { } } -function isExlcude(result: BroadcastResult): result is BroadcastExcludeResult { +function isExlcude (result: BroadcastResult): result is BroadcastExcludeResult { return (result as BroadcastExcludeResult).exclude !== undefined } diff --git a/foundations/server/packages/middleware/src/configuration.ts b/foundations/server/packages/middleware/src/configuration.ts index 1b323c7cdd..1b57d497de 100644 --- a/foundations/server/packages/middleware/src/configuration.ts +++ b/foundations/server/packages/middleware/src/configuration.ts @@ -38,14 +38,14 @@ export const configurationAccountEmail = '#configurator@hc.engineering' export class ConfigurationMiddleware extends BaseMiddleware implements Middleware { private readonly targetDomains = [DOMAIN_CONFIGURATION] - private constructor( + private constructor ( readonly context: PipelineContext, next?: Middleware ) { super(context, next) } - static async create( + static async create ( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -53,7 +53,7 @@ export class ConfigurationMiddleware extends BaseMiddleware implements Middlewar return new ConfigurationMiddleware(context, next) } - tx(ctx: MeasureContext, txes: Tx[]): Promise { + tx (ctx: MeasureContext, txes: Tx[]): Promise { for (const tx of txes) { if (TxProcessor.isExtendsCUD(tx._class)) { const txCUD = tx as TxCUD diff --git a/foundations/server/packages/middleware/src/contextName.ts b/foundations/server/packages/middleware/src/contextName.ts index 54a31f2e72..a13df77fc2 100644 --- a/foundations/server/packages/middleware/src/contextName.ts +++ b/foundations/server/packages/middleware/src/contextName.ts @@ -36,11 +36,11 @@ import { BaseMiddleware } from '@hcengineering/server-core' export class ContextNameMiddleware extends BaseMiddleware implements Middleware { scopes = new Map>() - static async create(ctx: MeasureContext, context: PipelineContext, next?: Middleware): Promise { + static async create (ctx: MeasureContext, context: PipelineContext, next?: Middleware): Promise { return new ContextNameMiddleware(context, next) } - domainRequest(ctx: MeasureContext, domain: OperationDomain, params: DomainParams): Promise { + domainRequest (ctx: MeasureContext, domain: OperationDomain, params: DomainParams): Promise { return ctx.with( `${domain}-${Object.keys(params)[0]}`, {}, @@ -51,7 +51,7 @@ export class ContextNameMiddleware extends BaseMiddleware implements Middleware ) } - async tx(ctx: MeasureContext, txes: Tx[]): Promise { + async tx (ctx: MeasureContext, txes: Tx[]): Promise { let measureName: string | undefined const tx = txes.find((it) => it._class === core.class.TxApplyIf) diff --git a/foundations/server/packages/middleware/src/dbAdapter.ts b/foundations/server/packages/middleware/src/dbAdapter.ts index b5b38d2283..a01ce85a53 100644 --- a/foundations/server/packages/middleware/src/dbAdapter.ts +++ b/foundations/server/packages/middleware/src/dbAdapter.ts @@ -28,7 +28,7 @@ import { BaseMiddleware, createServiceAdaptersManager, DbAdapterManagerImpl } fr * @public */ export class DBAdapterMiddleware extends BaseMiddleware implements Middleware { - constructor( + constructor ( context: PipelineContext, next: Middleware | undefined, readonly conf: DbConfiguration @@ -36,7 +36,7 @@ export class DBAdapterMiddleware extends BaseMiddleware implements Middleware { super(context, next) } - static create(conf: DbConfiguration): MiddlewareCreator { + static create (conf: DbConfiguration): MiddlewareCreator { return async (ctx, context, next): Promise => { const middleware = new DBAdapterMiddleware(context, next, conf) await middleware.init(ctx) @@ -45,7 +45,7 @@ export class DBAdapterMiddleware extends BaseMiddleware implements Middleware { } @withContext('dbAdapter-middleware') - async init(ctx: MeasureContext): Promise { + async init (ctx: MeasureContext): Promise { const adapters = new Map() await ctx.with('create-adapters', {}, async (ctx) => { @@ -84,7 +84,7 @@ export class DBAdapterMiddleware extends BaseMiddleware implements Middleware { this.context.adapterManager = adapterManager } - async close(): Promise { + async close (): Promise { await this.context.adapterManager?.close() await this.context.serviceAdapterManager?.close() } diff --git a/foundations/server/packages/middleware/src/dbAdapterHelper.ts b/foundations/server/packages/middleware/src/dbAdapterHelper.ts index 001f2ffd00..f0decce8a4 100644 --- a/foundations/server/packages/middleware/src/dbAdapterHelper.ts +++ b/foundations/server/packages/middleware/src/dbAdapterHelper.ts @@ -22,7 +22,7 @@ import { BaseMiddleware, DomainIndexHelperImpl } from '@hcengineering/server-cor */ export class DBAdapterInitMiddleware extends BaseMiddleware implements Middleware { @withContext('db-adapter-init') - static async create( + static async create ( ctx: MeasureContext, context: PipelineContext, next?: Middleware diff --git a/foundations/server/packages/middleware/src/derivedEntry.ts b/foundations/server/packages/middleware/src/derivedEntry.ts index 460004d42b..3c3971b5a6 100644 --- a/foundations/server/packages/middleware/src/derivedEntry.ts +++ b/foundations/server/packages/middleware/src/derivedEntry.ts @@ -22,7 +22,7 @@ import { BaseMiddleware } from '@hcengineering/server-core' * @public */ export class MarkDerivedEntryMiddleware extends BaseMiddleware implements Middleware { - static async create( + static async create ( ctx: MeasureContext, context: PipelineContext, next?: Middleware diff --git a/foundations/server/packages/middleware/src/domainFind.ts b/foundations/server/packages/middleware/src/domainFind.ts index 4fb9e90312..685ae07656 100644 --- a/foundations/server/packages/middleware/src/domainFind.ts +++ b/foundations/server/packages/middleware/src/domainFind.ts @@ -36,7 +36,7 @@ import { BaseMiddleware, emptyFindResult, paginateInMemory } from '@hcengineerin export class DomainFindMiddleware extends BaseMiddleware implements Middleware { adapterManager!: DBAdapterManager - static async create(ctx: MeasureContext, context: PipelineContext, next?: Middleware): Promise { + static async create (ctx: MeasureContext, context: PipelineContext, next?: Middleware): Promise { const middleware = new DomainFindMiddleware(context, next) if (context.adapterManager == null) { throw new PlatformError(unknownError('Adapter maneger should be configured')) @@ -45,12 +45,12 @@ export class DomainFindMiddleware extends BaseMiddleware implements Middleware { return middleware } - toPrintableOptions(options?: ServerFindOptions): FindOptions { + toPrintableOptions (options?: ServerFindOptions): FindOptions { const { ctx, allowedSpaces, associations, ...opt } = options ?? {} return opt } - findAll( + findAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -79,7 +79,7 @@ export class DomainFindMiddleware extends BaseMiddleware implements Middleware { ) } - groupBy( + groupBy ( ctx: MeasureContext, domain: Domain, field: string, diff --git a/foundations/server/packages/middleware/src/domainTx.ts b/foundations/server/packages/middleware/src/domainTx.ts index b92261a209..9fd60727b3 100644 --- a/foundations/server/packages/middleware/src/domainTx.ts +++ b/foundations/server/packages/middleware/src/domainTx.ts @@ -44,7 +44,7 @@ export class DomainTxMiddleware extends BaseMiddleware implements Middleware { adapterManager!: DBAdapterManager @withContext('domainTx-middleware') - static async create(ctx: MeasureContext, context: PipelineContext, next?: Middleware): Promise { + static async create (ctx: MeasureContext, context: PipelineContext, next?: Middleware): Promise { const middleware = new DomainTxMiddleware(context, next) if (context.adapterManager == null) { throw new PlatformError(unknownError('Domain adapter manager should be specified')) @@ -53,7 +53,7 @@ export class DomainTxMiddleware extends BaseMiddleware implements Middleware { return middleware } - async tx(ctx: MeasureContext, txes: Tx[]): Promise { + async tx (ctx: MeasureContext, txes: Tx[]): Promise { const txToStore: Tx[] = [] for (const tx of txes) { @@ -73,7 +73,7 @@ export class DomainTxMiddleware extends BaseMiddleware implements Middleware { return result } - private async routeTx(ctx: MeasureContext, txes: Tx[]): Promise { + private async routeTx (ctx: MeasureContext, txes: Tx[]): Promise { const result: TxResult[] = [] const adapterGroups = new Map[]>() diff --git a/foundations/server/packages/middleware/src/findSecurity.ts b/foundations/server/packages/middleware/src/findSecurity.ts index 91af15f0bf..334d54b567 100644 --- a/foundations/server/packages/middleware/src/findSecurity.ts +++ b/foundations/server/packages/middleware/src/findSecurity.ts @@ -32,11 +32,11 @@ import { * @public */ export class FindSecurityMiddleware extends BaseMiddleware implements Middleware { - private constructor(context: PipelineContext, next?: Middleware) { + private constructor (context: PipelineContext, next?: Middleware) { super(context, next) } - static async create( + static async create ( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -44,7 +44,7 @@ export class FindSecurityMiddleware extends BaseMiddleware implements Middleware return new FindSecurityMiddleware(context, next) } - findAll( + findAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, diff --git a/foundations/server/packages/middleware/src/fulltext.ts b/foundations/server/packages/middleware/src/fulltext.ts index 668c32f07b..46147d1ac1 100644 --- a/foundations/server/packages/middleware/src/fulltext.ts +++ b/foundations/server/packages/middleware/src/fulltext.ts @@ -43,7 +43,7 @@ export class FullTextMiddleware extends BaseMiddleware implements Middleware { fulltextEndpoint: string contexts = new Map>, FullTextSearchContext>() - constructor( + constructor ( context: PipelineContext, next: Middleware | undefined, fulltextUrl: string, @@ -56,11 +56,11 @@ export class FullTextMiddleware extends BaseMiddleware implements Middleware { this.fulltextEndpoint = fulltextEndpoints[Math.abs(hash % fulltextEndpoints.length)] } - hashWorkspace(dbWorkspaceName: string): number { + hashWorkspace (dbWorkspaceName: string): number { return [...dbWorkspaceName].reduce((hash, c) => (Math.imul(31, hash) + c.charCodeAt(0)) | 0, 0) } - static create(url: string, token: string): MiddlewareCreator { + static create (url: string, token: string): MiddlewareCreator { return async (ctx, context, next): Promise => { const middleware = new FullTextMiddleware(context, next, url, token) await middleware.init(ctx) @@ -68,13 +68,13 @@ export class FullTextMiddleware extends BaseMiddleware implements Middleware { } } - async init(ctx: MeasureContext): Promise { + async init (ctx: MeasureContext): Promise { this.contexts = new Map( this.context.modelDb.findAllSync(core.class.FullTextSearchContext, {}).map((it) => [it.toClass, it]) ) } - async search( + async search ( _classes: Ref>[], query: DocumentQuery, fullTextLimit: number @@ -108,7 +108,7 @@ export class FullTextMiddleware extends BaseMiddleware implements Middleware { addExtraFind?: (_class: Ref>, childs: Set>>) => void - async findAll( + async findAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -245,13 +245,13 @@ export class FullTextMiddleware extends BaseMiddleware implements Middleware { return result } - private async findDocuments( + private async findDocuments ( classes: Ref>[], findQuery: DocumentQuery, fullTextLimit: number, baseClass: Ref>, ids: Set> - ): Promise<{ docs: IndexedDoc[]; indexedDocMap: Map, IndexedDoc> }> { + ): Promise<{ docs: IndexedDoc[], indexedDocMap: Map, IndexedDoc> }> { const docs = await this.search(classes, findQuery, fullTextLimit) const indexedDocMap = new Map, IndexedDoc>() @@ -277,13 +277,13 @@ export class FullTextMiddleware extends BaseMiddleware implements Middleware { return { docs, indexedDocMap } } - private async findChildDocuments( + private async findChildDocuments ( classes: Ref>[], findQuery: DocumentQuery, fullTextLimit: number, baseClass: Ref>, ids: Set> - ): Promise<{ childDocs: IndexedDoc[]; childIndexedDocMap: Map, IndexedDoc> }> { + ): Promise<{ childDocs: IndexedDoc[], childIndexedDocMap: Map, IndexedDoc> }> { const childDocs = await this.search(classes, findQuery, fullTextLimit) const childIndexedDocMap = new Map, IndexedDoc>() @@ -304,7 +304,7 @@ export class FullTextMiddleware extends BaseMiddleware implements Middleware { return { childDocs, childIndexedDocMap } } - async searchFulltext(ctx: MeasureContext, query: SearchQuery, options: SearchOptions): Promise { + async searchFulltext (ctx: MeasureContext, query: SearchQuery, options: SearchOptions): Promise { try { return await ctx.with('full-text-search', {}, async (ctx) => { return await ( @@ -333,7 +333,7 @@ export class FullTextMiddleware extends BaseMiddleware implements Middleware { } } - async close(): Promise { + async close (): Promise { try { await fetch(this.fulltextEndpoint + '/api/v1/close', { method: 'PUT', @@ -353,7 +353,7 @@ export class FullTextMiddleware extends BaseMiddleware implements Middleware { } } - getResultIds(ids: Set>, _id: ObjQueryType> | undefined): Set> { + getResultIds (ids: Set>, _id: ObjQueryType> | undefined): Set> { const result = new Set>() if (_id !== undefined) { if (typeof _id === 'string') { diff --git a/foundations/server/packages/middleware/src/guestPermissions.ts b/foundations/server/packages/middleware/src/guestPermissions.ts index cde2c2d382..e414dd7c1a 100644 --- a/foundations/server/packages/middleware/src/guestPermissions.ts +++ b/foundations/server/packages/middleware/src/guestPermissions.ts @@ -37,7 +37,7 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle private permissionsCache: GuestPermissionsCache | undefined = undefined private initPromise: Promise | undefined = undefined - static async create( + static async create ( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -45,7 +45,7 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle return new GuestPermissionsMiddleware(context, next) } - private async getPermissionsCache(ctx: MeasureContext): Promise { + private async getPermissionsCache (ctx: MeasureContext): Promise { if (this.permissionsCache !== undefined) return this.permissionsCache if (this.initPromise === undefined) { this.initPromise = this.loadPermissionsCache(ctx) @@ -55,7 +55,7 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle return this.permissionsCache ?? { roleAllowedClasses: new Map() } } - private async loadPermissionsCache(ctx: MeasureContext): Promise { + private async loadPermissionsCache (ctx: MeasureContext): Promise { try { const docs = await this.findAll(ctx, core.class.ModulePermissionGroup, {}, {}) if (docs.length > 0) { @@ -108,7 +108,7 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle } } - private invalidateCacheIfNeeded(txes: Tx[]): void { + private invalidateCacheIfNeeded (txes: Tx[]): void { for (const tx of txes) { if (TxProcessor.isExtendsCUD(tx._class)) { const cudTx = tx as TxCUD @@ -120,7 +120,7 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle } } - async tx(ctx: MeasureContext, txes: Tx[]): Promise { + async tx (ctx: MeasureContext, txes: Tx[]): Promise { const account = ctx.contextData.account if (hasAccountRole(account, AccountRole.User)) { if (!hasAccountRole(account, AccountRole.Maintainer)) { @@ -143,7 +143,7 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle return await this.provideTx(ctx, txes) } - private async processTx(ctx: MeasureContext, tx: Tx): Promise { + private async processTx (ctx: MeasureContext, tx: Tx): Promise { const h = this.context.hierarchy if (tx._class === core.class.TxApplyIf) { const applyTx = tx as TxApplyIf @@ -262,7 +262,7 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle * Returns the covered-class ancestor of the objectClass if one exists in the new permissions model, * or undefined if the class is not covered. */ - private getCoveredClass( + private getCoveredClass ( objectClass: Ref>, allowedClasses: Set>> ): Ref> | undefined { @@ -276,14 +276,14 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle return undefined } - private isCreatedByAccount(doc: Doc, account: Account): boolean { + private isCreatedByAccount (doc: Doc, account: Account): boolean { const creator = doc.createdBy if (creator === undefined) return false if (creator === account.primarySocialId) return true return account.socialIds.includes(creator) } - private async isGuestMutationOnOwnDoc(ctx: MeasureContext, tx: TxCUD, account: Account): Promise { + private async isGuestMutationOnOwnDoc (ctx: MeasureContext, tx: TxCUD, account: Account): Promise { if (tx._class !== core.class.TxUpdateDoc && tx._class !== core.class.TxRemoveDoc) return false const docs = await this.findAll(ctx, tx.objectClass, { _id: tx.objectId }, { limit: 1 }) const doc = docs[0] as Doc | undefined @@ -291,7 +291,7 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle return this.isCreatedByAccount(doc, account) } - private async isForbiddenTx(ctx: MeasureContext, tx: TxCUD, account: Account): Promise { + private async isForbiddenTx (ctx: MeasureContext, tx: TxCUD, account: Account): Promise { if (tx._class === core.class.TxMixin) return false // For TxCreateDoc, check the new permission model first for covered types. @@ -318,7 +318,7 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle return true } - private async isForbiddenSpaceTx(ctx: MeasureContext, tx: TxCUD, account: Account): Promise { + private async isForbiddenSpaceTx (ctx: MeasureContext, tx: TxCUD, account: Account): Promise { if (tx._class === core.class.TxRemoveDoc) return true if (tx._class === core.class.TxCreateDoc) { return !(await this.hasMixinAccessLevel(ctx, tx, account)) @@ -337,7 +337,7 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle return false } - private async hasMixinAccessLevel(ctx: MeasureContext, tx: TxCUD, account: Account): Promise { + private async hasMixinAccessLevel (ctx: MeasureContext, tx: TxCUD, account: Account): Promise { const h = this.context.hierarchy const accessLevelMixin = h.classHierarchyMixin(tx.objectClass, core.mixin.TxAccessLevel) if (accessLevelMixin === undefined) return false diff --git a/foundations/server/packages/middleware/src/identifier.ts b/foundations/server/packages/middleware/src/identifier.ts index 87e896ebe5..b72caf4aa2 100644 --- a/foundations/server/packages/middleware/src/identifier.ts +++ b/foundations/server/packages/middleware/src/identifier.ts @@ -37,11 +37,11 @@ import { * @public */ export class IdentifierMiddleware extends BaseMiddleware implements Middleware { - private constructor(context: PipelineContext, next?: Middleware) { + private constructor (context: PipelineContext, next?: Middleware) { super(context, next) } - static async create( + static async create ( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -49,7 +49,7 @@ export class IdentifierMiddleware extends BaseMiddleware implements Middleware { return new IdentifierMiddleware(context, next) } - async tx(ctx: MeasureContext, txes: Tx[]): Promise { + async tx (ctx: MeasureContext, txes: Tx[]): Promise { for (const tx of txes) { if (isTargetTx(tx)) { if (tx._class === core.class.TxUpdateDoc) { @@ -62,7 +62,7 @@ export class IdentifierMiddleware extends BaseMiddleware implements Middleware { return await this.provideTx(ctx, txes) } - private async setIdentifiers( + private async setIdentifiers ( ctx: MeasureContext, tx: TxCreateDoc | TxMixin ): Promise { @@ -83,7 +83,7 @@ export class IdentifierMiddleware extends BaseMiddleware implements Middleware { } } - private async setIdentifiersInUpdate(ctx: MeasureContext, tx: TxUpdateDoc): Promise { + private async setIdentifiersInUpdate (ctx: MeasureContext, tx: TxUpdateDoc): Promise { const newClass = (tx.operations as any)._class as Ref> | undefined if (newClass === undefined) { return @@ -109,7 +109,7 @@ export class IdentifierMiddleware extends BaseMiddleware implements Middleware { } } - private async generateIdentifier( + private async generateIdentifier ( ctx: MeasureContext, tx: Tx, type: TypeIdentifier @@ -133,7 +133,7 @@ export class IdentifierMiddleware extends BaseMiddleware implements Middleware { } } -function isTargetTx(tx: Tx): boolean { +function isTargetTx (tx: Tx): boolean { return ( tx._class === core.class.TxCreateDoc || tx._class === core.class.TxMixin || diff --git a/foundations/server/packages/middleware/src/identity.ts b/foundations/server/packages/middleware/src/identity.ts index d3d6bf5349..5ab04af7d1 100644 --- a/foundations/server/packages/middleware/src/identity.ts +++ b/foundations/server/packages/middleware/src/identity.ts @@ -34,11 +34,11 @@ export const aiBotAccountEmail = 'huly.ai.bot@hc.engineering' * @public */ export class IdentityMiddleware extends BaseMiddleware implements Middleware { - private constructor(context: PipelineContext, next?: Middleware) { + private constructor (context: PipelineContext, next?: Middleware) { super(context, next) } - static async create( + static async create ( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -46,7 +46,7 @@ export class IdentityMiddleware extends BaseMiddleware implements Middleware { return new IdentityMiddleware(context, next) } - tx(ctx: MeasureContext, txes: Tx[]): Promise { + tx (ctx: MeasureContext, txes: Tx[]): Promise { const account = ctx.contextData.account if (account.uuid === systemAccountUuid || account.fullSocialIds.some((it) => it.value === aiBotAccountEmail)) { @@ -55,7 +55,7 @@ export class IdentityMiddleware extends BaseMiddleware implements Middleware { // We pass for system accounts and services. return this.provideTx(ctx, txes) } - function checkTx(tx: Tx): void { + function checkTx (tx: Tx): void { const mxAccount = ctx.contextData.socialStringsToUsers.get(tx.modifiedBy)?.accontUuid if (mxAccount === undefined || mxAccount !== account.uuid) { throw new PlatformError( diff --git a/foundations/server/packages/middleware/src/liveQuery.ts b/foundations/server/packages/middleware/src/liveQuery.ts index 706bfd5fae..794ff127e6 100644 --- a/foundations/server/packages/middleware/src/liveQuery.ts +++ b/foundations/server/packages/middleware/src/liveQuery.ts @@ -34,18 +34,18 @@ import type { Middleware, PipelineContext, ServerFindOptions, TxMiddlewareResult export class LiveQueryMiddleware extends BaseMiddleware implements Middleware { liveQuery: LQ - constructor(metrics: MeasureContext, context: PipelineContext, next?: Middleware) { + constructor (metrics: MeasureContext, context: PipelineContext, next?: Middleware) { super(context, next) this.liveQuery = new LQ(this.newCastClient(context.hierarchy, context.modelDb, metrics)) this.context.liveQuery = this.liveQuery } - private newCastClient(hierarchy: Hierarchy, modelDb: ModelDb, metrics: MeasureContext): Client { + private newCastClient (hierarchy: Hierarchy, modelDb: ModelDb, metrics: MeasureContext): Client { return { - getHierarchy(): Hierarchy { + getHierarchy (): Hierarchy { return hierarchy }, - getModel(): ModelDb { + getModel (): ModelDb { return modelDb }, close: () => Promise.resolve(), @@ -103,12 +103,12 @@ export class LiveQueryMiddleware extends BaseMiddleware implements Middleware { } } - static async create(ctx: MeasureContext, context: PipelineContext, next?: Middleware): Promise { + static async create (ctx: MeasureContext, context: PipelineContext, next?: Middleware): Promise { // we need to init triggers from model first. return new LiveQueryMiddleware(ctx, context, next) } - async tx(ctx: MeasureContext, tx: Tx[]): Promise { + async tx (ctx: MeasureContext, tx: Tx[]): Promise { await this.liveQuery.tx(...tx) return await this.provideTx(ctx, tx) } diff --git a/foundations/server/packages/middleware/src/lookup.ts b/foundations/server/packages/middleware/src/lookup.ts index bb19ec43d3..f7b600ecb9 100644 --- a/foundations/server/packages/middleware/src/lookup.ts +++ b/foundations/server/packages/middleware/src/lookup.ts @@ -33,11 +33,11 @@ import { * @public */ export class LookupMiddleware extends BaseMiddleware implements Middleware { - private constructor(context: PipelineContext, next?: Middleware) { + private constructor (context: PipelineContext, next?: Middleware) { super(context, next) } - static async create( + static async create ( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -45,7 +45,7 @@ export class LookupMiddleware extends BaseMiddleware implements Middleware { return new LookupMiddleware(context, next) } - override async findAll( + override async findAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -57,9 +57,9 @@ export class LookupMiddleware extends BaseMiddleware implements Middleware { if (options?.lookup !== undefined) { const newResult: T[] = [] let counter = 0 - const idClassMap: Record = {} + const idClassMap: Record = {} - function mapDoc(doc: Doc): number { + function mapDoc (doc: Doc): number { const key = doc._class + '@' + doc._id let docRef = idClassMap[key] if (docRef === undefined) { @@ -99,7 +99,7 @@ export class LookupMiddleware extends BaseMiddleware implements Middleware { return this.cleanQuery(result, query, undefined, new Set(options?.pagination?.fields.map(({ field }) => field))) } - private cleanQuery( + private cleanQuery ( result: FindResult, query: DocumentQuery, lookupMap?: Record, diff --git a/foundations/server/packages/middleware/src/lowLevel.ts b/foundations/server/packages/middleware/src/lowLevel.ts index ccd19bc0bb..ad2a7b2b98 100644 --- a/foundations/server/packages/middleware/src/lowLevel.ts +++ b/foundations/server/packages/middleware/src/lowLevel.ts @@ -33,7 +33,7 @@ import { BaseMiddleware } from '@hcengineering/server-core' * @public */ export class LowLevelMiddleware extends BaseMiddleware implements Middleware { - static async create( + static async create ( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -43,22 +43,22 @@ export class LowLevelMiddleware extends BaseMiddleware implements Middleware { } const adapterManager = context.adapterManager context.lowLevelStorage = { - find(ctx: MeasureContext, domain: Domain): StorageIterator { + find (ctx: MeasureContext, domain: Domain): StorageIterator { return adapterManager.getAdapter(domain, false).find(ctx, domain) }, - load(ctx: MeasureContext, domain: Domain, docs: Ref[]): Promise { + load (ctx: MeasureContext, domain: Domain, docs: Ref[]): Promise { return adapterManager.getAdapter(domain, false).load(ctx, domain, docs) }, - upload(ctx: MeasureContext, domain: Domain, docs: Doc[]): Promise { + upload (ctx: MeasureContext, domain: Domain, docs: Doc[]): Promise { return adapterManager.getAdapter(domain, true).upload(ctx, domain, docs) }, - clean(ctx: MeasureContext, domain: Domain, docs: Ref[]): Promise { + clean (ctx: MeasureContext, domain: Domain, docs: Ref[]): Promise { return adapterManager.getAdapter(domain, true).clean(ctx, domain, docs) }, - groupBy( + groupBy ( ctx: MeasureContext, domain: Domain, field: string, @@ -66,19 +66,19 @@ export class LowLevelMiddleware extends BaseMiddleware implements Middleware { ): Promise> { return adapterManager.getAdapter(domain, false).groupBy(ctx, domain, field, query) }, - rawFindAll(domain: Domain, query: DocumentQuery, options?: FindOptions): Promise { + rawFindAll (domain: Domain, query: DocumentQuery, options?: FindOptions): Promise { return adapterManager.getAdapter(domain, false).rawFindAll(domain, query, options) }, - rawUpdate(domain: Domain, query: DocumentQuery, operations: DocumentUpdate): Promise { + rawUpdate (domain: Domain, query: DocumentQuery, operations: DocumentUpdate): Promise { return adapterManager.getAdapter(domain, true).rawUpdate(domain, query, operations) }, - rawDeleteMany(domain, query) { + rawDeleteMany (domain, query) { return adapterManager.getAdapter(domain, true).rawDeleteMany(domain, query) }, - getDomainHash(ctx: MeasureContext, domain: Domain): Promise { + getDomainHash (ctx: MeasureContext, domain: Domain): Promise { return adapterManager.getAdapter(domain, false).getDomainHash(ctx, domain) }, - traverse( + traverse ( domain: Domain, query: DocumentQuery, options?: Pick, 'sort' | 'limit' | 'projection'> diff --git a/foundations/server/packages/middleware/src/model.ts b/foundations/server/packages/middleware/src/model.ts index 5b3ca4f12b..c028d5e34f 100644 --- a/foundations/server/packages/middleware/src/model.ts +++ b/foundations/server/packages/middleware/src/model.ts @@ -52,7 +52,7 @@ export class ModelMiddleware extends BaseMiddleware implements Middleware { lastHash: string = '' lastHashResponse!: Promise - constructor( + constructor ( context: PipelineContext, next: Middleware | undefined, readonly systemTx: Tx[], @@ -62,7 +62,7 @@ export class ModelMiddleware extends BaseMiddleware implements Middleware { } @withContext('modelAdapter-middleware') - static async doCreate( + static async doCreate ( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined, @@ -74,19 +74,19 @@ export class ModelMiddleware extends BaseMiddleware implements Middleware { return middleware } - static create(tx: Tx[], filter?: (h: Hierarchy, model: Tx[]) => Tx[]): MiddlewareCreator { + static create (tx: Tx[], filter?: (h: Hierarchy, model: Tx[]) => Tx[]): MiddlewareCreator { return (ctx, context, next) => { return this.doCreate(ctx, context, next, tx, filter) } } @withContext('get-model') - async getUserTx(ctx: MeasureContext, txAdapter: TxAdapter): Promise { + async getUserTx (ctx: MeasureContext, txAdapter: TxAdapter): Promise { const allUserTxes = await ctx.with('fetch-model', {}, (ctx) => txAdapter.getModel(ctx)) return allUserTxes.filter((it) => !isAccountTx(it as TxCUD)) } - findAll( + findAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -103,7 +103,7 @@ export class ModelMiddleware extends BaseMiddleware implements Middleware { return this.provideFindAll(ctx, _class, query, options) } - async init(ctx: MeasureContext): Promise { + async init (ctx: MeasureContext): Promise { if (this.context.adapterManager == null) { throw new PlatformError(unknownError('Adapter manager should be configured')) } @@ -124,7 +124,7 @@ export class ModelMiddleware extends BaseMiddleware implements Middleware { this.setModel(fmodel) } - private addModelTx(tx: Tx): void { + private addModelTx (tx: Tx): void { const h = crypto.createHash('sha1') h.update(this.lastHash) h.update(JSON.stringify(tx)) @@ -132,12 +132,12 @@ export class ModelMiddleware extends BaseMiddleware implements Middleware { this.setLastHash(hash) } - private setLastHash(hash: string): void { + private setLastHash (hash: string): void { this.lastHash = hash this.context.lastHash = this.lastHash } - private setModel(model: Tx[]): void { + private setModel (model: Tx[]): void { let last = '' model.map((it, index) => { const h = crypto.createHash('sha1') @@ -149,7 +149,7 @@ export class ModelMiddleware extends BaseMiddleware implements Middleware { this.setLastHash(last) } - async loadModel(ctx: MeasureContext, lastModelTx: Timestamp, hash?: string): Promise { + async loadModel (ctx: MeasureContext, lastModelTx: Timestamp, hash?: string): Promise { if (hash !== undefined) { if (hash === this.lastHash) { return { @@ -169,7 +169,7 @@ export class ModelMiddleware extends BaseMiddleware implements Middleware { return this.systemTx.concat(await this.getUserTx(ctx, txAdapter)).filter((it) => it.modifiedOn > lastModelTx) } - tx(ctx: MeasureContext, tx: Tx[]): Promise { + tx (ctx: MeasureContext, tx: Tx[]): Promise { const modelTxes = tx.filter((it) => it.objectSpace === core.space.Model) if (modelTxes.length > 0) { for (const t of modelTxes) { diff --git a/foundations/server/packages/middleware/src/modified.ts b/foundations/server/packages/middleware/src/modified.ts index e375350ed6..15ef0d80b0 100644 --- a/foundations/server/packages/middleware/src/modified.ts +++ b/foundations/server/packages/middleware/src/modified.ts @@ -30,11 +30,11 @@ import { * @public */ export class ModifiedMiddleware extends BaseMiddleware implements Middleware { - private constructor(context: PipelineContext, next?: Middleware) { + private constructor (context: PipelineContext, next?: Middleware) { super(context, next) } - static async create( + static async create ( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -42,9 +42,9 @@ export class ModifiedMiddleware extends BaseMiddleware implements Middleware { return new ModifiedMiddleware(context, next) } - tx(ctx: MeasureContext, txes: Tx[]): Promise { + tx (ctx: MeasureContext, txes: Tx[]): Promise { const now = Date.now() - function updateTx(tx: Tx): void { + function updateTx (tx: Tx): void { if (tx.modifiedBy !== core.account.System && ctx.contextData.account.uuid !== systemAccountUuid) { tx.modifiedOn = now tx.createdOn = tx.modifiedOn diff --git a/foundations/server/packages/middleware/src/normalizeTx.ts b/foundations/server/packages/middleware/src/normalizeTx.ts index 5c95ba33cb..ec9d3a0fc3 100644 --- a/foundations/server/packages/middleware/src/normalizeTx.ts +++ b/foundations/server/packages/middleware/src/normalizeTx.ts @@ -52,11 +52,11 @@ type ExplicitTx = WithIdType, Ref> * @public */ export class NormalizeTxMiddleware extends BaseMiddleware implements Middleware { - private constructor(context: PipelineContext, next?: Middleware) { + private constructor (context: PipelineContext, next?: Middleware) { super(context, next) } - static async create( + static async create ( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -64,7 +64,7 @@ export class NormalizeTxMiddleware extends BaseMiddleware implements Middleware return new NormalizeTxMiddleware(context, next) } - tx(ctx: MeasureContext, txes: unknown[]): Promise { + tx (ctx: MeasureContext, txes: unknown[]): Promise { const parsedTxes = [] for (const tx of txes) { const parsedTx = this.parseTx(tx) @@ -76,7 +76,7 @@ export class NormalizeTxMiddleware extends BaseMiddleware implements Middleware return this.provideTx(ctx, parsedTxes) } - private checkMeta(meta: unknown): meta is Record | undefined { + private checkMeta (meta: unknown): meta is Record | undefined { if (meta === undefined) { return true } @@ -91,7 +91,7 @@ export class NormalizeTxMiddleware extends BaseMiddleware implements Middleware return true } - private parseBaseTx(source: unknown): ExplicitTx | undefined { + private parseBaseTx (source: unknown): ExplicitTx | undefined { if (source == null || typeof source !== 'object') { return undefined } @@ -126,7 +126,7 @@ export class NormalizeTxMiddleware extends BaseMiddleware implements Middleware return baseTx } - private parseTx(source: unknown): Tx | undefined { + private parseTx (source: unknown): Tx | undefined { const baseTx = this.parseBaseTx(source) if (baseTx === undefined) { return undefined @@ -200,7 +200,7 @@ export class NormalizeTxMiddleware extends BaseMiddleware implements Middleware return undefined } - private parseTxCUD(source: unknown, base: ExplicitTx): ExplicitTx> | undefined { + private parseTxCUD (source: unknown, base: ExplicitTx): ExplicitTx> | undefined { const { objectId, objectClass, attachedTo, attachedToClass, collection } = source as Record< keyof TxCUD, unknown diff --git a/foundations/server/packages/middleware/src/pluginConfig.ts b/foundations/server/packages/middleware/src/pluginConfig.ts index 28e7a2450e..37981ea234 100644 --- a/foundations/server/packages/middleware/src/pluginConfig.ts +++ b/foundations/server/packages/middleware/src/pluginConfig.ts @@ -36,11 +36,11 @@ import { aiBotAccountEmail } from './identity' * @public */ export class PluginConfigurationMiddleware extends BaseMiddleware implements Middleware { - private constructor(context: PipelineContext, next?: Middleware) { + private constructor (context: PipelineContext, next?: Middleware) { super(context, next) } - static async create( + static async create ( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -48,13 +48,13 @@ export class PluginConfigurationMiddleware extends BaseMiddleware implements Mid return new PluginConfigurationMiddleware(context, next) } - tx(ctx: MeasureContext, txes: Tx[]): Promise { + tx (ctx: MeasureContext, txes: Tx[]): Promise { const account = ctx.contextData.account if (account.uuid === systemAccountUuid || account.fullSocialIds.some((it) => it.value === aiBotAccountEmail)) { // We pass for system accounts and services. return this.provideTx(ctx, txes) } - function checkTx(tx: Tx): void { + function checkTx (tx: Tx): void { if (TxProcessor.isExtendsCUD(tx._class)) { const cud = tx as TxCUD if (cud.objectClass === core.class.PluginConfiguration && ctx.contextData.account.role !== AccountRole.Owner) { diff --git a/foundations/server/packages/middleware/src/private.ts b/foundations/server/packages/middleware/src/private.ts index 298fdb5416..f785355e6e 100644 --- a/foundations/server/packages/middleware/src/private.ts +++ b/foundations/server/packages/middleware/src/private.ts @@ -47,11 +47,11 @@ export const DOMAIN_PREFERENCE = 'preference' as Domain export class PrivateMiddleware extends BaseMiddleware implements Middleware { private readonly targetDomains = [DOMAIN_PREFERENCE] - private constructor(context: PipelineContext, next?: Middleware) { + private constructor (context: PipelineContext, next?: Middleware) { super(context, next) } - static async create( + static async create ( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -59,7 +59,7 @@ export class PrivateMiddleware extends BaseMiddleware implements Middleware { return new PrivateMiddleware(context, next) } - isTargetDomain(tx: Tx): boolean { + isTargetDomain (tx: Tx): boolean { if (TxProcessor.isExtendsCUD(tx._class)) { const txCUD = tx as TxCUD const domain = this.context.hierarchy.getDomain(txCUD.objectClass) @@ -68,7 +68,7 @@ export class PrivateMiddleware extends BaseMiddleware implements Middleware { return false } - tx(ctx: MeasureContext, txes: Tx[]): Promise { + tx (ctx: MeasureContext, txes: Tx[]): Promise { for (const tx of txes) { if (this.isTargetDomain(tx)) { const account = ctx.contextData.account @@ -96,7 +96,7 @@ export class PrivateMiddleware extends BaseMiddleware implements Middleware { return this.provideTx(ctx, txes) } - override async findAll( + override async findAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -143,7 +143,7 @@ export class PrivateMiddleware extends BaseMiddleware implements Middleware { return findResult } - isAvailable(ctx: MeasureContext, doc: Doc): boolean { + isAvailable (ctx: MeasureContext, doc: Doc): boolean { const domain = this.context.hierarchy.getDomain(doc._class) if (!this.targetDomains.includes(domain)) return true const account = ctx.contextData.account @@ -151,7 +151,7 @@ export class PrivateMiddleware extends BaseMiddleware implements Middleware { return (doc.createdBy !== undefined && socialStrings.includes(doc.createdBy)) || account.uuid === systemAccountUuid } - filterLookup(ctx: MeasureContext, lookup: LookupData): void { + filterLookup (ctx: MeasureContext, lookup: LookupData): void { for (const key in lookup) { const val = lookup[key] if (Array.isArray(val)) { diff --git a/foundations/server/packages/middleware/src/queryJoin.ts b/foundations/server/packages/middleware/src/queryJoin.ts index 66b424fd24..52c8527d39 100644 --- a/foundations/server/packages/middleware/src/queryJoin.ts +++ b/foundations/server/packages/middleware/src/queryJoin.ts @@ -48,7 +48,7 @@ interface Query { export class QueryJoiner { private readonly queries: Map = new Map() - async query(ctx: MeasureContext, key: string, retrieve: (ctx: MeasureContext) => Promise): Promise { + async query (ctx: MeasureContext, key: string, retrieve: (ctx: MeasureContext) => Promise): Promise { // Will find a query or add + 1 to callbacks const q = this.getQuery(key) try { @@ -67,7 +67,7 @@ export class QueryJoiner { } } - private getQuery(key: string): Query { + private getQuery (key: string): Query { const query = this.queries.get(key) if (query === undefined) { const q: Query = { @@ -85,7 +85,7 @@ export class QueryJoiner { return query } - private removeFromQueue(q: Query): void { + private removeFromQueue (q: Query): void { if (q.callbacks === 0) { this.queries.delete(q.key) } @@ -98,12 +98,12 @@ export class QueryJoiner { export class QueryJoinMiddleware extends BaseMiddleware implements Middleware { private readonly joiner: QueryJoiner - private constructor(context: PipelineContext, next?: Middleware) { + private constructor (context: PipelineContext, next?: Middleware) { super(context, next) this.joiner = new QueryJoiner() } - loadModel( + loadModel ( ctx: MeasureContext, lastModelTx: Timestamp, hash?: string @@ -113,7 +113,7 @@ export class QueryJoinMiddleware extends BaseMiddleware implements Middleware { }) } - static async create( + static async create ( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -121,7 +121,7 @@ export class QueryJoinMiddleware extends BaseMiddleware implements Middleware { return new QueryJoinMiddleware(context, next) } - override findAll( + override findAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -138,7 +138,7 @@ export class QueryJoinMiddleware extends BaseMiddleware implements Middleware { ) } - groupBy( + groupBy ( ctx: MeasureContext, domain: Domain, field: string, @@ -149,7 +149,7 @@ export class QueryJoinMiddleware extends BaseMiddleware implements Middleware { }) } - searchFulltext(ctx: MeasureContext, query: SearchQuery, options: SearchOptions): Promise { + searchFulltext (ctx: MeasureContext, query: SearchQuery, options: SearchOptions): Promise { return this.joiner.query(ctx, `searchFulltext-${JSON.stringify(query)}-${JSON.stringify(options)}`, async (ctx) => { return await this.provideSearchFulltext(ctx, query, options) }) diff --git a/foundations/server/packages/middleware/src/queue.ts b/foundations/server/packages/middleware/src/queue.ts index d19c565803..c2741cc6a8 100644 --- a/foundations/server/packages/middleware/src/queue.ts +++ b/foundations/server/packages/middleware/src/queue.ts @@ -27,7 +27,7 @@ import { export class QueueMiddleware extends BaseMiddleware { txProducer: PlatformQueueProducer connected: Promise | undefined - constructor( + constructor ( ctx: MeasureContext, readonly context: PipelineContext, protected readonly next: Middleware | undefined, @@ -37,13 +37,13 @@ export class QueueMiddleware extends BaseMiddleware { this.txProducer = queue.getProducer(ctx, QueueTopic.Tx) } - static create(queue: PlatformQueue): MiddlewareCreator { + static create (queue: PlatformQueue): MiddlewareCreator { return async (ctx, context, next) => { return new QueueMiddleware(ctx, context, next, queue) } } - async handleBroadcast(ctx: MeasureContext): Promise { + async handleBroadcast (ctx: MeasureContext): Promise { if (this.connected !== undefined) { await this.connected this.connected = undefined diff --git a/foundations/server/packages/middleware/src/rank.ts b/foundations/server/packages/middleware/src/rank.ts index 38b5bf3a55..7ca011118e 100644 --- a/foundations/server/packages/middleware/src/rank.ts +++ b/foundations/server/packages/middleware/src/rank.ts @@ -40,11 +40,11 @@ import { export const RANK_AUTO = '' as Rank export class RankMiddleware extends BaseMiddleware implements Middleware { - private constructor(context: PipelineContext, next?: Middleware) { + private constructor (context: PipelineContext, next?: Middleware) { super(context, next) } - static async create( + static async create ( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -52,7 +52,7 @@ export class RankMiddleware extends BaseMiddleware implements Middleware { return new RankMiddleware(context, next) } - async tx(ctx: MeasureContext, txes: Tx[]): Promise { + async tx (ctx: MeasureContext, txes: Tx[]): Promise { for (const tx of txes) { await this.processTx(ctx, tx) } @@ -60,7 +60,7 @@ export class RankMiddleware extends BaseMiddleware implements Middleware { return await this.provideTx(ctx, txes) } - private async processTx(ctx: MeasureContext, tx: Tx): Promise { + private async processTx (ctx: MeasureContext, tx: Tx): Promise { if (tx._class === core.class.TxCreateDoc) { await this.setRank(ctx, tx as TxCreateDoc) } else if (tx._class === core.class.TxApplyIf) { @@ -71,7 +71,7 @@ export class RankMiddleware extends BaseMiddleware implements Middleware { } } - private async setRank(ctx: MeasureContext, tx: TxCreateDoc | TxMixin): Promise { + private async setRank (ctx: MeasureContext, tx: TxCreateDoc | TxMixin): Promise { const attributes = tx._class === core.class.TxCreateDoc ? this.context.hierarchy.getAllAttributes(tx.objectClass) diff --git a/foundations/server/packages/middleware/src/spacePermissions.ts b/foundations/server/packages/middleware/src/spacePermissions.ts index 5c43a1d53a..3637605c72 100644 --- a/foundations/server/packages/middleware/src/spacePermissions.ts +++ b/foundations/server/packages/middleware/src/spacePermissions.ts @@ -50,7 +50,7 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle private typeBySpace: Record, Ref> = {} wasInit: Promise | boolean = false - static async create( + static async create ( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -58,7 +58,7 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle return new SpacePermissionsMiddleware(context, next) } - private async init(ctx: MeasureContext): Promise { + private async init (ctx: MeasureContext): Promise { if (this.wasInit === true) { return } @@ -81,15 +81,15 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle } } - private getPermissions(): Permission[] { + private getPermissions (): Permission[] { return this.context.modelDb.findAllSync(core.class.Permission, {}) } - private getRoles(spaceTypeId: Ref): Role[] { + private getRoles (spaceTypeId: Ref): Role[] { return this.context.modelDb.findAllSync(core.class.Role, { attachedTo: spaceTypeId }) } - private setPermissions( + private setPermissions ( spaceId: Ref, roles: Role[], assignment: RolesAssignment, @@ -112,7 +112,7 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle } } - private addRestrictedSpace(space: TypedSpace): void { + private addRestrictedSpace (space: TypedSpace): void { this.permissionsBySpace[space._id] = {} const spaceType = this.context.modelDb.findAllSync(core.class.SpaceType, { _id: space.type })[0] @@ -148,13 +148,13 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle this.setPermissions(space._id, this.getRoles(spaceType._id), asMixin, this.getPermissions()) } - private isTypedSpaceClass(_class: Ref>): boolean { + private isTypedSpaceClass (_class: Ref>): boolean { const h = this.context.hierarchy return h.isDerived(_class, core.class.TypedSpace) } - private isTypedSpace(space: Space): space is TypedSpace { + private isTypedSpace (space: Space): space is TypedSpace { return this.isTypedSpaceClass(space._class) } @@ -163,7 +163,7 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle * * Checks if the required permission is present in the space for the given context */ - private checkPermission( + private checkPermission ( ctx: MeasureContext, space: Ref, tx: TxCUD, @@ -230,7 +230,7 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle return true } - private throwForbidden(): void { + private throwForbidden (): void { throw new PlatformError(new Status(Severity.ERROR, platform.status.Forbidden, {})) } @@ -247,7 +247,7 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle // this.throwForbidden() // } - private handleCreate(tx: TxCUD): void { + private handleCreate (tx: TxCUD): void { const createTx = tx as TxCreateDoc if (!this.context.hierarchy.isDerived(createTx.objectClass, core.class.Space)) return if (this.isTypedSpaceClass(createTx.objectClass)) { @@ -260,7 +260,7 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle } } - private handleMixin(tx: TxCUD): void { + private handleMixin (tx: TxCUD): void { if (!this.isTypedSpaceClass(tx.objectClass)) { return } @@ -303,7 +303,7 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle this.setPermissions(spaceId, this.getRoles(spaceType._id), assignment, this.getPermissions()) } - private handleRemove(tx: TxCUD): void { + private handleRemove (tx: TxCUD): void { const removeTx = tx if (!this.context.hierarchy.isDerived(removeTx.objectClass, core.class.Space)) return if (removeTx._class !== core.class.TxCreateDoc) return @@ -318,15 +318,15 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle this.restrictedSpaces.delete(tx.objectId) } - private isSpaceTxCUD(tx: TxCUD): tx is TxCUD { + private isSpaceTxCUD (tx: TxCUD): tx is TxCUD { return this.context.hierarchy.isDerived(tx.objectClass, core.class.Space) } - private isRoleTxCUD(tx: TxCUD): tx is TxCUD { + private isRoleTxCUD (tx: TxCUD): tx is TxCUD { return this.context.hierarchy.isDerived(tx.objectClass, core.class.Role) } - private handlePermissionsUpdatesFromRoleTx(ctx: MeasureContext, actualTx: TxCUD): void { + private handlePermissionsUpdatesFromRoleTx (ctx: MeasureContext, actualTx: TxCUD): void { if (actualTx._class !== core.class.TxUpdateDoc) { return } @@ -376,7 +376,7 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle } } - private handlePermissionsUpdatesFromTx(ctx: MeasureContext, tx: TxCUD): void { + private handlePermissionsUpdatesFromTx (ctx: MeasureContext, tx: TxCUD): void { if (this.isSpaceTxCUD(tx)) { if (tx._class === core.class.TxCreateDoc) { this.handleCreate(tx) @@ -392,7 +392,7 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle this.handlePermissionsUpdatesFromRoleTx(ctx, tx) } - private handleSpaceUpdate(tx: TxCUD): void { + private handleSpaceUpdate (tx: TxCUD): void { if (!this.isTypedSpaceClass(tx.objectClass)) { return } @@ -407,7 +407,7 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle } } - private processPermissionsUpdatesFromTx(ctx: MeasureContext, tx: Tx): void { + private processPermissionsUpdatesFromTx (ctx: MeasureContext, tx: Tx): void { if (!TxProcessor.isExtendsCUD(tx._class)) { return } @@ -416,7 +416,7 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle this.handlePermissionsUpdatesFromTx(ctx, cudTx) } - async tx(ctx: MeasureContext, txes: Tx[]): Promise { + async tx (ctx: MeasureContext, txes: Tx[]): Promise { await this.init(ctx) for (const tx of txes) { this.checkPermissions(ctx, tx) @@ -429,7 +429,7 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle return res } - protected checkPermissions(ctx: MeasureContext, tx: Tx): void { + protected checkPermissions (ctx: MeasureContext, tx: Tx): void { if (tx._class === core.class.TxApplyIf) { const applyTx = tx as TxApplyIf @@ -450,7 +450,7 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle } } - private checkSpaceTypePermissions(ctx: MeasureContext, cudTx: TxCUD): void { + private checkSpaceTypePermissions (ctx: MeasureContext, cudTx: TxCUD): void { const account = ctx.contextData.account const h = this.context.hierarchy if (account.primarySocialId === core.account.System) return @@ -460,7 +460,7 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle } } - private checkSpacePermissions( + private checkSpacePermissions ( ctx: MeasureContext, cudTx: TxCUD, targetSpaceId: Ref, @@ -477,11 +477,11 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle } } -function isMixinUpdateTx(tx: Tx): boolean { +function isMixinUpdateTx (tx: Tx): boolean { return tx._class === core.class.TxMixin && Object.keys((tx as TxMixin).attributes).length > 0 } -function isTxClassMatched(tx: Tx, permission: Permission): boolean { +function isTxClassMatched (tx: Tx, permission: Permission): boolean { if (permission.txClass === tx._class) return true if (permission.txMatch === undefined && isMixinUpdateTx(tx)) { return permission.txClass === core.class.TxUpdateDoc @@ -489,6 +489,6 @@ function isTxClassMatched(tx: Tx, permission: Permission): boolean { return false } -function getTxObjectClass(tx: TxCUD): Ref> { +function getTxObjectClass (tx: TxCUD): Ref> { return tx._class === core.class.TxMixin ? (tx as TxMixin).mixin : tx.objectClass } diff --git a/foundations/server/packages/middleware/src/spaceSecurity.ts b/foundations/server/packages/middleware/src/spaceSecurity.ts index 7e5f386ac6..2b4f29aa9c 100644 --- a/foundations/server/packages/middleware/src/spaceSecurity.ts +++ b/foundations/server/packages/middleware/src/spaceSecurity.ts @@ -82,7 +82,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar core.space.Tx ]) - private constructor( + private constructor ( private readonly skipFindCheck: boolean, context: PipelineContext, next?: Middleware @@ -90,7 +90,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar super(context, next) } - static async create( + static async create ( skipFindCheck: boolean, ctx: MeasureContext, context: PipelineContext, @@ -99,17 +99,17 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar return new SpaceSecurityMiddleware(skipFindCheck, context, next) } - private resyncDomains(): void { + private resyncDomains (): void { this.wasInit = false } - private addMemberSpace(member: AccountUuid, space: Ref): void { + private addMemberSpace (member: AccountUuid, space: Ref): void { const arr = this.allowedSpaces[member] ?? [] arr.push(space) this.allowedSpaces[member] = arr } - private addSpace(space: SpaceWithMembers): void { + private addSpace (space: SpaceWithMembers): void { this.spacesMap.set(space._id, space) if (space.private) { this.privateSpaces.add(space._id) @@ -121,7 +121,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } } - async init(ctx: MeasureContext): Promise { + async init (ctx: MeasureContext): Promise { if (this.wasInit === true) { return } @@ -163,7 +163,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } } - private removeMemberSpace(member: AccountUuid, space: Ref): void { + private removeMemberSpace (member: AccountUuid, space: Ref): void { const arr = this.allowedSpaces[member] if (arr !== undefined) { const index = arr.findIndex((p) => p === space) @@ -174,7 +174,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } } - private removeSpace(_id: Ref): void { + private removeSpace (_id: Ref): void { const space = this.spacesMap.get(_id) if (space !== undefined) { for (const member of space.members) { @@ -186,7 +186,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar this.publicSpaces.delete(_id) } - private async handeCollaborator(ctx: MeasureContext, tx: TxCUD): Promise { + private async handeCollaborator (ctx: MeasureContext, tx: TxCUD): Promise { if (!this.context.hierarchy.isDerived(tx.objectClass, core.class.Collaborator)) return if (tx._class === core.class.TxCreateDoc) { const collab = TxProcessor.createDoc2Doc(tx as TxCreateDoc) @@ -200,7 +200,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } } - private handleChangeCollaborator(ctx: MeasureContext, collab: Collaborator): void { + private handleChangeCollaborator (ctx: MeasureContext, collab: Collaborator): void { const collabSec = this.context.modelDb.findAllSync(core.class.ClassCollaborators, { attachedTo: collab.attachedToClass })[0] @@ -216,7 +216,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } } - private handleCreate(tx: TxCUD): void { + private handleCreate (tx: TxCUD): void { const createTx = tx as TxCreateDoc if (!this.context.hierarchy.isDerived(createTx.objectClass, core.class.Space)) return if (createTx.objectClass === core.class.SystemSpace) { @@ -227,7 +227,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } } - private pushMembersHandle( + private pushMembersHandle ( ctx: MeasureContext, addedMembers: AccountUuid | Position, space: Ref @@ -243,7 +243,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } } - private pullMembersHandle( + private pullMembersHandle ( ctx: MeasureContext, removedMembers: Partial | PullArray, space: Ref @@ -262,7 +262,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } } - private syncMembers(ctx: MeasureContext, members: AccountUuid[], space: SpaceWithMembers): void { + private syncMembers (ctx: MeasureContext, members: AccountUuid[], space: SpaceWithMembers): void { const oldMembers = new Set(space.members) const newMembers = new Set(members) const changed: AccountUuid[] = [] @@ -284,7 +284,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } } - private brodcastEvent(ctx: MeasureContext, users: AccountUuid[], space?: Ref): void { + private brodcastEvent (ctx: MeasureContext, users: AccountUuid[], space?: Ref): void { const targets = this.getTargets(users) const tx: TxWorkspaceEvent = { _class: core.class.TxWorkspaceEvent, @@ -307,20 +307,20 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } } - private broadcastNonMembers(ctx: MeasureContext, space: SpaceWithMembers): void { + private broadcastNonMembers (ctx: MeasureContext, space: SpaceWithMembers): void { const members = space?.members ?? [] this.brodcastEvent(ctx, members, space._id) } - private broadcastAll(ctx: MeasureContext, space: SpaceWithMembers): void { + private broadcastAll (ctx: MeasureContext, space: SpaceWithMembers): void { const { socialStringsToUsers } = ctx.contextData const accounts = Array.from(new Set(Array.from(socialStringsToUsers.values()).map((v) => v.accontUuid))) this.brodcastEvent(ctx, accounts, space._id) } - private async handleUpdate(ctx: MeasureContext, tx: TxCUD): Promise { + private async handleUpdate (ctx: MeasureContext, tx: TxCUD): Promise { await this.init(ctx) const updateDoc = tx as TxUpdateDoc @@ -358,14 +358,14 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } } - private handleRemove(tx: TxCUD): void { + private handleRemove (tx: TxCUD): void { const removeTx = tx if (!this.context.hierarchy.isDerived(removeTx.objectClass, core.class.Space)) return if (removeTx._class !== core.class.TxRemoveDoc) return this.removeSpace(tx.objectId) } - private async handleTx(ctx: MeasureContext, tx: TxCUD): Promise { + private async handleTx (ctx: MeasureContext, tx: TxCUD): Promise { await this.init(ctx) if (tx._class === core.class.TxCreateDoc) { this.handleCreate(tx) @@ -376,7 +376,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } } - getTargets(accounts: AccountUuid[]): AccountUuid[] { + getTargets (accounts: AccountUuid[]): AccountUuid[] { const res = Array.from(new Set(accounts)) // We need to add system account for targets for integrations to work properly res.push(systemAccountUuid) @@ -384,7 +384,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar return res } - private async processTxSpaceDomain(sctx: MeasureContext, actualTx: TxCUD): Promise { + private async processTxSpaceDomain (sctx: MeasureContext, actualTx: TxCUD): Promise { if (actualTx._class === core.class.TxCreateDoc) { const ctx = actualTx as TxCreateDoc const doc = TxProcessor.createDoc2Doc(ctx) @@ -404,7 +404,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } } - private async processTx(ctx: MeasureContext, tx: Tx): Promise { + private async processTx (ctx: MeasureContext, tx: Tx): Promise { const h = this.context.hierarchy if (TxProcessor.isExtendsCUD(tx._class)) { const cudTx = tx as TxCUD @@ -423,7 +423,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } } - async tx(ctx: MeasureContext, txes: Tx[]): Promise { + async tx (ctx: MeasureContext, txes: Tx[]): Promise { await this.init(ctx) const processed = new Set>() ctx.contextData.contextCache.set('processed', processed) @@ -434,7 +434,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar return await this.provideTx(ctx, txes) } - override async handleBroadcast(ctx: MeasureContext): Promise { + override async handleBroadcast (ctx: MeasureContext): Promise { const processed: Set> = ctx.contextData.contextCache.get('processed') ?? new Set>() ctx.contextData.contextCache.set('processed', processed) for (const txd of ctx.contextData.broadcast.txes) { @@ -524,7 +524,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar await this.next?.handleBroadcast(ctx) } - private getAllAllowedSpaces( + private getAllAllowedSpaces ( account: Account, isData: boolean, showArchived: boolean, @@ -543,7 +543,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar return unfilteredRes.filter((p) => this.spacesMap.get(p)?.archived !== true) } - async getDomainSpaces(ctx: MeasureContext, domain: Domain): Promise>> { + async getDomainSpaces (ctx: MeasureContext, domain: Domain): Promise>> { let domainSpaces = this._domainSpaces.get(domain) if (domainSpaces === undefined) { const p = ( @@ -556,11 +556,11 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar return domainSpaces instanceof Promise ? await domainSpaces : domainSpaces } - private async filterByDomain( + private async filterByDomain ( ctx: MeasureContext, domain: Domain, spaces: Ref[] - ): Promise<{ result: Set>; allDomainSpaces: boolean; domainSpaces: Set> }> { + ): Promise<{ result: Set>, allDomainSpaces: boolean, domainSpaces: Set> }> { const domainSpaces = await this.getDomainSpaces(ctx, domain) const result = new Set(spaces.filter((p) => domainSpaces.has(p))) return { @@ -570,7 +570,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } } - private async mergeQuery( + private async mergeQuery ( ctx: MeasureContext, account: Account, query: ObjQueryType, @@ -608,11 +608,11 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar return query } - private getKey(domain: string): string { + private getKey (domain: string): string { return domain === 'tx' ? 'objectSpace' : domain === 'space' ? '_id' : 'space' } - override async findAll( + override async findAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -699,7 +699,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar return findResult } - override async searchFulltext( + override async searchFulltext ( ctx: MeasureContext, query: SearchQuery, options: SearchOptions @@ -732,7 +732,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar return result } - filterLookup(ctx: MeasureContext, lookup: LookupData, showArchived: boolean): void { + filterLookup (ctx: MeasureContext, lookup: LookupData, showArchived: boolean): void { if (Object.keys(lookup).length === 0) return const account = ctx.contextData.account if (isSystem(account, ctx)) return diff --git a/foundations/server/packages/middleware/src/tests/guestPermissions.test.ts b/foundations/server/packages/middleware/src/tests/guestPermissions.test.ts index 7b90ab54d2..4d42784c68 100644 --- a/foundations/server/packages/middleware/src/tests/guestPermissions.test.ts +++ b/foundations/server/packages/middleware/src/tests/guestPermissions.test.ts @@ -52,7 +52,7 @@ const MODULE_PERMISSION_GROUP_CLASS = core.class.ModulePermissionGroup const ALLOWED_SPACE = 'test:space:Allowed' as Ref const FORBIDDEN_SPACE = 'test:space:Forbidden' as Ref -function makeAccount(role: AccountRole): Account { +function makeAccount (role: AccountRole): Account { return { uuid: generateId() as any, role, @@ -62,7 +62,7 @@ function makeAccount(role: AccountRole): Account { } } -function makeCtx(account: Account): MeasureContext { +function makeCtx (account: Account): MeasureContext { const ctx = new MeasureMetricsContext('test', {}) as MeasureContext ctx.contextData = { account, @@ -73,7 +73,7 @@ function makeCtx(account: Account): MeasureContext { type FindAllFn = (ctx: MeasureContext, _class: Ref>, query: object, options?: object) => Promise -function makePipelineContext(findAll?: FindAllFn): PipelineContext { +function makePipelineContext (findAll?: FindAllFn): PipelineContext { const hierarchy = new Hierarchy() const model = { findAllSync: (_class: any, _query: any) => [] } as any return { @@ -90,7 +90,7 @@ function makePipelineContext(findAll?: FindAllFn): PipelineContext { } } -function makeMiddleware( +function makeMiddleware ( findAll: FindAllFn, nextFn?: (ctx: MeasureContext, txes: Tx[]) => Promise ): GuestPermissionsMiddleware { @@ -102,7 +102,7 @@ function makeMiddleware( return mw } -function makeCreateTx(objectClass: Ref>, objectSpace: Ref): Tx { +function makeCreateTx (objectClass: Ref>, objectSpace: Ref): Tx { const factory = new TxFactory('test:account:System' as PersonId) return factory.createTxCreateDoc(objectClass, objectSpace, {}) } @@ -126,7 +126,7 @@ function makePersonDoc (_id: Ref, personUuid: Account['uuid'], employee: bo } // Helper: buildGuestSettings - simulate the document that loadPermissionsCache would find -function makeGuestSettingsDoc(allowedPermissions: Ref[], disabledPermissions?: Ref[]): Doc { +function makeGuestSettingsDoc (allowedPermissions: Ref[], disabledPermissions?: Ref[]): Doc { return { _id: generateId(), _class: MODULE_PERMISSION_GROUP_CLASS, @@ -486,7 +486,7 @@ describe('GuestPermissionsMiddleware', () => { return [] } - function patchHierarchy(mw: GuestPermissionsMiddleware): void { + function patchHierarchy (mw: GuestPermissionsMiddleware): void { ;(mw as any).context.hierarchy.isDerived = (a: any, b: any) => { if (b === core.class.Space) return false return a === b @@ -648,7 +648,7 @@ describe('GuestPermissionsMiddleware', () => { describe('guest update/remove own documents', () => { const GUEST_SOCIAL = 'test:guest-social' as PersonId - function makeGuestAccountWithSocial(): Account { + function makeGuestAccountWithSocial (): Account { return { uuid: generateId() as any, role: AccountRole.Guest, @@ -658,7 +658,7 @@ describe('GuestPermissionsMiddleware', () => { } } - function patchHierarchyNoTxAccessLevel(mw: GuestPermissionsMiddleware): void { + function patchHierarchyNoTxAccessLevel (mw: GuestPermissionsMiddleware): void { ;(mw as any).context.hierarchy.classHierarchyMixin = () => undefined ;(mw as any).context.hierarchy.isDerived = (a: any, b: any) => { if (b === core.class.Space) return false diff --git a/foundations/server/packages/middleware/src/tests/liveQuery.race.test.ts b/foundations/server/packages/middleware/src/tests/liveQuery.race.test.ts index b619cfb587..fa10c09bbe 100644 --- a/foundations/server/packages/middleware/src/tests/liveQuery.race.test.ts +++ b/foundations/server/packages/middleware/src/tests/liveQuery.race.test.ts @@ -68,14 +68,14 @@ const testDocClass = 'test:class:TestDoc' as Ref> */ class FindAllCounter { count: number = 0 - queries: Array<{ _class: Ref>; docId: Ref }> = [] + queries: Array<{ _class: Ref>, docId: Ref }> = [] - reset(): void { + reset (): void { this.count = 0 this.queries = [] } - recordQuery(_class: Ref>, docId: Ref): void { + recordQuery (_class: Ref>, docId: Ref): void { this.count++ this.queries.push({ _class, docId }) } @@ -86,15 +86,15 @@ class FindAllCounter { */ class TestLiveQueryMiddleware extends BaseMiddleware implements Middleware { private readonly documents = new Map, Doc>() - private readonly txQueue: Array<{ tx: TxUpdateDoc; delay: number }> = [] + private readonly txQueue: Array<{ tx: TxUpdateDoc, delay: number }> = [] private readonly findAllCounter: FindAllCounter - constructor(context: PipelineContext, findAllCounter: FindAllCounter, next?: Middleware) { + constructor (context: PipelineContext, findAllCounter: FindAllCounter, next?: Middleware) { super(context, next) this.findAllCounter = findAllCounter } - static async create( + static async create ( ctx: MeasureContext, context: PipelineContext, findAllCounter: FindAllCounter, @@ -104,18 +104,18 @@ class TestLiveQueryMiddleware extends BaseMiddleware implements Middleware { } // Create document in "database" - async createDoc(doc: Doc): Promise { + async createDoc (doc: Doc): Promise { this.documents.set(doc._id, doc) } // Simulate getCurrentDoc - fetching document from server - async getCurrentDoc(_class: Ref>, docId: Ref): Promise { + async getCurrentDoc (_class: Ref>, docId: Ref): Promise { this.findAllCounter.recordQuery(_class, docId) return this.documents.get(docId) } // Apply transaction to local document copy - async applyTxToLocalDoc(tx: TxUpdateDoc): Promise { + async applyTxToLocalDoc (tx: TxUpdateDoc): Promise { const doc = this.documents.get(tx.objectId) as any if (doc === undefined) { return false @@ -156,7 +156,7 @@ class TestLiveQueryMiddleware extends BaseMiddleware implements Middleware { return false // Refresh was not needed } - override async tx(ctx: MeasureContext, txes: any[]): Promise { + override async tx (ctx: MeasureContext, txes: any[]): Promise { // Just pass through return await this.provideTx(ctx, txes) } diff --git a/foundations/server/packages/middleware/src/tests/txOrdering.test.ts b/foundations/server/packages/middleware/src/tests/txOrdering.test.ts index e538c32206..62e044cbba 100644 --- a/foundations/server/packages/middleware/src/tests/txOrdering.test.ts +++ b/foundations/server/packages/middleware/src/tests/txOrdering.test.ts @@ -49,15 +49,15 @@ const testDocClass = 'test:class:TestDoc' as Ref> class BroadcastTracker { broadcasted: Tx[] = [] - record(tx: Tx): void { + record (tx: Tx): void { this.broadcasted.push(tx) } - reset(): void { + reset (): void { this.broadcasted = [] } - getOrder(): number[] { + getOrder (): number[] { return this.broadcasted.map((tx) => tx.modifiedOn) } } diff --git a/foundations/server/packages/middleware/src/transient.ts b/foundations/server/packages/middleware/src/transient.ts index 6dd8225777..614e0d9ad8 100644 --- a/foundations/server/packages/middleware/src/transient.ts +++ b/foundations/server/packages/middleware/src/transient.ts @@ -45,7 +45,7 @@ export class TransientMiddleware extends BaseMiddleware implements Middleware { now = Date.now() / 1000 dbProvider?: DbAdapter - private constructor( + private constructor ( readonly ctx: MeasureContext, context: PipelineContext, next?: Middleware @@ -66,7 +66,7 @@ export class TransientMiddleware extends BaseMiddleware implements Middleware { } } - static async create( + static async create ( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -105,7 +105,7 @@ export class TransientMiddleware extends BaseMiddleware implements Middleware { } }) - override async close(): Promise { + override async close (): Promise { if (this.ttlChecker !== undefined) { clearInterval(this.ttlChecker) this.ttlChecker = undefined @@ -113,7 +113,7 @@ export class TransientMiddleware extends BaseMiddleware implements Middleware { await super.close() } - tx(ctx: MeasureContext, txes: Tx[]): Promise { + tx (ctx: MeasureContext, txes: Tx[]): Promise { for (const tx of txes.filter((it) => TxProcessor.isExtendsCUD(it._class)) as TxCUD[]) { const ttl = this.ttlValues.get(tx.objectClass) if (ttl !== undefined && this.context.hierarchy.findDomain(tx.objectClass) === DOMAIN_TRANSIENT) { diff --git a/foundations/server/packages/middleware/src/triggers.ts b/foundations/server/packages/middleware/src/triggers.ts index 1a56f4c28c..4e2d2aa292 100644 --- a/foundations/server/packages/middleware/src/triggers.ts +++ b/foundations/server/packages/middleware/src/triggers.ts @@ -62,7 +62,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { cache = new Map() intervalId: NodeJS.Timeout - constructor(context: PipelineContext, next: Middleware | undefined) { + constructor (context: PipelineContext, next: Middleware | undefined) { super(context, next) this.triggers = new Triggers(this.context.hierarchy) this.intervalId = setInterval( @@ -73,18 +73,18 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { ) } - async close(): Promise { + async close (): Promise { clearInterval(this.intervalId) } - static async create(ctx: MeasureContext, context: PipelineContext, next?: Middleware): Promise { + static async create (ctx: MeasureContext, context: PipelineContext, next?: Middleware): Promise { // we need to init triggers from model first. const triggers = new TriggersMiddleware(context, next) await triggers.init(ctx) return triggers } - async init(ctx: MeasureContext): Promise { + async init (ctx: MeasureContext): Promise { if (this.context.storageAdapter == null) { throw new PlatformError(unknownError('Storage adapter should be specified')) } @@ -95,7 +95,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { this.triggers.init(this.context.modelDb) } - async tx(ctx: MeasureContext, tx: Tx[]): Promise { + async tx (ctx: MeasureContext, tx: Tx[]): Promise { await this.triggers.tx(tx) const result = await this.provideTx(ctx, tx) @@ -106,7 +106,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { return result } - private async processDerived(ctx: MeasureContext, txes: Tx[]): Promise { + private async processDerived (ctx: MeasureContext, txes: Tx[]): Promise { const findAll: SessionFindAll = async (ctx, _class, query, options) => { const _ctx: MeasureContext = (options as ServerFindOptions)?.ctx ?? ctx delete (options as ServerFindOptions)?.ctx @@ -195,7 +195,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { } @withContext('process-sync-triggers') - processSyncTriggers( + processSyncTriggers ( ctx: MeasureContext, txes: Tx[], triggerControl: Omit, @@ -215,7 +215,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { } @withContext('process-async-triggers') - async processAsyncTriggers( + async processAsyncTriggers ( ctx: MeasureContext, triggerControl: Omit, findAll: Middleware['findAll'], @@ -263,7 +263,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { } } - private async processDerivedTxes(ctx: MeasureContext, derived: Tx[]): Promise { + private async processDerivedTxes (ctx: MeasureContext, derived: Tx[]): Promise { if (derived.length > 0) { derived.sort((a, b) => a.modifiedOn - b.modifiedOn) await this.context.derived?.tx(ctx, derived) @@ -271,7 +271,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { } } - private getCollectionUpdateTx( + private getCollectionUpdateTx ( _id: Ref, _class: Ref>, modifiedBy: PersonId, @@ -295,7 +295,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { } } - private async processRemove(ctx: MeasureContext, txes: Tx[], findAll: SessionFindAll): Promise { + private async processRemove (ctx: MeasureContext, txes: Tx[], findAll: SessionFindAll): Promise { const result: Tx[] = [] for (const tx of txes) { @@ -321,7 +321,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { return result } - private async deleteClassCollections( + private async deleteClassCollections ( ctx: MeasureContext, _class: Ref>, objectId: Ref, @@ -342,7 +342,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { return result } - private async updateCollection( + private async updateCollection ( ctx: MeasureContext, colTx: TxUpdateDoc, findAll: SessionFindAll @@ -396,7 +396,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { return [...(oldTx !== null ? [oldTx] : []), ...(newTx !== null ? [newTx] : [])] } - private async processCollection( + private async processCollection ( ctx: MeasureContext, txes: Tx[], findAll: SessionFindAll @@ -445,7 +445,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { return result } - private getParentClass(_class: Ref>): Ref> { + private getParentClass (_class: Ref>): Ref> { const baseDomain = this.context.hierarchy.getDomain(_class) const ancestors = this.context.hierarchy.getAncestors(_class) let result: Ref> = _class @@ -460,7 +460,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { return result } - private getMixins(_class: Ref>, object: Doc): Array>> { + private getMixins (_class: Ref>, object: Doc): Array>> { const parentClass = this.getParentClass(_class) const descendants = this.context.hierarchy.getDescendants(parentClass) return descendants.filter( @@ -469,7 +469,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { ) } - private deleteObject(ctx: MeasureContext, object: Doc, removedMap: Map, Doc>): Tx[] { + private deleteObject (ctx: MeasureContext, object: Doc, removedMap: Map, Doc>): Tx[] { const result: Tx[] = [] const factory = new TxFactory(object.modifiedBy, true) if (this.context.hierarchy.isDerived(object._class, core.class.AttachedDoc)) { @@ -491,7 +491,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { return result } - private async deleteRelatedDocuments( + private async deleteRelatedDocuments ( ctx: MeasureContext, object: Doc, findAll: SessionFindAll @@ -514,7 +514,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { return result } - private async processMove(ctx: MeasureContext, txes: Tx[], findAll: SessionFindAll): Promise { + private async processMove (ctx: MeasureContext, txes: Tx[], findAll: SessionFindAll): Promise { const result: Tx[] = [] for (const tx of txes) { if (!this.context.hierarchy.isDerived(tx._class, core.class.TxUpdateDoc)) { diff --git a/foundations/server/packages/middleware/src/txOrdering.ts b/foundations/server/packages/middleware/src/txOrdering.ts index 7e84048426..4fd09ac5b5 100644 --- a/foundations/server/packages/middleware/src/txOrdering.ts +++ b/foundations/server/packages/middleware/src/txOrdering.ts @@ -52,11 +52,11 @@ export class TxOrderingMiddleware extends BaseMiddleware implements Middleware { // Only stores the last pending transaction per document private readonly docTxQueue = new Map, TxOrderEntry>() - static create(): MiddlewareCreator { + static create (): MiddlewareCreator { return async (ctx, context, next) => new TxOrderingMiddleware(context, next) } - override async tx(ctx: MeasureContext, txes: Tx[]): Promise { + override async tx (ctx: MeasureContext, txes: Tx[]): Promise { // Group transactions by document ID const txesByDoc = new Map, Tx[]>() @@ -132,7 +132,7 @@ export class TxOrderingMiddleware extends BaseMiddleware implements Middleware { /** * Extract target document ID from transaction */ - private getTargetDocId(tx: Tx): Ref | undefined { + private getTargetDocId (tx: Tx): Ref | undefined { if (TxProcessor.isExtendsCUD(tx._class)) { return (tx as TxCUD).objectId } diff --git a/foundations/server/packages/middleware/src/txPush.ts b/foundations/server/packages/middleware/src/txPush.ts index 3d6783f17a..694d7b8307 100644 --- a/foundations/server/packages/middleware/src/txPush.ts +++ b/foundations/server/packages/middleware/src/txPush.ts @@ -37,7 +37,7 @@ import { BaseMiddleware } from '@hcengineering/server-core' */ export class TxMiddleware extends BaseMiddleware implements Middleware { adapterManager!: DBAdapterManager - static async create(ctx: MeasureContext, context: PipelineContext, next?: Middleware): Promise { + static async create (ctx: MeasureContext, context: PipelineContext, next?: Middleware): Promise { const middleware = new TxMiddleware(context, next) if (context.adapterManager == null) { throw new PlatformError(unknownError('Adapter manager should be specified')) @@ -46,9 +46,9 @@ export class TxMiddleware extends BaseMiddleware implements Middleware { return middleware } - async init(ctx: MeasureContext): Promise {} + async init (ctx: MeasureContext): Promise {} - async tx(ctx: MeasureContext, txes: Tx[]): Promise { + async tx (ctx: MeasureContext, txes: Tx[]): Promise { const txToStore: Tx[] = [] for (const tx of txes) { if (TxProcessor.isExtendsCUD(tx._class)) { diff --git a/foundations/server/packages/middleware/src/userStatus.ts b/foundations/server/packages/middleware/src/userStatus.ts index 7655f49a61..bc2f33fcb8 100644 --- a/foundations/server/packages/middleware/src/userStatus.ts +++ b/foundations/server/packages/middleware/src/userStatus.ts @@ -36,11 +36,11 @@ import { * @public */ export class UserStatusMiddleware extends BaseMiddleware implements Middleware { - private constructor(context: PipelineContext, next?: Middleware) { + private constructor (context: PipelineContext, next?: Middleware) { super(context, next) } - static async create( + static async create ( _: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -48,7 +48,7 @@ export class UserStatusMiddleware extends BaseMiddleware implements Middleware { return new UserStatusMiddleware(context, next) } - tx(ctx: MeasureContext, txes: Tx[]): Promise { + tx (ctx: MeasureContext, txes: Tx[]): Promise { for (const tx of txes) { if (tx._class === core.class.TxApplyIf) { const atx = tx as TxApplyIf @@ -62,7 +62,7 @@ export class UserStatusMiddleware extends BaseMiddleware implements Middleware { return this.provideTx(ctx, txes) } - private processTx(tx: TxCUD): void { + private processTx (tx: TxCUD): void { if (tx._class === core.class.TxCreateDoc && tx.objectClass === core.class.UserStatus) { const status = TxProcessor.createDoc2Doc(tx as TxCreateDoc) const map = this.context.userStatusMap ?? new Map() diff --git a/foundations/server/packages/middleware/src/utils.ts b/foundations/server/packages/middleware/src/utils.ts index c1bceae48e..b6ea5b5c7f 100644 --- a/foundations/server/packages/middleware/src/utils.ts +++ b/foundations/server/packages/middleware/src/utils.ts @@ -26,15 +26,15 @@ import core, { type TxCUD } from '@hcengineering/core' -export function isOwner(account: Account, ctx: MeasureContext): boolean { +export function isOwner (account: Account, ctx: MeasureContext): boolean { return account.role === AccountRole.Owner || isSystem(account, ctx) } -export function isSystem(account: Account, ctx: MeasureContext): boolean { +export function isSystem (account: Account, ctx: MeasureContext): boolean { return account.uuid === systemAccountUuid } -export function filterBroadcastOnly(tx: Tx[], hierarchy: Hierarchy): Tx[] { +export function filterBroadcastOnly (tx: Tx[], hierarchy: Hierarchy): Tx[] { const ftx = tx.filter((it) => { if (TxProcessor.isExtendsCUD(it._class)) { const cud = it as TxCUD diff --git a/foundations/server/packages/middleware/src/versioning.ts b/foundations/server/packages/middleware/src/versioning.ts index 887a0112a5..a612767b77 100644 --- a/foundations/server/packages/middleware/src/versioning.ts +++ b/foundations/server/packages/middleware/src/versioning.ts @@ -42,11 +42,11 @@ import { * @public */ export class VersioningMiddleware extends BaseMiddleware implements Middleware { - private constructor(context: PipelineContext, next?: Middleware) { + private constructor (context: PipelineContext, next?: Middleware) { super(context, next) } - static async create( + static async create ( ctx: MeasureContext, context: PipelineContext, next: Middleware | undefined @@ -54,7 +54,7 @@ export class VersioningMiddleware extends BaseMiddleware implements Middleware { return new VersioningMiddleware(context, next) } - override async findAll( + override async findAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -104,7 +104,7 @@ export class VersioningMiddleware extends BaseMiddleware implements Middleware { return res } - private async setVersionData( + private async setVersionData ( ctx: MeasureContext, tx: TxCreateDoc ): Promise { @@ -144,7 +144,7 @@ export class VersioningMiddleware extends BaseMiddleware implements Middleware { } } - private isVerionableClass(_class: Ref>): boolean { + private isVerionableClass (_class: Ref>): boolean { try { return this.context.hierarchy.classHierarchyMixin(_class, core.mixin.VersionableClass) !== undefined } catch { diff --git a/foundations/server/packages/mongo/src/storage.ts b/foundations/server/packages/mongo/src/storage.ts index 0e219e073e..6b5c73d8c3 100644 --- a/foundations/server/packages/mongo/src/storage.ts +++ b/foundations/server/packages/mongo/src/storage.ts @@ -165,7 +165,7 @@ abstract class MongoAdapterBase implements DbAdapter { this._db = new DBCollectionHelper(db) } - async traverse( + async traverse ( domain: Domain, query: DocumentQuery, options?: Pick, 'sort' | 'limit' | 'projection'> @@ -206,7 +206,7 @@ abstract class MongoAdapterBase implements DbAdapter { } } - private translateRawQuery(query: DocumentQuery): Filter { + private translateRawQuery (query: DocumentQuery): Filter { const translated: any = {} for (const key in query) { const value = (query as any)[key] @@ -226,7 +226,7 @@ abstract class MongoAdapterBase implements DbAdapter { return translated } - async rawFindAll(domain: Domain, query: DocumentQuery, options?: FindOptions): Promise { + async rawFindAll (domain: Domain, query: DocumentQuery, options?: FindOptions): Promise { let cursor = this.db.collection(domain).find(this.translateRawQuery(query)) if (options?.limit !== undefined) { cursor = cursor.limit(options.limit) @@ -251,7 +251,7 @@ abstract class MongoAdapterBase implements DbAdapter { return await cursor.toArray() } - async rawUpdate( + async rawUpdate ( domain: Domain, query: DocumentQuery, operations: DocumentUpdate @@ -268,13 +268,13 @@ abstract class MongoAdapterBase implements DbAdapter { } } - rawDeleteMany(domain: Domain, query: DocumentQuery): Promise { + rawDeleteMany (domain: Domain, query: DocumentQuery): Promise { return this.db.collection(domain).deleteMany(this.translateRawQuery(query)).then() } - abstract init (ctx: MeasureContext): Promise + abstract init(ctx: MeasureContext): Promise - collection(domain: Domain): Collection { + collection (domain: Domain): Collection { return this._db.collection(domain) } @@ -291,7 +291,7 @@ abstract class MongoAdapterBase implements DbAdapter { return Promise.resolve() } - private translateQuery( + private translateQuery ( clazz: Ref>, query: DocumentQuery, options?: ServerFindOptions @@ -373,7 +373,7 @@ abstract class MongoAdapterBase implements DbAdapter { return { base: translatedBase, lookup: translatedLookup } } - private getLookupValue( + private getLookupValue ( clazz: Ref>, lookup: Lookup, result: LookupStep[], @@ -456,7 +456,7 @@ abstract class MongoAdapterBase implements DbAdapter { } } - private getLookups( + private getLookups ( _class: Ref>, lookup: Lookup | undefined, parent?: string @@ -498,7 +498,7 @@ abstract class MongoAdapterBase implements DbAdapter { return res } - private fillLookup( + private fillLookup ( _class: Ref>, object: any, key: string, @@ -559,7 +559,7 @@ abstract class MongoAdapterBase implements DbAdapter { return res } - private fillLookupValue( + private fillLookupValue ( ctx: MeasureContext, clazz: Ref>, lookup: Lookup | undefined, @@ -587,7 +587,7 @@ abstract class MongoAdapterBase implements DbAdapter { } } - private fillReverseLookup( + private fillReverseLookup ( clazz: Ref>, lookup: ReverseLookups, object: any, @@ -622,7 +622,7 @@ abstract class MongoAdapterBase implements DbAdapter { } } - private fillSortPipeline( + private fillSortPipeline ( clazz: Ref>, options: FindOptions | undefined, pipeline: any[] @@ -652,7 +652,7 @@ abstract class MongoAdapterBase implements DbAdapter { } } - private async findWithPipeline( + private async findWithPipeline ( ctx: MeasureContext, domain: Domain, clazz: Ref>, @@ -779,7 +779,7 @@ abstract class MongoAdapterBase implements DbAdapter { return toFindResult(this.stripHash(result) as T[], total) } - private fillAssociations( + private fillAssociations ( obj: WithLookup, associations: AssociationQuery[], parentId: string = '', @@ -792,7 +792,7 @@ abstract class MongoAdapterBase implements DbAdapter { return obj } - private translateKey( + private translateKey ( key: string, clazz: Ref>, mixins?: Set>> @@ -831,7 +831,7 @@ abstract class MongoAdapterBase implements DbAdapter { } } - private checkMixinKey(key: string, clazz: Ref>, mixins?: Set>>): string { + private checkMixinKey (key: string, clazz: Ref>, mixins?: Set>>): string { if (!key.includes('.')) { try { const attr = this.hierarchy.findAttribute(clazz, key) @@ -847,7 +847,7 @@ abstract class MongoAdapterBase implements DbAdapter { return key } - private getEnumById(_class: Ref>, key: string): Enum | undefined { + private getEnumById (_class: Ref>, key: string): Enum | undefined { const attr = this.hierarchy.findAttribute(_class, key) if (attr !== undefined) { if (attr.type._class === core.class.EnumOf) { @@ -858,14 +858,14 @@ abstract class MongoAdapterBase implements DbAdapter { return undefined } - private isEnumSort(_class: Ref>, options?: FindOptions): boolean { + private isEnumSort (_class: Ref>, options?: FindOptions): boolean { if (options?.sort === undefined) return false return Object.keys(options.sort).some( (key) => this.hierarchy.findAttribute(_class, key)?.type?._class === core.class.EnumOf ) } - private isDate(_class: Ref>, key: string): boolean { + private isDate (_class: Ref>, key: string): boolean { const attr = this.hierarchy.findAttribute(_class, key) if (attr !== undefined) { return attr.type._class === core.class.TypeDate @@ -873,7 +873,7 @@ abstract class MongoAdapterBase implements DbAdapter { return false } - private isRulesSort(options?: FindOptions): boolean { + private isRulesSort (options?: FindOptions): boolean { if (options?.sort !== undefined) { return Object.values(options.sort).some((it) => typeof it === 'object') } @@ -881,7 +881,7 @@ abstract class MongoAdapterBase implements DbAdapter { } @withContext('groupBy') - groupBy( + groupBy ( ctx: MeasureContext, domain: Domain, field: string, @@ -904,7 +904,7 @@ abstract class MongoAdapterBase implements DbAdapter { }) } - findAll( + findAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -1028,12 +1028,12 @@ abstract class MongoAdapterBase implements DbAdapter { }) } - private collectSort( + private collectSort ( options: - | (FindOptions & { - domain?: Domain | undefined // Allow to find for Doc's in specified domain only. - }) - | undefined, + | (FindOptions & { + domain?: Domain | undefined // Allow to find for Doc's in specified domain only. + }) + | undefined, _class: Ref> ): Sort | undefined { if (options?.sort === undefined) { @@ -1089,10 +1089,10 @@ abstract class MongoAdapterBase implements DbAdapter { private calcProjection( options: - | (FindOptions & { - domain?: Domain | undefined // Allow to find for Doc's in specified domain only. - }) - | undefined, + | (FindOptions & { + domain?: Domain | undefined // Allow to find for Doc's in specified domain only. + }) + | undefined, _class: Ref> ): Projection | undefined { if (options?.projection === undefined) { @@ -1118,7 +1118,7 @@ abstract class MongoAdapterBase implements DbAdapter { return projection } - stripHash(docs: T | T[]): T | T[] { + stripHash (docs: T | T[]): T | T[] { if (Array.isArray(docs)) { docs.forEach((it) => { if ('%hash%' in it) { @@ -1553,7 +1553,7 @@ class MongoAdapter extends MongoAdapterBase { modifiedOn: tx.modifiedOn, '%hash%': this.curHash() } - } as unknown as UpdateFilter, + }, { returnDocument: 'after', includeResultMetadata: true } ) this.handleEvent(domain, 'read', 1) diff --git a/foundations/server/packages/mongo/src/utils.ts b/foundations/server/packages/mongo/src/utils.ts index f1fc4105c4..4716485500 100644 --- a/foundations/server/packages/mongo/src/utils.ts +++ b/foundations/server/packages/mongo/src/utils.ts @@ -166,10 +166,10 @@ export class DBCollectionHelper implements DomainHelperOperations { } } - collection(domain: Domain): Collection { + collection (domain: Domain): Collection { let info = this.collections.get(domain) if (info === undefined) { - info = this.db.collection(domain as string) + info = this.db.collection(domain) this.collections.set(domain, info) } return info @@ -177,7 +177,7 @@ export class DBCollectionHelper implements DomainHelperOperations { async create (domain: Domain): Promise { if (this.collections.get(domain) === undefined) { - const coll = this.db.collection(domain as string) + const coll = this.db.collection(domain) this.collections.set(domain, coll) while (true) { diff --git a/foundations/server/packages/postgres/src/storage.ts b/foundations/server/packages/postgres/src/storage.ts index 2850c4bcc4..e222b9e67d 100644 --- a/foundations/server/packages/postgres/src/storage.ts +++ b/foundations/server/packages/postgres/src/storage.ts @@ -111,7 +111,7 @@ import { simpleEscape, toWithLookup } from './utils' -async function * createCursorGenerator ( +async function* createCursorGenerator ( client: postgres.Sql, sql: string, params: any, @@ -236,7 +236,7 @@ abstract class PostgresAdapterBase implements DbAdapter { } } - async traverse( + async traverse ( _domain: Domain, query: DocumentQuery, options?: Pick, 'sort' | 'limit' | 'projection'> @@ -281,7 +281,7 @@ abstract class PostgresAdapterBase implements DbAdapter { on?: ((handler: DbAdapterHandler) => void) | undefined - abstract init ( + abstract init( ctx: MeasureContext, contextVars: Record, domains?: string[], @@ -293,7 +293,7 @@ abstract class PostgresAdapterBase implements DbAdapter { this.refClient.close() } - async rawFindAll(_domain: Domain, query: DocumentQuery, options?: FindOptions): Promise { + async rawFindAll (_domain: Domain, query: DocumentQuery, options?: FindOptions): Promise { const domain = translateDomain(_domain) const vars = new ValuesVariables() const select = `SELECT ${this.getProjection(vars, domain, options?.projection, [])} FROM ${domain}` @@ -312,7 +312,7 @@ abstract class PostgresAdapterBase implements DbAdapter { return result.map((p) => parseDocWithProjection(p, domain, options?.projection)) } - buildRawOrder(domain: string, sort: SortingQuery): string { + buildRawOrder (domain: string, sort: SortingQuery): string { const res: string[] = [] for (const key in sort) { const val = sort[key] @@ -332,7 +332,7 @@ abstract class PostgresAdapterBase implements DbAdapter { } } - buildRawQuery( + buildRawQuery ( vars: ValuesVariables, domain: string, query: DocumentQuery, @@ -351,7 +351,7 @@ abstract class PostgresAdapterBase implements DbAdapter { return res.join(' AND ') } - async rawUpdate( + async rawUpdate ( domain: Domain, query: DocumentQuery, operations: DocumentUpdate @@ -410,7 +410,7 @@ abstract class PostgresAdapterBase implements DbAdapter { } } - private async rawUpdateDoc( + private async rawUpdateDoc ( domain: Domain, query: DocumentQuery, operations: DocumentUpdate, @@ -443,7 +443,7 @@ abstract class PostgresAdapterBase implements DbAdapter { }) } - async rawDeleteMany(domain: Domain, query: DocumentQuery): Promise { + async rawDeleteMany (domain: Domain, query: DocumentQuery): Promise { const vars = new ValuesVariables() const translatedQuery = this.buildRawQuery(vars, domain, query) await this.mgr.retry(undefined, this.mgrId, async (client) => { @@ -451,7 +451,7 @@ abstract class PostgresAdapterBase implements DbAdapter { }) } - findAll( + findAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -577,7 +577,7 @@ abstract class PostgresAdapterBase implements DbAdapter { ) } - private localizeProjection( + private localizeProjection ( _class: Ref>, projection: Projection | undefined ): Projection | undefined { @@ -612,12 +612,12 @@ abstract class PostgresAdapterBase implements DbAdapter { return res } - private buildJoins(_class: Ref>, options: ServerFindOptions | undefined): JoinProps[] { + private buildJoins (_class: Ref>, options: ServerFindOptions | undefined): JoinProps[] { const joins = this.buildJoin(_class, options?.lookup) return joins } - addSecurity( + addSecurity ( _class: Ref>, vars: ValuesVariables, query: DocumentQuery, @@ -654,7 +654,7 @@ abstract class PostgresAdapterBase implements DbAdapter { } } - private async parseLookup( + private async parseLookup ( ctx: MeasureContext, rows: any[], joins: JoinProps[], @@ -850,9 +850,9 @@ abstract class PostgresAdapterBase implements DbAdapter { shouldCreate: boolean = true ): | { - obj: any - key: string - } + obj: any + key: string + } | undefined { const path = fullPath.split('.') for (let i = 0; i < path.length; i++) { @@ -878,7 +878,7 @@ abstract class PostgresAdapterBase implements DbAdapter { } } - private getModelLookupValue(doc: WithLookup, join: JoinProps, otherJoins: JoinProps[]): any { + private getModelLookupValue (doc: WithLookup, join: JoinProps, otherJoins: JoinProps[]): any { if (join.fromAlias.startsWith('lookup_')) { const other = otherJoins.find((j) => j.toAlias === join.fromAlias) if (other !== undefined) { @@ -913,7 +913,7 @@ abstract class PostgresAdapterBase implements DbAdapter { return res.join(' ') } - private buildJoin(clazz: Ref>, lookup: Lookup | undefined): JoinProps[] { + private buildJoin (clazz: Ref>, lookup: Lookup | undefined): JoinProps[] { const res: JoinProps[] = [] if (lookup !== undefined) { this.buildJoinValue(clazz, lookup, res) @@ -928,7 +928,7 @@ abstract class PostgresAdapterBase implements DbAdapter { return false } - private buildJoinValue( + private buildJoinValue ( clazz: Ref>, lookup: Lookup, res: JoinProps[], @@ -1041,7 +1041,7 @@ abstract class PostgresAdapterBase implements DbAdapter { } catch {} } - private buildOrder( + private buildOrder ( _class: Ref>, baseDomain: string, sort: SortingQuery, @@ -1213,7 +1213,7 @@ abstract class PostgresAdapterBase implements DbAdapter { return res.join(' AND ') } - private getValueType(_class: Ref>, key: string): ValueType { + private getValueType (_class: Ref>, key: string): ValueType { const splitted = key.split('.') const mixinOrKey = splitted[0] const domain = this.hierarchy.getDomain(_class) @@ -1233,7 +1233,7 @@ abstract class PostgresAdapterBase implements DbAdapter { } } - private fillClass( + private fillClass ( _class: Ref>, query: DocumentQuery ): ObjQueryType | undefined { @@ -1284,7 +1284,7 @@ abstract class PostgresAdapterBase implements DbAdapter { return value } - private getKey( + private getKey ( _class: Ref>, baseDomain: string, key: string, @@ -1317,7 +1317,7 @@ abstract class PostgresAdapterBase implements DbAdapter { return `${join.toAlias}."${tKey}"` } - private transformKey( + private transformKey ( domain: string, _class: Ref>, key: string, @@ -1351,7 +1351,7 @@ abstract class PostgresAdapterBase implements DbAdapter { return isDataArray || isNestedField ? `data->'${tKey}'` : `data#>>'{${tKey}}'` } - private checkMixinKey(key: string, _class: Ref>, isDataArray: boolean): string { + private checkMixinKey (key: string, _class: Ref>, isDataArray: boolean): string { if (!key.includes('.')) { try { const attr = this.hierarchy.findAttribute(_class, key) @@ -1556,7 +1556,7 @@ abstract class PostgresAdapterBase implements DbAdapter { return Date.now().toString(16) // Current hash value } - private getProjection( + private getProjection ( vars: ValuesVariables, baseDomain: string, projection: Projection | undefined, @@ -1596,7 +1596,7 @@ abstract class PostgresAdapterBase implements DbAdapter { return [] } - stripHash(docs: T | T[]): T | T[] { + stripHash (docs: T | T[]): T | T[] { if (Array.isArray(docs)) { docs.forEach((it) => { if ('%hash%' in it) { @@ -1802,7 +1802,7 @@ abstract class PostgresAdapterBase implements DbAdapter { } } - groupBy( + groupBy ( ctx: MeasureContext, domain: Domain, field: string, @@ -2060,7 +2060,7 @@ export class PostgresAdapter extends PostgresAdapterBase { return result } - private updateDoc( + private updateDoc ( ctx: MeasureContext, domain: Domain, txes: TxUpdateDoc[], diff --git a/foundations/server/packages/postgres/src/utils.ts b/foundations/server/packages/postgres/src/utils.ts index 3c0df2258a..333dceaa77 100644 --- a/foundations/server/packages/postgres/src/utils.ts +++ b/foundations/server/packages/postgres/src/utils.ts @@ -73,9 +73,9 @@ export async function createTables ( loadedTables = loadedTables.size === 0 ? new Set( - ( - await ctx.with('load-table', {}, () => - client.unsafe(` + ( + await ctx.with('load-table', {}, () => + client.unsafe(` SELECT table_name FROM information_schema.tables WHERE table_schema NOT IN ('pg_catalog', 'information_schema') @@ -83,9 +83,9 @@ export async function createTables ( AND table_name NOT LIKE 'cluster_%' AND table_name NOT LIKE 'kv_%' AND table_name NOT LIKE 'node_%'`) - ) - ).map((it) => it.table_name) - ) + ) + ).map((it) => it.table_name) + ) : loadedTables console.log('load-table', platformNowDiff(t)) @@ -273,9 +273,9 @@ export function parseUpdate ( ops: DocumentUpdate | MixinUpdate, schemaFields: SchemaAndFields ): { - extractedFields: Partial - remainingData: Partial - } { + extractedFields: Partial + remainingData: Partial +} { const extractedFields: Partial = {} const remainingData: Partial = {} @@ -424,7 +424,7 @@ export function filterProjection (data: any, projection: Projecti // Determine if this is an inclusion or exclusion projection // Exclusion: has any field with value 0 // Inclusion: has any field with value 1 - const projectionValues = Object.values(projection as any) + const projectionValues = Object.values(projection) const hasExclusion = projectionValues.some((v) => v === 0) const hasInclusion = projectionValues.some((v) => v === 1 || typeof v === 'object') diff --git a/foundations/server/packages/server-storage/src/fallback.ts b/foundations/server/packages/server-storage/src/fallback.ts index 354adff9c8..e4b60ff416 100644 --- a/foundations/server/packages/server-storage/src/fallback.ts +++ b/foundations/server/packages/server-storage/src/fallback.ts @@ -77,7 +77,7 @@ export class FallbackStorageAdapter implements StorageAdapter, StorageAdapterEx next: async () => { while (true) { if (iterator === undefined && adapters.length > 0) { - provider = adapters.shift() as NamedStorageAdapter + provider = adapters.shift() iterator = await provider.adapter.listStream(ctx, wsIds) } if (iterator === undefined) { diff --git a/foundations/server/packages/server-storage/src/tests/aggregator.spec.ts b/foundations/server/packages/server-storage/src/tests/aggregator.spec.ts index 8d75460c5f..2ebebaad36 100644 --- a/foundations/server/packages/server-storage/src/tests/aggregator.spec.ts +++ b/foundations/server/packages/server-storage/src/tests/aggregator.spec.ts @@ -47,7 +47,7 @@ describe('aggregator tests', () => { const stat2 = await aggr.stat(testCtx, wsIds1, 'test') expect(stat2?.provider).toEqual('mem2') - const dta = Buffer.concat((await aggr.read(testCtx, wsIds1, 'test')) as any).toString() + const dta = Buffer.concat((await aggr.read(testCtx, wsIds1, 'test'))).toString() expect(dta).toEqual('data2') }) }) diff --git a/foundations/server/packages/server-storage/src/tests/memAdapters.ts b/foundations/server/packages/server-storage/src/tests/memAdapters.ts index a298a667e2..f0a9161c2c 100644 --- a/foundations/server/packages/server-storage/src/tests/memAdapters.ts +++ b/foundations/server/packages/server-storage/src/tests/memAdapters.ts @@ -99,7 +99,7 @@ export class MemStorageAdapter implements StorageAdapter { }) }) } - const data = Buffer.concat(buffer as any) + const data = Buffer.concat(buffer) const dataId = getDataId(wsIds) const dta = { _class: core.class.Blob, diff --git a/foundations/server/packages/server/src/__tests__/sessionManager.test.ts b/foundations/server/packages/server/src/__tests__/sessionManager.test.ts index 0614a3c9f1..0ec4b384ee 100644 --- a/foundations/server/packages/server/src/__tests__/sessionManager.test.ts +++ b/foundations/server/packages/server/src/__tests__/sessionManager.test.ts @@ -245,7 +245,7 @@ describe('TSessionManager', () => { it('should count regular users correctly', () => { const mockSession = { session: { - getUser: jest.fn().mockReturnValue('user-uuid-123' as AccountUuid) + getUser: jest.fn().mockReturnValue('user-uuid-123') } } @@ -280,17 +280,17 @@ describe('TSessionManager', () => { }, { session: { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid) + getUser: jest.fn().mockReturnValue('user-1') } }, { session: { - getUser: jest.fn().mockReturnValue('b6996120-416f-49cd-841e-e4a5d2e49c9b' as AccountUuid) + getUser: jest.fn().mockReturnValue('b6996120-416f-49cd-841e-e4a5d2e49c9b') } }, { session: { - getUser: jest.fn().mockReturnValue('user-2' as AccountUuid) + getUser: jest.fn().mockReturnValue('user-2') } } ] @@ -323,7 +323,7 @@ describe('TSessionManager', () => { [ 'session-3', { - session: { getUser: jest.fn().mockReturnValue('other-user' as AccountUuid) } + session: { getUser: jest.fn().mockReturnValue('other-user') } } ] ]) @@ -340,7 +340,7 @@ describe('TSessionManager', () => { [ 'session-1', { - session: { getUser: jest.fn().mockReturnValue('other-user' as AccountUuid) } + session: { getUser: jest.fn().mockReturnValue('other-user') } } ] ]) @@ -369,7 +369,7 @@ describe('TSessionManager', () => { const now = Date.now() const mockSession = { session: { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-1'), lastRequest: now, requests: new Map() }, @@ -399,7 +399,7 @@ describe('TSessionManager', () => { sessionManager.sessions.set('ws-healthy', { session: { - getUser: jest.fn().mockReturnValue('user-healthy' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-healthy'), lastRequest: now, requests: new Map() } @@ -416,7 +416,7 @@ describe('TSessionManager', () => { // Add 1 hung session and 2 healthy sessions (33% hung, above 25% warn threshold) sessionManager.sessions.set('ws-hung', { session: { - getUser: jest.fn().mockReturnValue('user-hung' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-hung'), lastRequest: longTimeAgo, requests: new Map() } @@ -424,7 +424,7 @@ describe('TSessionManager', () => { sessionManager.sessions.set('ws-healthy-1', { session: { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-1'), lastRequest: now, requests: new Map() } @@ -432,7 +432,7 @@ describe('TSessionManager', () => { sessionManager.sessions.set('ws-healthy-2', { session: { - getUser: jest.fn().mockReturnValue('user-2' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-2'), lastRequest: now, requests: new Map() } @@ -468,7 +468,7 @@ describe('TSessionManager', () => { sessionManager.sessions.set('ws-1', { session: { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-1'), lastRequest: now, requests } @@ -483,7 +483,7 @@ describe('TSessionManager', () => { describe('checkRate', () => { it('should check rate limit for regular user', () => { const mockSession = { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-1'), token: { extra: {} }, workspace: { uuid: 'ws-1' as WorkspaceUuid } } as any @@ -521,7 +521,7 @@ describe('TSessionManager', () => { 'session-1', { session: { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-1'), current: { find: 10, tx: 5 }, mins5: { find: 50, tx: 25 }, total: { find: 100, tx: 50 } @@ -555,7 +555,7 @@ describe('TSessionManager', () => { 'session-1', { session: { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-1'), current: { find: 0, tx: 0 }, mins5: { find: 0, tx: 0 }, total: { find: 0, tx: 0 } @@ -570,7 +570,7 @@ describe('TSessionManager', () => { 'session-2', { session: { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), // Same user + getUser: jest.fn().mockReturnValue('user-1'), // Same user current: { find: 0, tx: 0 }, mins5: { find: 0, tx: 0 }, total: { find: 0, tx: 0 } @@ -585,7 +585,7 @@ describe('TSessionManager', () => { 'session-3', { session: { - getUser: jest.fn().mockReturnValue('user-2' as AccountUuid), // Different user + getUser: jest.fn().mockReturnValue('user-2'), // Different user current: { find: 0, tx: 0 }, mins5: { find: 0, tx: 0 }, total: { find: 0, tx: 0 } @@ -876,7 +876,7 @@ describe('TSessionManager', () => { 'session-1', { session: { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-1'), getUserSocialIds: jest.fn().mockReturnValue(['social-1', 'social-2']), getRawAccount: jest.fn().mockReturnValue({ role: AccountRole.User }) } @@ -904,7 +904,7 @@ describe('TSessionManager', () => { sessionManager.workspaces.set('ws-1' as WorkspaceUuid, mockWorkspace as any) const extraSession = { - getUser: jest.fn().mockReturnValue('user-extra' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-extra'), getUserSocialIds: jest.fn().mockReturnValue(['social-extra']), getRawAccount: jest.fn().mockReturnValue({ role: AccountRole.User }) } as any @@ -948,7 +948,7 @@ describe('TSessionManager', () => { it('should handle rate limiting edge cases', () => { const mockSession = { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-1'), token: { extra: {} }, workspace: { uuid: 'ws-1' as WorkspaceUuid } } as any @@ -1083,17 +1083,17 @@ describe('TSessionManager', () => { }, { session: { - getUser: jest.fn().mockReturnValue('regular-user-1' as AccountUuid) + getUser: jest.fn().mockReturnValue('regular-user-1') } }, { session: { - getUser: jest.fn().mockReturnValue('b6996120-416f-49cd-841e-e4a5d2e49c9b' as AccountUuid) + getUser: jest.fn().mockReturnValue('b6996120-416f-49cd-841e-e4a5d2e49c9b') } }, { session: { - getUser: jest.fn().mockReturnValue('regular-user-2' as AccountUuid) + getUser: jest.fn().mockReturnValue('regular-user-2') } }, { @@ -1116,14 +1116,14 @@ describe('TSessionManager', () => { const workspaceId = 'ws-broadcast' as WorkspaceUuid const mockSession1 = { session: { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-1'), broadcast: jest.fn() }, socket: { id: 'socket-1' } } const mockSession2 = { session: { - getUser: jest.fn().mockReturnValue('user-2' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-2'), broadcast: jest.fn() }, socket: { id: 'socket-2' } @@ -1159,7 +1159,7 @@ describe('TSessionManager', () => { } const mockSession2 = { session: { - getUser: jest.fn().mockReturnValue('user-2' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-2'), broadcast: jest.fn() }, socket: { id: 'socket-2' } @@ -1195,7 +1195,7 @@ describe('TSessionManager', () => { } const mockSession2 = { session: { - getUser: jest.fn().mockReturnValue('user-2' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-2'), broadcast: jest.fn() }, socket: { id: 'socket-2' } @@ -1223,7 +1223,7 @@ describe('TSessionManager', () => { const workspaceId = 'ws-broadcast' as WorkspaceUuid const mockSession = { session: { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-1'), broadcast: jest.fn() }, socket: { id: 'socket-1' } @@ -1357,7 +1357,7 @@ describe('TSessionManager', () => { it('should broadcast to all sessions', () => { const mockSession1 = { session: { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-1'), binaryMode: false, useCompression: false }, @@ -1367,7 +1367,7 @@ describe('TSessionManager', () => { } const mockSession2 = { session: { - getUser: jest.fn().mockReturnValue('user-2' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-2'), binaryMode: false, useCompression: false }, @@ -1405,7 +1405,7 @@ describe('TSessionManager', () => { } const mockSession2 = { session: { - getUser: jest.fn().mockReturnValue('user-2' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-2'), binaryMode: false, useCompression: false }, @@ -1442,7 +1442,7 @@ describe('TSessionManager', () => { } const mockSession2 = { session: { - getUser: jest.fn().mockReturnValue('user-2' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-2'), binaryMode: false, useCompression: false }, @@ -1468,7 +1468,7 @@ describe('TSessionManager', () => { it('should not broadcast if workspace in maintenance', () => { const mockSession = { session: { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-1'), binaryMode: false, useCompression: false }, @@ -1495,7 +1495,7 @@ describe('TSessionManager', () => { const requestId = 'req-123' const mockPipeline = {} as any const mockSession = { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-1'), getRawAccount: jest.fn().mockReturnValue({ primarySocialId: 'social-1' as any }), workspace: { uuid: 'ws-1' as WorkspaceUuid }, binaryMode: true, @@ -1537,7 +1537,7 @@ describe('TSessionManager', () => { sendPong: jest.fn() } as any const mockSession = { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-1'), getRawAccount: jest.fn().mockReturnValue({ primarySocialId: 'social-1' as any }), workspace: { uuid: 'ws-1' as WorkspaceUuid }, requests: new Map() @@ -1685,7 +1685,7 @@ describe('TSessionManager', () => { 'session-1', { session: { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-1'), current: { find: 5, tx: 3 }, mins5: { find: 50, tx: 30 } } @@ -1721,7 +1721,7 @@ describe('TSessionManager', () => { const mockSession = { session: { - getUser: jest.fn().mockReturnValue('user-hung' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-hung'), lastRequest: longTimeAgo, lastPing: longTimeAgo, requests: new Map(), @@ -1752,7 +1752,7 @@ describe('TSessionManager', () => { const mockSession = { session: { - getUser: jest.fn().mockReturnValue('user-idle' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-idle'), lastRequest: idleTime, lastPing: idleTime, requests: new Map(), diff --git a/foundations/server/packages/server/src/client.ts b/foundations/server/packages/server/src/client.ts index f926209adb..3918f0195a 100644 --- a/foundations/server/packages/server/src/client.ts +++ b/foundations/server/packages/server/src/client.ts @@ -86,13 +86,13 @@ export class ClientSession implements Session { total: StatisticsElement = { find: 0, tx: 0 } current: StatisticsElement = { find: 0, tx: 0 } mins5: StatisticsElement = { find: 0, tx: 0 } - measures: { id: string; message: string; time: 0 }[] = [] + measures: { id: string, message: string, time: 0 }[] = [] ops: BackupClientOps | undefined opsPipeline: Pipeline | undefined isAdmin: boolean - constructor( + constructor ( readonly token: Token, readonly workspace: WorkspaceIds, readonly account: Account, @@ -103,40 +103,40 @@ export class ClientSession implements Session { this.isAdmin = this.token.extra?.admin === 'true' } - getUser(): AccountUuid { + getUser (): AccountUuid { return this.token.account } - getUserSocialIds(): PersonId[] { + getUserSocialIds (): PersonId[] { return this.account.socialIds } - getSocialIds(): SocialId[] { + getSocialIds (): SocialId[] { return this.info.socialIds } - getRawAccount(): Account { + getRawAccount (): Account { return this.account } - isUpgradeClient(): boolean { + isUpgradeClient (): boolean { return this.token.extra?.model === 'upgrade' } - getMode(): string { + getMode (): string { return this.token.extra?.mode ?? 'normal' } - updateLast(): void { + updateLast (): void { this.lastRequest = Date.now() } - async ping(ctx: ClientSessionCtx): Promise { + async ping (ctx: ClientSessionCtx): Promise { this.lastRequest = Date.now() ctx.sendPong() } - async loadModel(ctx: ClientSessionCtx, lastModelTx: Timestamp, hash?: string): Promise { + async loadModel (ctx: ClientSessionCtx, lastModelTx: Timestamp, hash?: string): Promise { try { this.includeSessionContext(ctx) const result = await this.counter.withCounter('loadModel', 1, () => @@ -152,13 +152,13 @@ export class ClientSession implements Session { } } - async loadModelRaw(ctx: ClientSessionCtx, lastModelTx: Timestamp, hash?: string): Promise { + async loadModelRaw (ctx: ClientSessionCtx, lastModelTx: Timestamp, hash?: string): Promise { // eslint-disable-next-line @typescript-eslint/no-unused-vars this.includeSessionContext(ctx) return await ctx.ctx.with('load-model', {}, (_ctx) => ctx.pipeline.loadModel(_ctx, lastModelTx, hash)) } - private getPermissionsGrant(): PermissionsGrant | undefined { + private getPermissionsGrant (): PermissionsGrant | undefined { if (this.token.grant == null) { return } @@ -169,7 +169,7 @@ export class ClientSession implements Session { } } - includeSessionContext(ctx: ClientSessionCtx): void { + includeSessionContext (ctx: ClientSessionCtx): void { const dataId = this.workspace.dataId ?? (this.workspace.uuid as unknown as WorkspaceDataId) const contextData = new SessionDataImpl( this.account, @@ -191,7 +191,7 @@ export class ClientSession implements Session { ctx.ctx.contextData = contextData } - findAllRaw( + findAllRaw ( ctx: ClientSessionCtx, _class: Ref>, query: DocumentQuery, @@ -204,11 +204,11 @@ export class ClientSession implements Session { return ctx.pipeline.findAll(ctx.ctx, _class, query, options) } - estimateSize(doc: any): number { + estimateSize (doc: any): number { return Math.round((estimateDocSize(doc) * 10) / (1024 * 1024)) / 10 } - async findAll( + async findAll ( ctx: ClientSessionCtx, _class: Ref>, query: DocumentQuery, @@ -332,13 +332,13 @@ export class ClientSession implements Session { } } - async searchFulltextRaw(ctx: ClientSessionCtx, query: SearchQuery, options: SearchOptions): Promise { + async searchFulltextRaw (ctx: ClientSessionCtx, query: SearchQuery, options: SearchOptions): Promise { this.lastRequest = Date.now() this.includeSessionContext(ctx) return await ctx.pipeline.searchFulltext(ctx.ctx, query, options) } - async txRaw( + async txRaw ( ctx: ClientSessionCtx, tx: Tx ): Promise<{ @@ -388,7 +388,7 @@ export class ClientSession implements Session { return { result, broadcastPromise, asyncsPromise } } - async tx(ctx: ClientSessionCtx, tx: Tx): Promise { + async tx (ctx: ClientSessionCtx, tx: Tx): Promise { const domain = ctx.pipeline.context.hierarchy.findDomain( TxProcessor.isExtendsCUD(tx._class) ? (tx as TxCUD).objectClass : tx._class @@ -407,7 +407,7 @@ export class ClientSession implements Session { }) } - broadcast(ctx: MeasureContext, socket: ConnectionSocket, tx: Tx[]): void { + broadcast (ctx: MeasureContext, socket: ConnectionSocket, tx: Tx[]): void { if (this.tx.length > 10000) { const classes = new Set>>() for (const dtx of tx) { @@ -433,7 +433,7 @@ export class ClientSession implements Session { } } - getOps(pipeline: Pipeline): BackupClientOps { + getOps (pipeline: Pipeline): BackupClientOps { if (this.ops === undefined || this.opsPipeline !== pipeline) { if (pipeline.context.lowLevelStorage === undefined) { throw new PlatformError(unknownError('Low level storage is not available')) @@ -444,7 +444,7 @@ export class ClientSession implements Session { return this.ops } - async loadChunk(ctx: ClientSessionCtx, domain: Domain, idx?: number): Promise { + async loadChunk (ctx: ClientSessionCtx, domain: Domain, idx?: number): Promise { this.lastRequest = Date.now() try { const result = await this.getOps(ctx.pipeline).loadChunk(ctx.ctx, domain, idx) @@ -455,7 +455,7 @@ export class ClientSession implements Session { } } - async getDomainHash(ctx: ClientSessionCtx, domain: Domain): Promise { + async getDomainHash (ctx: ClientSessionCtx, domain: Domain): Promise { this.lastRequest = Date.now() try { const result = await this.getOps(ctx.pipeline).getDomainHash(ctx.ctx, domain) @@ -466,7 +466,7 @@ export class ClientSession implements Session { } } - async closeChunk(ctx: ClientSessionCtx, idx: number): Promise { + async closeChunk (ctx: ClientSessionCtx, idx: number): Promise { try { this.lastRequest = Date.now() await this.getOps(ctx.pipeline).closeChunk(ctx.ctx, idx) @@ -477,7 +477,7 @@ export class ClientSession implements Session { } } - async loadDocs(ctx: ClientSessionCtx, domain: Domain, docs: Ref[]): Promise { + async loadDocs (ctx: ClientSessionCtx, domain: Domain, docs: Ref[]): Promise { this.lastRequest = Date.now() try { const result = await this.getOps(ctx.pipeline).loadDocs(ctx.ctx, domain, docs) @@ -488,7 +488,7 @@ export class ClientSession implements Session { } } - async upload(ctx: ClientSessionCtx, domain: Domain, docs: Doc[]): Promise { + async upload (ctx: ClientSessionCtx, domain: Domain, docs: Doc[]): Promise { if (!this.allowUpload) { await ctx.sendResponse(ctx.requestId, { error: 'Upload not allowed' }) } @@ -503,7 +503,7 @@ export class ClientSession implements Session { await ctx.sendResponse(ctx.requestId, {}) } - async clean(ctx: ClientSessionCtx, domain: Domain, docs: Ref[]): Promise { + async clean (ctx: ClientSessionCtx, domain: Domain, docs: Ref[]): Promise { if (!this.allowUpload) { await ctx.sendResponse(ctx.requestId, { error: 'Clean not allowed' }) } @@ -518,7 +518,7 @@ export class ClientSession implements Session { await ctx.sendResponse(ctx.requestId, {}) } - async domainRequest(ctx: ClientSessionCtx, domain: OperationDomain, params: DomainParams): Promise { + async domainRequest (ctx: ClientSessionCtx, domain: OperationDomain, params: DomainParams): Promise { // eslint-disable-next-line @typescript-eslint/no-unused-vars await this.counter.withCounter('dr-' + domain, 1, async () => { try { @@ -536,7 +536,7 @@ export class ClientSession implements Session { }) } - async domainRequestRaw( + async domainRequestRaw ( ctx: ClientSessionCtx, domain: OperationDomain, params: DomainParams diff --git a/foundations/server/packages/server/src/sessionManager.ts b/foundations/server/packages/server/src/sessionManager.ts index 58322b0bb6..0bc863c824 100644 --- a/foundations/server/packages/server/src/sessionManager.ts +++ b/foundations/server/packages/server/src/sessionManager.ts @@ -138,11 +138,11 @@ export class TSessionManager implements SessionManager { readonly timeouts: Timeouts, readonly brandingMap: BrandingMap, readonly profiling: - | { - start: () => void - stop: () => Promise - } - | undefined, + | { + start: () => void + stop: () => Promise + } + | undefined, readonly accountsUrl: string, readonly enableCompression: boolean, readonly doHandleTick: boolean = true, @@ -1345,17 +1345,17 @@ export class TSessionManager implements SessionManager { accontUuid: AccountUuid role: AccountRole } - > { + > { const ws = this.workspaces.get(workspace) if (ws === undefined) { return new Map() } const res = new Map< - PersonId, - { - accontUuid: AccountUuid - role: AccountRole - } + PersonId, + { + accontUuid: AccountUuid + role: AccountRole + } >() for (const s of [...Array.from(ws.sessions.values()).map((it) => it.session), ...extra]) { const sessionAccount = s.getUser() @@ -1392,7 +1392,7 @@ export class TSessionManager implements SessionManager { return this.limitter.checkRateLimit(service.getUser() + (service.token.extra?.service ?? '')) } - async handleRequest( + async handleRequest ( requestCtx: MeasureContext, service: S, ws: ConnectionSocket, @@ -1528,7 +1528,7 @@ export class TSessionManager implements SessionManager { } } - async handleRPC( + async handleRPC ( requestCtx: MeasureContext, service: S, method: string, @@ -1626,7 +1626,7 @@ export class TSessionManager implements SessionManager { return Array.from(this.workspaces.values()).map((it) => this.workspaceToWorkspaceStats(it)) } - private async handleHello( + private async handleHello ( request: Request, service: S, ctx: MeasureContext, @@ -1691,11 +1691,11 @@ export function createSessionManager ( brandingMap: BrandingMap, timeouts: Timeouts, profiling: - | { - start: () => void - stop: () => Promise - } - | undefined, + | { + start: () => void + stop: () => Promise + } + | undefined, accountsUrl: string, enableCompression: boolean, doHandleTick: boolean = true, diff --git a/foundations/server/packages/server/src/workspace.ts b/foundations/server/packages/server/src/workspace.ts index 120b49b55f..eab082306f 100644 --- a/foundations/server/packages/server/src/workspace.ts +++ b/foundations/server/packages/server/src/workspace.ts @@ -63,7 +63,7 @@ export class Workspace { return this.pipeline } - async with(op: (pipeline: Pipeline) => Promise): Promise { + async with (op: (pipeline: Pipeline) => Promise): Promise { this.operations++ let pipeline = this.getPipeline() if (pipeline instanceof Promise) { diff --git a/foundations/utils/packages/platform-rig/bin/format.js b/foundations/utils/packages/platform-rig/bin/format.js index d76a714d2a..be270377ad 100755 --- a/foundations/utils/packages/platform-rig/bin/format.js +++ b/foundations/utils/packages/platform-rig/bin/format.js @@ -25,8 +25,9 @@ try { } async function loadEslintConfig() { - const [{ default: love }, svelte, { default: tsParser }, svelteParser] = await Promise.all([ + const [{ default: love }, { default: stylistic }, svelte, { default: tsParser }, svelteParser] = await Promise.all([ import('eslint-config-love'), + import('@stylistic/eslint-plugin'), import('eslint-plugin-svelte'), import('@typescript-eslint/parser'), import('svelte-eslint-parser') @@ -34,18 +35,38 @@ async function loadEslintConfig() { return [ { - ignores: ['**/*.json', '**/node_modules/**', '**/.eslintrc.js', '**/dist/**', '**/lib/**'] + ignores: [ + '**/*.json', + '**/node_modules/**', + '**/.eslintrc.js', + '**/dist/**', + '**/lib/**', + '**/types/**', + '**/.build/**' + ] }, { ...love, files: ['**/*.{js,cjs,mjs,ts,cts,mts}'], + plugins: { + ...love.plugins, + '@stylistic': stylistic + }, rules: { ...love.rules, ...LEGACY_COMPATIBILITY_RULES, '@typescript-eslint/array-type': 'off', '@typescript-eslint/promise-function-async': 'off', '@typescript-eslint/consistent-type-imports': 'off', - 'space-before-function-paren': ['error', 'always'] + 'space-before-function-paren': ['error', 'always'], + '@stylistic/member-delimiter-style': [ + 'error', + { + multiline: { delimiter: 'none' }, + singleline: { delimiter: 'comma', requireLast: false } + } + ], + '@stylistic/type-annotation-spacing': 'error' } }, { @@ -56,7 +77,10 @@ async function loadEslintConfig() { ...svelte.configs.base, { files: ['**/*.svelte'], - plugins: love.plugins, + plugins: { + ...love.plugins, + '@stylistic': stylistic + }, languageOptions: { parser: svelteParser, parserOptions: { @@ -69,6 +93,14 @@ async function loadEslintConfig() { '@typescript-eslint/array-type': 'off', '@typescript-eslint/promise-function-async': 'off', '@typescript-eslint/consistent-type-imports': 'off', + '@stylistic/member-delimiter-style': [ + 'error', + { + multiline: { delimiter: 'none' }, + singleline: { delimiter: 'comma', requireLast: false } + } + ], + '@stylistic/type-annotation-spacing': 'error', 'svelte/no-at-html-tags': 'error' } } @@ -87,6 +119,7 @@ if (existsSync('.format/format.json')) { let filesToCheck = [] let allFiles = [] +let formattingConfigurationChanged = false let newHash = {} @@ -97,6 +130,8 @@ function calcFileHash(sourceFile, msg, addCheck) { if (hash[sourceFile] !== digest) { if (addCheck) { filesToCheck.push(sourceFile) + } else { + formattingConfigurationChanged = true } console.log(msg, relative(process.cwd(), sourceFile)) } @@ -147,6 +182,11 @@ if (existsSync(rigPackage)) { calcHash(join(process.cwd(), rigPackage), 'changed', false) } +if (formattingConfigurationChanged) { + console.log('format configuration changed') + filesToCheck = allFiles +} + if (process.argv.includes('-f') || process.argv.includes('--force')) { console.log('force checking') filesToCheck = allFiles @@ -216,6 +256,7 @@ if (filesToCheck.length > 0) { overrideConfig: await loadEslintConfig() }) const results = await eslint.lintFiles(filesToCheck) + await ESLint.outputFixes(results) const formatter = await eslint.loadFormatter('stylish') const resultText = formatter.format(results) diff --git a/foundations/utils/packages/platform-rig/package.json b/foundations/utils/packages/platform-rig/package.json index 2bf6ab8608..d149f50d76 100644 --- a/foundations/utils/packages/platform-rig/package.json +++ b/foundations/utils/packages/platform-rig/package.json @@ -21,6 +21,7 @@ "eslint-plugin-promise": "^7.3.0", "eslint-plugin-n": "^18.3.0", "eslint": "^9.39.5", + "@stylistic/eslint-plugin": "^5.10.0", "@typescript-eslint/parser": "^8.67.0", "eslint-config-love": "^155.0.0", "prettier": "^3.6.2", diff --git a/foundations/utils/packages/ui-test/.eslintignore b/foundations/utils/packages/ui-test/.eslintignore deleted file mode 100644 index 8dc69cef22..0000000000 --- a/foundations/utils/packages/ui-test/.eslintignore +++ /dev/null @@ -1,5 +0,0 @@ -lib -types -dist -node_modules -.build diff --git a/models/core/src/core.ts b/models/core/src/core.ts index 2839685927..8aa7eb1d49 100644 --- a/models/core/src/core.ts +++ b/models/core/src/core.ts @@ -89,7 +89,7 @@ export class TObj implements Obj { @Prop(TypeRef(core.class.Class), core.string.ClassLabel) @Index(IndexKind.Indexed) @Hidden() - _class!: Ref> + _class!: Ref> } @Model(core.class.Doc, core.class.Obj) @@ -98,29 +98,29 @@ export class TDoc extends TObj implements Doc { @Prop(TypeRef(core.class.Doc), core.string.Id) @Hidden() // @Index(IndexKind.Indexed) // - automatically indexed by default. - _id!: Ref + _id!: Ref @Prop(TypeRef(core.class.Space), core.string.Space) @Index(IndexKind.Indexed) @Hidden() - space!: Ref + space!: Ref @Prop(TypeTimestamp(), core.string.ModifiedDate) @Index(IndexKind.Indexed) - modifiedOn!: Timestamp + modifiedOn!: Timestamp @Prop(TypePersonId(), core.string.ModifiedBy) @Index(IndexKind.Indexed) - modifiedBy!: PersonId + modifiedBy!: PersonId @Prop(TypePersonId(), core.string.CreatedBy) @Index(IndexKind.Indexed) - createdBy!: PersonId + createdBy!: PersonId @Prop(TypeTimestamp(), core.string.CreatedDate) @ReadOnly() @Index(IndexKind.IndexedDsc) - createdOn!: Timestamp + createdOn!: Timestamp } @Model(core.class.AttachedDoc, core.class.Doc) @@ -128,16 +128,16 @@ export class TAttachedDoc extends TDoc implements AttachedDoc { @Prop(TypeRef(core.class.Doc), core.string.AttachedTo) @Index(IndexKind.Indexed) @Hidden() - attachedTo!: Ref + attachedTo!: Ref @Prop(TypeRef(core.class.Class), core.string.AttachedToClass) @Index(IndexKind.Indexed) @Hidden() - attachedToClass!: Ref> + attachedToClass!: Ref> @Prop(TypeString(), core.string.Collection) @Hidden() - collection!: string + collection!: string } @Model(core.class.Association, core.class.Doc, DOMAIN_MODEL) @@ -169,16 +169,16 @@ export class TRelation extends TDoc implements Relation { export class TRelationMetadata extends TDoc implements RelationMetadata { @Prop(TypeRef(core.class.Class), core.string.Class) @Index(IndexKind.Indexed) - sourceClass!: Ref> + sourceClass!: Ref> @Prop(TypeRef(core.class.Class), core.string.TargetClass) - targetClass!: Ref> + targetClass!: Ref> @Prop(TypeString(), core.string.ClassPropertyLabel) - field!: string + field!: string @Prop(TypeString(), core.string.Description) - direction?: 'forward' | 'inverse' + direction?: 'forward' | 'inverse' } @Model(core.class.Blob, core.class.Doc, DOMAIN_BLOB) @@ -187,27 +187,27 @@ export class TBlob extends TDoc implements Blob { @Prop(TypeString(), core.string.Blob) @ReadOnly() // @Index(IndexKind.Indexed) - provider!: string + provider!: string @Prop(TypeString(), core.string.BlobContentType) @ReadOnly() - contentType!: string + contentType!: string @Prop(TypeString(), core.string.BlobStorageId) @ReadOnly() - storageId!: string + storageId!: string @Prop(TypeString(), core.string.BlobEtag) @ReadOnly() - etag!: string + etag!: string @Prop(TypeString(), core.string.BlobVersion) @ReadOnly() - version!: string + version!: string @Prop(TypeFileSize(), core.string.BlobSize) @ReadOnly() - size!: number + size!: number } @UX(core.string.ClassLabel) @@ -216,7 +216,7 @@ export class TClass extends TDoc implements Class { kind!: ClassifierKind @Prop(TypeIntlString(), core.string.ClassPropertyLabel) - label!: IntlString + label!: IntlString extends!: Ref> domain!: Domain @@ -381,16 +381,16 @@ export class TFullTextSearchContext extends TDoc implements FullTextSearchContex @MMixin(core.mixin.ConfigurationElement, core.class.Class) export class TConfigurationElement extends TClass implements ConfigurationElement { @Prop(TypeIntlString(), core.string.Private) - title!: IntlString + title!: IntlString @Prop(TypeIntlString(), core.string.Private) - group!: IntlString + group!: IntlString } @Model(core.class.Configuration, core.class.Doc, DOMAIN_CONFIGURATION) export class TConfiguration extends TDoc implements Configuration { @Prop(TypeBoolean(), core.string.Private) - enabled!: boolean + enabled!: boolean } @MMixin(core.mixin.IndexConfiguration, core.class.Class) @@ -415,14 +415,14 @@ export class TTypeRank extends TType {} @MMixin(core.mixin.TransientConfiguration, core.class.Class) export class TTransientConfiguration extends TClass implements TransientConfiguration { @Prop(TypeBoolean(), core.string.Private) - broadcastOnly!: boolean + broadcastOnly!: boolean } @Model(core.class.Sequence, core.class.Doc, DOMAIN_SEQUENCE) export class TSequence extends TDoc implements Sequence { @Prop(TypeRef(core.class.Class), core.string.AttachedTo) @Index(IndexKind.Indexed) - attachedTo!: Ref> + attachedTo!: Ref> sequence!: number } diff --git a/models/core/src/index.ts b/models/core/src/index.ts index 92f7a3eaf7..0377df43ec 100644 --- a/models/core/src/index.ts +++ b/models/core/src/index.ts @@ -115,7 +115,7 @@ export * from './status' export * from './tx' export { core as default } -export function createModel(builder: Builder): void { +export function createModel (builder: Builder): void { builder.createModel( TObj, TDoc, diff --git a/models/core/src/migration.ts b/models/core/src/migration.ts index e259d04abc..6ea1daf8f6 100644 --- a/models/core/src/migration.ts +++ b/models/core/src/migration.ts @@ -367,7 +367,7 @@ export async function getSocialKeyByOldAccount (client: MigrationClient): Promis if (systemAccounts.includes(account._id)) { socialKeyByAccount[account._id] = account._id } else { - socialKeyByAccount[account._id] = buildSocialIdString(getSocialKeyByOldEmail(account.email)) as any + socialKeyByAccount[account._id] = buildSocialIdString(getSocialKeyByOldEmail(account.email)) } } @@ -526,8 +526,8 @@ async function migrateAccounts (client: MigrationClient): Promise { accountUuidBySocialKey ) const update: MigrateUpdate = { - members: newMembers as any, - owners: newOwners as any + members: newMembers, + owners: newOwners } const type = spaceTypesById.get((space as TypedSpace).type) @@ -594,7 +594,7 @@ async function migrateAccounts (client: MigrationClient): Promise { objectClass: spaceType._class, objectSpace: spaceType.space, operations: { - members: newMembers as any + members: newMembers }, modifiedOn: Date.now(), createdBy: core.account.ConfigUser, @@ -843,7 +843,7 @@ async function processMigrateJsonForDoc ( const stat = await storageAdapter.stat(client.ctx, wsIds, currentYdocId) if (stat !== undefined) { const data = await storageAdapter.read(client.ctx, wsIds, currentYdocId) - const buffer = Buffer.concat(data as any) + const buffer = Buffer.concat(data) await storageAdapter.put(client.ctx, wsIds, ydocId, buffer, 'application/ydoc', buffer.length) } }) diff --git a/models/core/src/spaceType.ts b/models/core/src/spaceType.ts index 177f4772fc..f982484700 100644 --- a/models/core/src/spaceType.ts +++ b/models/core/src/spaceType.ts @@ -28,7 +28,7 @@ const roles = [ } ] -export function defineSpaceType(builder: Builder): void { +export function defineSpaceType (builder: Builder): void { for (const role of roles) { const label = getRoleAttributeLabel(role.name) const roleAssgtType = ArrOf(TypeString()) diff --git a/models/core/src/status.ts b/models/core/src/status.ts index 58261593b7..299e3de17c 100644 --- a/models/core/src/status.ts +++ b/models/core/src/status.ts @@ -44,16 +44,16 @@ export class TStatus extends TDoc implements Status { ofAttribute!: Ref> @Prop(TypeRef(core.class.StatusCategory), core.string.StatusCategory) - category?: Ref + category?: Ref @Prop(TypeString(), core.string.Name) - name!: string + name!: string // @Prop(TypeNumber(), core.string.Color) color!: number @Prop(TypeString(), core.string.Description) - description!: string + description!: string rank!: Rank } diff --git a/models/core/src/tx.ts b/models/core/src/tx.ts index f688761ecf..59945e55d0 100644 --- a/models/core/src/tx.ts +++ b/models/core/src/tx.ts @@ -46,7 +46,7 @@ export class TTx extends TDoc implements Tx { @Prop(TypeRef(core.class.Space), core.string.Space) // @Index(IndexKind.Indexed) @Hidden() - objectSpace!: Ref + objectSpace!: Ref } @Model(core.class.TxModelUpgrade, core.class.Tx, DOMAIN_TX) @@ -57,12 +57,12 @@ export class TTxCUD extends TTx implements TxCUD { @Prop(TypeRef(core.class.Doc), core.string.Object) @Index(IndexKind.Indexed) @Hidden() - objectId!: Ref + objectId!: Ref @Prop(TypeRef(core.class.Class), core.string.ClassLabel) // @Index(IndexKind.Indexed) @Hidden() - objectClass!: Ref> + objectClass!: Ref> } @Model(core.class.TxCreateDoc, core.class.TxCUD) diff --git a/models/preference/src/index.ts b/models/preference/src/index.ts index 9ce15d9bfc..533bf1fa0c 100644 --- a/models/preference/src/index.ts +++ b/models/preference/src/index.ts @@ -25,7 +25,7 @@ export { preference as default } @Model(preference.class.Preference, core.class.Doc, DOMAIN_PREFERENCE) export class TPreference extends TDoc implements Preference { @Prop(TypeString(), core.string.AttachedTo) - attachedTo!: string + attachedTo!: string } @Model(preference.class.SpacePreference, preference.class.Preference) diff --git a/models/presentation/src/index.ts b/models/presentation/src/index.ts index 3ee5488f95..12c04d21cb 100644 --- a/models/presentation/src/index.ts +++ b/models/presentation/src/index.ts @@ -87,7 +87,7 @@ export class TComponentPointExtension extends TDoc implements ComponentPointExte @Model(presentation.class.DocCreateExtension, core.class.Doc, DOMAIN_MODEL) export class TDocCreateExtension extends TDoc implements DocCreateExtension { @Prop(TypeRef(core.class.Class), core.string.Class) - ofClass!: Ref> + ofClass!: Ref> components!: Record apply!: Resource @@ -97,7 +97,7 @@ export class TDocCreateExtension extends TDoc implements DocCreateExtension { @Model(presentation.class.DocRules, core.class.Doc, DOMAIN_MODEL) export class TDocRules extends TDoc implements DocRules { @Prop(TypeRef(core.class.Class), core.string.Class) - ofClass!: Ref> + ofClass!: Ref> fieldRules!: DocAttributeRule[] } @@ -105,7 +105,7 @@ export class TDocRules extends TDoc implements DocRules { @Model(presentation.class.FilePreviewExtension, presentation.class.ComponentPointExtension) export class TFilePreviewExtension extends TComponentPointExtension implements FilePreviewExtension { @Prop(TypeString(), presentation.string.ContentType) - contentType!: string | string[] + contentType!: string | string[] alignment?: string metadataProvider?: Resource<(file: FileOrBlob, blob: Ref) => Promise> diff --git a/models/pulse/src/index.ts b/models/pulse/src/index.ts index 328185d632..687761a08a 100644 --- a/models/pulse/src/index.ts +++ b/models/pulse/src/index.ts @@ -38,7 +38,7 @@ export class TTypingIndicator extends TDoc implements TypingIndicator { status?: IntlString } -export function createModel(builder: Builder): void { +export function createModel (builder: Builder): void { builder.createModel(TDocumentPresence, TTypingIndicator) builder.mixin(pulse.class.DocumentPresence, core.class.Class, core.mixin.TransientTTL, { diff --git a/models/support/src/index.ts b/models/support/src/index.ts index c85f35f4d9..f4c9f0a12d 100644 --- a/models/support/src/index.ts +++ b/models/support/src/index.ts @@ -33,7 +33,7 @@ export const DOMAIN_SUPPORT = 'support' as Domain @Model(support.class.SupportConversation, preference.class.Preference) export class TSupportConversation extends TPreference implements SupportConversation { @Index(IndexKind.Indexed) - conversationId!: string + conversationId!: string hasUnreadMessages!: boolean } diff --git a/packages/analytics-providers/src/configure.ts b/packages/analytics-providers/src/configure.ts index 0603c268dc..83c89dc5be 100644 --- a/packages/analytics-providers/src/configure.ts +++ b/packages/analytics-providers/src/configure.ts @@ -19,7 +19,7 @@ import { type AnalyticsConfig } from './types' export * from './analyticsCollector' export * from './utils' -export * from './types' +export type * from './types' export function configureAnalyticsProviders (config: AnalyticsConfig): void { const providers: AnalyticProvider[] = [new AnalyticsCollectorProvider()] diff --git a/packages/analytics-providers/src/index.ts b/packages/analytics-providers/src/index.ts index 913a4af25f..544c8ff44d 100644 --- a/packages/analytics-providers/src/index.ts +++ b/packages/analytics-providers/src/index.ts @@ -15,5 +15,5 @@ export * from './analyticsCollector' export * from './utils' -export * from './types' +export type * from './types' export * from './configure' diff --git a/packages/billing-client/src/client.ts b/packages/billing-client/src/client.ts index 61e5c2dc87..f427d545a1 100644 --- a/packages/billing-client/src/client.ts +++ b/packages/billing-client/src/client.ts @@ -13,7 +13,7 @@ import { } from './types' /** @public */ -export function getClient(billingUrl?: string, token?: string): BillingClient { +export function getClient (billingUrl?: string, token?: string): BillingClient { if (billingUrl === undefined || billingUrl == null || billingUrl === '') { throw new Error('Billing url not specified') } @@ -27,7 +27,7 @@ export function getClient(billingUrl?: string, token?: string): BillingClient { export class BillingClient { private readonly headers: Record - constructor( + constructor ( private readonly endpoint: string, private readonly token: string ) { @@ -37,63 +37,63 @@ export class BillingClient { } } - async getBillingStats(workspace: WorkspaceUuid): Promise { + async getBillingStats (workspace: WorkspaceUuid): Promise { const path = `/api/v1/${workspace}/stats` const url = new URL(concatLink(this.endpoint, path)) const response = await fetchSafe(url, { headers: { ...this.headers } }) return (await response.json()) as BillingStats } - async getDatalakeStats(workspace: WorkspaceUuid): Promise { + async getDatalakeStats (workspace: WorkspaceUuid): Promise { const path = `/api/v1/${workspace}/datalake/stats` const url = new URL(concatLink(this.endpoint, path)) const response = await fetchSafe(url, { headers: { ...this.headers } }) return (await response.json()) as DatalakeStats } - async getLiveKitStats(workspace: WorkspaceUuid): Promise { + async getLiveKitStats (workspace: WorkspaceUuid): Promise { const path = `/api/v1/${workspace}/livekit/stats` const url = new URL(concatLink(this.endpoint, path)) const response = await fetchSafe(url, { headers: { ...this.headers } }) return (await response.json()) as LiveKitStats } - async getLiveKitSessionsStats(workspace: WorkspaceUuid): Promise { + async getLiveKitSessionsStats (workspace: WorkspaceUuid): Promise { const path = `/api/v1/${workspace}/livekit/sessions` const url = new URL(concatLink(this.endpoint, path)) const response = await fetchSafe(url, { headers: { ...this.headers } }) return (await response.json()) as LiveKitSessionsStats[] } - async getLiveKitEgressStats(workspace: WorkspaceUuid): Promise { + async getLiveKitEgressStats (workspace: WorkspaceUuid): Promise { const path = `/api/v1/${workspace}/livekit/egress` const url = new URL(concatLink(this.endpoint, path)) const response = await fetchSafe(url, { headers: { ...this.headers } }) return (await response.json()) as LiveKitEgressStats[] } - async postLiveKitSessions(sessions: LiveKitSessionData[]): Promise { + async postLiveKitSessions (sessions: LiveKitSessionData[]): Promise { const path = '/api/v1/livekit/sessions' const url = new URL(concatLink(this.endpoint, path)) const body = JSON.stringify(sessions) await fetchSafe(url, { method: 'POST', headers: { ...this.headers }, body }) } - async postLiveKitEgress(egress: LiveKitEgressData[]): Promise { + async postLiveKitEgress (egress: LiveKitEgressData[]): Promise { const path = '/api/v1/livekit/egress' const url = new URL(concatLink(this.endpoint, path)) const body = JSON.stringify(egress) await fetchSafe(url, { method: 'POST', headers: { ...this.headers }, body }) } - async getAiTranscriptLastData(): Promise { + async getAiTranscriptLastData (): Promise { const path = '/api/v1/ai/transcript/last' const url = new URL(concatLink(this.endpoint, path)) const response = await fetchSafe(url, { headers: { ...this.headers } }) return (await response.json()) as AiTranscriptData | undefined } - async postAiTranscriptData(data: AiTranscriptData[]): Promise { + async postAiTranscriptData (data: AiTranscriptData[]): Promise { const path = '/api/v1/ai/transcript' const url = new URL(concatLink(this.endpoint, path)) const body = JSON.stringify(data) @@ -101,7 +101,7 @@ export class BillingClient { await fetchSafe(url, { method: 'POST', headers: { ...this.headers }, body }) } - async postAiTokensData(data: AiTokensData[]): Promise { + async postAiTokensData (data: AiTokensData[]): Promise { const path = '/api/v1/ai/tokens' const url = new URL(concatLink(this.endpoint, path)) const body = JSON.stringify(data) diff --git a/packages/billing-client/src/error.ts b/packages/billing-client/src/error.ts index bf9d5a2a09..927b4ed658 100644 --- a/packages/billing-client/src/error.ts +++ b/packages/billing-client/src/error.ts @@ -1,12 +1,12 @@ export class NetworkError extends Error { - constructor(message: string) { + constructor (message: string) { super(message) this.name = 'NetworkError' } } export class BillingError extends Error { - constructor(message: string) { + constructor (message: string) { super(message) this.name = 'BillingError' } diff --git a/packages/billing-client/src/index.ts b/packages/billing-client/src/index.ts index edfed4a6d6..39aecc8965 100644 --- a/packages/billing-client/src/index.ts +++ b/packages/billing-client/src/index.ts @@ -1,2 +1,2 @@ export * from './client' -export * from './types' +export type * from './types' diff --git a/packages/hls/src/components/HlsVideo.svelte b/packages/hls/src/components/HlsVideo.svelte index 8f4126c42b..97d9b21053 100644 --- a/packages/hls/src/components/HlsVideo.svelte +++ b/packages/hls/src/components/HlsVideo.svelte @@ -36,12 +36,12 @@ const token = getMetadata(presentation.metadata.Token) ?? '' class loader extends HLS.DefaultConfig.loader { - constructor (config: HlsConfig) { + constructor(config: HlsConfig) { super(config) this.load = this.load.bind(this) } - load (context: LoaderContext, config: LoaderConfiguration, callbacks: LoaderCallbacks): void { + load(context: LoaderContext, config: LoaderConfiguration, callbacks: LoaderCallbacks): void { const url = new URL(context.url) const pathname = url.pathname.endsWith('/') ? url.pathname.slice(0, -1) : url.pathname const blobId = pathname.split('/').pop() @@ -63,7 +63,7 @@ controls: ['play-large', 'play', 'progress', 'current-time', 'mute', 'volume', 'settings', 'fullscreen'] } - function initialize (src: string): void { + function initialize(src: string): void { if (video === null) { return } @@ -152,7 +152,7 @@ player?.destroy() }) - function updateQuality (newQuality: number): void { + function updateQuality(newQuality: number): void { if (hls === null) { return } diff --git a/packages/integration-client/src/client.ts b/packages/integration-client/src/client.ts index b3f9f043e0..403e97be6f 100644 --- a/packages/integration-client/src/client.ts +++ b/packages/integration-client/src/client.ts @@ -28,7 +28,7 @@ import { IntegrationClient, IntegrationEventData, IntegrationUpdatedData, Integr import { isConnection } from './utils' import { type EventCallback, getIntegrationEventBus } from './events' -export function getIntegrationClient( +export function getIntegrationClient ( accountsUrl: string, token: string, integrationKind: IntegrationKind, @@ -41,30 +41,30 @@ export function getIntegrationClient( export class IntegrationClientImpl implements IntegrationClient { private readonly events = getIntegrationEventBus() - constructor( + constructor ( private readonly client: AccountClient, private readonly integrationKind: IntegrationKind, private readonly serviceName: string ) {} // Event methods - on(event: string, callback: EventCallback): () => void { + on (event: string, callback: EventCallback): () => void { return this.events.on(event, callback) } - off(event: string, callback?: EventCallback): void { + off (event: string, callback?: EventCallback): void { this.events.off(event, callback) } - private emit(event: string, data: T): void { + private emit (event: string, data: T): void { this.events.emit(event, data) } - async getIntegrations(): Promise { + async getIntegrations (): Promise { return (await this.client.listIntegrations({ kind: this.integrationKind })) ?? [] } - async getConnection(integration: Integration): Promise { + async getConnection (integration: Integration): Promise { try { if (isConnection(integration)) { return integration @@ -87,7 +87,7 @@ export class IntegrationClientImpl implements IntegrationClient { } } - async integrate(connection: Integration, workspace: WorkspaceUuid, data?: Record): Promise { + async integrate (connection: Integration, workspace: WorkspaceUuid, data?: Record): Promise { try { const existingData = data ?? connection.data ?? {} const integration = { @@ -132,7 +132,7 @@ export class IntegrationClientImpl implements IntegrationClient { } } - async connect(socialId: PersonId, data?: Record): Promise { + async connect (socialId: PersonId, data?: Record): Promise { try { const connection = { socialId, @@ -194,7 +194,7 @@ export class IntegrationClientImpl implements IntegrationClient { } } - async updateConfig( + async updateConfig ( integrationKey: IntegrationKey, config: Record, refresh?: () => Promise @@ -238,7 +238,7 @@ export class IntegrationClientImpl implements IntegrationClient { } } - async removeIntegration( + async removeIntegration ( socialId: PersonId | undefined | null, workspaceUuid: WorkspaceUuid | null | undefined ): Promise< @@ -297,7 +297,7 @@ export class IntegrationClientImpl implements IntegrationClient { } } - async removeConnection(connection: Integration): Promise { + async removeConnection (connection: Integration): Promise { try { const integrations = await this.client.listIntegrations({ kind: connection.kind, @@ -328,7 +328,7 @@ export class IntegrationClientImpl implements IntegrationClient { } } - async setSecret(data: IntegrationSecret): Promise { + async setSecret (data: IntegrationSecret): Promise { const { secret, ...secretKey } = data const currentSecret = await this.client.getIntegrationSecret(secretKey) if (currentSecret != null) { @@ -338,7 +338,7 @@ export class IntegrationClientImpl implements IntegrationClient { } } - async setIntegrationEnabled(integrationKey: IntegrationKey, enabled: boolean): Promise { + async setIntegrationEnabled (integrationKey: IntegrationKey, enabled: boolean): Promise { try { const integration = await this.client.getIntegration(integrationKey) if (integration == null) { diff --git a/packages/integration-client/src/events.ts b/packages/integration-client/src/events.ts index 70f85910af..3290199770 100644 --- a/packages/integration-client/src/events.ts +++ b/packages/integration-client/src/events.ts @@ -25,7 +25,7 @@ export interface EventEmitter { export class IntegrationEventEmitter implements EventEmitter { private readonly listeners = new Map>() - on(event: string, callback: EventCallback): () => void { + on (event: string, callback: EventCallback): () => void { if (!this.listeners.has(event)) { this.listeners.set(event, new Set()) } @@ -46,7 +46,7 @@ export class IntegrationEventEmitter implements EventEmitter { } } - emit(event: string, data: T): void { + emit (event: string, data: T): void { const eventListeners = this.listeners.get(event) if (eventListeners === undefined) return @@ -62,7 +62,7 @@ export class IntegrationEventEmitter implements EventEmitter { }) } - off(event: string, callback?: EventCallback): void { + off (event: string, callback?: EventCallback): void { if (callback == null) { this.listeners.delete(event) return @@ -77,7 +77,7 @@ export class IntegrationEventEmitter implements EventEmitter { } } - removeAllListeners(event?: string): void { + removeAllListeners (event?: string): void { if (event !== undefined) { this.listeners.delete(event) } else { @@ -86,7 +86,7 @@ export class IntegrationEventEmitter implements EventEmitter { } // Utility method to get listener count - listenerCount(event: string): number { + listenerCount (event: string): number { return this.listeners.get(event)?.size ?? 0 } } @@ -94,14 +94,14 @@ export class IntegrationEventEmitter implements EventEmitter { const GlobalIntegrationEventBus = { instance: null as IntegrationEventEmitter | null, - getInstance(): IntegrationEventEmitter { + getInstance (): IntegrationEventEmitter { if (GlobalIntegrationEventBus.instance == null) { GlobalIntegrationEventBus.instance = new IntegrationEventEmitter() } return GlobalIntegrationEventBus.instance }, - resetInstance(): void { + resetInstance (): void { GlobalIntegrationEventBus.instance = null } } @@ -110,7 +110,7 @@ export const getIntegrationEventBus = (): IntegrationEventEmitter => { return GlobalIntegrationEventBus.getInstance() } -export function onIntegrationEvent( +export function onIntegrationEvent ( event: string, callback: (data: T) => void, filter?: (data: T) => boolean diff --git a/packages/integration-client/src/request.ts b/packages/integration-client/src/request.ts index d6da7869f6..06c2d30685 100644 --- a/packages/integration-client/src/request.ts +++ b/packages/integration-client/src/request.ts @@ -37,7 +37,7 @@ export interface RequestOptions { * @returns Promise that resolves to the parsed JSON response, or undefined for empty responses * @throws {PlatformError} When network errors occur or HTTP status indicates failure */ -export async function request(options: RequestOptions): Promise { +export async function request (options: RequestOptions): Promise { const { baseUrl, method, path, token, body } = options let response: Response try { diff --git a/packages/integration-client/src/types.ts b/packages/integration-client/src/types.ts index ed0715324b..405386c615 100644 --- a/packages/integration-client/src/types.ts +++ b/packages/integration-client/src/types.ts @@ -273,7 +273,7 @@ export interface ServiceClient { * Integration-specific error types */ export class IntegrationError extends Error { - constructor( + constructor ( message: string, public code: string, public integrationId: string, @@ -285,21 +285,21 @@ export class IntegrationError extends Error { } export class ConnectionError extends IntegrationError { - constructor(message: string, integrationId: string, workspace: WorkspaceUuid) { + constructor (message: string, integrationId: string, workspace: WorkspaceUuid) { super(message, 'CONNECTION_ERROR', integrationId, workspace) this.name = 'ConnectionError' } } export class ConfigurationError extends IntegrationError { - constructor(message: string, integrationId: string, workspace: WorkspaceUuid) { + constructor (message: string, integrationId: string, workspace: WorkspaceUuid) { super(message, 'CONFIGURATION_ERROR', integrationId, workspace) this.name = 'ConfigurationError' } } export class DisconnectionError extends IntegrationError { - constructor(message: string, integrationId: string, workspace: WorkspaceUuid) { + constructor (message: string, integrationId: string, workspace: WorkspaceUuid) { super(message, 'DISCONNECTION_ERROR', integrationId, workspace) this.name = 'DisconnectionError' } diff --git a/packages/integration-client/src/utils.ts b/packages/integration-client/src/utils.ts index ca9a9c3658..a08d2b13b9 100644 --- a/packages/integration-client/src/utils.ts +++ b/packages/integration-client/src/utils.ts @@ -17,30 +17,30 @@ import { Integration } from '@hcengineering/account-client' import platform, { PlatformError } from '@hcengineering/platform' import { IntegrationEventData } from './types' -export function isWorkspaceIntegration(integration: Integration): boolean { +export function isWorkspaceIntegration (integration: Integration): boolean { return integration.workspaceUuid != null } -export function isConnection(integration: Integration): boolean { +export function isConnection (integration: Integration): boolean { return integration.workspaceUuid == null } -export function isSameIntegrationEvent(event: IntegrationEventData, integration: Integration): boolean { +export function isSameIntegrationEvent (event: IntegrationEventData, integration: Integration): boolean { return ( event.integration?.socialId === integration.socialId && event.integration?.workspaceUuid === integration.workspaceUuid ) } -export function getIntegrationConfig(integration: Integration): Record | undefined { +export function getIntegrationConfig (integration: Integration): Record | undefined { return integration?.data?.config } -export function isDisabled(integration: Integration): boolean { +export function isDisabled (integration: Integration): boolean { return integration?.data?.disabled === true } -export function isUnauthorizedError(error: any): boolean { +export function isUnauthorizedError (error: any): boolean { if (error instanceof PlatformError && error.status.code === platform.status.Unauthorized) { return true } diff --git a/packages/kanban/src/components/Kanban.svelte b/packages/kanban/src/components/Kanban.svelte index a787d8327c..80a7945728 100644 --- a/packages/kanban/src/components/Kanban.svelte +++ b/packages/kanban/src/components/Kanban.svelte @@ -60,7 +60,7 @@ const limiter = new RateLimiter(10) - async function move (state: CategoryType): Promise { + async function move(state: CategoryType): Promise { if (dragCard === undefined) { return } @@ -108,7 +108,7 @@ let isDragging = false - async function updateDone (updateValue: DocumentUpdate): Promise { + async function updateDone(updateValue: DocumentUpdate): Promise { isDragging = false if (dragCard === undefined) { return @@ -116,7 +116,7 @@ await client.update(dragCard, updateValue) } - function panelDragOver (event: Event | undefined, state: CategoryType): void { + function panelDragOver(event: Event | undefined, state: CategoryType): void { event?.preventDefault() if (dragCard !== undefined && dragCardState !== state) { const canDrop = !dragCardAvailableCategories || dragCardAvailableCategories.includes(state) @@ -145,7 +145,7 @@ groupByDocs = groupByDocs } } - function panelDragLeave (event: Event | undefined, state: CategoryType): void { + function panelDragLeave(event: Event | undefined, state: CategoryType): void { event?.preventDefault() if (dragCard !== undefined && state !== dragCardInitialState) { // We need to restore original position @@ -166,7 +166,7 @@ } } - function dragswap (ev: MouseEvent, i: number, s: number): boolean { + function dragswap(ev: MouseEvent, i: number, s: number): boolean { if (s === -1) return false if (i < s) { return ev.offsetY < (ev.target as HTMLElement).offsetHeight / 2 @@ -185,7 +185,7 @@ let cardOverPos: DragCardOverPos | undefined - function cardDragOver (evt: CardDragEvent, object: Item, state: CategoryType): void { + function cardDragOver(evt: CardDragEvent, object: Item, state: CategoryType): void { if (dragCard !== undefined && !dontUpdateRank) { const updates = getUpdateProps(dragCard, state) if (updates === undefined) { @@ -230,7 +230,7 @@ } } - async function cardDrop (evt: CardDragEvent, object: Item, state: CategoryType): Promise { + async function cardDrop(evt: CardDragEvent, object: Item, state: CategoryType): Promise { if (!dontUpdateRank && dragCard !== undefined) { const arr = getGroupByValues(groupByDocs, state) ?? [] const s = arr.findIndex((p) => p._id === dragCard?._id) @@ -246,7 +246,7 @@ isDragging = false } - async function onDragStart (object: Item, state: CategoryType): Promise { + async function onDragStart(object: Item, state: CategoryType): Promise { dragCardInitialState = state dragCardState = state dragCardInitialRank = object.rank @@ -260,7 +260,7 @@ // eslint-disable-next-line let dragged: boolean = false - function toAny (object: any): any { + function toAny(object: any): any { return object } @@ -270,12 +270,12 @@ $: stateRefs.length = categories.length $: stateRows.length = categories.length - function scrollInto (statePos: number, obj: Item): void { + function scrollInto(statePos: number, obj: Item): void { stateRefs[statePos]?.scrollIntoView({ behavior: 'auto', block: 'nearest' }) stateRows[statePos]?.scroll(obj) } - function getState (doc: Item): number { + function getState(doc: Item): number { let pos = 0 for (const st of categories) { const stateObjs = getGroupByValues(groupByDocs, st) ?? [] @@ -287,7 +287,7 @@ return -1 } - export function select (offset: 1 | -1 | 0, of?: Doc, dir?: 'vertical' | 'horizontal'): void { + export function select(offset: 1 | -1 | 0, of?: Doc, dir?: 'vertical' | 'horizontal'): void { let pos = (of != null ? objects.findIndex((it) => it._id === of._id) : selection) ?? -1 if (pos === -1) { for (const st of categories) { @@ -367,7 +367,7 @@ $: checkedSet = new Set>(checked.map((it) => it._id)) - export function check (docs: Doc[], value: boolean): void { + export function check(docs: Doc[], value: boolean): void { dispatch('check', { docs, value }) } const showMenu = async (evt: MouseEvent, object: Item): Promise => { diff --git a/packages/kanban/src/components/KanbanRow.svelte b/packages/kanban/src/components/KanbanRow.svelte index c9a78b8cbb..69677357e3 100644 --- a/packages/kanban/src/components/KanbanRow.svelte +++ b/packages/kanban/src/components/KanbanRow.svelte @@ -53,7 +53,7 @@ const dispatch = createEventDispatcher() - function toAny (object: any): any { + function toAny(object: any): any { return object } @@ -62,7 +62,7 @@ const stateRefs: HTMLElement[] = [] $: stateRefs.length = stateObjects.length - export function scroll (item: Item): void { + export function scroll(item: Item): void { const pos = stateObjects.findIndex((it) => it._id === item._id) if (pos >= 0) { stateRefs[pos]?.scrollIntoView({ behavior: 'auto', block: 'nearest' }) @@ -93,7 +93,7 @@ { ...options, limit } ) - function getObject (_id: Ref, limitedObjects: IdMap): DocWithRank | undefined { + function getObject(_id: Ref, limitedObjects: IdMap): DocWithRank | undefined { return limitedObjects.get(_id) ?? (_id === dragCard?._id ? dragCard : undefined) } diff --git a/packages/kanban/src/index.ts b/packages/kanban/src/index.ts index ba1c590266..0fac121808 100644 --- a/packages/kanban/src/index.ts +++ b/packages/kanban/src/index.ts @@ -14,6 +14,6 @@ // import '@hcengineering/platform-rig/profiles/ui/svelte' -export * from './types' +export type * from './types' export { default as Kanban } from './components/Kanban.svelte' diff --git a/packages/kvs-client/src/client.ts b/packages/kvs-client/src/client.ts index 72cbb026f5..71c4c8ac28 100644 --- a/packages/kvs-client/src/client.ts +++ b/packages/kvs-client/src/client.ts @@ -25,7 +25,7 @@ import { KeyValueClient, ListResult } from './types' * @returns KeyValueClient instance * @public */ -export function getClient(namespace: string, baseUrl: string, token?: string, retryTimeoutMs?: number): KeyValueClient { +export function getClient (namespace: string, baseUrl: string, token?: string, retryTimeoutMs?: number): KeyValueClient { if (baseUrl === undefined) { throw new Error('Key-value API URL not specified') } @@ -36,7 +36,7 @@ export function getClient(namespace: string, baseUrl: string, token?: string, re class KeyValueClientImpl implements KeyValueClient { private readonly requestInit: RequestInit - constructor( + constructor ( private readonly namespace: string, private readonly baseUrl: string, private readonly token?: string, @@ -65,7 +65,7 @@ class KeyValueClientImpl implements KeyValueClient { } } - async setValue(key: string, value: T): Promise { + async setValue (key: string, value: T): Promise { const url = this.buildUrl(key) await this.sendRequest(url, { method: 'POST', @@ -75,7 +75,7 @@ class KeyValueClientImpl implements KeyValueClient { }) } - async getValue(key: string): Promise { + async getValue (key: string): Promise { const url = this.buildUrl(key) return await this.sendRequest(url, { method: 'GET', @@ -83,7 +83,7 @@ class KeyValueClientImpl implements KeyValueClient { }) } - async deleteKey(key: string): Promise { + async deleteKey (key: string): Promise { const url = this.buildUrl(key) await this.sendRequest(url, { method: 'DELETE', @@ -92,7 +92,7 @@ class KeyValueClientImpl implements KeyValueClient { }) } - async listKeys(prefix?: string): Promise { + async listKeys (prefix?: string): Promise { let url = this.buildUrl() if (prefix !== undefined) { url += `?prefix=${encodeURIComponent(prefix)}` @@ -103,12 +103,12 @@ class KeyValueClientImpl implements KeyValueClient { }) } - private buildUrl(key?: string): string { + private buildUrl (key?: string): string { const baseApiUrl = concatLink(this.baseUrl, `/api/${encodeURIComponent(this.namespace)}`) return key !== undefined ? concatLink(baseApiUrl, encodeURIComponent(key)) : baseApiUrl } - private async sendRequest( + private async sendRequest ( url: string, options: { method: string @@ -165,7 +165,7 @@ class KeyValueClientImpl implements KeyValueClient { return null } - private async fetchWithRetry(url: string, init: RequestInit): Promise { + private async fetchWithRetry (url: string, init: RequestInit): Promise { const timeout = Date.now() + this.retryTimeoutMs const connectionErrorCodes = ['ECONNRESET', 'ECONNREFUSED', 'ENOTFOUND'] let intervalMs = 25 diff --git a/packages/kvs-client/src/index.ts b/packages/kvs-client/src/index.ts index 0f078ded71..0ce0730482 100644 --- a/packages/kvs-client/src/index.ts +++ b/packages/kvs-client/src/index.ts @@ -14,4 +14,4 @@ // export * from './client' -export * from './types' +export type * from './types' diff --git a/packages/panel/src/components/Panel.svelte b/packages/panel/src/components/Panel.svelte index ad6f12c5a3..9f2d441062 100644 --- a/packages/panel/src/components/Panel.svelte +++ b/packages/panel/src/components/Panel.svelte @@ -70,10 +70,10 @@ $: showActivity = !withoutActivity && !isGuest - export function getAside (): string | boolean { + export function getAside(): string | boolean { return panel.getAside() } - export function setAside (id: string | boolean): void { + export function setAside(id: string | boolean): void { panel.setAside(id) } diff --git a/packages/payment-client/src/client.ts b/packages/payment-client/src/client.ts index bd0d00fec6..02b6cf753a 100644 --- a/packages/payment-client/src/client.ts +++ b/packages/payment-client/src/client.ts @@ -23,7 +23,7 @@ import { PaymentError, NetworkError } from './error' * @param token - Authentication token * @returns PaymentClient instance */ -export function getClient(paymentUrl?: string, token?: string): PaymentClient { +export function getClient (paymentUrl?: string, token?: string): PaymentClient { if (paymentUrl === undefined || paymentUrl == null || paymentUrl === '') { throw new Error('Payment service URL not specified') } @@ -41,7 +41,7 @@ export function getClient(paymentUrl?: string, token?: string): PaymentClient { export class PaymentClient { private readonly headers: Record - constructor( + constructor ( private readonly endpoint: string, private readonly token: string ) { @@ -57,7 +57,7 @@ export class PaymentClient { * @param request - Subscription request details * @returns Checkout details with URL for payment */ - async createSubscription(workspace: WorkspaceUuid, request: SubscribeRequest): Promise { + async createSubscription (workspace: WorkspaceUuid, request: SubscribeRequest): Promise { const path = `/api/v1/subscriptions/${workspace}/subscribe` const url = new URL(concatLink(this.endpoint, path)) const body = JSON.stringify(request) @@ -74,7 +74,7 @@ export class PaymentClient { * @param subscriptionId - Subscription ID * @returns Subscription details from payment provider */ - async getSubscription(subscriptionId: string): Promise { + async getSubscription (subscriptionId: string): Promise { const path = `/api/v1/subscriptions/${subscriptionId}` const url = new URL(concatLink(this.endpoint, path)) const response = await fetchSafe(url, { headers: { ...this.headers } }) @@ -86,7 +86,7 @@ export class PaymentClient { * @param subscriptionId - Subscription ID to cancel * @returns Cancellation confirmation */ - async cancelSubscription(subscriptionId: string): Promise { + async cancelSubscription (subscriptionId: string): Promise { const path = `/api/v1/subscriptions/${subscriptionId}/cancel` const url = new URL(concatLink(this.endpoint, path)) const response = await fetchSafe(url, { @@ -101,7 +101,7 @@ export class PaymentClient { * @param subscriptionId - Subscription ID to uncancel * @returns Reactivation confirmation */ - async uncancelSubscription(subscriptionId: string): Promise { + async uncancelSubscription (subscriptionId: string): Promise { const path = `/api/v1/subscriptions/${subscriptionId}/uncancel` const url = new URL(concatLink(this.endpoint, path)) const response = await fetchSafe(url, { @@ -119,7 +119,7 @@ export class PaymentClient { * @param plan - New plan name * @returns CheckoutResponse for free-to-paid upgrades or updated SubscriptionData for direct updates */ - async updateSubscriptionPlan(subscriptionId: string, plan: string): Promise { + async updateSubscriptionPlan (subscriptionId: string, plan: string): Promise { const path = `/api/v1/subscriptions/${subscriptionId}/updatePlan` const url = new URL(concatLink(this.endpoint, path)) const body = JSON.stringify({ plan }) @@ -137,7 +137,7 @@ export class PaymentClient { * @param checkoutId - Checkout ID returned from createSubscription * @returns Checkout status with subscription details if completed */ - async getCheckoutStatus(checkoutId: string): Promise { + async getCheckoutStatus (checkoutId: string): Promise { const path = `/api/v1/checkouts/${checkoutId}/status` const url = new URL(concatLink(this.endpoint, path)) const response = await fetchSafe(url, { headers: { ...this.headers } }) @@ -153,7 +153,7 @@ export class PaymentClient { * @throws NetworkError on network issues * @throws PaymentError on non-ok responses */ -async function fetchSafe(url: string | URL, init?: RequestInit): Promise { +async function fetchSafe (url: string | URL, init?: RequestInit): Promise { let response try { response = await fetch(url, init) diff --git a/packages/payment-client/src/error.ts b/packages/payment-client/src/error.ts index c1a2cd3cc4..782e6aa89c 100644 --- a/packages/payment-client/src/error.ts +++ b/packages/payment-client/src/error.ts @@ -15,7 +15,7 @@ /** Error for payment service errors */ export class PaymentError extends Error { - constructor(message: string) { + constructor (message: string) { super(message) this.name = 'PaymentError' } @@ -23,7 +23,7 @@ export class PaymentError extends Error { /** Error for network/connectivity issues */ export class NetworkError extends Error { - constructor(message: string) { + constructor (message: string) { super(message) this.name = 'NetworkError' } diff --git a/packages/presentation/src/___tests___/link-preview.test.ts b/packages/presentation/src/___tests___/link-preview.test.ts index 6db691fb03..241a90703d 100644 --- a/packages/presentation/src/___tests___/link-preview.test.ts +++ b/packages/presentation/src/___tests___/link-preview.test.ts @@ -19,9 +19,9 @@ import plugin from '../plugin' const fechFunc = (responseFunc: (input: RequestInfo | URL, init?: RequestInit) => Response) => - async (input: RequestInfo | URL, init?: RequestInit): Promise => { - return responseFunc(input, init) - } + async (input: RequestInfo | URL, init?: RequestInit): Promise => { + return responseFunc(input, init) + } describe('canDisplayLinkPreview', () => { it('should return false if hostname & title are undefined', () => { diff --git a/packages/presentation/src/components/AttributeBarEditor.svelte b/packages/presentation/src/components/AttributeBarEditor.svelte index ebf6621b9d..70d3aa2ab8 100644 --- a/packages/presentation/src/components/AttributeBarEditor.svelte +++ b/packages/presentation/src/components/AttributeBarEditor.svelte @@ -44,7 +44,7 @@ const dispatch = createEventDispatcher() let editor: AnySvelteComponent | undefined - function onChange (value: any): void { + function onChange(value: any): void { const doc = object as Doc dispatch('update', { key, value }) @@ -58,7 +58,7 @@ } } - function getEditor (_class: Ref>, key: KeyedAttribute | string): void { + function getEditor(_class: Ref>, key: KeyedAttribute | string): void { void getAttributeEditor(client, _class, key).then((p) => { editor = p }) diff --git a/packages/presentation/src/components/AttributeEditor.svelte b/packages/presentation/src/components/AttributeEditor.svelte index cc6de82b38..6cc40db5a1 100644 --- a/packages/presentation/src/components/AttributeEditor.svelte +++ b/packages/presentation/src/components/AttributeEditor.svelte @@ -50,7 +50,7 @@ $: isReadonly = (attribute.readonly ?? false) || !editable - function onChange (value: any): void { + function onChange(value: any): void { if (isReadonly) return const doc = object as Doc void updateAttribute(client, doc, _class, { key: attributeKey, attr: attribute }, value) diff --git a/packages/presentation/src/components/Card.svelte b/packages/presentation/src/components/Card.svelte index 8d3521eb7a..f10e364d87 100644 --- a/packages/presentation/src/components/Card.svelte +++ b/packages/presentation/src/components/Card.svelte @@ -58,7 +58,7 @@ let okProcessing = false $: headerDivide = hideContent && numberOfBlocks > 1 - function handleKeyDown (event: KeyboardEvent) { + function handleKeyDown(event: KeyboardEvent) { const target = event.target as HTMLInputElement if (target) { @@ -75,7 +75,7 @@ } } - function handleOkClick (): void { + function handleOkClick(): void { if (canSave) { if (okProcessing) { return diff --git a/packages/presentation/src/components/DocPopup.svelte b/packages/presentation/src/components/DocPopup.svelte index fa09225a2e..fb12ff9ba8 100644 --- a/packages/presentation/src/components/DocPopup.svelte +++ b/packages/presentation/src/components/DocPopup.svelte @@ -105,7 +105,7 @@ let selection = 0 let list: ListView - function handleSelection (evt: Event | undefined, objects: Doc[], selection: number): void { + function handleSelection(evt: Event | undefined, objects: Doc[], selection: number): void { const item = objects[selection] if (item === undefined) { return @@ -114,7 +114,7 @@ select(item) } - function select (item: Doc): void { + function select(item: Doc): void { onSelect?.(item) if (!multiSelect) { if (allowDeselect) { @@ -128,7 +128,7 @@ } } - function onKeydown (key: KeyboardEvent): void { + function onKeydown(key: KeyboardEvent): void { if (key.code === 'ArrowUp') { key.stopPropagation() key.preventDefault() @@ -147,7 +147,7 @@ } const manager = createFocusManager() - async function onCreate (): Promise { + async function onCreate(): Promise { if (create === undefined) { return } @@ -172,13 +172,13 @@ } } } - function toAny (obj: any): any { + function toAny(obj: any): any { return obj } const forbiddenDeselectItemIds = new Set(disallowDeselect) - function getGroup (doc: Doc, groupBy: any): any { + function getGroup(doc: Doc, groupBy: any): any { if (created.find((it) => it._id === doc._id) !== undefined) { return '_created' } @@ -188,7 +188,7 @@ return getObjectValue(groupBy, toAny(doc)) } - function findObjectPresenter (_class: Ref>): void { + function findObjectPresenter(_class: Ref>): void { const presenterMixin = getClient().getHierarchy().classHierarchyMixin(_class, view.mixin.ObjectPresenter) if (presenterMixin?.presenter !== undefined) { getResource(presenterMixin.presenter) @@ -201,7 +201,7 @@ } } - function isHasVersions (isVersionable: boolean, doc: Doc): VersionableDoc | undefined { + function isHasVersions(isVersionable: boolean, doc: Doc): VersionableDoc | undefined { if (!isVersionable) return const vDoc = doc as VersionableDoc if (vDoc.baseId === undefined) return diff --git a/packages/presentation/src/components/DrawingBoard.svelte b/packages/presentation/src/components/DrawingBoard.svelte index d7cba893a4..c453eb70fc 100644 --- a/packages/presentation/src/components/DrawingBoard.svelte +++ b/packages/presentation/src/components/DrawingBoard.svelte @@ -68,7 +68,7 @@ const undoableCommands = document.getArray('drawing-commands') const commandProcessor = new DrawingCommandsProcessor(document, undoableCommands) - function onSavedCommandsChanged (): void { + function onSavedCommandsChanged(): void { model = commandProcessor.snapshot() setTimeout(() => { const status = commandProcessor.getUndoRedoAvailability() @@ -80,7 +80,7 @@ $: updateToolbarPosition(readonly, board, toolbar) $: updateEditableState(drawings, readonly) - function updateToolbarPosition (readonly: boolean, board: HTMLDivElement, toolbar: HTMLDivElement): void { + function updateToolbarPosition(readonly: boolean, board: HTMLDivElement, toolbar: HTMLDivElement): void { if (!readonly && board?.offsetTop !== undefined && toolbar?.clientHeight !== undefined) { // TODO: There should be a generic solution // this only estimates a free room above the picture in FilePreviewPopup @@ -88,17 +88,17 @@ } } - function dropTextEditor (): void { + function dropTextEditor(): void { changingCmdId = undefined cmdEditor = undefined } - function handleModification (): void { + function handleModification(): void { modified = true dropTextEditor() } - function updateEditableState (drawings: DrawingData[], readonly: boolean): void { + function updateEditableState(drawings: DrawingData[], readonly: boolean): void { const readOnlyStatusChanged = readonly !== currentReadonly const drawingsChanged = drawings !== currentDrawings @@ -128,7 +128,7 @@ currentReadonly = readonly } - function parseDrawing (data: DrawingData | undefined): void { + function parseDrawing(data: DrawingData | undefined): void { if (data?.content !== undefined && data?.content !== null) { try { const commands: DrawingCmd[] = JSON.parse(data.content) @@ -143,7 +143,7 @@ onSavedCommandsChanged() } - function saveDrawing (): void { + function saveDrawing(): void { if (modified && model !== undefined) { const data: DrawingData = { content: JSON.stringify(model) @@ -154,14 +154,14 @@ } } - function addCommand (command: DrawingCmd): void { + function addCommand(command: DrawingCmd): void { if (model !== undefined) { commandProcessor.addCommand(command) handleModification() } } - function showCommandProps (id: CommandUid): void { + function showCommandProps(id: CommandUid): void { changingCmdId = id for (const command of model ?? []) { if (command.id === id) { @@ -175,14 +175,14 @@ } } - function changeCommand (cmd: DrawingCmd): void { + function changeCommand(cmd: DrawingCmd): void { if (model !== undefined) { commandProcessor.changeCommand(cmd) handleModification() } } - function deleteCommand (id: CommandUid): void { + function deleteCommand(id: CommandUid): void { if (model !== undefined) { commandProcessor.deleteCommand(id) handleModification() diff --git a/packages/presentation/src/components/DrawingBoardToolbar.svelte b/packages/presentation/src/components/DrawingBoardToolbar.svelte index e5a89d73cf..42e311ba0c 100644 --- a/packages/presentation/src/components/DrawingBoardToolbar.svelte +++ b/packages/presentation/src/components/DrawingBoardToolbar.svelte @@ -80,7 +80,7 @@ export let tool: DrawingTool = 'pen' - function evaluateToolPresentation (tool: DrawingTool): ToolPresentation { + function evaluateToolPresentation(tool: DrawingTool): ToolPresentation { const found = tools.find((t) => t.tool === tool) if (found == null) { return tools[0] @@ -111,7 +111,7 @@ type PaletteCommandId = 'add-color' | 'remove-color' | 'reset-colors' - function showPaletteManagementMenu (ev: MouseEvent): void { + function showPaletteManagementMenu(ev: MouseEvent): void { const items: Array & { id: PaletteCommandId }> = [] if (userSelectedPalette.length < maxColors) { items.push({ @@ -173,7 +173,7 @@ }) } - function addColorPreset (): void { + function addColorPreset(): void { if (!userSelectedPalette.includes(penColor)) { userSelectedPalette = [...userSelectedPalette, penColor] localStorage.setItem(storageKey.colors, JSON.stringify(userSelectedPalette)) @@ -181,12 +181,12 @@ focusEditor() } - function selectColor (color: ColorMetaNameOrHex): void { + function selectColor(color: ColorMetaNameOrHex): void { penColor = color ?? defaultColor localStorage.setItem(storageKey.color, penColor) } - function showToolSelectionMenu (ev: MouseEvent): void { + function showToolSelectionMenu(ev: MouseEvent): void { const items: Array & { id: DrawingTool }> = [] for (const toolPresentation of tools) { if (toolPresentation.tool === 'pan' && !showPanTool) { @@ -221,20 +221,20 @@ fontSize = parseInt(localStorage.getItem(storageKey.fontSize) ?? '20') }) - function updatePenWidth (): void { + function updatePenWidth(): void { localStorage.setItem(storageKey.penWidth, penWidth.toString()) } - function updateEraserWidth (): void { + function updateEraserWidth(): void { localStorage.setItem(storageKey.eraserWidth, eraserWidth.toString()) } - function updateFontSize (): void { + function updateFontSize(): void { localStorage.setItem(storageKey.fontSize, fontSize.toString()) focusEditor() } - function focusEditor (): void { + function focusEditor(): void { setTimeout(() => { if (cmdEditor !== undefined) { cmdEditor.focus() diff --git a/packages/presentation/src/components/FilePreviewPopup.svelte b/packages/presentation/src/components/FilePreviewPopup.svelte index 4f8f96c05c..775d0f9c69 100644 --- a/packages/presentation/src/components/FilePreviewPopup.svelte +++ b/packages/presentation/src/components/FilePreviewPopup.svelte @@ -60,7 +60,7 @@ $: void loadDrawings(file) - async function loadDrawings (file: Ref | undefined): Promise { + async function loadDrawings(file: Ref | undefined): Promise { if (props.drawingAvailable === true) { if (props.loadDrawings !== undefined) { drawingLoading = true @@ -95,11 +95,11 @@ } }) - function toggleDrawingEdit (): void { + function toggleDrawingEdit(): void { props.drawingEditable = !(props.drawingEditable === true) } - function selectCurrentDrawing (ev: MouseEvent): void { + function selectCurrentDrawing(ev: MouseEvent): void { if (props.drawings === undefined || props.drawings.length === 0) { // no current means no history return diff --git a/packages/presentation/src/components/FileTypeIcon.svelte b/packages/presentation/src/components/FileTypeIcon.svelte index 47688ed43d..6a732cb062 100644 --- a/packages/presentation/src/components/FileTypeIcon.svelte +++ b/packages/presentation/src/components/FileTypeIcon.svelte @@ -15,7 +15,7 @@ diff --git a/packages/presentation/src/components/NavLink.svelte b/packages/presentation/src/components/NavLink.svelte index c15bb60ba8..22af684a5a 100644 --- a/packages/presentation/src/components/NavLink.svelte +++ b/packages/presentation/src/components/NavLink.svelte @@ -33,7 +33,7 @@ export let noSelect: boolean = true export let maxWidth: string | undefined = undefined - function clickHandler (e: MouseEvent): void { + function clickHandler(e: MouseEvent): void { if (disabled) return if (onClick !== undefined) { diff --git a/packages/presentation/src/components/ObjectPopup.svelte b/packages/presentation/src/components/ObjectPopup.svelte index 5e651b0176..b254268297 100644 --- a/packages/presentation/src/components/ObjectPopup.svelte +++ b/packages/presentation/src/components/ObjectPopup.svelte @@ -160,7 +160,7 @@ } } - async function searchSpotlight (search: string): Promise { + async function searchSpotlight(search: string): Promise { return (await searchFor('spotlight', search, category, 50)).items } diff --git a/packages/presentation/src/components/ObjectSearchPopup.svelte b/packages/presentation/src/components/ObjectSearchPopup.svelte index 9092643874..d1b8ba2430 100644 --- a/packages/presentation/src/components/ObjectSearchPopup.svelte +++ b/packages/presentation/src/components/ObjectSearchPopup.svelte @@ -67,11 +67,11 @@ let list: ListView let selection = 0 - function dispatchItem (item: ObjectSearchResult): void { + function dispatchItem(item: ObjectSearchResult): void { dispatch('close', item) } - export function onKeyDown (key: KeyboardEvent): boolean { + export function onKeyDown(key: KeyboardEvent): boolean { if (key.key === 'ArrowDown') { key.stopPropagation() key.preventDefault() @@ -107,9 +107,9 @@ return false } - export function done (): void {} + export function done(): void {} - const updateItems = reduceCalls(async function updateItems ( + const updateItems = reduceCalls(async function updateItems( cat: ObjectSearchCategory | undefined, query: string, relatedDocuments?: RelatedDocument[] diff --git a/packages/presentation/src/components/PDFViewer.svelte b/packages/presentation/src/components/PDFViewer.svelte index 550d219f44..c22e9ef147 100644 --- a/packages/presentation/src/components/PDFViewer.svelte +++ b/packages/presentation/src/components/PDFViewer.svelte @@ -33,7 +33,7 @@ const dispatch = createEventDispatcher() - function iconLabel (name: string): string { + function iconLabel(name: string): string { const parts = name.split('.') const ext = parts[parts.length - 1] return ext.substring(0, 4).toUpperCase() diff --git a/packages/presentation/src/components/SpaceMultiBoxList.svelte b/packages/presentation/src/components/SpaceMultiBoxList.svelte index d19105f461..809ad146ee 100644 --- a/packages/presentation/src/components/SpaceMultiBoxList.svelte +++ b/packages/presentation/src/components/SpaceMultiBoxList.svelte @@ -33,7 +33,7 @@ const dispatch = createEventDispatcher() - async function addSpace (evt: Event): Promise { + async function addSpace(evt: Event): Promise { showPopup( SpacesMultiPopup, { diff --git a/packages/presentation/src/components/SpacesPopup.svelte b/packages/presentation/src/components/SpacesPopup.svelte index fdc1cbeb6f..7657cfb581 100644 --- a/packages/presentation/src/components/SpacesPopup.svelte +++ b/packages/presentation/src/components/SpacesPopup.svelte @@ -67,7 +67,7 @@ $: getComponent(component) - async function getComponent (component: AnySvelteComponent | AnyComponent | undefined): Promise { + async function getComponent(component: AnySvelteComponent | AnyComponent | undefined): Promise { if (typeof component === 'string') { is = await getResource(component) } else { diff --git a/packages/presentation/src/components/extensions/ComponentExtensions.svelte b/packages/presentation/src/components/extensions/ComponentExtensions.svelte index 54a903e0f3..da11ecf4e9 100644 --- a/packages/presentation/src/components/extensions/ComponentExtensions.svelte +++ b/packages/presentation/src/components/extensions/ComponentExtensions.svelte @@ -13,8 +13,8 @@ void getClient() .findAll(plugin.class.ComponentPointExtension, { - extension - }) + extension + }) .then((res) => { extensions = res.filter((it) => it.accessLevel === undefined || hasAccountRole(currentAccount, it.accessLevel)) }) diff --git a/packages/presentation/src/components/markup/Mark.svelte b/packages/presentation/src/components/markup/Mark.svelte index 9b75da645d..453e8b47c6 100644 --- a/packages/presentation/src/components/markup/Mark.svelte +++ b/packages/presentation/src/components/markup/Mark.svelte @@ -22,7 +22,7 @@ export let mark: MarkupMark - function handleLink (e: MouseEvent): void { + function handleLink(e: MouseEvent): void { try { const href = mark.attrs?.href if (href != null && href !== '') { diff --git a/packages/presentation/src/components/markup/MarkdownNode.svelte b/packages/presentation/src/components/markup/MarkdownNode.svelte index e478c77e87..0c9ae26426 100644 --- a/packages/presentation/src/components/markup/MarkdownNode.svelte +++ b/packages/presentation/src/components/markup/MarkdownNode.svelte @@ -19,7 +19,7 @@ export let node: MarkupNode export let preview = false - function escapeHtml (unsafe: string): string { + function escapeHtml(unsafe: string): string { return unsafe .replace(/&/g, '&') .replace(/ { + function toRefBlob(blobId: AttrValue): Ref { return blobId as Ref } - function toRef (objectId: string): Ref { + function toRef(objectId: string): Ref { return objectId as Ref } - function toClassRef (objectClass: string): Ref> { + function toClassRef(objectClass: string): Ref> { if (objectClass === 'contact:class:Employee') { return 'contact:mixin:Employee' as Ref> } return objectClass as Ref> } - function toString (value: AttrValue | undefined): string | undefined { + function toString(value: AttrValue | undefined): string | undefined { return value != null ? `${value}` : undefined } - function toNumber (value: AttrValue | undefined): number | undefined { + function toNumber(value: AttrValue | undefined): number | undefined { if (typeof value === 'boolean') { return value ? 1 : 0 } diff --git a/packages/presentation/src/components/markup/ObjectNode.svelte b/packages/presentation/src/components/markup/ObjectNode.svelte index 025dcceac8..9d89ff1bd7 100644 --- a/packages/presentation/src/components/markup/ObjectNode.svelte +++ b/packages/presentation/src/components/markup/ObjectNode.svelte @@ -53,7 +53,7 @@ }) } - function onBrokenLinkClick (event: MouseEvent): void { + function onBrokenLinkClick(event: MouseEvent): void { if (_id !== undefined && withoutDoc.includes(_id)) return showPopup(MessageBox, { label: presentation.string.UnableToFollowMention, diff --git a/packages/presentation/src/components/markup/lite/LiteNodeContent.svelte b/packages/presentation/src/components/markup/lite/LiteNodeContent.svelte index f89bda1454..de56ce4ee0 100644 --- a/packages/presentation/src/components/markup/lite/LiteNodeContent.svelte +++ b/packages/presentation/src/components/markup/lite/LiteNodeContent.svelte @@ -28,22 +28,22 @@ let parsedTextWithEmojis: ParsedTextWithEmojis | undefined = undefined - function toRefBlob (blobId: AttrValue): Ref { + function toRefBlob(blobId: AttrValue): Ref { return blobId as Ref } - function toRef (objectId: string): Ref { + function toRef(objectId: string): Ref { return objectId as Ref } - function toClassRef (objectClass: string): Ref> { + function toClassRef(objectClass: string): Ref> { if (objectClass === 'contact:class:Employee') { return 'contact:mixin:Employee' as Ref> } return objectClass as Ref> } - function toString (value: AttrValue | undefined): string | undefined { + function toString(value: AttrValue | undefined): string | undefined { return value != null ? `${value}` : undefined } diff --git a/packages/presentation/src/configuration.ts b/packages/presentation/src/configuration.ts index eb9fde031d..63cd701bd4 100644 --- a/packages/presentation/src/configuration.ts +++ b/packages/presentation/src/configuration.ts @@ -40,7 +40,7 @@ export class ConfigurationManager { return configuration !== undefined && configuration.enabled } - hasResource(resource?: Resource | null): boolean | undefined { + hasResource (resource?: Resource | null): boolean | undefined { if (resource == null) { return false } diff --git a/packages/presentation/src/drafts.ts b/packages/presentation/src/drafts.ts index 1cd3964430..6d58804181 100644 --- a/packages/presentation/src/drafts.ts +++ b/packages/presentation/src/drafts.ts @@ -166,7 +166,7 @@ export class DraftController { removeDraft(id) } - static save(id: string, object: T, emptyObj: Partial | undefined = undefined): void { + static save (id: string, object: T, emptyObj: Partial | undefined = undefined): void { if (emptyObj !== undefined && isEmptyDraft(object, emptyObj)) { DraftController.remove(id) return diff --git a/packages/presentation/src/index.ts b/packages/presentation/src/index.ts index 305753389b..1e21076eb1 100644 --- a/packages/presentation/src/index.ts +++ b/packages/presentation/src/index.ts @@ -55,7 +55,7 @@ export { default as Image } from './components/Image.svelte' export { default as IconWithEmoji } from './components/IconWithEmoji.svelte' export { default as ObjectNode } from './components/markup/ObjectNode.svelte' export { default } from './plugin' -export * from './types' +export type * from './types' export * from './utils' export * from './file' export * from './filetypes' @@ -71,7 +71,7 @@ export * from './search' export * from './image' export * from './preview' export * from './sound' -export * from './stats' +export type * from './stats' export * from './drawing' export * from './drawingUtils' export * from './drawingColors' diff --git a/packages/presentation/src/link-preview.ts b/packages/presentation/src/link-preview.ts index 3e229713a6..68c1c1d6bd 100644 --- a/packages/presentation/src/link-preview.ts +++ b/packages/presentation/src/link-preview.ts @@ -32,8 +32,8 @@ export interface LinkPreviewDetails { } export type LinkPreviewAttachmentMetadata = Pick< -LinkPreviewDetails, -'title' | 'description' | 'image' | 'imageWidth' | 'imageHeight' + LinkPreviewDetails, + 'title' | 'description' | 'image' | 'imageWidth' | 'imageHeight' > export function canDisplayLinkPreview (val: LinkPreviewDetails): boolean { diff --git a/packages/presentation/src/pipeline.ts b/packages/presentation/src/pipeline.ts index 20f1e341df..2864756d3b 100644 --- a/packages/presentation/src/pipeline.ts +++ b/packages/presentation/src/pipeline.ts @@ -115,7 +115,7 @@ export class PresentationPipelineImpl implements PresentationPipeline { return current } - async domainRequest( + async domainRequest ( domain: OperationDomain, params: DomainParams, options?: DomainRequestOptions @@ -136,7 +136,7 @@ export class PresentationPipelineImpl implements PresentationPipeline { } } - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -177,7 +177,7 @@ export class PresentationPipelineImpl implements PresentationPipeline { return await this.client.searchFulltext(query, options) } - async findOne( + async findOne ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -197,16 +197,16 @@ export class PresentationPipelineImpl implements PresentationPipeline { } } - async subscribe( + async subscribe ( _class: Ref>, query: DocumentQuery, options: FindOptions | undefined, refresh: () => void ): Promise<{ - unsubscribe: () => void - query?: DocumentQuery - options?: FindOptions - }> { + unsubscribe: () => void + query?: DocumentQuery + options?: FindOptions + }> { return this.head !== undefined ? await this.head.subscribe(_class, query, options, refresh) : { unsubscribe: () => {} } @@ -261,7 +261,7 @@ export abstract class BasePresentationMiddleware { await this.client.close() } - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -269,7 +269,7 @@ export abstract class BasePresentationMiddleware { return await this.provideFindAll(_class, query, options) } - async findOne( + async findOne ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -277,16 +277,16 @@ export abstract class BasePresentationMiddleware { return await this.provideFindOne(_class, query, options) } - async subscribe( + async subscribe ( _class: Ref>, query: DocumentQuery, options: FindOptions | undefined, refresh: () => void ): Promise<{ - unsubscribe: () => void - query?: DocumentQuery - options?: FindOptions - }> { + unsubscribe: () => void + query?: DocumentQuery + options?: FindOptions + }> { return await this.provideSubscribe(_class, query, options, refresh) } @@ -297,7 +297,7 @@ export abstract class BasePresentationMiddleware { return await this.client.tx(tx) } - protected async provideFindAll( + protected async provideFindAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -308,7 +308,7 @@ export abstract class BasePresentationMiddleware { return await this.client.findAll(_class, query, options) } - protected async provideFindOne( + protected async provideFindOne ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -319,7 +319,7 @@ export abstract class BasePresentationMiddleware { return await this.client.findOne(_class, query, options) } - async domainRequest( + async domainRequest ( domain: OperationDomain, params: DomainParams, options?: DomainRequestOptions @@ -327,7 +327,7 @@ export abstract class BasePresentationMiddleware { return await this.provideDomainRequest(domain, params, options) } - protected async provideDomainRequest( + protected async provideDomainRequest ( domain: OperationDomain, params: DomainParams, options?: DomainRequestOptions @@ -338,16 +338,16 @@ export abstract class BasePresentationMiddleware { return await this.client.domainRequest(domain, params, options) } - protected async provideSubscribe( + protected async provideSubscribe ( _class: Ref>, query: DocumentQuery, options: FindOptions | undefined, refresh: () => void ): Promise<{ - unsubscribe: () => void - query?: DocumentQuery - options?: FindOptions - }> { + unsubscribe: () => void + query?: DocumentQuery + options?: FindOptions + }> { if (this.next !== undefined) { return await this.next.subscribe(_class, query, options, refresh) } @@ -386,7 +386,7 @@ export class OptimizeQueryMiddleware extends BasePresentationMiddleware implemen return await this.provideTx(tx) } - async domainRequest( + async domainRequest ( domain: OperationDomain, params: DomainParams, options?: DomainRequestOptions @@ -394,20 +394,20 @@ export class OptimizeQueryMiddleware extends BasePresentationMiddleware implemen return await this.provideDomainRequest(domain, params, options) } - async subscribe( + async subscribe ( _class: Ref>, query: DocumentQuery, options: FindOptions | undefined, refresh: () => void ): Promise<{ - unsubscribe: () => void - query?: DocumentQuery - options?: FindOptions - }> { + unsubscribe: () => void + query?: DocumentQuery + options?: FindOptions + }> { return await this.provideSubscribe(_class, query, options, refresh) } - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions | undefined @@ -438,7 +438,7 @@ export class OptimizeQueryMiddleware extends BasePresentationMiddleware implemen return await this.provideFindAll(_class, fQuery, fOptions) } - private optimizeQuery(fQuery: DocumentQuery, fOptions: FindOptions): void { + private optimizeQuery (fQuery: DocumentQuery, fOptions: FindOptions): void { if (typeof fQuery._id === 'string' && fOptions.sort !== undefined) { delete fOptions.sort } @@ -447,7 +447,7 @@ export class OptimizeQueryMiddleware extends BasePresentationMiddleware implemen } } - async findOne( + async findOne ( _class: Ref>, query: DocumentQuery, options?: FindOptions | undefined diff --git a/packages/presentation/src/preview.ts b/packages/presentation/src/preview.ts index 15cdc2f572..c57d014b0a 100644 --- a/packages/presentation/src/preview.ts +++ b/packages/presentation/src/preview.ts @@ -31,9 +31,9 @@ export async function getBlobRef ( width?: number, height?: number ): Promise<{ - src: string - srcset: string - }> { + src: string + srcset: string +}> { return { src: getFileUrl(file, name), srcset: getSrcSet(file, width, height) diff --git a/packages/presentation/src/types.ts b/packages/presentation/src/types.ts index 3bf75bf463..883915242b 100644 --- a/packages/presentation/src/types.ts +++ b/packages/presentation/src/types.ts @@ -17,7 +17,7 @@ import { import { type Asset, type IntlString, type Resource } from '@hcengineering/platform' import { type AnyComponent, type AnySvelteComponent, type ComponentExtensionId } from '@hcengineering/ui/src/types' -export * from './components/breadcrumbs/types' +export type * from './components/breadcrumbs/types' /** * @public diff --git a/packages/presentation/src/utils.ts b/packages/presentation/src/utils.ts index 395ac538c7..af67c33564 100644 --- a/packages/presentation/src/utils.ts +++ b/packages/presentation/src/utils.ts @@ -162,7 +162,7 @@ class UIClient extends TxOperations implements Client { } } - override async findAll( + override async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -170,7 +170,7 @@ class UIClient extends TxOperations implements Client { return await this.liveQuery.findAll(_class, query, options) } - override async findOne( + override async findOne ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -309,7 +309,7 @@ class ClientHookImpl implements Client { return this.client.getModel() } - async findOne( + async findOne ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -324,7 +324,7 @@ class ClientHookImpl implements Client { await this.client.close() } - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -505,7 +505,7 @@ export class LiveQuery { } } - query( + query ( _class: Ref>, query: DocumentQuery, callback: (result: FindResult) => void | Promise, @@ -533,7 +533,7 @@ export class LiveQuery { } ) - private doQuery( + private doQuery ( id: number, _class: Ref>, query: DocumentQuery, @@ -602,7 +602,7 @@ export class LiveQuery { } } - private needUpdate( + private needUpdate ( _class: Ref>, query: DocumentQuery, callback: (result: FindResult) => void | Promise, diff --git a/packages/rekoni/src/index.ts b/packages/rekoni/src/index.ts index 4373fbabb1..6277aee0b5 100644 --- a/packages/rekoni/src/index.ts +++ b/packages/rekoni/src/index.ts @@ -19,12 +19,12 @@ import plugin from './plugin' import { ReconiDocument } from './types' export { default } from './plugin' -export * from './types' +export type * from './types' /** * @public */ -export async function recognizeDocument(token: string, file: File): Promise { +export async function recognizeDocument (token: string, file: File): Promise { const rekoniUrl = getMetadata(plugin.metadata.RekoniUrl) if (rekoniUrl === undefined) { // We could try use recognition service to find some document properties. diff --git a/packages/theme/src/index.ts b/packages/theme/src/index.ts index 7f66199fd1..ef98ab7488 100644 --- a/packages/theme/src/index.ts +++ b/packages/theme/src/index.ts @@ -31,7 +31,7 @@ export const setDefaultLanguage = (language: string): void => { } } -function getDefaultProps(prop: string, value: string): string { +function getDefaultProps (prop: string, value: string): string { localStorage.setItem(prop, value) return value } @@ -69,7 +69,7 @@ export const getCurrentEmoji = (): string => localStorage.getItem('emoji') ?? ge export class ThemeOptions { readonly variant: ThemeVariantType - constructor( + constructor ( readonly fontSize: number, readonly dark: boolean, readonly language: string, @@ -80,7 +80,7 @@ export class ThemeOptions { } export const themeStore = writable() -export function initThemeStore(): void { +export function initThemeStore (): void { themeStore.set( new ThemeOptions( getCurrentFontSize() === 'normal-font' ? 16 : 14, diff --git a/packages/ui/src/colors.ts b/packages/ui/src/colors.ts index 777d08f8eb..863a29bbda 100644 --- a/packages/ui/src/colors.ts +++ b/packages/ui/src/colors.ts @@ -211,7 +211,7 @@ export const avatarDarkColors = Object.freeze([ defineAvatarColor('Grey 1', 210, 11, 89, [20, 2, 0], true) ]) -export function defaultBackground(dark: boolean): string { +export function defaultBackground (dark: boolean): string { return dark ? 'linear-gradient(90deg, #22242A, #161719)' : '#FFFFFF' } @@ -240,7 +240,7 @@ export const CadetGreyColor = '#95A2B3' /** * @public */ -export function getPlatformColor(hash: number | number[], darkTheme: boolean): string { +export function getPlatformColor (hash: number | number[], darkTheme: boolean): string { const palette = darkTheme ? darkPalette : whitePalette return (palette[Math.abs(Array.isArray(hash) ? hash[0] : hash) % palette.length] ?? palette[0]).color } @@ -248,7 +248,7 @@ export function getPlatformColor(hash: number | number[], darkTheme: boolean): s /** * @public */ -export function getPlatformColorDef(hash: number | number[], darkTheme: boolean): ColorDefinition { +export function getPlatformColorDef (hash: number | number[], darkTheme: boolean): ColorDefinition { const palette = darkTheme ? darkPalette : whitePalette return palette[Math.abs(Array.isArray(hash) ? hash[0] : hash) % palette.length] ?? palette[0] } @@ -256,7 +256,7 @@ export function getPlatformColorDef(hash: number | number[], darkTheme: boolean) /** * @public */ -export function getPlatformAvatarColorDef(hash: number, darkTheme: boolean): ColorDefinition { +export function getPlatformAvatarColorDef (hash: number, darkTheme: boolean): ColorDefinition { const palette = darkTheme ? avatarDarkColors : avatarWhiteColors return palette[Math.abs(hash) % palette.length] ?? palette[0] } @@ -264,14 +264,14 @@ export function getPlatformAvatarColorDef(hash: number, darkTheme: boolean): Col /** * @public */ -export function getPlatformAvatarColorForTextDef(text: string, darkTheme: boolean): ColorDefinition { +export function getPlatformAvatarColorForTextDef (text: string, darkTheme: boolean): ColorDefinition { return getPlatformAvatarColorDef(hashCode(text), darkTheme) } /** * @public */ -export function getPlatformAvatarColorByName(name: string, darkTheme: boolean): ColorDefinition { +export function getPlatformAvatarColorByName (name: string, darkTheme: boolean): ColorDefinition { const defaultIndex = 0 return getColorByName(name, darkTheme, avatarWhiteColors, avatarDarkColors, defaultIndex) } @@ -279,7 +279,7 @@ export function getPlatformAvatarColorByName(name: string, darkTheme: boolean): /** * @public */ -export function getPlatformColorByName(name: string, darkTheme: boolean): ColorDefinition | undefined { +export function getPlatformColorByName (name: string, darkTheme: boolean): ColorDefinition | undefined { const defaultIndex: number | undefined = undefined return getColorByName(name, darkTheme, whitePalette, darkPalette, defaultIndex) } @@ -298,7 +298,7 @@ function getColorByName( paletteDark: readonly ColorDefinition[], defaultIndex: undefined ): ColorDefinition | undefined -function getColorByName( +function getColorByName ( name: string, darkTheme: boolean, paletteLight: readonly ColorDefinition[], @@ -316,31 +316,31 @@ function getColorByName( /** * @public */ -export function getPlatformAvatarColors(darkTheme: boolean): readonly ColorDefinition[] { +export function getPlatformAvatarColors (darkTheme: boolean): readonly ColorDefinition[] { return darkTheme ? avatarDarkColors : avatarWhiteColors } /** * @public */ -export function getPlatformColorForText(text: string, darkTheme: boolean): string { +export function getPlatformColorForText (text: string, darkTheme: boolean): string { return getPlatformColor(hashCode(text), darkTheme) } /** * @public */ -export function getPlatformColorForTextDef(text: string, darkTheme: boolean): ColorDefinition { +export function getPlatformColorForTextDef (text: string, darkTheme: boolean): ColorDefinition { return getPlatformColorDef(hashCode(text), darkTheme) } /** * @public */ -export function getPlatformColors(darkTheme: boolean): readonly ColorDefinition[] { +export function getPlatformColors (darkTheme: boolean): readonly ColorDefinition[] { return darkTheme ? darkPalette : whitePalette } -function hashCode(str: string): number { +function hashCode (str: string): number { return (str ?? '') .split('') .reduce((prevHash, currVal) => ((prevHash << 5) - prevHash + currVal.charCodeAt(0)) | 0, 0) @@ -349,7 +349,7 @@ function hashCode(str: string): number { /** * @public */ -export function getColorNumberByText(str: string): number { +export function getColorNumberByText (str: string): number { const hash = hashCode(str) return Math.abs(hash) % Math.min(darkPalette.length, whitePalette.length) } @@ -357,7 +357,7 @@ export function getColorNumberByText(str: string): number { /** * @public */ -export function hexColorToNumber(hexColor: string): number { +export function hexColorToNumber (hexColor: string): number { if (hexColor === undefined || hexColor === null) { return 0 } @@ -367,7 +367,7 @@ export function hexColorToNumber(hexColor: string): number { /** * @public */ -export function hexToRgb(color: string): RGBColor { +export function hexToRgb (color: string): RGBColor { if (!color.startsWith('#')) { return { r: 128, g: 128, b: 128 } } @@ -389,14 +389,14 @@ export function hexToRgb(color: string): RGBColor { /** * @public */ -export function hexHSLToRgb(color: string, percent = 100): RGBColor { +export function hexHSLToRgb (color: string, percent = 100): RGBColor { const h = parseInt(color.slice(0, 2), 16) const s = parseInt(color.slice(2, 4), 16) const l = parseInt(color.slice(4, 6), 16) return hslToRgb(h, s, (l / 100) * percent) } -function addZero(d: string): string { +function addZero (d: string): string { if (d.length < 2) { return '0' + d } @@ -406,7 +406,7 @@ function addZero(d: string): string { /** * @public */ -export function defineAlpha(dark: boolean, color: string, percent = 100): string { +export function defineAlpha (dark: boolean, color: string, percent = 100): string { let rgb = color if (!rgb.startsWith('#')) { rgb = '#' + rgb @@ -431,7 +431,7 @@ export function defineAlpha(dark: boolean, color: string, percent = 100): string /** * @public */ -export function numberToHexColor(color: number): string { +export function numberToHexColor (color: number): string { if (color === undefined || color === null) { return '' } @@ -441,7 +441,7 @@ export function numberToHexColor(color: number): string { /** * @public */ -export function numberToRGB(color: number, alpha?: number): string { +export function numberToRGB (color: number, alpha?: number): string { if (color === undefined || color === null) { return '' } @@ -456,13 +456,13 @@ export function numberToRGB(color: number, alpha?: number): string { /** * @public */ -export function hslToRgb(h: number, s: number, l: number): RGBColor { +export function hslToRgb (h: number, s: number, l: number): RGBColor { let r, g, b if (s === 0) { r = g = b = l // achromatic } else { - const hue2rgb = function hue2rgb(p: number, q: number, t: number): number { + const hue2rgb = function hue2rgb (p: number, q: number, t: number): number { if (t < 0) t += 1 if (t > 1) t -= 1 if (t < 1 / 6) return p + (q - p) * 6 * t @@ -484,7 +484,7 @@ export function hslToRgb(h: number, s: number, l: number): RGBColor { /** * @public */ -export function rgbToHex(color: RGBColor): string { +export function rgbToHex (color: RGBColor): string { return ( '#' + addZero((Math.round(color.r) % 255).toString(16)) + @@ -493,7 +493,7 @@ export function rgbToHex(color: RGBColor): string { ) } -export async function svgToColor(img: SVGSVGElement): Promise { +export async function svgToColor (img: SVGSVGElement): Promise { const outerHTML = img.outerHTML const blob = new Blob([outerHTML], { type: 'image/svg+xml;charset=utf-8' }) const blobURL = URL.createObjectURL(blob) @@ -510,7 +510,7 @@ export async function svgToColor(img: SVGSVGElement): Promise + export let value: Array<{ id: number | string, color: number, label: string }> let search: string = '' diff --git a/packages/ui/src/components/PopupInstance.svelte b/packages/ui/src/components/PopupInstance.svelte index c734b07bf0..4c5f3a34f4 100644 --- a/packages/ui/src/components/PopupInstance.svelte +++ b/packages/ui/src/components/PopupInstance.svelte @@ -163,11 +163,11 @@ let notFit: number = 0 let locked: boolean = false - const windowSize: { width: number; height: number } = { width: 0, height: 0 } - const dragParams: { offsetX: number; offsetY: number } = { offsetX: 0, offsetY: 0 } + const windowSize: { width: number, height: number } = { width: 0, height: 0 } + const dragParams: { offsetX: number, offsetY: number } = { offsetX: 0, offsetY: 0 } let popupParams: PopupParams = { x: 0, y: 0, width: 0, height: 0 } - const updatedPopupParams = (pp: { x: number; y: number; width: number; height: number }): void => { + const updatedPopupParams = (pp: { x: number, y: number, width: number, height: number }): void => { if (pp.width === 0 || pp.height === 0 || element !== 'movable') return options.props.left = `${pp.x}px` options.props.right = '' diff --git a/packages/ui/src/components/Separator.svelte b/packages/ui/src/components/Separator.svelte index 0f46780148..b26ad9004b 100644 --- a/packages/ui/src/components/Separator.svelte +++ b/packages/ui/src/components/Separator.svelte @@ -58,14 +58,14 @@ let realIndex: number = index let offset: number = 0 let separatorsSizes: number[] | null = null - const separatorsWide: { before: number; after: number; total: number } = { before: 0, after: 0, total: 0 } - const containers: { minStart: number; minEnd: number; maxStart: number; maxEnd: number } = { + const separatorsWide: { before: number, after: number, total: number } = { before: 0, after: 0, total: 0 } + const containers: { minStart: number, minEnd: number, maxStart: number, maxEnd: number } = { minStart: -1, minEnd: -1, maxStart: -1, maxEnd: -1 } - let parentSize: { start: number; end: number; size: number } | null = null + let parentSize: { start: number, end: number, size: number } | null = null let disabled: boolean = false let side: 'start' | 'end' | undefined = undefined @@ -575,7 +575,7 @@ const children: Element[] = Array.from(parentElement.children) let totalSize: number = 0 let ind: number = 0 - const rects = new Map() + const rects = new Map() const hasSep: string[] = [] children.forEach((ch) => { const rect = ch.getBoundingClientRect() diff --git a/packages/ui/src/components/Timeline.svelte b/packages/ui/src/components/Timeline.svelte index 551a0e1c04..90632088e9 100644 --- a/packages/ui/src/components/Timeline.svelte +++ b/packages/ui/src/components/Timeline.svelte @@ -79,7 +79,7 @@ } } - const getDateByOffset = (x: number): { date: Date; delta: number } => { + const getDateByOffset = (x: number): { date: Date, delta: number } => { const deltaDays = Math.floor(x / dayWidth) const calcDay = new Date(currentTime + deltaDays * MILLISECONDS_IN_DAY) return { date: calcDay, delta: deltaDays } diff --git a/packages/ui/src/components/calendar/internal/DateUtils.ts b/packages/ui/src/components/calendar/internal/DateUtils.ts index 2b8185208f..f89b7228c7 100644 --- a/packages/ui/src/components/calendar/internal/DateUtils.ts +++ b/packages/ui/src/components/calendar/internal/DateUtils.ts @@ -20,7 +20,7 @@ export const MILLISECONDS_IN_MINUTE = 60000 export const MILLISECONDS_IN_DAY = 86400000 export const MILLISECONDS_IN_WEEK = DAYS_IN_WEEK * MILLISECONDS_IN_DAY -export function firstDay(date: Date, firstDay: number = 1): Date { +export function firstDay (date: Date, firstDay: number = 1): Date { const firstDayOfMonth = new Date(new Date(date).setHours(0, 0, 0, 0)) firstDayOfMonth.setDate(1) // First day of month const result = new Date(firstDayOfMonth) @@ -32,23 +32,23 @@ export function firstDay(date: Date, firstDay: number = 1): Date { return result } -export function getWeek(date: Date): number { +export function getWeek (date: Date): number { const onejan = new Date(date.getFullYear(), 0, 1) return Math.ceil(((date.getTime() - onejan.getTime()) / MILLISECONDS_IN_DAY + onejan.getDay() + 1) / DAYS_IN_WEEK) } -export function daysInMonth(date: Date): number { +export function daysInMonth (date: Date): number { return 33 - new Date(date.getFullYear(), date.getMonth(), 33).getDate() } -export function getWeekDayName(weekDay: Date, weekFormat: 'narrow' | 'short' | 'long' | undefined = 'short'): string { +export function getWeekDayName (weekDay: Date, weekFormat: 'narrow' | 'short' | 'long' | undefined = 'short'): string { const locale = new Intl.NumberFormat().resolvedOptions().locale return new Intl.DateTimeFormat(locale, { weekday: weekFormat }).format(weekDay) } -export function getWeekDayNames(): Map { +export function getWeekDayNames (): Map { const today: Date = new Date() const offset: number = 0 - today.getDay() const startDate: number = today.setTime(today.getTime() + MILLISECONDS_IN_DAY * offset) @@ -59,15 +59,15 @@ export function getWeekDayNames(): Map { return result } -export function day(firstDay: Date, offset: number): Date { +export function day (firstDay: Date, offset: number): Date { return new Date(new Date(firstDay).setDate(firstDay.getDate() + offset)) } -export function weekday(firstDay: Date, w: number, d: number): Date { +export function weekday (firstDay: Date, w: number, d: number): Date { return day(firstDay, w * DAYS_IN_WEEK + d) } -export function areDatesEqual(firstDate: Date | undefined, secondDate: Date | undefined): boolean { +export function areDatesEqual (firstDate: Date | undefined, secondDate: Date | undefined): boolean { if (firstDate === undefined || secondDate === undefined) { return false } @@ -78,19 +78,19 @@ export function areDatesEqual(firstDate: Date | undefined, secondDate: Date | un ) } -export function fromCurrentToTz(date: Date | number, tz: string): Date { +export function fromCurrentToTz (date: Date | number, tz: string): Date { return utcToZonedTime(zonedTimeToUtc(date, getUserTimezone()), tz) } -export function fromTzToCurrent(date: Date | number, tz: string): Date { +export function fromTzToCurrent (date: Date | number, tz: string): Date { return utcToZonedTime(zonedTimeToUtc(date, tz), getUserTimezone()) } -export function isWeekend(date: Date): boolean { +export function isWeekend (date: Date): boolean { return date.getDay() === 0 || date.getDay() === 6 } -export function getMonthName(date: Date, option: 'narrow' | 'short' | 'long' | 'numeric' | '2-digit' = 'long'): string { +export function getMonthName (date: Date, option: 'narrow' | 'short' | 'long' | 'numeric' | '2-digit' = 'long'): string { try { const locale = new Intl.NumberFormat().resolvedOptions().locale return new Intl.DateTimeFormat(locale, { month: option }).format(date) @@ -106,24 +106,24 @@ export interface ICell { classes: TCellStyle } -export function getLocalWeekStart(): number { +export function getLocalWeekStart (): number { const locale = new Intl.Locale(navigator.language) return typeof (locale as any)?.getWeekInfo === 'function' ? (locale as any)?.getWeekInfo()?.firstDay : ((locale as any).weekInfo?.firstDay ?? 1) } -export function hasLocalWeekStart(): boolean { +export function hasLocalWeekStart (): boolean { const locale = new Intl.Locale(navigator.language) return typeof (locale as any)?.getWeekInfo === 'function' || (locale as any).weekInfo?.firstDay !== undefined } -export function getWeekStart(date: Date = new Date(), firstDay: number = 1): Date { +export function getWeekStart (date: Date = new Date(), firstDay: number = 1): Date { date = new Date(new Date(date).setHours(0, 0, 0, 0)) return new Date(date.setDate(date.getDate() - ((date.getDay() - firstDay + 7) % 7))) } -export function addZero(value: number): string { +export function addZero (value: number): string { if (value < 10) { return `0${value}` } @@ -155,7 +155,7 @@ export const getDueDateIconModifier = ( return 'normal' } -export function getFormattedDate(value: number | null, options?: Intl.DateTimeFormatOptions): string { +export function getFormattedDate (value: number | null, options?: Intl.DateTimeFormatOptions): string { return value === null ? '' : new Date(value).toLocaleString('default', options ?? { month: 'short', day: 'numeric' }) } @@ -194,7 +194,7 @@ export const convertTimeZone = (tz: string): TimeZone => { } } -export function getUserTimezone(): string { +export function getUserTimezone (): string { if (window.Intl !== undefined) { return Intl.DateTimeFormat().resolvedOptions().timeZone } else { diff --git a/packages/ui/src/components/internal/ClockFace.svelte b/packages/ui/src/components/internal/ClockFace.svelte index 8290942850..c9e007335b 100644 --- a/packages/ui/src/components/internal/ClockFace.svelte +++ b/packages/ui/src/components/internal/ClockFace.svelte @@ -18,7 +18,7 @@ export let timeZone: string export let size: string = '80px' - const clock: Array<{ value: number; class: string }> = [ + const clock: Array<{ value: number, class: string }> = [ { value: 0, class: 'hour-arrow' }, { value: 0, class: 'minute-arrow' }, { value: 0, class: 'second-arrow' } diff --git a/packages/ui/src/components/internal/ErrorBoundary.ts b/packages/ui/src/components/internal/ErrorBoundary.ts index c8dbf304bb..842582fd52 100644 --- a/packages/ui/src/components/internal/ErrorBoundary.ts +++ b/packages/ui/src/components/internal/ErrorBoundary.ts @@ -15,7 +15,7 @@ import ErrorComponent from './ErrorComponent.svelte' export default class errorBoundary extends ErrorComponent { - constructor(config: any) { + constructor (config: any) { let error: any = null config.props.$$slots.default = config.props.$$slots.default.map((x: any) => (...args: any[]) => { try { diff --git a/packages/ui/src/components/internal/SettingsPopup.svelte b/packages/ui/src/components/internal/SettingsPopup.svelte index a265462293..f5d0dde4c8 100644 --- a/packages/ui/src/components/internal/SettingsPopup.svelte +++ b/packages/ui/src/components/internal/SettingsPopup.svelte @@ -38,7 +38,7 @@ setFontSize: (value: string) => void }>('fontsize') - const { currentTheme, setTheme } = getContext<{ currentTheme: Readable; setTheme: (theme: string) => void }>( + const { currentTheme, setTheme } = getContext<{ currentTheme: Readable, setTheme: (theme: string) => void }>( 'theme' ) @@ -52,18 +52,18 @@ setEmoji: (emoji: string) => void }>('emoji') - const fontsizes: Array<{ id: string; label: IntlString; size: number }> = [ + const fontsizes: Array<{ id: string, label: IntlString, size: number }> = [ { id: 'normal-font', label: ui.string.Spacious, size: 16 }, { id: 'small-font', label: ui.string.Compact, size: 14 } ] - const themes: Array<{ id: string; label: IntlString }> = [ + const themes: Array<{ id: string, label: IntlString }> = [ { id: 'theme-light', label: ui.string.ThemeLight }, { id: 'theme-dark', label: ui.string.ThemeDark }, { id: 'theme-system', label: ui.string.ThemeSystem } ] - const emojis: Array<{ id: string; label: IntlString }> = [ + const emojis: Array<{ id: string, label: IntlString }> = [ { id: 'emoji-system', label: ui.string.EmojiSystem }, { id: 'emoji-noto', label: ui.string.EmojiNoto } ] diff --git a/packages/ui/src/focus.ts b/packages/ui/src/focus.ts index 744d5c863f..3a73ebecb6 100644 --- a/packages/ui/src/focus.ts +++ b/packages/ui/src/focus.ts @@ -24,26 +24,26 @@ class FocusManagerImpl implements FocusManager { }> = [] current = 0 - register(order: number, focus: () => boolean, isFocus: () => boolean, canBlur?: () => boolean): number { + register (order: number, focus: () => boolean, isFocus: () => boolean, canBlur?: () => boolean): number { const el = { id: this.counter++, order, focus, isFocus, canBlur } this.elements.push(el) this.sort() return el.id } - unregister(idx: number): void { + unregister (idx: number): void { this.elements = this.elements.filter((it) => it.id !== idx) this.sort() } - sort(): void { + sort (): void { // this.needSort = 0 this.elements.sort((a, b) => { return a.order - b.order }) } - next(inc?: 1 | -1): void { + next (inc?: 1 | -1): void { if (this.elements.length === 0) return const current = this.elements[this.current] if (!(current?.canBlur?.() ?? true)) { @@ -58,7 +58,7 @@ class FocusManagerImpl implements FocusManager { } } - setFocus(idx: number): void { + setFocus (idx: number): void { if (idx === -1) { return } @@ -66,7 +66,7 @@ class FocusManagerImpl implements FocusManager { this.elements[Math.abs(this.current) % this.elements.length]?.focus() } - setFocusPos(order: number): void { + setFocusPos (order: number): void { if (order === -1) { return } @@ -77,7 +77,7 @@ class FocusManagerImpl implements FocusManager { } } - updateFocus(idx: number, order: number): void { + updateFocus (idx: number, order: number): void { const el = this.elements.find((it) => it.id === idx) if (el !== undefined) { if (el.order !== order) { @@ -87,7 +87,7 @@ class FocusManagerImpl implements FocusManager { } } - hasFocus(): boolean { + hasFocus (): boolean { for (const el of this.elements) { if (el.isFocus()) { return true @@ -100,20 +100,20 @@ class FocusManagerImpl implements FocusManager { /** * @public */ -export function createFocusManager(): FocusManager { +export function createFocusManager (): FocusManager { const mgr = new FocusManagerImpl() setFocusManager(mgr) return mgr } -export function setFocusManager(manager: FocusManager): void { +export function setFocusManager (manager: FocusManager): void { setContext('ui.focus.elements', manager) } /** * @public */ -export function getFocusManager(): FocusManager | undefined { +export function getFocusManager (): FocusManager | undefined { return getContext('ui.focus.elements') } @@ -121,10 +121,10 @@ export function getFocusManager(): FocusManager | undefined { * Register new focus reciever if order !== -1 * @public */ -export function registerFocus( +export function registerFocus ( order: number, - item: { focus: () => boolean; isFocus: () => boolean; canBlur?: () => boolean } -): { idx: number; focusManager?: FocusManager } { + item: { focus: () => boolean, isFocus: () => boolean, canBlur?: () => boolean } +): { idx: number, focusManager?: FocusManager } { const focusManager = getFocusManager() as FocusManagerImpl if (order === -1) { return { idx: -1, focusManager } diff --git a/packages/ui/src/index.ts b/packages/ui/src/index.ts index 0e16f06994..6044df56d8 100644 --- a/packages/ui/src/index.ts +++ b/packages/ui/src/index.ts @@ -317,7 +317,7 @@ export * from './resize' export * from './lazy' export * from './stores' -export function createApp(target: HTMLElement): SvelteComponent { +export function createApp (target: HTMLElement): SvelteComponent { return new Root({ target }) } diff --git a/packages/ui/src/lazy.ts b/packages/ui/src/lazy.ts index 09d6e43660..4fcdcd9480 100644 --- a/packages/ui/src/lazy.ts +++ b/packages/ui/src/lazy.ts @@ -4,7 +4,7 @@ const observers = new Map() const entryMap = new WeakMap void }>() const delayedCaller = new DelayedCaller(5) -function makeObserver(rootMargin: string): IntersectionObserver { +function makeObserver (rootMargin: string): IntersectionObserver { const entriesPending = new Map() const notifyObservers = (observer: IntersectionObserver): void => { for (const [target, entry] of entriesPending.entries()) { @@ -36,7 +36,7 @@ function makeObserver(rootMargin: string): IntersectionObserver { return observer } -function listen(rootMargin: string, element: Element, callback: (isIntersecting: boolean) => void): () => void { +function listen (rootMargin: string, element: Element, callback: (isIntersecting: boolean) => void): () => void { let observer = observers.get(rootMargin) if (observer == null) { observer = makeObserver(rootMargin) @@ -56,7 +56,7 @@ function listen(rootMargin: string, element: Element, callback: (isIntersecting: */ export const isLazyEnabled = (): boolean => (localStorage.getItem('#platform.lazy.loading') ?? 'true') === 'true' -export function lazyObserver(node: Element, onVisible: (value: boolean, unsubscribe?: () => void) => void): any { +export function lazyObserver (node: Element, onVisible: (value: boolean, unsubscribe?: () => void) => void): any { let visible = false const lazyEnabled = isLazyEnabled() if (!lazyEnabled) { diff --git a/packages/ui/src/location.ts b/packages/ui/src/location.ts index 46b4919624..18a4f362da 100644 --- a/packages/ui/src/location.ts +++ b/packages/ui/src/location.ts @@ -21,7 +21,7 @@ import { derived, get, writable } from 'svelte/store' import { closePopup } from './popups' import { type Location as PlatformLocation } from './types' -export function locationToUrl(location: PlatformLocation): string { +export function locationToUrl (location: PlatformLocation): string { let result = '/' if (location.path != null) { result += location.path.map((p) => encodeURIComponent(p)).join('/') @@ -48,7 +48,7 @@ export function locationToUrl(location: PlatformLocation): string { return result } -export function parseLocation(location: Location | URL): PlatformLocation { +export function parseLocation (location: Location | URL): PlatformLocation { return { path: parsePath(location.pathname), query: parseQuery(location.search), @@ -56,7 +56,7 @@ export function parseLocation(location: Location | URL): PlatformLocation { } } -function parseQuery(query: string): Record | undefined { +function parseQuery (query: string): Record | undefined { query = query.trim() if (query.length === 0 || !query.startsWith('?')) { return @@ -79,7 +79,7 @@ function parseQuery(query: string): Record | undefined { return result } -function parsePath(path: string): string[] { +function parsePath (path: string): string[] { const split = path.split('/').map((ps) => decodeURIComponent(ps)) if (split.length >= 1) { if (split[0] === '') { @@ -94,7 +94,7 @@ function parsePath(path: string): string[] { return split } -function parseHash(hash: string): string { +function parseHash (hash: string): string { if (hash.startsWith('#')) { return decodeURIComponent(hash.substring(1)) } @@ -103,11 +103,11 @@ function parseHash(hash: string): string { // ------------------------ -export function getRawCurrentLocation(): PlatformLocation { +export function getRawCurrentLocation (): PlatformLocation { return parseLocation(window.location) } -export function getCurrentResolvedLocation(): PlatformLocation { +export function getCurrentResolvedLocation (): PlatformLocation { return clone(resolvedLocation) } @@ -117,7 +117,7 @@ declare global { } } -function isRunningInElectron(): boolean { +function isRunningInElectron (): boolean { // Renderer process if ( typeof window !== 'undefined' && @@ -168,19 +168,19 @@ export const workspaceId = derived(location, (loc) => loc.path[1]) /** * @public */ -export function getLocation(): PlatformLocation { +export function getLocation (): PlatformLocation { return clone(get(location)) } export const resolvedLocationStore = writable(getRawCurrentLocation()) let resolvedLocation = getRawCurrentLocation() -export function setResolvedLocation(location: PlatformLocation): void { +export function setResolvedLocation (location: PlatformLocation): void { resolvedLocation = location resolvedLocationStore.set(clone(location)) } -export function getCurrentLocation(): PlatformLocation { +export function getCurrentLocation (): PlatformLocation { if (desktopPlatform) { return clone(get(locationWritable)) } @@ -192,11 +192,11 @@ export function getCurrentLocation(): PlatformLocation { */ export let locationStorageKeyId = 'platform_last_loc' -export function setLocationStorageKey(storageKey: string): void { +export function setLocationStorageKey (storageKey: string): void { locationStorageKeyId = storageKey } -export function navigate(location: PlatformLocation, replace = false): boolean { +export function navigate (location: PlatformLocation, replace = false): boolean { closePopup() const cur = locationToUrl(getCurrentLocation()) const url = locationToUrl(location) @@ -234,18 +234,18 @@ export const setTreeCollapsed = (_id: any, collapsed: boolean, prefix?: string): collapsed ? localStorage.setItem(key, COLLAPSED) : localStorage.removeItem(key) } -export function isSameSegments(a: PlatformLocation, b: PlatformLocation, len = 2): boolean { +export function isSameSegments (a: PlatformLocation, b: PlatformLocation, len = 2): boolean { return a.path.slice(0, len).every((segment, index) => segment === b.path[index]) } -export function restoreLocation(loc: PlatformLocation, app: Plugin): void { +export function restoreLocation (loc: PlatformLocation, app: Plugin): void { const last = localStorage.getItem(`${locationStorageKeyId}_${app}`) if (last !== null) { const newLocation: PlatformLocation = JSON.parse(last) if (newLocation.path[1] === loc.path[1] && newLocation.path[3] != null) { - loc.path[3] = newLocation.path[3] as Ref + loc.path[3] = newLocation.path[3] loc.path[4] = newLocation.path[4] if (loc.path[4] == null) { loc.path.length = 4 diff --git a/packages/ui/src/panelup.ts b/packages/ui/src/panelup.ts index a44ec41314..4b06c3d655 100644 --- a/packages/ui/src/panelup.ts +++ b/packages/ui/src/panelup.ts @@ -16,7 +16,7 @@ export const panelstore = writable<{ }>({ panel: undefined }) let currentLocation: string | undefined -export function getPanelURI(component: AnyComponent, _id: string, _class: string, element?: PopupAlignment): string { +export function getPanelURI (component: AnyComponent, _id: string, _class: string, element?: PopupAlignment): string { const panelProps = [component, _id, _class] if (typeof element === 'string') { panelProps.push(element) @@ -24,7 +24,7 @@ export function getPanelURI(component: AnyComponent, _id: string, _class: string return encodeURIComponent(panelProps.join('|')) } -export function showPanel( +export function showPanel ( component: AnyComponent, _id: string, _class: string, @@ -40,7 +40,7 @@ export function showPanel( } } -function openPanel( +function openPanel ( component: AnyComponent, _id: string, _class: string, @@ -57,7 +57,7 @@ function openPanel( }) } -export function closePanel(shouldRedirect: boolean = true): void { +export function closePanel (shouldRedirect: boolean = true): void { currentLocation = undefined panelstore.update(() => { return { panel: undefined } diff --git a/packages/ui/src/popups.ts b/packages/ui/src/popups.ts index b9cc14320d..20ff6805d9 100644 --- a/packages/ui/src/popups.ts +++ b/packages/ui/src/popups.ts @@ -51,7 +51,7 @@ export const dockStore = derived(modalStore, (modals) => { return (modals.filter((m) => m.type === 'popup') as CompAndProps[]).find((popup: CompAndProps) => popup.dock) }) -export function updatePopup(id: string, props: Partial): void { +export function updatePopup (id: string, props: Partial): void { modalStore.update((modals) => { const popupIndex = (modals.filter((m) => m.type === 'popup') as CompAndProps[]).findIndex( (p: CompAndProps) => p.id === id @@ -63,14 +63,14 @@ export function updatePopup(id: string, props: Partial): void { }) } -function addPopup(props: CompAndProps): void { +function addPopup (props: CompAndProps): void { modalStore.update((modals) => { modals.push(props) return modals }) } -function checkDockPosition(refId: string | undefined): boolean { +function checkDockPosition (refId: string | undefined): boolean { if (refId !== undefined && localStorage.getItem('dock-popup') === refId) { const docked = get(dockStore) if (docked === undefined) { @@ -82,7 +82,7 @@ function checkDockPosition(refId: string | undefined): boolean { let popupId: number = 0 -function wrapPopupCallback( +function wrapPopupCallback ( callback: ((result: any) => void | Promise) | undefined ): ((result: any) => void) | undefined { if (callback === undefined) return undefined @@ -97,7 +97,7 @@ function wrapPopupCallback( } } -export function showPopup( +export function showPopup ( component: AnySvelteComponent | AnyComponent | ComponentType, props: any, element?: PopupAlignment, @@ -164,7 +164,7 @@ export function showPopup( } } -export function closePopup(category?: string): void { +export function closePopup (category?: string): void { modalStore.update((popups) => { if (category !== undefined) { popups = popups.filter((p) => p.type === 'popup' && p.options.category !== category) @@ -198,7 +198,7 @@ export function closePopup(category?: string): void { * * return boolean to show or not modal overlay. */ -export function fitPopupPositionedElement( +export function fitPopupPositionedElement ( modalHTML: HTMLElement, alignment: PopupPositionElement, newProps: Record @@ -274,7 +274,7 @@ export function fitPopupPositionedElement( * * return boolean to show or not modal overlay. */ -export function fitPopupElement( +export function fitPopupElement ( modalHTML: HTMLElement, device: DeviceOptions, element?: PopupAlignment, @@ -451,13 +451,13 @@ export function fitPopupElement( return { props: newProps, showOverlay: show, direction: '' } } -export function eventToHTMLElement(evt: MouseEvent | TouchEvent): HTMLElement { +export function eventToHTMLElement (evt: MouseEvent | TouchEvent): HTMLElement { return evt.target as HTMLElement } -export function getEventPopupPositionElement( +export function getEventPopupPositionElement ( e?: Event, - position?: { v: VerticalAlignment; h: HorizontalAlignment } + position?: { v: VerticalAlignment, h: HorizontalAlignment } ): PopupAlignment | undefined { if (e?.target == null) { return undefined @@ -466,9 +466,9 @@ export function getEventPopupPositionElement( return getPopupPositionElement(target, position) } -export function getPopupPositionElement( +export function getPopupPositionElement ( el: HTMLElement | undefined, - position?: { v: VerticalAlignment; h: HorizontalAlignment } + position?: { v: VerticalAlignment, h: HorizontalAlignment } ): PopupAlignment | undefined { if (el?.getBoundingClientRect != null) { const result = el.getBoundingClientRect() @@ -480,14 +480,14 @@ export function getPopupPositionElement( return undefined } -export function getEventPositionElement(evt: MouseEvent): PopupAlignment | undefined { +export function getEventPositionElement (evt: MouseEvent): PopupAlignment | undefined { const rect = DOMRect.fromRect({ width: 1, height: 1, x: evt.clientX, y: evt.clientY }) return { getBoundingClientRect: () => rect } } -export function pin(id: string): void { +export function pin (id: string): void { modalStore.update((popups) => { const currentPopups = popups.filter((m) => m.type === 'popup') as CompAndProps[] const current = currentPopups.find((p) => p.id === id) as CompAndProps @@ -499,7 +499,7 @@ export function pin(id: string): void { }) } -export function unpin(): void { +export function unpin (): void { modalStore.update((popups) => { ;(popups.filter((m) => m.type === 'popup') as CompAndProps[]).forEach((p) => (p.dock = false)) return popups diff --git a/packages/ui/src/resize.ts b/packages/ui/src/resize.ts index b12c1ca4b2..7eb09bb1cb 100644 --- a/packages/ui/src/resize.ts +++ b/packages/ui/src/resize.ts @@ -23,7 +23,7 @@ const delayedCaller = new DelayedCaller(10) /** * @public */ -export function resizeObserver(element: Element, onResize: (element: Element) => any): { destroy: () => void } { +export function resizeObserver (element: Element, onResize: (element: Element) => any): { destroy: () => void } { if (observer === undefined) { callbacks = new WeakMap() const entriesPending = new Set() @@ -95,7 +95,7 @@ const generateSeparatorsId = (name: string, float: string | boolean): string => return separatorsKeyId + '_' + name + (typeof float === 'string' ? '-float-' + float : '') } -export function defineSeparators(name: string, items: DefSeparators): void { +export function defineSeparators (name: string, items: DefSeparators): void { const id = generateSeparatorsId(name, false) const income = items.map((it) => it ?? nullSeparatedItem) let needAdd = true @@ -127,7 +127,7 @@ export function defineSeparators(name: string, items: DefSeparators): void { }) } -export function getSeparators(name: string, float: string | boolean): SeparatedItem[] | SeparatedItem | null { +export function getSeparators (name: string, float: string | boolean): SeparatedItem[] | SeparatedItem | null { const id = generateSeparatorsId(name, float) const saved = localStorage.getItem(id) if (saved === null) return null @@ -135,7 +135,7 @@ export function getSeparators(name: string, float: string | boolean): SeparatedI return Array.isArray(result) ? (result as SeparatedItem[]) : (result as SeparatedItem) } -export function saveSeparator( +export function saveSeparator ( name: string, float: string | boolean, separators: SeparatedItem | SeparatedItem[] diff --git a/packages/ui/src/search.ts b/packages/ui/src/search.ts index ad11bcb4e2..edba69faaf 100644 --- a/packages/ui/src/search.ts +++ b/packages/ui/src/search.ts @@ -29,7 +29,7 @@ export class LocalizedSearch { /** * Filter items based on search term with lazy translation loading */ - async filter( + async filter ( items: Array<[DropdownIntlItem, DropdownIntlItem[]]>, searchTerm: string ): Promise> { @@ -65,7 +65,7 @@ export class LocalizedSearch { /** * Get translated label, using cache or translating and caching if not found */ - private async getTranslatedLabel(label: IntlString): Promise { + private async getTranslatedLabel (label: IntlString): Promise { if (this.translatedLabels.has(label)) { return this.translatedLabels.get(label) ?? label.toLowerCase() } diff --git a/packages/ui/src/tooltips.ts b/packages/ui/src/tooltips.ts index 1c8948ae63..b4439cb1d3 100644 --- a/packages/ui/src/tooltips.ts +++ b/packages/ui/src/tooltips.ts @@ -27,7 +27,7 @@ export const tooltipstore = derived(modalStore, (modals) => { }) let toHandler: any -export function tooltip(node: HTMLElement, options?: LabelAndProps): any { +export function tooltip (node: HTMLElement, options?: LabelAndProps): any { let opt = options const show = (): void => { const shown = !!(storedValue.label !== undefined || storedValue.component !== undefined) @@ -80,7 +80,7 @@ export function tooltip(node: HTMLElement, options?: LabelAndProps): any { } return { - update(options: LabelAndProps) { + update (options: LabelAndProps) { const hadContent = hasContent(opt) const hasNowContent = hasContent(options) opt = options @@ -114,7 +114,7 @@ export function tooltip(node: HTMLElement, options?: LabelAndProps): any { } }, - destroy() { + destroy () { const currentTooltip = get(tooltipstore) if (currentTooltip?.element != null && currentTooltip.element === node) { closeTooltip() @@ -125,7 +125,7 @@ export function tooltip(node: HTMLElement, options?: LabelAndProps): any { } } -export function showTooltip( +export function showTooltip ( label: IntlString | undefined, element: HTMLElement, direction?: TooltipAlignment, @@ -171,7 +171,7 @@ export function showTooltip( }) } -export function closeTooltip(): void { +export function closeTooltip (): void { clearTimeout(toHandler) storedValue = emptyTooltip modalStore.update((old) => { diff --git a/packages/ui/src/types.ts b/packages/ui/src/types.ts index f656cfbe1e..fc168fd945 100644 --- a/packages/ui/src/types.ts +++ b/packages/ui/src/types.ts @@ -33,7 +33,7 @@ export interface ResolvedLocation { /** * Returns true if locations are equal. */ -export function areLocationsEqual(loc1: Location, loc2: Location): boolean { +export function areLocationsEqual (loc1: Location, loc2: Location): boolean { if (loc1 === loc2) { return true } @@ -239,8 +239,8 @@ export const posAlignment = [ export type PopupPosAlignment = (typeof posAlignment)[number] -export function isPopupPosAlignment(x: any): x is PopupPosAlignment { - return typeof x === 'string' && (posAlignment as typeof posAlignment).includes(x as PopupPosAlignment) +export function isPopupPosAlignment (x: any): x is PopupPosAlignment { + return typeof x === 'string' && (posAlignment).includes(x as PopupPosAlignment) } export type PopupAlignment = PopupPosAlignment | PopupPositionElement | null @@ -270,7 +270,7 @@ export interface IconProps { filled?: boolean } -export function getIconSize2x(size: IconSize): IconSize { +export function getIconSize2x (size: IconSize): IconSize { switch (size) { case 'inline': case 'tiny': @@ -389,7 +389,7 @@ export interface DeviceOptions { docHeight: number isPortrait: boolean isMobile: boolean - navigator: { visible: boolean; float: boolean; direction: 'vertical' | 'horizontal' } + navigator: { visible: boolean, float: boolean, direction: 'vertical' | 'horizontal' } fontSize: number size: WidthType | null sizes: Record diff --git a/packages/ui/src/utils.ts b/packages/ui/src/utils.ts index 77e85d1974..4c4888efbd 100644 --- a/packages/ui/src/utils.ts +++ b/packages/ui/src/utils.ts @@ -26,7 +26,7 @@ import { deviceSizes, type AnyComponent, type AnySvelteComponent, type WidthType /** * @public */ -export function setMetadataLocalStorage(id: Metadata, value: T | null): void { +export function setMetadataLocalStorage (id: Metadata, value: T | null): void { if (value != null) { localStorage.setItem(id, typeof value === 'string' ? value : JSON.stringify(value)) } else { @@ -38,7 +38,7 @@ export function setMetadataLocalStorage(id: Metadata, value: T | null): vo /** * @public */ -export function fetchMetadataLocalStorage(id: Metadata): T | null { +export function fetchMetadataLocalStorage (id: Metadata): T | null { const data = localStorage.getItem(id) if (data === null) { return null @@ -56,34 +56,34 @@ export function fetchMetadataLocalStorage(id: Metadata): T | null { /** * @public */ -export function checkMobile(): boolean { +export function checkMobile (): boolean { return /Android|webOS|iPhone|iPad|iPod|BlackBerry|Mobile|Opera Mini/i.test(navigator.userAgent) } /** * @public */ -export function isSafari(): boolean { +export function isSafari (): boolean { return /^((?!chrome|android).)*safari/i.test(navigator.userAgent.toLowerCase()) } /** * @public */ -export function checkAdaptiveMatching(size: WidthType | null, limit: WidthType): boolean { +export function checkAdaptiveMatching (size: WidthType | null, limit: WidthType): boolean { const range = new Set(deviceSizes.slice(0, deviceSizes.findIndex((ds) => ds === limit) + 1)) return size !== null ? range.has(size) : false } // TODO: Fix naming, since it doesn't floor (floorFractionDigits(2.5) === 3.0) -export function floorFractionDigits(n: number | string, amount: number): number { +export function floorFractionDigits (n: number | string, amount: number): number { return Number(Number(n).toFixed(amount)) } /** * @public */ -export function humanReadableFileSize(size: number, base: 2 | 10 = 10, fractionDigits: number = 2): string { +export function humanReadableFileSize (size: number, base: 2 | 10 = 10, fractionDigits: number = 2): string { const units = base === 10 ? ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'] @@ -98,7 +98,7 @@ export function humanReadableFileSize(size: number, base: 2 | 10 = 10, fractionD /** * @public */ -export function addNotification( +export function addNotification ( title: string, subTitle: string, component: AnyComponent | AnySvelteComponent, @@ -136,7 +136,7 @@ export function handler (target: T, op: (value: T, evt: EVT /** * @public */ -export function tableToCSV(tableId: string, separator = ','): string { +export function tableToCSV (tableId: string, separator = ','): string { const rows = document.querySelectorAll('table#' + tableId + ' tr') // Construct csv const csv: string[] = [] @@ -159,7 +159,7 @@ let attractorMy: number | undefined /** * perform mouse movement checks and call method if they was */ -export function mouseAttractor(op: () => void, diff = 2): (evt: MouseEvent) => void { +export function mouseAttractor (op: () => void, diff = 2): (evt: MouseEvent) => void { return (evt: MouseEvent) => { if (attractorMy !== undefined && attractorMx !== undefined) { const dx = evt.screenX - attractorMx @@ -187,7 +187,7 @@ export function mouseAttractor(op: () => void, diff = 2): (evt: MouseEvent) => v * @param {string} text * @returns {string} string with replaced URLs */ -export function replaceURLs(text: string): string { +export function replaceURLs (text: string): string { try { return autolinker.link(text, { urls: true, @@ -213,7 +213,7 @@ export function replaceURLs(text: string): string { * @param {string} text * @returns {string} string with parsed URL */ -export function parseURL(text: string): string { +export function parseURL (text: string): string { try { const matches = autolinker.parse(text ?? '', { urls: true }) return matches.length > 0 ? matches[0].getAnchorHref() : '' @@ -238,7 +238,7 @@ export interface IModeSelector { /** * @public */ -export function capitalizeFirstLetter(str: string): string { +export function capitalizeFirstLetter (str: string): string { return str.charAt(0).toUpperCase() + str.slice(1) } @@ -247,7 +247,7 @@ const isMac = /Macintosh/i.test(navigator.userAgent) /** * @public */ -export function formatKey(key: string): string[][] { +export function formatKey (key: string): string[][] { const thens = key.split('->') const result: string[][] = [] for (const r of thens) { @@ -268,7 +268,7 @@ export function formatKey(key: string): string[][] { return result } -export function fromCodePoint(...vals: number[]): string { +export function fromCodePoint (...vals: number[]): string { return String.fromCodePoint(...vals.map((p) => Math.abs(p) % 0x10ffff)) } @@ -277,8 +277,8 @@ export function fromCodePoint(...vals: number[]): string { */ export class DelayedCaller { op?: () => void - constructor(readonly delay: number = 10) {} - call(op: () => void): void { + constructor (readonly delay: number = 10) {} + call (op: () => void): void { const needTimer = this.op === undefined this.op = op if (needTimer) { @@ -295,8 +295,8 @@ export class DelayedCaller { */ export class ThrottledCaller { timeout?: any - constructor(readonly delay: number = 10) {} - call(op: () => void): void { + constructor (readonly delay: number = 10) {} + call (op: () => void): void { if (this.timeout === undefined) { op() this.timeout = setTimeout(() => { @@ -311,8 +311,8 @@ export class ThrottledCaller { */ export class DebouncedCaller { timeout?: any - constructor(readonly delay: number = 50) {} - call(op: () => void): void { + constructor (readonly delay: number = 50) {} + call (op: () => void): void { if (this.timeout !== undefined) { clearTimeout(this.timeout) } @@ -339,7 +339,7 @@ export const rootBarExtensions = writable< > >([]) -export async function formatDuration(duration: number, language: string): Promise { +export async function formatDuration (duration: number, language: string): Promise { let text = '' const days = Math.floor(duration / DAY) if (days > 0) { @@ -359,7 +359,7 @@ export async function formatDuration(duration: number, language: string): Promis return text } -export function formatNumberCompact(num: number, maximumFractionDigits = 2): string { +export function formatNumberCompact (num: number, maximumFractionDigits = 2): string { const locale = new Intl.NumberFormat().resolvedOptions().locale return new Intl.NumberFormat(locale, { notation: 'compact', @@ -367,7 +367,7 @@ export function formatNumberCompact(num: number, maximumFractionDigits = 2): str }).format(num) } -export function pushRootBarComponent(pos: 'left' | 'right', component: AnyComponent, order?: number): void { +export function pushRootBarComponent (pos: 'left' | 'right', component: AnyComponent, order?: number): void { rootBarExtensions.update((cur) => { if (cur.find((p) => p[1].component === component) === undefined) { cur.push([ @@ -382,7 +382,7 @@ export function pushRootBarComponent(pos: 'left' | 'right', component: AnyCompon return cur }) } -export function removeRootBarComponent(id: string): void { +export function removeRootBarComponent (id: string): void { rootBarExtensions.update((cur) => { return cur.filter((p) => p[1].id !== id) }) @@ -397,7 +397,7 @@ export const navFooterExtensions = writable< }> >([]) -export function pushNavFooterComponent(component: AnyComponent, order?: number): void { +export function pushNavFooterComponent (component: AnyComponent, order?: number): void { navFooterExtensions.update((cur) => { if (cur.find((p) => p.component === component) === undefined) { cur.push({ @@ -410,11 +410,11 @@ export function pushNavFooterComponent(component: AnyComponent, order?: number): }) } -export function removeNavFooterComponent(id: string): void { +export function removeNavFooterComponent (id: string): void { navFooterExtensions.update((cur) => cur.filter((p) => p.id !== id)) } -export function pushRootBarProgressComponent( +export function pushRootBarProgressComponent ( id: string, label: IntlString, // In case onProgress return value >=100, it will be closed diff --git a/plugins/activity/src/index.ts b/plugins/activity/src/index.ts index 92ff57b0cb..54df4aba3f 100644 --- a/plugins/activity/src/index.ts +++ b/plugins/activity/src/index.ts @@ -137,12 +137,12 @@ export interface DocAttributeUpdates { export type DocUpdateAction = 'create' | 'update' | 'remove' export type DocUpdateMessageViewletAttributesConfig = Record< -string, -{ - presenter?: AnyComponent - icon?: Asset - iconPresenter?: AnyComponent -} + string, + { + presenter?: AnyComponent + icon?: Asset + iconPresenter?: AnyComponent + } > /** @@ -351,7 +351,7 @@ export default plugin(activityId, { function: { ShouldScrollToActivity: '' as Resource<() => boolean>, ActivityMessageTooltipProvider: '' as Resource< - (client: Client, doc?: Doc | null) => Promise + (client: Client, doc?: Doc | null) => Promise > }, backreference: { diff --git a/plugins/bitrix/src/sync.ts b/plugins/bitrix/src/sync.ts index aa28e791d0..505aadab2b 100644 --- a/plugins/bitrix/src/sync.ts +++ b/plugins/bitrix/src/sync.ts @@ -72,7 +72,7 @@ async function updateMixin ( // We need to update fields if they are different. if (!client.getHierarchy().hasMixin(doc, mixin)) { - await client.createMixin(doc._id, doc._class, doc.space, mixin, raw as MixinData, modifiedOn, modifiedBy) + await client.createMixin(doc._id, doc._class, doc.space, mixin, raw, modifiedOn, modifiedBy) return doc } @@ -982,7 +982,7 @@ async function synchronizeUsers ( // } // ) } else if (account != null) { - const emp = employees.get(account.person as unknown as Ref) + const emp = employees.get(account.person) if (emp !== undefined && !ops.client.getHierarchy().hasMixin(emp, bitrix.mixin.BitrixSyncDoc)) { await ops.client.createMixin(emp._id, emp._class, emp.space, bitrix.mixin.BitrixSyncDoc, { type: 'employee', diff --git a/plugins/bitrix/src/types.ts b/plugins/bitrix/src/types.ts index 91e16a50e7..b7498a468e 100644 --- a/plugins/bitrix/src/types.ts +++ b/plugins/bitrix/src/types.ts @@ -304,12 +304,12 @@ export interface BitrixFieldMapping extends AttachedDoc { attributeName: string operation: - | CopyValueOperation - | CreateTagOperation - | CreateChannelOperation - | DownloadAttachmentOperation - | FindReferenceOperation - | CreateHRApplication + | CopyValueOperation + | CreateTagOperation + | CreateChannelOperation + | DownloadAttachmentOperation + | FindReferenceOperation + | CreateHRApplication } /** @@ -361,19 +361,19 @@ export interface BitrixActivity { * @public */ export type BitrixFiles = Record< -string, -{ - authorId: string - authorName: string - date: string - id: number - image: boolean - name: string - size: number - type: string - urlDownload: string - urlShow: string -} + string, + { + authorId: string + authorName: string + date: string + id: number + image: boolean + name: string + size: number + type: string + urlDownload: string + urlShow: string + } > /** diff --git a/plugins/chunter/src/index.ts b/plugins/chunter/src/index.ts index 0bd96810fe..de7c42f511 100644 --- a/plugins/chunter/src/index.ts +++ b/plugins/chunter/src/index.ts @@ -236,24 +236,24 @@ export default plugin(chunterId, { CanTranslateMessage: '' as Resource<(doc?: Doc | Doc[]) => Promise>, CanSummarizeMessages: '' as Resource<(doc?: Doc | Doc[]) => Promise>, OpenThreadInSidebar: '' as Resource< - ( - _id: Ref, - msg?: ActivityMessage, - doc?: Doc, - selectedId?: Ref, - props?: Record, - force?: boolean - ) => Promise + ( + _id: Ref, + msg?: ActivityMessage, + doc?: Doc, + selectedId?: Ref, + props?: Record, + force?: boolean + ) => Promise >, OpenChannelInSidebar: '' as Resource< - ( - _id: Ref, - _class: Ref>, - doc?: Doc, - thread?: Ref, - newTab?: boolean, - selectedMessageId?: Ref - ) => Promise + ( + _id: Ref, + _class: Ref>, + doc?: Doc, + thread?: Ref, + newTab?: boolean, + selectedMessageId?: Ref + ) => Promise > } }) diff --git a/plugins/contact/src/utils.ts b/plugins/contact/src/utils.ts index eceb5ae392..835dc8ab1c 100644 --- a/plugins/contact/src/utils.ts +++ b/plugins/contact/src/utils.ts @@ -247,7 +247,7 @@ export async function findContacts ( */ export async function findPerson (client: Client, name: string, channels: AttachedData[]): Promise { const result = await findContacts(client, contact.class.Person, name, channels) - return result.contacts as Person[] + return result.contacts } const SEP = ',' diff --git a/plugins/controlled-documents/src/docutils.ts b/plugins/controlled-documents/src/docutils.ts index 253903d768..1e335e09bb 100644 --- a/plugins/controlled-documents/src/docutils.ts +++ b/plugins/controlled-documents/src/docutils.ts @@ -32,7 +32,7 @@ import { makeRank } from '@hcengineering/rank' import documents from './plugin' import { getDocumentId, getFirstRank, TEMPLATE_PREFIX } from './utils' -async function getParentPath(client: TxOperations, parent: Ref): Promise>> { +async function getParentPath (client: TxOperations, parent: Ref): Promise>> { const parentDocObj = await client.findOne(documents.class.ProjectDocument, { _id: parent }) @@ -54,7 +54,7 @@ async function getParentPath(client: TxOperations, parent: Ref) return [parentMeta.meta, ...parentMeta.path] } -export async function createControlledDocFromTemplate( +export async function createControlledDocFromTemplate ( client: TxOperations, templateId: Ref | undefined, documentId: Ref, @@ -63,7 +63,7 @@ export async function createControlledDocFromTemplate( project: Ref | undefined, parent: Ref | undefined, docClass: Ref> = documents.class.ControlledDocument -): Promise<{ seqNumber: number; success: boolean }> { +): Promise<{ seqNumber: number, success: boolean }> { if (templateId == null) { return { seqNumber: -1, success: false } } @@ -137,7 +137,7 @@ export async function createControlledDocFromTemplate( /** * Calculate the next available seqNumber by checking existing documents with the template. */ -async function calculateNextSeqNumberWithCheck( +async function calculateNextSeqNumberWithCheck ( client: TxOperations, templateId: Ref, currentTemplateSequence: number @@ -157,11 +157,11 @@ async function calculateNextSeqNumberWithCheck( return Math.max(currentTemplateSequence, maxExistingSeqNumber) + 1 } -export async function useDocumentTemplate( +export async function useDocumentTemplate ( client: TxOperations, templateId: Ref, checkExisting: boolean = false -): Promise<{ seqNumber: number; prefix: string; content: Ref | null; category: Ref }> { +): Promise<{ seqNumber: number, prefix: string, content: Ref | null, category: Ref }> { const template = await client.findOne(documents.mixin.DocumentTemplate, { _id: templateId }) @@ -193,7 +193,7 @@ export async function useDocumentTemplate( } } -export async function createControlledDocMetadata( +export async function createControlledDocMetadata ( client: TxOperations, templateId: Ref, documentId: Ref, @@ -285,7 +285,7 @@ export async function createControlledDocMetadata( return { success: success.result, seqNumber, documentMetaId, projectDocumentId } } -export async function createDocumentTemplate( +export async function createDocumentTemplate ( client: TxOperations, _class: Ref>, space: Ref, @@ -357,7 +357,7 @@ export async function createDocumentTemplate( return { seqNumber, success: commit.result } } -export async function createDocumentTemplateMetadata( +export async function createDocumentTemplateMetadata ( client: TxOperations, _class: Ref>, space: Ref, @@ -469,7 +469,7 @@ export async function createDocumentTemplateMetadata( return { success: success.result, seqNumber, code, documentMetaId, projectDocumentId } } -export async function createNewFolder( +export async function createNewFolder ( client: TxOperations, space: Ref, project: Ref | undefined, diff --git a/plugins/controlled-documents/src/types.ts b/plugins/controlled-documents/src/types.ts index 1393afef08..5b1fe8b3b8 100644 --- a/plugins/controlled-documents/src/types.ts +++ b/plugins/controlled-documents/src/types.ts @@ -300,5 +300,5 @@ export interface DocumentAttachment extends Attachment { // 'referenced' - copied from a previous version/template, removal is a soft mark state?: DocumentAttachmentState // null clears a prior soft-delete mark (restore); all reads use `deletedIn != null`. - deletedIn?: { major: number; minor: number } | null + deletedIn?: { major: number, minor: number } | null } diff --git a/plugins/controlled-documents/src/utils.ts b/plugins/controlled-documents/src/utils.ts index d6bf895aea..8a8dd3a4d7 100644 --- a/plugins/controlled-documents/src/utils.ts +++ b/plugins/controlled-documents/src/utils.ts @@ -82,7 +82,7 @@ export const calcRank = (prev?: { rank: string }, next?: { rank: string }): stri /** * @public */ -export async function createChangeControl( +export async function createChangeControl ( client: TxOperations, ccId: Ref, ccSpec: Data, @@ -94,7 +94,7 @@ export async function createChangeControl( /** * @public */ -export function getDocumentId(document: Pick): string { +export function getDocumentId (document: Pick): string { return `${document.prefix}-${document.seqNumber}` } @@ -102,7 +102,7 @@ export function getDocumentId(document: Pick): const documentIdRegExp = /^(?\w+)-(?\d+)$/ /** @public */ -export function matchDocumentId(str: string): Pick | null { +export function matchDocumentId (str: string): Pick | null { const match = str.match(documentIdRegExp) if (match?.groups?.prefix === undefined || match.groups.seqNumber === undefined) { return null @@ -116,7 +116,7 @@ export function matchDocumentId(str: string): Pick): Promise { +export async function deleteProjectDrafts (client: ApplyOperations, source: Ref): Promise { const projectDocs = await client.findAll(documents.class.ProjectDocument, { project: source }) const toDelete = await client.findAll(documents.class.Document, { @@ -141,7 +141,7 @@ export async function deleteProjectDrafts(client: ApplyOperations, source: Ref

): boolean { +export function isCollaborator (doc: ControlledDocument, person: Ref): boolean { return ( doc.owner === person || doc.coAuthors.includes(person) || @@ -150,15 +150,15 @@ export function isCollaborator(doc: ControlledDocument, person: Ref): ) } -export function isFolder(doc: ProjectDocument | undefined): boolean { +export function isFolder (doc: ProjectDocument | undefined): boolean { return doc !== undefined && doc.document === documents.ids.Folder } -function getDocumentSortSequence(doc: ControlledDocument | undefined): number[] { +function getDocumentSortSequence (doc: ControlledDocument | undefined): number[] { return doc !== undefined ? [doc.seqNumber, doc.major, doc.minor, doc.createdOn ?? 0] : [0, 0, 0, 0] } -export function compareDocumentVersions( +export function compareDocumentVersions ( doc1: ControlledDocument | undefined, doc2: ControlledDocument | undefined ): number { @@ -167,7 +167,7 @@ export function compareDocumentVersions( return s0.reduce((r, v, i) => (r !== 0 ? r : s1[i] - v), 0) } -function extractPresentableStateFromDocumentBundle(bundle: DocumentBundle, prjmeta: ProjectMeta): DocumentBundle { +function extractPresentableStateFromDocumentBundle (bundle: DocumentBundle, prjmeta: ProjectMeta): DocumentBundle { bundle = { ...bundle } const person = getCurrentEmployee() @@ -205,7 +205,7 @@ export class ProjectDocumentTree { nodes: Map, DocumentBundle> links: Map, Ref> - constructor(bundle?: DocumentBundle, options?: ProjectDocumentTreeOptions) { + constructor (bundle?: DocumentBundle, options?: ProjectDocumentTreeOptions) { bundle = { ...emptyBundle(), ...bundle } const { bundles, links } = compileBundles(bundle) this.links = links @@ -273,12 +273,12 @@ export class ProjectDocumentTree { } } - metaOf(ref: Ref | undefined): Ref | undefined { + metaOf (ref: Ref | undefined): Ref | undefined { if (ref === undefined) return return this.links.get(ref) } - parentChainOf(ref: Ref | undefined): Ref[] { + parentChainOf (ref: Ref | undefined): Ref[] { if (ref === undefined) return [] // Found a bug that can cause path field to contain invalid state, // until we fix it with migration and a separate fix it's better to use parent. @@ -292,24 +292,24 @@ export class ProjectDocumentTree { return parents } - parentOf(ref: Ref | undefined): Ref { + parentOf (ref: Ref | undefined): Ref { if (ref === undefined) { return documents.ids.NoParent } return this.parents.get(ref) ?? documents.ids.NoParent } - bundleOf(ref: Ref | undefined): DocumentBundle | undefined { + bundleOf (ref: Ref | undefined): DocumentBundle | undefined { if (ref === undefined) return return this.nodes.get(ref) } - childrenOf(ref: Ref | undefined): Ref[] { + childrenOf (ref: Ref | undefined): Ref[] { if (ref === undefined) return [] return this.nodesChildren.get(ref)?.map((p) => p.ProjectMeta[0].meta) ?? [] } - descendantsOf(parent: Ref): Ref[] { + descendantsOf (parent: Ref): Ref[] { const result: Ref[] = [] const queue: Ref[] = [parent] @@ -327,7 +327,7 @@ export class ProjectDocumentTree { } } -export async function findProjectDocsHierarchy( +export async function findProjectDocsHierarchy ( client: TxOperations, space: Ref, project?: Ref> @@ -353,7 +353,7 @@ export interface DocumentBundle { Attachment: Attachment[] } -export function emptyBundle(): DocumentBundle { +export function emptyBundle (): DocumentBundle { return { DocumentMeta: [], ProjectMeta: [], @@ -368,7 +368,7 @@ export function emptyBundle(): DocumentBundle { } } -export function compileBundles(all: DocumentBundle): { +export function compileBundles (all: DocumentBundle): { bundles: DocumentBundle[] links: Map, Ref> } { @@ -408,13 +408,13 @@ export function compileBundles(all: DocumentBundle): { return { bundles: Array.from(bundles.values()), links } } -export async function findAllDocumentBundles( +export async function findAllDocumentBundles ( client: TxOperations, ids: Ref[] ): Promise { const all: DocumentBundle = { ...emptyBundle() } - async function crawl( + async function crawl ( _class: Ref>, bkey: keyof DocumentBundle, prop: P, @@ -488,7 +488,7 @@ export async function findAllDocumentBundles( return compileBundles(all).bundles } -export async function findOneDocumentBundle( +export async function findOneDocumentBundle ( client: TxOperations, id: Ref ): Promise { @@ -519,7 +519,7 @@ interface DocumentTransferContext { targetParentBundle?: DocumentBundle } -async function _buildDocumentTransferContext( +async function _buildDocumentTransferContext ( client: TxOperations, request: DocumentTransferRequest ): Promise { @@ -561,7 +561,7 @@ async function _buildDocumentTransferContext( } } -export async function listDocumentsAffectedByTransfer( +export async function listDocumentsAffectedByTransfer ( client: TxOperations, req: DocumentTransferRequest ): Promise { @@ -572,7 +572,7 @@ export async function listDocumentsAffectedByTransfer( /** * @public */ -export async function canTransferDocuments(client: TxOperations, req: DocumentTransferRequest): Promise { +export async function canTransferDocuments (client: TxOperations, req: DocumentTransferRequest): Promise { const cx = await _buildDocumentTransferContext(client, req) return cx !== undefined ? await _transferDocuments(client, cx, 'check') : false } @@ -580,12 +580,12 @@ export async function canTransferDocuments(client: TxOperations, req: DocumentTr /** * @public */ -export async function transferDocuments(client: TxOperations, req: DocumentTransferRequest): Promise { +export async function transferDocuments (client: TxOperations, req: DocumentTransferRequest): Promise { const cx = await _buildDocumentTransferContext(client, req) return cx !== undefined ? await _transferDocuments(client, cx) : false } -async function _transferDocuments( +async function _transferDocuments ( client: TxOperations, cx: DocumentTransferContext, mode: 'default' | 'check' = 'default' @@ -620,7 +620,7 @@ async function _transferDocuments( const roots = new Set(cx.request.sourceDocumentIds) const updates = new Map>() - function update(document: T, update: Partial): void { + function update (document: T, update: Partial): void { updates.set(document, { ...updates.get(document), ...update }) } @@ -688,7 +688,7 @@ export interface DocumentValidationState { /** * @public */ -export async function copyProjectDocuments( +export async function copyProjectDocuments ( client: ApplyOperations, source: Ref, target: Ref @@ -736,7 +736,7 @@ export async function copyProjectDocuments( /** * @public */ -export async function getFirstRank( +export async function getFirstRank ( client: TxOperations, space: Ref, project: Ref, @@ -756,7 +756,7 @@ export async function getFirstRank( /** * @public */ -export function getEffectiveDocUpdates(): DocumentUpdate[] { +export function getEffectiveDocUpdates (): DocumentUpdate[] { return [ { state: DocumentState.Effective, @@ -771,7 +771,7 @@ export function getEffectiveDocUpdates(): DocumentUpdate[] { /** * @public */ -export function getDocumentName(doc: Document): string { +export function getDocumentName (doc: Document): string { return `${doc.code} ${doc.title}` } diff --git a/plugins/converter/src/index.ts b/plugins/converter/src/index.ts index 2e477cc74b..fed0969edd 100644 --- a/plugins/converter/src/index.ts +++ b/plugins/converter/src/index.ts @@ -15,7 +15,7 @@ import { converterPlugin, converterId } from './plugin' -export * from './types' +export type * from './types' export { converterId } diff --git a/plugins/converter/src/plugin.ts b/plugins/converter/src/plugin.ts index 9c2a4d286e..90aa3f3111 100644 --- a/plugins/converter/src/plugin.ts +++ b/plugins/converter/src/plugin.ts @@ -35,7 +35,7 @@ export const converterPlugin = plugin(converterId, { CopyAsMarkdownTable: '' as Resource, CopyRelationshipAsMarkdown: '' as Resource, BuildMarkdownTableFromMetadata: '' as Resource< - (docs: Doc[], metadata: BuildMarkdownTableMetadata, client: Client) => Promise + (docs: Doc[], metadata: BuildMarkdownTableMetadata, client: Client) => Promise >, BuildMarkdownTableFromDocs: '' as Resource< (docs: Doc[], props: CopyAsMarkdownTableProps, client: Client) => Promise diff --git a/plugins/desktop-downloads/src/index.ts b/plugins/desktop-downloads/src/index.ts index 43a0854e6a..3d758c4425 100644 --- a/plugins/desktop-downloads/src/index.ts +++ b/plugins/desktop-downloads/src/index.ts @@ -15,7 +15,7 @@ import { desktopDownloadsId, desktopDownloadsPlugin } from './plugin' -export * from './types' +export type * from './types' export * from './utils' export { desktopDownloadsId } diff --git a/plugins/desktop-preferences-resources/src/components/DesktopPreferencesPresenter.svelte b/plugins/desktop-preferences-resources/src/components/DesktopPreferencesPresenter.svelte index 2b6eda72c6..efa2df8492 100644 --- a/plugins/desktop-preferences-resources/src/components/DesktopPreferencesPresenter.svelte +++ b/plugins/desktop-preferences-resources/src/components/DesktopPreferencesPresenter.svelte @@ -11,7 +11,7 @@ doUpdate('playSound', false) } - async function doUpdate (propName: PreferenceKey, value: any): Promise { + async function doUpdate(propName: PreferenceKey, value: any): Promise { if ('_id' in $activePreferences) { await client.update($activePreferences, { [propName]: value }) } else { @@ -24,7 +24,7 @@ } const client = getClient() - function updater (propName: PreferenceKey) { + function updater(propName: PreferenceKey) { return (e: CustomEvent) => { doUpdate(propName, e.detail) } diff --git a/plugins/document/src/index.ts b/plugins/document/src/index.ts index 1a3cbecad8..0d5950a891 100644 --- a/plugins/document/src/index.ts +++ b/plugins/document/src/index.ts @@ -16,7 +16,7 @@ import { documentId, documentPlugin } from './plugin' export * from './analytics' -export * from './types' +export type * from './types' export * from './utils' export { documentId } diff --git a/plugins/emoji/src/plugin.ts b/plugins/emoji/src/plugin.ts index bc38994a4f..e5ba946db6 100644 --- a/plugins/emoji/src/plugin.ts +++ b/plugins/emoji/src/plugin.ts @@ -88,7 +88,7 @@ export const emojiPlugin = plugin(emojiId, { functions: { GetEmojiByEmoticon: '' as Resource<(emoticon: string | undefined) => string | undefined>, GetEmojiByShortCode: '' as Resource< - (shortcode: string | undefined, skinTone?: number) => ExtendedEmoji | undefined + (shortcode: string | undefined, skinTone?: number) => ExtendedEmoji | undefined >, GetCustomEmoji: '' as Resource<(shortcode: string | undefined, skinTone?: number) => CustomEmoji | undefined>, ParseTextWithEmojis: '' as Resource<(text: string) => ParsedTextWithEmojis> diff --git a/plugins/emoji/src/utils.ts b/plugins/emoji/src/utils.ts index 24fd921d96..4b297c16d6 100644 --- a/plugins/emoji/src/utils.ts +++ b/plugins/emoji/src/utils.ts @@ -40,9 +40,9 @@ export const emoticonGlobalRegex = new RegExp(EMOTICON_REGEX.source, EMOTICON_RE export const shortcodeRegex = new RegExp(`(?:^|\\s)(${SHORTCODE_REGEX.source})$`) export const shortcodeGlobalRegex = new RegExp(SHORTCODE_REGEX.source, SHORTCODE_REGEX.flags + 'g') -async function fetchEmojis (locale: Locale, options: FetchEmojisOptions & { compact: true }): Promise +async function fetchEmojis(locale: Locale, options: FetchEmojisOptions & { compact: true }): Promise -async function fetchEmojis (locale: Locale, options?: FetchEmojisOptions & { compact?: false }): Promise +async function fetchEmojis(locale: Locale, options?: FetchEmojisOptions & { compact?: false }): Promise async function fetchEmojis (locale: Locale, options: FetchEmojisExpandedOptions = {}): Promise { const { compact = false, shortcodes: presets = [] } = options diff --git a/plugins/global-profile-resources/src/components/EditGlobalProfilePopup.svelte b/plugins/global-profile-resources/src/components/EditGlobalProfilePopup.svelte index 7fdf3a9fde..d97c074583 100644 --- a/plugins/global-profile-resources/src/components/EditGlobalProfilePopup.svelte +++ b/plugins/global-profile-resources/src/components/EditGlobalProfilePopup.svelte @@ -65,7 +65,7 @@ editBio.trim() !== bio || editIsPublic !== isPublic) - function handleSave (): void { + function handleSave(): void { if (!canSubmit) return dispatch('update', { @@ -79,7 +79,7 @@ dispatch('close') } - function handleCancel (): void { + function handleCancel(): void { dispatch('close') } diff --git a/plugins/global-profile-resources/src/components/GlobalProfileApp.svelte b/plugins/global-profile-resources/src/components/GlobalProfileApp.svelte index 8ff82cfd6b..a207d43209 100644 --- a/plugins/global-profile-resources/src/components/GlobalProfileApp.svelte +++ b/plugins/global-profile-resources/src/components/GlobalProfileApp.svelte @@ -81,7 +81,7 @@ $: avatarColor = getAvatarColorForId(userId ?? '', $themeStore.dark) $: location = profile != null ? getLocation(profile) : '' - function handleEdit (): void { + function handleEdit(): void { if (profile == null || !isMyProfile) return showPopup( diff --git a/plugins/login/src/index.ts b/plugins/login/src/index.ts index 2c08b6c6bd..62265ca7e9 100644 --- a/plugins/login/src/index.ts +++ b/plugins/login/src/index.ts @@ -109,24 +109,24 @@ export default plugin(loginId, { SendInvite: '' as Resource<(email: string, role: AccountRole) => Promise>, ResendInvite: '' as Resource<(email: string, role: AccountRole) => Promise>, GetInviteLink: '' as Resource< - ( - expHours: number, - mask: string, - limit: number | undefined, - role: AccountRole, - navigateUrl?: string - ) => Promise + ( + expHours: number, + mask: string, + limit: number | undefined, + role: AccountRole, + navigateUrl?: string + ) => Promise >, LeaveWorkspace: '' as Resource<(account: string) => Promise>, CheckHasPassword: '' as Resource<() => Promise>, ChangePassword: '' as Resource<(oldPassword: string, password: string) => Promise>, RequestPasswordSetup: '' as Resource<() => Promise>, SelectWorkspace: '' as Resource< - ( - workspace: string, - token: string | null | undefined, - doNavigate?: boolean | undefined // Default to true - ) => Promise<[Status, WorkspaceLoginInfo | undefined, boolean]> + ( + workspace: string, + token: string | null | undefined, + doNavigate?: boolean | undefined // Default to true + ) => Promise<[Status, WorkspaceLoginInfo | undefined, boolean]> >, ExchangeGuestToken: '' as Resource<(token: string) => Promise>, FetchWorkspace: '' as Resource<() => Promise<[Status, WorkspaceInfoWithStatus | undefined, boolean]>>, diff --git a/plugins/love/src/utils.ts b/plugins/love/src/utils.ts index 3299f7bb92..bb9b05ab3b 100644 --- a/plugins/love/src/utils.ts +++ b/plugins/love/src/utils.ts @@ -203,9 +203,9 @@ export function getFreePosition ( width: number, height: number ): { - x: number - y: number - } { + x: number + y: number +} { const map: boolean[][] = getFreeSpace(rooms) for (let y = 0; y <= map.length; y++) { diff --git a/plugins/media/src/index.ts b/plugins/media/src/index.ts index 866b202476..03f7498722 100644 --- a/plugins/media/src/index.ts +++ b/plugins/media/src/index.ts @@ -15,7 +15,7 @@ import { mediaId, mediaPlugin } from './plugin' -export * from './types' +export type * from './types' export * from './utils' export { mediaId } diff --git a/plugins/notification/src/index.ts b/plugins/notification/src/index.ts index 4a81d64179..a6dfeda6cb 100644 --- a/plugins/notification/src/index.ts +++ b/plugins/notification/src/index.ts @@ -44,7 +44,7 @@ import { PersonSpace } from '@hcengineering/contact' import { Readable, Writable } from './types' -export * from './types' +export type * from './types' export const DOMAIN_NOTIFICATION = 'notification' as Domain export const DOMAIN_DOC_NOTIFY = 'notification-dnc' as Domain diff --git a/plugins/presence/src/index.ts b/plugins/presence/src/index.ts index 06c114f9ae..0a1ef50fbd 100644 --- a/plugins/presence/src/index.ts +++ b/plugins/presence/src/index.ts @@ -15,7 +15,7 @@ import { presenceId, presencePlugin } from './plugin' -export * from './types' +export type * from './types' export { presenceId } export default presencePlugin diff --git a/plugins/process/src/index.ts b/plugins/process/src/index.ts index 9568ea8602..74fc7dc35e 100644 --- a/plugins/process/src/index.ts +++ b/plugins/process/src/index.ts @@ -158,7 +158,7 @@ export interface ApproveRequest extends ProcessToDo { export type MethodParams = { [P in keyof T]?: ObjQueryType | string } & DocumentUpdate & -Record + Record export interface State extends Doc { process: Ref @@ -237,7 +237,7 @@ export interface UpdateCriteriaComponent extends Doc { export * from './dslContext' export * from './errors' -export * from './types' +export type * from './types' export * from './utils' export default plugin(processId, { diff --git a/plugins/pulse/src/index.ts b/plugins/pulse/src/index.ts index 194a5a2ff2..336ea9ae9a 100644 --- a/plugins/pulse/src/index.ts +++ b/plugins/pulse/src/index.ts @@ -15,6 +15,6 @@ import pulsePlugin, { pulseId } from './plugin' -export * from './types' +export type * from './types' export { pulseId } export default pulsePlugin diff --git a/plugins/questions/src/doc-types/index.ts b/plugins/questions/src/doc-types/index.ts index 75dd1160df..943b3fdcc5 100644 --- a/plugins/questions/src/doc-types/index.ts +++ b/plugins/questions/src/doc-types/index.ts @@ -2,8 +2,8 @@ // Copyright @ 2024 Hardcore Engineering Inc. // -export * from './base' -export * from './mixin' -export * from './questions/MultipleChoice' -export * from './questions/Ordering' -export * from './questions/SingleChoice' +export type * from './base' +export type * from './mixin' +export type * from './questions/MultipleChoice' +export type * from './questions/Ordering' +export type * from './questions/SingleChoice' diff --git a/plugins/questions/src/doc-types/mixin.ts b/plugins/questions/src/doc-types/mixin.ts index 7832423240..6a49fa9a54 100644 --- a/plugins/questions/src/doc-types/mixin.ts +++ b/plugins/questions/src/doc-types/mixin.ts @@ -27,7 +27,7 @@ export interface QuestionDataPresenterProps> { } export type QuestionDataPresenter> = ComponentType< -SvelteComponent> + SvelteComponent> > /** @public */ @@ -60,7 +60,7 @@ export interface AnswerDataEditorProps, A extends Answer /** @public */ export type AnswerDataEditor, A extends Answer> = ComponentType< -SvelteComponent> + SvelteComponent> > /** @public */ @@ -73,7 +73,7 @@ export interface AnswerDataPresenterProps, A extends Ans /** @public */ export type AnswerDataPresenter, A extends Answer> = ComponentType< -SvelteComponent> + SvelteComponent> > /** @public */ diff --git a/plugins/questions/src/index.ts b/plugins/questions/src/index.ts index 2553f55df0..f1ef959beb 100644 --- a/plugins/questions/src/index.ts +++ b/plugins/questions/src/index.ts @@ -38,7 +38,7 @@ import type { /** @public */ export const questionsId = 'questions' as Plugin -export * from './doc-types' +export type * from './doc-types' /** @public */ export default plugin(questionsId, { diff --git a/plugins/recruit/src/index.ts b/plugins/recruit/src/index.ts index 8bcd3607b8..08dd8fb861 100644 --- a/plugins/recruit/src/index.ts +++ b/plugins/recruit/src/index.ts @@ -21,7 +21,7 @@ import { AnyComponent, Location, ResolvedLocation } from '@hcengineering/ui' import type { Applicant, ApplicantMatch, Candidate, Opinion, Review, Vacancy, VacancyList } from './types' import { Action } from '@hcengineering/view' -export * from './types' +export type * from './types' export * from './analytics' /** diff --git a/plugins/setting/src/index.ts b/plugins/setting/src/index.ts index d7a65ffeac..52f303683f 100644 --- a/plugins/setting/src/index.ts +++ b/plugins/setting/src/index.ts @@ -33,7 +33,7 @@ import { type Integration as AccountIntegration } from '@hcengineering/account-c import { SpaceTypeCreator, SpaceTypeEditor } from './spaceTypeEditor' -export * from './spaceTypeEditor' +export type * from './spaceTypeEditor' export * from './utils' export * from './analytics' diff --git a/plugins/sign/src/utils.ts b/plugins/sign/src/utils.ts index a4fdb84b24..3adfb11cf0 100644 --- a/plugins/sign/src/utils.ts +++ b/plugins/sign/src/utils.ts @@ -6,7 +6,7 @@ import { getMetadata } from '@hcengineering/platform' import sign from './plugin' -export function getSignBaseURL(): string { +export function getSignBaseURL (): string { const endpoint = getMetadata(sign.metadata.SignURL) if (endpoint === undefined || endpoint === '') { @@ -16,7 +16,7 @@ export function getSignBaseURL(): string { return endpoint } -export async function signPDF(file: string, token: string): Promise { +export async function signPDF (file: string, token: string): Promise { if (token === '') { return '' } diff --git a/plugins/support/src/index.ts b/plugins/support/src/index.ts index fd51cc544c..754748df5a 100644 --- a/plugins/support/src/index.ts +++ b/plugins/support/src/index.ts @@ -18,7 +18,7 @@ import type { Asset, IntlString, Plugin, Resource } from '@hcengineering/platfor import { plugin, Metadata } from '@hcengineering/platform' import { SupportClientFactory, SupportConversation, SupportSystem } from './types' -export * from './types' +export type * from './types' export { deleteSupportConversation, updateSupportConversation } from './utils' export const supportLink = 'https://link.huly.io/slack' diff --git a/plugins/support/src/utils.ts b/plugins/support/src/utils.ts index 0852baa1d4..b4cfc79fed 100644 --- a/plugins/support/src/utils.ts +++ b/plugins/support/src/utils.ts @@ -20,7 +20,7 @@ import support from '.' /** * @public */ -export async function updateSupportConversation( +export async function updateSupportConversation ( client: TxOperations, account: PersonId, conversationId: string, @@ -45,7 +45,7 @@ export async function updateSupportConversation( /** * @public */ -export async function deleteSupportConversation( +export async function deleteSupportConversation ( client: TxOperations, account: PersonId, conversationId: string diff --git a/plugins/text-editor-resources/src/command/deleteAttachment.ts b/plugins/text-editor-resources/src/command/deleteAttachment.ts index c4a87798fa..7596e40e54 100644 --- a/plugins/text-editor-resources/src/command/deleteAttachment.ts +++ b/plugins/text-editor-resources/src/command/deleteAttachment.ts @@ -27,20 +27,20 @@ declare module '@tiptap/core' { export const deleteAttachment: RawCommands['deleteAttachment'] = (id: string) => - ({ tr, dispatch }) => { - if (dispatch !== undefined) { - const nodeWithPos = findChildren(tr.doc, (node) => { - return ( - (node.type.name === FileNode.name && node.attrs['file-id'] === id) || + ({ tr, dispatch }) => { + if (dispatch !== undefined) { + const nodeWithPos = findChildren(tr.doc, (node) => { + return ( + (node.type.name === FileNode.name && node.attrs['file-id'] === id) || (node.type.name === ImageNode.name && node.attrs['file-id'] === id) - ) + ) + }) + nodeWithPos + .sort((a, b) => b.pos - a.pos) + .forEach(({ node, pos }) => { + tr.delete(pos, pos + node.nodeSize) }) - nodeWithPos - .sort((a, b) => b.pos - a.pos) - .forEach(({ node, pos }) => { - tr.delete(pos, pos + node.nodeSize) - }) - } - - return true } + + return true + } diff --git a/plugins/text-editor-resources/src/components/CollaborationDiffViewer.svelte b/plugins/text-editor-resources/src/components/CollaborationDiffViewer.svelte index 9e738b4cb5..a6843b3922 100644 --- a/plugins/text-editor-resources/src/components/CollaborationDiffViewer.svelte +++ b/plugins/text-editor-resources/src/components/CollaborationDiffViewer.svelte @@ -43,14 +43,14 @@ $: ydocCopy = copyYdoc(ydoc) - function copyYdoc (ydoc: Ydoc): Ydoc { + function copyYdoc(ydoc: Ydoc): Ydoc { const copy = new Ydoc() const update = encodeStateAsUpdate(ydoc) applyUpdate(copy, update) return copy } - function updateEditor (editor: Editor, ydoc: Ydoc, field?: string): void { + function updateEditor(editor: Editor, ydoc: Ydoc, field?: string): void { const r = calculateDecorations(editor, oldContent, createYdocDocument(editor.schema, ydoc, field)) if (r !== undefined) { oldContent = r.oldContent @@ -65,12 +65,12 @@ } const DecorationExtension = Extension.create({ - addProseMirrorPlugins () { + addProseMirrorPlugins() { return [ new Plugin({ key: new PluginKey('diffs'), props: { - decorations () { + decorations() { updateDecorations() return _decoration } diff --git a/plugins/text-editor-resources/src/components/CollaborationUsers.svelte b/plugins/text-editor-resources/src/components/CollaborationUsers.svelte index d04f3f6c1c..a8718736ec 100644 --- a/plugins/text-editor-resources/src/components/CollaborationUsers.svelte +++ b/plugins/text-editor-resources/src/components/CollaborationUsers.svelte @@ -41,7 +41,7 @@ }) } - function goToCursor (state: AwarenessState): void { + function goToCursor(state: AwarenessState): void { const cursor = state.cursor if (cursor?.head != null) { try { diff --git a/plugins/text-editor-resources/src/components/CollaborativeAttributeBox.svelte b/plugins/text-editor-resources/src/components/CollaborativeAttributeBox.svelte index fd97c648a2..5fd2d094c1 100644 --- a/plugins/text-editor-resources/src/components/CollaborativeAttributeBox.svelte +++ b/plugins/text-editor-resources/src/components/CollaborativeAttributeBox.svelte @@ -36,11 +36,11 @@ export let focusIndex = -1 - export function isFocused (): boolean { + export function isFocused(): boolean { return editor?.isFocused() ?? false } - export function removeAttachment (id: string): void { + export function removeAttachment(id: string): void { return editor?.removeAttachment(id) } diff --git a/plugins/text-editor-resources/src/components/CollaborativeTextEditor.svelte b/plugins/text-editor-resources/src/components/CollaborativeTextEditor.svelte index 50ea48d5f9..fde19c1104 100644 --- a/plugins/text-editor-resources/src/components/CollaborativeTextEditor.svelte +++ b/plugins/text-editor-resources/src/components/CollaborativeTextEditor.svelte @@ -180,21 +180,21 @@ } } - function handleAction (a: RefAction, evt?: MouseEvent): void { + function handleAction(a: RefAction, evt?: MouseEvent): void { a.action(evt?.target as HTMLElement, editorHandler, evt) } $: commandHandler = textEditorCommandHandler(editor) - export function commands (): TextEditorCommandHandler | undefined { + export function commands(): TextEditorCommandHandler | undefined { return commandHandler } - export function removeAttachment (id: string): void { + export function removeAttachment(id: string): void { editor.commands.command(deleteAttachment(id)) } - export function isEditable (): boolean { + export function isEditable(): boolean { return editor?.isEditable ?? false } @@ -202,12 +202,12 @@ let focused = false let posFocus: FocusPosition | undefined = undefined - export function focus (position?: FocusPosition): void { + export function focus(position?: FocusPosition): void { posFocus = position needFocus = true } - export function isFocused (): boolean { + export function isFocused(): boolean { return focused } @@ -228,11 +228,11 @@ let inputImage: HTMLInputElement - export function handleAttachImage (): void { + export function handleAttachImage(): void { inputImage.click() } - async function createInlineImage (file: File): Promise { + async function createInlineImage(file: File): Promise { if (!file.type.startsWith('image/') || attachFile === undefined) { return } @@ -258,7 +258,7 @@ ) } - async function fileSelected (): Promise { + async function fileSelected(): Promise { if (readonly) return const list = inputImage.files if (list === null || list.length === 0) return @@ -271,7 +271,7 @@ inputImage.value = '' } - async function handleLeftMenuClick (id: string, pos: number, targetItem?: MouseEvent | HTMLElement): Promise { + async function handleLeftMenuClick(id: string, pos: number, targetItem?: MouseEvent | HTMLElement): Promise { editor.commands.focus(pos, { scrollIntoView: false }) switch (id) { @@ -325,7 +325,7 @@ } const savedBoards: Record = {} - function getSavedBoard (id: string): SavedBoard { + function getSavedBoard(id: string): SavedBoard { let board = savedBoards[id] if (board === undefined) { const ydoc = new YDoc({ guid: id, gc: false }) diff --git a/plugins/text-editor-resources/src/components/CollaboratorEditor.svelte b/plugins/text-editor-resources/src/components/CollaboratorEditor.svelte index c1ad1ff5e1..cd5b008888 100644 --- a/plugins/text-editor-resources/src/components/CollaboratorEditor.svelte +++ b/plugins/text-editor-resources/src/components/CollaboratorEditor.svelte @@ -49,19 +49,19 @@ let collaborativeEditor: CollaborativeTextEditor - export function commands (): TextEditorCommandHandler | undefined { + export function commands(): TextEditorCommandHandler | undefined { return collaborativeEditor?.commands() } - export function focus (position?: FocusPosition): void { + export function focus(position?: FocusPosition): void { collaborativeEditor?.focus(position) } - export function isFocused (): boolean { + export function isFocused(): boolean { return collaborativeEditor?.isFocused() ?? false } - export function removeAttachment (id: string): void { + export function removeAttachment(id: string): void { collaborativeEditor?.removeAttachment(id) } @@ -80,7 +80,7 @@ } } - function handleFocus (): void { + function handleFocus(): void { updateFocus() } diff --git a/plugins/text-editor-resources/src/components/DrawingBoardEditor.svelte b/plugins/text-editor-resources/src/components/DrawingBoardEditor.svelte index 331d324fc2..e3feaebfa6 100644 --- a/plugins/text-editor-resources/src/components/DrawingBoardEditor.svelte +++ b/plugins/text-editor-resources/src/components/DrawingBoardEditor.svelte @@ -91,7 +91,7 @@ $: onReadonlyChanged(readonly) $: onOffsetChanged(offset) - function onSavedCommandsChanged (): void { + function onSavedCommandsChanged(): void { model = commandsProcessor.snapshot() setTimeout(() => { const status = commandsProcessor.getUndoRedoAvailability() @@ -100,7 +100,7 @@ }) } - function showCommandProps (id: CommandUid): void { + function showCommandProps(id: CommandUid): void { changingCmdId = id for (const command of model) { if (command.id === id) { @@ -114,19 +114,19 @@ } } - function changeCommand (cmd: DrawingCmd): void { + function changeCommand(cmd: DrawingCmd): void { changingCmdId = undefined cmdEditor = undefined commandsProcessor.changeCommand(cmd) } - function deleteCommand (id: CommandUid): void { + function deleteCommand(id: CommandUid): void { changingCmdId = undefined cmdEditor = undefined commandsProcessor.deleteCommand(id) } - function onSelectedChanged (newSelected: boolean): void { + function onSelectedChanged(newSelected: boolean): void { if (oldSelected !== newSelected) { if (oldSelected && !newSelected && changingCmdId !== undefined) { changingCmdId = undefined @@ -136,7 +136,7 @@ } } - function onReadonlyChanged (newReadonly: boolean): void { + function onReadonlyChanged(newReadonly: boolean): void { if (oldReadonly !== newReadonly) { if (!newReadonly) { commandsProcessor.ensureAllCommandsWithUids() @@ -145,19 +145,19 @@ } } - function onOffsetChanged (offset: Point): void { + function onOffsetChanged(offset: Point): void { if (sendLiveData !== undefined) { sendLiveData(dataTopicOffset, { boardId, offset: { ...offset } }) } } - function onPointerMoved (canvasPos: Point): void { + function onPointerMoved(canvasPos: Point): void { if (sendLiveData !== undefined && selected && !panning) { sendLiveData(dataTopicCursor, { boardId, cursorPos: { ...canvasPos } }) } } - async function onFolloweeData (data: any): Promise { + async function onFolloweeData(data: any): Promise { if (data === undefined) { followee = undefined personCursorVisible = false diff --git a/plugins/text-editor-resources/src/components/DrawingBoardNodeView.svelte b/plugins/text-editor-resources/src/components/DrawingBoardNodeView.svelte index c4adcb6a36..f6fb57828f 100644 --- a/plugins/text-editor-resources/src/components/DrawingBoardNodeView.svelte +++ b/plugins/text-editor-resources/src/components/DrawingBoardNodeView.svelte @@ -41,18 +41,18 @@ let loading = true let loadingTimer: any - function resizeStart (y: number): void { + function resizeStart(y: number): void { const height = node.attrs.height ?? defaultHeight startY = y - height resizedHeight = height } - function resizeContinue (y: number): void { + function resizeContinue(y: number): void { resizedHeight = Math.max(minHeight, y - startY) resizedHeight = Math.min(maxHeight, resizedHeight) } - function resizeFinish (): void { + function resizeFinish(): void { if (resizedHeight !== undefined) { if (typeof getPos === 'function') { const tr = editor.state.tr.setNodeMarkup(getPos(), undefined, { ...node.attrs, height: resizedHeight }) @@ -62,7 +62,7 @@ } } - function onResizerPointerDown (e: PointerEvent): void { + function onResizerPointerDown(e: PointerEvent): void { e.preventDefault() resizer.setPointerCapture(e.pointerId) resizer.addEventListener('pointermove', onResizerPointerMove) @@ -71,12 +71,12 @@ resizeStart(e.clientY) } - function onResizerPointerMove (e: PointerEvent): void { + function onResizerPointerMove(e: PointerEvent): void { e.preventDefault() resizeContinue(e.clientY) } - function onResizerPointerUp (e: PointerEvent): void { + function onResizerPointerUp(e: PointerEvent): void { e.preventDefault() resizer.releasePointerCapture(e.pointerId) resizer.removeEventListener('pointermove', onResizerPointerMove) @@ -85,7 +85,7 @@ resizeFinish() } - function onResizerTouchStart (e: TouchEvent): void { + function onResizerTouchStart(e: TouchEvent): void { const touch = e.changedTouches[0] resizerTouchId = touch.identifier resizer.addEventListener('touchmove', onResizerTouchMove) @@ -94,7 +94,7 @@ resizeStart(touch.clientY) } - function onResizerTouchMove (e: TouchEvent): void { + function onResizerTouchMove(e: TouchEvent): void { for (let i = 0; i < e.changedTouches.length; i++) { const touch = e.changedTouches[i] if (touch.identifier === resizerTouchId) { @@ -104,7 +104,7 @@ } } - function onResizerTouchEnd (): void { + function onResizerTouchEnd(): void { resizer.removeEventListener('touchmove', onResizerTouchMove) resizer.removeEventListener('touchend', onResizerTouchEnd) resizer.removeEventListener('touchcancel', onResizerTouchEnd) diff --git a/plugins/text-editor-resources/src/components/DummyPopup.svelte b/plugins/text-editor-resources/src/components/DummyPopup.svelte index e1f9220783..48983d5fb2 100644 --- a/plugins/text-editor-resources/src/components/DummyPopup.svelte +++ b/plugins/text-editor-resources/src/components/DummyPopup.svelte @@ -1,5 +1,5 @@ diff --git a/plugins/text-editor-resources/src/components/InlineCommandsList.svelte b/plugins/text-editor-resources/src/components/InlineCommandsList.svelte index 5b6a76f6a1..d363a35290 100644 --- a/plugins/text-editor-resources/src/components/InlineCommandsList.svelte +++ b/plugins/text-editor-resources/src/components/InlineCommandsList.svelte @@ -52,13 +52,13 @@ dummyPopup.close() }) - export function onKeyDown (ev: KeyboardEvent): boolean { + export function onKeyDown(ev: KeyboardEvent): boolean { return menuPopup?.onKeydown(ev) } - export function done (): void {} + export function done(): void {} - function updateStyle (): void { + function updateStyle(): void { const rect = clientRect() const wDoc = $deviceInfo.docWidth const hDoc = $deviceInfo.docHeight @@ -87,7 +87,7 @@ let wPopup: number = 0 - function handleSelected (id: any): void { + function handleSelected(id: any): void { command({ id }) } diff --git a/plugins/text-editor-resources/src/components/LinkPopup.svelte b/plugins/text-editor-resources/src/components/LinkPopup.svelte index cd7ef28097..34bb5e3108 100644 --- a/plugins/text-editor-resources/src/components/LinkPopup.svelte +++ b/plugins/text-editor-resources/src/components/LinkPopup.svelte @@ -24,7 +24,7 @@ const dispatch = createEventDispatcher() const linkPlaceholder = getEmbeddedLabel('http://my.link.net') - function save (): void { + function save(): void { dispatch('update', link) } diff --git a/plugins/text-editor-resources/src/components/MarkupDiffViewer.svelte b/plugins/text-editor-resources/src/components/MarkupDiffViewer.svelte index 490e29fcd9..34e0ed776e 100644 --- a/plugins/text-editor-resources/src/components/MarkupDiffViewer.svelte +++ b/plugins/text-editor-resources/src/components/MarkupDiffViewer.svelte @@ -41,7 +41,7 @@ let decorateFailed = false let editorMountFailed = false - function updateEditor (editor: Editor, comparedVersion?: MarkupNode): void { + function updateEditor(editor: Editor, comparedVersion?: MarkupNode): void { if (comparedVersion === undefined) { return } @@ -68,12 +68,12 @@ // TODO: should be implemented as regular plugin const DecorationExtension = Extension.create({ - addProseMirrorPlugins () { + addProseMirrorPlugins() { return [ new Plugin({ key: new PluginKey('diffs'), props: { - decorations () { + decorations() { updateDecorations() return _decoration } diff --git a/plugins/text-editor-resources/src/components/MentionList.svelte b/plugins/text-editor-resources/src/components/MentionList.svelte index 3f94507176..e31ad797a9 100644 --- a/plugins/text-editor-resources/src/components/MentionList.svelte +++ b/plugins/text-editor-resources/src/components/MentionList.svelte @@ -48,7 +48,7 @@ dummyPopup.close() }) - function dispatchItem (item: { id: string, label: string, objectclass: string }): void { + function dispatchItem(item: { id: string, label: string, objectclass: string }): void { if (item == null) { close() } else { @@ -58,13 +58,13 @@ let searchPopup: MentionPopup - export function onKeyDown (ev: KeyboardEvent): boolean { + export function onKeyDown(ev: KeyboardEvent): boolean { return searchPopup?.onKeyDown(ev) } - export function done (): void {} + export function done(): void {} - function updateStyle (): void { + function updateStyle(): void { const rect = clientRect() const wDoc = $deviceInfo.docWidth const hDoc = $deviceInfo.docHeight diff --git a/plugins/text-editor-resources/src/components/MentionPopup.svelte b/plugins/text-editor-resources/src/components/MentionPopup.svelte index 18a3dd9345..6bce2c3b0f 100644 --- a/plugins/text-editor-resources/src/components/MentionPopup.svelte +++ b/plugins/text-editor-resources/src/components/MentionPopup.svelte @@ -37,11 +37,11 @@ let items: SearchItem[] = [] - function getReferenceVersionsProvider (doc: SearchResultDoc['doc']): ReferenceVersionsProvider | undefined { + function getReferenceVersionsProvider(doc: SearchResultDoc['doc']): ReferenceVersionsProvider | undefined { return client.getHierarchy().classHierarchyMixin(doc._class, view.mixin.ReferenceVersionsProvider) } - function getVersionableDoc (doc: SearchResultDoc['doc']): VersionableDoc | undefined { + function getVersionableDoc(doc: SearchResultDoc['doc']): VersionableDoc | undefined { const enabled = client.getHierarchy().classHierarchyMixin(doc._class, core.mixin.VersionableClass)?.enabled if (enabled !== true) return @@ -51,11 +51,11 @@ return versionedDoc } - function hasReferenceVersions (doc: SearchResultDoc['doc']): boolean { + function hasReferenceVersions(doc: SearchResultDoc['doc']): boolean { return getReferenceVersionsProvider(doc) !== undefined || getVersionableDoc(doc) !== undefined } - async function getReferenceVersions (doc: SearchResultDoc['doc']): Promise { + async function getReferenceVersions(doc: SearchResultDoc['doc']): Promise { const provider = getReferenceVersionsProvider(doc) if (provider !== undefined) { const providerFn = await getResource(provider.provider) @@ -81,7 +81,7 @@ ) } - async function getLatestReference (item: SearchResultDoc): Promise { + async function getLatestReference(item: SearchResultDoc): Promise { return { id: item.doc._id, objectclass: item.doc._class, @@ -89,7 +89,7 @@ } } - function selectReference (props: ReferenceVersion): void { + function selectReference(props: ReferenceVersion): void { dispatch('close', props) } @@ -104,7 +104,7 @@ .getModel() .findAllSync(presentation.class.ObjectSearchCategory, { classToSearch: contact.mixin.Employee })[0] - async function getMultipleEmployeeSearchItems (localQuery: string, lastIndex: number): Promise { + async function getMultipleEmployeeSearchItems(localQuery: string, lastIndex: number): Promise { if (!multipleMentions) return [] if (employeeSearchCategory === undefined) return [] @@ -156,7 +156,7 @@ .map((it, idx) => ({ ...it, num: lastIndex + 1 + idx })) } - async function handleSelectItem (item: SearchResultDoc): Promise { + async function handleSelectItem(item: SearchResultDoc): Promise { if ([contact.mention.Here, contact.mention.Everyone].includes(item.id as any)) { dispatch('close', { id: item.doc._id, @@ -180,7 +180,7 @@ }) } - export function onKeyDown (key: KeyboardEvent): boolean { + export function onKeyDown(key: KeyboardEvent): boolean { if (key.key === 'ArrowDown') { key.stopPropagation() key.preventDefault() diff --git a/plugins/text-editor-resources/src/components/MentionVersionPopup.svelte b/plugins/text-editor-resources/src/components/MentionVersionPopup.svelte index 444194e02e..d0f52d2c73 100644 --- a/plugins/text-editor-resources/src/components/MentionVersionPopup.svelte +++ b/plugins/text-editor-resources/src/components/MentionVersionPopup.svelte @@ -25,12 +25,12 @@ const dispatch = createEventDispatcher() - function selectLatest (): void { + function selectLatest(): void { onSelect(latest) dispatch('close') } - function selectVersion (version: ReferenceVersion): void { + function selectVersion(version: ReferenceVersion): void { onSelect(version) dispatch('close') } diff --git a/plugins/text-editor-resources/src/components/ReferenceInput.svelte b/plugins/text-editor-resources/src/components/ReferenceInput.svelte index 249cebd31f..b4da72ec02 100644 --- a/plugins/text-editor-resources/src/components/ReferenceInput.svelte +++ b/plugins/text-editor-resources/src/components/ReferenceInput.svelte @@ -75,7 +75,7 @@ $: isEmptyContent = isEmpty || isEmptyMarkup(content) $: canSubmit = (haveAttachment || !isEmptyContent) && !loading - function setContent (content: Markup): void { + function setContent(content: Markup): void { editor?.setContent(content) } @@ -92,7 +92,7 @@ insertTemplate: (name, markup) => { editor?.insertMarkup(markup) }, - insertTable (options: { rows?: number, cols?: number, withHeaderRow?: boolean }) { + insertTable(options: { rows?: number, cols?: number, withHeaderRow?: boolean }) { editor?.insertTable(options) }, insertCodeBlock: () => { @@ -121,11 +121,11 @@ .concat(...modelActions) .sort((a, b) => a.order - b.order) - export function submit (): void { + export function submit(): void { editor?.submit() } - function handleAction (a: RefAction, evt?: Event): void { + function handleAction(a: RefAction, evt?: Event): void { a.action(evt?.target as HTMLElement, editorHandler) } diff --git a/plugins/text-editor-resources/src/components/StyledTextArea.svelte b/plugins/text-editor-resources/src/components/StyledTextArea.svelte index 560e4cf5a9..096d7eb9b4 100644 --- a/plugins/text-editor-resources/src/components/StyledTextArea.svelte +++ b/plugins/text-editor-resources/src/components/StyledTextArea.svelte @@ -30,13 +30,13 @@ let editor: StyledTextEditor - export function submit (): void { + export function submit(): void { editor.submit() } - export function isEditable (): boolean { + export function isEditable(): boolean { return editor.isEditable() } - export function setEditable (editable: boolean): void { + export function setEditable(editable: boolean): void { editor.setEditable(editable) } const dispatch = createEventDispatcher() diff --git a/plugins/text-editor-resources/src/components/StyledTextBox.svelte b/plugins/text-editor-resources/src/components/StyledTextBox.svelte index d20cfe480a..0adf7e449f 100644 --- a/plugins/text-editor-resources/src/components/StyledTextBox.svelte +++ b/plugins/text-editor-resources/src/components/StyledTextBox.svelte @@ -58,17 +58,17 @@ } export let mode = Mode.View - export function startEdit (): void { + export function startEdit(): void { rawValue = content ?? EmptyMarkup needFocus = true mode = Mode.Edit } - export function saveEdit (): void { + export function saveEdit(): void { dispatch('value', rawValue) content = rawValue mode = Mode.View } - export function cancelEdit (): void { + export function cancelEdit(): void { rawValue = content mode = Mode.View } @@ -96,23 +96,23 @@ $: editor?.setEditable(!readonly) - export function submit (): void { + export function submit(): void { editor.submit() } - export function focus (): void { + export function focus(): void { editor.focus() } - export function isEditable (): boolean { + export function isEditable(): boolean { return editor.isEditable() } - export function setEditable (editable: boolean): void { + export function setEditable(editable: boolean): void { editor.setEditable(editable) } - export function setContent (data: string): void { + export function setContent(data: string): void { editor.setContent(data) } - export function isFocused (): boolean { + export function isFocused(): boolean { return focused } let needFocus = false @@ -164,11 +164,11 @@ /** * @public */ - export function removeAttachment (id: string): void { + export function removeAttachment(id: string): void { editor.removeAttachment(id) } - async function handleCommandSelected (id: string, pos: number, targetItem?: MouseEvent | HTMLElement): Promise { + async function handleCommandSelected(id: string, pos: number, targetItem?: MouseEvent | HTMLElement): Promise { switch (id) { case 'image': handleAttachImage() @@ -197,11 +197,11 @@ let inputImage: HTMLInputElement - export function handleAttachImage (): void { + export function handleAttachImage(): void { inputImage.click() } - async function createInlineImage (file: File): Promise { + async function createInlineImage(file: File): Promise { if (!file.type.startsWith('image/') || attachFile === undefined) { return } @@ -227,7 +227,7 @@ ) } - async function fileSelected (): Promise { + async function fileSelected(): Promise { const list = inputImage.files if (list === null || list.length === 0) return for (let index = 0; index < list.length; index++) { diff --git a/plugins/text-editor-resources/src/components/StyledTextEditor.svelte b/plugins/text-editor-resources/src/components/StyledTextEditor.svelte index 9e3c9bcf9c..3d6c616b57 100644 --- a/plugins/text-editor-resources/src/components/StyledTextEditor.svelte +++ b/plugins/text-editor-resources/src/components/StyledTextEditor.svelte @@ -44,28 +44,28 @@ let editor: TextEditor | undefined = undefined - export function submit (): void { + export function submit(): void { editor?.submit() } - export function focus (): void { + export function focus(): void { editor?.focus() } - export function isEditable (): boolean { + export function isEditable(): boolean { return editor?.isEditable() ?? false } - export function setEditable (editable: boolean): void { + export function setEditable(editable: boolean): void { editor?.setEditable(editable) } - export function getContent (): Markup { + export function getContent(): Markup { return content } - export function setContent (data: Markup): void { + export function setContent(data: Markup): void { editor?.setContent(data) } - export function insertText (text: string): void { + export function insertText(text: string): void { editor?.insertText(text) } - export function getEditor (): Editor | undefined { + export function getEditor(): Editor | undefined { return editor?.getEditor() } @@ -92,7 +92,7 @@ editor?.insertMarkup(markup) dispatch('template', name) }, - insertTable (options: { rows?: number, cols?: number, withHeaderRow?: boolean }) { + insertTable(options: { rows?: number, cols?: number, withHeaderRow?: boolean }) { editor?.insertTable(options) }, insertCodeBlock: (pos?: number) => { @@ -123,7 +123,7 @@ full ? { class: 'text-editor-view_full-height' } : { class: 'text-editor-view_compact' } ) - function handleAction (a: RefAction, evt?: Event): void { + function handleAction(a: RefAction, evt?: Event): void { a.action(evt?.target as HTMLElement, editorHandler) } @@ -147,7 +147,7 @@ /** * @public */ - export function removeAttachment (id: string): void { + export function removeAttachment(id: string): void { editor?.removeAttachment(id) } diff --git a/plugins/text-editor-resources/src/components/TextActionButton.svelte b/plugins/text-editor-resources/src/components/TextActionButton.svelte index df93e82ff5..6a24d99fcb 100644 --- a/plugins/text-editor-resources/src/components/TextActionButton.svelte +++ b/plugins/text-editor-resources/src/components/TextActionButton.svelte @@ -44,7 +44,7 @@ }) } - async function updateSelected (e: Editor, { isActive }: TextEditorAction): Promise { + async function updateSelected(e: Editor, { isActive }: TextEditorAction): Promise { if (isActive === undefined) { selected = false return @@ -59,7 +59,7 @@ } } - async function handleClick (event: MouseEvent): Promise { + async function handleClick(event: MouseEvent): Promise { if (blockMouseEvents) { event.preventDefault() event.stopPropagation() diff --git a/plugins/text-editor-resources/src/components/TextEditor.svelte b/plugins/text-editor-resources/src/components/TextEditor.svelte index ed1d95d1c2..25aeaf72d8 100644 --- a/plugins/text-editor-resources/src/components/TextEditor.svelte +++ b/plugins/text-editor-resources/src/components/TextEditor.svelte @@ -46,49 +46,49 @@ const dispatch = createEventDispatcher() - export function isEditable (): boolean { + export function isEditable(): boolean { return editor?.isEditable } - export function setEditable (editable: boolean): void { + export function setEditable(editable: boolean): void { if (editor !== undefined) { editor.setEditable(editable) } } - export function submit (): void { + export function submit(): void { content = getContent() dispatch('content', content) } - export function getContent (): Markup { + export function getContent(): Markup { return getMarkup(editor) } - export function setContent (newContent: Markup): void { + export function setContent(newContent: Markup): void { if (editor !== undefined && content !== newContent) { content = newContent editor.commands.setContent(markupToJSON(content)) } } - export function clear (): void { + export function clear(): void { if (editor !== undefined) { content = EmptyMarkup editor.commands.clearContent(true) } } - export function getEditor (): Editor { + export function getEditor(): Editor { return editor } - export function insertEmoji (text: string, image?: Ref): void { + export function insertEmoji(text: string, image?: Ref): void { editor?.commands.insertEmoji(text, image === undefined ? 'unicode' : 'image', image) } - export function insertText (text: string): void { + export function insertText(text: string): void { editor?.commands.insertContent(text) } - export function insertTable (options: { rows?: number, cols?: number, withHeaderRow?: boolean }) { + export function insertTable(options: { rows?: number, cols?: number, withHeaderRow?: boolean }) { editor?.commands.insertTable(options) } - export function insertCodeBlock (pos?: number): void { + export function insertCodeBlock(pos?: number): void { editor?.commands.insertContent( { type: 'codeBlock', @@ -103,10 +103,10 @@ editor?.commands.focus(pos, { scrollIntoView: false }) } } - export function insertSeparatorLine (): void { + export function insertSeparatorLine(): void { editor?.commands.setHorizontalRule() } - export function insertContent ( + export function insertContent( value: Content, options?: { parseOptions?: ParseOptions @@ -116,7 +116,7 @@ editor?.commands.insertContent(value, options) } - export function insertMarkup (markup: Markup): void { + export function insertMarkup(markup: Markup): void { editor?.commands.insertContent(markupToJSON(markup)) } @@ -124,7 +124,7 @@ let focused = false let posFocus: FocusPosition | undefined = undefined - export function focus (position?: FocusPosition): void { + export function focus(position?: FocusPosition): void { posFocus = position needFocus = true } @@ -207,11 +207,11 @@ /** * @public */ - export function removeAttachment (id: string): void { + export function removeAttachment(id: string): void { editor.commands.command(deleteAttachment(id)) } - function handleFocus (): void { + function handleFocus(): void { needFocus = true } diff --git a/plugins/text-editor-resources/src/components/diff/decorations.ts b/plugins/text-editor-resources/src/components/diff/decorations.ts index 02e2833f44..2cdd18be05 100644 --- a/plugins/text-editor-resources/src/components/diff/decorations.ts +++ b/plugins/text-editor-resources/src/components/diff/decorations.ts @@ -45,9 +45,9 @@ export function calculateDecorations ( comparedDoc?: ProseMirrorNode ): | { - decorations: DecorationSet - oldContent: MarkupNode - } + decorations: DecorationSet + oldContent: MarkupNode + } | undefined { try { if (editor?.schema === undefined) { diff --git a/plugins/text-editor-resources/src/components/extension/codeSnippets/codeblock.ts b/plugins/text-editor-resources/src/components/extension/codeSnippets/codeblock.ts index 9891999169..d89ca21a0f 100644 --- a/plugins/text-editor-resources/src/components/extension/codeSnippets/codeblock.ts +++ b/plugins/text-editor-resources/src/components/extension/codeSnippets/codeblock.ts @@ -42,51 +42,51 @@ export const CodeBlockHighlighExtension = CodeBlockLowlight.extend - ({ commands }) => { - return commands.setNode(this.name, attributes) - }, + ({ commands }) => { + return commands.setNode(this.name, attributes) + }, toggleCodeBlock: (attributes) => - ({ chain, commands, state }) => { - const { from, to } = state.selection - - // merge multiple paragraphs into codeblock - if (!isActive(state, this.name) && !state.selection.empty) { - let hasParagraphsOnlySelected = true - const textArr: string[] = [] - state.doc.nodesBetween(from, to, (node, pos) => { - if (node.isInline) { - return false - } - if (node.type.name !== 'paragraph') { - if (pos + 1 <= from && pos + node.nodeSize - 1 >= to) { + ({ chain, commands, state }) => { + const { from, to } = state.selection + + // merge multiple paragraphs into codeblock + if (!isActive(state, this.name) && !state.selection.empty) { + let hasParagraphsOnlySelected = true + const textArr: string[] = [] + state.doc.nodesBetween(from, to, (node, pos) => { + if (node.isInline) { + return false + } + if (node.type.name !== 'paragraph') { + if (pos + 1 <= from && pos + node.nodeSize - 1 >= to) { // skip nodes outside of the selected range - return false - } else { - // cannot merge non-paragraph nodes inside selection - hasParagraphsOnlySelected = false - return false - } + return false } else { - const selectedText = (node.textContent ?? '').slice( - pos + 1 > from ? 0 : from - pos - 1, - pos + node.nodeSize - 1 < to ? node.nodeSize - 1 : to - pos - 1 - ) - textArr.push(selectedText ?? '') + // cannot merge non-paragraph nodes inside selection + hasParagraphsOnlySelected = false + return false } - }) - if (hasParagraphsOnlySelected && textArr.length > 1) { - return chain() - .command(({ state, tr }) => { - tr.replaceRangeWith(from, to, this.type.create(attributes, state.schema.text(textArr.join('\n')))) - return true - }) - .setTextSelection({ from: from + 2, to: from + 2 }) - .run() + } else { + const selectedText = (node.textContent ?? '').slice( + pos + 1 > from ? 0 : from - pos - 1, + pos + node.nodeSize - 1 < to ? node.nodeSize - 1 : to - pos - 1 + ) + textArr.push(selectedText ?? '') } + }) + if (hasParagraphsOnlySelected && textArr.length > 1) { + return chain() + .command(({ state, tr }) => { + tr.replaceRangeWith(from, to, this.type.create(attributes, state.schema.text(textArr.join('\n')))) + return true + }) + .setTextSelection({ from: from + 2, to: from + 2 }) + .run() } - return commands.toggleNode(this.name, 'paragraph', attributes) } + return commands.toggleNode(this.name, 'paragraph', attributes) + } } }, diff --git a/plugins/text-editor-resources/src/components/extension/drawingBoard.ts b/plugins/text-editor-resources/src/components/extension/drawingBoard.ts index 39fb867d9f..bbee95aa22 100644 --- a/plugins/text-editor-resources/src/components/extension/drawingBoard.ts +++ b/plugins/text-editor-resources/src/components/extension/drawingBoard.ts @@ -102,19 +102,19 @@ export const DrawingBoardExtension = Node.create({ return { showDrawingBoardPopup: () => - ({ state }) => { - if (state.selection instanceof NodeSelection) { - const node = state.selection.node - if (node?.type.name === this.name) { - const board = this.options.getSavedBoard(node.attrs.id) - if (!board.loading) { - showBoardPopup(node.attrs.id, board, this.editor) - } - return true + ({ state }) => { + if (state.selection instanceof NodeSelection) { + const node = state.selection.node + if (node?.type.name === this.name) { + const board = this.options.getSavedBoard(node.attrs.id) + if (!board.loading) { + showBoardPopup(node.attrs.id, board, this.editor) } + return true } - return false } + return false + } } }, diff --git a/plugins/text-editor-resources/src/components/extension/embed/embed.ts b/plugins/text-editor-resources/src/components/extension/embed/embed.ts index 9ce13bb8ca..20e89afbde 100644 --- a/plugins/text-editor-resources/src/components/extension/embed/embed.ts +++ b/plugins/text-editor-resources/src/components/extension/embed/embed.ts @@ -247,7 +247,7 @@ function getNodeUrl (node?: Node | null): string | undefined { return link?.attrs.href ?? undefined } case 'reference': { - return buildReferenceUrl(node.attrs as ReferenceNodeProps) + return buildReferenceUrl(node.attrs) } case 'embed': { return node.attrs.src diff --git a/plugins/text-editor-resources/src/components/extension/embed/providers/drive.ts b/plugins/text-editor-resources/src/components/extension/embed/providers/drive.ts index a850be0666..1d35e5002d 100644 --- a/plugins/text-editor-resources/src/components/extension/embed/providers/drive.ts +++ b/plugins/text-editor-resources/src/components/extension/embed/providers/drive.ts @@ -64,7 +64,7 @@ export const DriveEmbedProvider: EmbedNodeProviderConstructor const pos = typeof getPos === 'function' ? getPos() : 0 setLoadingState(editor.view, pos, loading) } - const renderer = new SvelteRenderer(FilePreview as any, { + const renderer = new SvelteRenderer(FilePreview, { element: root, props: { file: version.file, diff --git a/plugins/text-editor-resources/src/components/extension/imageExt.ts b/plugins/text-editor-resources/src/components/extension/imageExt.ts index 617db0de12..d60a73b2a4 100644 --- a/plugins/text-editor-resources/src/components/extension/imageExt.ts +++ b/plugins/text-editor-resources/src/components/extension/imageExt.ts @@ -66,36 +66,36 @@ export const ImageExtension = ImageNode.extend({ return { setImage: (options) => - ({ commands }) => { - return commands.insertContent({ - type: this.name, - attrs: options - }) - }, + ({ commands }) => { + return commands.insertContent({ + type: this.name, + attrs: options + }) + }, setImageAlignment: (options) => - ({ chain, tr, state }) => { - const cursor = getCursor(state) - if (cursor === null) return false - return chain() - .setNodeSelection(cursor.range.from) - .updateAttributes(this.name, { ...options }) - .setNodeSelection(cursor.range.from) - .run() - }, + ({ chain, tr, state }) => { + const cursor = getCursor(state) + if (cursor === null) return false + return chain() + .setNodeSelection(cursor.range.from) + .updateAttributes(this.name, { ...options }) + .setNodeSelection(cursor.range.from) + .run() + }, setImageSize: (options) => - ({ chain, tr, state }) => { - const cursor = getCursor(state) - if (cursor === null) return false - return chain() - .setNodeSelection(cursor.range.from) - .updateAttributes(this.name, { ...options }) - .setNodeSelection(cursor.range.from) - .run() - } + ({ chain, tr, state }) => { + const cursor = getCursor(state) + if (cursor === null) return false + return chain() + .setNodeSelection(cursor.range.from) + .updateAttributes(this.name, { ...options }) + .setNodeSelection(cursor.range.from) + .run() + } } }, diff --git a/plugins/text-editor-resources/src/components/extension/inlineComment.ts b/plugins/text-editor-resources/src/components/extension/inlineComment.ts index 6bd502ee43..c4d2c803b2 100644 --- a/plugins/text-editor-resources/src/components/extension/inlineComment.ts +++ b/plugins/text-editor-resources/src/components/extension/inlineComment.ts @@ -289,8 +289,8 @@ function buildCommentDecoratorState ( meta?.pointer?.focus !== undefined ? meta.pointer.focus : !isSelectionChanged - ? prev.pointer.focus - : new Set(), + ? prev.pointer.focus + : new Set(), hover: meta?.pointer?.hover !== undefined ? meta.pointer.hover : prev.pointer.hover } diff --git a/plugins/text-editor-resources/src/components/extension/mathematics.ts b/plugins/text-editor-resources/src/components/extension/mathematics.ts index 57bf63b15a..d82dd2f4f1 100644 --- a/plugins/text-editor-resources/src/components/extension/mathematics.ts +++ b/plugins/text-editor-resources/src/components/extension/mathematics.ts @@ -261,44 +261,44 @@ export const MathematicsExtension = Mathematics.extend({ return { insertMathInline: () => - ({ state, dispatch }) => { - const { selection } = state - const { from } = selection - - if (selection.empty) { - const boundaries = findInlineMathBoundaries(state) - if (boundaries !== null) { - if (dispatch !== undefined) { - dispatch( - state.tr - .delete(boundaries.after, boundaries.after + 1) - .delete(boundaries.before, boundaries.before + 1) - ) - } - return true + ({ state, dispatch }) => { + const { selection } = state + const { from } = selection + + if (selection.empty) { + const boundaries = findInlineMathBoundaries(state) + if (boundaries !== null) { + if (dispatch !== undefined) { + dispatch( + state.tr + .delete(boundaries.after, boundaries.after + 1) + .delete(boundaries.before, boundaries.before + 1) + ) } - const tr = state.tr.insertText('$ $', from) - if (dispatch !== undefined) dispatch(tr.setSelection(TextSelection.create(tr.doc, from + 2))) return true } + const tr = state.tr.insertText('$ $', from) + if (dispatch !== undefined) dispatch(tr.setSelection(TextSelection.create(tr.doc, from + 2))) + return true + } - return wrapWithMath(state, dispatch, '$') - }, + return wrapWithMath(state, dispatch, '$') + }, insertMathBlock: () => - ({ state, dispatch }) => { - const { selection } = state - const { from } = selection - - if (selection.empty) { - const tr = state.tr.insertText('$$ $$', from) - if (dispatch !== undefined) dispatch(tr.setSelection(TextSelection.create(tr.doc, from + 3))) - return true - } - - return wrapWithMath(state, dispatch, '$$') + ({ state, dispatch }) => { + const { selection } = state + const { from } = selection + + if (selection.empty) { + const tr = state.tr.insertText('$$ $$', from) + if (dispatch !== undefined) dispatch(tr.setSelection(TextSelection.create(tr.doc, from + 3))) + return true } + + return wrapWithMath(state, dispatch, '$$') + } } }, addProseMirrorPlugins () { diff --git a/plugins/text-editor-resources/src/components/extension/note.ts b/plugins/text-editor-resources/src/components/extension/note.ts index 65ec85e16f..138b53f2d9 100644 --- a/plugins/text-editor-resources/src/components/extension/note.ts +++ b/plugins/text-editor-resources/src/components/extension/note.ts @@ -24,14 +24,14 @@ export const NoteExtension = NoteBaseExtension.extend({ return { setNote: (text: string, kind: NoteKind) => - ({ commands }) => { - return commands.setMark(this.name, { title: text, kind }) - }, + ({ commands }) => { + return commands.setMark(this.name, { title: text, kind }) + }, unsetNote: () => - ({ commands }) => { - return commands.unsetMark(this.name) - } + ({ commands }) => { + return commands.unsetMark(this.name) + } } }, diff --git a/plugins/text-editor-resources/src/components/extension/popups/ColorPicker.svelte b/plugins/text-editor-resources/src/components/extension/popups/ColorPicker.svelte index d536c97adc..ce297d76bc 100644 --- a/plugins/text-editor-resources/src/components/extension/popups/ColorPicker.svelte +++ b/plugins/text-editor-resources/src/components/extension/popups/ColorPicker.svelte @@ -21,7 +21,7 @@ const dispatch = createEventDispatcher() - function handleSubmit (color: { color: string }): void { + function handleSubmit(color: { color: string }): void { dispatch('close', color) } diff --git a/plugins/text-editor-resources/src/components/extension/qms/qmsInlineComment.ts b/plugins/text-editor-resources/src/components/extension/qms/qmsInlineComment.ts index 5479a276d7..5ec989b294 100644 --- a/plugins/text-editor-resources/src/components/extension/qms/qmsInlineComment.ts +++ b/plugins/text-editor-resources/src/components/extension/qms/qmsInlineComment.ts @@ -203,10 +203,10 @@ export const QMSInlineCommentExtension: Extension[typeof ExtensionName] = { updateHighlight: () => - ({ view: { dispatch, state } }: CommandProps) => { - dispatch(state.tr.setMeta(ExtensionName, '')) - return true - } + ({ view: { dispatch, state } }: CommandProps) => { + dispatch(state.tr.setMeta(ExtensionName, '')) + return true + } } return result diff --git a/plugins/text-editor-resources/src/components/extension/qms/qmsInlineCommentMark.ts b/plugins/text-editor-resources/src/components/extension/qms/qmsInlineCommentMark.ts index 3627de1dc5..1a691358c7 100644 --- a/plugins/text-editor-resources/src/components/extension/qms/qmsInlineCommentMark.ts +++ b/plugins/text-editor-resources/src/components/extension/qms/qmsInlineCommentMark.ts @@ -105,7 +105,7 @@ export const QMSInlineCommentMark = Mark.create({ return { [qmsInlineCommentMarkName]: { default: null, - parseHTML: (el) => (el as HTMLSpanElement).getAttribute(qmsInlineCommentMarkName) + parseHTML: (el) => (el).getAttribute(qmsInlineCommentMarkName) } } }, @@ -115,7 +115,7 @@ export const QMSInlineCommentMark = Mark.create({ { tag: `span[${qmsInlineCommentMarkName}]`, getAttrs: (el) => { - const value = (el as HTMLSpanElement).getAttribute(qmsInlineCommentMarkName)?.trim() + const value = (el).getAttribute(qmsInlineCommentMarkName)?.trim() if (value === null || value === undefined || value.length === 0) { return false } @@ -163,16 +163,16 @@ export const QMSInlineCommentMark = Mark.create({ return { setQMSInlineCommentMark: (uuid: string) => - ({ commands, state }: CommandProps) => { - if (state.selection.empty) { - return false - } - return commands.setMark(this.name, { [qmsInlineCommentMarkName]: uuid }) - }, + ({ commands, state }: CommandProps) => { + if (state.selection.empty) { + return false + } + return commands.setMark(this.name, { [qmsInlineCommentMarkName]: uuid }) + }, unsetQMSInlineCommentMark: () => - ({ commands }: CommandProps) => - commands.unsetMark(this.name) + ({ commands }: CommandProps) => + commands.unsetMark(this.name) } } }) diff --git a/plugins/text-editor-resources/src/components/extension/reference.ts b/plugins/text-editor-resources/src/components/extension/reference.ts index d657c99f74..b41976b1ef 100644 --- a/plugins/text-editor-resources/src/components/extension/reference.ts +++ b/plugins/text-editor-resources/src/components/extension/reference.ts @@ -418,7 +418,7 @@ async function getReferenceTooltip ( const client = getClient() const hierarchy = client.getHierarchy() - const mixin = hierarchy.classHierarchyMixin(objectclass as Ref>, view.mixin.ObjectTooltip) + const mixin = hierarchy.classHierarchyMixin(objectclass, view.mixin.ObjectTooltip) if (mixin?.provider !== undefined) { const providerFn = await getResource(mixin.provider) @@ -490,7 +490,7 @@ export async function getReferenceObject ( } const referenceObjectProvider = hierarchy.classHierarchyMixin( - objectclass as Ref>, + objectclass, view.mixin.ReferenceObjectProvider ) const referenceObjectProviderFn = @@ -641,7 +641,7 @@ function createEmojiElement (emojiCode: number | number[] | Ref): HTMLElem color: 'black' }) - const value = parseEmoji(emojiCode as any) + const value = parseEmoji(emojiCode) if (value !== undefined) { root.textContent = value return root diff --git a/plugins/text-editor-resources/src/components/extension/table/TableNodeView.svelte b/plugins/text-editor-resources/src/components/extension/table/TableNodeView.svelte index 191a4991ea..f72b6a5876 100644 --- a/plugins/text-editor-resources/src/components/extension/table/TableNodeView.svelte +++ b/plugins/text-editor-resources/src/components/extension/table/TableNodeView.svelte @@ -38,14 +38,14 @@ editor.on('selectionUpdate', handleSelectionUpdate) let focused = false - function handleSelectionUpdate (): void { + function handleSelectionUpdate(): void { const from = getPos() const to = from + node.nodeSize focused = editor.state.selection.from <= to && editor.state.selection.to >= from && editor.isActive('table') } - function handleAddRow (evt: Event): void { + function handleAddRow(evt: Event): void { evt.stopPropagation() evt.preventDefault() const table = findTable(editor.state.selection) @@ -56,7 +56,7 @@ } } - function handleAddColumn (evt: Event): void { + function handleAddColumn(evt: Event): void { evt.stopPropagation() evt.preventDefault() const table = findTable(editor.state.selection) @@ -67,7 +67,7 @@ } } - function updateColumns (): void { + function updateColumns(): void { updateColumnsOnResize(node, colgroupElement, tableElement, 25) } @@ -86,7 +86,7 @@ editor.off('selectionUpdate', handleSelectionUpdate) }) - function onScroll (event: Event): void { + function onScroll(event: Event): void { if (editor === undefined) return const editorState = editor.state const currCursor = getToolbarCursor(editorState) diff --git a/plugins/text-editor-resources/src/components/extension/table/actions/OriginalTableDataViewer.svelte b/plugins/text-editor-resources/src/components/extension/table/actions/OriginalTableDataViewer.svelte index 972110d318..a7734e5aba 100644 --- a/plugins/text-editor-resources/src/components/extension/table/actions/OriginalTableDataViewer.svelte +++ b/plugins/text-editor-resources/src/components/extension/table/actions/OriginalTableDataViewer.svelte @@ -49,7 +49,7 @@ // Get component from viewlet descriptor lookup $: viewletComponent = viewletWithLookup?.$lookup?.descriptor?.component - function handleClose (): void { + function handleClose(): void { dispatch('close') } diff --git a/plugins/text-editor-resources/src/components/extension/table/actions/TableDiffViewer.svelte b/plugins/text-editor-resources/src/components/extension/table/actions/TableDiffViewer.svelte index c8d0b2515b..62dfe37f9c 100644 --- a/plugins/text-editor-resources/src/components/extension/table/actions/TableDiffViewer.svelte +++ b/plugins/text-editor-resources/src/components/extension/table/actions/TableDiffViewer.svelte @@ -33,7 +33,7 @@ $: oldContent = markdownToMarkup(oldMarkdown) $: newContent = markdownToMarkup(newMarkdown) - function handleClose (): void { + function handleClose(): void { dispatch('close') } diff --git a/plugins/text-editor-resources/src/components/extension/table/actions/TableRefreshConfirmation.svelte b/plugins/text-editor-resources/src/components/extension/table/actions/TableRefreshConfirmation.svelte index c09804c6ff..996d0ab0a9 100644 --- a/plugins/text-editor-resources/src/components/extension/table/actions/TableRefreshConfirmation.svelte +++ b/plugins/text-editor-resources/src/components/extension/table/actions/TableRefreshConfirmation.svelte @@ -35,12 +35,12 @@ $: oldContent = markdownToMarkup(oldMarkdown) $: newContent = markdownToMarkup(newMarkdown) - function handleApply (): void { + function handleApply(): void { onApply() dispatch('close') } - function handleCancel (): void { + function handleCancel(): void { dispatch('close') } diff --git a/plugins/text-editor-resources/src/components/extension/table/decorations/tableDragMarkerDecoration.ts b/plugins/text-editor-resources/src/components/extension/table/decorations/tableDragMarkerDecoration.ts index 5eb134d067..82cef6e443 100644 --- a/plugins/text-editor-resources/src/components/extension/table/decorations/tableDragMarkerDecoration.ts +++ b/plugins/text-editor-resources/src/components/extension/table/decorations/tableDragMarkerDecoration.ts @@ -110,7 +110,7 @@ function createRowDragMarker (): DragMarkerHTMLElement { export type DropMarkerHTMLElement = HTMLElement export function getDropMarker (): DropMarkerHTMLElement | null { - return document.getElementById(dropMarkerId) as DropMarkerHTMLElement + return document.getElementById(dropMarkerId) } export function hideDropMarker (element: DropMarkerHTMLElement): void { @@ -136,11 +136,11 @@ export function updateRowDropMarker (element: DropMarkerHTMLElement, top: number export type DragMarkerHTMLElement = HTMLElement export function getColDragMarker (): DragMarkerHTMLElement | null { - return document.getElementById(colDragMarkerId) as DragMarkerHTMLElement + return document.getElementById(colDragMarkerId) } export function getRowDragMarker (): DragMarkerHTMLElement | null { - return document.getElementById(rowDragMarkerId) as DragMarkerHTMLElement + return document.getElementById(rowDragMarkerId) } export function getDragMarker (element: DragMarkerHTMLElement): void { diff --git a/plugins/text-editor-resources/src/components/extension/todo/ToDoItemNodeView.svelte b/plugins/text-editor-resources/src/components/extension/todo/ToDoItemNodeView.svelte index 446009d012..6d60b4bad5 100644 --- a/plugins/text-editor-resources/src/components/extension/todo/ToDoItemNodeView.svelte +++ b/plugins/text-editor-resources/src/components/extension/todo/ToDoItemNodeView.svelte @@ -24,7 +24,7 @@ let focused = false - function handleSelectionUpdate (): void { + function handleSelectionUpdate(): void { const selection = editor.state.selection const pos = selection.$anchor.pos const start = getPos() @@ -58,7 +58,7 @@ } ) - async function syncTodo (todo: ToDo | undefined): Promise { + async function syncTodo(todo: ToDo | undefined): Promise { if (todo !== undefined && todo.attachedTo === objectId && todo.attachedToClass === objectClass) { const todoChecked = todo.doneOn != null if (todo._id !== todoId || todo.user !== userId || todoChecked !== checked) { @@ -78,7 +78,7 @@ } } - async function markDone (): Promise { + async function markDone(): Promise { if (todo !== undefined) { await client.update(todo, { doneOn: todo.doneOn == null ? Date.now() : null }) } else { @@ -86,7 +86,7 @@ } } - async function assignTodo (user: Ref): Promise { + async function assignTodo(user: Ref): Promise { if (todo !== undefined && todo.user === user) return if (objectId === undefined || objectClass === undefined || objectSpace === undefined) return @@ -132,7 +132,7 @@ }) } - async function unassignTodo (): Promise { + async function unassignTodo(): Promise { updateAttributes({ todoid: null, userid: null @@ -143,7 +143,7 @@ } } - async function assignTodoConfirm (user: Ref): Promise { + async function assignTodoConfirm(user: Ref): Promise { showPopup( MessageBox, { @@ -157,7 +157,7 @@ ) } - async function unassignTodoConfirm (): Promise { + async function unassignTodoConfirm(): Promise { showPopup( MessageBox, { @@ -171,7 +171,7 @@ ) } - async function changeAssignee (user: Ref | undefined): Promise { + async function changeAssignee(user: Ref | undefined): Promise { const shouldConfirm = todo !== undefined && todo?.workslots > 0 if (user !== undefined) { shouldConfirm ? await assignTodoConfirm(user) : await assignTodo(user) @@ -182,7 +182,7 @@ let hovered = false - function handleAssigneeEdit (ev: MouseEvent): void { + function handleAssigneeEdit(ev: MouseEvent): void { ev.preventDefault() ev.stopPropagation() diff --git a/plugins/text-editor-resources/src/components/extension/todo/todo.ts b/plugins/text-editor-resources/src/components/extension/todo/todo.ts index 8e85f0d8d8..3a0d3e0966 100644 --- a/plugins/text-editor-resources/src/components/extension/todo/todo.ts +++ b/plugins/text-editor-resources/src/components/extension/todo/todo.ts @@ -78,16 +78,16 @@ export const TodoItemExtension = TaskItem.extend({ return { sinkListItem: (typeOrName) => - ({ state, dispatch }) => { - const type = getNodeType(typeOrName, state.schema) - return sinkListItem(type, 'listItems')(state, dispatch) - }, + ({ state, dispatch }) => { + const type = getNodeType(typeOrName, state.schema) + return sinkListItem(type, 'listItems')(state, dispatch) + }, liftListItem: (typeOrName) => - ({ state, dispatch }) => { - const type = getNodeType(typeOrName, state.schema) - return liftListItem(type, 'listItems')(state, dispatch) - }, + ({ state, dispatch }) => { + const type = getNodeType(typeOrName, state.schema) + return liftListItem(type, 'listItems')(state, dispatch) + }, convertListItems, toggleList } @@ -242,7 +242,7 @@ export function TodoItemPastePlugin (editor: Editor): Plugin } // Strange conversion to be ok for both typescript and eslint // Is ok because rule with 'tag' property is already TagParseRule - const tagRule: TagParseRule = rule as any + const tagRule: TagParseRule = rule if (tagRule.node !== 'todoItem') { return rule } @@ -339,121 +339,98 @@ function tryReplaceTodoItemWithListItem ( const convertListItems: RawCommands['convertListItems'] = (listItemTypeOrName: string | NodeType) => - ({ editor, chain }) => { - const listItemType = getNodeType(listItemTypeOrName, editor.schema) - const { extensions } = editor.extensionManager - const { selection } = editor.state - const { $from, $to } = selection - const range = $from.blockRange($to) - if (range === null) return false - - const parentList = findParentNode((node) => isList(node.type.name, extensions))(selection) - if (parentList === undefined) return false - - let pos = parentList.pos - for (const child of parentList.node.children) { - let shouldConvert = false - if (listItemType.name === 'listItem') { - shouldConvert = + ({ editor, chain }) => { + const listItemType = getNodeType(listItemTypeOrName, editor.schema) + const { extensions } = editor.extensionManager + const { selection } = editor.state + const { $from, $to } = selection + const range = $from.blockRange($to) + if (range === null) return false + + const parentList = findParentNode((node) => isList(node.type.name, extensions))(selection) + if (parentList === undefined) return false + + let pos = parentList.pos + for (const child of parentList.node.children) { + let shouldConvert = false + if (listItemType.name === 'listItem') { + shouldConvert = child.type.name === 'todoItem' && child.attrs.checked !== true && typeof child.attrs.todoid !== 'string' - } else if (listItemType.name === 'todoItem') { - shouldConvert = child.type !== listItemType - } - if (shouldConvert) { - chain() - .command(({ tr }) => { - tr.setNodeMarkup(pos + 1, listItemType) - return true - }) - .run() - } - pos += child.nodeSize + } else if (listItemType.name === 'todoItem') { + shouldConvert = child.type !== listItemType } - return false + if (shouldConvert) { + chain() + .command(({ tr }) => { + tr.setNodeMarkup(pos + 1, listItemType) + return true + }) + .run() + } + pos += child.nodeSize } + return false + } // Fork of tiptap implementation with support for conversion-based transitions // https://github.com/ueberdosis/tiptap/blob/f3258d9ee5fb7979102fe63434f6ea4120507311/packages/core/src/commands/toggleList.ts const toggleList: RawCommands['toggleList'] = (listTypeOrName, itemTypeOrName, keepMarks, attributes = {}) => - ({ editor, tr, state, dispatch, chain, commands, can }) => { - const { extensions, splittableMarks } = editor.extensionManager - const listType = getNodeType(listTypeOrName, state.schema) - const itemType = getNodeType(itemTypeOrName, state.schema) - const { selection, storedMarks } = state - const { $from, $to } = selection - const range = $from.blockRange($to) + ({ editor, tr, state, dispatch, chain, commands, can }) => { + const { extensions, splittableMarks } = editor.extensionManager + const listType = getNodeType(listTypeOrName, state.schema) + const itemType = getNodeType(itemTypeOrName, state.schema) + const { selection, storedMarks } = state + const { $from, $to } = selection + const range = $from.blockRange($to) - const marks = storedMarks ?? (selection.$to.parentOffset !== 0 ? selection.$from.marks() : null) + const marks = storedMarks ?? (selection.$to.parentOffset !== 0 ? selection.$from.marks() : null) - if (range === null) { - return false - } + if (range === null) { + return false + } - const parentList = findParentNode((node) => isList(node.type.name, extensions))(selection) + const parentList = findParentNode((node) => isList(node.type.name, extensions))(selection) - if (range.depth >= 1 && parentList !== undefined && range.depth - parentList.depth <= 1) { + if (range.depth >= 1 && parentList !== undefined && range.depth - parentList.depth <= 1) { // remove list - if (parentList.node.type === listType) { - return commands.liftListItem(itemType) - } - // change list type - if (isList(parentList.node.type.name, extensions) && dispatch !== undefined) { - if (listType.validContent(parentList.node.content)) { - return chain() - .command(() => { - tr.setNodeMarkup(parentList.pos, listType) - return true - }) - .command(() => joinListBackwards(tr, listType)) - .command(() => joinListForwards(tr, listType)) - .convertListItems(itemTypeOrName) - .run() - } - if (state.schema.nodes.bulletList.validContent(parentList.node.content)) { - return chain() - .convertListItems(itemTypeOrName) - .command(() => { - tr.setNodeMarkup(parentList.pos, listType) - return true - }) - .command(() => joinListBackwards(tr, listType)) - .command(() => joinListForwards(tr, listType)) - .run() - } - } + if (parentList.node.type === listType) { + return commands.liftListItem(itemType) } - - if (keepMarks !== true || marks === null || dispatch === undefined) { - return ( - chain() - // try to convert node to default node if needed + // change list type + if (isList(parentList.node.type.name, extensions) && dispatch !== undefined) { + if (listType.validContent(parentList.node.content)) { + return chain() .command(() => { - const canWrapInList = can().wrapInList(listType, attributes) - - if (canWrapInList) { - return true - } - - return commands.clearNodes() + tr.setNodeMarkup(parentList.pos, listType) + return true }) - .wrapInList(listType, attributes) .command(() => joinListBackwards(tr, listType)) .command(() => joinListForwards(tr, listType)) + .convertListItems(itemTypeOrName) .run() - ) + } + if (state.schema.nodes.bulletList.validContent(parentList.node.content)) { + return chain() + .convertListItems(itemTypeOrName) + .command(() => { + tr.setNodeMarkup(parentList.pos, listType) + return true + }) + .command(() => joinListBackwards(tr, listType)) + .command(() => joinListForwards(tr, listType)) + .run() + } } + } + if (keepMarks !== true || marks === null || dispatch === undefined) { return ( chain() - // try to convert node to default node if needed + // try to convert node to default node if needed .command(() => { const canWrapInList = can().wrapInList(listType, attributes) - const filteredMarks = marks.filter((mark) => splittableMarks.includes(mark.type.name)) - - tr.ensureMarks(filteredMarks) - if (canWrapInList) { return true } @@ -467,6 +444,29 @@ const toggleList: RawCommands['toggleList'] = ) } + return ( + chain() + // try to convert node to default node if needed + .command(() => { + const canWrapInList = can().wrapInList(listType, attributes) + + const filteredMarks = marks.filter((mark) => splittableMarks.includes(mark.type.name)) + + tr.ensureMarks(filteredMarks) + + if (canWrapInList) { + return true + } + + return commands.clearNodes() + }) + .wrapInList(listType, attributes) + .command(() => joinListBackwards(tr, listType)) + .command(() => joinListForwards(tr, listType)) + .run() + ) + } + // Fork of tiptap implementation with support for conversion-based transitions // https://github.com/ueberdosis/tiptap/blob/f3258d9ee5fb7979102fe63434f6ea4120507311/packages/core/src/commands/toggleList.ts const joinListBackwards = (tr: Transaction, listType: NodeType): boolean => { diff --git a/plugins/text-editor-resources/src/components/extension/toolbar/EditorToolbar.svelte b/plugins/text-editor-resources/src/components/extension/toolbar/EditorToolbar.svelte index e52bce5cee..0b58589a51 100644 --- a/plugins/text-editor-resources/src/components/extension/toolbar/EditorToolbar.svelte +++ b/plugins/text-editor-resources/src/components/extension/toolbar/EditorToolbar.svelte @@ -33,7 +33,7 @@ let allActions: TextEditorAction[] = [] let actions: TextEditorAction[] = [] - async function updateActions (newActions: TextEditorAction[], ctx: ActionContext): Promise { + async function updateActions(newActions: TextEditorAction[], ctx: ActionContext): Promise { const out: TextEditorAction[] = [] for (const action of newActions) { const tester = action.visibilityTester diff --git a/plugins/text-editor-resources/src/components/extension/toolbar/toolbar.ts b/plugins/text-editor-resources/src/components/extension/toolbar/toolbar.ts index 136ac9adbd..bdddc549fc 100644 --- a/plugins/text-editor-resources/src/components/extension/toolbar/toolbar.ts +++ b/plugins/text-editor-resources/src/components/extension/toolbar/toolbar.ts @@ -545,12 +545,12 @@ function updateCursorFromMouseEvent (view: EditorView, event: MouseEvent): void disableCursor || range === undefined ? null : resolveCursor({ - editorState: view.state, - state, - range, - source: CursorSource.Mouse, - anchor: anchorElement - }) + editorState: view.state, + state, + range, + source: CursorSource.Mouse, + anchor: anchorElement + }) if (newCursor?.requireAnchoring === true && anchorElement === undefined) { newCursor = null diff --git a/plugins/text-editor-resources/src/components/note/ConfigureNotePopup.svelte b/plugins/text-editor-resources/src/components/note/ConfigureNotePopup.svelte index 815c615bd1..def9df5a4b 100644 --- a/plugins/text-editor-resources/src/components/note/ConfigureNotePopup.svelte +++ b/plugins/text-editor-resources/src/components/note/ConfigureNotePopup.svelte @@ -39,11 +39,11 @@ const dispatch = createEventDispatcher() - function handleOk (): void { + function handleOk(): void { handleUpdate(text, kind) } - function handleRemoveClick (): void { + function handleRemoveClick(): void { handleRemove() dispatch('close') } diff --git a/plugins/text-editor-resources/src/components/toc/TableOfContents.svelte b/plugins/text-editor-resources/src/components/toc/TableOfContents.svelte index 87c024b449..f0dabf9d42 100644 --- a/plugins/text-editor-resources/src/components/toc/TableOfContents.svelte +++ b/plugins/text-editor-resources/src/components/toc/TableOfContents.svelte @@ -30,13 +30,13 @@ $: minLevel = items.reduce((p, v) => Math.min(p, v.level), Infinity) $: maxLevel = items.reduce((p, v) => Math.max(p, v.level), 0) - function getLevelWidth (level: number): number { + function getLevelWidth(level: number): number { return (100 * (maxLevel - level + 1)) / (maxLevel - minLevel + 1) } let hovered = false - function handleOpenToc (ev: MouseEvent): void { + function handleOpenToc(ev: MouseEvent): void { ev.preventDefault() ev.stopPropagation() diff --git a/plugins/text-editor-resources/src/components/toc/TableOfContentsContent.svelte b/plugins/text-editor-resources/src/components/toc/TableOfContentsContent.svelte index a11595941a..d86bf009d2 100644 --- a/plugins/text-editor-resources/src/components/toc/TableOfContentsContent.svelte +++ b/plugins/text-editor-resources/src/components/toc/TableOfContentsContent.svelte @@ -26,7 +26,7 @@ $: minLevel = items.reduce((p, v) => Math.min(p, v.level), Infinity) - function getIndentLevel (level: number): number { + function getIndentLevel(level: number): number { return 1 * (level - minLevel) } diff --git a/plugins/text-editor-resources/src/index.ts b/plugins/text-editor-resources/src/index.ts index c6857677f6..ccff77869b 100644 --- a/plugins/text-editor-resources/src/index.ts +++ b/plugins/text-editor-resources/src/index.ts @@ -45,7 +45,7 @@ export { SmartPasteExtension as TransformPastedContentExtension } from './compon export { getReferenceFromUrl, getReferenceLabel, getTargetObjectFromUrl } from './components/extension/reference' export { TodoItemExtension, TodoListExtension } from './components/extension/todo/todo' -export * from '@hcengineering/presentation/src/types' +export type * from '@hcengineering/presentation/src/types' export { default as Collaboration } from './components/Collaboration.svelte' export { default as CollaborationDiffViewer } from './components/CollaborationDiffViewer.svelte' export { default as CollaborativeAttributeBox } from './components/CollaborativeAttributeBox.svelte' diff --git a/plugins/text-editor-resources/src/provider/hocuspocus.ts b/plugins/text-editor-resources/src/provider/hocuspocus.ts index 52036f2db3..e05ee3bf07 100644 --- a/plugins/text-editor-resources/src/provider/hocuspocus.ts +++ b/plugins/text-editor-resources/src/provider/hocuspocus.ts @@ -17,10 +17,10 @@ import { HocuspocusProvider, type HocuspocusProviderConfiguration } from '@hocus import { type Provider } from './types' export type HocuspocusCollabProviderConfiguration = HocuspocusProviderConfiguration & -Required> & -Omit & { - parameters: HocuspocusCollabProviderURLParameters -} + Required> & + Omit & { + parameters: HocuspocusCollabProviderURLParameters + } export interface HocuspocusCollabProviderURLParameters { content: Ref | null diff --git a/plugins/text-editor/src/index.ts b/plugins/text-editor/src/index.ts index 1cbca920f5..1ee9ebdc06 100644 --- a/plugins/text-editor/src/index.ts +++ b/plugins/text-editor/src/index.ts @@ -17,6 +17,6 @@ import { textEditorId } from './plugin' export { default } from './plugin' -export * from '@hcengineering/presentation/src/types' +export type * from '@hcengineering/presentation/src/types' export * from './types' export { textEditorId } diff --git a/plugins/uploader/src/index.ts b/plugins/uploader/src/index.ts index ef370df4ba..5e08c4b844 100644 --- a/plugins/uploader/src/index.ts +++ b/plugins/uploader/src/index.ts @@ -15,7 +15,7 @@ import { uploaderId, uploaderPlugin } from './plugin' -export * from './types' +export type * from './types' export * from './utils' export { uploaderId } diff --git a/plugins/view/src/types.ts b/plugins/view/src/types.ts index a9e2649de0..54e7c90ed5 100644 --- a/plugins/view/src/types.ts +++ b/plugins/view/src/types.ts @@ -350,12 +350,12 @@ export interface ListHeaderExtra extends Class { * @public */ export type SortFunc = Resource< -( - client: TxOperations, - values: PrimitiveType[], - space: Ref | undefined, - viewletDescriptorId?: Ref -) => Promise + ( + client: TxOperations, + values: PrimitiveType[], + space: Ref | undefined, + viewletDescriptorId?: Ref + ) => Promise > /** @@ -369,12 +369,12 @@ export interface ClassSortFuncs extends Class { * @public */ export type GetAllValuesFunc = Resource< -( - query: DocumentQuery | undefined, - onUpdate: () => void, - queryId: Ref, - attr: AnyAttribute -) => Promise + ( + query: DocumentQuery | undefined, + onUpdate: () => void, + queryId: Ref, + attr: AnyAttribute + ) => Promise > /** @@ -431,13 +431,13 @@ export type AggregationManagerResource = Resource> * @public */ export type CreateAggregationManagerFunc = Resource< -( - client: Client, - lqCallback: () => void, - setStore: (manager: DocManager) => void, - categorizingFunc: (doc: any, target: any) => boolean, - _class: Ref> -) => IAggregationManager + ( + client: Client, + lqCallback: () => void, + setStore: (manager: DocManager) => void, + categorizingFunc: (doc: any, target: any) => boolean, + _class: Ref> + ) => IAggregationManager > /** @@ -771,7 +771,7 @@ export interface ViewOption { * @public */ export type ViewOptionsAction = Resource< -(value: any, query: FindOptions | undefined) => FindOptions + (value: any, query: FindOptions | undefined) => FindOptions > /** @@ -811,7 +811,7 @@ export interface CategoryOption extends ViewOption { * @public */ export type ViewQueryAction = Resource< -(value: any, query: DocumentQuery) => DocumentQuery | Promise> + (value: any, query: DocumentQuery) => DocumentQuery | Promise> > /** diff --git a/plugins/workbench/src/types.ts b/plugins/workbench/src/types.ts index f15bf52081..5f02b02eda 100644 --- a/plugins/workbench/src/types.ts +++ b/plugins/workbench/src/types.ts @@ -177,7 +177,7 @@ export interface SpecialNavModel { spaceClass?: Ref> checkIsDisabled?: Resource<() => Promise> notificationsCountProvider?: Resource< - (inboxNotificationsByContext: Map, InboxNotification[]>) => number + (inboxNotificationsByContext: Map, InboxNotification[]>) => number > navigationModel?: ParentsNavigationModel queryBuilder?: Resource<() => Promise>> diff --git a/pods/link-preview/src/server.ts b/pods/link-preview/src/server.ts index 4a8512988d..c76e22d280 100644 --- a/pods/link-preview/src/server.ts +++ b/pods/link-preview/src/server.ts @@ -73,10 +73,10 @@ export async function createServer (ctx: MeasureContext, config: Config): Promis const wrapRequest = (ctx: MeasureContext, name: string, fn: AsyncRequestHandler) => - (req: RequestWithAuth, res: Response, next: NextFunction) => { + (req: RequestWithAuth, res: Response, next: NextFunction) => { // eslint-disable-next-line @typescript-eslint/no-floating-promises - handleRequest(ctx, name, fn, req, res, next) - } + handleRequest(ctx, name, fn, req, res, next) + } app.use(morgan('short', { stream: new LogStream() })) diff --git a/pods/preview/src/cache.ts b/pods/preview/src/cache.ts index b9ef472214..bd20c480f0 100644 --- a/pods/preview/src/cache.ts +++ b/pods/preview/src/cache.ts @@ -159,7 +159,7 @@ class DiskCache implements Cache { return entry } - async delete (key: string): Promise { + delete (key: string): void { this.cache.delete(key) } diff --git a/pods/preview/src/server.ts b/pods/preview/src/server.ts index 32fa7d67f0..8278ae6786 100644 --- a/pods/preview/src/server.ts +++ b/pods/preview/src/server.ts @@ -165,10 +165,10 @@ export async function createServer (ctx: MeasureContext, config: Config): Promis const wrapRequest = (ctx: MeasureContext, name: string, fn: AsyncRequestHandler) => - (req: RequestWithAuth, res: Response, next: NextFunction) => { + (req: RequestWithAuth, res: Response, next: NextFunction) => { // eslint-disable-next-line @typescript-eslint/no-floating-promises - handleRequest(ctx, name, fn, req, res, next) - } + handleRequest(ctx, name, fn, req, res, next) + } app.use(morgan('short', { stream: new LogStream() })) diff --git a/qms-tests/sanity/tests/auth/auth.setup.ts b/qms-tests/sanity/tests/auth/auth.setup.ts index c5fd2c73bb..942c841a6d 100644 --- a/qms-tests/sanity/tests/auth/auth.setup.ts +++ b/qms-tests/sanity/tests/auth/auth.setup.ts @@ -18,7 +18,7 @@ const authFileSecond = path.join(__dirname, '../../.auth/storageSecond.json') const authFileThird = path.join(__dirname, '../../.auth/storageThird.json') const authFileQARA = path.join(__dirname, '../../.auth/storageQaraManager.json') -async function authenticate(page: Page, user: string, password: string): Promise { +async function authenticate (page: Page, user: string, password: string): Promise { const loginPage = new LoginPage(page) await (await page.goto(`${PlatformURI}`))?.finished() await loginPage.login(user, password) diff --git a/qms-tests/sanity/tests/documents/common-documents-steps.ts b/qms-tests/sanity/tests/documents/common-documents-steps.ts index 3da207defb..a4805e7b73 100644 --- a/qms-tests/sanity/tests/documents/common-documents-steps.ts +++ b/qms-tests/sanity/tests/documents/common-documents-steps.ts @@ -5,7 +5,7 @@ import { NavigationMenuPage } from '../model/documents/navigation-menu-page' import { CategoriesPage } from '../model/documents/categories-page' import { CategoryCreatePopup } from '../model/documents/category-create-popup' -export async function prepareDocumentStep( +export async function prepareDocumentStep ( page: Page, document: NewDocument, stepNumber: number = 1, @@ -20,7 +20,7 @@ export async function prepareDocumentStep( }) } -export async function createTemplateStep( +export async function createTemplateStep ( page: Page, title: string, description: string, @@ -34,7 +34,7 @@ export async function createTemplateStep( }) } -export async function prepareCategoryStep(page: Page, newCategory: NewCategory): Promise { +export async function prepareCategoryStep (page: Page, newCategory: NewCategory): Promise { await test.step('1. Create a new category', async () => { const navigationMenuPage = new NavigationMenuPage(page) await navigationMenuPage.buttonCategories.click() diff --git a/qms-tests/sanity/tests/model/calendar-page.ts b/qms-tests/sanity/tests/model/calendar-page.ts index ca1a07fdc8..c240881a60 100644 --- a/qms-tests/sanity/tests/model/calendar-page.ts +++ b/qms-tests/sanity/tests/model/calendar-page.ts @@ -10,7 +10,7 @@ export class CalendarPage extends CommonPage { readonly inputPopupTime: Locator readonly inputPopupDateSave: Locator - constructor(page: Page) { + constructor (page: Page) { super() this.page = page this.buttonDatePopupToday = page.locator('div.popup div.today:not(.wrongMonth)') @@ -21,7 +21,7 @@ export class CalendarPage extends CommonPage { this.inputPopupDateSave = page.locator('div[class*="date-popup"] div.footer button') } - async fillSelectDatePopup(day: string, month: string, year: string, time: string): Promise { + async fillSelectDatePopup (day: string, month: string, year: string, time: string): Promise { await this.inputPopupDateDay.click() await this.inputPopupDateDay.pressSequentially(day) await this.inputPopupDateMonth.click() @@ -35,7 +35,7 @@ export class CalendarPage extends CommonPage { await this.inputPopupDateSave.click() } - async fillSelectDateByShortcut(shortcut: string): Promise { + async fillSelectDateByShortcut (shortcut: string): Promise { await this.page.locator('div.shift-container div.btn > span', { hasText: shortcut }).click() } } diff --git a/qms-tests/sanity/tests/model/common-page.ts b/qms-tests/sanity/tests/model/common-page.ts index 7e534f5164..12969dff65 100644 --- a/qms-tests/sanity/tests/model/common-page.ts +++ b/qms-tests/sanity/tests/model/common-page.ts @@ -1,7 +1,7 @@ import { expect, Page } from '@playwright/test' export class CommonPage { - async selectListItemWithSearch(page: Page, name: string, fullWordSearch: boolean = false): Promise { + async selectListItemWithSearch (page: Page, name: string, fullWordSearch: boolean = false): Promise { if (name !== 'first') { const searchWord = fullWordSearch ? name : name.split(' ')[0] await page.locator('div.selectPopup input').fill(searchWord) @@ -9,15 +9,15 @@ export class CommonPage { await page.locator('div.selectPopup div.list-item', { hasText: name }).click({ delay: 100 }) } - async selectListItem(page: Page, name: string): Promise { + async selectListItem (page: Page, name: string): Promise { await page.locator('div.selectPopup div.list-item', { hasText: name }).click({ delay: 100 }) } - async pressCreateButtonSelectPopup(page: Page): Promise { + async pressCreateButtonSelectPopup (page: Page): Promise { await page.locator('div.selectPopup div.header button:last-child').click() } - async addNewTagPopup(page: Page, title: string, description: string): Promise { + async addNewTagPopup (page: Page, title: string, description: string): Promise { await page.locator('div.popup form[id="tags:string:AddTag"] input[placeholder$="title"]').fill(title) await page .locator('div.popup form[id="tags:string:AddTag"] input[placeholder="Please type description here"]') @@ -25,20 +25,20 @@ export class CommonPage { await page.locator('div.popup form[id="tags:string:AddTag"] button[type="submit"]').click() } - async selectMenuItem(page: Page, point: string): Promise { + async selectMenuItem (page: Page, point: string): Promise { await page.locator('div.selectPopup button.menu-item', { hasText: point }).click() } - async pressYesDeletePopup(page: Page): Promise { + async pressYesDeletePopup (page: Page): Promise { await page.locator('div.popup button.dangerous').click() await expect(page.locator('div.popup button.dangerous')).toBeHidden() } - async selectFromDropdown(page: Page, point: string): Promise { + async selectFromDropdown (page: Page, point: string): Promise { await page.locator('div[class$="opup"] span[class*="label"]', { hasText: point }).click() } - async pressYesForPopup(page: Page): Promise { + async pressYesForPopup (page: Page): Promise { await expect(page.locator('div.popup button[type="submit"]')).toBeVisible() await page.locator('div.popup button[type="submit"]').click() } diff --git a/qms-tests/sanity/tests/model/contact-page.ts b/qms-tests/sanity/tests/model/contact-page.ts index 7b4b541ab4..8149bb630d 100644 --- a/qms-tests/sanity/tests/model/contact-page.ts +++ b/qms-tests/sanity/tests/model/contact-page.ts @@ -3,7 +3,7 @@ import { expect, type Locator, type Page } from '@playwright/test' export class ContactPage { page: Page - constructor(page: Page) { + constructor (page: Page) { this.page = page } @@ -14,15 +14,15 @@ export class ContactPage { readonly employeeEntry = (first: string, last: string): Locator => this.page.locator(`td:has-text("${last} ${first}")`) - async clickAppContact(): Promise { + async clickAppContact (): Promise { await this.appContact().click() } - async clickEmployeeNavElement(Employee: string): Promise { + async clickEmployeeNavElement (Employee: string): Promise { await this.employeeNavElement(Employee).click() } - async checkIfPersonIsCreated(first: string, last: string): Promise { + async checkIfPersonIsCreated (first: string, last: string): Promise { await expect(this.employeeEntry(first, last)).toBeVisible() } } diff --git a/qms-tests/sanity/tests/model/documents/categories-page.ts b/qms-tests/sanity/tests/model/documents/categories-page.ts index 409239777a..dc589a653d 100644 --- a/qms-tests/sanity/tests/model/documents/categories-page.ts +++ b/qms-tests/sanity/tests/model/documents/categories-page.ts @@ -5,19 +5,19 @@ export class CategoriesPage extends CalendarPage { readonly page: Page readonly buttonCreateCategory: Locator - constructor(page: Page) { + constructor (page: Page) { super(page) this.page = page this.buttonCreateCategory = page.getByRole('button', { name: 'Category' }) } - async openCategory(categoryTitle: string): Promise { + async openCategory (categoryTitle: string): Promise { await this.page .locator(`//span[text()='${categoryTitle}']/../..//div[contains(@class, "antiTable-cells__firstCell")]/a`) .click() } - async checkCategoryNotExist(categoryTitle: string): Promise { + async checkCategoryNotExist (categoryTitle: string): Promise { await expect( this.page.locator( `//span[text()='${categoryTitle}']/../..//div[contains(@class, "antiTable-cells__firstCell")]/a` diff --git a/qms-tests/sanity/tests/model/documents/category-create-popup.ts b/qms-tests/sanity/tests/model/documents/category-create-popup.ts index 63f6f7aab6..7ab527c793 100644 --- a/qms-tests/sanity/tests/model/documents/category-create-popup.ts +++ b/qms-tests/sanity/tests/model/documents/category-create-popup.ts @@ -11,7 +11,7 @@ export class CategoryCreatePopup extends CalendarPage { readonly inputAttachFile: Locator readonly buttonNewCategoryCreate: Locator - constructor(page: Page) { + constructor (page: Page) { super(page) this.page = page this.inputNewCategoryTitle = page.locator('input[placeholder="Title"]') @@ -23,7 +23,7 @@ export class CategoryCreatePopup extends CalendarPage { ) } - async createCategory(data: NewCategory): Promise { + async createCategory (data: NewCategory): Promise { await this.inputNewCategoryTitle.fill(data.title) await this.inputNewCategoryCode.fill(data.code) await this.inputNewCategoryDescription.fill(data.description) diff --git a/qms-tests/sanity/tests/model/documents/category-details-page.ts b/qms-tests/sanity/tests/model/documents/category-details-page.ts index d02e7c4e8b..8aaac7a5a8 100644 --- a/qms-tests/sanity/tests/model/documents/category-details-page.ts +++ b/qms-tests/sanity/tests/model/documents/category-details-page.ts @@ -12,7 +12,7 @@ export class CategoryDetailsPage extends CalendarPage { readonly textAttachFile: Locator readonly buttonMoreActions: Locator - constructor(page: Page) { + constructor (page: Page) { super(page) this.page = page this.inputCategoryTitle = page.locator('input[placeholder="documents:string:DomainTitle"]') @@ -23,11 +23,11 @@ export class CategoryDetailsPage extends CalendarPage { this.textAttachFile = page.locator('div.attachment-grid-container div[class*="attachment"] div.name') } - async checkTitle(categoryTitle: string): Promise { + async checkTitle (categoryTitle: string): Promise { await expect(this.inputCategoryTitle).toHaveValue(categoryTitle) } - async editCategory(data: UpdateCategory): Promise { + async editCategory (data: UpdateCategory): Promise { await this.textDescription.fill(data.description) if (data.attachFileName != null) { @@ -36,7 +36,7 @@ export class CategoryDetailsPage extends CalendarPage { } } - async checkCategory(data: NewCategory): Promise { + async checkCategory (data: NewCategory): Promise { await expect(this.inputCategoryTitle).toHaveValue(data.title) await expect(this.inputCategoryCode).toHaveValue(data.code) await expect(this.textDescription).toContainText(data.description) @@ -46,13 +46,13 @@ export class CategoryDetailsPage extends CalendarPage { } } - async executeMoreAction(action: string): Promise { + async executeMoreAction (action: string): Promise { await this.buttonMoreActions.click() await this.selectFromDropdown(this.page, action) await this.pressYesDeletePopup(this.page) } - async checkMoreActionNotExist(action: string): Promise { + async checkMoreActionNotExist (action: string): Promise { await this.buttonMoreActions.click() await expect(this.page.locator('div.popup button.ap-menuItem', { hasText: action })).toBeVisible({ visible: false }) } diff --git a/qms-tests/sanity/tests/model/documents/document-approvals-page.ts b/qms-tests/sanity/tests/model/documents/document-approvals-page.ts index 7b61d7ab61..92b95f2b4c 100644 --- a/qms-tests/sanity/tests/model/documents/document-approvals-page.ts +++ b/qms-tests/sanity/tests/model/documents/document-approvals-page.ts @@ -4,12 +4,12 @@ import { DocumentCommonPage } from './document-common-page' export class DocumentApprovalsPage extends DocumentCommonPage { readonly page: Page - constructor(page: Page) { + constructor (page: Page) { super(page) this.page = page } - async checkRejectApproval(approvalName: string, message: string): Promise { + async checkRejectApproval (approvalName: string, message: string): Promise { await expect( this.page .locator('div.approval-status-message', { hasText: message }) @@ -19,7 +19,7 @@ export class DocumentApprovalsPage extends DocumentCommonPage { ).toHaveText(approvalName) } - async checkSuccessApproval(approvalName: string): Promise { + async checkSuccessApproval (approvalName: string): Promise { await expect( this.page.locator('svg[fill*="accepted"]').locator('xpath=../..').locator('span.ap-label').last() ).toHaveText(approvalName) diff --git a/qms-tests/sanity/tests/model/documents/document-comments-page.ts b/qms-tests/sanity/tests/model/documents/document-comments-page.ts index 1ec51bddc3..e63a23a385 100644 --- a/qms-tests/sanity/tests/model/documents/document-comments-page.ts +++ b/qms-tests/sanity/tests/model/documents/document-comments-page.ts @@ -6,35 +6,35 @@ export class DocumentCommentsPage extends DocumentCommonPage { readonly buttonDocumentTitle: Locator readonly comments: Locator - constructor(page: Page) { + constructor (page: Page) { super(page) this.page = page this.buttonDocumentTitle = page.locator('button.version-item span.name') this.comments = page.locator('div[data-float="aside"]').getByTestId('comment') } - getCommentLocator(message: string): Locator { + getCommentLocator (message: string): Locator { return this.comments.filter({ has: this.page.locator('div.activityMessage p.p-inline', { hasText: message }) }) } - async checkCommentExist(message: string): Promise { + async checkCommentExist (message: string): Promise { await expect(this.getCommentLocator(message)).toBeVisible() } - async checkCommentDoesNotExist(message: string): Promise { + async checkCommentDoesNotExist (message: string): Promise { await expect(this.getCommentLocator(message)).toHaveCount(0) } - async resolveComment(message: string): Promise { + async resolveComment (message: string): Promise { const commentLocator = this.getCommentLocator(message) await commentLocator.hover() await commentLocator.locator('div.tools button').click() } - async resolveAllComments(): Promise { + async resolveAllComments (): Promise { const buttonsCount: number = await this.page.locator('div[data-float="aside"] div.root div.tools button').count() for (let i = 0; i < buttonsCount; i++) { await this.page.locator('div[data-float="aside"] div.root').first().click() @@ -42,25 +42,25 @@ export class DocumentCommentsPage extends DocumentCommonPage { } } - async checkCommentNotExist(message: string): Promise { + async checkCommentNotExist (message: string): Promise { await expect(this.page.locator('div[data-float="aside"] div.root span', { hasText: message })).toHaveCount(0) } - async checkCommentCanBeResolved(message: string): Promise { + async checkCommentCanBeResolved (message: string): Promise { const commentLocator = this.getCommentLocator(message) await commentLocator.hover() await expect(commentLocator.locator('div.tools button')).toBeEnabled() } - async checkCommentCanNotBeResolved(message: string, position: number): Promise { + async checkCommentCanNotBeResolved (message: string, position: number): Promise { const commentLocator = this.getCommentLocator(message) await commentLocator.hover() await expect(commentLocator.locator('div.tools button')).not.toBeVisible() } - async addReplyInPopupByCommentId(commentId: number, replyText: string): Promise { + async addReplyInPopupByCommentId (commentId: number, replyText: string): Promise { const comment = this.page .locator('div.popup div.root div.header span:first-child', { hasText: String(commentId) }) .locator('xpath=../../../..') @@ -68,7 +68,7 @@ export class DocumentCommentsPage extends DocumentCommonPage { await comment.locator('div.ref-input div.buttons-panel > button').click() } - async checkCommentInPopupById( + async checkCommentInPopupById ( commentId: number, header: string, author: string, @@ -95,7 +95,7 @@ export class DocumentCommentsPage extends DocumentCommonPage { ).toHaveText(reply) } - async checkCommentInPanelById( + async checkCommentInPanelById ( commentId: number, header: string, author: string, diff --git a/qms-tests/sanity/tests/model/documents/document-common-page.ts b/qms-tests/sanity/tests/model/documents/document-common-page.ts index fefdfd42d0..91d5ecfcd5 100644 --- a/qms-tests/sanity/tests/model/documents/document-common-page.ts +++ b/qms-tests/sanity/tests/model/documents/document-common-page.ts @@ -11,7 +11,7 @@ export class DocumentCommonPage extends CalendarPage { readonly buttonHistoryTab: Locator readonly inputPasswordConfirm: Locator - constructor(page: Page) { + constructor (page: Page) { super(page) this.page = page this.inputMessageText = page.locator('div.popup div.tiptap') @@ -23,7 +23,7 @@ export class DocumentCommonPage extends CalendarPage { this.inputPasswordConfirm = page.locator('input[name="documents\\:string\\:Password"]') } - async addMessage(message: string): Promise { + async addMessage (message: string): Promise { await this.inputMessageText.fill(message) await this.buttonMessageSend.click() } diff --git a/qms-tests/sanity/tests/model/documents/document-content-page.ts b/qms-tests/sanity/tests/model/documents/document-content-page.ts index 080bccf075..93c2af9715 100644 --- a/qms-tests/sanity/tests/model/documents/document-content-page.ts +++ b/qms-tests/sanity/tests/model/documents/document-content-page.ts @@ -102,7 +102,7 @@ export class DocumentContentPage extends DocumentCommonPage { readonly teamspaceArrow: Locator readonly infoModal: Locator - constructor(page: Page) { + constructor (page: Page) { super(page) this.page = page this.panel = page.locator('.popupPanel-body') @@ -214,96 +214,96 @@ export class DocumentContentPage extends DocumentCommonPage { this.infoModal = page.locator('#btnGID-info') } - async checkDocumentTitle(title: string): Promise { + async checkDocumentTitle (title: string): Promise { await expect(this.buttonDocumentTitle).toContainText(title) } - async clickDocumentsSpace(): Promise { + async clickDocumentsSpace (): Promise { await this.documentsSpace.click() } - async clickCreateTeamspace(): Promise { + async clickCreateTeamspace (): Promise { await this.createTeamspace.click() } - async clickContacts(): Promise { + async clickContacts (): Promise { await this.contacts.click() } - async clickEmployee(): Promise { + async clickEmployee (): Promise { await this.employee.click() } - async selectEmployee(employee: string): Promise { + async selectEmployee (employee: string): Promise { await this.page.getByRole('link', { name: employee }).click() } - async clickEmployeeDropdown(): Promise { + async clickEmployeeDropdown (): Promise { await this.employeeDropdown.click() } - async clickKickEmployee(): Promise { + async clickKickEmployee (): Promise { await this.kickEmployee.click() } - async clickConfirmKickEmployee(): Promise { + async clickConfirmKickEmployee (): Promise { await this.confirmKickEmployee.click() } - async toggleHideInactive(): Promise { + async toggleHideInactive (): Promise { await this.page.locator('[data-id="btn-viewOptions"]').click() await this.page.locator('.antiCard-menu__item', { hasText: 'Hide inactive' }).click() await this.page.keyboard.press('Escape') } - async checkIfEmployeeIsKicked(employee: string): Promise { + async checkIfEmployeeIsKicked (employee: string): Promise { await this.page.getByRole('link', { name: 'Employee' }).getByRole('button').first().click() await this.toggleHideInactive() await expect(this.page.getByText(employee + ' Inactive')).toBeVisible() } - async checkIfUserCanKick(): Promise { + async checkIfUserCanKick (): Promise { await expect(this.kickEmployee).not.toBeVisible() } - async clickOpenTeam(): Promise { + async clickOpenTeam (): Promise { await this.openTeam.click() } - async checkIfReviewersAndApproversAreVisible(): Promise { + async checkIfReviewersAndApproversAreVisible (): Promise { await expect(this.panel.getByText('Appleseed John').first()).toBeVisible() await expect(this.panel.getByText('Dirak Kainin')).toBeVisible() await expect(this.panel.getByText('Appleseed John').nth(1)).toBeVisible() } - async checkTheUserCantChangeReviewersAndApprovers(): Promise { + async checkTheUserCantChangeReviewersAndApprovers (): Promise { await this.panel.getByText('Appleseed John').first().click() await expect(this.panel.getByText('Dirak Kainin').nth(1)).not.toBeVisible() await this.panel.getByText('Dirak Kainin').click() await expect(this.panel.getByText('Dirak Kainin').nth(1)).not.toBeVisible() } - async clickDocumentHeader(name: string): Promise { + async clickDocumentHeader (name: string): Promise { await this.page.getByRole('button', { name }).click() } - async clickOnAddCategoryButton(): Promise { + async clickOnAddCategoryButton (): Promise { await this.addCategoryButton.click() } - async clickNewDocumentArrow(): Promise { + async clickNewDocumentArrow (): Promise { await this.newDocumentArrow.click() } - async clickNewTemplate(): Promise { + async clickNewTemplate (): Promise { await this.newTemplate.click() } - async clickDocumentThreeDots(): Promise { + async clickDocumentThreeDots (): Promise { await this.documentThreeDots.click() } - async selectControlDocumentSubcategory( + async selectControlDocumentSubcategory ( buttonName: 'My Document' | 'Library' | 'Templates' | 'Categories' | 'General documentation' ): Promise { switch (buttonName) { @@ -327,7 +327,7 @@ export class DocumentContentPage extends DocumentCommonPage { } } - async addMemberToQualityDocument(): Promise { + async addMemberToQualityDocument (): Promise { await this.qualityDocument.hover() await this.qualityButtonDots.click() await this.editDocumentSpace.click() @@ -337,11 +337,11 @@ export class DocumentContentPage extends DocumentCommonPage { await this.saveButton.click() } - async clickAddMember(): Promise { + async clickAddMember (): Promise { await this.addMember.first().click() } - async checkIfMemberDropdownHasMember(member: string, contains: boolean): Promise { + async checkIfMemberDropdownHasMember (member: string, contains: boolean): Promise { if (contains) { await expect(this.addMemberDropdown).toContainText(member) } else { @@ -349,44 +349,44 @@ export class DocumentContentPage extends DocumentCommonPage { } } - async fillCategoryForm(categoryTitle: string, description: string, categoryCode: string): Promise { + async fillCategoryForm (categoryTitle: string, description: string, categoryCode: string): Promise { await this.categoryTitle.fill(categoryTitle) await this.description.fill(description) await this.categoryCode.fill(categoryCode) await this.createButton.click() } - async clickApproveButtonAndFillPassword(): Promise { + async clickApproveButtonAndFillPassword (): Promise { await this.approveButton.click() await this.inputPassword.fill(PlatformPassword) await this.buttonSubmit.click() } - async clickApproveButton(): Promise { + async clickApproveButton (): Promise { await this.approveButton.click() } - async expectCategoryCreated(categoryTitle: string, categoryCode: string): Promise { + async expectCategoryCreated (categoryTitle: string, categoryCode: string): Promise { await expect(this.page.getByText(categoryTitle)).toBeVisible() await expect(this.page.getByRole('link', { name: categoryCode })).toBeVisible() } - async checkIfTextExists(text: string): Promise { + async checkIfTextExists (text: string): Promise { await expect(this.textContainer).toContainText(text) } - async hoverOverGeneralDocumentation(): Promise { + async hoverOverGeneralDocumentation (): Promise { await this.generalDocumentation.hover() } - async addReasonAndImpactToTheDocument(description: string, reason: string): Promise { + async addReasonAndImpactToTheDocument (description: string, reason: string): Promise { await this.page.getByText('Reason & Impact').click() await this.page.getByPlaceholder('Describe what was changed...').fill(description) await this.page.getByPlaceholder('Describe why it was changed...').click() await this.page.getByPlaceholder('Describe why it was changed...').fill(reason) } - async selectRelease(version: string): Promise { + async selectRelease (version: string): Promise { await this.page.getByText('Release', { exact: true }).click() if (version === 'Major') { await this.page.getByText('Major').click() @@ -396,7 +396,7 @@ export class DocumentContentPage extends DocumentCommonPage { } } - async addReviewersFromTeam(anotherReviewer: boolean = false): Promise { + async addReviewersFromTeam (anotherReviewer: boolean = false): Promise { await this.page.waitForTimeout(500) await this.page.getByText('Team').click() await this.page.getByText('Add member').nth(1).click() @@ -407,19 +407,19 @@ export class DocumentContentPage extends DocumentCommonPage { await this.page.keyboard.press('Escape') } - async addApproversFromTeam(): Promise { + async addApproversFromTeam (): Promise { await this.page.waitForTimeout(500) await this.page.getByText('Add member').nth(2).click() await this.page.getByRole('button', { name: 'DK Dirak Kainin' }).click() await this.page.keyboard.press('Escape') } - async sendForReview(): Promise { + async sendForReview (): Promise { await this.buttonSendForReview.click() await this.buttonSubmitReview.click() } - async addContent(content: string, append: boolean = false, newParagraph: boolean = false): Promise { + async addContent (content: string, append: boolean = false, newParagraph: boolean = false): Promise { if (newParagraph) { await this.contentLocator.press('Enter') } @@ -431,21 +431,21 @@ export class DocumentContentPage extends DocumentCommonPage { } } - async replaceContent(content: string): Promise { + async replaceContent (content: string): Promise { await this.contentLocator.clear({ force: true }) await this.contentLocator.fill(content) } - async checkContent(content: string): Promise { + async checkContent (content: string): Promise { await expect(this.contentLocator).toHaveText(content) } - async changeSpaceInCreateDocumentForm(space: string): Promise { + async changeSpaceInCreateDocumentForm (space: string): Promise { await this.changeSpaceButton.click() await this.page.getByRole('button', { name: space, exact: true }).nth(1).click() } - async executeMoreActions(action: string): Promise { + async executeMoreActions (action: string): Promise { await this.buttonMoreActions.click() await this.selectFromDropdown(this.page, action) if (action === 'Delete') { @@ -453,15 +453,15 @@ export class DocumentContentPage extends DocumentCommonPage { } } - async checkIfFolderExists(folderName: string): Promise { + async checkIfFolderExists (folderName: string): Promise { await expect(this.page.getByRole('button', { name: folderName })).toBeVisible() } - async clickAddFolderButton(): Promise { + async clickAddFolderButton (): Promise { await this.addSpaceButton.click() } - async chooseFilter(category: string): Promise { + async chooseFilter (category: string): Promise { await this.filter.click() await this.filterCategory.hover() await this.page.getByRole('button', { name: 'Category', exact: true }).click() @@ -469,15 +469,15 @@ export class DocumentContentPage extends DocumentCommonPage { await this.page.keyboard.press('Escape') } - async checkIfFilterIsApplied(code: string): Promise { + async checkIfFilterIsApplied (code: string): Promise { await expect(this.page.getByText(code, { exact: true })).toBeVisible() } - async checkIfCategoryExists(category: string): Promise { + async checkIfCategoryExists (category: string): Promise { await expect(this.page.getByText(category)).toBeVisible() } - async fillDocumentSpaceForm(spaceName: string): Promise { + async fillDocumentSpaceForm (spaceName: string): Promise { await this.inputSpaceName.fill(spaceName) await this.roleSelector.nth(2).click() await this.selectRoleMemberAJ.nth(2).click() @@ -489,7 +489,7 @@ export class DocumentContentPage extends DocumentCommonPage { await this.createButton.click() } - async fillDocumentAndSetMember(spaceName: string): Promise { + async fillDocumentAndSetMember (spaceName: string): Promise { await this.inputSpaceName.fill(spaceName) await this.page.getByRole('button', { name: 'AJ Appleseed John' }).first().click() await this.page.getByRole('button', { name: 'AQ Admin Qara' }).click() @@ -499,13 +499,13 @@ export class DocumentContentPage extends DocumentCommonPage { await this.page.getByRole('button', { name: 'Create' }).click({ timeout: 3000 }) } - async checkIfUserCanCreateDocument(spaceName: string): Promise { + async checkIfUserCanCreateDocument (spaceName: string): Promise { await this.page.getByRole('button', { name: 'New document', exact: true }).click() await this.page.locator('[id="space\\.selector"]').click() await expect(this.page.locator('.selectPopup').getByRole('button', { name: spaceName })).not.toBeVisible() } - async fillDocumentAndSetMemberPrivate(spaceName: string): Promise { + async fillDocumentAndSetMemberPrivate (spaceName: string): Promise { await this.inputTeamspaceName.fill(spaceName) await this.privateToggle.click() await this.page.getByRole('button', { name: 'DK Dirak Kainin' }).nth(1).click() @@ -514,11 +514,11 @@ export class DocumentContentPage extends DocumentCommonPage { await this.page.getByRole('button', { name: 'Create', exact: true }).click() } - async clickTeamspaceArrow(): Promise { + async clickTeamspaceArrow (): Promise { await this.teamspaceArrow.click() } - async clickOnTeamspaceOrArrow(): Promise { + async clickOnTeamspaceOrArrow (): Promise { const teamspaceOrArrow = await this.page.isVisible('.w-full > button:nth-child(2)') if (teamspaceOrArrow) { await this.clickTeamspaceArrow() @@ -528,7 +528,7 @@ export class DocumentContentPage extends DocumentCommonPage { } } - async fillQuaraManager(spaceName: string): Promise { + async fillQuaraManager (spaceName: string): Promise { await this.inputSpaceName.fill(spaceName) await this.roleSelector.nth(2).click() await this.page.getByRole('button', { name: 'DK Dirak Kainin' }).nth(2).click() @@ -537,7 +537,7 @@ export class DocumentContentPage extends DocumentCommonPage { await this.createButton.click() } - async fillDocumentSpaceFormManager(spaceName: string): Promise { + async fillDocumentSpaceFormManager (spaceName: string): Promise { await this.inputSpaceName.fill(spaceName) await this.roleSelector.nth(1).click() await this.selectRoleMemberDK.nth(2).click() @@ -546,7 +546,7 @@ export class DocumentContentPage extends DocumentCommonPage { await this.createButton.click() } - async fillTeamspaceFormManager(spaceName: string): Promise { + async fillTeamspaceFormManager (spaceName: string): Promise { await this.page.getByPlaceholder('New teamspace').fill(spaceName) // await this.page.getByRole('button', { name: 'DK Dirak Kainin' }).first().click() // await this.page.getByRole('button', { name: 'DK Dirak Kainin' }).nth(2).click() @@ -555,7 +555,7 @@ export class DocumentContentPage extends DocumentCommonPage { await this.createButton.click() } - async changeTeamspaceMembers(spaceName: string): Promise { + async changeTeamspaceMembers (spaceName: string): Promise { await this.page.getByRole('button', { name: spaceName }).hover() await this.page.getByRole('button', { name: spaceName }).getByRole('button').nth(1).click() await this.page.getByRole('button', { name: 'Edit teamspace' }).click() @@ -571,7 +571,7 @@ export class DocumentContentPage extends DocumentCommonPage { await this.page.getByRole('button', { name: 'Save' }).click() } - async changeDocumentSpaceMembers(spaceName: string): Promise { + async changeDocumentSpaceMembers (spaceName: string): Promise { await this.page.getByRole('button', { name: spaceName }).hover() await this.page.getByRole('button', { name: spaceName }).getByRole('button').click() await this.editDocumentSpace.click() @@ -586,7 +586,7 @@ export class DocumentContentPage extends DocumentCommonPage { await this.saveButton.click() } - async createDocumentSpaceMembersToJustMember(spaceName: string): Promise { + async createDocumentSpaceMembersToJustMember (spaceName: string): Promise { await this.inputSpaceName.fill(spaceName) await this.page.getByRole('button', { name: 'DK Dirak Kainin' }).first().click() await this.page.getByRole('button', { name: 'AJ Appleseed John' }).click() @@ -596,7 +596,7 @@ export class DocumentContentPage extends DocumentCommonPage { await this.createButton.click() } - async addThirdUserToMembers(spaceName: string): Promise { + async addThirdUserToMembers (spaceName: string): Promise { await this.page.getByRole('button', { name: spaceName }).hover() await this.page.getByRole('button', { name: spaceName }).getByRole('button').click() await this.editDocumentSpace.click() @@ -607,7 +607,7 @@ export class DocumentContentPage extends DocumentCommonPage { await this.saveButton.click() } - async checkIfTheSpaceIsVisible(spaceName: string, visible: boolean): Promise { + async checkIfTheSpaceIsVisible (spaceName: string, visible: boolean): Promise { if (visible) { await expect(this.page.getByRole('button', { name: spaceName })).toBeVisible() } else { @@ -615,7 +615,7 @@ export class DocumentContentPage extends DocumentCommonPage { } } - async checkIfEditSpaceButtonExists(spaceName: string, visible: boolean): Promise { + async checkIfEditSpaceButtonExists (spaceName: string, visible: boolean): Promise { await this.page.getByRole('button', { name: spaceName }).hover() await this.page.getByRole('button', { name: spaceName }).getByRole('button').click() if (visible) { @@ -630,23 +630,23 @@ export class DocumentContentPage extends DocumentCommonPage { await this.page.keyboard.press('Escape') } - async checkSpaceFormIsCreated(spaceName: string): Promise { + async checkSpaceFormIsCreated (spaceName: string): Promise { await expect(this.page.getByRole('button', { name: spaceName })).toBeVisible() } - async createNewDocumentInsideFolder(folderName: string): Promise { + async createNewDocumentInsideFolder (folderName: string): Promise { await this.page.getByRole('button', { name: folderName }).hover() await this.page.getByRole('button', { name: folderName }).getByRole('button').click() await this.createNewDocument.click() } - async clickLeaveFolder(folderName: string): Promise { + async clickLeaveFolder (folderName: string): Promise { await this.page.getByRole('button', { name: folderName }).hover() await this.page.getByRole('button', { name: folderName }).getByRole('button').click() await this.leaveFolder.click() } - async createNewDocumentFromFolder( + async createNewDocumentFromFolder ( title: string, custom: boolean = false, specificReason: string = '' @@ -662,26 +662,26 @@ export class DocumentContentPage extends DocumentCommonPage { await this.createDraft.click() } - async clickSendForApproval(): Promise { + async clickSendForApproval (): Promise { await this.buttonSendForApproval.click() } - async clickDraftNewVersion(): Promise { + async clickDraftNewVersion (): Promise { await this.buttonDraftNewVersion.click() } - async clickHistoryTab(): Promise { + async clickHistoryTab (): Promise { await this.buttonHistoryTab.first().click() } - async createNewDraft(): Promise { + async createNewDraft (): Promise { await this.buttonEditDocument.click() // It's important to wait for the draft status to make sure the content // is editable for the next steps await this.checkDocumentStatus(DocumentStatus.DRAFT) } - async checkTeamMembersReviewerCoauthorApproverNotExists(): Promise { + async checkTeamMembersReviewerCoauthorApproverNotExists (): Promise { await this.page.waitForTimeout(500) await this.page.getByText('Team').click() await this.page.getByText('Add member').first().click() @@ -694,24 +694,24 @@ export class DocumentContentPage extends DocumentCommonPage { await expect(this.page.getByRole('button', { name: 'AJ Appleseed John' })).not.toBeVisible() } - async checkIfHistoryVersionExists(description: string): Promise { + async checkIfHistoryVersionExists (description: string): Promise { await this.page.waitForTimeout(200) await expect(this.page.getByText(description)).toBeVisible() await expect(this.page.getByText('v1.0', { exact: true })).toBeVisible() } - async checkDocumentStatus(status: DocumentStatus): Promise { + async checkDocumentStatus (status: DocumentStatus): Promise { await expect(this.textDocumentStatus).toHaveText(status) } - async checkIfLeftModalIsOpen(): Promise { + async checkIfLeftModalIsOpen (): Promise { const teamspaceOrArrow = await this.page.isHidden('div.flex:has(div.label:text("Template name")) div.field') if (teamspaceOrArrow) { await this.infoModal.click() } } - async checkDocument(data: DocumentDetails): Promise { + async checkDocument (data: DocumentDetails): Promise { if (data.type != null && data.type !== 'N/A') { await expect(this.textType).toHaveText(data.type) } @@ -735,13 +735,13 @@ export class DocumentContentPage extends DocumentCommonPage { } } - async fillChangeDocumentAuthorPopup(newAuthor: string): Promise { + async fillChangeDocumentAuthorPopup (newAuthor: string): Promise { await this.buttonSelectNewAuthor.click() await this.selectListItemWithSearch(this.page, newAuthor) await this.buttonSelectNewAuthorChange.click() } - async fillSelectReviewersForm(reviewers: Array): Promise { + async fillSelectReviewersForm (reviewers: Array): Promise { await this.buttonAddMembers.click() for (const reviewer of reviewers) { await this.selectListItemWithSearch(this.page, reviewer) @@ -751,7 +751,7 @@ export class DocumentContentPage extends DocumentCommonPage { await this.confirmSubmission() } - async fillSelectApproversForm(approvers: Array, skipConfirm: boolean = false): Promise { + async fillSelectApproversForm (approvers: Array, skipConfirm: boolean = false): Promise { await this.buttonAddMembers.first().click() for (const approver of approvers) { await this.selectListItemWithSearch(this.page, approver) @@ -761,11 +761,11 @@ export class DocumentContentPage extends DocumentCommonPage { if (!skipConfirm) await this.confirmSubmission() } - async checkCurrentRights(right: DocumentRights): Promise { + async checkCurrentRights (right: DocumentRights): Promise { await expect(this.buttonCurrentRights).toHaveText(right) } - async addMessageToTheText(text: string, message: string, closePopup: boolean = true): Promise { + async addMessageToTheText (text: string, message: string, closePopup: boolean = true): Promise { await this.page.getByText(text).click() await this.page.getByText(text).dblclick() @@ -784,7 +784,7 @@ export class DocumentContentPage extends DocumentCommonPage { } } - async sendForApproval( + async sendForApproval ( releaseType: string, version: string, reason: string, @@ -819,12 +819,12 @@ export class DocumentContentPage extends DocumentCommonPage { await documentHistoryPage.checkHistoryEventExist(reason) } - async clickPreviousVersionHeader(userPage: Page, completeDocument: NewDocument, prevVersion: string): Promise { + async clickPreviousVersionHeader (userPage: Page, completeDocument: NewDocument, prevVersion: string): Promise { const documentContentPageSecond = new DocumentContentPage(userPage) await documentContentPageSecond.clickDocumentHeader(completeDocument.title + ' ' + prevVersion) } - async closeNewMessagePopup(): Promise { + async closeNewMessagePopup (): Promise { const overlay = this.page.locator('div.modal-overlay') // Adding a message can leave one or more popups open, each rendering a modal // overlay that intercepts pointer events for the following actions. Escape @@ -842,44 +842,44 @@ export class DocumentContentPage extends DocumentCommonPage { await expect(overlay).toHaveCount(0, { timeout: 5000 }) } - async completeReview(): Promise { + async completeReview (): Promise { await this.buttonCompleteReview.click() await this.inputPassword.fill(PlatformPassword) await this.buttonSubmit.click() } - async confirmRejection(rejectionReason: string): Promise { + async confirmRejection (rejectionReason: string): Promise { await this.buttonReject.click() await this.inputPassword.fill(PlatformPassword) await this.inputRejectionReason.fill(rejectionReason) await this.buttonSubmit.click() } - async confirmApproval(): Promise { + async confirmApproval (): Promise { await this.buttonApprove.click() await this.inputPassword.fill(PlatformPassword) await this.buttonSubmit.click() } - async confirmSubmission(): Promise { + async confirmSubmission (): Promise { await this.inputPassword.fill(PlatformPassword) await this.buttonSubmitSignature.click() } - async changeCurrentRight(newRight: DocumentRights): Promise { + async changeCurrentRight (newRight: DocumentRights): Promise { await this.buttonCurrentRights.click() await this.selectMenuItem(this.page, newRight) } - async checkComparingTextAdded(text: string): Promise { + async checkComparingTextAdded (text: string): Promise { await expect(this.page.locator('span.text-editor-highlighted-node-add', { hasText: text }).first()).toBeVisible() } - async checkComparingTextDeleted(text: string): Promise { + async checkComparingTextDeleted (text: string): Promise { await expect(this.page.locator('span.text-editor-highlighted-node-delete', { hasText: text }).first()).toBeVisible() } - async checkIfUserCanSelectSpace(space: string, spaceExists: boolean): Promise { + async checkIfUserCanSelectSpace (space: string, spaceExists: boolean): Promise { await expect(this.page.getByRole('button', { name: space, exact: true })).toBeVisible() await this.page.getByRole('button', { name: 'New document' }).click() await this.changeSpaceButton.click() @@ -891,12 +891,12 @@ export class DocumentContentPage extends DocumentCommonPage { } } - async openApprovals(): Promise { + async openApprovals (): Promise { await expect(this.buttonDocumentApprovals).toBeVisible() await this.buttonDocumentApprovals.click({ position: { x: 1, y: 1 }, force: true }) } - async fillChangeDocumentAuthorPopupByQaraManager(newOwner: string): Promise { + async fillChangeDocumentAuthorPopupByQaraManager (newOwner: string): Promise { await this.buttonSelectNewAuthor.click() await this.selectListItemWithSearch(this.page, newOwner) await this.buttonSelectNewAuthorChangeByQaraManager.click() diff --git a/qms-tests/sanity/tests/model/documents/document-history-page.ts b/qms-tests/sanity/tests/model/documents/document-history-page.ts index 02c535f784..d4e47be259 100644 --- a/qms-tests/sanity/tests/model/documents/document-history-page.ts +++ b/qms-tests/sanity/tests/model/documents/document-history-page.ts @@ -4,12 +4,12 @@ import { DocumentCommonPage } from './document-common-page' export class DocumentHistoryPage extends DocumentCommonPage { readonly page: Page - constructor(page: Page) { + constructor (page: Page) { super(page) this.page = page } - async checkHistoryEventExist(eventDescription: string): Promise { + async checkHistoryEventExist (eventDescription: string): Promise { await expect(this.page.locator('div.root div.description', { hasText: eventDescription })).toBeVisible() } } diff --git a/qms-tests/sanity/tests/model/documents/document-reason-impact-page.ts b/qms-tests/sanity/tests/model/documents/document-reason-impact-page.ts index 690c66eb5b..6f8ede8621 100644 --- a/qms-tests/sanity/tests/model/documents/document-reason-impact-page.ts +++ b/qms-tests/sanity/tests/model/documents/document-reason-impact-page.ts @@ -13,7 +13,7 @@ export class DocumentReasonAndImpactPage extends DocumentCommonPage { readonly textImpactAnalysis: Locator readonly textImpactedDocuments: Locator - constructor(page: Page) { + constructor (page: Page) { super(page) this.page = page this.buttonReasonAndImpactTabSelected = page.locator('div.tab.selected', { hasText: 'Reason & Impact' }) @@ -29,7 +29,7 @@ export class DocumentReasonAndImpactPage extends DocumentCommonPage { ) } - async setReasonAndImpactData( + async setReasonAndImpactData ( description: string, reason: string, analysis: string, @@ -52,7 +52,7 @@ export class DocumentReasonAndImpactPage extends DocumentCommonPage { await this.buttonReasonAndImpactTabSelected.click({ force: true }) } - async checkReasonAndImpactData( + async checkReasonAndImpactData ( description: string, reason: string, analysis: string, diff --git a/qms-tests/sanity/tests/model/documents/document-release-page.ts b/qms-tests/sanity/tests/model/documents/document-release-page.ts index f85dd71efc..a5f03dd66a 100644 --- a/qms-tests/sanity/tests/model/documents/document-release-page.ts +++ b/qms-tests/sanity/tests/model/documents/document-release-page.ts @@ -7,7 +7,7 @@ export class DocumentReleasePage extends DocumentCommonPage { readonly buttonMakeEffectiveOn: Locator readonly buttonDateTimeButton: Locator - constructor(page: Page) { + constructor (page: Page) { super(page) this.page = page this.buttonReleaseTabSelected = page.locator('div.tab.selected', { hasText: 'Release' }) @@ -15,7 +15,7 @@ export class DocumentReleasePage extends DocumentCommonPage { this.buttonDateTimeButton = page.locator('label[for="documents:string:EffectiveOn"] button.datetime-button') } - async setEffectiveDate(delayTime: string): Promise { + async setEffectiveDate (delayTime: string): Promise { await this.buttonDateTimeButton.click() await this.fillSelectDateByShortcut(delayTime) } diff --git a/qms-tests/sanity/tests/model/documents/documents-page.ts b/qms-tests/sanity/tests/model/documents/documents-page.ts index 92ffd7f91c..1bb6ba26c6 100644 --- a/qms-tests/sanity/tests/model/documents/documents-page.ts +++ b/qms-tests/sanity/tests/model/documents/documents-page.ts @@ -18,7 +18,7 @@ export class DocumentsPage extends CalendarPage { readonly newMember: Locator readonly changeSpaceButton: Locator - constructor(page: Page) { + constructor (page: Page) { super(page) this.page = page this.buttonCreateDocument = page.locator( @@ -40,7 +40,7 @@ export class DocumentsPage extends CalendarPage { this.changeSpaceButton = page.locator('[id="space\\.selector"]') } - async createDocument( + async createDocument ( data: NewDocument, startSecondStep: boolean = false, changeSpaceInCreateDocument: string = 'Quality documents' @@ -74,12 +74,12 @@ export class DocumentsPage extends CalendarPage { await this.inputNewDocumentCreateDaft.click() } - async changeSpaceInCreateDocumentForm(space: string): Promise { + async changeSpaceInCreateDocumentForm (space: string): Promise { await this.changeSpaceButton.click() await this.page.locator(`div.selectPopup >> div.list-container >> text=${space}`).click({ force: true }) } - async createTemplate(title: string, description: string, category: string, spaceName: string): Promise { + async createTemplate (title: string, description: string, category: string, spaceName: string): Promise { await this.changeSpaceInCreateDocumentForm(spaceName) await this.buttonPopupNextStep.click() await this.inputNewDocumentTitle.fill(title) @@ -94,11 +94,11 @@ export class DocumentsPage extends CalendarPage { await this.inputNewDocumentCreateDaft.click() } - async openDocument(name: string): Promise { + async openDocument (name: string): Promise { await this.page.locator('button.hulyNavItem-container > span[class*="label"]', { hasText: name }).click() } - async executeMoreActionsOnDocument(documentName: string, action: string): Promise { + async executeMoreActionsOnDocument (documentName: string, action: string): Promise { await this.page.locator('button.hulyNavItem-container > span[class*="label"]', { hasText: documentName }).hover() await this.page .locator('button.hulyNavItem-container > span[class*="label"]', { hasText: documentName }) diff --git a/qms-tests/sanity/tests/model/documents/navigation-menu-page.ts b/qms-tests/sanity/tests/model/documents/navigation-menu-page.ts index 0ecd212d59..099be02e6b 100644 --- a/qms-tests/sanity/tests/model/documents/navigation-menu-page.ts +++ b/qms-tests/sanity/tests/model/documents/navigation-menu-page.ts @@ -5,7 +5,7 @@ export class NavigationMenuPage { readonly buttonTemplates: Locator readonly buttonCategories: Locator - constructor(page: Page) { + constructor (page: Page) { this.page = page this.buttonTemplates = page.locator('a[href$="templates"]', { hasText: 'Templates' }) this.buttonCategories = page.locator('a[href$="categories"]', { hasText: 'Categories' }) diff --git a/qms-tests/sanity/tests/model/documents/pdf-pages.ts b/qms-tests/sanity/tests/model/documents/pdf-pages.ts index 3332d1c331..1ddf15cd13 100644 --- a/qms-tests/sanity/tests/model/documents/pdf-pages.ts +++ b/qms-tests/sanity/tests/model/documents/pdf-pages.ts @@ -7,7 +7,7 @@ export class PdfPages { readonly downloadPdf: Locator readonly showFullScreenPdf: Locator - constructor(page: Page) { + constructor (page: Page) { this.page = page this.printToPdf = page.getByRole('button', { name: 'Print to PDF' }) this.printToPdfHeader = page.getByText('PDF PDF print preview') @@ -15,16 +15,16 @@ export class PdfPages { this.showFullScreenPdf = page.locator('form').getByRole('button').nth(2) } - async printToPdfClick(): Promise { + async printToPdfClick (): Promise { await this.printToPdf.click() await expect(this.printToPdfHeader).toBeVisible() } - async showFullScreenPdfClick(): Promise { + async showFullScreenPdfClick (): Promise { await this.showFullScreenPdf.click() } - async downloadAndVerifyPdf(): Promise { + async downloadAndVerifyPdf (): Promise { const [download] = await Promise.all([this.page.waitForEvent('download'), this.downloadPdf.click()]) const filePath = await download.path() expect(filePath).toBeTruthy() diff --git a/qms-tests/sanity/tests/model/documents/templates-page.ts b/qms-tests/sanity/tests/model/documents/templates-page.ts index 8e06862cc1..dec455b814 100644 --- a/qms-tests/sanity/tests/model/documents/templates-page.ts +++ b/qms-tests/sanity/tests/model/documents/templates-page.ts @@ -16,7 +16,7 @@ export class TemplatesPage extends CalendarPage { readonly sectionHighlightedTeam: Locator readonly inputNewTemplateCode: Locator - constructor(page: Page) { + constructor (page: Page) { super(page) this.page = page this.buttonCreateTemplate = page.getByRole('button', { name: 'Template', exact: true }) @@ -32,7 +32,7 @@ export class TemplatesPage extends CalendarPage { this.inputNewTemplateCode = page.locator('input[placeholder="DOC-1"]') } - async createTemplate(data: NewTemplate): Promise { + async createTemplate (data: NewTemplate): Promise { if (data.location?.space != null) { await this.buttonSpaceSelector.click() await this.selectMenuItem(this.page, data.location.space) diff --git a/qms-tests/sanity/tests/model/left-side-menu-page.ts b/qms-tests/sanity/tests/model/left-side-menu-page.ts index 6062fd45e9..18d80bcc27 100644 --- a/qms-tests/sanity/tests/model/left-side-menu-page.ts +++ b/qms-tests/sanity/tests/model/left-side-menu-page.ts @@ -6,14 +6,14 @@ export class LeftSideMenuPage { readonly buttonTeam: Locator readonly buttonDocuments: Locator - constructor(page: Page) { + constructor (page: Page) { this.page = page this.buttonPlanning = page.locator('button[id$="Planning"]') this.buttonTeam = page.locator('button[id$="Team"]') this.buttonDocuments = page.locator('[id$="app-documents\\:string\\:DocumentApplication"]') } - async clickButtonOnTheLeft(buttonName: 'Planning' | 'Team' | 'Documents'): Promise { + async clickButtonOnTheLeft (buttonName: 'Planning' | 'Team' | 'Documents'): Promise { switch (buttonName) { case 'Planning': await this.buttonPlanning.click() diff --git a/qms-tests/sanity/tests/model/login-page.ts b/qms-tests/sanity/tests/model/login-page.ts index 900e1a5bec..7445202a3d 100644 --- a/qms-tests/sanity/tests/model/login-page.ts +++ b/qms-tests/sanity/tests/model/login-page.ts @@ -9,7 +9,7 @@ export class LoginPage { readonly buttonSignUp: Locator readonly loginWithPassword: Locator readonly accountNotFoundMessage: Locator - constructor(page: Page) { + constructor (page: Page) { this.page = page this.inputEmail = page.locator('input[name=email]') this.inputPassword = page.locator('input[name=current-password]') @@ -19,11 +19,11 @@ export class LoginPage { this.accountNotFoundMessage = page.getByText('Account not found or the provided credentials are incorrect') } - async goto(): Promise { + async goto (): Promise { await (await this.page.goto(`${PlatformURI}/login/login`))?.finished() } - async login(email: string, password: string): Promise { + async login (email: string, password: string): Promise { await this.inputEmail.fill(email) await this.inputPassword.fill(password) @@ -34,13 +34,13 @@ export class LoginPage { await this.buttonLogin.click() } - async checkIfErrorMessageIsShown(message: string): Promise { + async checkIfErrorMessageIsShown (message: string): Promise { if (message === 'Account not found or the provided credentials are incorrect') { await expect(this.accountNotFoundMessage).toContainText(message) } } - async checkIfUserIsLoggedIn(credentials: string): Promise { + async checkIfUserIsLoggedIn (credentials: string): Promise { if (credentials === 'wrong-email' || credentials === 'wrong-password') { await expect(this.buttonLogin).toBeVisible() await expect(this.page.getByText('Account not found or the provided credentials are incorrect')).toBeVisible() diff --git a/qms-tests/sanity/tests/model/select-workspace-page.ts b/qms-tests/sanity/tests/model/select-workspace-page.ts index b06ade588e..87819c0e46 100644 --- a/qms-tests/sanity/tests/model/select-workspace-page.ts +++ b/qms-tests/sanity/tests/model/select-workspace-page.ts @@ -6,18 +6,18 @@ export class SelectWorkspacePage { readonly buttonCreateWorkspace: Locator readonly inputWorkspaceName: Locator - constructor(page: Page) { + constructor (page: Page) { this.page = page this.buttonWorkspace = page.locator('div[class*="workspace"]') this.buttonCreateWorkspace = page.locator('button > span', { hasText: 'Create workspace' }) this.inputWorkspaceName = page.locator('div.form input') } - async selectWorkspace(workspace: string): Promise { + async selectWorkspace (workspace: string): Promise { await this.buttonWorkspace.filter({ hasText: workspace }).click() } - async createWorkspace(workspaceName: string): Promise { + async createWorkspace (workspaceName: string): Promise { await this.buttonCreateWorkspace.waitFor({ state: 'visible' }) await expect(this.inputWorkspaceName).toBeVisible() await this.inputWorkspaceName.fill(workspaceName) diff --git a/qms-tests/sanity/tests/model/setting-page.ts b/qms-tests/sanity/tests/model/setting-page.ts index 88928ed08d..35acb09486 100644 --- a/qms-tests/sanity/tests/model/setting-page.ts +++ b/qms-tests/sanity/tests/model/setting-page.ts @@ -20,7 +20,7 @@ export class SettingsPage { readonly addRoleUpdatePermissionOwner: Locator readonly addUpdateDocumentOwnerPermission: Locator - constructor(page: Page) { + constructor (page: Page) { this.page = page this.profileButton = page.locator('#profile-button') this.settings = page.getByRole('button', { name: 'Settings' }) @@ -41,27 +41,27 @@ export class SettingsPage { this.addUpdateDocumentOwnerPermission = page.locator('.hulyTableAttr-header > .font-medium-14') } - async openProfileMenu(): Promise { + async openProfileMenu (): Promise { await this.profileButton.click() } - async clickSettings(): Promise { + async clickSettings (): Promise { await this.settings.click() } - async clickDefaultDocuments(): Promise { + async clickDefaultDocuments (): Promise { await this.defaultDocuments.click() } - async clickAddPermissionButton(): Promise { + async clickAddPermissionButton (): Promise { await this.addPermissionButton.click() } - async clickAddRoleUpdatePermissionOwner(): Promise { + async clickAddRoleUpdatePermissionOwner (): Promise { await this.addRoleUpdatePermissionOwner.click() } - async checkIfPermissionsExist(): Promise { + async checkIfPermissionsExist (): Promise { await expect(this.reviewDocumentPermission).toBeVisible() await expect(this.approveDocumentPermission).toBeVisible() await expect(this.coAuthorDocumentPermission).toBeVisible() @@ -71,16 +71,16 @@ export class SettingsPage { await expect(this.updateSpacePermission).toBeVisible() } - async checkIfAddUpdateDocumentOwnerPermissionIsDisabled(): Promise { + async checkIfAddUpdateDocumentOwnerPermissionIsDisabled (): Promise { await expect(this.addUpdateDocumentOwnerPermission).toBeDisabled() } - async checkPermissionsExistQualifyUser(): Promise { + async checkPermissionsExistQualifyUser (): Promise { await expect(this.reviewDocumentPermission).toBeVisible() await expect(this.approveDocumentPermission).toBeVisible() } - async chooseRole(role: string): Promise { + async chooseRole (role: string): Promise { switch (role) { case 'Manager': await this.managerRole.click() diff --git a/qms-tests/sanity/tests/model/signup-page.ts b/qms-tests/sanity/tests/model/signup-page.ts index 0eaa8f0c64..1a493d3fc3 100644 --- a/qms-tests/sanity/tests/model/signup-page.ts +++ b/qms-tests/sanity/tests/model/signup-page.ts @@ -11,7 +11,7 @@ export class SignupPage { readonly buttonSignUp: Locator readonly textError: Locator - constructor(page: Page) { + constructor (page: Page) { this.page = page this.inputFirstName = page.locator('input[name="given-name"]') this.inputLastName = page.locator('input[name="family-name"]') @@ -22,7 +22,7 @@ export class SignupPage { this.textError = page.locator('div.ERROR > span') } - async signupPwd(userData: UserSignUp): Promise { + async signupPwd (userData: UserSignUp): Promise { await this.inputFirstName.fill(userData.firstName) await this.inputLastName.fill(userData.lastName) await this.inputEmail.fill(userData.email) diff --git a/qms-tests/sanity/tests/model/visual-check.ts b/qms-tests/sanity/tests/model/visual-check.ts index 8cbafc8813..789772169a 100644 --- a/qms-tests/sanity/tests/model/visual-check.ts +++ b/qms-tests/sanity/tests/model/visual-check.ts @@ -4,11 +4,11 @@ import { join } from 'path' export class VisualCheck { readonly page: Page - constructor(page: Page) { + constructor (page: Page) { this.page = page } - async compareScreenshot(selector: string | null, screenshotName: string): Promise { + async compareScreenshot (selector: string | null, screenshotName: string): Promise { let screenshot if (selector !== null && selector !== undefined) { @@ -25,7 +25,7 @@ export class VisualCheck { }) } - async comparePDFPreview(screenshotName: string): Promise { + async comparePDFPreview (screenshotName: string): Promise { // Wait for the iframe to be present in the DOM const iframe = this.page.locator('iframe.pdfviewer-content') await iframe.waitFor({ state: 'attached', timeout: 10000 }) diff --git a/qms-tests/sanity/tests/utils.ts b/qms-tests/sanity/tests/utils.ts index 05aad60b1f..0554d26cd1 100644 --- a/qms-tests/sanity/tests/utils.ts +++ b/qms-tests/sanity/tests/utils.ts @@ -18,7 +18,7 @@ export const DefaultWorkspace = 'sanity-ws-qms' export const DocumentURI = `workbench/${DefaultWorkspace}/documents` export const HomepageURI = `workbench/${DefaultWorkspace}` -function toHex(value: number, chars: number): string { +function toHex (value: number, chars: number): string { const result = value.toString(16) if (result.length < chars) { return '0'.repeat(chars - result.length) + result @@ -29,12 +29,12 @@ function toHex(value: number, chars: number): string { let counter = 0 const random = toHex((Math.random() * (1 << 24)) | 0, 6) + toHex((Math.random() * (1 << 16)) | 0, 4) -function timestamp(): string { +function timestamp (): string { const time = (Date.now() / 1000) | 0 return toHex(time, 8) } -function count(): string { +function count (): string { const val = counter++ & 0xffffff return toHex(val, 6) } @@ -43,7 +43,7 @@ function count(): string { * @public * @returns */ -export function generateId(len = 100): string { +export function generateId (len = 100): string { const v = timestamp() + random let s = v.length - len if (s < 0) { @@ -52,48 +52,48 @@ export function generateId(len = 100): string { return v.slice(s, v.length) + count() } -export async function getSecondPage(browser: Browser): Promise { +export async function getSecondPage (browser: Browser): Promise { const userSecondContext = await browser.newContext({ storageState: PlatformSettingSecond }) return await userSecondContext.newPage() } -export async function getThirdPage(browser: Browser): Promise { +export async function getThirdPage (browser: Browser): Promise { const userSecondContext = await browser.newContext({ storageState: PlatformSettingThird }) return await userSecondContext.newPage() } -export async function getNewPage(browser: Browser): Promise { +export async function getNewPage (browser: Browser): Promise { const context = await browser.newContext({ storageState: undefined }) return await context.newPage() } -export function randomString(): string { +export function randomString (): string { return (Math.random() * 1000000).toString(36).replace('.', '') } -export async function attachScreenshot(name: string, page: Page): Promise { +export async function attachScreenshot (name: string, page: Page): Promise { await attachment(name, await page.screenshot(), { contentType: 'image/png' }) await page.screenshot({ path: `screenshots/${name}` }) } -export async function getQaraManagerPage(browser: Browser): Promise { +export async function getQaraManagerPage (browser: Browser): Promise { const qaraManagerContext = await browser.newContext({ storageState: PlatformSettingQaraManager }) return await qaraManagerContext.newPage() } -export async function* iterateLocator(locator: Locator): AsyncGenerator { +export async function* iterateLocator (locator: Locator): AsyncGenerator { for (let index = 0; index < (await locator.count()); index++) { yield locator.nth(index) } } -export async function waitForNetworIdle(page: Page, timeout = 2000): Promise { +export async function waitForNetworIdle (page: Page, timeout = 2000): Promise { await Promise.race([page.waitForLoadState('networkidle'), new Promise((resolve) => setTimeout(resolve, timeout))]) } -export async function setTestOptions(page: Page): Promise { +export async function setTestOptions (page: Page): Promise { await page.evaluate(() => { localStorage.setItem('#platform.notification.timeout', '0') localStorage.setItem('#platform.testing.enabled', 'true') diff --git a/server-plugins/activity-resources/src/index.ts b/server-plugins/activity-resources/src/index.ts index f73c7372e4..34adc03eed 100644 --- a/server-plugins/activity-resources/src/index.ts +++ b/server-plugins/activity-resources/src/index.ts @@ -342,7 +342,7 @@ export async function generateDocUpdateMessages ( await control.findAll(ctx, core.class.TxCreateDoc, { objectId: tx.attachedTo }, { limit: 1 }) )[0] - doc = createTx !== undefined ? TxProcessor.createDoc2Doc(createTx as TxCreateDoc) : undefined + doc = createTx !== undefined ? TxProcessor.createDoc2Doc(createTx) : undefined } if (doc !== undefined) { objectCache?.docs?.set(tx.attachedTo, doc) @@ -417,8 +417,8 @@ async function ActivityMessagesHandler (_txes: TxCUD[], control: TriggerCon tx.space === core.space.DerivedTx ? [] : await control.ctx.with('generateDocUpdateMessages', {}, (ctx) => - generateDocUpdateMessages(ctx, tx, control, [], cache) - ) + generateDocUpdateMessages(ctx, tx, control, [], cache) + ) const messages = txes.map((messageTx) => TxProcessor.createDoc2Doc(messageTx as TxCreateDoc)) diff --git a/server-plugins/activity-resources/src/references.ts b/server-plugins/activity-resources/src/references.ts index 8d4251487a..61a4982260 100644 --- a/server-plugins/activity-resources/src/references.ts +++ b/server-plugins/activity-resources/src/references.ts @@ -288,7 +288,7 @@ async function getCreateReferencesTxes ( if (blobId != null && blobId !== '') { try { const buffer = await storage.read(ctx, control.workspace, blobId) - const markup = Buffer.concat(buffer as any).toString() + const markup = Buffer.concat(buffer).toString() const attrReferences = getReferencesData(srcDocId, srcDocClass, attachedDocId, attachedDocClass, markup) refs.push(...attrReferences) } catch { @@ -335,7 +335,7 @@ async function getUpdateReferencesTxes ( const blobId = (updatedDoc as any)[attr.name] as Ref if (blobId != null) { const buffer = await storage.read(ctx, control.workspace, blobId) - const markup = Buffer.concat(buffer as any).toString() + const markup = Buffer.concat(buffer).toString() const attrReferences = getReferencesData(srcDocId, srcDocClass, attachedDocId, attachedDocClass, markup) references.push(...attrReferences) } @@ -565,9 +565,9 @@ function guessReferenceObj ( hierarchy: Hierarchy, tx: TxCUD ): { - objectId: Ref - objectClass: Ref> - } { + objectId: Ref + objectClass: Ref> +} { // Try to guess reference target Tx for TxCollectionCUD txes based on collaborators availability if (tx.attachedToClass !== undefined && tx.attachedTo !== undefined) { if (hierarchy.isDerived(tx.objectClass, activity.class.ActivityMessage)) { @@ -674,7 +674,7 @@ async function ActivityReferenceUpdate (tx: TxCUD, control: TriggerControl) } async function ActivityReferenceRemove (tx: TxCUD, control: TriggerControl): Promise { - const ctx = tx as TxRemoveDoc + const ctx = tx const attributes = control.hierarchy.getAllAttributes(ctx.objectClass) let hasMarkdown = false diff --git a/server-plugins/activity/src/index.ts b/server-plugins/activity/src/index.ts index f28fffb55b..4595ec6d18 100644 --- a/server-plugins/activity/src/index.ts +++ b/server-plugins/activity/src/index.ts @@ -17,7 +17,7 @@ import { Plugin, Resource, plugin } from '@hcengineering/platform' import type { TriggerFunc } from '@hcengineering/server-core' import { Presenter } from '@hcengineering/server-notification' -export * from './types' +export type * from './types' export * from './utils' /** diff --git a/server-plugins/contact-resources/src/index.ts b/server-plugins/contact-resources/src/index.ts index 9a24059f31..3f964b44f9 100644 --- a/server-plugins/contact-resources/src/index.ts +++ b/server-plugins/contact-resources/src/index.ts @@ -94,7 +94,7 @@ export async function OnSpaceTypeMembers (txes: Tx[], control: TriggerControl): return result } -async function getGrantSpaces(control: TriggerControl, grant?: PermissionsGrant): Promise { +async function getGrantSpaces (control: TriggerControl, grant?: PermissionsGrant): Promise { const spacesRefs = grant?.spaces if (spacesRefs == null) { return [] @@ -128,7 +128,7 @@ async function getGrantSpaces(control: TriggerControl, grant?: PermissionsGrant) return allowedGrantedSpaces } -export async function OnEmployeeCreate(_txes: Tx[], control: TriggerControl): Promise { +export async function OnEmployeeCreate (_txes: Tx[], control: TriggerControl): Promise { const result: Tx[] = [] const systemTxFactory = new TxFactory(core.account.System, false) @@ -250,7 +250,7 @@ export async function OnEmployeeCreate(_txes: Tx[], control: TriggerControl): Pr return result } -export async function OnTypedSpaceCreate(_txes: Tx[], control: TriggerControl): Promise { +export async function OnTypedSpaceCreate (_txes: Tx[], control: TriggerControl): Promise { const result: Tx[] = [] for (const tx of _txes) { const ctx = tx as TxCreateDoc @@ -269,7 +269,7 @@ export async function OnTypedSpaceCreate(_txes: Tx[], control: TriggerControl): return result } -export async function OnPersonCreate(_txes: Tx[], control: TriggerControl): Promise { +export async function OnPersonCreate (_txes: Tx[], control: TriggerControl): Promise { const result: Tx[] = [] for (const tx of _txes) { const ctx = tx as TxCreateDoc @@ -296,7 +296,7 @@ export async function OnPersonCreate(_txes: Tx[], control: TriggerControl): Prom return result } -async function createPersonSpace( +async function createPersonSpace ( account: AccountUuid, person: Ref, control: TriggerControl @@ -319,7 +319,7 @@ async function createPersonSpace( /** * @public */ -export async function OnContactDelete( +export async function OnContactDelete ( txes: Tx[], { findAll, hierarchy, storageAdapter, workspace, removedMap, txFactory, ctx }: TriggerControl ): Promise { @@ -352,7 +352,7 @@ export async function OnContactDelete( /** * @public */ -export async function OnChannelUpdate(txes: Tx[], control: TriggerControl): Promise { +export async function OnChannelUpdate (txes: Tx[], control: TriggerControl): Promise { const result: Tx[] = [] for (const tx of txes) { @@ -379,7 +379,7 @@ export async function OnChannelUpdate(txes: Tx[], control: TriggerControl): Prom /** * @public */ -export async function personHTMLPresenter(doc: Doc, control: TriggerControl): Promise { +export async function personHTMLPresenter (doc: Doc, control: TriggerControl): Promise { const person = doc as Person const front = control.branding?.front ?? getMetadata(serverCore.metadata.FrontUrl) ?? '' const path = `${workbenchId}/${control.workspace.url}/${contactId}/${doc._id}` @@ -390,7 +390,7 @@ export async function personHTMLPresenter(doc: Doc, control: TriggerControl): Pr /** * @public */ -export function personTextPresenter(doc: Doc, control: TriggerControl): string { +export function personTextPresenter (doc: Doc, control: TriggerControl): string { const person = doc as Person return `${getName(control.hierarchy, person, control.branding?.lastNameFirst)}` } @@ -398,7 +398,7 @@ export function personTextPresenter(doc: Doc, control: TriggerControl): string { /** * @public */ -export async function organizationHTMLPresenter(doc: Doc, control: TriggerControl): Promise { +export async function organizationHTMLPresenter (doc: Doc, control: TriggerControl): Promise { const organization = doc as Organization const front = control.branding?.front ?? getMetadata(serverCore.metadata.FrontUrl) ?? '' const path = `${workbenchId}/${control.workspace.url}/${contactId}/${doc._id}` @@ -409,7 +409,7 @@ export async function organizationHTMLPresenter(doc: Doc, control: TriggerContro /** * @public */ -export function organizationTextPresenter(doc: Doc): string { +export function organizationTextPresenter (doc: Doc): string { const organization = doc as Organization return `${organization.name}` } @@ -417,7 +417,7 @@ export function organizationTextPresenter(doc: Doc): string { /** * @public */ -export function contactNameProvider( +export function contactNameProvider ( doc: Doc, parent: Doc | undefined, space: Space | undefined, @@ -430,13 +430,13 @@ export function contactNameProvider( return formatContactName(hierarchy, doc._class, (doc as Contact).name ?? '', mode) } -export async function getCurrentEmployeeName(control: TriggerControl, context: Record): Promise { +export async function getCurrentEmployeeName (control: TriggerControl, context: Record): Promise { const person = await getCurrentPerson(control) return person !== undefined ? formatName(person.name, control.branding?.lastNameFirst) : '' } -export async function getCurrentEmployeeEmail(control: TriggerControl, context: Record): Promise { +export async function getCurrentEmployeeEmail (control: TriggerControl, context: Record): Promise { const person = await getCurrentPerson(control) if (person === undefined) return '' @@ -452,7 +452,7 @@ export async function getCurrentEmployeeEmail(control: TriggerControl, context: return emailSocialId.value } -export async function getCurrentEmployeePosition( +export async function getCurrentEmployeePosition ( control: TriggerControl, context: Record ): Promise { @@ -462,7 +462,7 @@ export async function getCurrentEmployeePosition( return control.hierarchy.as(person, contact.mixin.Employee)?.position ?? '' } -export async function getContactName( +export async function getContactName ( control: TriggerControl, context: Record ): Promise { @@ -475,7 +475,7 @@ export async function getContactName( } } -export async function getContactLastName( +export async function getContactLastName ( control: TriggerControl, context: Record ): Promise { @@ -488,7 +488,7 @@ export async function getContactLastName( } } -export async function getContactFirstName( +export async function getContactFirstName ( control: TriggerControl, context: Record ): Promise { diff --git a/server-plugins/gmail-resources/src/index.ts b/server-plugins/gmail-resources/src/index.ts index d8fbbf0c4c..0362fd7a16 100644 --- a/server-plugins/gmail-resources/src/index.ts +++ b/server-plugins/gmail-resources/src/index.ts @@ -261,7 +261,7 @@ async function processEmailNotifications (control: TriggerControl, notifications // Fallback to regular findAll if lowLevel fails control.ctx.warn('processEmailNotifications: Raw find all failed', { employeeId: employee._id, err }) const emailsResult = await control.findAll(control.ctx, contact.class.SocialIdentity, emailQuery) - emails = emailsResult as SocialIdentity[] + emails = emailsResult } if (emails.length === 0) { diff --git a/server-plugins/hr-resources/src/index.ts b/server-plugins/hr-resources/src/index.ts index ca96cd8497..daaf9a5e86 100644 --- a/server-plugins/hr-resources/src/index.ts +++ b/server-plugins/hr-resources/src/index.ts @@ -359,7 +359,7 @@ async function sendEmailNotifications ( const notificationControl = await getNotificationProviderControl(control.ctx, control) for (const contact of contacts.values()) { - const socialStrings = await getSocialStrings(control, contact as Ref) + const socialStrings = await getSocialStrings(control, contact) const allowed = isAllowed(control, socialStrings, type, provider, notificationControl) if (!allowed) { contacts.delete(contact) diff --git a/server-plugins/notification-resources/src/__tests__/push.test.ts b/server-plugins/notification-resources/src/__tests__/push.test.ts index 9c42fdb968..febef70e72 100644 --- a/server-plugins/notification-resources/src/__tests__/push.test.ts +++ b/server-plugins/notification-resources/src/__tests__/push.test.ts @@ -44,7 +44,7 @@ describe('OnInboxNotificationCreate', () => { notification.class.CommonInboxNotification, 'space-1' as Ref, { user, isViewed, docNotifyContext: 'ctx', objectId: 'obj', objectClass: core.class.Doc } as any - ) as TxCreateDoc + ) beforeEach(() => { send = jest.fn().mockResolvedValue(undefined) diff --git a/server-plugins/notification-resources/src/index.ts b/server-plugins/notification-resources/src/index.ts index 0ac5aa1491..50a8cde039 100644 --- a/server-plugins/notification-resources/src/index.ts +++ b/server-plugins/notification-resources/src/index.ts @@ -501,7 +501,7 @@ export async function getTranslatedNotificationContent ( } else if (control.hierarchy.isDerived(_class, notification.class.MentionInboxNotification)) { return await mentionInboxNotificationToText(data as Data, control) } else if (control.hierarchy.isDerived(_class, notification.class.CommonInboxNotification)) { - return await commonInboxNotificationToText(data as Data) + return await commonInboxNotificationToText(data) } return { title: '', body: '' } @@ -786,8 +786,8 @@ export async function createCollabDocInfo ( const filteredCollaborators = !space.private ? collaborators : collaborators.filter( - (it) => - space.members.includes(it) || + (it) => + space.members.includes(it) || currentRes.some((tx) => { if (tx._class === core.class.TxUpdateDoc) { const updateTx = tx as TxUpdateDoc @@ -798,7 +798,7 @@ export async function createCollabDocInfo ( } return false }) - ) + ) const targets = new Set(filteredCollaborators) // user is not collaborator of himself, but we should notify user of changes related to users account (mentions, comments etc) @@ -867,10 +867,10 @@ async function getTxCollabs ( cache: Map, Collaborator[]>, doc: Doc ): Promise<{ - added: AccountUuid[] - removed: AccountUuid[] - result: AccountUuid[] - }> { + added: AccountUuid[] + removed: AccountUuid[] + result: AccountUuid[] +}> { const { hierarchy } = control const mixin = getClassCollaborators(control.modelDb, hierarchy, doc._class) if (mixin === undefined) return { added: [], removed: [], result: [] } diff --git a/server-plugins/notification-resources/src/push.ts b/server-plugins/notification-resources/src/push.ts index ecf60a9e90..c72e927692 100644 --- a/server-plugins/notification-resources/src/push.ts +++ b/server-plugins/notification-resources/src/push.ts @@ -159,9 +159,9 @@ function getMessageInfo ( n: InboxNotification, hierarchy: Hierarchy ): { - _id?: Ref - _class?: Ref> - } { + _id?: Ref + _class?: Ref> +} { if (hierarchy.isDerived(n._class, notification.class.ActivityInboxNotification)) { const activityNotification = n as ActivityInboxNotification diff --git a/server-plugins/notification/src/index.ts b/server-plugins/notification/src/index.ts index b1cf23a14f..9f8254bbe7 100644 --- a/server-plugins/notification/src/index.ts +++ b/server-plugins/notification/src/index.ts @@ -49,15 +49,15 @@ export interface TextPresenter extends Class { * @public */ export type TypeMatchFunc = Resource< -( - tx: Tx, - doc: Doc, - person: Ref, - socialIds: PersonId[], - type: NotificationType, - control: TriggerControl, - account: AccountUuid -) => boolean | Promise + ( + tx: Tx, + doc: Doc, + person: Ref, + socialIds: PersonId[], + type: NotificationType, + control: TriggerControl, + account: AccountUuid + ) => boolean | Promise > /** diff --git a/server-plugins/process-resources/src/index.ts b/server-plugins/process-resources/src/index.ts index 4791dec4d0..407e226e1a 100644 --- a/server-plugins/process-resources/src/index.ts +++ b/server-plugins/process-resources/src/index.ts @@ -327,7 +327,7 @@ export async function OnExecutionDone (txes: Tx[], control: TriggerControl): Pro const todosWithWorkslots = new Set(workslots.map((workslot) => workslot.attachedTo as string)) for (const todo of todos) { - if (todosWithWorkslots.has(todo._id as string)) continue + if (todosWithWorkslots.has(todo._id)) continue res.push(control.txFactory.createTxRemoveDoc(todo._class, todo.space, todo._id)) } } diff --git a/server-plugins/process/src/index.ts b/server-plugins/process/src/index.ts index d5b4f8c25b..57f929a936 100644 --- a/server-plugins/process/src/index.ts +++ b/server-plugins/process/src/index.ts @@ -5,7 +5,7 @@ import { Execution, Method, ProcessFunction, Trigger } from '@hcengineering/proc import { TriggerFunc } from '@hcengineering/server-core' import { ExecuteFunc, ProcessControl, RollbackFunc, TransformFunc } from './types' -export * from './types' +export type * from './types' /** * @public diff --git a/server-plugins/telegram-resources/src/index.ts b/server-plugins/telegram-resources/src/index.ts index 7d362bddca..782e422df1 100644 --- a/server-plugins/telegram-resources/src/index.ts +++ b/server-plugins/telegram-resources/src/index.ts @@ -195,11 +195,11 @@ async function getTranslatedData ( control: TriggerControl, message?: ActivityMessage ): Promise<{ - title: string - quote: string | undefined - body: string - link: string - }> { + title: string + quote: string | undefined + body: string + link: string +}> { const { hierarchy } = control let { title, body } = await getTranslatedNotificationContent(data, data._class, control) diff --git a/server-plugins/time/src/index.ts b/server-plugins/time/src/index.ts index bd90da1424..fa18717191 100644 --- a/server-plugins/time/src/index.ts +++ b/server-plugins/time/src/index.ts @@ -50,7 +50,7 @@ export default plugin(serverTimeId, { function: { IssueToDoFactory: '' as Resource<(tx: Tx, control: TriggerControl) => Promise>, IssueToDoDone: '' as Resource< - (control: TriggerControl, workslots: WorkSlot[], todo: ToDo, isDerived: boolean) => Promise + (control: TriggerControl, workslots: WorkSlot[], todo: ToDo, isDerived: boolean) => Promise > }, trigger: { diff --git a/server-plugins/tracker-resources/src/index.ts b/server-plugins/tracker-resources/src/index.ts index ab3e82cf52..cbd8d3c9a0 100644 --- a/server-plugins/tracker-resources/src/index.ts +++ b/server-plugins/tracker-resources/src/index.ts @@ -396,7 +396,7 @@ async function doIssueUpdate (updateTx: TxUpdateDoc, control: TriggerCont const [newParent] = await control.findAll( control.ctx, tracker.class.Issue, - { _id: updateTx.operations.attachedTo as Ref }, + { _id: updateTx.operations.attachedTo }, { limit: 1 } ) diff --git a/server/indexer/src/indexer/index.ts b/server/indexer/src/indexer/index.ts index 998ee59f30..1d43129e33 100644 --- a/server/indexer/src/indexer/index.ts +++ b/server/indexer/src/indexer/index.ts @@ -14,5 +14,5 @@ // export * from './indexer' -export * from './types' +export type * from './types' export * from './utils' diff --git a/server/indexer/src/indexer/indexer.ts b/server/indexer/src/indexer/indexer.ts index b3eb28258f..319116e58c 100644 --- a/server/indexer/src/indexer/indexer.ts +++ b/server/indexer/src/indexer/indexer.ts @@ -97,7 +97,7 @@ import { import { markdownToMarkup } from '@hcengineering/text-markdown' import { type HulylakeWorkspaceClient } from '@hcengineering/hulylake-client' -export * from './types' +export type * from './types' export * from './utils' const printThresholdMs = 2500 @@ -973,7 +973,7 @@ export class FullTextIndexPipeline implements FullTextPipeline { if (value !== undefined && value !== '') { try { const readable = await this.storageAdapter?.read(ctx, this.workspace, value) - const markup = Buffer.concat(readable as any).toString() + const markup = Buffer.concat(readable).toString() let textContent = markupToText(markup) textContent = textContent .split(/ +|\t+|\f+/) @@ -1173,7 +1173,7 @@ export class FullTextIndexPipeline implements FullTextPipeline { ): Promise { if (docInfo !== undefined) { let textContent = Buffer.concat( - (await this.storageAdapter?.read(ctx, this.workspace, docInfo._id)) as any + (await this.storageAdapter?.read(ctx, this.workspace, docInfo._id)) ).toString() textContent = textContent diff --git a/services/analytics-collector/pod-analytics-collector/src/server.ts b/services/analytics-collector/pod-analytics-collector/src/server.ts index 0e6b90f3e3..f87d7e5d7c 100644 --- a/services/analytics-collector/pod-analytics-collector/src/server.ts +++ b/services/analytics-collector/pod-analytics-collector/src/server.ts @@ -67,7 +67,7 @@ function isContentValid (body: any[]): boolean { } function getRecordsByType (event: AnalyticEvent): Record { - switch (event.event as AnalyticEventType) { + switch (event.event) { case AnalyticEventType.SetTag: return { event: '$set', diff --git a/services/billing/pod-billing/src/server.ts b/services/billing/pod-billing/src/server.ts index 8f4e3455f0..7b61197445 100644 --- a/services/billing/pod-billing/src/server.ts +++ b/services/billing/pod-billing/src/server.ts @@ -104,10 +104,10 @@ export async function createServer ( const wrapRequest = (ctx: MeasureContext, name: string, fn: AsyncRequestHandler) => - (req: Request, res: Response, next: NextFunction) => { + (req: Request, res: Response, next: NextFunction) => { // eslint-disable-next-line @typescript-eslint/no-floating-promises - handleRequest(ctx, name, db, storageConfigs, fn, req, res, next) - } + handleRequest(ctx, name, db, storageConfigs, fn, req, res, next) + } app.use(morgan('short', { stream: new LogStream() })) diff --git a/services/calendar/pod-calendar/src/sync.ts b/services/calendar/pod-calendar/src/sync.ts index ec42c5d258..a98a7335d5 100644 --- a/services/calendar/pod-calendar/src/sync.ts +++ b/services/calendar/pod-calendar/src/sync.ts @@ -293,7 +293,7 @@ export class IncomingSyncManager { const exists = (await this.client.findOne(calendar.class.Event, { eventId: event.id, calendar: _calendar._id - })) as Event | undefined + })) if (exists === undefined) { await this.saveExtEvent(event, accessRole, _calendar) } else { @@ -313,7 +313,7 @@ export class IncomingSyncManager { const diff = this.getDiff( { ...data, - recurringEventId: event.recurringEventId as Ref, + recurringEventId: event.recurringEventId, originalStartTime: parseEventDate(event.originalStartTime), isCancelled: event.status === 'cancelled' }, @@ -426,9 +426,9 @@ export class IncomingSyncManager { map: Map>, value: string ): { - contact?: Ref - extra?: string - } { + contact?: Ref + extra?: string + } { const contact = map.get(value) if (contact !== undefined) { return { @@ -467,7 +467,7 @@ export class IncomingSyncManager { return [Array.from(contacts), Array.from(extra)] } - private getDiff(data: Partial>, current: T): Partial> { + private getDiff (data: Partial>, current: T): Partial> { const res = {} for (const key in data) { if (!deepEqual((data as any)[key], (current as any)[key])) { diff --git a/services/payment/pod-payment/src/providers/polar/index.ts b/services/payment/pod-payment/src/providers/polar/index.ts index d55f5dcf10..7b2518ccd7 100644 --- a/services/payment/pod-payment/src/providers/polar/index.ts +++ b/services/payment/pod-payment/src/providers/polar/index.ts @@ -13,7 +13,7 @@ // limitations under the License. // -export * from './types' +export type * from './types' export * from './client' export * from './webhook' export { PolarProvider } from './provider' diff --git a/services/payment/pod-payment/src/providers/stripe/__tests__/provider.test.ts b/services/payment/pod-payment/src/providers/stripe/__tests__/provider.test.ts index 914cfc0131..43104cca3a 100644 --- a/services/payment/pod-payment/src/providers/stripe/__tests__/provider.test.ts +++ b/services/payment/pod-payment/src/providers/stripe/__tests__/provider.test.ts @@ -302,7 +302,7 @@ describe('StripeProvider', () => { // eslint-disable-next-line @typescript-eslint/consistent-type-assertions const res = {} as Response - const handleStripeWebhookSpy = jest.spyOn(webhookModule, 'handleStripeWebhook').mockResolvedValue(undefined as any) + const handleStripeWebhookSpy = jest.spyOn(webhookModule, 'handleStripeWebhook').mockResolvedValue(undefined) handler(req, res) diff --git a/services/payment/pod-payment/src/providers/stripe/__tests__/webhook.test.ts b/services/payment/pod-payment/src/providers/stripe/__tests__/webhook.test.ts index 4718cbd0bd..88637d5dbf 100644 --- a/services/payment/pod-payment/src/providers/stripe/__tests__/webhook.test.ts +++ b/services/payment/pod-payment/src/providers/stripe/__tests__/webhook.test.ts @@ -46,7 +46,7 @@ describe('handleStripeWebhook', () => { } res = { - status: statusMock as unknown as any + status: statusMock } jest.clearAllMocks() diff --git a/services/payment/pod-payment/src/providers/stripe/index.ts b/services/payment/pod-payment/src/providers/stripe/index.ts index 6a7e3bf60b..180a34ea69 100644 --- a/services/payment/pod-payment/src/providers/stripe/index.ts +++ b/services/payment/pod-payment/src/providers/stripe/index.ts @@ -13,7 +13,7 @@ // limitations under the License. // -export * from './types' +export type * from './types' export * from './client' export * from './webhook' export { StripeProvider } from './provider' diff --git a/services/print/pod-print/src/server.ts b/services/print/pod-print/src/server.ts index 0dfc4309db..606b0f59fa 100644 --- a/services/print/pod-print/src/server.ts +++ b/services/print/pod-print/src/server.ts @@ -145,11 +145,11 @@ function parsePrintOptions (query: Request['query']): PrintOptions { const kind = query.kind as PrintOptions['kind'] const orientation = query.orientation as PrintOptions['orientation'] - if (kind !== undefined && !validKinds.includes(kind as any)) { + if (kind !== undefined && !validKinds.includes(kind)) { throw new ApiError(400, `Invalid print kind: ${kind}`) } - if (orientation !== undefined && !validPageOrientations.includes(orientation as any)) { + if (orientation !== undefined && !validPageOrientations.includes(orientation)) { throw new ApiError(400, `Invalid page orientation: ${orientation}`) } diff --git a/services/rekoni/src/server.ts b/services/rekoni/src/server.ts index e2483d41fe..57fe45fd76 100644 --- a/services/rekoni/src/server.ts +++ b/services/rekoni/src/server.ts @@ -140,7 +140,7 @@ export const startServer = async (): Promise => { temp.push(d) }) bodyStream.on('end', function () { - resolve(Buffer.concat(temp as any)) + resolve(Buffer.concat(temp)) }) }) diff --git a/services/telegram/pod-telegram/src/markup.ts b/services/telegram/pod-telegram/src/markup.ts index f89137eee1..9adbe92640 100644 --- a/services/telegram/pod-telegram/src/markup.ts +++ b/services/telegram/pod-telegram/src/markup.ts @@ -21,12 +21,12 @@ const entityMap = new Map([ export function platformToTelegram (message: string): TelegramMessage { const openedTags = new Map< - string, - { - offset: number - count: number - url?: string - } + string, + { + offset: number + count: number + url?: string + } >() let pureMessage = '' const entities: Api.TypeMessageEntity[] = [] diff --git a/services/telegram/pod-telegram/src/platform.ts b/services/telegram/pod-telegram/src/platform.ts index 9bf9c8e96e..44c515e052 100644 --- a/services/telegram/pod-telegram/src/platform.ts +++ b/services/telegram/pod-telegram/src/platform.ts @@ -72,7 +72,7 @@ export class PlatformWorker { } static async createStorages (): Promise< - [Collection, Collection, Collection] + [Collection, Collection, Collection] > { const db = await getDB() const userStorage = db.collection('integrations') diff --git a/services/telegram/pod-telegram/src/telegram.ts b/services/telegram/pod-telegram/src/telegram.ts index 34d9e96ebc..2ecb69ce7d 100644 --- a/services/telegram/pod-telegram/src/telegram.ts +++ b/services/telegram/pod-telegram/src/telegram.ts @@ -314,7 +314,7 @@ class TelegramConnection { getToken (): string | undefined { // TODO: Need recheck // eslint-disable-next-line @typescript-eslint/no-confusing-void-expression - return (this.client.session.save() as never as string) ?? undefined + return (this.client.session.save() as never) ?? undefined } } diff --git a/services/telegram/pod-telegram/src/utils.ts b/services/telegram/pod-telegram/src/utils.ts index 04b0c29719..6d311f4653 100644 --- a/services/telegram/pod-telegram/src/utils.ts +++ b/services/telegram/pod-telegram/src/utils.ts @@ -62,7 +62,7 @@ export async function createPlatformClient (token: string): Promise { headers: { 'User-Agent': config.ServiceID } - }) as never as ClientSocket + }) as never }) const endpoint = await getTransactorEndpoint(token) diff --git a/services/telegram/pod-telegram/src/workspace.ts b/services/telegram/pod-telegram/src/workspace.ts index 75cfdd0e41..fc8c15bee9 100644 --- a/services/telegram/pod-telegram/src/workspace.ts +++ b/services/telegram/pod-telegram/src/workspace.ts @@ -35,11 +35,11 @@ import { createPlatformClient, getFiles, normalizeValue } from './utils' export class WorkspaceWorker { private readonly clients = new Map< - string, - { - conn: TelegramConnectionInterface - queue?: MsgQueue - } + string, + { + conn: TelegramConnectionInterface + queue?: MsgQueue + } >() private channels: Map = new Map() @@ -639,7 +639,7 @@ export class WorkspaceWorker { const res: Buffer[] = [] for (const attachment of attachments) { const chunks = await this.storageAdapter.read(this.ctx, this.workspace as any, attachment.file) // TODO: FIXME <--WorkspaceIds - const buffer = Buffer.concat(chunks as unknown as Uint8Array[]) + const buffer = Buffer.concat(chunks) if (buffer.length > 0) { res.push( Object.assign(buffer, { From fea61f63283cead847b35ce90cb370e717c5409e Mon Sep 17 00:00:00 2001 From: Artem Savchenko Date: Wed, 19 Aug 2026 22:44:48 +0700 Subject: [PATCH 22/55] Adjust new rules Signed-off-by: Artem Savchenko (ported from TraceX 9064e14c88) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- .../packages/account-client/src/client.ts | 6 +- foundations/core/packages/core/src/utils.ts | 4 +- foundations/core/packages/model/src/dsl.ts | 8 +-- .../core/packages/platform/src/status.ts | 2 +- foundations/core/packages/retry/src/retry.ts | 2 +- .../server/packages/kafka/src/index.ts | 7 +- .../src/tests/aggregator.spec.ts | 2 +- .../src/__tests__/sessionManager.test.ts | 1 - .../utils/packages/platform-rig/bin/format.js | 45 +++++++++++- models/activity/src/index.ts | 4 +- models/analytics-collector/src/index.ts | 14 ++-- models/attachment/src/index.ts | 2 +- models/chunter/src/index.ts | 2 +- models/chunter/src/migration.ts | 2 +- models/chunter/src/types.ts | 22 +++--- models/export/src/index.ts | 12 ++-- models/guest/src/index.ts | 2 +- models/inventory/src/index.ts | 14 ++-- models/notification/src/index.ts | 4 +- models/notification/src/migration.ts | 8 +-- models/request/src/index.ts | 10 +-- models/setting/src/index.ts | 2 +- models/tags/src/index.ts | 30 ++++---- packages/importer/src/huly/cards.ts | 4 +- packages/importer/src/importer/builder.ts | 2 +- packages/importer/src/importer/importer.ts | 8 +-- .../importer/src/importer/preprocessor.ts | 2 +- packages/importer/src/index.ts | 4 +- .../src/__mocks__/svelte-store.ts | 8 +-- packages/presentation/src/__mocks__/svelte.ts | 4 +- packages/ui/src/types.ts | 2 +- .../src/components/Activity.svelte | 16 ++--- .../src/components/ActivityFilter.svelte | 2 +- .../components/ActivityMessageAction.svelte | 2 +- .../components/ActivityMessageActions.svelte | 10 +-- .../src/components/BasePreview.svelte | 6 +- .../src/components/MessageTimestamp.svelte | 2 +- .../src/components/Replies.svelte | 6 +- .../ActivityMessageTemplate.svelte | 16 ++--- .../DocUpdateMessageHeader.svelte | 2 +- .../DocUpdateMessageObjectValue.svelte | 6 +- .../DocUpdateMessagePresenter.svelte | 6 +- .../DocUpdateMessagePreview.svelte | 4 +- .../attributes/SetAttributesPresenter.svelte | 2 +- .../src/components/reactions/Reactions.svelte | 4 +- .../reactions/ReactionsPresenter.svelte | 2 +- .../reactions/ReactionsPreview.svelte | 2 +- plugins/activity-resources/src/index.ts | 2 +- .../src/components/AccordionEditor.svelte | 2 +- .../src/components/AddAttachment.svelte | 4 +- .../src/components/AttachmentAction.svelte | 2 +- .../src/components/AttachmentActions.svelte | 2 +- .../src/components/AttachmentDocList.svelte | 2 +- .../src/components/AttachmentDroppable.svelte | 2 +- .../AttachmentGalleryPresenter.svelte | 8 +-- .../src/components/AttachmentGroup.svelte | 2 +- .../components/AttachmentImagePreview.svelte | 10 +-- .../src/components/AttachmentPopup.svelte | 8 +-- .../src/components/AttachmentPresenter.svelte | 12 ++-- .../components/AttachmentPreviewPopup.svelte | 4 +- .../src/components/AttachmentRefInput.svelte | 46 ++++++------- .../AttachmentStyleBoxCollabEditor.svelte | 34 +++++----- .../AttachmentStyleBoxEditor.svelte | 8 +-- .../src/components/AttachmentStyledBox.svelte | 48 ++++++------- .../components/AttachmentVideoPreview.svelte | 4 +- .../src/components/Attachments.svelte | 8 +-- .../src/components/AudioPlayer.svelte | 2 +- .../src/components/FileBrowser.svelte | 2 +- .../src/components/LinkPreview.svelte | 16 ++--- .../src/components/LinkPreviewImage.svelte | 2 +- .../components/LinkPreviewPresenter.svelte | 18 ++--- .../src/components/Photos.svelte | 8 +-- .../src/components/PreviewWidget.svelte | 4 +- plugins/attachment-resources/src/index.ts | 2 +- .../src/components/Chart/GridLines.svelte | 2 +- .../src/components/Chart/Line.svelte | 2 +- .../src/components/Chart/XAxis.svelte | 2 +- .../src/components/ChartCard.svelte | 2 +- .../src/components/LargestFilesTable.svelte | 4 +- .../components/LimitsFooterIndicator.svelte | 2 +- .../src/components/LimitsFooterPopup.svelte | 2 +- .../src/components/LimitsIndicator.svelte | 2 +- .../src/components/ResourceUsage.svelte | 2 +- .../src/components/StorageUsage.svelte | 20 +++--- .../src/components/Subscriptions.svelte | 32 ++++----- .../src/stores/largestFiles.ts | 2 +- plugins/billing-resources/src/utils.ts | 2 +- .../src/components/AttributeMapper.svelte | 2 +- .../src/components/BitrixConfigure.svelte | 2 +- .../src/components/BitrixConnect.svelte | 2 +- .../src/components/BitrixFieldLookup.svelte | 4 +- .../src/components/CreateMapping.svelte | 2 +- .../components/CreateMappingAttribute.svelte | 2 +- .../src/components/EntityMapping.svelte | 2 +- .../FieldMappingSynchronizer.svelte | 6 +- .../components/mappings/CopyMapping.svelte | 2 +- .../mappings/CreateChannelMapping.svelte | 2 +- .../CreateHRApplicationMapping.svelte | 4 +- .../mappings/CreateTagMapping.svelte | 4 +- .../mappings/DownloadAttachmentMapping.svelte | 4 +- .../mappings/FindReferenceMapping.svelte | 4 +- plugins/bitrix/src/sync.ts | 3 +- .../src/components/BoardHeader.svelte | 2 +- .../src/components/BoardMenu.svelte | 4 +- .../src/components/CreateBoard.svelte | 4 +- .../src/components/CreateCard.svelte | 4 +- .../src/components/EditCard.svelte | 2 +- .../src/components/KanbanCard.svelte | 10 +-- .../src/components/KanbanView.svelte | 2 +- .../src/components/add-card/AddCard.svelte | 4 +- .../components/add-card/AddCardEditor.svelte | 2 +- .../src/components/editor/CardActions.svelte | 2 +- .../components/popups/CardCoverPicker.svelte | 8 +-- .../src/components/popups/CopyCard.svelte | 6 +- .../components/popups/DateRangePicker.svelte | 2 +- .../src/components/popups/MoveCard.svelte | 6 +- .../src/components/AddParticipant.svelte | 12 ++-- .../src/components/ByDateSelector.svelte | 2 +- .../src/components/CalDavAccess.svelte | 10 +-- .../src/components/CalendarSelector.svelte | 4 +- .../src/components/CalendarSettings.svelte | 8 +-- .../src/components/CalendarView.svelte | 30 ++++---- .../src/components/CreateEvent.svelte | 8 +-- .../src/components/CreateReminder.svelte | 4 +- .../src/components/DateEditor.svelte | 4 +- .../src/components/DateTimePresenter.svelte | 2 +- .../src/components/DayCalendar.svelte | 20 +++--- .../src/components/DocReminder.svelte | 2 +- .../src/components/DocRemindersPopup.svelte | 2 +- .../src/components/EditEvent.svelte | 8 +-- .../src/components/EventElement.svelte | 4 +- .../src/components/EventParticipants.svelte | 8 +-- .../src/components/EventPresenter.svelte | 2 +- .../src/components/EventReminders.svelte | 6 +- .../src/components/EventTimeEditor.svelte | 4 +- .../components/EventTimeExtraButton.svelte | 2 +- .../src/components/Events.svelte | 4 +- .../components/IntegrationConfigure.svelte | 2 +- .../src/components/IntegrationConnect.svelte | 2 +- .../src/components/LocationEditor.svelte | 4 +- .../src/components/MonthSelector.svelte | 2 +- .../src/components/ParticipantsPopup.svelte | 4 +- .../src/components/PersonsPresenter.svelte | 2 +- .../src/components/RRulePresenter.svelte | 2 +- .../src/components/ReccurancePopup.svelte | 6 +- .../src/components/ReminderPopup.svelte | 2 +- .../src/components/ReminderPresenter.svelte | 2 +- .../src/components/SaveEventReminder.svelte | 4 +- .../src/components/ScheduleEditor.svelte | 24 +++---- .../src/components/ScheduleNavSection.svelte | 6 +- .../src/components/SetPosSelector.svelte | 2 +- .../src/components/TimeZoneSelector.svelte | 2 +- .../src/components/VisibilityEditor.svelte | 4 +- .../src/components/Channel.svelte | 2 +- .../src/components/ChannelHeader.svelte | 2 +- .../src/components/ChannelInput.svelte | 6 +- .../src/components/ChannelSidebarView.svelte | 2 +- .../src/components/ChannelTypingInfo.svelte | 4 +- .../src/components/ChannelView.svelte | 8 +-- .../src/components/ChatWidget.svelte | 2 +- .../src/components/ChatWidgetTab.svelte | 2 +- .../ChunterEmployeePresenter.svelte | 4 +- .../ConvertDmToPrivateChannel.svelte | 2 +- .../src/components/DirectMessageButton.svelte | 2 +- .../src/components/DmHeader.svelte | 2 +- .../EditChannelDescriptionTab.svelte | 8 +-- .../components/EditChannelSettingsTab.svelte | 4 +- .../src/components/PinnedMessages.svelte | 2 +- .../src/components/PinnedMessagesPopup.svelte | 2 +- .../ReverseChannelScrollView.svelte | 68 +++++++++---------- .../components/WorkbenchTabExtension.svelte | 2 +- .../activity/MembersChangedMessage.svelte | 2 +- .../chat-message/ChatMessageInput.svelte | 26 +++---- .../chat-message/ChatMessagePresenter.svelte | 12 ++-- .../src/components/chat/ChannelAside.svelte | 6 +- .../src/components/chat/Chat.svelte | 6 +- .../src/components/chat/DocAside.svelte | 2 +- .../chat/create/CreateChannel.svelte | 8 +-- .../chat/create/CreateDirectChat.svelte | 10 +-- .../chat/navigator/ChatNavGroup.svelte | 8 +-- .../chat/navigator/ChatNavItem.svelte | 2 +- .../chat/navigator/ChatNavSection.svelte | 2 +- .../chat/navigator/ChatNavigator.svelte | 4 +- .../chat/navigator/ChatSpecialElement.svelte | 4 +- .../components/chat/navigator/NavItem.svelte | 4 +- .../chat/specials/MessagesBrowser.svelte | 4 +- .../chat/specials/SavedMessages.svelte | 6 +- .../InlineCommentPresenter.svelte | 6 +- .../inline-comment/InlineCommentThread.svelte | 2 +- .../ChatMessageNotificationLabel.svelte | 6 +- .../components/threads/ThreadContent.svelte | 2 +- .../src/components/threads/ThreadView.svelte | 4 +- .../src/components/threads/Threads.svelte | 2 +- plugins/chunter-resources/src/navigation.ts | 10 +-- plugins/chunter-resources/src/plugin.ts | 2 +- plugins/chunter-resources/src/scroll.ts | 6 +- .../src/components/AccountArrayEditor.svelte | 4 +- .../src/components/AccountBox.svelte | 16 ++--- .../src/components/AddMembersPopup.svelte | 4 +- .../src/components/AssigneeBox.svelte | 2 +- .../src/components/AssigneePopup.svelte | 8 +-- .../src/components/Avatar.svelte | 8 +-- .../src/components/AvatarInstance.svelte | 6 +- .../src/components/ChannelFilter.svelte | 4 +- .../src/components/ChannelPanel.svelte | 2 +- .../src/components/ChannelsDropdown.svelte | 10 +-- .../src/components/ChannelsEditor.svelte | 2 +- .../src/components/ChannelsView.svelte | 6 +- .../src/components/CombineAvatars.svelte | 2 +- .../src/components/ContactArrayEditor.svelte | 2 +- .../src/components/ContactList.svelte | 2 +- .../components/ContactNamePresenter.svelte | 2 +- .../src/components/ContactPresenter.svelte | 4 +- .../src/components/Contacts.svelte | 4 +- .../src/components/CreateEmployee.svelte | 6 +- .../src/components/CreateGuest.svelte | 6 +- .../src/components/CreateOrganization.svelte | 4 +- .../src/components/CreatePerson.svelte | 4 +- .../src/components/EditAvatarPopup.svelte | 8 +-- .../src/components/EditOrganization.svelte | 2 +- .../components/EditOrganizationPanel.svelte | 4 +- .../src/components/EditPerson.svelte | 8 +-- .../src/components/EditableAvatar.svelte | 8 +-- .../src/components/EmployeeArrayEditor.svelte | 4 +- .../EmployeeAttributePresenter.svelte | 4 +- .../src/components/EmployeeBrowser.svelte | 2 +- .../src/components/EmployeeEditor.svelte | 2 +- .../src/components/EmployeeFilter.svelte | 8 +-- .../src/components/LanguageEditor.svelte | 2 +- .../src/components/LanguagesPopup.svelte | 2 +- .../src/components/MergeComparer.svelte | 2 +- .../src/components/MergePersons.svelte | 20 +++--- .../src/components/PersonIdArrayEditor.svelte | 4 +- .../src/components/PersonIdFilter.svelte | 8 +-- .../src/components/PersonPresenter.svelte | 2 +- .../src/components/PersonRefPresenter.svelte | 2 +- .../src/components/SelectAvatarPopup.svelte | 18 ++--- .../src/components/SelectAvatars.svelte | 2 +- .../src/components/SelectUsersPopup.svelte | 6 +- .../src/components/SocialEditor.svelte | 4 +- .../src/components/SpaceMembers.svelte | 2 +- .../src/components/SpaceMembersEditor.svelte | 2 +- .../src/components/TranslationSettings.svelte | 4 +- .../src/components/UserBox.svelte | 2 +- .../src/components/UserBoxItems.svelte | 6 +- .../src/components/UserBoxList.svelte | 4 +- .../src/components/UsersList.svelte | 4 +- .../WorkspaceMemberStatusEditor.svelte | 32 ++++----- .../person/EmployeePreviewPopup.svelte | 2 +- .../components/person/TimePresenter.svelte | 2 +- plugins/contact-resources/src/index.ts | 4 +- plugins/contact-resources/src/utils.ts | 14 ++-- .../components/CopyAsMarkdownButton.svelte | 4 +- .../src/formatter/utils.ts | 2 +- .../src/markdown/tableBuilder.ts | 4 +- .../src/model/headerGenerator.ts | 2 +- .../src/components/FileDownloadExt.svelte | 2 +- plugins/devmodel-resources/src/index.ts | 4 +- .../src/components/DiffView.svelte | 6 +- .../src/components/FileDiffContent.svelte | 6 +- .../src/components/FileDiffHeader.svelte | 2 +- .../src/components/FileDiffView.svelte | 6 +- .../src/components/CreateDocument.svelte | 8 +-- .../src/components/CreateSnapshot.svelte | 2 +- .../src/components/DocumentEditor.svelte | 2 +- .../src/components/DocumentTitle.svelte | 4 +- .../src/components/Documents.svelte | 2 +- .../src/components/EditDoc.svelte | 18 ++--- .../src/components/Move.svelte | 6 +- .../src/components/NewDocumentHeader.svelte | 6 +- .../components/navigator/DocHierarchy.svelte | 8 +-- .../navigator/DocTreeElement.svelte | 4 +- .../navigator/TeamspaceSpacePresenter.svelte | 20 +++--- .../src/components/sidebar/History.svelte | 2 +- .../teamspace/CreateTeamspace.svelte | 28 ++++---- .../src/components/CreateDrive.svelte | 24 +++---- .../src/components/CreateFolder.svelte | 6 +- .../src/components/DrivePanel.svelte | 2 +- .../src/components/DriveSpaceHeader.svelte | 6 +- .../src/components/DriveSpacePresenter.svelte | 8 +-- .../src/components/FileDropArea.svelte | 8 +-- .../src/components/FileHeader.svelte | 2 +- .../src/components/FilePanel.svelte | 8 +-- .../components/FileVersionPresenter.svelte | 2 +- .../src/components/FolderBrowser.svelte | 2 +- .../src/components/FolderHeader.svelte | 2 +- .../src/components/FolderPanel.svelte | 2 +- .../src/components/FolderTreeLevel.svelte | 6 +- .../src/components/MoveResource.svelte | 4 +- .../src/components/RenamePopup.svelte | 2 +- .../src/components/ResourcePresenter.svelte | 4 +- .../src/components/Thumbnail.svelte | 2 +- .../src/components/ActionsPopup.svelte | 4 +- .../src/components/EmojiPopup.svelte | 10 +-- .../settings/CreateCustomEmojiPopup.svelte | 10 +-- .../settings/SettingsEmojiTable.svelte | 2 +- plugins/emoji-resources/src/store.ts | 14 ++-- plugins/emoji-resources/src/utils.ts | 12 ++-- .../src/components/ExportButton.svelte | 2 +- .../src/components/ExportSettings.svelte | 2 +- .../components/ExportToWorkspaceModal.svelte | 8 +-- .../src/components/Chats.svelte | 6 +- .../src/components/Configure.svelte | 8 +-- .../src/components/ConfigureV2.svelte | 2 +- .../src/components/Connect.svelte | 2 +- .../src/components/FullMessage.svelte | 2 +- .../src/components/IntegrationSelector.svelte | 2 +- .../src/components/IntegrationState.svelte | 6 +- .../src/components/Main.svelte | 4 +- .../src/components/Messages.svelte | 2 +- .../src/components/NewMessage.svelte | 12 ++-- .../src/components/NewMessages.svelte | 14 ++-- .../src/components/SharedMessages.svelte | 2 +- .../activity/GmailSharedMessage.svelte | 2 +- .../activity/GmailWriteMessage.svelte | 4 +- .../src/components/CreatePublicLink.svelte | 12 ++-- .../src/components/Guest.svelte | 22 +++--- .../src/components/CreateDepartment.svelte | 4 +- .../src/components/CreateRequest.svelte | 8 +-- .../src/components/DepartmentCard.svelte | 10 +-- .../src/components/DepartmentStaff.svelte | 2 +- .../src/components/EditDepartment.svelte | 4 +- .../src/components/EditRequest.svelte | 2 +- .../src/components/EditRequestType.svelte | 4 +- .../src/components/PersonsPresenter.svelte | 2 +- .../src/components/Schedule.svelte | 10 +-- .../src/components/ScheduleView.svelte | 22 +++--- .../src/components/Structure.svelte | 4 +- .../schedule/CreatePublicHoliday.svelte | 8 +-- .../components/schedule/ExportPopup.svelte | 2 +- .../schedule/HolidayPresenter.svelte | 2 +- .../components/schedule/MonthTableView.svelte | 10 +-- .../src/components/schedule/MonthView.svelte | 32 ++++----- .../schedule/ScheduleRequest.svelte | 6 +- .../components/schedule/StaffPresenter.svelte | 2 +- .../src/components/schedule/YearView.svelte | 4 +- .../sidebar/DepartmentsHierarchy.svelte | 6 +- .../src/components/Categories.svelte | 4 +- .../src/components/CreateCategory.svelte | 4 +- .../src/components/CreateProduct.svelte | 4 +- .../src/components/CreateVariant.svelte | 4 +- .../src/components/HierarchyElement.svelte | 2 +- .../src/components/HierarchyView.svelte | 4 +- .../src/components/CreateCustomer.svelte | 8 +-- .../src/components/CreateFunnel.svelte | 22 +++--- .../src/components/CreateLead.svelte | 6 +- .../src/components/EditFunnel.svelte | 4 +- .../src/components/EditLead.svelte | 2 +- .../src/components/KanbanCard.svelte | 2 +- .../src/components/MyLeads.svelte | 4 +- .../src/components/NewItemsHeader.svelte | 2 +- .../src/components/AdminWorkspaces.svelte | 12 ++-- .../src/components/Auth.svelte | 2 +- .../src/components/AutoJoin.svelte | 6 +- .../src/components/Confirmation.svelte | 2 +- .../src/components/ConfirmationSend.svelte | 4 +- .../src/components/Form.svelte | 8 +-- .../src/components/InviteLink.svelte | 8 +-- .../src/components/Join.svelte | 32 ++++----- .../src/components/LoginApp.svelte | 4 +- .../src/components/LoginAppBase.svelte | 2 +- .../src/components/LoginForm.svelte | 4 +- .../src/components/LoginOtpForm.svelte | 2 +- .../src/components/OtpForm.svelte | 16 ++--- .../src/components/Providers.svelte | 6 +- .../src/components/SelectWorkspace.svelte | 8 +-- .../src/components/SignupForm.svelte | 2 +- .../src/components/AddRoomPopup.svelte | 4 +- .../src/components/EditFloorPopup.svelte | 4 +- .../src/components/EditMeetingData.svelte | 2 +- .../src/components/EditMeetingMinutes.svelte | 8 +-- .../components/EditMeetingScheduleData.svelte | 2 +- .../src/components/EditRoom.svelte | 8 +-- .../src/components/Floor.svelte | 2 +- .../src/components/FloorConfigure.svelte | 16 ++--- .../src/components/FloorPreview.svelte | 8 +-- .../src/components/FloorView.svelte | 2 +- .../love-resources/src/components/Hall.svelte | 2 +- .../src/components/LoveWidget.svelte | 4 +- .../src/components/MediaPopupItemExt.svelte | 6 +- .../src/components/MeetingData.svelte | 4 +- .../src/components/MeetingScheduleData.svelte | 2 +- .../src/components/ParticipantsPreview.svelte | 2 +- .../love-resources/src/components/Room.svelte | 6 +- .../src/components/RoomAccessPopup.svelte | 2 +- .../src/components/RoomConfigure.svelte | 20 +++--- .../src/components/RoomLanguageEditor.svelte | 2 +- .../components/RoomLanguageSelector.svelte | 4 +- .../src/components/RoomPopup.svelte | 8 +-- .../src/components/RoomPreview.svelte | 18 ++--- .../src/components/RoomSelector.svelte | 4 +- .../src/components/RoomSettingsPopup.svelte | 2 +- .../RoomTranscriptionSettings.svelte | 4 +- .../src/components/Settings.svelte | 8 +-- .../components/SharingStateIndicator.svelte | 4 +- .../src/components/SharingStatePopup.svelte | 2 +- .../src/components/WorkbenchExtension.svelte | 38 +++++------ .../components/guest/GuestJoinPopup.svelte | 22 +++--- .../components/guest/GuestMeetingApp.svelte | 24 +++---- .../guest/GuestParticipantView.svelte | 26 +++---- .../guest/GuestParticipantsListView.svelte | 6 +- .../src/components/meeting/ControlBar.svelte | 2 +- .../meeting/ControlBarContainer.svelte | 4 +- .../src/components/meeting/ControlExt.svelte | 10 +-- .../LastParticipantNotification.svelte | 4 +- .../components/meeting/MeetingHeader.svelte | 2 +- .../components/meeting/MicSettingPopup.svelte | 6 +- .../components/meeting/ParticipantView.svelte | 26 +++---- .../meeting/ParticipantsListView.svelte | 6 +- .../meeting/ScreenSharingView.svelte | 34 +++++----- .../meeting/controls/CameraButton.svelte | 2 +- .../meeting/controls/LeaveRoomButton.svelte | 2 +- .../controls/MeetingOptionsButton.svelte | 4 +- .../meeting/controls/MicrophoneButton.svelte | 2 +- .../meeting/controls/RoomAccessButton.svelte | 2 +- .../controls/SendReactionButton.svelte | 2 +- .../meeting/controls/ShareScreenButton.svelte | 4 +- .../invites/IncomingInvitePopup.svelte | 4 +- .../invites/InviteEmployeeButton.svelte | 4 +- .../meeting/invites/InvitesExt.svelte | 4 +- .../invites/OutgoingInvitePopup.svelte | 2 +- .../components/meeting/widget/ChatTab.svelte | 4 +- .../meeting/widget/MeetingWidget.svelte | 2 +- .../meeting/widget/MeetingWidgetHeader.svelte | 2 +- .../meeting/widget/WidgetSwitcher.svelte | 4 +- plugins/love-resources/src/types.ts | 4 +- .../src/components/MediaPopup.svelte | 6 +- .../components/MediaPopupCamPreview.svelte | 2 +- .../components/MediaPopupCamSelector.svelte | 2 +- .../src/components/MediaPopupItem.svelte | 2 +- .../components/MediaPopupMicSelector.svelte | 2 +- .../components/MediaPopupSpkSelector.svelte | 2 +- .../src/components/MediaSettingsButton.svelte | 2 +- plugins/media-resources/src/stores.ts | 4 +- plugins/media-resources/src/utils.ts | 3 +- .../components/BrowserNotificatator.svelte | 8 +-- .../src/components/CollaboratorEditor.svelte | 2 +- .../components/DocNotifyContextCard.svelte | 14 ++-- .../DocNotifyContextPresenter.svelte | 2 +- .../src/components/Notification.svelte | 2 +- .../ActivityInboxNotificationPresenter.svelte | 8 +-- .../CommonInboxNotificationPresenter.svelte | 2 +- .../src/components/inbox/Inbox.svelte | 20 +++--- .../inbox/InboxGroupedListView.svelte | 10 +-- .../components/inbox/InboxMenuButton.svelte | 2 +- .../inbox/InboxNotificationPresenter.svelte | 8 +-- .../components/inbox/SettingsButton.svelte | 2 +- .../src/components/inbox/SettingsPopup.svelte | 6 +- .../settings/GeneralPreferencesGroup.svelte | 6 +- .../settings/NotificationGroupSetting.svelte | 12 ++-- .../WebpushesPreferencesPresenter.svelte | 16 ++--- plugins/notification-resources/src/utils.ts | 12 ++-- .../src/components/Auth.svelte | 2 +- .../src/components/Form.svelte | 6 +- .../src/components/OnboardApp.svelte | 4 +- .../src/components/OnboardForm.svelte | 6 +- .../src/components/PresenceAvatars.svelte | 4 +- plugins/presence-resources/src/index.ts | 2 +- .../src/components/PrintBulkToPDF.svelte | 8 +-- .../src/components/PrintToPDF.svelte | 14 ++-- .../CreateProductVersion.svelte | 12 ++-- .../product-version/EditProductVersion.svelte | 2 +- .../ProductVersionPresenter.svelte | 2 +- .../components/product/CreateProduct.svelte | 20 +++--- .../src/components/product/EditProduct.svelte | 6 +- .../product/NewProductHeader.svelte | 2 +- .../src/components/AnswersItemEditor.svelte | 2 +- .../src/components/LabelEditor.svelte | 2 +- .../MultipleChoiceAnswerDataEditor.svelte | 2 +- .../MultipleChoiceQuestionDataEditor.svelte | 14 ++-- .../src/components/OptionsList.svelte | 8 +-- .../OrderingAnswerDataEditor.svelte | 2 +- .../OrderingQuestionDataEditor.svelte | 14 ++-- .../QuestionsCollectionEditor.svelte | 2 +- .../src/components/QuestionsItemEditor.svelte | 6 +- .../SingleChoiceAnswerDataEditor.svelte | 2 +- .../SingleChoiceQuestionDataEditor.svelte | 14 ++-- .../MultipleChoiceAssessmentAssess.ts | 4 +- .../functions/SingleChoiceAssessmentAssess.ts | 4 +- plugins/questions-resources/src/plugin.ts | 22 +++--- .../src/utils/assessAnswer.ts | 8 +-- .../src/utils/assessAnswers.ts | 8 +-- .../src/utils/calculateAnswersToPass.ts | 6 +- .../src/components/RatingActivities.svelte | 4 +- .../src/components/RatingEditor.svelte | 24 +++---- .../src/components/RatingWidget.svelte | 2 +- .../src/components/Draggable.svelte | 6 +- .../src/components/RecorderExt.svelte | 2 +- .../src/components/RecordingPopup.svelte | 24 +++---- .../src/components/RequestActions.svelte | 14 ++-- .../src/components/RequestDetail.svelte | 2 +- .../components/RequestStatusPresenter.svelte | 2 +- .../AnonymousGuestSpaceInput.svelte | 4 +- .../src/components/AssociationEditor.svelte | 10 +-- .../components/AvailableSpacesInput.svelte | 6 +- .../src/components/Backup.svelte | 44 ++++++------ .../src/components/ClassAttributeRow.svelte | 16 ++--- .../src/components/ClassAttributes.svelte | 18 ++--- .../src/components/ClassAttributesList.svelte | 30 ++++---- .../src/components/ClassHierarchy.svelte | 4 +- .../src/components/ClassSetting.svelte | 12 ++-- .../src/components/Configure.svelte | 2 +- .../src/components/CreateAttribute.svelte | 8 +-- .../components/CreateAttributePopup.svelte | 8 +-- .../src/components/CreateMixin.svelte | 2 +- .../src/components/CreateRelation.svelte | 6 +- .../src/components/EditClassLabel.svelte | 2 +- .../src/components/EditEnum.svelte | 20 +++--- .../src/components/EditRelation.svelte | 2 +- .../src/components/EnumSetting.svelte | 2 +- .../src/components/EnumValues.svelte | 16 ++--- .../src/components/EnumValuesList.svelte | 12 ++-- .../src/components/General.svelte | 12 ++-- .../GuestPermissionsSettings.svelte | 38 +++++------ .../src/components/InviteSetting.svelte | 18 ++--- .../src/components/MailboxEditorModal.svelte | 8 +-- .../src/components/MailboxItem.svelte | 4 +- .../src/components/Mailboxes.svelte | 6 +- .../src/components/OfficeSettings.svelte | 4 +- .../src/components/Password.svelte | 8 +-- .../src/components/Profile.svelte | 6 +- .../src/components/RelationSetting.svelte | 12 ++-- .../src/components/Settings.svelte | 10 +-- .../src/components/Spaces.svelte | 2 +- .../src/components/UserRoleSelect.svelte | 2 +- .../WorkspacePermissionEditor.svelte | 4 +- .../src/components/WorkspaceSettings.svelte | 2 +- .../integrations/IntegrationCard.svelte | 12 ++-- .../integrations/IntegrationLabel.svelte | 4 +- .../integrations/IntegrationTag.svelte | 4 +- .../integrations/Integrations.svelte | 18 ++--- .../socialIds/AddEmailSocialId.svelte | 10 +-- .../components/socialIds/AddSocialId.svelte | 4 +- .../components/socialIds/SocialIdRow.svelte | 4 +- .../socialIds/SocialIdsEditor.svelte | 4 +- .../spaceTypes/CreateSpaceType.svelte | 12 ++-- .../spaceTypes/ManageSpaceTypeContent.svelte | 6 +- .../spaceTypes/ManageSpaceTypes.svelte | 6 +- .../spaceTypes/ManageSpaceTypesTools.svelte | 2 +- .../components/spaceTypes/RoleEditor.svelte | 6 +- .../components/spaceTypes/SpaceTypes.svelte | 2 +- .../spaceTypes/editor/CreateRole.svelte | 2 +- .../spaceTypes/editor/SpaceTypeEditor.svelte | 8 +-- .../SpaceTypeGeneralSectionEditor.svelte | 4 +- .../editor/SpaceTypeRolesSectionEditor.svelte | 2 +- .../components/typeEditors/ArrayEditor.svelte | 2 +- .../typeEditors/BooleanTypeEditor.svelte | 4 +- .../typeEditors/EmployeeRefEditor.svelte | 4 +- .../typeEditors/EnumTypeEditor.svelte | 6 +- .../typeEditors/IdentifierTypeEditor.svelte | 6 +- .../typeEditors/NumberTypeEditor.svelte | 4 +- .../components/typeEditors/TypesPopup.svelte | 2 +- .../src/inviteSettingsUtils.ts | 10 +-- .../src/components/CreateSurvey.svelte | 4 +- .../src/components/EditPoll.svelte | 8 +-- .../src/components/EditPollPanel.svelte | 10 +-- .../src/components/EditQuestion.svelte | 30 ++++---- .../src/components/EditSurvey.svelte | 14 ++-- .../src/components/EditSurveyPanel.svelte | 8 +-- .../src/components/PollCollection.svelte | 4 +- .../src/components/PollQuestion.svelte | 18 ++--- plugins/survey-resources/src/utils.ts | 4 +- .../src/components/CategoryBar.svelte | 2 +- .../src/components/CreateTagElement.svelte | 4 +- .../src/components/DocTagsEditor.svelte | 4 +- .../src/components/DraftTagsEditor.svelte | 4 +- .../src/components/DraftTagsPopup.svelte | 6 +- .../src/components/EditTagElement.svelte | 2 +- .../src/components/LabelsPresenter.svelte | 4 +- .../components/ObjectsTagsEditorPopup.svelte | 6 +- .../tags-resources/src/components/Tags.svelte | 6 +- .../src/components/TagsAttributeEditor.svelte | 4 +- .../src/components/TagsDropdownEditor.svelte | 6 +- .../src/components/TagsEditor.svelte | 6 +- .../src/components/TagsEditorPopup.svelte | 6 +- .../src/components/TagsFilter.svelte | 6 +- .../src/components/TagsPopup.svelte | 8 +-- .../src/components/TagsView.svelte | 4 +- .../src/components/AssignedTasks.svelte | 6 +- .../src/components/CreateFilterPopup.svelte | 4 +- .../src/components/Dashboard.svelte | 8 +-- .../src/components/StatusFilter.svelte | 10 +-- .../src/components/StatusSelector.svelte | 4 +- .../src/components/StatusTableView.svelte | 10 +-- .../src/components/TaskHeader.svelte | 4 +- .../src/components/TypesView.svelte | 2 +- .../src/components/kanban/KanbanView.svelte | 4 +- .../projectTypes/CreateProjectType.svelte | 2 +- .../ProjectTypeTasksTypeSectionEditor.svelte | 2 +- .../components/state/CreateStatePopup.svelte | 10 +-- .../state/StateIconPresenter.svelte | 6 +- .../components/state/StatePresenter.svelte | 2 +- .../src/components/state/StatesBar.svelte | 2 +- .../src/components/state/StatesPopup.svelte | 2 +- .../state/StatesProjectEditor.svelte | 14 ++-- .../components/state/TypeStatesPopup.svelte | 4 +- .../taskTypes/CreateTaskType.svelte | 6 +- .../taskTypes/TaskKindSelector.svelte | 2 +- .../taskTypes/TaskTypeEditor.svelte | 8 +-- .../src/components/Chat.svelte | 12 ++-- .../src/components/Configure.svelte | 30 ++++---- .../src/components/ConfigureBotPopup.svelte | 6 +- .../src/components/Connect.svelte | 12 ++-- .../src/components/IntegrationState.svelte | 8 +-- .../src/components/Messages.svelte | 6 +- .../NotificationProviderPresenter.svelte | 2 +- .../src/components/PhoneInput.svelte | 2 +- .../activity/TelegramMessageCreated.svelte | 2 +- .../src/components/Copy.svelte | 2 +- .../components/CreateTemplateCategory.svelte | 4 +- .../src/components/EditGroup.svelte | 2 +- .../src/components/EditorTemplatePopup.svelte | 2 +- .../src/components/Move.svelte | 2 +- .../src/components/TemplatePopup.svelte | 6 +- .../src/components/Templates.svelte | 14 ++-- .../TestManagementSpaceHeader.svelte | 8 +-- .../components/project/CreateProject.svelte | 26 +++---- .../project/ProjectSpacePresenter.svelte | 2 +- .../test-case/CreateTestCase.svelte | 6 +- .../test-case/SelectTestCasesModal.svelte | 4 +- .../components/test-case/StatusEditor.svelte | 4 +- .../test-plan/NewTestPlanPanel.svelte | 2 +- .../test-result/TestResultStatusEditor.svelte | 4 +- .../components/test-result/TestRunner.svelte | 2 +- .../test-run/NewTestRunPanel.svelte | 2 +- .../test-suite/CreateTestSuite.svelte | 4 +- .../src/components/extension/embed/embed.ts | 2 +- .../extension/qms/qmsInlineCommentMark.ts | 4 +- .../src/components/extension/reference.ts | 5 +- .../src/components/extensions.ts | 18 +++-- .../NullablePositiveNumberEditor.svelte | 4 +- .../SentRequestCompletionPresenter.svelte | 2 +- .../src/components/Settings.svelte | 2 +- .../components/TrainingAttemptPanel.svelte | 4 +- .../TrainingChangeOwnerPopup.svelte | 4 +- .../src/components/TrainingCreator.svelte | 2 +- .../components/TrainingNotification.svelte | 2 +- .../src/components/TrainingPanel.svelte | 4 +- .../components/TrainingPanelOverview.svelte | 4 +- .../TrainingPassingScoreSlider.svelte | 8 +-- .../src/components/TrainingRefEditor.svelte | 2 +- .../TrainingRequestChangeOwnerPopup.svelte | 4 +- .../components/TrainingRequestCreator.svelte | 4 +- .../components/TrainingRequestPanel.svelte | 8 +-- .../TrainingRequestRolesEditor.svelte | 2 +- .../routing/routes/trainingRequestRoute.ts | 4 +- .../src/utils/CompletionMap.ts | 12 ++-- .../src/utils/createTraining.ts | 2 +- .../src/utils/createTrainingRequest.ts | 2 +- .../src/components/FileUploadStatusBar.svelte | 2 +- .../components/FileUploadStatusPopup.svelte | 8 +-- .../src/__tests__/objectIterator.test.ts | 2 +- plugins/view-resources/src/actionImpl.ts | 16 ++--- .../src/components/ActionHandler.svelte | 20 +++--- .../src/components/ActionsPopup.svelte | 14 ++-- .../components/AssociationPresenter.svelte | 2 +- .../src/components/ClassAttributeBar.svelte | 4 +- .../src/components/DocNavLink.svelte | 4 +- .../src/components/DocTable.svelte | 22 +++--- .../src/components/DocsNavigator.svelte | 2 +- .../src/components/EditDoc.svelte | 16 ++--- .../src/components/FixedColumn.svelte | 2 +- .../src/components/IdPresenter.svelte | 2 +- .../src/components/LinkPresenter.svelte | 2 +- .../src/components/MarkupDiffPresenter.svelte | 4 +- .../view-resources/src/components/Move.svelte | 8 +-- .../src/components/ObjectBox.svelte | 2 +- .../src/components/ObjectIcon.svelte | 2 +- .../src/components/ObjectMention.svelte | 12 ++-- .../src/components/ObjectSearchBox.svelte | 2 +- .../src/components/ParentsNavigator.svelte | 10 +-- .../components/ReadOnlyNotification.svelte | 2 +- .../src/components/RelationEditor.svelte | 6 +- .../src/components/RelationsEditor.svelte | 2 +- .../src/components/RelationshipTable.svelte | 44 ++++++------ .../src/components/SearchSelector.svelte | 2 +- .../src/components/StringPresenter.svelte | 2 +- .../src/components/Table.svelte | 34 +++++----- .../src/components/UpDownNavigator.svelte | 2 +- .../src/components/ValueSelector.svelte | 14 ++-- .../src/components/ViewOptions.svelte | 4 +- .../src/components/ViewOptionsButton.svelte | 6 +- .../components/ViewletClassSettings.svelte | 8 +-- .../src/components/ViewletContentView.svelte | 6 +- .../src/components/ViewletSelector.svelte | 2 +- .../src/components/ViewletSetting.svelte | 42 ++++++------ .../components/ViewletSettingButton.svelte | 4 +- .../src/components/filter/ArrayFilter.svelte | 12 ++-- .../src/components/filter/DateFilter.svelte | 2 +- .../filter/DateFilterPresenter.svelte | 4 +- .../src/components/filter/FilterBar.svelte | 2 +- .../src/components/filter/FilterButton.svelte | 6 +- .../src/components/filter/FilterSave.svelte | 4 +- .../components/filter/FilterSection.svelte | 14 ++-- .../components/filter/FilterTypePopup.svelte | 26 +++---- .../src/components/filter/ObjectFilter.svelte | 8 +-- .../PersonIdFilterValuePresenter.svelte | 2 +- .../src/components/filter/StringFilter.svelte | 4 +- .../components/filter/TimestampFilter.svelte | 4 +- .../src/components/filter/ValueFilter.svelte | 12 ++-- .../components/folders/FolderTreeLevel.svelte | 8 +-- .../components/folders/FoldersBrowser.svelte | 8 +-- .../linkPresenters/GithubPresenter.svelte | 4 +- .../linkPresenters/YoutubePresenter.svelte | 4 +- .../src/components/list/List.svelte | 10 +-- .../src/components/list/ListCategories.svelte | 12 ++-- .../src/components/list/ListCategory.svelte | 44 ++++++------ .../src/components/list/ListItem.svelte | 10 +-- .../src/components/list/ListPresenter.svelte | 4 +- .../components/list/SortableDocList.svelte | 6 +- .../src/components/list/SortableList.svelte | 8 +-- .../masterDetail/MasterDetailBrowser.svelte | 2 +- .../masterDetail/MasterDetailView.svelte | 2 +- .../src/components/navigator/NavLink.svelte | 4 +- .../components/navigator/TreeElement.svelte | 4 +- .../relation/AddRelationPopup.svelte | 6 +- .../src/components/viewer/AudioPlayer.svelte | 2 +- .../src/components/viewer/ImageViewer.svelte | 2 +- .../src/components/viewer/TextViewer.svelte | 2 +- plugins/view-resources/src/middleware.ts | 44 ++++++------ plugins/view-resources/src/permissions.ts | 8 +-- plugins/view-resources/src/utils.ts | 26 +++---- plugins/view-resources/src/viewletUtils.ts | 2 +- .../src/components/AccountPopup.svelte | 12 ++-- .../src/components/AppSwitcher.svelte | 4 +- .../src/components/ComponentNavigator.svelte | 4 +- .../src/components/HelpAndSupport.svelte | 4 +- .../src/components/MetricsStats.svelte | 2 +- .../src/components/Navigator.svelte | 6 +- .../src/components/SavedView.svelte | 20 +++--- .../src/components/SelectWorkspaceMenu.svelte | 14 ++-- .../components/ServerManagerGeneral.svelte | 10 +-- .../ServerManagerServerStatistics.svelte | 2 +- .../src/components/ServerManagerUsers.svelte | 2 +- .../src/components/SpaceContent.svelte | 2 +- .../src/components/SpaceHeader.svelte | 4 +- .../src/components/SpaceView.svelte | 6 +- .../src/components/SpecialView.svelte | 8 +-- .../src/components/Workbench.svelte | 32 ++++----- .../components/WorkbenchTabPresenter.svelte | 8 +-- .../components/navigator/SpacePanel.svelte | 2 +- .../src/components/navigator/SpacesNav.svelte | 6 +- .../components/navigator/SpacesNavItem.svelte | 2 +- .../components/navigator/StarredNav.svelte | 4 +- .../navigator/StarredNavItem.svelte | 2 +- .../components/sidebar/SidebarExpanded.svelte | 8 +-- .../src/components/sidebar/SidebarTab.svelte | 2 +- .../src/components/sidebar/SidebarTabs.svelte | 2 +- .../sidebar/widgets/AddWidgetsPopup.svelte | 8 +-- .../sidebar/widgets/WidgetsBar.svelte | 4 +- .../components/statistics/MetricsInfo.svelte | 4 +- .../src/components/statistics/Params.svelte | 2 +- plugins/workbench-resources/src/connect.ts | 6 +- plugins/workbench-resources/src/mobile.ts | 4 +- .../activity-resources/src/references.ts | 1 - server/indexer/src/indexer/indexer.ts | 4 +- server/tool/src/index.ts | 8 +-- server/tool/src/initializer.ts | 20 +++--- server/tool/src/upgrade.ts | 18 ++--- .../billing/pod-billing/src/db/postgres.ts | 2 +- services/calendar/pod-calendar/src/sync.ts | 4 +- services/rekoni/src/server.ts | 2 +- services/telegram/pod-telegram/src/config.ts | 2 +- services/telegram/pod-telegram/src/utils.ts | 2 +- 764 files changed, 2599 insertions(+), 2564 deletions(-) diff --git a/foundations/core/packages/account-client/src/client.ts b/foundations/core/packages/account-client/src/client.ts index 2929240461..21d8ab109d 100644 --- a/foundations/core/packages/account-client/src/client.ts +++ b/foundations/core/packages/account-client/src/client.ts @@ -1440,7 +1440,7 @@ class AccountClientImpl implements AccountClient { } } -function withRetry Promise>( +function withRetry Promise> ( f: F, shouldFail: (err: any, attempt: number) => boolean, intervalMs: number = 25 @@ -1465,14 +1465,14 @@ function withRetry Promise>( } as F } -function withRetryUntilTimeout Promise>(f: F, timeoutMs: number = 5000): F { +function withRetryUntilTimeout Promise> (f: F, timeoutMs: number = 5000): F { const timeout = Date.now() + timeoutMs const shouldFail = (err: any): boolean => !isNetworkError(err) || timeout < Date.now() return withRetry(f, shouldFail) } -function withRetryUntilMaxAttempts Promise>(f: F, maxAttempts: number = 5): F { +function withRetryUntilMaxAttempts Promise> (f: F, maxAttempts: number = 5): F { const shouldFail = (err: any, attempt: number): boolean => !isNetworkError(err) || attempt === maxAttempts return withRetry(f, shouldFail) diff --git a/foundations/core/packages/core/src/utils.ts b/foundations/core/packages/core/src/utils.ts index b373b4ddfa..566b95ccdb 100644 --- a/foundations/core/packages/core/src/utils.ts +++ b/foundations/core/packages/core/src/utils.ts @@ -556,7 +556,7 @@ export function includesAny (arr1: string[] | null | undefined, arr2: string[] | } export const isEnum = - (e: T) => + (e: T) => (token: any): token is T[keyof T] => typeof token === 'string' && Object.values(e as Record).includes(token) @@ -761,7 +761,7 @@ interface NextCall { * * This method can be used inside Svelte components to collapse complex update logic and handle interactions. */ -export function reduceCalls) => Promise>( +export function reduceCalls) => Promise> ( operation: T ): (...args: ReduceParameters) => Promise { let nextCall: NextCall | undefined diff --git a/foundations/core/packages/model/src/dsl.ts b/foundations/core/packages/model/src/dsl.ts index 2e66b52437..20d4957307 100644 --- a/foundations/core/packages/model/src/dsl.ts +++ b/foundations/core/packages/model/src/dsl.ts @@ -192,7 +192,7 @@ export function Model ( domain?: Domain, _implements?: Ref>[] ) { - return function classDecorator T>(constructor: C): void { + return function classDecorator T> (constructor: C): void { const txes = getTxes(constructor.prototype) txes._id = _class txes.extends = _class !== core.class.Obj ? _extends : undefined @@ -206,7 +206,7 @@ export function Model ( * @public */ export function Implements (_interface: Ref>, _extends?: Ref>[]) { - return function classDecorator T>(constructor: C): void { + return function classDecorator T> (constructor: C): void { const txes = getTxes(constructor.prototype) txes._id = _interface txes.implements = _extends @@ -218,7 +218,7 @@ export function Implements (_interface: Ref>, _exten * @public */ export function Mixin (_class: Ref>, _extends: Ref>) { - return function classDecorator T>(constructor: C): void { + return function classDecorator T> (constructor: C): void { const txes = getTxes(constructor.prototype) txes._id = _class txes.extends = _extends @@ -237,7 +237,7 @@ export function UX ( filteringKey?: string, pluralLabel?: IntlString ) { - return function classDecorator T>(constructor: C): void { + return function classDecorator T> (constructor: C): void { const txes = getTxes(constructor.prototype) txes.label = label txes.icon = icon diff --git a/foundations/core/packages/platform/src/status.ts b/foundations/core/packages/platform/src/status.ts index 1a6728736b..201723b5e8 100644 --- a/foundations/core/packages/platform/src/status.ts +++ b/foundations/core/packages/platform/src/status.ts @@ -98,7 +98,7 @@ function isStatusLike (err: unknown): err is Pick ( * @param operationName - Name of the operation for logging * @returns A wrapped function that applies retry logic */ -export function createRetryableFunction Promise>( +export function createRetryableFunction Promise> ( fn: T, options: Partial = {}, operationName: string = 'operation' diff --git a/foundations/server/packages/kafka/src/index.ts b/foundations/server/packages/kafka/src/index.ts index c2abb8444e..c025e20f27 100644 --- a/foundations/server/packages/kafka/src/index.ts +++ b/foundations/server/packages/kafka/src/index.ts @@ -309,7 +309,12 @@ class PlatformQueueConsumerImpl implements ConsumerHandle { await this.ctx.with( 'handle-msg', {}, - (ctx) => this.onMessage(ctx, { workspace, value: msgData }, { heartbeat, pause }), + (ctx) => + this.onMessage( + ctx, + { workspace, value: msgData }, + { heartbeat: () => heartbeat(), pause: () => pause() } + ), {}, { meta diff --git a/foundations/server/packages/server-storage/src/tests/aggregator.spec.ts b/foundations/server/packages/server-storage/src/tests/aggregator.spec.ts index 2ebebaad36..02c322116c 100644 --- a/foundations/server/packages/server-storage/src/tests/aggregator.spec.ts +++ b/foundations/server/packages/server-storage/src/tests/aggregator.spec.ts @@ -47,7 +47,7 @@ describe('aggregator tests', () => { const stat2 = await aggr.stat(testCtx, wsIds1, 'test') expect(stat2?.provider).toEqual('mem2') - const dta = Buffer.concat((await aggr.read(testCtx, wsIds1, 'test'))).toString() + const dta = Buffer.concat(await aggr.read(testCtx, wsIds1, 'test')).toString() expect(dta).toEqual('data2') }) }) diff --git a/foundations/server/packages/server/src/__tests__/sessionManager.test.ts b/foundations/server/packages/server/src/__tests__/sessionManager.test.ts index 0ec4b384ee..7b134eaa59 100644 --- a/foundations/server/packages/server/src/__tests__/sessionManager.test.ts +++ b/foundations/server/packages/server/src/__tests__/sessionManager.test.ts @@ -25,7 +25,6 @@ import { import type { Token } from '@hcengineering/server-token' // Import the module under test after mocks are set up -// eslint-disable-next-line import/first import { TSessionManager, type Timeouts } from '../sessionManager' // Mock modules before importing the module under test diff --git a/foundations/utils/packages/platform-rig/bin/format.js b/foundations/utils/packages/platform-rig/bin/format.js index be270377ad..963a48cd62 100755 --- a/foundations/utils/packages/platform-rig/bin/format.js +++ b/foundations/utils/packages/platform-rig/bin/format.js @@ -16,6 +16,43 @@ const { ESLint } = require('eslint') const LEGACY_COMPATIBILITY_RULES = Object.fromEntries( require('../profiles/legacy-compatibility-rules.json').map((rule) => [rule, 'off']) ) +const LEGACY_FORMATTING_PLUGIN = { + rules: { + 'space-before-generic-function-paren': { + meta: { + type: 'layout', + fixable: 'whitespace', + schema: [], + messages: { + missingSpace: 'Missing space before generic function parentheses.' + } + }, + create (context) { + const sourceCode = context.sourceCode + const checkFunction = (node) => { + if (node.typeParameters == null) return + + const leftToken = sourceCode.getLastToken(node.typeParameters) + const rightToken = sourceCode.getTokenAfter(leftToken) + if (rightToken == null || rightToken.value !== '(' || sourceCode.isSpaceBetween(leftToken, rightToken)) return + + context.report({ + node, + loc: rightToken.loc, + messageId: 'missingSpace', + fix: (fixer) => fixer.insertTextAfter(leftToken, ' ') + }) + } + + return { + ArrowFunctionExpression: checkFunction, + FunctionDeclaration: checkFunction, + FunctionExpression: checkFunction + } + } + } + } +} let pluginSvelte try { @@ -50,7 +87,8 @@ async function loadEslintConfig() { files: ['**/*.{js,cjs,mjs,ts,cts,mts}'], plugins: { ...love.plugins, - '@stylistic': stylistic + '@stylistic': stylistic, + 'legacy-formatting': LEGACY_FORMATTING_PLUGIN }, rules: { ...love.rules, @@ -59,6 +97,7 @@ async function loadEslintConfig() { '@typescript-eslint/promise-function-async': 'off', '@typescript-eslint/consistent-type-imports': 'off', 'space-before-function-paren': ['error', 'always'], + 'legacy-formatting/space-before-generic-function-paren': 'error', '@stylistic/member-delimiter-style': [ 'error', { @@ -79,7 +118,8 @@ async function loadEslintConfig() { files: ['**/*.svelte'], plugins: { ...love.plugins, - '@stylistic': stylistic + '@stylistic': stylistic, + 'legacy-formatting': LEGACY_FORMATTING_PLUGIN }, languageOptions: { parser: svelteParser, @@ -93,6 +133,7 @@ async function loadEslintConfig() { '@typescript-eslint/array-type': 'off', '@typescript-eslint/promise-function-async': 'off', '@typescript-eslint/consistent-type-imports': 'off', + 'legacy-formatting/space-before-generic-function-paren': 'error', '@stylistic/member-delimiter-style': [ 'error', { diff --git a/models/activity/src/index.ts b/models/activity/src/index.ts index 2009a0d624..c72c6c823a 100644 --- a/models/activity/src/index.ts +++ b/models/activity/src/index.ts @@ -205,7 +205,7 @@ export class TDocUpdateMessageViewlet extends TDoc implements DocUpdateMessageVi @Model(activity.class.ActivityExtension, core.class.Doc, DOMAIN_MODEL) export class TActivityExtension extends TDoc implements ActivityExtension { ofClass!: Ref> - components!: Record }> + components!: Record }> } @Model(activity.class.ActivityMessagesFilter, core.class.Doc, DOMAIN_MODEL) @@ -258,7 +258,7 @@ export class TUserMentionInfo extends TAttachedDoc { content!: string } -export function createModel(builder: Builder): void { +export function createModel (builder: Builder): void { builder.createModel( TActivityDoc, TActivityMessagesFilter, diff --git a/models/analytics-collector/src/index.ts b/models/analytics-collector/src/index.ts index 76e681cf0b..446ddd79e9 100644 --- a/models/analytics-collector/src/index.ts +++ b/models/analytics-collector/src/index.ts @@ -38,29 +38,29 @@ export default analyticsCollector export class TOnboardingChannel extends TChannel implements OnboardingChannel { @Prop(TypeString(), analyticsCollector.string.UserName) @ReadOnly() - userName!: string + userName!: string @Prop(TypeAccountUuid(), analyticsCollector.string.Account) @ReadOnly() - account!: AccountUuid + account!: AccountUuid @Prop(TypeString(), analyticsCollector.string.WorkspaceName) @ReadOnly() - workspaceName!: string + workspaceName!: string @Prop(TypeString(), analyticsCollector.string.WorkspaceUrl) @ReadOnly() - workspaceUrl!: string + workspaceUrl!: string @Prop(TypeString(), analyticsCollector.string.WorkspaceId) @ReadOnly() - workspaceId!: WorkspaceUuid + workspaceId!: WorkspaceUuid @Prop(TypeBoolean(), analyticsCollector.string.DisableAIReplies) - disableAIReplies!: boolean + disableAIReplies!: boolean @Prop(TypeBoolean(), analyticsCollector.string.ShowAIReplies) - showAIReplies!: boolean + showAIReplies!: boolean } export function createModel (builder: Builder): void { diff --git a/models/attachment/src/index.ts b/models/attachment/src/index.ts index 7c16388e33..82af6a6f01 100644 --- a/models/attachment/src/index.ts +++ b/models/attachment/src/index.ts @@ -109,7 +109,7 @@ export class TDrawing extends TDoc implements Drawing { content?: string } -export function createModel(builder: Builder): void { +export function createModel (builder: Builder): void { builder.createModel(TAttachment, TEmbedding, TDrawing, TPhoto, TSavedAttachments) builder.mixin(attachment.class.Attachment, core.class.Class, view.mixin.ObjectPresenter, { diff --git a/models/chunter/src/index.ts b/models/chunter/src/index.ts index 10e8bdd7c7..3a70e8692c 100644 --- a/models/chunter/src/index.ts +++ b/models/chunter/src/index.ts @@ -43,7 +43,7 @@ export { chunterId } from '@hcengineering/chunter' export { chunterOperation } from './migration' export * from './types' -export function createModel(builder: Builder): void { +export function createModel (builder: Builder): void { builder.createModel( TChunterSpace, TChannel, diff --git a/models/chunter/src/migration.ts b/models/chunter/src/migration.ts index 87ed38f030..02d8bfc0df 100644 --- a/models/chunter/src/migration.ts +++ b/models/chunter/src/migration.ts @@ -172,7 +172,7 @@ async function removeBacklinks (client: MigrationClient): Promise { } await client.deleteMany(DOMAIN_ACTIVITY, { _class: activity.class.DocUpdateMessage, - objectClass: 'chunter:class:Backlink' as Ref> + objectClass: 'chunter:class:Backlink' }) } diff --git a/models/chunter/src/types.ts b/models/chunter/src/types.ts index d24001f8da..5a8cc36ea5 100644 --- a/models/chunter/src/types.ts +++ b/models/chunter/src/types.ts @@ -60,16 +60,16 @@ export const DOMAIN_CHUNTER = 'chunter' as Domain @Model(chunter.class.ChunterSpace, core.class.Space) export class TChunterSpace extends TSpace implements ChunterSpace { @Prop(PropCollection(activity.class.ActivityMessage), chunter.string.Messages) - messages?: number + messages?: number @Hidden() - __migratedToCard?: { + __migratedToCard?: { card: Ref space: Ref } @Hidden() - __migratedUntil?: Timestamp + __migratedUntil?: Timestamp } @Model(chunter.class.Channel, chunter.class.ChunterSpace) @@ -77,7 +77,7 @@ export class TChunterSpace extends TSpace implements ChunterSpace { export class TChannel extends TChunterSpace implements Channel { @Prop(TypeString(), chunter.string.Topic) @Index(IndexKind.FullText) - topic?: string + topic?: string } @Model(chunter.class.DirectMessage, chunter.class.ChunterSpace) @@ -89,15 +89,15 @@ export class TDirectMessage extends TChunterSpace implements DirectMessage {} export class TChatMessage extends TActivityMessage implements ChatMessage { @Prop(TypeMarkup(), chunter.string.Message) @Index(IndexKind.FullText) - message!: string + message!: string @Prop(PropCollection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: number + attachments?: number @Prop(TypeRef(contact.class.ChannelProvider), core.string.Object) - provider?: Ref + provider?: Ref } @Model(chunter.class.ThreadMessage, chunter.class.ChatMessage) @@ -113,22 +113,22 @@ export class TThreadMessage extends TChatMessage implements ThreadMessage { @Prop(TypeRef(core.class.Doc), core.string.Object) @Index(IndexKind.Indexed) - objectId!: Ref + objectId!: Ref @Prop(TypeRef(core.class.Class), core.string.Class) @Index(IndexKind.Indexed) - objectClass!: Ref> + objectClass!: Ref> } @Model(chunter.class.ChatMessageViewlet, core.class.Doc, DOMAIN_MODEL) export class TChatMessageViewlet extends TDoc implements ChatMessageViewlet { @Prop(TypeRef(core.class.Doc), core.string.Class) @Index(IndexKind.Indexed) - objectClass!: Ref> + objectClass!: Ref> @Prop(TypeRef(core.class.Doc), core.string.Class) @Index(IndexKind.Indexed) - messageClass!: Ref> + messageClass!: Ref> label?: IntlString onlyWithParent?: boolean diff --git a/models/export/src/index.ts b/models/export/src/index.ts index 14fc130562..65bfeca7e9 100644 --- a/models/export/src/index.ts +++ b/models/export/src/index.ts @@ -35,22 +35,22 @@ export const DOMAIN_EXPORT = 'export' as Domain @UX(exportPlugin.string.ImportCompleted, exportPlugin.icon.Export) export class TExportResultRecord extends TDoc implements ExportResultRecord { @Prop(TypeString(), exportPlugin.string.SourceWorkspace) - sourceWorkspace!: string + sourceWorkspace!: string @Prop(TypeString(), exportPlugin.string.TargetWorkspace) - targetWorkspace!: string + targetWorkspace!: string @Prop(TypeNumber(), exportPlugin.string.ExportedCount) - exportedCount!: number + exportedCount!: number @Prop(ArrOf(TypeRef(core.class.Doc)), exportPlugin.string.ExportedDocumentIds) - exportedDocumentIds!: Ref[] + exportedDocumentIds!: Ref[] @Prop(TypeRef(core.class.Class), exportPlugin.string.ExportedDocumentClass) - objectClass!: Ref> + objectClass!: Ref> @Prop(TypeString(), view.string.Title) - title?: string + title?: string } export function createModel (builder: Builder): void { diff --git a/models/guest/src/index.ts b/models/guest/src/index.ts index 6e13556337..743b4d37cc 100644 --- a/models/guest/src/index.ts +++ b/models/guest/src/index.ts @@ -16,7 +16,7 @@ export class TPublicLink extends TDoc implements PublicLink { attachedTo!: Ref } -export function createModel(builder: Builder): void { +export function createModel (builder: Builder): void { builder.createModel(TPublicLink) builder.createDoc(core.class.DomainIndexConfiguration, core.space.Model, { diff --git a/models/inventory/src/index.ts b/models/inventory/src/index.ts index f5440ad734..315a2259a3 100644 --- a/models/inventory/src/index.ts +++ b/models/inventory/src/index.ts @@ -36,7 +36,7 @@ export const DOMAIN_INVENTORY = 'inventory' as Domain export class TCategory extends TAttachedDoc implements Category { @Prop(TypeString(), core.string.Name) @Index(IndexKind.FullText) - name!: string + name!: string } @Model(inventory.class.Product, core.class.AttachedDoc, DOMAIN_INVENTORY) @@ -48,16 +48,16 @@ export class TProduct extends TAttachedDoc implements Product { @Prop(TypeString(), core.string.Name) @Index(IndexKind.FullText) - name!: string + name!: string @Prop(Collection(attachment.class.Photo), attachment.string.Photos) - photos?: number + photos?: number @Prop(Collection(inventory.class.Variant), inventory.string.Variants) - variants?: number + variants?: number @Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: number + attachments?: number } @Model(inventory.class.Variant, core.class.AttachedDoc, DOMAIN_INVENTORY) @@ -69,11 +69,11 @@ export class TVariant extends TAttachedDoc implements Variant { @Prop(TypeString(), core.string.Name) @Index(IndexKind.FullText) - name!: string + name!: string @Prop(TypeString(), inventory.string.SKU) @Index(IndexKind.FullText) - sku!: string + sku!: string } export function createModel (builder: Builder): void { diff --git a/models/notification/src/index.ts b/models/notification/src/index.ts index a850e4f62b..f4c00832ad 100644 --- a/models/notification/src/index.ts +++ b/models/notification/src/index.ts @@ -357,7 +357,7 @@ export const notificationActionTemplates = template({ } }) -export function createModel(builder: Builder): void { +export function createModel (builder: Builder): void { builder.createModel( TCollaborators, TBrowserNotification, @@ -830,7 +830,7 @@ export function createModel(builder: Builder): void { }) } -export function generateClassNotificationTypes( +export function generateClassNotificationTypes ( builder: Builder, _class: Ref>, group: Ref, diff --git a/models/notification/src/migration.ts b/models/notification/src/migration.ts index 5bc85e0183..8ae9c36e3c 100644 --- a/models/notification/src/migration.ts +++ b/models/notification/src/migration.ts @@ -584,7 +584,7 @@ export async function migrateSettings (client: MigrationClient): Promise { DOMAIN_PREFERENCE, { _class: 'notification:class:NotificationSetting' as Ref>, - attachedTo: 'notification:providers:BrowserNotification' as Ref + attachedTo: 'notification:providers:BrowserNotification' }, { _class: notification.class.NotificationTypeSetting, @@ -596,7 +596,7 @@ export async function migrateSettings (client: MigrationClient): Promise { DOMAIN_PREFERENCE, { _class: 'notification:class:NotificationSetting' as Ref>, - attachedTo: 'notification:providers:PlatformNotification' as Ref + attachedTo: 'notification:providers:PlatformNotification' }, { _class: notification.class.NotificationTypeSetting, @@ -656,7 +656,7 @@ export const notificationOperation: MigrateOperation = { state: 'delete-invalid-notifications', mode: 'upgrade', func: async (client) => { - await removeNotifications(client, { attachedToClass: 'chunter:class:Comment' as Ref> }) + await removeNotifications(client, { attachedToClass: 'chunter:class:Comment' }) } }, { @@ -664,7 +664,7 @@ export const notificationOperation: MigrateOperation = { mode: 'upgrade', func: async (client) => { await client.deleteMany(DOMAIN_NOTIFICATION, { _class: 'notification:class:DocUpdates' as Ref> }) - await client.deleteMany(DOMAIN_TX, { objectClass: 'notification:class:DocUpdates' as Ref> }) + await client.deleteMany(DOMAIN_TX, { objectClass: 'notification:class:DocUpdates' }) } }, { diff --git a/models/request/src/index.ts b/models/request/src/index.ts index ed3526079a..408f374673 100644 --- a/models/request/src/index.ts +++ b/models/request/src/index.ts @@ -54,11 +54,11 @@ export const DOMAIN_REQUEST = 'request' as Domain export class TRequest extends TAttachedDoc implements Request { @Prop(ArrOf(TypeRef(contact.class.Person)), request.string.Requested) // @Index(IndexKind.Indexed) - requested!: Ref[] + requested!: Ref[] @Prop(ArrOf(TypeRef(contact.class.Person)), request.string.Approved) @ReadOnly() - approved!: Ref[] + approved!: Ref[] approvedDates?: Timestamp[] @@ -66,17 +66,17 @@ export class TRequest extends TAttachedDoc implements Request { @Prop(TypeString(), request.string.Status) // @Index(IndexKind.Indexed) - status!: RequestStatus + status!: RequestStatus tx!: Tx rejectedTx?: Tx @Prop(TypeRef(contact.class.Person), request.string.Rejected) @ReadOnly() - rejected?: Ref + rejected?: Ref @Prop(Collection(chunter.class.ChatMessage), chunter.string.Comments) - comments?: number + comments?: number } @Mixin(request.mixin.RequestDecisionComment, chunter.class.ChatMessage) diff --git a/models/setting/src/index.ts b/models/setting/src/index.ts index f0c0038ea8..1ea9ec6207 100644 --- a/models/setting/src/index.ts +++ b/models/setting/src/index.ts @@ -121,7 +121,7 @@ export class TInviteSettings extends TConfiguration implements InviteSettings { @UX(setting.string.RoleCapabilitySettings) export class TRoleCapabilitySettings extends TConfiguration implements RoleCapabilitySettings { @Prop(TypeRecord(), setting.string.RoleCapabilitySettings) - roleByCapability!: Record + roleByCapability!: Record } @Model(setting.class.OfficeSettings, core.class.Configuration, DOMAIN_SETTING) diff --git a/models/tags/src/index.ts b/models/tags/src/index.ts index ffc707da9b..c5f1f2fc73 100644 --- a/models/tags/src/index.ts +++ b/models/tags/src/index.ts @@ -38,23 +38,23 @@ export const DOMAIN_TAGS = 'tags' as Domain export class TTagElement extends TDoc implements TagElement { @Prop(TypeString(), tags.string.TitleLabel) @Index(IndexKind.FullText) - title!: string + title!: string @Prop(TypeRef(core.class.Class), tags.string.TargetClassLabel) - targetClass!: Ref> + targetClass!: Ref> @Prop(TypeString(), tags.string.DescriptionLabel) @Index(IndexKind.FullText) - description!: string + description!: string @Prop(TypeString(), tags.string.ColorLabel) - color!: number + color!: number @Prop(TypeRef(tags.class.TagCategory), tags.string.CategoryLabel) - category!: Ref + category!: Ref @Prop(TypeNumber(), tags.string.TagReference) - refCount?: number + refCount?: number } @Model(tags.class.TagReference, core.class.AttachedDoc, DOMAIN_TAGS) @@ -62,36 +62,36 @@ export class TTagElement extends TDoc implements TagElement { export class TTagReference extends TAttachedDoc implements TagReference { @Prop(TypeString(), tags.string.TitleLabel) @Index(IndexKind.FullText) - title!: string + title!: string @Prop(TypeRef(tags.class.TagElement), tags.string.TagLabel) @Index(IndexKind.Indexed) - tag!: Ref + tag!: Ref @Prop(TypeString(), tags.string.ColorLabel) - color!: number + color!: number @Prop(TypeNumber(), tags.string.Weight) - weight!: InitialKnowledge | MeaningfullKnowledge | ExpertKnowledge + weight!: InitialKnowledge | MeaningfullKnowledge | ExpertKnowledge } @Model(tags.class.TagCategory, core.class.Doc, DOMAIN_TAGS) @UX(tags.string.TargetCategoryLabel) export class TTagCategory extends TDoc implements TagCategory { @Prop(TypeString(), tags.string.AssetLabel) - icon!: Asset + icon!: Asset @Prop(TypeString(), tags.string.CategoryLabel) - label!: IntlString + label!: IntlString @Prop(TypeString(), tags.string.CategoryTargetClass) - targetClass!: Ref> + targetClass!: Ref> @Prop(ArrOf(TypeRef(core.class.TypeString)), tags.string.CategoryTagsLabel) - tags!: string[] + tags!: string[] @Prop(TypeString(), tags.string.DefaultLabel) - default!: boolean + default!: boolean } export function createModel (builder: Builder): void { diff --git a/packages/importer/src/huly/cards.ts b/packages/importer/src/huly/cards.ts index 26994d1bf7..eed7ebff77 100644 --- a/packages/importer/src/huly/cards.ts +++ b/packages/importer/src/huly/cards.ts @@ -338,7 +338,7 @@ export class CardsProcessor { return { _class: card.class.MasterTag, props: { - _id: this.metadataRegistry.getRef(filePath) as Ref, + _id: this.metadataRegistry.getRef(filePath), space: core.space.Model, extends: parentMasterTagId ?? card.class.Card, label: ('embedded:embedded:' + title) as IntlString, @@ -407,7 +407,7 @@ export class CardsProcessor { return { _class: card.class.Tag, props: { - _id: this.metadataRegistry.getRef(filePath) as Ref, + _id: this.metadataRegistry.getRef(filePath), space: core.space.Model, extends: parentTagId ?? masterTagId, label: ('embedded:embedded:' + title) as IntlString, diff --git a/packages/importer/src/importer/builder.ts b/packages/importer/src/importer/builder.ts index d53ec7bf01..52b4642477 100644 --- a/packages/importer/src/importer/builder.ts +++ b/packages/importer/src/importer/builder.ts @@ -313,7 +313,7 @@ export class ImportWorkspaceBuilder { } } - private validateAndAdd( + private validateAndAdd ( type: string, path: string, item: T, diff --git a/packages/importer/src/importer/importer.ts b/packages/importer/src/importer/importer.ts index 3d3562edb0..64b0489820 100644 --- a/packages/importer/src/importer/importer.ts +++ b/packages/importer/src/importer/importer.ts @@ -1145,7 +1145,7 @@ export class WorkspaceImporter { documents.mixin.DocumentTemplate, undefined, parentProjectDocumentId, - templateId as unknown as Ref, + templateId, template.docPrefix, template.code ?? '', template.title, @@ -1228,7 +1228,7 @@ export class WorkspaceImporter { requests: 0, labels: 0 }, - template.id as unknown as Ref + template.id ) await ops.createMixin(template.id, documents.class.Document, spaceId, documents.mixin.DocumentTemplate, { @@ -1420,7 +1420,7 @@ export class WorkspaceImporter { _id as Ref | undefined ) } else { - await this.client.createDoc(_class, props.space, props as Data>, _id) + await this.client.createDoc(_class, props.space, props, _id) } } @@ -1446,7 +1446,7 @@ export class WorkspaceImporter { _class, space, mixinClass, - data as Data> + data ) } } diff --git a/packages/importer/src/importer/preprocessor.ts b/packages/importer/src/importer/preprocessor.ts index 7275a7ca9f..475abc3ae0 100644 --- a/packages/importer/src/importer/preprocessor.ts +++ b/packages/importer/src/importer/preprocessor.ts @@ -31,7 +31,7 @@ export abstract class BaseMarkdownPreprocessor implements MarkdownPreprocessor { constructor (protected readonly personsByName: Map>) {} - abstract process (json: MarkupNode, id: Ref, spaceId: Ref): MarkupNode + abstract process(json: MarkupNode, id: Ref, spaceId: Ref): MarkupNode protected processMentions (node: MarkupNode): void { if (node.type !== MarkupNodeType.paragraph || node.content === undefined) return diff --git a/packages/importer/src/index.ts b/packages/importer/src/index.ts index 6c5a32bcd4..6f1abb3a8d 100644 --- a/packages/importer/src/index.ts +++ b/packages/importer/src/index.ts @@ -19,7 +19,7 @@ export * from './notion/notion' export * from './docx/docx' export * from './docx/preprocessors' -export * from './importer/uploader' +export type * from './importer/uploader' export * from './importer/storageUploader' export * from './importer/frontUploader' -export * from './importer/logger' +export type * from './importer/logger' diff --git a/packages/presentation/src/__mocks__/svelte-store.ts b/packages/presentation/src/__mocks__/svelte-store.ts index e00680b945..ac190d5567 100644 --- a/packages/presentation/src/__mocks__/svelte-store.ts +++ b/packages/presentation/src/__mocks__/svelte-store.ts @@ -36,7 +36,7 @@ export interface Derived extends Readable { _getValue?: () => T } -export const writable = (initialValue: T): Writable => { +export const writable = (initialValue: T): Writable => { let value = initialValue const subscribers = new Set>() @@ -65,7 +65,7 @@ export const writable = (initialValue: T): Writable => { return store } -export const derived = ( +export const derived = ( stores: Readable | Array>, fn: (values: any) => T, initialValue?: T @@ -98,7 +98,7 @@ export const derived = ( return store } -export const readable = (initialValue: T, startStopNotifier?: StartStopNotifier): Readable => { +export const readable = (initialValue: T, startStopNotifier?: StartStopNotifier): Readable => { const store: Readable = { subscribe: (callback: Subscriber) => { callback(initialValue) @@ -123,7 +123,7 @@ export const readable = (initialValue: T, startStopNotifier?: StartStopNotifi return store } -export const get = (store: Readable): T => { +export const get = (store: Readable): T => { if (store?._getValue != null) { return store._getValue() } diff --git a/packages/presentation/src/__mocks__/svelte.ts b/packages/presentation/src/__mocks__/svelte.ts index 836e28d3d6..94ccfd9110 100644 --- a/packages/presentation/src/__mocks__/svelte.ts +++ b/packages/presentation/src/__mocks__/svelte.ts @@ -36,8 +36,8 @@ export const tick = async (): Promise => { await Promise.resolve() } -export const createEventDispatcher = = any>(): EventDispatcher => { - return (eventType: K, detail?: T[K]): boolean => { +export const createEventDispatcher = = any> (): EventDispatcher => { + return (eventType: K, detail?: T[K]): boolean => { return true } } diff --git a/packages/ui/src/types.ts b/packages/ui/src/types.ts index fc168fd945..18e16b457b 100644 --- a/packages/ui/src/types.ts +++ b/packages/ui/src/types.ts @@ -240,7 +240,7 @@ export const posAlignment = [ export type PopupPosAlignment = (typeof posAlignment)[number] export function isPopupPosAlignment (x: any): x is PopupPosAlignment { - return typeof x === 'string' && (posAlignment).includes(x as PopupPosAlignment) + return typeof x === 'string' && posAlignment.includes(x as PopupPosAlignment) } export type PopupAlignment = PopupPosAlignment | PopupPositionElement | null diff --git a/plugins/activity-resources/src/components/Activity.svelte b/plugins/activity-resources/src/components/Activity.svelte index c5b3fd4b90..bd18b2e529 100644 --- a/plugins/activity-resources/src/components/Activity.svelte +++ b/plugins/activity-resources/src/components/Activity.svelte @@ -111,13 +111,13 @@ unsubscribeLocation() }) - function restartAnimation (el: HTMLElement): void { + function restartAnimation(el: HTMLElement): void { el.style.animation = 'none' el.focus() el.style.animation = '' } - function tryScrollToMessage (delay: number = 100): void { + function tryScrollToMessage(delay: number = 100): void { if (timer) { clearTimeout(timer) } @@ -126,7 +126,7 @@ }, delay) } - async function scrollToMessage (id?: Ref, withoutAnimation?: boolean): Promise { + async function scrollToMessage(id?: Ref, withoutAnimation?: boolean): Promise { if (!id || boundary == null || activityBox == null) { return } @@ -151,7 +151,7 @@ msgElement.scrollIntoView({ behavior: 'instant' }) } - export function onContainerResized (container: HTMLElement): void { + export function onContainerResized(container: HTMLElement): void { if (!shouldScroll) return if (prevContainerWidth > 0 && container.clientWidth !== prevContainerWidth) { @@ -176,7 +176,7 @@ $: extensions = getExtensions(object._class) - function getExtensions (_class: Ref>): ActivityExtension[] { + function getExtensions(_class: Ref>): ActivityExtension[] { try { let clazz: Ref> | undefined = _class while (clazz !== undefined) { @@ -215,7 +215,7 @@ $: allMessages = sortActivityMessages(messages.concat(refs)) - function updateActivityMessages (objectId: Ref, order: SortingOrder): void { + function updateActivityMessages(objectId: Ref, order: SortingOrder): void { isMessagesLoading = true const res = activityMessagesQuery.query( @@ -252,7 +252,7 @@ $: updateActivityMessages(object._id, isNewestFirst ? SortingOrder.Descending : SortingOrder.Ascending) - export function editLastMessage (): void { + export function editLastMessage(): void { if (isMessagesLoading) return const me = getCurrentAccount() @@ -278,7 +278,7 @@ void scrollToMessage(lastMessage._id, true) } - function handleKeyDown (e: KeyboardEvent): void { + function handleKeyDown(e: KeyboardEvent): void { const key = e.key if ((key === 'ArrowUp' && !isNewestFirst) || (key === 'ArrowDown' && isNewestFirst)) { diff --git a/plugins/activity-resources/src/components/ActivityFilter.svelte b/plugins/activity-resources/src/components/ActivityFilter.svelte index f9389f3a83..3e7f8d914f 100644 --- a/plugins/activity-resources/src/components/ActivityFilter.svelte +++ b/plugins/activity-resources/src/components/ActivityFilter.svelte @@ -85,7 +85,7 @@ const dispatch = createEventDispatcher() - async function updateFilterActions ( + async function updateFilterActions( messages: ActivityMessage[], filters: ActivityMessagesFilter[], selected: Ref[] | Ref, diff --git a/plugins/activity-resources/src/components/ActivityMessageAction.svelte b/plugins/activity-resources/src/components/ActivityMessageAction.svelte index b8bcfae1fd..890e3ceb10 100644 --- a/plugins/activity-resources/src/components/ActivityMessageAction.svelte +++ b/plugins/activity-resources/src/components/ActivityMessageAction.svelte @@ -25,7 +25,7 @@ export let opened: boolean = false export let dataId: string | undefined = undefined - function onClick (ev: MouseEvent): void { + function onClick(ev: MouseEvent): void { ev.stopPropagation() ev.preventDefault() void action(ev) diff --git a/plugins/activity-resources/src/components/ActivityMessageActions.svelte b/plugins/activity-resources/src/components/ActivityMessageActions.svelte index b737971cb6..7e5d988ab5 100644 --- a/plugins/activity-resources/src/components/ActivityMessageActions.svelte +++ b/plugins/activity-resources/src/components/ActivityMessageActions.svelte @@ -49,17 +49,17 @@ void updateInlineActions(message, excludedActions) }) - function handleActionMenuOpened (): void { + function handleActionMenuOpened(): void { isActionMenuOpened = true onOpen() } - function handleActionMenuClosed (): void { + function handleActionMenuClosed(): void { isActionMenuOpened = false onClose() } - function showMenu (ev: MouseEvent): void { + function showMenu(ev: MouseEvent): void { showPopup( Menu, { @@ -74,7 +74,7 @@ handleActionMenuOpened() } - async function updateInlineActions (message?: ActivityMessage, excludedAction: Ref[] = []): Promise { + async function updateInlineActions(message?: ActivityMessage, excludedAction: Ref[] = []): Promise { if (message === undefined) { inlineActions = [] return @@ -84,7 +84,7 @@ .filter((action) => !excludedAction.includes(action._id)) } - async function handleAction (action: ViewAction, ev?: Event): Promise { + async function handleAction(action: ViewAction, ev?: Event): Promise { if (message === undefined) return if (onReply !== undefined && action._id === activity.action.Reply) { diff --git a/plugins/activity-resources/src/components/BasePreview.svelte b/plugins/activity-resources/src/components/BasePreview.svelte index ce45cc5b4a..0a870730a7 100644 --- a/plugins/activity-resources/src/components/BasePreview.svelte +++ b/plugins/activity-resources/src/components/BasePreview.svelte @@ -57,11 +57,11 @@ person = undefined } - export function onActionsOpened (): void { + export function onActionsOpened(): void { isActionsOpened = true } - export function onActionsClosed (): void { + export function onActionsClosed(): void { isActionsOpened = false } let tooltipLabel: IntlString | undefined = undefined @@ -74,7 +74,7 @@ tooltipLabel = core.string.System } - function getTooltipText (markup: string): string { + function getTooltipText(markup: string): string { const text = markupToText(markup) if (text.length > tooltipLimit) { return text.substring(0, tooltipLimit) + '...' diff --git a/plugins/activity-resources/src/components/MessageTimestamp.svelte b/plugins/activity-resources/src/components/MessageTimestamp.svelte index 8ebfcc10e6..6935289112 100644 --- a/plugins/activity-resources/src/components/MessageTimestamp.svelte +++ b/plugins/activity-resources/src/components/MessageTimestamp.svelte @@ -29,7 +29,7 @@ year: 'numeric' }) - function getShortTime (date: Timestamp): string { + function getShortTime(date: Timestamp): string { const options: Intl.DateTimeFormatOptions = { hour: 'numeric', minute: 'numeric' } return new Date(date).toLocaleTimeString('default', options).split(' ')[0] diff --git a/plugins/activity-resources/src/components/Replies.svelte b/plugins/activity-resources/src/components/Replies.svelte index 60415a948b..d793c215c7 100644 --- a/plugins/activity-resources/src/components/Replies.svelte +++ b/plugins/activity-resources/src/components/Replies.svelte @@ -52,7 +52,7 @@ $: personByRefStore = getPersonByPersonRefStore(Array.from(persons)) $: updateQuery(persons, $personByRefStore) - function hasNewReplies ( + function hasNewReplies( message: ActivityMessage, notifyContexts?: Map, DocNotifyContext>, inboxNotificationsByContext?: Map, WithLookup[]> @@ -74,7 +74,7 @@ .some(({ isViewed }) => !isViewed) } - function updateQuery (personIds: Set>, personById: IdMap): void { + function updateQuery(personIds: Set>, personById: IdMap): void { displayPersons = Array.from(personIds) .map((id) => personById.get(id)) .filter(notEmpty) @@ -83,7 +83,7 @@ const replyProvider = client.getModel().findAllSync(activity.class.ReplyProvider, {})[0] - async function handleReply (e: MouseEvent): Promise { + async function handleReply(e: MouseEvent): Promise { e.stopPropagation() e.preventDefault() diff --git a/plugins/activity-resources/src/components/activity-message/ActivityMessageTemplate.svelte b/plugins/activity-resources/src/components/activity-message/ActivityMessageTemplate.svelte index 34e98a6af9..6d90a8bd2e 100644 --- a/plugins/activity-resources/src/components/activity-message/ActivityMessageTemplate.svelte +++ b/plugins/activity-resources/src/components/activity-message/ActivityMessageTemplate.svelte @@ -87,7 +87,7 @@ menuActions = res }) - function scrollToMessage (): void { + function scrollToMessage(): void { if (element != null && shouldScroll) { element.scrollIntoView({ behavior: 'auto', block: 'end' }) shouldScroll = false @@ -98,15 +98,15 @@ setTimeout(scrollToMessage, 100) } - function handleActionsOpened (): void { + function handleActionsOpened(): void { isActionsOpened = true } - function handleActionsClosed (): void { + function handleActionsClosed(): void { isActionsOpened = false } - function handleAnimationEnd (event: AnimationEvent): void { + function handleAnimationEnd(event: AnimationEvent): void { const name = event.animationName.split('-').pop() if (name === 'highlight') { clearMessageInLocation() @@ -120,17 +120,17 @@ $: readonly = readonly || $restrictionStore.disableComments - function canDisplayShort (type: ActivityMessageViewType, isSaved: boolean): boolean { + function canDisplayShort(type: ActivityMessageViewType, isSaved: boolean): boolean { return type === 'short' && !isSaved && (message.replies ?? 0) === 0 } $: isShort = canDisplayShort(type, isSaved) - function isInside (x: number, y: number, rect: DOMRect): boolean { + function isInside(x: number, y: number, rect: DOMRect): boolean { return x >= rect.left && y >= rect.top && x <= rect.right && y <= rect.bottom } - function isTextClicked (element: HTMLElement | null, x: number, y: number): boolean { + function isTextClicked(element: HTMLElement | null, x: number, y: number): boolean { if (element == null) { return false } @@ -152,7 +152,7 @@ return false } - function handleContextMenu (event: MouseEvent): void { + function handleContextMenu(event: MouseEvent): void { if (readonly) return const showCustomPopup = !isTextClicked(event.target as HTMLElement, event.clientX, event.clientY) if (showCustomPopup) { diff --git a/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessageHeader.svelte b/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessageHeader.svelte index 20a2275b1c..062dbdb21b 100644 --- a/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessageHeader.svelte +++ b/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessageHeader.svelte @@ -41,7 +41,7 @@ linkData = data }) - function getTitle (attributeModel: AttributeModel): IntlString | undefined { + function getTitle(attributeModel: AttributeModel): IntlString | undefined { const isTextType = getIsTextType(attributeModel) if (!isTextType) { diff --git a/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessageObjectValue.svelte b/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessageObjectValue.svelte index ad4a001df2..94c338beca 100644 --- a/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessageObjectValue.svelte +++ b/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessageObjectValue.svelte @@ -44,7 +44,7 @@ $: objectPanel = hierarchy.classHierarchyMixin(objectClass, view.mixin.ObjectPanel) $: objectPresenter = hierarchy.classHierarchyMixin(objectClass, view.mixin.ObjectPresenter) - async function getValue (object: Doc): Promise { + async function getValue(object: Doc): Promise { if (viewlet?.valueAttr) { return (object as any)[viewlet.valueAttr] } @@ -52,7 +52,7 @@ return await getDocLinkTitle(client, object._id, object._class, object) } - async function loadObject (_id: Ref, _class: Ref>, attachedTo: Ref): Promise { + async function loadObject(_id: Ref, _class: Ref>, attachedTo: Ref): Promise { const isRemoved = attachedTo === _id ? false : await checkIsObjectRemoved(client, _id, _class) if (isRemoved) { @@ -67,7 +67,7 @@ $: void loadObject(objectId, objectClass, attachedTo) - function getPanelComponent (object: Doc, objectPanel?: ObjectPanel): AnyComponent { + function getPanelComponent(object: Doc, objectPanel?: ObjectPanel): AnyComponent { if (objectPanel !== undefined) { return objectPanel.component } diff --git a/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessagePresenter.svelte b/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessagePresenter.svelte index 7920e902ea..7e5c553586 100644 --- a/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessagePresenter.svelte +++ b/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessagePresenter.svelte @@ -88,7 +88,7 @@ attributeModel = model }) - async function getParentMessage ( + async function getParentMessage( _class: Ref>, _id: Ref, space: Ref @@ -114,7 +114,7 @@ $: void loadObject(value.objectId, value.objectClass, doc) $: void loadParentObject(value, parentMessage, doc) - async function loadObject (_id: Ref, _class: Ref>, doc?: Doc): Promise { + async function loadObject(_id: Ref, _class: Ref>, doc?: Doc): Promise { if (doc !== undefined && doc._id === _id) { object = doc isObjectRemoved = false @@ -132,7 +132,7 @@ } } - async function loadParentObject ( + async function loadParentObject( message: Pick, parentMessage?: Pick, doc?: Doc diff --git a/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessagePreview.svelte b/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessagePreview.svelte index 1e3764af17..5d2cc1d5c2 100644 --- a/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessagePreview.svelte +++ b/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessagePreview.svelte @@ -68,7 +68,7 @@ $: viewlet?.component && loadObject(value.objectId, value.objectClass, value.space, doc) - async function loadObject (_id: Ref, _class: Ref>, space: Ref, doc?: Doc): Promise { + async function loadObject(_id: Ref, _class: Ref>, space: Ref, doc?: Doc): Promise { if (doc?._id === _id) { object = doc return @@ -84,7 +84,7 @@ }) } } - function onClick (event: MouseEvent): void { + function onClick(event: MouseEvent): void { event.stopPropagation() event.preventDefault() dispatch('click') diff --git a/plugins/activity-resources/src/components/doc-update-message/attributes/SetAttributesPresenter.svelte b/plugins/activity-resources/src/components/doc-update-message/attributes/SetAttributesPresenter.svelte index 5dc87f8c75..5ef7d93540 100644 --- a/plugins/activity-resources/src/components/doc-update-message/attributes/SetAttributesPresenter.svelte +++ b/plugins/activity-resources/src/components/doc-update-message/attributes/SetAttributesPresenter.svelte @@ -38,7 +38,7 @@ let isDiffShown = false - function toggleShowMore (): void { + function toggleShowMore(): void { isDiffShown = !isDiffShown } diff --git a/plugins/activity-resources/src/components/reactions/Reactions.svelte b/plugins/activity-resources/src/components/reactions/Reactions.svelte index b3cff61b6c..e538e11484 100644 --- a/plugins/activity-resources/src/components/reactions/Reactions.svelte +++ b/plugins/activity-resources/src/components/reactions/Reactions.svelte @@ -43,7 +43,7 @@ reactionsPersons = reactionsPersons } - function getClickHandler (emoji: { text: string, image?: Ref }): ((e: CustomEvent) => void) | undefined { + function getClickHandler(emoji: { text: string, image?: Ref }): ((e: CustomEvent) => void) | undefined { if (readonly) return return (e: CustomEvent) => { e.stopPropagation() @@ -52,7 +52,7 @@ } } - function openEmojiPalette (ev: Event): void { + function openEmojiPalette(ev: Event): void { if (readonly) return ev.preventDefault() ev.stopPropagation() diff --git a/plugins/activity-resources/src/components/reactions/ReactionsPresenter.svelte b/plugins/activity-resources/src/components/reactions/ReactionsPresenter.svelte index f0ec051ede..c69aa8f65a 100644 --- a/plugins/activity-resources/src/components/reactions/ReactionsPresenter.svelte +++ b/plugins/activity-resources/src/components/reactions/ReactionsPresenter.svelte @@ -32,7 +32,7 @@ $: updateReactions(hasReactions, object, lookupReactions) - function updateReactions (hasReactions: boolean, object?: ActivityMessage, lookupReaction?: Reaction[]): void { + function updateReactions(hasReactions: boolean, object?: ActivityMessage, lookupReaction?: Reaction[]): void { if (lookupReaction !== undefined) { reactions = lookupReaction } else if (object && hasReactions) { diff --git a/plugins/activity-resources/src/components/reactions/ReactionsPreview.svelte b/plugins/activity-resources/src/components/reactions/ReactionsPreview.svelte index 4baa5a5acf..74d0bf040e 100644 --- a/plugins/activity-resources/src/components/reactions/ReactionsPreview.svelte +++ b/plugins/activity-resources/src/components/reactions/ReactionsPreview.svelte @@ -61,7 +61,7 @@ reactionsQuery.unsubscribe() } - function handleClick (e: MouseEvent): void { + function handleClick(e: MouseEvent): void { if (readonly) return e.stopPropagation() diff --git a/plugins/activity-resources/src/index.ts b/plugins/activity-resources/src/index.ts index ae881318d9..fb20ce8763 100644 --- a/plugins/activity-resources/src/index.ts +++ b/plugins/activity-resources/src/index.ts @@ -42,7 +42,7 @@ import { activityMessageTooltipProvider } from './utils' -export * from './types' +export type * from './types' export * from './activity' export * from './utils' export * from './activityMessagesUtils' diff --git a/plugins/attachment-resources/src/components/AccordionEditor.svelte b/plugins/attachment-resources/src/components/AccordionEditor.svelte index 8d16fd6b0b..a4c0b5aadf 100644 --- a/plugins/attachment-resources/src/components/AccordionEditor.svelte +++ b/plugins/attachment-resources/src/components/AccordionEditor.svelte @@ -28,7 +28,7 @@ export let _class: Ref> | undefined = undefined export let withoutAttach: boolean = false - export function createAttachments (): void { + export function createAttachments(): void { attachments[attachments.length - 1].createAttachments() } diff --git a/plugins/attachment-resources/src/components/AddAttachment.svelte b/plugins/attachment-resources/src/components/AddAttachment.svelte index 32843eefa0..a8f33de4ca 100644 --- a/plugins/attachment-resources/src/components/AddAttachment.svelte +++ b/plugins/attachment-resources/src/components/AddAttachment.svelte @@ -33,7 +33,7 @@ const client = getClient() const dispatch = createEventDispatcher() - async function fileSelected () { + async function fileSelected() { const list = inputFile.files if (list === null || list.length === 0) return @@ -51,7 +51,7 @@ dispatch('attached') } - function openFile () { + function openFile() { inputFile.click() } diff --git a/plugins/attachment-resources/src/components/AttachmentAction.svelte b/plugins/attachment-resources/src/components/AttachmentAction.svelte index 5ca696292a..32ddcd44f4 100644 --- a/plugins/attachment-resources/src/components/AttachmentAction.svelte +++ b/plugins/attachment-resources/src/components/AttachmentAction.svelte @@ -25,7 +25,7 @@ export let opened: boolean = false export let dataId: string | undefined = undefined - function onClick (ev: MouseEvent): void { + function onClick(ev: MouseEvent): void { ev.stopPropagation() ev.preventDefault() void action(ev) diff --git a/plugins/attachment-resources/src/components/AttachmentActions.svelte b/plugins/attachment-resources/src/components/AttachmentActions.svelte index af3bce621a..73566d91f2 100644 --- a/plugins/attachment-resources/src/components/AttachmentActions.svelte +++ b/plugins/attachment-resources/src/components/AttachmentActions.svelte @@ -44,7 +44,7 @@ canPreview = false } - function showPreview (e: MouseEvent): void { + function showPreview(e: MouseEvent): void { if (!canPreview) { return } diff --git a/plugins/attachment-resources/src/components/AttachmentDocList.svelte b/plugins/attachment-resources/src/components/AttachmentDocList.svelte index 53eb2e5f66..9908672584 100644 --- a/plugins/attachment-resources/src/components/AttachmentDocList.svelte +++ b/plugins/attachment-resources/src/components/AttachmentDocList.svelte @@ -38,7 +38,7 @@ $: updateQuery(value, attachments) - function updateQuery (value: Doc & { attachments?: number }, attachments?: Attachment[]): void { + function updateQuery(value: Doc & { attachments?: number }, attachments?: Attachment[]): void { if (attachments !== undefined && attachments.length > 0) { resAttachments = attachments return diff --git a/plugins/attachment-resources/src/components/AttachmentDroppable.svelte b/plugins/attachment-resources/src/components/AttachmentDroppable.svelte index 81a7f5b019..265d775e03 100644 --- a/plugins/attachment-resources/src/components/AttachmentDroppable.svelte +++ b/plugins/attachment-resources/src/components/AttachmentDroppable.svelte @@ -34,7 +34,7 @@ const client = getClient() const dispatch = createEventDispatcher() - async function fileDrop (e: DragEvent) { + async function fileDrop(e: DragEvent) { dragover = false if (canDrop && !canDrop(e)) { diff --git a/plugins/attachment-resources/src/components/AttachmentGalleryPresenter.svelte b/plugins/attachment-resources/src/components/AttachmentGalleryPresenter.svelte index 666e4d3767..19f1d783d1 100644 --- a/plugins/attachment-resources/src/components/AttachmentGalleryPresenter.svelte +++ b/plugins/attachment-resources/src/components/AttachmentGalleryPresenter.svelte @@ -25,21 +25,21 @@ const trimFilename = (fname: string): string => fname.length > maxLength ? fname.substr(0, (maxLength - 1) / 2) + '...' + fname.substr(-(maxLength - 1) / 2) : fname - function extensionIconLabel (name: string): string { + function extensionIconLabel(name: string): string { const parts = name.split('.') const ext = parts[parts.length - 1] return ext.substring(0, 4).toUpperCase() } - function isImage (contentType: string): boolean { + function isImage(contentType: string): boolean { return getType(contentType) === 'image' } - function isEmbedded (contentType: string): boolean { + function isEmbedded(contentType: string): boolean { return getType(contentType) !== 'other' } - function openAttachment (): void { + function openAttachment(): void { showAttachmentPreviewPopup(value) } diff --git a/plugins/attachment-resources/src/components/AttachmentGroup.svelte b/plugins/attachment-resources/src/components/AttachmentGroup.svelte index a7cdaffa9c..29f0f94e77 100644 --- a/plugins/attachment-resources/src/components/AttachmentGroup.svelte +++ b/plugins/attachment-resources/src/components/AttachmentGroup.svelte @@ -30,7 +30,7 @@ let linkPreviewAttachments: WithLookup[] $: filter(attachments) - function filter (value: WithLookup[]): void { + function filter(value: WithLookup[]): void { linkPreviewAttachments = [] otherAttachments = [] for (const attachment of value) { diff --git a/plugins/attachment-resources/src/components/AttachmentImagePreview.svelte b/plugins/attachment-resources/src/components/AttachmentImagePreview.svelte index 9fb081d82d..82a35d098f 100644 --- a/plugins/attachment-resources/src/components/AttachmentImagePreview.svelte +++ b/plugins/attachment-resources/src/components/AttachmentImagePreview.svelte @@ -37,7 +37,7 @@ $: dimensions = getDimensions(value, size) - function getDimensions (value: Attachment | BlobType, size: AttachmentImageSize): Dimensions { + function getDimensions(value: Attachment | BlobType, size: AttachmentImageSize): Dimensions { const byDefault = { width: 300, height: 300, fit: 'contain' } as const if (size === 'auto' || size == null) return byDefault @@ -53,22 +53,22 @@ ) } - function toStyle (size: 'auto' | number): string { + function toStyle(size: 'auto' | number): string { return size === 'auto' ? 'auto' : `${size}px` } let loading = false let error = false - function handleLoadStart (): void { + function handleLoadStart(): void { loading = true } - function handleLoad (): void { + function handleLoad(): void { loading = false } - function handleError (): void { + function handleError(): void { loading = false error = true } diff --git a/plugins/attachment-resources/src/components/AttachmentPopup.svelte b/plugins/attachment-resources/src/components/AttachmentPopup.svelte index 799ccce04f..73da9ae45c 100644 --- a/plugins/attachment-resources/src/components/AttachmentPopup.svelte +++ b/plugins/attachment-resources/src/components/AttachmentPopup.svelte @@ -49,13 +49,13 @@ } ) - function add () { + function add() { if (canAdd) { inputFile.click() } } - async function createAttachment (file: File) { + async function createAttachment(file: File) { try { const { uuid, metadata } = await uploadFile(file) const space = client.getHierarchy().isDerived(object._class, core.class.Space) @@ -75,7 +75,7 @@ } } - async function fileSelected (): Promise { + async function fileSelected(): Promise { progress = true const list = inputFile.files @@ -92,7 +92,7 @@ let inputFile: HTMLInputElement - async function remove (doc: Attachment): Promise { + async function remove(doc: Attachment): Promise { if (canRemove) { await client.remove(doc) } diff --git a/plugins/attachment-resources/src/components/AttachmentPresenter.svelte b/plugins/attachment-resources/src/components/AttachmentPresenter.svelte index 6f2b637d3c..901d87ac06 100644 --- a/plugins/attachment-resources/src/components/AttachmentPresenter.svelte +++ b/plugins/attachment-resources/src/components/AttachmentPresenter.svelte @@ -53,7 +53,7 @@ $: canRemove = isRemovable(removable, value, $permissionsStore) - function isRemovable ( + function isRemovable( removable: boolean, value: Attachment | BlobType | undefined, permissionsStore: PermissionsStore | undefined @@ -68,13 +68,13 @@ ) } - function iconLabel (name: string): string { + function iconLabel(name: string): string { const parts = `${name}`.split('.') const ext = parts[parts.length - 1] return ext.substring(0, 4).toUpperCase() } - function isImage (contentType: string): boolean { + function isImage(contentType: string): boolean { return getType(contentType) === 'image' } @@ -92,7 +92,7 @@ canPreview = false } - async function clickHandler (e: MouseEvent): Promise { + async function clickHandler(e: MouseEvent): Promise { if (value === undefined || (!canPreview && !canShowImage)) return e.preventDefault() @@ -116,7 +116,7 @@ } } - function middleClickHandler (e: MouseEvent): void { + function middleClickHandler(e: MouseEvent): void { if (e.button !== 1) return e.preventDefault() e.stopPropagation() @@ -125,7 +125,7 @@ let download: HTMLAnchorElement - function dragStart (event: DragEvent): void { + function dragStart(event: DragEvent): void { if (value === undefined) return const url = encodeURI(getFileUrl(value.file)) event.dataTransfer?.setData('application/contentType', value.type) diff --git a/plugins/attachment-resources/src/components/AttachmentPreviewPopup.svelte b/plugins/attachment-resources/src/components/AttachmentPreviewPopup.svelte index 52e8fc5c3d..4fe4236849 100644 --- a/plugins/attachment-resources/src/components/AttachmentPreviewPopup.svelte +++ b/plugins/attachment-resources/src/components/AttachmentPreviewPopup.svelte @@ -25,7 +25,7 @@ $: drawingAvailable = value?.type?.startsWith('image/') && isAttachment(value) - async function loadDrawings (): Promise { + async function loadDrawings(): Promise { const client = getClient() const drawings = await client.findAll( attachment.class.Drawing, @@ -44,7 +44,7 @@ return Array.from(drawings ?? []) } - async function createDrawing (data: DrawingData): Promise { + async function createDrawing(data: DrawingData): Promise { const client = getClient() const newId = await client.createDoc(attachment.class.Drawing, value.space, { parent: value.file, diff --git a/plugins/attachment-resources/src/components/AttachmentRefInput.svelte b/plugins/attachment-resources/src/components/AttachmentRefInput.svelte index d97660caa0..74f4e088f9 100644 --- a/plugins/attachment-resources/src/components/AttachmentRefInput.svelte +++ b/plugins/attachment-resources/src/components/AttachmentRefInput.svelte @@ -70,7 +70,7 @@ export let loading = false export let focusIndex: number = -1 export let autofocus = false - export function submit (): void { + export function submit(): void { refInput.submit() } export let placeholder: IntlString | undefined = undefined @@ -129,7 +129,7 @@ existingAttachmentsQuery.unsubscribe() } - function isValidUrl (s: string): boolean { + function isValidUrl(s: string): boolean { let url: URL try { url = new URL(s) @@ -139,13 +139,13 @@ return url.protocol.startsWith('http') } - function getUrlKey (s: string): string { + function getUrlKey(s: string): string { return s } $: objectId && updateAttachments(objectId) - async function updateAttachments (objectId: Ref): Promise { + async function updateAttachments(objectId: Ref): Promise { draftAttachments = $draftsStore[draftKey] if (draftAttachments && shouldSaveDraft) { attachments = new Map() @@ -181,14 +181,14 @@ } } - function saveDraft (): void { + function saveDraft(): void { if (shouldSaveDraft) { draftAttachments = Object.fromEntries(attachments) draftController.save(draftAttachments) } } - async function createAttachment (file: File, meta?: AttachmentMetadata): Promise { + async function createAttachment(file: File, meta?: AttachmentMetadata): Promise { try { const { uuid, metadata } = await uploadFile(file) await _createAttachment(uuid, file.name, file, meta ?? metadata) @@ -197,7 +197,7 @@ } } - async function _createAttachment ( + async function _createAttachment( file: Ref, name: string, blob: File | Blob, @@ -232,14 +232,14 @@ } } - async function saveAttachment (doc: Attachment): Promise { + async function saveAttachment(doc: Attachment): Promise { if (!existingAttachments.includes(doc._id)) { await client.addCollection(attachment.class.Attachment, space, objectId, _class, 'attachments', doc, doc._id) newAttachments.delete(doc._id) } } - async function fileSelected (): Promise { + async function fileSelected(): Promise { progress = true await tick() const list = inputFile.files @@ -256,7 +256,7 @@ progress = false } - async function fileDrop (e: DragEvent): Promise { + async function fileDrop(e: DragEvent): Promise { const list = e.dataTransfer?.files const limiter = new RateLimiter(10) @@ -272,7 +272,7 @@ progress = false } - async function removeAttachment (attachment: Attachment): Promise { + async function removeAttachment(attachment: Attachment): Promise { removedAttachments.add(attachment) attachments.delete(attachment._id) attachments = attachments @@ -280,7 +280,7 @@ dispatch('update', { message: content, attachments: attachments.size }) } - async function deleteAttachment (attachment: Attachment): Promise { + async function deleteAttachment(attachment: Attachment): Promise { if (attachment.type === 'application/link-preview') { urlSet.delete(getUrlKey(attachment.name)) } @@ -309,7 +309,7 @@ } }) - export function removeDraft (removeFiles: boolean): void { + export function removeDraft(removeFiles: boolean): void { draftController.remove() if (removeFiles) { newAttachments.forEach((p) => { @@ -321,11 +321,11 @@ } } - export function isEmptyDraft (): boolean { + export function isEmptyDraft(): boolean { return attachments.size === 0 && isEmptyMarkup(content) } - export async function createAttachments (): Promise { + export async function createAttachments(): Promise { if (saved) { return } @@ -347,14 +347,14 @@ saveDraft() } - async function onMessage (event: CustomEvent): Promise { + async function onMessage(event: CustomEvent): Promise { loading = true await createAttachments() loading = false dispatch('message', { message: event.detail, attachments: attachments.size }) } - function updateLinkPreview (): void { + function updateLinkPreview(): void { const hrefs = refContainer.getElementsByTagName('a') const newUrls: string[] = [] for (let i = 0; i < hrefs.length; i++) { @@ -373,14 +373,14 @@ } } - function onUpdate (event: CustomEvent): void { + function onUpdate(event: CustomEvent): void { if (isLinkPreviewEnabled() && !loading && urlSet.size < maxLinkPreviewCount) { updateLinkPreview() } dispatch('update', { message: event.detail, attachments: attachments.size }) } - async function loadLinks (urls: string[]): Promise { + async function loadLinks(urls: string[]): Promise { loadingLinks = true for (const url of urls) { try { @@ -405,7 +405,7 @@ loadingLinks = false } - async function loadFiles (evt: ClipboardEvent): Promise { + async function loadFiles(evt: ClipboardEvent): Promise { progress = true const files = (evt.clipboardData?.files ?? []) as File[] @@ -416,7 +416,7 @@ progress = false } - function pasteAction (_: any, evt: ClipboardEvent): boolean { + function pasteAction(_: any, evt: ClipboardEvent): boolean { let target: HTMLElement | null = evt.target as HTMLElement let allowed = false @@ -439,7 +439,7 @@ return false } - async function onFileUploaded ({ uuid, name, file, metadata }: FileUploadCallbackParams): Promise { + async function onFileUploaded({ uuid, name, file, metadata }: FileUploadCallbackParams): Promise { try { await updateAttachments(objectId) await _createAttachment(uuid, name, file, metadata) @@ -448,7 +448,7 @@ } } - async function uploadWith (uploader: UploadHandlerDefinition): Promise { + async function uploadWith(uploader: UploadHandlerDefinition): Promise { const upload = await getResource(uploader.handler) const target = { objectId: docId ?? objectId, objectClass: docClass ?? _class } await upload({ onFileUploaded, target }) diff --git a/plugins/attachment-resources/src/components/AttachmentStyleBoxCollabEditor.svelte b/plugins/attachment-resources/src/components/AttachmentStyleBoxCollabEditor.svelte index 778ed57096..fb253dea33 100644 --- a/plugins/attachment-resources/src/components/AttachmentStyleBoxCollabEditor.svelte +++ b/plugins/attachment-resources/src/components/AttachmentStyleBoxCollabEditor.svelte @@ -89,7 +89,7 @@ modelRefActions = actions }) - async function uploadWith (uploader: UploadHandlerDefinition): Promise { + async function uploadWith(uploader: UploadHandlerDefinition): Promise { const upload = await getResource(uploader.handler) const target = { objectId: object._id, objectClass: object._class } await upload({ onFileUploaded, target }) @@ -109,10 +109,10 @@ $: refActions = readonly ? [] : defaultRefActions - .concat(extraActions) - .concat(modelRefActions) - .concat(uploadActions) - .sort((a, b) => a.order - b.order) + .concat(extraActions) + .concat(modelRefActions) + .concat(uploadActions) + .sort((a, b) => a.order - b.order) let progress = false let attachments: Attachment[] = [] @@ -130,21 +130,21 @@ let inputFile: HTMLInputElement - export function isFocused (): boolean { + export function isFocused(): boolean { return editor?.isFocused() ?? false } - export function handleTable (element: HTMLElement, editorHandler: TextEditorHandler, event?: MouseEvent): void { + export function handleTable(element: HTMLElement, editorHandler: TextEditorHandler, event?: MouseEvent): void { const position = event !== undefined ? getEventPositionElement(event) : getPopupPositionElement(element) addTableHandler(editorHandler.insertTable, position) } - export function handleAttach (): void { + export function handleAttach(): void { inputFile.click() } - async function fileSelected (): Promise { + async function fileSelected(): Promise { if (readonly) return const list = inputFile.files @@ -158,7 +158,7 @@ progress = false } - async function attachFiles (files: File[] | FileList): Promise { + async function attachFiles(files: File[] | FileList): Promise { progress = true if (files.length > 0) { await uploadFiles(files, { onFileUploaded }) @@ -166,7 +166,7 @@ progress = false } - async function attachFile (file: File): Promise<{ file: Ref, type: string } | undefined> { + async function attachFile(file: File): Promise<{ file: Ref, type: string } | undefined> { try { const { uuid, metadata } = await uploadFile(file) await createAttachment(uuid, file.name, file, metadata) @@ -176,11 +176,11 @@ } } - async function onFileUploaded ({ uuid, name, file, metadata }: FileUploadCallbackParams): Promise { + async function onFileUploaded({ uuid, name, file, metadata }: FileUploadCallbackParams): Promise { await createAttachment(uuid, name, file, metadata) } - async function createAttachment ( + async function createAttachment( uuid: Ref, name: string, file: FileOrBlob, @@ -231,7 +231,7 @@ } } - function isAllowedPaste (evt: ClipboardEvent): boolean { + function isAllowedPaste(evt: ClipboardEvent): boolean { let t: HTMLElement | null = evt.target as HTMLElement if (refContainer === undefined) { @@ -248,7 +248,7 @@ return false } - export async function pasteAction (evt: ClipboardEvent): Promise { + export async function pasteAction(evt: ClipboardEvent): Promise { if (readonly) return if (!isAllowedPaste(evt)) { return @@ -275,7 +275,7 @@ progress = false } - export async function fileDrop (e: DragEvent): Promise { + export async function fileDrop(e: DragEvent): Promise { if (readonly) return const list = e.dataTransfer?.files @@ -284,7 +284,7 @@ } } - async function removeAttachment (attachment: Attachment): Promise { + async function removeAttachment(attachment: Attachment): Promise { progressItems.push(attachment._id) progressItems = progressItems diff --git a/plugins/attachment-resources/src/components/AttachmentStyleBoxEditor.svelte b/plugins/attachment-resources/src/components/AttachmentStyleBoxEditor.svelte index 5e75eb159c..8a12cdcfe8 100644 --- a/plugins/attachment-resources/src/components/AttachmentStyleBoxEditor.svelte +++ b/plugins/attachment-resources/src/components/AttachmentStyleBoxEditor.svelte @@ -66,7 +66,7 @@ let descriptionBox: AttachmentStyledBox - async function save (object: Doc, description: string) { + async function save(object: Doc, description: string) { clearTimeout(saveTrigger) if (!object) { return @@ -88,7 +88,7 @@ } let saveTrigger: any - function triggerSave (): void { + function triggerSave(): void { haveUnsavedChanges = true clearTimeout(saveTrigger) @@ -102,11 +102,11 @@ }, 2500) } - export function isFocused (): boolean { + export function isFocused(): boolean { return descriptionBox.isFocused() } - export function setEditable (editable: boolean): void { + export function setEditable(editable: boolean): void { descriptionBox.setEditable(editable) } diff --git a/plugins/attachment-resources/src/components/AttachmentStyledBox.svelte b/plugins/attachment-resources/src/components/AttachmentStyledBox.svelte index eddfed472d..df0ea6ee24 100644 --- a/plugins/attachment-resources/src/components/AttachmentStyledBox.svelte +++ b/plugins/attachment-resources/src/components/AttachmentStyledBox.svelte @@ -77,26 +77,26 @@ const dispatch = createEventDispatcher() - export function focus (): void { + export function focus(): void { refInput.focus() } - export function isFocused (): boolean { + export function isFocused(): boolean { return refInput.isFocused() } - export function isEditable (): boolean { + export function isEditable(): boolean { return refInput.isEditable() } - export function setEditable (editable: boolean): void { + export function setEditable(editable: boolean): void { refInput.setEditable(editable) } - export function setContent (data: string): void { + export function setContent(data: string): void { refInput.setContent(data) } - export function handleAttach (): void { + export function handleAttach(): void { inputFile.click() } - export function submit (): void { + export function submit(): void { refInput.submit() } let refInput: StyledTextBox @@ -114,7 +114,7 @@ $: draftKey && updateAttachments(objectId, $draftsStore[draftKey]) - async function updateAttachments ( + async function updateAttachments( objectId: Ref | undefined, draftAttachments: Record, Attachment> | undefined ) { @@ -146,14 +146,14 @@ } } - async function saveDraft () { + async function saveDraft() { if (draftKey && shouldSaveDraft) { const draftAttachments = Object.fromEntries(attachments) DraftController.save(draftKey, draftAttachments) } } - async function attachFile (file: File): Promise<{ file: Ref, type: string } | undefined> { + async function attachFile(file: File): Promise<{ file: Ref, type: string } | undefined> { try { const { uuid, metadata } = await uploadFile(file) await createAttachment(uuid, file.name, file, metadata) @@ -163,11 +163,11 @@ } } - async function onFileUploaded ({ uuid, name, file, metadata }: FileUploadCallbackParams): Promise { + async function onFileUploaded({ uuid, name, file, metadata }: FileUploadCallbackParams): Promise { await createAttachment(uuid, name, file, metadata) } - async function createAttachment ( + async function createAttachment( uuid: Ref, name: string, file: FileOrBlob, @@ -209,7 +209,7 @@ } } - async function saveAttachment (doc: Attachment, objectId: Ref | undefined, op?: TxOperations): Promise { + async function saveAttachment(doc: Attachment, objectId: Ref | undefined, op?: TxOperations): Promise { if (space === undefined || objectId === undefined || _class === undefined) return newAttachments.delete(doc._id) await (op ?? client).addCollection( @@ -223,7 +223,7 @@ ) } - async function fileSelected (): Promise { + async function fileSelected(): Promise { progress = true const list = inputFile.files if (list === null || list.length === 0) return @@ -232,7 +232,7 @@ progress = false } - export async function fileDrop (e: DragEvent): Promise { + export async function fileDrop(e: DragEvent): Promise { progress = true const list = e.dataTransfer?.files if (list === undefined || list.length === 0) return @@ -240,7 +240,7 @@ progress = false } - async function removeAttachment (attachment: Attachment): Promise { + async function removeAttachment(attachment: Attachment): Promise { if (useDirectAttachDelete) { progressItems.push(attachment._id) progressItems = progressItems @@ -256,7 +256,7 @@ progressItems = progressItems.filter((it) => it !== attachment._id) } - async function deleteAttachment (attachment: Attachment): Promise { + async function deleteAttachment(attachment: Attachment): Promise { removedAttachments.delete(attachment) if (originalAttachments.has(attachment._id)) { await client.removeCollection( @@ -284,7 +284,7 @@ } }) - export function removeDraft (removeFiles: boolean) { + export function removeDraft(removeFiles: boolean) { if (draftKey) { DraftController.remove(draftKey) } @@ -298,21 +298,21 @@ } } - export async function saveNewAttachment (_id: Ref): Promise { + export async function saveNewAttachment(_id: Ref): Promise { const attachment = attachments.get(_id) if (attachment !== undefined) { await saveAttachment(attachment, objectId) } } - export async function removeAttachmentById (_id: Ref): Promise { + export async function removeAttachmentById(_id: Ref): Promise { const attachment = attachments.get(_id) if (attachment !== undefined) { await removeAttachment(attachment) } } - export async function createAttachments (_id: Ref | undefined = objectId, op?: TxOperations): Promise { + export async function createAttachments(_id: Ref | undefined = objectId, op?: TxOperations): Promise { if (saved) { return } @@ -333,7 +333,7 @@ removedAttachments.clear() } - function isAllowedPaste (evt: ClipboardEvent) { + function isAllowedPaste(evt: ClipboardEvent) { let t: HTMLElement | null = evt.target as HTMLElement if (!refContainer) { @@ -350,7 +350,7 @@ return false } - export async function pasteAction (evt: ClipboardEvent): Promise { + export async function pasteAction(evt: ClipboardEvent): Promise { if (!isAllowedPaste(evt)) { return } @@ -372,7 +372,7 @@ } } - export function getAttachments (): Attachment[] { + export function getAttachments(): Attachment[] { return Array.from(attachments.values()) } diff --git a/plugins/attachment-resources/src/components/AttachmentVideoPreview.svelte b/plugins/attachment-resources/src/components/AttachmentVideoPreview.svelte index 4206a5308a..f02b0570b9 100644 --- a/plugins/attachment-resources/src/components/AttachmentVideoPreview.svelte +++ b/plugins/attachment-resources/src/components/AttachmentVideoPreview.svelte @@ -30,7 +30,7 @@ $: name = value.name $: file = value.file - function getDimensions (value: Attachment | BlobType): { width: number, height: number } { + function getDimensions(value: Attachment | BlobType): { width: number, height: number } { const fontSize = parseFloat(getComputedStyle(document.documentElement).fontSize) if (value.metadata?.originalWidth == null || value.metadata.originalHeight == null) { @@ -58,7 +58,7 @@ return { width, height } } - function toStyle (size: 'auto' | number): string { + function toStyle(size: 'auto' | number): string { return size === 'auto' ? 'auto' : `${size}px` } diff --git a/plugins/attachment-resources/src/components/Attachments.svelte b/plugins/attachment-resources/src/components/Attachments.svelte index f0e16f3e9c..f4968313cd 100644 --- a/plugins/attachment-resources/src/components/Attachments.svelte +++ b/plugins/attachment-resources/src/components/Attachments.svelte @@ -52,7 +52,7 @@ const client = getClient() const dispatch = createEventDispatcher() - async function onFileUploaded ({ uuid, name, file, metadata }: FileUploadCallbackParams): Promise { + async function onFileUploaded({ uuid, name, file, metadata }: FileUploadCallbackParams): Promise { await createAttachment( client, uuid, @@ -65,7 +65,7 @@ ) } - async function fileSelected (): Promise { + async function fileSelected(): Promise { const list = inputFile.files if (list === null || list.length === 0) return @@ -87,11 +87,11 @@ dispatch('attached') } - function openFile (): void { + function openFile(): void { inputFile.click() } - function updateContent (evt: CustomEvent): void { + function updateContent(evt: CustomEvent): void { attachments = evt.detail.length dispatch('attachments', evt.detail) } diff --git a/plugins/attachment-resources/src/components/AudioPlayer.svelte b/plugins/attachment-resources/src/components/AudioPlayer.svelte index 819ec04b77..cb05f9fa6d 100644 --- a/plugins/attachment-resources/src/components/AudioPlayer.svelte +++ b/plugins/attachment-resources/src/components/AudioPlayer.svelte @@ -27,7 +27,7 @@ let duration = Number.POSITIVE_INFINITY let paused = true - function buttonClick (): void { + function buttonClick(): void { paused = !paused } diff --git a/plugins/attachment-resources/src/components/FileBrowser.svelte b/plugins/attachment-resources/src/components/FileBrowser.svelte index a16f388eca..702e32fa14 100644 --- a/plugins/attachment-resources/src/components/FileBrowser.svelte +++ b/plugins/attachment-resources/src/components/FileBrowser.svelte @@ -54,7 +54,7 @@ $: fetch(search, selectedSort, selectedFileTypeId, selectedDateId, selectedParticipants, selectedSpaces) - async function fetch ( + async function fetch( searchQuery_: string, selectedSort_: FileBrowserSortMode, selectedFileTypeId_: string, diff --git a/plugins/attachment-resources/src/components/LinkPreview.svelte b/plugins/attachment-resources/src/components/LinkPreview.svelte index 5137d57788..a8644b3881 100644 --- a/plugins/attachment-resources/src/components/LinkPreview.svelte +++ b/plugins/attachment-resources/src/components/LinkPreview.svelte @@ -37,14 +37,14 @@ $: imageDimensions = linkPreview.imageWidth && linkPreview.imageHeight ? getImageDimensions( - { width: linkPreview.imageWidth, height: linkPreview.imageHeight }, - { - maxWidth: 23.5, - minWidth: 4, - maxHeight: 15, - minHeight: 4 - } - ) + { width: linkPreview.imageWidth, height: linkPreview.imageHeight }, + { + maxWidth: 23.5, + minWidth: 4, + maxHeight: 15, + minHeight: 4 + } + ) : undefined diff --git a/plugins/attachment-resources/src/components/LinkPreviewImage.svelte b/plugins/attachment-resources/src/components/LinkPreviewImage.svelte index 4e588b4656..abb410cf59 100644 --- a/plugins/attachment-resources/src/components/LinkPreviewImage.svelte +++ b/plugins/attachment-resources/src/components/LinkPreviewImage.svelte @@ -25,7 +25,7 @@ let previewSrc: string | undefined let retryCount = 0 - function refreshPreviewSrc (): void { + function refreshPreviewSrc(): void { if (src === undefined) { previewSrc = undefined return diff --git a/plugins/attachment-resources/src/components/LinkPreviewPresenter.svelte b/plugins/attachment-resources/src/components/LinkPreviewPresenter.svelte index a3347653f5..4d5cb3f21e 100644 --- a/plugins/attachment-resources/src/components/LinkPreviewPresenter.svelte +++ b/plugins/attachment-resources/src/components/LinkPreviewPresenter.svelte @@ -39,7 +39,7 @@ const client = getClient() - async function onDelete (): Promise { + async function onDelete(): Promise { await client.removeCollection( attachment._class, attachment.space, @@ -72,14 +72,14 @@ $: imageDimensions = metadata?.imageWidth && metadata.imageHeight ? getImageDimensions( - { width: metadata.imageWidth, height: metadata.imageHeight }, - { - maxWidth: 24.5, - minWidth: 4, - maxHeight: 15, - minHeight: 4 - } - ) + { width: metadata.imageWidth, height: metadata.imageHeight }, + { + maxWidth: 24.5, + minWidth: 4, + maxHeight: 15, + minHeight: 4 + } + ) : undefined diff --git a/plugins/attachment-resources/src/components/Photos.svelte b/plugins/attachment-resources/src/components/Photos.svelte index eea1aafb26..b368046569 100644 --- a/plugins/attachment-resources/src/components/Photos.svelte +++ b/plugins/attachment-resources/src/components/Photos.svelte @@ -43,7 +43,7 @@ } ) - async function create (file: File): Promise { + async function create(file: File): Promise { if (!file.type.startsWith('image/')) return loading++ try { @@ -63,7 +63,7 @@ } } - function fileSelected (): void { + function fileSelected(): void { const list = inputFile.files if (list === null || list.length === 0) return for (let index = 0; index < list.length; index++) { @@ -75,7 +75,7 @@ inputFile.value = '' } - function fileDrop (e: DragEvent): void { + function fileDrop(e: DragEvent): void { const list = e.dataTransfer?.files if (list === undefined || list.length === 0) return for (let index = 0; index < list.length; index++) { @@ -88,7 +88,7 @@ let dragover = false - function click (ev: Event, item?: WithLookup): void { + function click(ev: Event, item?: WithLookup): void { const el: HTMLElement = ev.currentTarget as HTMLElement el.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'center' }) if (item !== undefined) { diff --git a/plugins/attachment-resources/src/components/PreviewWidget.svelte b/plugins/attachment-resources/src/components/PreviewWidget.svelte index 833dee3c9e..6be19dd9b0 100644 --- a/plugins/attachment-resources/src/components/PreviewWidget.svelte +++ b/plugins/attachment-resources/src/components/PreviewWidget.svelte @@ -29,13 +29,13 @@ $: contentType = tab?.data?.contentType $: metadata = tab?.data?.metadata - async function closeTab (): Promise { + async function closeTab(): Promise { if (tab === undefined) return const fn = await getResource(workbench.function.CloseWidgetTab) await fn(widget, tab.id) } - async function close (): Promise { + async function close(): Promise { const fn = await getResource(workbench.function.CloseWidget) await fn(attachment.ids.PreviewWidget) } diff --git a/plugins/attachment-resources/src/index.ts b/plugins/attachment-resources/src/index.ts index b7f09519a8..68be6290d4 100644 --- a/plugins/attachment-resources/src/index.ts +++ b/plugins/attachment-resources/src/index.ts @@ -48,7 +48,7 @@ import DrawingPresenter from './components/DrawingPresenter.svelte' import LinkPreview from './components/LinkPreview.svelte' import LinkPreviewCard from './components/LinkPreviewCard.svelte' -export * from './types' +export type * from './types' export * from './stores' export { diff --git a/plugins/billing-resources/src/components/Chart/GridLines.svelte b/plugins/billing-resources/src/components/Chart/GridLines.svelte index 62a9e7d4ac..e75ea3f2b9 100644 --- a/plugins/billing-resources/src/components/Chart/GridLines.svelte +++ b/plugins/billing-resources/src/components/Chart/GridLines.svelte @@ -11,7 +11,7 @@ let lineStep = 0 let valueStep = 0 - function updateValues (values: number[], height: number, minDistance: number): void { + function updateValues(values: number[], height: number, minDistance: number): void { stepsCount = Math.floor(height / minDistance) minValue = Math.min.apply(Math, values) maxValue = Math.max.apply(Math, values) diff --git a/plugins/billing-resources/src/components/Chart/Line.svelte b/plugins/billing-resources/src/components/Chart/Line.svelte index 793faa0ec4..a4c00a658d 100644 --- a/plugins/billing-resources/src/components/Chart/Line.svelte +++ b/plugins/billing-resources/src/components/Chart/Line.svelte @@ -3,7 +3,7 @@ export let width: number export let height: number - function createLines ( + function createLines( data: { date: number, value: number }[], width: number, height: number diff --git a/plugins/billing-resources/src/components/Chart/XAxis.svelte b/plugins/billing-resources/src/components/Chart/XAxis.svelte index da06a8d88c..bd7e7ad071 100644 --- a/plugins/billing-resources/src/components/Chart/XAxis.svelte +++ b/plugins/billing-resources/src/components/Chart/XAxis.svelte @@ -14,7 +14,7 @@ let lineStep = 0 let valueStep = 0 - function updateValues (stepsCount: number, values: number[]): void { + function updateValues(stepsCount: number, values: number[]): void { minValue = values[0] maxValue = values[values.length - 1] valueStep = (maxValue - minValue) / (stepsCount - 1) diff --git a/plugins/billing-resources/src/components/ChartCard.svelte b/plugins/billing-resources/src/components/ChartCard.svelte index 01e4d55698..fa92589aba 100644 --- a/plugins/billing-resources/src/components/ChartCard.svelte +++ b/plugins/billing-resources/src/components/ChartCard.svelte @@ -9,7 +9,7 @@ let normalizedData: { date: number, value: number }[] = [] - function normalizeData (data: { date: number, value: number }[]): void { + function normalizeData(data: { date: number, value: number }[]): void { const startDate = new Date(Date.now()) startDate.setHours(0, 0, 0, 0) startDate.setDate(startDate.getDate() - 29) diff --git a/plugins/billing-resources/src/components/LargestFilesTable.svelte b/plugins/billing-resources/src/components/LargestFilesTable.svelte index 88fd979fd6..1aa620161f 100644 --- a/plugins/billing-resources/src/components/LargestFilesTable.svelte +++ b/plugins/billing-resources/src/components/LargestFilesTable.svelte @@ -40,12 +40,12 @@ $: selectedBytes = selectedRows.reduce((sum, r) => sum + r.size, 0) $: selectionCount = selectedRows.length - function onRowClick (row: LargestFileRow): void { + function onRowClick(row: LargestFileRow): void { const id = row.id as unknown as string dispatch('select', { id, checked: !selected.has(id) }) } - function onSelectAll (): void { + function onSelectAll(): void { dispatch('selectAll', { checked: !allSelected }) } diff --git a/plugins/billing-resources/src/components/LimitsFooterIndicator.svelte b/plugins/billing-resources/src/components/LimitsFooterIndicator.svelte index 3341fcaa06..ea1afedc92 100644 --- a/plugins/billing-resources/src/components/LimitsFooterIndicator.svelte +++ b/plugins/billing-resources/src/components/LimitsFooterIndicator.svelte @@ -24,7 +24,7 @@ $: isRestricted = state.mode === 'restricted' $: visible = state.mode !== 'ok' - function handleClick (): void { + function handleClick(): void { showPopup(LimitsFooterPopup, {}, wrapperEl) } diff --git a/plugins/billing-resources/src/components/LimitsFooterPopup.svelte b/plugins/billing-resources/src/components/LimitsFooterPopup.svelte index 753c3c0e75..1bf117ecad 100644 --- a/plugins/billing-resources/src/components/LimitsFooterPopup.svelte +++ b/plugins/billing-resources/src/components/LimitsFooterPopup.svelte @@ -32,7 +32,7 @@ ? gracePeriodEndsAtDate.toLocaleDateString(undefined, { day: 'numeric', month: 'short', year: 'numeric' }) : '' - function handleUpgrade (): void { + function handleUpgrade(): void { dispatch('close') void upgradePlan() } diff --git a/plugins/billing-resources/src/components/LimitsIndicator.svelte b/plugins/billing-resources/src/components/LimitsIndicator.svelte index 81a2e942ee..f2f85edba9 100644 --- a/plugins/billing-resources/src/components/LimitsIndicator.svelte +++ b/plugins/billing-resources/src/components/LimitsIndicator.svelte @@ -68,7 +68,7 @@ removeEventListener(workbench.event.NotifyConnection, connectionListener) }) - function handleClick (): void { + function handleClick(): void { void upgradePlan() } diff --git a/plugins/billing-resources/src/components/ResourceUsage.svelte b/plugins/billing-resources/src/components/ResourceUsage.svelte index ffd14a4663..1d90e8678e 100644 --- a/plugins/billing-resources/src/components/ResourceUsage.svelte +++ b/plugins/billing-resources/src/components/ResourceUsage.svelte @@ -38,7 +38,7 @@ let totalTranscriptDuration = 0 let totalTokensCount = 0 - async function loadBillingData (): Promise { + async function loadBillingData(): Promise { if (billingClient == null) return const billingStats = await billingClient.getBillingStats(getCurrentWorkspaceUuid()) totalDatalakeSize = billingStats.datalakeStats.size diff --git a/plugins/billing-resources/src/components/StorageUsage.svelte b/plugins/billing-resources/src/components/StorageUsage.svelte index 61b283dbdf..f573c25365 100644 --- a/plugins/billing-resources/src/components/StorageUsage.svelte +++ b/plugins/billing-resources/src/components/StorageUsage.svelte @@ -73,7 +73,7 @@ $: canManage = canManageStorage(getCurrentAccount()) - async function showErrorNotification ( + async function showErrorNotification( titleKey = plugin.string.SubscriptionOperationFailed, messageKey = plugin.string.SubscriptionErrorMessage ): Promise { @@ -86,7 +86,7 @@ ) } - async function loadUsage (): Promise { + async function loadUsage(): Promise { try { const accountClient = getAccountClient() if (accountClient == null) return @@ -120,7 +120,7 @@ } } - async function loadFiles (currentLimit: number, isReload: boolean): Promise { + async function loadFiles(currentLimit: number, isReload: boolean): Promise { if (!canManage) { loadingFiles = false return @@ -147,7 +147,7 @@ } } - async function handleLoadMore (): Promise { + async function handleLoadMore(): Promise { if (loadingMore || loadingFiles) return if (lastFetchedCount < limit) { hasMore = false @@ -157,7 +157,7 @@ await loadFiles(limit, false) } - function handleSelect (event: CustomEvent<{ id: string, checked: boolean }>): void { + function handleSelect(event: CustomEvent<{ id: string, checked: boolean }>): void { const { id, checked } = event.detail const next = new Set(selected) if (checked) next.add(id) @@ -165,7 +165,7 @@ selected = next } - function handleSelectAll (event: CustomEvent<{ checked: boolean }>): void { + function handleSelectAll(event: CustomEvent<{ checked: boolean }>): void { const next = new Set() if (event.detail.checked) { for (const row of rows) next.add(row.id as unknown as string) @@ -173,11 +173,11 @@ selected = next } - function handleClear (): void { + function handleClear(): void { selected = new Set() } - async function handleDeleteSelected (): Promise { + async function handleDeleteSelected(): Promise { const targets = rows.filter((r) => selected.has(r.id as unknown as string)) if (targets.length === 0) return @@ -195,7 +195,7 @@ }) } - async function runDelete (targets: LargestFileRow[], totalSize: number): Promise { + async function runDelete(targets: LargestFileRow[], totalSize: number): Promise { isDeleting = true try { const results = await deleteFilesBatch(targets) @@ -241,7 +241,7 @@ } } - async function handleRefresh (): Promise { + async function handleRefresh(): Promise { selected = new Set() limit = PAGE_SIZE await Promise.all([loadUsage(), loadFiles(limit, true)]) diff --git a/plugins/billing-resources/src/components/Subscriptions.svelte b/plugins/billing-resources/src/components/Subscriptions.svelte index 672afcbec4..52df725456 100644 --- a/plugins/billing-resources/src/components/Subscriptions.svelte +++ b/plugins/billing-resources/src/components/Subscriptions.svelte @@ -70,7 +70,7 @@ $: isCurrentCanceled = currentSubscription?.canceledAt !== undefined && currentSubscription.canceledAt > 0 - async function subscribe (tierId: Ref): Promise { + async function subscribe(tierId: Ref): Promise { if (paymentClient == null) { return } @@ -91,7 +91,7 @@ } } - async function showErrorNotification (): Promise { + async function showErrorNotification(): Promise { addNotification( await translate(plugin.string.SubscriptionOperationFailed, {}, $themeStore.language), await translate(plugin.string.SubscriptionErrorMessage, {}, $themeStore.language), @@ -101,7 +101,7 @@ ) } - async function showPlanChangeConfirmation (newPlan: string, newTier: Tier): Promise { + async function showPlanChangeConfirmation(newPlan: string, newTier: Tier): Promise { if (currentTier === undefined) { return } @@ -122,7 +122,7 @@ }) } - async function handlePlanChange (newTierId: Ref): Promise { + async function handlePlanChange(newTierId: Ref): Promise { const { plan: newPlan } = getTypeAndPlan(newTierId) const newTier = tierByPlan[newPlan] @@ -152,7 +152,7 @@ } } - async function executeUpdate (newPlan: string): Promise { + async function executeUpdate(newPlan: string): Promise { if (paymentClient == null) { return } @@ -188,7 +188,7 @@ } } - async function handleCancel (): Promise { + async function handleCancel(): Promise { if (currentSubscription?.id === undefined) { return } @@ -207,7 +207,7 @@ }) } - async function executeCancel (): Promise { + async function executeCancel(): Promise { if (paymentClient == null) { return } @@ -226,7 +226,7 @@ } } - async function handleUncancel (): Promise { + async function handleUncancel(): Promise { if (currentSubscription?.id === undefined) { return } @@ -244,7 +244,7 @@ }) } - async function executeUncancel (): Promise { + async function executeUncancel(): Promise { if (paymentClient == null) { return } @@ -266,7 +266,7 @@ } } - async function fetchSubscriptions (): Promise { + async function fetchSubscriptions(): Promise { loading = true try { @@ -285,7 +285,7 @@ } } - async function fetchUsageStats (): Promise { + async function fetchUsageStats(): Promise { try { const accountClient = getAccountClient() if (accountClient == null) return @@ -299,11 +299,11 @@ } } - function formatSize (gb: number): { limit: number, unit: string } { + function formatSize(gb: number): { limit: number, unit: string } { return gb < 1000 ? { limit: gb, unit: 'GB' } : { limit: Math.floor(gb / 1000), unit: 'TB' } } - async function pollCheckoutStatus (checkoutId: string): Promise { + async function pollCheckoutStatus(checkoutId: string): Promise { if (paymentClient == null) { return } @@ -349,7 +349,7 @@ } } - function checkForCheckoutParam (): void { + function checkForCheckoutParam(): void { const loc = getLocation() const checkoutId = loc.query?.checkout_id as string | undefined const paymentStatus = loc.query?.payment as string | undefined @@ -373,12 +373,12 @@ $: isCheckoutPolling = pollingCheckoutId !== null - function formatEndDate (endDate: number): string { + function formatEndDate(endDate: number): string { const date = new Date(endDate) return date.toLocaleDateString(undefined, { year: 'numeric', month: 'long', day: 'numeric' }) } - function getTypeAndPlan (tierId: Ref): { type: SubscriptionType, plan: string } { + function getTypeAndPlan(tierId: Ref): { type: SubscriptionType, plan: string } { const parts = tierId.split(':') if (parts.length !== 3) { throw new Error(`Invalid tier id: ${tierId}`) diff --git a/plugins/billing-resources/src/stores/largestFiles.ts b/plugins/billing-resources/src/stores/largestFiles.ts index c86bafb436..2db8b6d137 100644 --- a/plugins/billing-resources/src/stores/largestFiles.ts +++ b/plugins/billing-resources/src/stores/largestFiles.ts @@ -82,7 +82,7 @@ export async function fetchLargestFiles (client: Client, limit: number): Promise {}, { limit, - lookup: { file: drive.class.FileVersion as unknown as Ref> } + lookup: { file: drive.class.FileVersion } } ) ]) diff --git a/plugins/billing-resources/src/utils.ts b/plugins/billing-resources/src/utils.ts index 2398b2f87c..8032696683 100644 --- a/plugins/billing-resources/src/utils.ts +++ b/plugins/billing-resources/src/utils.ts @@ -204,7 +204,7 @@ export async function deleteFilesBatch ( throw new Error('Attachment is missing parent reference') } await client.removeCollection( - ref._class as Ref>, + ref._class, ref.space, ref._id as Ref, ref.attachedTo, diff --git a/plugins/bitrix-resources/src/components/AttributeMapper.svelte b/plugins/bitrix-resources/src/components/AttributeMapper.svelte index 61c5293947..ab5ae023cd 100644 --- a/plugins/bitrix-resources/src/components/AttributeMapper.svelte +++ b/plugins/bitrix-resources/src/components/AttributeMapper.svelte @@ -28,7 +28,7 @@ core.class.RefTo ]) - function addMapping (evt: MouseEvent, kind: MappingOperation): void { + function addMapping(evt: MouseEvent, kind: MappingOperation): void { showPopup( CreateMappingAttribute, { diff --git a/plugins/bitrix-resources/src/components/BitrixConfigure.svelte b/plugins/bitrix-resources/src/components/BitrixConfigure.svelte index 732c5a8dc3..c7f27ff6af 100644 --- a/plugins/bitrix-resources/src/components/BitrixConfigure.svelte +++ b/plugins/bitrix-resources/src/components/BitrixConfigure.svelte @@ -65,7 +65,7 @@ mappings = res }) - function addMapping (evt: MouseEvent): void { + function addMapping(evt: MouseEvent): void { showPopup(CreateMapping, { integration, mappings, bitrixClient }, eventToHTMLElement(evt)) } const signature = '@#253heyf@' diff --git a/plugins/bitrix-resources/src/components/BitrixConnect.svelte b/plugins/bitrix-resources/src/components/BitrixConnect.svelte index 58c3cb7bc7..be82fe2108 100644 --- a/plugins/bitrix-resources/src/components/BitrixConnect.svelte +++ b/plugins/bitrix-resources/src/components/BitrixConnect.svelte @@ -27,7 +27,7 @@ const dispatch = createEventDispatcher() - function save (): void { + function save(): void { dispatch('close', { value: url }) } diff --git a/plugins/bitrix-resources/src/components/BitrixFieldLookup.svelte b/plugins/bitrix-resources/src/components/BitrixFieldLookup.svelte index 901ae9de8e..64fc998248 100644 --- a/plugins/bitrix-resources/src/components/BitrixFieldLookup.svelte +++ b/plugins/bitrix-resources/src/components/BitrixFieldLookup.svelte @@ -26,7 +26,7 @@ const client = getClient() let items: any[] = [] - function loadItems (order: boolean): void { + function loadItems(order: boolean): void { bitrixClient .call(mapping.type + '.list', { select: ['*', 'UF_*', 'EMAIL', 'IM'], order: { ID: order ? 'ASC' : 'DSC' } }) .then((res) => { @@ -41,7 +41,7 @@ enums = res }) - async function updateEnum (evt: MouseEvent, fieldId: string, field: FieldValue): Promise { + async function updateEnum(evt: MouseEvent, fieldId: string, field: FieldValue): Promise { const enumId = ('bitrix_' + fieldId) as Ref const existingEnum = await client.findOne(core.class.Enum, { _id: enumId }) if (existingEnum !== undefined) { diff --git a/plugins/bitrix-resources/src/components/CreateMapping.svelte b/plugins/bitrix-resources/src/components/CreateMapping.svelte index 9f9eea9c48..ae93521bcd 100644 --- a/plugins/bitrix-resources/src/components/CreateMapping.svelte +++ b/plugins/bitrix-resources/src/components/CreateMapping.svelte @@ -12,7 +12,7 @@ const client = getClient() - async function save (): Promise { + async function save(): Promise { await client.createDoc(bitrix.class.EntityMapping, bitrix.space.Mappings, { ofClass, type, diff --git a/plugins/bitrix-resources/src/components/CreateMappingAttribute.svelte b/plugins/bitrix-resources/src/components/CreateMappingAttribute.svelte index 7fc4cba00a..59db46f0e4 100644 --- a/plugins/bitrix-resources/src/components/CreateMappingAttribute.svelte +++ b/plugins/bitrix-resources/src/components/CreateMappingAttribute.svelte @@ -21,7 +21,7 @@ let op: CopyMapping | CreateTagMapping | CreateChannelMapping | DownloadAttachmentMapping - async function save (): Promise { + async function save(): Promise { op.save() } diff --git a/plugins/bitrix-resources/src/components/EntityMapping.svelte b/plugins/bitrix-resources/src/components/EntityMapping.svelte index 1df4217b72..3cb85e6cec 100644 --- a/plugins/bitrix-resources/src/components/EntityMapping.svelte +++ b/plugins/bitrix-resources/src/components/EntityMapping.svelte @@ -47,7 +47,7 @@ fields = res.result }) - async function updateMappingFields ( + async function updateMappingFields( mapping: BitrixEntityMapping, fields: Fields, statusList: StatusValue[] diff --git a/plugins/bitrix-resources/src/components/FieldMappingSynchronizer.svelte b/plugins/bitrix-resources/src/components/FieldMappingSynchronizer.svelte index 9888d0ad4a..dcc7a4150d 100644 --- a/plugins/bitrix-resources/src/components/FieldMappingSynchronizer.svelte +++ b/plugins/bitrix-resources/src/components/FieldMappingSynchronizer.svelte @@ -53,7 +53,7 @@ let docsProcessed = 0 - async function doSync (): Promise { + async function doSync(): Promise { loading = true const frontUrl = getMetadata(presentation.metadata.FrontUrl) ?? window.location.origin const token = (getMetadata(presentation.metadata.Token) as string) ?? '' @@ -104,7 +104,7 @@ $: localStorage.setItem(fieldsKey, JSON.stringify({ limit, filterFields, direction })) - function addFilter (): void { + function addFilter(): void { filterFields = [...filterFields, { _id: generateId(), field: '', value: ' ' }] } @@ -124,7 +124,7 @@ label: `${it[1].formLabel ?? it[1].title}${it[0].startsWith('UF_') ? ' *' : ''} - ${it[0]}` })) - function updateFields (fields: Fields, statusList: StatusValue[]): void { + function updateFields(fields: Fields, statusList: StatusValue[]): void { // Update fields with status valies if missing. for (const f of Object.values(fields)) { if (f.type === 'crm_status') { diff --git a/plugins/bitrix-resources/src/components/mappings/CopyMapping.svelte b/plugins/bitrix-resources/src/components/mappings/CopyMapping.svelte index 4f63d9f12d..1d374ce98b 100644 --- a/plugins/bitrix-resources/src/components/mappings/CopyMapping.svelte +++ b/plugins/bitrix-resources/src/components/mappings/CopyMapping.svelte @@ -27,7 +27,7 @@ const client = getClient() - export async function save (): Promise { + export async function save(): Promise { if (field) { await client.update(field, { operation: { diff --git a/plugins/bitrix-resources/src/components/mappings/CreateChannelMapping.svelte b/plugins/bitrix-resources/src/components/mappings/CreateChannelMapping.svelte index cfb39f574f..357f58973e 100644 --- a/plugins/bitrix-resources/src/components/mappings/CreateChannelMapping.svelte +++ b/plugins/bitrix-resources/src/components/mappings/CreateChannelMapping.svelte @@ -24,7 +24,7 @@ const client = getClient() - export async function save (): Promise { + export async function save(): Promise { if (field !== undefined) { await client.update(field, { operation: { diff --git a/plugins/bitrix-resources/src/components/mappings/CreateHRApplicationMapping.svelte b/plugins/bitrix-resources/src/components/mappings/CreateHRApplicationMapping.svelte index 1362b1b599..f4131906b8 100644 --- a/plugins/bitrix-resources/src/components/mappings/CreateHRApplicationMapping.svelte +++ b/plugins/bitrix-resources/src/components/mappings/CreateHRApplicationMapping.svelte @@ -29,7 +29,7 @@ const client = getClient() - export async function save (): Promise { + export async function save(): Promise { if (field !== undefined) { await client.update(field, { operation: { @@ -57,7 +57,7 @@ } } - function getItems (fields: Fields): DropdownTextItem[] { + function getItems(fields: Fields): DropdownTextItem[] { return Object.entries(fields).map((it) => ({ id: it[0], label: `${it[1].formLabel ?? it[1].title}${it[0].startsWith('UF_') ? ' *' : ''}` diff --git a/plugins/bitrix-resources/src/components/mappings/CreateTagMapping.svelte b/plugins/bitrix-resources/src/components/mappings/CreateTagMapping.svelte index 80b7803ac4..654c6d3db4 100644 --- a/plugins/bitrix-resources/src/components/mappings/CreateTagMapping.svelte +++ b/plugins/bitrix-resources/src/components/mappings/CreateTagMapping.svelte @@ -33,7 +33,7 @@ const client = getClient() - export async function save (): Promise { + export async function save(): Promise { if (field !== undefined) { await client.update(field, { operation: { @@ -53,7 +53,7 @@ } } - function getItems (fields: Fields): DropdownTextItem[] { + function getItems(fields: Fields): DropdownTextItem[] { return Object.entries(fields).map((it) => ({ id: it[0], label: `${it[1].formLabel ?? it[1].title}${it[0].startsWith('UF_') ? ' *' : ''} - ${it[0]}` diff --git a/plugins/bitrix-resources/src/components/mappings/DownloadAttachmentMapping.svelte b/plugins/bitrix-resources/src/components/mappings/DownloadAttachmentMapping.svelte index 84f6e91636..6f1572f7ad 100644 --- a/plugins/bitrix-resources/src/components/mappings/DownloadAttachmentMapping.svelte +++ b/plugins/bitrix-resources/src/components/mappings/DownloadAttachmentMapping.svelte @@ -20,7 +20,7 @@ const client = getClient() - export async function save (): Promise { + export async function save(): Promise { if (field !== undefined) { await client.update(field, { operation: { @@ -40,7 +40,7 @@ } } - function getItems (fields: Fields): DropdownTextItem[] { + function getItems(fields: Fields): DropdownTextItem[] { return Object.entries(fields) .filter((it) => it[1].type === 'file') .map((it) => ({ diff --git a/plugins/bitrix-resources/src/components/mappings/FindReferenceMapping.svelte b/plugins/bitrix-resources/src/components/mappings/FindReferenceMapping.svelte index a5253cbd29..60bc277b66 100644 --- a/plugins/bitrix-resources/src/components/mappings/FindReferenceMapping.svelte +++ b/plugins/bitrix-resources/src/components/mappings/FindReferenceMapping.svelte @@ -24,7 +24,7 @@ const client = getClient() - export async function save (): Promise { + export async function save(): Promise { if (field !== undefined) { await client.update(field, { operation: { @@ -48,7 +48,7 @@ } } - function getItems (fields: Fields): DropdownTextItem[] { + function getItems(fields: Fields): DropdownTextItem[] { return Object.entries(fields) .filter((it) => it[1].type === 'crm_company' || it[1].type === 'user' || it[1].type === 'crm') .map((it) => ({ diff --git a/plugins/bitrix/src/sync.ts b/plugins/bitrix/src/sync.ts index 505aadab2b..22f40c7b8e 100644 --- a/plugins/bitrix/src/sync.ts +++ b/plugins/bitrix/src/sync.ts @@ -1,5 +1,5 @@ import attachment, { Attachment } from '@hcengineering/attachment' -import contact, { Channel, Contact, Employee } from '@hcengineering/contact' +import contact, { Channel, Contact } from '@hcengineering/contact' import core, { PersonId, ApplyOperations, @@ -13,7 +13,6 @@ import core, { generateId, Hierarchy, Mixin, - MixinData, MixinUpdate, Ref, Space, diff --git a/plugins/board-resources/src/components/BoardHeader.svelte b/plugins/board-resources/src/components/BoardHeader.svelte index 0d27dedfae..9e6b8343c1 100644 --- a/plugins/board-resources/src/components/BoardHeader.svelte +++ b/plugins/board-resources/src/components/BoardHeader.svelte @@ -18,7 +18,7 @@ space = result[0] }) - function showMenu () { + function showMenu() { const loc = getCurrentResolvedLocation() loc.path[4] = space._id navigate(loc) diff --git a/plugins/board-resources/src/components/BoardMenu.svelte b/plugins/board-resources/src/components/BoardMenu.svelte index 56ff006cc6..26bc9ca735 100644 --- a/plugins/board-resources/src/components/BoardMenu.svelte +++ b/plugins/board-resources/src/components/BoardMenu.svelte @@ -16,11 +16,11 @@ $: query.query(board.class.MenuPage, { pageId: currentPageId }, (result) => { ;[page] = result }) - function setKey (e: CustomEvent) { + function setKey(e: CustomEvent) { trace = [currentPageId, ...trace] currentPageId = e.detail } - function onBack () { + function onBack() { ;[currentPageId = board.menuPageId.Main, ...trace] = trace } diff --git a/plugins/board-resources/src/components/CreateBoard.svelte b/plugins/board-resources/src/components/CreateBoard.svelte index d5cafdcb97..f0584f89c4 100644 --- a/plugins/board-resources/src/components/CreateBoard.svelte +++ b/plugins/board-resources/src/components/CreateBoard.svelte @@ -28,13 +28,13 @@ const description: string = '' let typeId: Ref | undefined - export function canClose (): boolean { + export function canClose(): boolean { return name === '' && typeId !== undefined } const client = getClient() - async function onCreateBoard (): Promise { + async function onCreateBoard(): Promise { if (typeId === undefined) { return } diff --git a/plugins/board-resources/src/components/CreateCard.svelte b/plugins/board-resources/src/components/CreateCard.svelte index 6b3e21545a..b26c77c4f3 100644 --- a/plugins/board-resources/src/components/CreateCard.svelte +++ b/plugins/board-resources/src/components/CreateCard.svelte @@ -35,13 +35,13 @@ const client = getClient() const cardId = generateId() - export function canClose (): boolean { + export function canClose(): boolean { return title !== '' } let kind: Ref | undefined = undefined - async function createCard () { + async function createCard() { const sp = await client.findOne(board.class.Board, { _id: _space as Ref }) if (sp === undefined) { throw new Error('Board not found') diff --git a/plugins/board-resources/src/components/EditCard.svelte b/plugins/board-resources/src/components/EditCard.svelte index 2dfe9d143e..21c1a8fb47 100644 --- a/plugins/board-resources/src/components/EditCard.svelte +++ b/plugins/board-resources/src/components/EditCard.svelte @@ -45,7 +45,7 @@ const allowedCollections = ['labels'] const ignoreKeys = ['isArchived', 'location', 'title', 'description', 'status', 'number', 'assignee', 'identifier'] - function change (field: string, value: any) { + function change(field: string, value: any) { if (object) { updateCard(client, object, field, value) } diff --git a/plugins/board-resources/src/components/KanbanCard.svelte b/plugins/board-resources/src/components/KanbanCard.svelte index 2a1eb06fe2..d18dc3e023 100644 --- a/plugins/board-resources/src/components/KanbanCard.svelte +++ b/plugins/board-resources/src/components/KanbanCard.svelte @@ -39,24 +39,24 @@ const client = getClient() let isEditMode = false - function exitEditMode (): void { + function exitEditMode(): void { isEditMode = false } - function enterEditMode (e: MouseEvent): void { + function enterEditMode(e: MouseEvent): void { isEditMode = true showMenu(e, { object }, exitEditMode) } - function showCard () { + function showCard() { openCardPanel(object) } - function canDropAttachment (e: DragEvent): boolean { + function canDropAttachment(e: DragEvent): boolean { return !!e.dataTransfer?.items && e.dataTransfer?.items.length > 0 } - function updateMembers (e: CustomEvent[]>) { + function updateMembers(e: CustomEvent[]>) { updateCardMembers(object, client, e.detail) } diff --git a/plugins/board-resources/src/components/KanbanView.svelte b/plugins/board-resources/src/components/KanbanView.svelte index 1a5a336d7e..fb4ba6ef98 100644 --- a/plugins/board-resources/src/components/KanbanView.svelte +++ b/plugins/board-resources/src/components/KanbanView.svelte @@ -62,7 +62,7 @@ $: states = getStates(_space, $typeStore, $statusStore.byId) - function castObject (object: any): WithLookup { + function castObject(object: any): WithLookup { return object as WithLookup } diff --git a/plugins/board-resources/src/components/add-card/AddCard.svelte b/plugins/board-resources/src/components/add-card/AddCard.svelte index 2a8fc2a9b4..c33219ed83 100644 --- a/plugins/board-resources/src/components/add-card/AddCard.svelte +++ b/plugins/board-resources/src/components/add-card/AddCard.svelte @@ -27,7 +27,7 @@ let anchorRef: HTMLDivElement const client = getClient() - async function addCard (title: string) { + async function addCard(title: string) { const newCardId = generateId() const sequence = await client.findOne(core.class.Sequence, { attachedTo: board.class.Card }) @@ -53,7 +53,7 @@ return await client.addCollection(board.class.Card, space, space, board.class.Board, 'cards', value, newCardId) } - async function addCards (title: string, checkNewLine: boolean = false) { + async function addCards(title: string, checkNewLine: boolean = false) { onClose() if (!checkNewLine) { return await addCard(title.replace('\n', ' ')) diff --git a/plugins/board-resources/src/components/add-card/AddCardEditor.svelte b/plugins/board-resources/src/components/add-card/AddCardEditor.svelte index 49c4db8cda..00ccbead74 100644 --- a/plugins/board-resources/src/components/add-card/AddCardEditor.svelte +++ b/plugins/board-resources/src/components/add-card/AddCardEditor.svelte @@ -7,7 +7,7 @@ let value = '' - async function addCard (event: CustomEvent) { + async function addCard(event: CustomEvent) { const title = event.detail if (!title || title.trim().length === 0) { return diff --git a/plugins/board-resources/src/components/editor/CardActions.svelte b/plugins/board-resources/src/components/editor/CardActions.svelte index 04e645160b..4ca6f8a3df 100644 --- a/plugins/board-resources/src/components/editor/CardActions.svelte +++ b/plugins/board-resources/src/components/editor/CardActions.svelte @@ -28,7 +28,7 @@ $: store = $statusStore - async function updateState (e: CustomEvent): Promise { + async function updateState(e: CustomEvent): Promise { if (currentState !== undefined) { if (e.detail) { const targetState = store.byType diff --git a/plugins/board-resources/src/components/popups/CardCoverPicker.svelte b/plugins/board-resources/src/components/popups/CardCoverPicker.svelte index 9448e06c8e..3824575a0f 100644 --- a/plugins/board-resources/src/components/popups/CardCoverPicker.svelte +++ b/plugins/board-resources/src/components/popups/CardCoverPicker.svelte @@ -17,14 +17,14 @@ const client = getClient() const dispatch = createEventDispatcher() - const colorGroups = (function chunk (colors: number[]): number[][] { + const colorGroups = (function chunk(colors: number[]): number[][] { return colors.length > 0 ? [colors.slice(0, 5), ...chunk(colors.slice(5))] : [] })(getBoardAvailableColors().map(hexColorToNumber)) - function close () { + function close() { dispatch('close') } - function updateCover () { + function updateCover() { if (!coverColor) { return } @@ -33,7 +33,7 @@ if (object) client.update(object, { cover: newCover }) } - function removeCover () { + function removeCover() { cover = null if (onChange) onChange(cover) else if (object) client.update(object, { cover }) diff --git a/plugins/board-resources/src/components/popups/CopyCard.svelte b/plugins/board-resources/src/components/popups/CopyCard.svelte index ef1e82d971..10c2b9b433 100644 --- a/plugins/board-resources/src/components/popups/CopyCard.svelte +++ b/plugins/board-resources/src/components/popups/CopyCard.svelte @@ -27,7 +27,7 @@ rank: value.rank } - async function copyCard (): Promise { + async function copyCard(): Promise { const newCardId = generateId() const sequence = await client.findOne(core.class.Sequence, { attachedTo: board.class.Card }) @@ -63,14 +63,14 @@ dispatch('close') } - async function invokeValidate ( + async function invokeValidate( action: Resource<(doc: T, client: Client) => Promise> ): Promise { const impl = await getResource(action) return await impl(value, client) } - async function validate (doc: Doc, _class: Ref>): Promise { + async function validate(doc: Doc, _class: Ref>): Promise { const clazz = hierarchy.getClass(_class) const validatorMixin = hierarchy.as(clazz, view.mixin.ObjectValidator) if (validatorMixin?.validator != null) { diff --git a/plugins/board-resources/src/components/popups/DateRangePicker.svelte b/plugins/board-resources/src/components/popups/DateRangePicker.svelte index 1223581d34..d8e4964c0f 100644 --- a/plugins/board-resources/src/components/popups/DateRangePicker.svelte +++ b/plugins/board-resources/src/components/popups/DateRangePicker.svelte @@ -18,7 +18,7 @@ let startDate = value.startDate let dueDate = value.dueDate - function update () { + function update() { const date: DocumentUpdate = {} if (startDate !== undefined) date.startDate = startDate if (dueDate !== undefined) date.dueDate = dueDate diff --git a/plugins/board-resources/src/components/popups/MoveCard.svelte b/plugins/board-resources/src/components/popups/MoveCard.svelte index 9fa8a6871a..7c81e075d1 100644 --- a/plugins/board-resources/src/components/popups/MoveCard.svelte +++ b/plugins/board-resources/src/components/popups/MoveCard.svelte @@ -23,7 +23,7 @@ rank: value.rank } - async function move (): Promise { + async function move(): Promise { const update: DocumentUpdate = {} if (selected.space !== value.space) { @@ -36,14 +36,14 @@ dispatch('close') } - async function invokeValidate ( + async function invokeValidate( action: Resource<(doc: T, client: Client) => Promise> ): Promise { const impl = await getResource(action) return await impl(value, client) } - async function validate (doc: Doc, _class: Ref>): Promise { + async function validate(doc: Doc, _class: Ref>): Promise { const clazz = hierarchy.getClass(_class) const validatorMixin = hierarchy.as(clazz, view.mixin.ObjectValidator) if (validatorMixin?.validator != null) { diff --git a/plugins/calendar-resources/src/components/AddParticipant.svelte b/plugins/calendar-resources/src/components/AddParticipant.svelte index d2ba939481..14aecb5c7e 100644 --- a/plugins/calendar-resources/src/components/AddParticipant.svelte +++ b/plugins/calendar-resources/src/components/AddParticipant.svelte @@ -48,7 +48,7 @@ phTranslate = res }) - function computeSize (t: HTMLInputElement | EventTarget | null) { + function computeSize(t: HTMLInputElement | EventTarget | null) { if (t == null) { return } @@ -78,10 +78,10 @@ computeSize(input) }) - export function focusInput () { + export function focusInput() { input?.focus() } - export function selectInput () { + export function selectInput() { input?.select() } @@ -101,7 +101,7 @@ input.addEventListener('focus', updateFocus, { once: true }) } - export function focus (): void { + export function focus(): void { input.focus() } @@ -119,7 +119,7 @@ $: findCompletions(value, integrations, excluded) - async function findCompletions ( + async function findCompletions( val: string | undefined, integrations: Integration[], excluded: Ref[] @@ -161,7 +161,7 @@ } } - function addGuest (e: MouseEvent) { + function addGuest(e: MouseEvent) { showPopup(CreateGuest, {}, undefined, (res) => { if (res) { value = '' diff --git a/plugins/calendar-resources/src/components/ByDateSelector.svelte b/plugins/calendar-resources/src/components/ByDateSelector.svelte index 3f09e5d82f..109d720006 100644 --- a/plugins/calendar-resources/src/components/ByDateSelector.svelte +++ b/plugins/calendar-resources/src/components/ByDateSelector.svelte @@ -18,7 +18,7 @@ export let disabled: boolean export let selected: number[] - function onSelect (val: number): void { + function onSelect(val: number): void { if (disabled) return if (selected.includes(val)) { selected = selected.filter((v) => v !== val) diff --git a/plugins/calendar-resources/src/components/CalDavAccess.svelte b/plugins/calendar-resources/src/components/CalDavAccess.svelte index 25db31a9fa..e49b4dbf5a 100644 --- a/plugins/calendar-resources/src/components/CalDavAccess.svelte +++ b/plugins/calendar-resources/src/components/CalDavAccess.svelte @@ -46,7 +46,7 @@ ((!wasAccessEnabled && accessEnabled && selectedSocialId != null) || (wasAccessEnabled && !accessEnabled)) ) - function generateRandomPassword (length = 24): string { + function generateRandomPassword(length = 24): string { const array = new Uint8Array(length) crypto.getRandomValues(array) const numbers: number[] = [] @@ -97,7 +97,7 @@ } }) - async function save (): Promise { + async function save(): Promise { loading = true try { if (selectedSocialId == null) { @@ -158,7 +158,7 @@ } } - async function copyServer (): Promise { + async function copyServer(): Promise { await copyTextToClipboard(serverUrl ?? '') isServerUrlCopied = true clearTimeout(serverUrlCopyTimeout) @@ -167,7 +167,7 @@ }, 2000) } - async function copyAccount (): Promise { + async function copyAccount(): Promise { await copyTextToClipboard(selectedSocialId?.value ?? '') isAccountCopied = true clearTimeout(accountCopyTimeout) @@ -176,7 +176,7 @@ }, 2000) } - async function copyPassword (): Promise { + async function copyPassword(): Promise { await copyTextToClipboard(password) isPasswordCopied = true clearTimeout(passwordCopyTimeout) diff --git a/plugins/calendar-resources/src/components/CalendarSelector.svelte b/plugins/calendar-resources/src/components/CalendarSelector.svelte index 948f83c0d1..72b6179220 100644 --- a/plugins/calendar-resources/src/components/CalendarSelector.svelte +++ b/plugins/calendar-resources/src/components/CalendarSelector.svelte @@ -38,7 +38,7 @@ setCalendar(calendars, preference) }) - function setCalendar (calendars: Calendar[], primary: PrimaryCalendar | undefined): void { + function setCalendar(calendars: Calendar[], primary: PrimaryCalendar | undefined): void { if (value) return if (!calendarsLoaded || !prefsLoaded) return const target = getPrimaryCalendar(calendars, primary, getCurrentAccount().uuid) @@ -54,7 +54,7 @@ $: selected = value !== undefined ? items.find((p) => p._id === value) : undefined - function change (id: Ref) { + function change(id: Ref) { if (value !== id) { dispatch('change', { _id: id }) value = id diff --git a/plugins/calendar-resources/src/components/CalendarSettings.svelte b/plugins/calendar-resources/src/components/CalendarSettings.svelte index cefee8447c..a37dfb938b 100644 --- a/plugins/calendar-resources/src/components/CalendarSettings.svelte +++ b/plugins/calendar-resources/src/components/CalendarSettings.svelte @@ -32,14 +32,14 @@ return (c as ExternalCalendar).externalUser ?? 'HULY' }) - async function changeHidden (calendar: Calendar, value: boolean): Promise { + async function changeHidden(calendar: Calendar, value: boolean): Promise { if (value === undefined) return await client.update(calendar, { hidden: value }) } - async function changeVisibility (calendar: Calendar, value: Visibility): Promise { + async function changeVisibility(calendar: Calendar, value: Visibility): Promise { if (value === undefined) return await client.update(calendar, { visibility: value @@ -59,12 +59,12 @@ setPrimaryCalendar(calendars, pref) }) - function setPrimaryCalendar (calendars: Calendar[], pref: PrimaryCalendar | undefined): void { + function setPrimaryCalendar(calendars: Calendar[], pref: PrimaryCalendar | undefined): void { if (!prefsLoaded || !calendarsLoaded) return primaryCalendar = getPrimaryCalendar(calendars, pref, getCurrentAccount().uuid) } - async function changePrimary (e: CustomEvent): Promise { + async function changePrimary(e: CustomEvent): Promise { if (e.detail === undefined) return if (pref !== undefined) { if (pref.attachedTo === e.detail._id) return diff --git a/plugins/calendar-resources/src/components/CalendarView.svelte b/plugins/calendar-resources/src/components/CalendarView.svelte index 676584fbe6..71305895cc 100644 --- a/plugins/calendar-resources/src/components/CalendarView.svelte +++ b/plugins/calendar-resources/src/components/CalendarView.svelte @@ -73,7 +73,7 @@ let visible: Event[] = [] let objects: Event[] = [] - function getFrom (date: Date, mode: CalendarMode): Timestamp { + function getFrom(date: Date, mode: CalendarMode): Timestamp { switch (mode) { case CalendarMode.Days: { return new Date(date).setHours(0, 0, 0, 0) @@ -93,7 +93,7 @@ } } - function getTo (date: Date, mode: CalendarMode): Timestamp { + function getTo(date: Date, mode: CalendarMode): Timestamp { switch (mode) { case CalendarMode.Days: { return new Date(date).setDate(date.getDate() + 4) @@ -127,7 +127,7 @@ const q = createQuery() - function update ( + function update( _class: Ref>, query: DocumentQuery | undefined, calendars: Calendar[], @@ -146,7 +146,7 @@ $: visible = hidePrivateEvents(raw, $calendarByIdStore) $: objects = getAllEvents(visible, from, to) - function inRange (start: Date, end: Date, startPeriod: Date, period: 'day' | 'hour'): boolean { + function inRange(start: Date, end: Date, startPeriod: Date, period: 'day' | 'hour'): boolean { const endPeriod = period === 'day' ? new Date(startPeriod).setDate(startPeriod.getDate() + 1) @@ -157,7 +157,7 @@ return true } - function findEvents (events: Event[], date: Date, minutes = false): Event[] { + function findEvents(events: Event[], date: Date, minutes = false): Event[] { return events.filter((it) => { let d1 = new Date(it.date) let d2 = new Date(it.dueDate ?? it.date) @@ -171,7 +171,7 @@ }) } - function inc (val: number): void { + function inc(val: number): void { if (val === 0) { currentDate = new Date() dayCalendar.scrollToTime(currentDate) @@ -202,20 +202,20 @@ } currentDate = currentDate } - function getMonthName (date: Date): string { + function getMonthName(date: Date): string { return new Intl.DateTimeFormat('default', { month: 'long' }).format(date) } - function showCreateDialog (date: Date, withTime: boolean) { + function showCreateDialog(date: Date, withTime: boolean) { if (createComponent === undefined) { return } showPopup(createComponent, { date, withTime }, 'top') } - function getDdItem (mode: CalendarMode) { + function getDdItem(mode: CalendarMode) { switch (mode) { case CalendarMode.Day: return { id: 'day', label: calendar.string.ModeDay, mode: CalendarMode.Day } @@ -230,7 +230,7 @@ } } - function getDdItems (allowedModes: CalendarMode[]): void { + function getDdItems(allowedModes: CalendarMode[]): void { ddItems = [] for (const mode of allowedModes) { ddItems.push(getDdItem(mode)) @@ -240,7 +240,7 @@ const dragItemId = 'drag_item' as Ref - function dragEnter (e: CustomEvent): void { + function dragEnter(e: CustomEvent): void { if (dragItem !== undefined) { const current = raw.find((p) => p._id === dragItemId) if (current !== undefined) { @@ -278,7 +278,7 @@ $: clear(dragItem) - function clear (dragItem: Doc | undefined) { + function clear(dragItem: Doc | undefined) { if (dragItem === undefined) { raw = raw.filter((p) => p._id !== dragItemId) visible = hidePrivateEvents(raw, $calendarByIdStore) @@ -301,15 +301,15 @@ { id: 'year', label: calendar.string.ModeYear, mode: CalendarMode.Year } ] - function handleToday (): void { + function handleToday(): void { inc(0) } - function handleBack (): void { + function handleBack(): void { inc(-1) } - function handleForward (): void { + function handleForward(): void { inc(1) } diff --git a/plugins/calendar-resources/src/components/CreateEvent.svelte b/plugins/calendar-resources/src/components/CreateEvent.svelte index c2a8295f18..1bfa63af6b 100644 --- a/plugins/calendar-resources/src/components/CreateEvent.svelte +++ b/plugins/calendar-resources/src/components/CreateEvent.svelte @@ -99,11 +99,11 @@ const dispatch = createEventDispatcher() const client = getClient() - export function canClose (): boolean { + export function canClose(): boolean { return title !== undefined && title.trim().length === 0 && participants.length === 0 } - async function saveEvent () { + async function saveEvent() { let date: number | undefined if (startDate != null) date = startDate if (date === undefined) return @@ -176,7 +176,7 @@ dispatch('close') } - async function allDayChangeHandler () { + async function allDayChangeHandler() { if (allDay) { startDate = new Date(startDate).setHours(0, 0, 0, 0) if (dueDate - startDate < allDayDuration) dueDate = allDayDuration + startDate @@ -186,7 +186,7 @@ } } - function setRecurrance () { + function setRecurrance() { showPopup(ReccurancePopup, { rules, startDate }, undefined, (res) => { if (res) { rules = res diff --git a/plugins/calendar-resources/src/components/CreateReminder.svelte b/plugins/calendar-resources/src/components/CreateReminder.svelte index 5df73095ff..529d9ef593 100644 --- a/plugins/calendar-resources/src/components/CreateReminder.svelte +++ b/plugins/calendar-resources/src/components/CreateReminder.svelte @@ -36,11 +36,11 @@ const dispatch = createEventDispatcher() const client = getClient() - export function canClose (): boolean { + export function canClose(): boolean { return _title !== undefined && _title.trim().length === 0 && participants.length === 0 } - async function saveReminder () { + async function saveReminder() { let date: number | undefined if (value != null) date = value if (date === undefined) return diff --git a/plugins/calendar-resources/src/components/DateEditor.svelte b/plugins/calendar-resources/src/components/DateEditor.svelte index 7ab9bf9da4..cb9f33c0b7 100644 --- a/plugins/calendar-resources/src/components/DateEditor.svelte +++ b/plugins/calendar-resources/src/components/DateEditor.svelte @@ -46,7 +46,7 @@ $: currentDate = new Date(date) let tib: TimeInputBox - function timeClick (e: MouseEvent & { currentTarget: EventTarget & HTMLElement }): void { + function timeClick(e: MouseEvent & { currentTarget: EventTarget & HTMLElement }): void { if (disabled) { return } @@ -65,7 +65,7 @@ } else tib.focused(e.offsetX <= e.currentTarget.clientWidth / 2 ? 'hour' : 'min') } - function dateClick (e: MouseEvent): void { + function dateClick(e: MouseEvent): void { if (disabled) { return } diff --git a/plugins/calendar-resources/src/components/DateTimePresenter.svelte b/plugins/calendar-resources/src/components/DateTimePresenter.svelte index 3cd5a6894c..654e79055f 100644 --- a/plugins/calendar-resources/src/components/DateTimePresenter.svelte +++ b/plugins/calendar-resources/src/components/DateTimePresenter.svelte @@ -35,7 +35,7 @@ } } - async function formatDueDate (interval: number): Promise { + async function formatDueDate(interval: number): Promise { let passed = interval if (interval < 0) passed = 0 if (passed < HOUR) { diff --git a/plugins/calendar-resources/src/components/DayCalendar.svelte b/plugins/calendar-resources/src/components/DayCalendar.svelte index 5f821af4ae..6e2718ff08 100644 --- a/plugins/calendar-resources/src/components/DayCalendar.svelte +++ b/plugins/calendar-resources/src/components/DayCalendar.svelte @@ -70,7 +70,7 @@ $: checkToday($ticker) - function checkToday (now: number): void { + function checkToday(now: number): void { if (!areDatesEqual(todayDate, new Date())) { todayDate = new Date() } @@ -91,7 +91,7 @@ const rem = (n: number): number => n * fontSize const initDisplayedDaysCount = displayedDaysCount - export function getCalendarRect (): DOMRect | undefined { + export function getCalendarRect(): DOMRect | undefined { return container ? calendarRect : undefined } @@ -641,7 +641,7 @@ let originDueDate: Timestamp = 0 let scrollTimer: any = null - async function updateHandler (event: Event) { + async function updateHandler(event: Event) { const update: DocumentUpdate = {} if (originDate !== event.date) update.date = event.date if (originDueDate !== event.dueDate) update.dueDate = event.dueDate @@ -662,13 +662,13 @@ } } } - async function mouseUpElement (e: MouseEvent): Promise { + async function mouseUpElement(e: MouseEvent): Promise { window.removeEventListener('mouseup', mouseUpElement as any) const event = events.find((ev) => ev._id === resizeId) if (event !== undefined) await updateHandler(event) resizeId = directionResize = null } - function mouseDownElement (e: MouseEvent, event: Event, direction: 'top' | 'bottom'): void { + function mouseDownElement(e: MouseEvent, event: Event, direction: 'top' | 'bottom'): void { if (e.buttons !== 1) return e.stopPropagation() closeTooltip() @@ -679,7 +679,7 @@ containerRect = scroller.getBoundingClientRect() window.addEventListener('mouseup', mouseUpElement as any) } - function mouseMoveElement ( + function mouseMoveElement( e: MouseEvent & { currentTarget: EventTarget & HTMLDivElement }, day: Date, hour: number @@ -719,7 +719,7 @@ const transparentImage = new Image(1, 1) transparentImage.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7' - function dragStartElement (e: DragEvent & { currentTarget: EventTarget & HTMLDivElement }, event: Event): void { + function dragStartElement(e: DragEvent & { currentTarget: EventTarget & HTMLDivElement }, event: Event): void { if (isReadOnly(event) || event.allDay) return if (e.dataTransfer) { e.dataTransfer.setDragImage(transparentImage, 0, 0) @@ -733,13 +733,13 @@ setTimeout(() => (dragId = event._id), 50) } - async function dragEndElement (e: DragEvent) { + async function dragEndElement(e: DragEvent) { const event = events.find((ev) => ev._id === dragId) if (event !== undefined) await updateHandler(event) dragId = null } - function dragDrop (e: DragEvent, day: Date, hourOfDay: number): void { + function dragDrop(e: DragEvent, day: Date, hourOfDay: number): void { const hour = hourOfDay + startHour const newTime = new Date(day).setHours(hour, getExactly(e, true), 0, 0) if (dragId) { @@ -778,7 +778,7 @@ dragOnOld = null } - function dragOver (e: DragEvent, day: Date, hourOfDay: number): void { + function dragOver(e: DragEvent, day: Date, hourOfDay: number): void { if (e.dataTransfer) { e.dataTransfer.setDragImage(transparentImage, 0, 0) e.dataTransfer.dropEffect = 'move' diff --git a/plugins/calendar-resources/src/components/DocReminder.svelte b/plugins/calendar-resources/src/components/DocReminder.svelte index 06a7d032ca..4947910ecb 100644 --- a/plugins/calendar-resources/src/components/DocReminder.svelte +++ b/plugins/calendar-resources/src/components/DocReminder.svelte @@ -30,7 +30,7 @@ $: isEvent = hierarchy.isDerived(value._class, calendar.class.Event) - async function click (ev: Event): Promise { + async function click(ev: Event): Promise { if (isEvent) { showPopup(SaveEventReminder, { objectId: value._id, objectClass: value._class }, ev.target as HTMLElement) } else { diff --git a/plugins/calendar-resources/src/components/DocRemindersPopup.svelte b/plugins/calendar-resources/src/components/DocRemindersPopup.svelte index fc9eba1e8e..29910e7cd6 100644 --- a/plugins/calendar-resources/src/components/DocRemindersPopup.svelte +++ b/plugins/calendar-resources/src/components/DocRemindersPopup.svelte @@ -40,7 +40,7 @@ } ) - function click (ev: MouseEvent): void { + function click(ev: MouseEvent): void { showPopup(CreateReminder, { attachedTo, attachedToClass, title }, ev.target as HTMLElement) } diff --git a/plugins/calendar-resources/src/components/EditEvent.svelte b/plugins/calendar-resources/src/components/EditEvent.svelte index d5da070439..0376cd4bb8 100644 --- a/plugins/calendar-resources/src/components/EditEvent.svelte +++ b/plugins/calendar-resources/src/components/EditEvent.svelte @@ -70,11 +70,11 @@ const dispatch = createEventDispatcher() const client = getClient() - export function canClose (): boolean { + export function canClose(): boolean { return title !== undefined && title.trim().length === 0 && participants.length === 0 } - async function saveEvent () { + async function saveEvent() { if (readOnly) { return } @@ -132,7 +132,7 @@ dispatch('close') } - async function allDayChangeHandler () { + async function allDayChangeHandler() { if (allDay) { startDate = new Date(startDate).setHours(0, 0, 0, 0) if (dueDate - startDate < allDayDuration) dueDate = allDayDuration + startDate @@ -142,7 +142,7 @@ } } - function setRecurrance () { + function setRecurrance() { if (readOnly) { return } diff --git a/plugins/calendar-resources/src/components/EventElement.svelte b/plugins/calendar-resources/src/components/EventElement.svelte index 413e76126e..2e2bcd6050 100644 --- a/plugins/calendar-resources/src/components/EventElement.svelte +++ b/plugins/calendar-resources/src/components/EventElement.svelte @@ -30,7 +30,7 @@ $: narrow = event.dueDate - event.date < MILLISECONDS_IN_MINUTE * 25 $: empty = size.width < 44 - function click () { + function click() { if (visible) { const editor = hierarchy.classHierarchyMixin(event._class, view.mixin.ObjectEditor) if (editor?.editor !== undefined) { @@ -50,7 +50,7 @@ $: visible = isVisible(event, $calendarByIdStore) - function contextMenu (e: MouseEvent): void { + function contextMenu(e: MouseEvent): void { showMenu(e, { object: event }) } diff --git a/plugins/calendar-resources/src/components/EventParticipants.svelte b/plugins/calendar-resources/src/components/EventParticipants.svelte index 0e8024ba17..3d056e89b2 100644 --- a/plugins/calendar-resources/src/components/EventParticipants.svelte +++ b/plugins/calendar-resources/src/components/EventParticipants.svelte @@ -50,7 +50,7 @@ ? calendar.string.AddParticipants : calendar.string.Participants - function removeParticipant (_id: Ref): void { + function removeParticipant(_id: Ref): void { const index = participants.findIndex((p) => p === _id) if (index !== -1) { participants.splice(index, 1) @@ -58,7 +58,7 @@ } } - function removeExtParticipant (val: string): void { + function removeExtParticipant(val: string): void { const index = externalParticipants.findIndex((p) => p === val) if (index !== -1) { externalParticipants.splice(index, 1) @@ -66,14 +66,14 @@ } } - function ref (e: CustomEvent>) { + function ref(e: CustomEvent>) { if (e.detail) { participants.push(e.detail) participants = participants } } - function enter (e: CustomEvent) { + function enter(e: CustomEvent) { if (e.detail && e.detail !== '') { if (!externalParticipants.includes(e.detail)) { externalParticipants.push(e.detail) diff --git a/plugins/calendar-resources/src/components/EventPresenter.svelte b/plugins/calendar-resources/src/components/EventPresenter.svelte index 08d5cb0683..79f65dcdb4 100644 --- a/plugins/calendar-resources/src/components/EventPresenter.svelte +++ b/plugins/calendar-resources/src/components/EventPresenter.svelte @@ -24,7 +24,7 @@ export let hideDetails: boolean = false export let inline: boolean = false - function click (): void { + function click(): void { if (!hideDetails) { const client = getClient() const hierarchy = client.getHierarchy() diff --git a/plugins/calendar-resources/src/components/EventReminders.svelte b/plugins/calendar-resources/src/components/EventReminders.svelte index bee06f3b64..233167ba7a 100644 --- a/plugins/calendar-resources/src/components/EventReminders.svelte +++ b/plugins/calendar-resources/src/components/EventReminders.svelte @@ -25,13 +25,13 @@ const maxReminders: number = 4 let shown: boolean = false - function addReminder (e: MouseEvent) { + function addReminder(e: MouseEvent) { showPopup(ReminderPopup, { value: 0 }, eventToHTMLElement(e), (event) => { if (event) reminders = [...reminders, event] }) } - function edit (e: MouseEvent, value: number, index: number) { + function edit(e: MouseEvent, value: number, index: number) { showPopup(ReminderPopup, { value }, eventToHTMLElement(e), (event) => { if (event) { reminders = [...reminders.slice(0, index), event, ...reminders.slice(index + 1)] @@ -39,7 +39,7 @@ }) } - function remove (index: number) { + function remove(index: number) { reminders = [...reminders.slice(0, index), ...reminders.slice(index + 1)] } diff --git a/plugins/calendar-resources/src/components/EventTimeEditor.svelte b/plugins/calendar-resources/src/components/EventTimeEditor.svelte index 6c207ca2ea..9526b92bc0 100644 --- a/plugins/calendar-resources/src/components/EventTimeEditor.svelte +++ b/plugins/calendar-resources/src/components/EventTimeEditor.svelte @@ -33,13 +33,13 @@ const allDayDuration = 24 * 60 * 60 * 1000 - 1 const dispatch = createEventDispatcher() - function dateChange () { + function dateChange() { startDate = allDay ? new Date(startDate).setHours(0, 0, 0, 0) : startDate dueDate = startDate + (allDay ? allDayDuration : diff) dispatch('change', { startDate, dueDate }) } - function dueChange () { + function dueChange() { const newDiff = dueDate - startDate if (newDiff > 0) { dueDate = allDay ? new Date(dueDate).setHours(23, 59, 59, 999) : dueDate diff --git a/plugins/calendar-resources/src/components/EventTimeExtraButton.svelte b/plugins/calendar-resources/src/components/EventTimeExtraButton.svelte index cc3298a102..f5676f9e4d 100644 --- a/plugins/calendar-resources/src/components/EventTimeExtraButton.svelte +++ b/plugins/calendar-resources/src/components/EventTimeExtraButton.svelte @@ -41,7 +41,7 @@ const dispatch = createEventDispatcher() - function showTimezoneSelector (e: MouseEvent) { + function showTimezoneSelector(e: MouseEvent) { const timeZones: TimeZone[] = [] const tzs: string[] = [] if (!Intl.supportedValuesOf) console.log('Your browser does not support Intl.supportedValuesOf().') diff --git a/plugins/calendar-resources/src/components/Events.svelte b/plugins/calendar-resources/src/components/Events.svelte index 3f6c2dcc9d..0d3ed00cb7 100644 --- a/plugins/calendar-resources/src/components/Events.svelte +++ b/plugins/calendar-resources/src/components/Events.svelte @@ -47,13 +47,13 @@ let viewlets: WithLookup[] = [] - function updateResultQuery (search: string): void { + function updateResultQuery(search: string): void { resultQuery = search === '' ? { ...query } : { ...query, $search: search } } $: updateResultQuery(search) - function showCreateDialog (): void { + function showCreateDialog(): void { if (createComponent === undefined) { return } diff --git a/plugins/calendar-resources/src/components/IntegrationConfigure.svelte b/plugins/calendar-resources/src/components/IntegrationConfigure.svelte index 8539a3a4ef..3adfbeba25 100644 --- a/plugins/calendar-resources/src/components/IntegrationConfigure.svelte +++ b/plugins/calendar-resources/src/components/IntegrationConfigure.svelte @@ -39,7 +39,7 @@ } ) - async function update (calendar: Calendar, value: boolean) { + async function update(calendar: Calendar, value: boolean) { await client.update(calendar, { hidden: !value }) diff --git a/plugins/calendar-resources/src/components/IntegrationConnect.svelte b/plugins/calendar-resources/src/components/IntegrationConnect.svelte index 3d5b617661..686a89d0f7 100644 --- a/plugins/calendar-resources/src/components/IntegrationConnect.svelte +++ b/plugins/calendar-resources/src/components/IntegrationConnect.svelte @@ -26,7 +26,7 @@ let connecting = false const calendarUrl = getMetadata(calendar.metadata.CalendarServiceURL) ?? '' - async function sendRequest (): Promise { + async function sendRequest(): Promise { connecting = true const link = concatLink(calendarUrl, '/signin') const url = new URL(link) diff --git a/plugins/calendar-resources/src/components/LocationEditor.svelte b/plugins/calendar-resources/src/components/LocationEditor.svelte index 0640580991..cbea513467 100644 --- a/plugins/calendar-resources/src/components/LocationEditor.svelte +++ b/plugins/calendar-resources/src/components/LocationEditor.svelte @@ -6,13 +6,13 @@ export let focusIndex = 1 export let readOnly: boolean = false - function isLink (value?: string | null): boolean { + function isLink(value?: string | null): boolean { if (value == null) return false const url = parseURL(value) return url.startsWith('http://') || url.startsWith('https://') } - function open () { + function open() { if (value == null) return const url = parseURL(value) if (url.startsWith('http://') || url.startsWith('https://')) { diff --git a/plugins/calendar-resources/src/components/MonthSelector.svelte b/plugins/calendar-resources/src/components/MonthSelector.svelte index 597b1ee716..5f25fb6301 100644 --- a/plugins/calendar-resources/src/components/MonthSelector.svelte +++ b/plugins/calendar-resources/src/components/MonthSelector.svelte @@ -17,7 +17,7 @@ export let selected: number[] - function onSelect (val: number): void { + function onSelect(val: number): void { if (selected.includes(val)) { selected = selected.filter((v) => v !== val) } else { diff --git a/plugins/calendar-resources/src/components/ParticipantsPopup.svelte b/plugins/calendar-resources/src/components/ParticipantsPopup.svelte index 173cfb451f..2154a4f8fc 100644 --- a/plugins/calendar-resources/src/components/ParticipantsPopup.svelte +++ b/plugins/calendar-resources/src/components/ParticipantsPopup.svelte @@ -23,14 +23,14 @@ const dispatch = createEventDispatcher() - function select (participant: Ref): void { + function select(participant: Ref): void { dispatch('close', participant) } let list: ListView const selection = 0 - function onKeyDown (key: KeyboardEvent): boolean { + function onKeyDown(key: KeyboardEvent): boolean { if (key.key === 'ArrowDown') { key.stopPropagation() key.preventDefault() diff --git a/plugins/calendar-resources/src/components/PersonsPresenter.svelte b/plugins/calendar-resources/src/components/PersonsPresenter.svelte index 5315a89b25..fef85edf17 100644 --- a/plugins/calendar-resources/src/components/PersonsPresenter.svelte +++ b/plugins/calendar-resources/src/components/PersonsPresenter.svelte @@ -27,7 +27,7 @@ let persons: Person[] = [] $: persons = Array.isArray(value) ? value : [value] - async function onClick (p: Person) { + async function onClick(p: Person) { openDoc(getClient().getHierarchy(), p) } const client = getClient() diff --git a/plugins/calendar-resources/src/components/RRulePresenter.svelte b/plugins/calendar-resources/src/components/RRulePresenter.svelte index 1701db5837..7b55f4fb32 100644 --- a/plugins/calendar-resources/src/components/RRulePresenter.svelte +++ b/plugins/calendar-resources/src/components/RRulePresenter.svelte @@ -39,7 +39,7 @@ SU: calendar.string.SundayShort } - async function getDays (days: string[], lang: string): Promise { + async function getDays(days: string[], lang: string): Promise { let result = '' for (const day of Object.keys(weekdays)) { if (days.includes(day)) { diff --git a/plugins/calendar-resources/src/components/ReccurancePopup.svelte b/plugins/calendar-resources/src/components/ReccurancePopup.svelte index 67cdb3bcb6..5012e4180a 100644 --- a/plugins/calendar-resources/src/components/ReccurancePopup.svelte +++ b/plugins/calendar-resources/src/components/ReccurancePopup.svelte @@ -75,7 +75,7 @@ } ] as DropdownIntlItem[] - function save () { + function save() { const res: RecurringRule = { freq: periodType, interval @@ -111,7 +111,7 @@ let selectedWeekdays: string[] = rules[0]?.byDay ?? [getWeekday(new Date(startDate))] - function weekdayClick (day: string) { + function weekdayClick(day: string) { const index = selectedWeekdays.findIndex((p) => p === day) if (index !== -1) { selectedWeekdays.splice(index, 1) @@ -121,7 +121,7 @@ selectedWeekdays = selectedWeekdays } - function isActive (day: string, selected: string[]): boolean { + function isActive(day: string, selected: string[]): boolean { return selectedWeekdays.includes(day) } diff --git a/plugins/calendar-resources/src/components/ReminderPopup.svelte b/plugins/calendar-resources/src/components/ReminderPopup.svelte index e41f31b6b4..8632e6eeb5 100644 --- a/plugins/calendar-resources/src/components/ReminderPopup.svelte +++ b/plugins/calendar-resources/src/components/ReminderPopup.svelte @@ -18,7 +18,7 @@ export let value: number - export function canClose () { + export function canClose() { return true } diff --git a/plugins/calendar-resources/src/components/ReminderPresenter.svelte b/plugins/calendar-resources/src/components/ReminderPresenter.svelte index 6f015cb025..d9e0dce799 100644 --- a/plugins/calendar-resources/src/components/ReminderPresenter.svelte +++ b/plugins/calendar-resources/src/components/ReminderPresenter.svelte @@ -20,7 +20,7 @@ export let value: Event - function click (): void { + function click(): void { showPanel(view.component.EditDoc, value._id, value._class, 'content') } diff --git a/plugins/calendar-resources/src/components/SaveEventReminder.svelte b/plugins/calendar-resources/src/components/SaveEventReminder.svelte index 5b6fe8f5ef..ab92894dd4 100644 --- a/plugins/calendar-resources/src/components/SaveEventReminder.svelte +++ b/plugins/calendar-resources/src/components/SaveEventReminder.svelte @@ -33,11 +33,11 @@ const dispatch = createEventDispatcher() - export function canClose (): boolean { + export function canClose(): boolean { return true } - async function saveReminder () { + async function saveReminder() { if (event === undefined || (value.shift === undefined && value.date === undefined)) return const shift = value.date !== undefined ? value.date - event.date : value.shift if (shift === undefined) { diff --git a/plugins/calendar-resources/src/components/ScheduleEditor.svelte b/plugins/calendar-resources/src/components/ScheduleEditor.svelte index d2894cddc7..5c64256eb8 100644 --- a/plugins/calendar-resources/src/components/ScheduleEditor.svelte +++ b/plugins/calendar-resources/src/components/ScheduleEditor.svelte @@ -93,7 +93,7 @@ $: formatIntervalVariants() $: makeEditableAvailability() - function formatDurationVariants (): void { + function formatDurationVariants(): void { ;[15, 30, 45, 60, 90, 120].forEach((minutes) => { const msec = minutes * 60_000 formatDuration(msec, $themeStore.language) @@ -106,7 +106,7 @@ }) } - function formatIntervalVariants (): void { + function formatIntervalVariants(): void { ;[0, 5, 10, 15, 30, 45, 60].forEach((minutes) => { const msec = minutes * 60_000 formatDuration(msec, $themeStore.language) @@ -119,7 +119,7 @@ }) } - function defaultAvailability (): { start: Date, end: Date } { + function defaultAvailability(): { start: Date, end: Date } { const start = new Date() start.setHours(9, 0, 0, 0) const end = new Date() @@ -127,7 +127,7 @@ return { start, end } } - function makeEditableAvailability (): void { + function makeEditableAvailability(): void { const offset = new Date() offset.setHours(0, 0, 0, 0) availabilityEditOffset = offset.getTime() @@ -149,7 +149,7 @@ } } - function getStorableAvailability (): ScheduleAvailability { + function getStorableAvailability(): ScheduleAvailability { const result: ScheduleAvailability = {} for (let i = 0; i < 7; i++) { const periods = availability[i] ?? [] @@ -166,7 +166,7 @@ return result } - function formatMeetingDuration (duration: number): void { + function formatMeetingDuration(duration: number): void { formatDuration(duration, $themeStore.language) .then((res) => { formattedMeetingDuration = res @@ -176,7 +176,7 @@ }) } - function formatMeetingInterval (duration: number): void { + function formatMeetingInterval(duration: number): void { formatDuration(duration, $themeStore.language) .then((res) => { formattedMeetingInterval = res @@ -186,11 +186,11 @@ }) } - export function canClose (): boolean { + export function canClose(): boolean { return title === '' } - async function saveSchedule (): Promise { + async function saveSchedule(): Promise { if (schedule === undefined) { const _id = generateId() const currentUser = getCurrentEmployee() @@ -221,7 +221,7 @@ dispatch('close') } - function showDurationVariants (ev: MouseEvent): void { + function showDurationVariants(ev: MouseEvent): void { durationVariants.sort((a, b) => a.msec - b.msec) showPopup( SelectPopup, @@ -242,7 +242,7 @@ ) } - function showIntervalVariants (ev: MouseEvent): void { + function showIntervalVariants(ev: MouseEvent): void { intervalVariants.sort((a, b) => a.msec - b.msec) showPopup( SelectPopup, @@ -264,7 +264,7 @@ ) } - function getWeekDayNames (): { weekDay: number, dayName: string }[] { + function getWeekDayNames(): { weekDay: number, dayName: string }[] { const today = new Date() const offset = 0 + $deviceInfo.firstDayOfWeek - today.getDay() const startDate = today.getTime() + 86_400_000 * offset diff --git a/plugins/calendar-resources/src/components/ScheduleNavSection.svelte b/plugins/calendar-resources/src/components/ScheduleNavSection.svelte index 20168094ea..3c71fdee5b 100644 --- a/plugins/calendar-resources/src/components/ScheduleNavSection.svelte +++ b/plugins/calendar-resources/src/components/ScheduleNavSection.svelte @@ -51,7 +51,7 @@ } ) - async function getScheduleListActions (): Promise { + async function getScheduleListActions(): Promise { return [ { icon: IconAdd, @@ -64,7 +64,7 @@ ] } - function deleteSchedule (schedule: Schedule): void { + function deleteSchedule(schedule: Schedule): void { showPopup( MessageBox, { @@ -83,7 +83,7 @@ ) } - function shareLink (schedule: Schedule): void { + function shareLink(schedule: Schedule): void { const ws = getCurrentWorkspaceUrl() const link = `${scheduleUrl}/${ws}/${schedule._id}` showPopup( diff --git a/plugins/calendar-resources/src/components/SetPosSelector.svelte b/plugins/calendar-resources/src/components/SetPosSelector.svelte index c4c3fe6ab6..7189f37949 100644 --- a/plugins/calendar-resources/src/components/SetPosSelector.svelte +++ b/plugins/calendar-resources/src/components/SetPosSelector.svelte @@ -96,7 +96,7 @@ $: selectedByDay = byDayItems.find((p) => p.id === setPos.byDay.join(','))?.id ?? 'SU,MO,TU,WE,TH,FR,SA' - function byDaySelect (e: CustomEvent) { + function byDaySelect(e: CustomEvent) { const val = e.detail if (val !== undefined) { setPos.byDay = val.split(',') diff --git a/plugins/calendar-resources/src/components/TimeZoneSelector.svelte b/plugins/calendar-resources/src/components/TimeZoneSelector.svelte index 7f03e16717..b8e1c3bb9a 100644 --- a/plugins/calendar-resources/src/components/TimeZoneSelector.svelte +++ b/plugins/calendar-resources/src/components/TimeZoneSelector.svelte @@ -28,7 +28,7 @@ export let disabled: boolean = false export let flex: string | undefined = undefined - function open (e: MouseEvent) { + function open(e: MouseEvent) { if (disabled) { return } diff --git a/plugins/calendar-resources/src/components/VisibilityEditor.svelte b/plugins/calendar-resources/src/components/VisibilityEditor.svelte index edad997be2..5fb5b21154 100644 --- a/plugins/calendar-resources/src/components/VisibilityEditor.svelte +++ b/plugins/calendar-resources/src/components/VisibilityEditor.svelte @@ -57,14 +57,14 @@ $: selected = value !== undefined ? items.find((item) => item.id === value) : undefined - function change (val: Visibility): void { + function change(val: Visibility): void { if (value !== val) { dispatch('change', val) value = val } } - function openPopup (ev: MouseEvent): void { + function openPopup(ev: MouseEvent): void { if (!opened) { opened = true closeTooltip() diff --git a/plugins/chunter-resources/src/components/Channel.svelte b/plugins/chunter-resources/src/components/Channel.svelte index 04af876efc..e40c671618 100644 --- a/plugins/chunter-resources/src/components/Channel.svelte +++ b/plugins/chunter-resources/src/components/Channel.svelte @@ -70,7 +70,7 @@ $: void updateDataProvider(object._id, selectedMessageId) - async function updateDataProvider (attachedTo: Ref, selectedMessageId?: Ref): Promise { + async function updateDataProvider(attachedTo: Ref, selectedMessageId?: Ref): Promise { if (dataProvider === undefined) { const ctx = context ?? diff --git a/plugins/chunter-resources/src/components/ChannelHeader.svelte b/plugins/chunter-resources/src/components/ChannelHeader.svelte index 79cc356ea9..8d5ddc9fc8 100644 --- a/plugins/chunter-resources/src/components/ChannelHeader.svelte +++ b/plugins/chunter-resources/src/components/ChannelHeader.svelte @@ -51,7 +51,7 @@ title = res }) - async function updateDescription (_id: Ref, _class: Ref>, object?: Doc): Promise { + async function updateDescription(_id: Ref, _class: Ref>, object?: Doc): Promise { if (hierarchy.isDerived(_class, chunter.class.DirectMessage) || hierarchy.isDerived(_class, contact.class.Person)) { description = undefined } else if (hierarchy.isDerived(_class, chunter.class.Channel)) { diff --git a/plugins/chunter-resources/src/components/ChannelInput.svelte b/plugins/chunter-resources/src/components/ChannelInput.svelte index f434d8b3b9..ab3e8e3f1b 100644 --- a/plugins/chunter-resources/src/components/ChannelInput.svelte +++ b/plugins/chunter-resources/src/components/ChannelInput.svelte @@ -39,7 +39,7 @@ let extensions: ActivityExtension[] = [] $: extensions = getExtensions(object._class) - function getExtensions (_class: Ref>): ActivityExtension[] { + function getExtensions(_class: Ref>): ActivityExtension[] { try { let clazz: Ref> | undefined = _class while (clazz !== undefined) { @@ -60,7 +60,7 @@ $: void updateIcon(object._class) - async function updateIcon (_class: Ref>): Promise { + async function updateIcon(_class: Ref>): Promise { if (isThread) { return } @@ -75,7 +75,7 @@ icon = result } - async function getName (object: Doc): Promise<{ name: string | undefined, label: IntlString | undefined }> { + async function getName(object: Doc): Promise<{ name: string | undefined, label: IntlString | undefined }> { const name = await getChannelName(object._id, object._class, object) const label = client.getHierarchy().getClass(object._class).label diff --git a/plugins/chunter-resources/src/components/ChannelSidebarView.svelte b/plugins/chunter-resources/src/components/ChannelSidebarView.svelte index cb22412f11..b638082911 100644 --- a/plugins/chunter-resources/src/components/ChannelSidebarView.svelte +++ b/plugins/chunter-resources/src/components/ChannelSidebarView.svelte @@ -51,7 +51,7 @@ updateTabData(widget._id, tab.id, { selectedMessageId: '' }) } - async function loadObject (_id?: Ref, _class?: Ref>): Promise { + async function loadObject(_id?: Ref, _class?: Ref>): Promise { if (_id === undefined || _class === undefined) { object = undefined objectQuery.unsubscribe() diff --git a/plugins/chunter-resources/src/components/ChannelTypingInfo.svelte b/plugins/chunter-resources/src/components/ChannelTypingInfo.svelte index 0a81f9ef86..1eb51beb4b 100644 --- a/plugins/chunter-resources/src/components/ChannelTypingInfo.svelte +++ b/plugins/chunter-resources/src/components/ChannelTypingInfo.svelte @@ -40,7 +40,7 @@ $: void updateTypingPersons(typingInfo) - async function updateTypingPersons (typingInfo: Map): Promise { + async function updateTypingPersons(typingInfo: Map): Promise { if (typingInfo.size === 0) { typingGroups = [] return @@ -80,7 +80,7 @@ typingGroups = groups } - function handleTyping (typing: Map): void { + function handleTyping(typing: Map): void { typingInfo = typing } diff --git a/plugins/chunter-resources/src/components/ChannelView.svelte b/plugins/chunter-resources/src/components/ChannelView.svelte index a9369bfa5c..d1fb821a9f 100644 --- a/plugins/chunter-resources/src/components/ChannelView.svelte +++ b/plugins/chunter-resources/src/components/ChannelView.svelte @@ -62,11 +62,11 @@ $: withAside = !embedded && !isThreadOpened && !hierarchy.isDerived(object._class, chunter.class.DirectMessage) && !showJoinOverlay - function toChannel (object: Doc): Channel { + function toChannel(object: Doc): Channel { return object as Channel } - function shouldShowJoinOverlay (object: Doc): boolean { + function shouldShowJoinOverlay(object: Doc): boolean { if (hierarchy.isDerived(object._class, core.class.Space)) { const space = object as Space @@ -76,13 +76,13 @@ return false } - async function join (): Promise { + async function join(): Promise { await client.update(object as Space, { $push: { members: acc.uuid } }) } defineSeparators('aside', panelSeparators) - async function handleMessageSelect (event: CustomEvent): Promise { + async function handleMessageSelect(event: CustomEvent): Promise { const message = event.detail if (isThreadMessage(message)) { diff --git a/plugins/chunter-resources/src/components/ChatWidget.svelte b/plugins/chunter-resources/src/components/ChatWidget.svelte index 52623b9f79..888e8ddc5f 100644 --- a/plugins/chunter-resources/src/components/ChatWidget.svelte +++ b/plugins/chunter-resources/src/components/ChatWidget.svelte @@ -25,7 +25,7 @@ export let height: string export let width: string - function handleClose (tabId?: string): void { + function handleClose(tabId?: string): void { if (widget === undefined || tabId === undefined) return void closeWidgetTab(widget, tabId) } diff --git a/plugins/chunter-resources/src/components/ChatWidgetTab.svelte b/plugins/chunter-resources/src/components/ChatWidgetTab.svelte index aedd20f164..cfb1cbb9a6 100644 --- a/plugins/chunter-resources/src/components/ChatWidgetTab.svelte +++ b/plugins/chunter-resources/src/components/ChatWidgetTab.svelte @@ -74,7 +74,7 @@ unsubscribe() }) - function handleMenu (event: CustomEvent): void { + function handleMenu(event: CustomEvent): void { if (actions.length === 0) { return } diff --git a/plugins/chunter-resources/src/components/ChunterEmployeePresenter.svelte b/plugins/chunter-resources/src/components/ChunterEmployeePresenter.svelte index b127459ae6..ef4c730912 100644 --- a/plugins/chunter-resources/src/components/ChunterEmployeePresenter.svelte +++ b/plugins/chunter-resources/src/components/ChunterEmployeePresenter.svelte @@ -17,7 +17,7 @@ const client = getClient() const hierarchy = client.getHierarchy() - function canNavigateToDirect (location: Location, person: Person | undefined): boolean { + function canNavigateToDirect(location: Location, person: Person | undefined): boolean { const app = location.path[2] if (app !== chunterId && app !== notificationId) { return false @@ -30,7 +30,7 @@ return hierarchy.hasMixin(person, contact.mixin.Employee) && (person as Employee).active } - async function openEmployeeDirect (): Promise { + async function openEmployeeDirect(): Promise { if (person === undefined) return const dm = await createDirect([person._id as Ref]) diff --git a/plugins/chunter-resources/src/components/ConvertDmToPrivateChannel.svelte b/plugins/chunter-resources/src/components/ConvertDmToPrivateChannel.svelte index 1aa2b6c0f9..f62e0ce93b 100644 --- a/plugins/chunter-resources/src/components/ConvertDmToPrivateChannel.svelte +++ b/plugins/chunter-resources/src/components/ConvertDmToPrivateChannel.svelte @@ -29,7 +29,7 @@ const dispatch = createEventDispatcher() - async function convertDmToPrivateChannel () { + async function convertDmToPrivateChannel() { const client = getClient() await client.updateDoc(dm._class, dm.space, dm._id, { diff --git a/plugins/chunter-resources/src/components/DirectMessageButton.svelte b/plugins/chunter-resources/src/components/DirectMessageButton.svelte index dc10f34e69..de87e2b1c8 100644 --- a/plugins/chunter-resources/src/components/DirectMessageButton.svelte +++ b/plugins/chunter-resources/src/components/DirectMessageButton.svelte @@ -27,7 +27,7 @@ export let icon: Asset | undefined = undefined export let type: 'type-button' | 'type-button-icon' = 'type-button' - async function openDirect (): Promise { + async function openDirect(): Promise { const dm = await createDirect([employee._id]) if (dm === undefined) { return diff --git a/plugins/chunter-resources/src/components/DmHeader.svelte b/plugins/chunter-resources/src/components/DmHeader.svelte index a58a3643e9..dc72daa30e 100644 --- a/plugins/chunter-resources/src/components/DmHeader.svelte +++ b/plugins/chunter-resources/src/components/DmHeader.svelte @@ -43,7 +43,7 @@ $: dmPersons = dm !== undefined ? dm.members.map((m) => $employeeRefByAccountUuidStore.get(m)).filter(notEmpty) : [] $: dmPersonsToDisplay = dmPersons.length === 1 ? dmPersons : dmPersons.filter((p) => p !== me) - async function onSpaceEdit (): Promise { + async function onSpaceEdit(): Promise { if (dm === undefined) return openDoc(client.getHierarchy(), dm) } diff --git a/plugins/chunter-resources/src/components/EditChannelDescriptionTab.svelte b/plugins/chunter-resources/src/components/EditChannelDescriptionTab.svelte index 73426df774..ce5a13b26b 100644 --- a/plugins/chunter-resources/src/components/EditChannelDescriptionTab.svelte +++ b/plugins/chunter-resources/src/components/EditChannelDescriptionTab.svelte @@ -27,11 +27,11 @@ const client = getClient() const dispatch = createEventDispatcher() - function isCommonChannel (channel?: ChunterSpace): channel is Channel { + function isCommonChannel(channel?: ChunterSpace): channel is Channel { return channel?._class === chunter.class.Channel } - function onTopicChange (ev: Event) { + function onTopicChange(ev: Event) { if (!isCommonChannel(channel)) { return } @@ -39,7 +39,7 @@ client.update(channel, { topic: newTopic }) } - function onDescriptionChange (ev: Event) { + function onDescriptionChange(ev: Event) { if (channel == null) { return } @@ -47,7 +47,7 @@ client.update(channel, { description: newDescription }) } - async function leaveChannel (): Promise { + async function leaveChannel(): Promise { await client.update(channel, { $pull: { members: getCurrentAccount().uuid } }) diff --git a/plugins/chunter-resources/src/components/EditChannelSettingsTab.svelte b/plugins/chunter-resources/src/components/EditChannelSettingsTab.svelte index 01c6c6efb6..c292f2613a 100644 --- a/plugins/chunter-resources/src/components/EditChannelSettingsTab.svelte +++ b/plugins/chunter-resources/src/components/EditChannelSettingsTab.svelte @@ -32,7 +32,7 @@ let autoJoinForRoles: AccountRole[] = channel.autoJoinForRoles != null ? hierarchy.clone(channel.autoJoinForRoles) : [] - function normalizeAutoJoinForRoles (roles: AccountRole[]): AccountRole[] | undefined { + function normalizeAutoJoinForRoles(roles: AccountRole[]): AccountRole[] | undefined { return roles.length > 0 ? [...roles] : undefined } @@ -43,7 +43,7 @@ }) } - function setGuestAutoJoin (enabled: boolean): void { + function setGuestAutoJoin(enabled: boolean): void { autoJoinForRoles = setWorkspaceGuestAutoJoinRoles(autoJoinForRoles, enabled) void persistAutoJoin() } diff --git a/plugins/chunter-resources/src/components/PinnedMessages.svelte b/plugins/chunter-resources/src/components/PinnedMessages.svelte index 0331946985..7433a3f654 100644 --- a/plugins/chunter-resources/src/components/PinnedMessages.svelte +++ b/plugins/chunter-resources/src/components/PinnedMessages.svelte @@ -69,7 +69,7 @@ ) } - function openMessagesPopup (ev: MouseEvent): void { + function openMessagesPopup(ev: MouseEvent): void { showPopup( PinnedMessagesPopup, { attachedTo: _id, attachedToClass: _class, space: channelSpace, withRefs }, diff --git a/plugins/chunter-resources/src/components/PinnedMessagesPopup.svelte b/plugins/chunter-resources/src/components/PinnedMessagesPopup.svelte index f76d1b9009..91504674a7 100644 --- a/plugins/chunter-resources/src/components/PinnedMessagesPopup.svelte +++ b/plugins/chunter-resources/src/components/PinnedMessagesPopup.svelte @@ -79,7 +79,7 @@ dispatch('close', undefined) } - async function unpinMessage (message: ActivityMessage): Promise { + async function unpinMessage(message: ActivityMessage): Promise { await client.update(message, { isPinned: false }) } diff --git a/plugins/chunter-resources/src/components/ReverseChannelScrollView.svelte b/plugins/chunter-resources/src/components/ReverseChannelScrollView.svelte index fd878caece..3d720dc7b7 100644 --- a/plugins/chunter-resources/src/components/ReverseChannelScrollView.svelte +++ b/plugins/chunter-resources/src/components/ReverseChannelScrollView.svelte @@ -136,7 +136,7 @@ $: void initializeScroll($isLoadingStore, separatorDiv, separatorIndex) $: void handleMessagesUpdated(messages.length) - function adjustScrollPosition (selectedMessageId?: Ref): void { + function adjustScrollPosition(selectedMessageId?: Ref): void { if ($isLoadingStore || !isScrollInitialized) { return } @@ -151,19 +151,19 @@ } } - function handleWindowFocus (): void { + function handleWindowFocus(): void { checkWindowVisibility(false) } - function handleWindowBlur (): void { + function handleWindowBlur(): void { checkWindowVisibility(true) } - function handleVisibilityChange (): void { + function handleVisibilityChange(): void { checkWindowVisibility(document.hidden) } - function checkWindowVisibility (hidden: boolean): void { + function checkWindowVisibility(hidden: boolean): void { if (document.hidden || !document.hasFocus() || hidden) { if (isPageHidden) return isPageHidden = true @@ -177,18 +177,18 @@ } } - function isFreeze (): boolean { + function isFreeze(): boolean { return freeze || isPageHidden } - function scrollToBottom (): void { + function scrollToBottom(): void { if (scroller != null && scrollDiv != null && !isFreeze()) { scrollDiv.scroll({ top: 0, behavior: 'instant' }) updateSelectedDate() } } - function scrollToSeparator (): void { + function scrollToSeparator(): void { if (separatorDiv == null || scrollDiv == null || contentDiv == null) { return } @@ -208,7 +208,7 @@ read() } - function scrollToMessage (): void { + function scrollToMessage(): void { if (selectedMessageId === undefined) return if (scrollDiv == null || contentDiv == null) { setTimeout(scrollToMessage, 50) @@ -229,7 +229,7 @@ read() } - function scrollToStartOfNew (): void { + function scrollToStartOfNew(): void { if (scrollDiv == null || lastMsgBeforeFreeze === undefined) return if (needUpdateTimestamp || $newTimestampStore === undefined) { void provider.updateNewTimestamp(notifyContext) @@ -261,7 +261,7 @@ } } - function updateShouldScrollToNew (): void { + function updateShouldScrollToNew(): void { if (scrollDiv != null && contentDiv != null) { const { scrollTop } = scrollDiv const offset = 100 @@ -270,7 +270,7 @@ } } - async function wait (): Promise { + async function wait(): Promise { // One tick is not enough for messages to be rendered, // I think this is due to the fact that we are using a Component, which takes some time to load, // because after one tick I see spinners from Component @@ -278,7 +278,7 @@ await tick() // wait until the DOM is updated } - async function initializeScroll ( + async function initializeScroll( isLoading: boolean, separatorElement?: HTMLDivElement | null, separatorIndex?: number @@ -312,12 +312,12 @@ } } - function reinitializeScroll (): void { + function reinitializeScroll(): void { isScrollInitialized = false void initializeScroll($isLoadingStore, separatorDiv, separatorIndex) } - function handleJumpToDate (e: CustomEvent<{ date?: Timestamp }>): void { + function handleJumpToDate(e: CustomEvent<{ date?: Timestamp }>): void { const result = jumpToDate(e, provider, uuid, scrollDiv) dateToJump = result.dateToJump @@ -327,7 +327,7 @@ } } - function scrollToDate (date: Timestamp): void { + function scrollToDate(date: Timestamp): void { const offset = getScrollToDateOffset(date, uuid) if (offset !== undefined && offset !== 0 && scroller != null) { @@ -336,24 +336,24 @@ } } - function updateSelectedDate (): void { + function updateSelectedDate(): void { if (isThread) return selectedDate = getSelectedDate(provider, uuid, scrollDiv, contentDiv) } - function read (): void { + function read(): void { if (isFreeze() || notifyContext === undefined || !isScrollInitialized) return readViewportMessages(messages, notifyContext._id, scrollDiv, contentDiv) } - function updateScrollData (): void { + function updateScrollData(): void { if (scrollDiv == null) return const { scrollTop } = scrollDiv isScrollAtBottom = Math.abs(scrollTop) < 50 } - function canGroupChatMessages (message: ActivityMessage, prevMessage?: ActivityMessage): boolean { + function canGroupChatMessages(message: ActivityMessage, prevMessage?: ActivityMessage): boolean { let prevMetadata: MessageMetadata | undefined = undefined if (prevMessage === undefined) { @@ -366,7 +366,7 @@ $: updateDownButtonVisibility($metadataStore, messages, scrollDiv) - function updateDownButtonVisibility ( + function updateDownButtonVisibility( metadata: MessageMetadata[], messages: ActivityMessage[], scrollDiv?: HTMLDivElement | null @@ -387,7 +387,7 @@ } } - async function handleScrollToLatestMessage (): Promise { + async function handleScrollToLatestMessage(): Promise { selectedMessageId = undefined messageInFocus.set(undefined) clearMessageInLocation() @@ -410,7 +410,7 @@ let forceRead = false $: void forceReadContext(isScrollAtBottom, notifyContext) - async function forceReadContext (isScrollAtBottom: boolean, context?: DocNotifyContext): Promise { + async function forceReadContext(isScrollAtBottom: boolean, context?: DocNotifyContext): Promise { if (context === undefined || !isScrollAtBottom || forceRead || isFreeze()) return const { lastUpdateTimestamp = 0, lastViewedTimestamp = 0 } = context @@ -425,20 +425,20 @@ } } - function shouldLoadMoreUp (): boolean { + function shouldLoadMoreUp(): boolean { if (scrollDiv == null) return false const { scrollHeight, scrollTop, clientHeight } = scrollDiv return scrollHeight + Math.ceil(scrollTop - clientHeight) <= loadMoreThreshold } - function shouldLoadMoreDown (): boolean { + function shouldLoadMoreDown(): boolean { if (scrollDiv == null) return false return Math.abs(scrollDiv.scrollTop) <= loadMoreThreshold } - function loadMore (): void { + function loadMore(): void { if (!loadMoreAllowed || $isLoadingMoreStore || scrollDiv == null || !isScrollInitialized) { return } @@ -470,7 +470,7 @@ } } - async function restoreScroll (): Promise { + async function restoreScroll(): Promise { await wait() if (scrollDiv == null || scroller == null) return @@ -487,7 +487,7 @@ dateToJump = 0 } - function scrollToNewMessages (): void { + function scrollToNewMessages(): void { if (scrollDiv == null || !shouldScrollToNew) { read() return @@ -497,7 +497,7 @@ read() } - async function handleMessagesUpdated (newCount: number): Promise { + async function handleMessagesUpdated(newCount: number): Promise { if (newCount === messagesCount) { return } @@ -525,7 +525,7 @@ } } - async function handleScroll (): Promise { + async function handleScroll(): Promise { updateScrollData() updateDownButtonVisibility($metadataStore, messages, scrollDiv) updateShouldScrollToNew() @@ -534,7 +534,7 @@ read() } - function handleResize (): void { + function handleResize(): void { if (!isScrollInitialized) return if (shouldScrollToNew) { scrollToBottom() @@ -577,7 +577,7 @@ $: showBlankView = !$isLoadingStore && messages.length === 0 && !isThread - export function editLastMessage (): void { + export function editLastMessage(): void { if ($isLoadingStore || !isScrollInitialized || !$isTailLoadedStore || scrollDiv == null) { return } @@ -604,7 +604,7 @@ } } - function handleKeyDown (e: KeyboardEvent): void { + function handleKeyDown(e: KeyboardEvent): void { const key = e.key if (key === 'ArrowUp') { @@ -612,7 +612,7 @@ editLastMessage() } } - function getKey (messages: ActivityMessage[]): string { + function getKey(messages: ActivityMessage[]): string { return `${messages.length}-${Math.max(...messages.map((m) => m.modifiedOn))}` } diff --git a/plugins/chunter-resources/src/components/WorkbenchTabExtension.svelte b/plugins/chunter-resources/src/components/WorkbenchTabExtension.svelte index 4a7aec6452..12cc8b6546 100644 --- a/plugins/chunter-resources/src/components/WorkbenchTabExtension.svelte +++ b/plugins/chunter-resources/src/components/WorkbenchTabExtension.svelte @@ -47,7 +47,7 @@ $: void updateObjectId(tab) - async function updateObjectId (tab: WorkbenchTab): Promise { + async function updateObjectId(tab: WorkbenchTab): Promise { const base = `${window.location.protocol}//${window.location.host}` const url = new URL(concatLink(base, tab.location)) const loc = parseLocation(url) diff --git a/plugins/chunter-resources/src/components/activity/MembersChangedMessage.svelte b/plugins/chunter-resources/src/components/activity/MembersChangedMessage.svelte index 92f9903abd..b3e4693dd5 100644 --- a/plugins/chunter-resources/src/components/activity/MembersChangedMessage.svelte +++ b/plugins/chunter-resources/src/components/activity/MembersChangedMessage.svelte @@ -35,7 +35,7 @@ $: addedPersons = getPersons(value.added.length > 0 ? value.added : value.set, $employeeByAccountStore) $: removedPersons = getPersons(value.removed, $employeeByAccountStore) - function getPersons ( + function getPersons( accounts: DocAttributeUpdates['removed' | 'added' | 'set'], employeeByAccountStore: Map ): Person[] { diff --git a/plugins/chunter-resources/src/components/chat-message/ChatMessageInput.svelte b/plugins/chunter-resources/src/components/chat-message/ChatMessageInput.svelte index dcee875bdd..8ce4022ade 100644 --- a/plugins/chunter-resources/src/components/chat-message/ChatMessageInput.svelte +++ b/plugins/chunter-resources/src/components/chat-message/ChatMessageInput.svelte @@ -77,13 +77,13 @@ createdMessageQuery.unsubscribe() } - function clear (): void { + function clear(): void { currentMessage = getDefault() _id = currentMessage._id inputRef.removeDraft(false) } - function objectChange (draft: MessageDraft, empty: Partial): void { + function objectChange(draft: MessageDraft, empty: Partial): void { if (shouldSaveDraft) { draftController.save(draft, empty) } @@ -91,7 +91,7 @@ $: objectChange(currentMessage, emptyMessage) - function getDefault (): MessageDraft { + function getDefault(): MessageDraft { return { _id: generateId(), ...emptyMessage @@ -101,12 +101,12 @@ const acc = getCurrentAccount() const throttle = new ThrottledCaller(500) - async function deleteTypingInfo (): Promise { + async function deleteTypingInfo(): Promise { if (!withTypingInfo) return void clearTyping(acc.primarySocialId, object._id) } - async function updateTypingInfo (): Promise { + async function updateTypingInfo(): Promise { if (!withTypingInfo) return throttle.call(() => { @@ -114,7 +114,7 @@ }) } - function onUpdate (event: CustomEvent): void { + function onUpdate(event: CustomEvent): void { if (!isEmptyMarkup(event.detail.message)) { void updateTypingInfo() } @@ -126,7 +126,7 @@ currentMessage.attachments = attachments } - async function handleCreate (event: CustomEvent, _id: Ref): Promise { + async function handleCreate(event: CustomEvent, _id: Ref): Promise { try { const res = await createMessage(event, _id, `chunter.create.${_class} ${object._class}`) @@ -140,7 +140,7 @@ } } - async function handleEdit (event: CustomEvent): Promise { + async function handleEdit(event: CustomEvent): Promise { try { await editMessage(event) const objectId = await getObjectId(object, client.getHierarchy()) @@ -152,7 +152,7 @@ } } - async function onMessage (event: CustomEvent): Promise { + async function onMessage(event: CustomEvent): Promise { draftController.remove() inputRef.removeDraft(false) @@ -170,7 +170,7 @@ loading = false } - async function createMessage (event: CustomEvent, _id: Ref, msg: string): Promise { + async function createMessage(event: CustomEvent, _id: Ref, msg: string): Promise { const { message, attachments } = event.detail const operations = client.apply(undefined, msg) @@ -205,18 +205,18 @@ return await operations.commit() } - async function editMessage (event: CustomEvent): Promise { + async function editMessage(event: CustomEvent): Promise { if (chatMessage === undefined) { return } const { message, attachments } = event.detail await client.update(chatMessage, { message, attachments, editedOn: Date.now() }) } - export function submit (): void { + export function submit(): void { inputRef.submit() } - function handleKeyDown (event: KeyboardEvent): boolean { + function handleKeyDown(event: KeyboardEvent): boolean { if (event.key === 'ArrowUp' || event.key === 'ArrowDown') { if (inputRef.isEmptyDraft() && chatMessage == null) { onKeyDown?.(event) diff --git a/plugins/chunter-resources/src/components/chat-message/ChatMessagePresenter.svelte b/plugins/chunter-resources/src/components/chat-message/ChatMessagePresenter.svelte index b6615b3127..428e3c3595 100644 --- a/plugins/chunter-resources/src/components/chat-message/ChatMessagePresenter.svelte +++ b/plugins/chunter-resources/src/components/chat-message/ChatMessagePresenter.svelte @@ -75,9 +75,9 @@ ;[viewlet] = value !== undefined ? client.getModel().findAllSync(chunter.class.ChatMessageViewlet, { - objectClass: value.attachedToClass, - messageClass: value._class - }) + objectClass: value.attachedToClass, + messageClass: value._class + }) : [] $: personId = value?.createdBy @@ -143,7 +143,7 @@ stale = false } - async function getParentMessage ( + async function getParentMessage( _class: Ref>, _id: Ref, space: Ref @@ -153,7 +153,7 @@ } } - async function handleEditAction (): Promise { + async function handleEditAction(): Promise { if (value == null) return editingMessageStore.set(value._id) } @@ -184,7 +184,7 @@ let inlineActions: MessageInlineAction[] = [] $: updateInlineActions($translatingMessagesStore, $shownTranslatedMessagesStore) - function updateInlineActions ( + function updateInlineActions( translatingMessages: Set>, shownTranslated: Set> ): void { diff --git a/plugins/chunter-resources/src/components/chat/ChannelAside.svelte b/plugins/chunter-resources/src/components/chat/ChannelAside.svelte index 39f925a442..8eeb0ec69a 100644 --- a/plugins/chunter-resources/src/components/chat/ChannelAside.svelte +++ b/plugins/chunter-resources/src/components/chat/ChannelAside.svelte @@ -52,7 +52,7 @@ : [] $: updateMembers(object) - function updateMembers (object: Channel | undefined): void { + function updateMembers(object: Channel | undefined): void { if (object === undefined) { members = new Set() return @@ -61,11 +61,11 @@ members = new Set(object.members.map((account) => $employeeRefByAccountUuidStore.get(account)).filter(notEmpty)) } - function getAccountsByPersons (persons: Ref[]): AccountUuid[] { + function getAccountsByPersons(persons: Ref[]): AccountUuid[] { return persons.map((person) => $employeeByIdStore.get(person as Ref)?.personUuid).filter(notEmpty) } - async function changeMembers (personRefs: Ref[], object?: Channel): Promise { + async function changeMembers(personRefs: Ref[], object?: Channel): Promise { if (object === undefined) { return } diff --git a/plugins/chunter-resources/src/components/chat/Chat.svelte b/plugins/chunter-resources/src/components/chat/Chat.svelte index 0254c14f00..535c3ec6df 100644 --- a/plugins/chunter-resources/src/components/chat/Chat.svelte +++ b/plugins/chunter-resources/src/components/chat/Chat.svelte @@ -70,7 +70,7 @@ $: void loadObject(selectedData?.id, selectedData?._class) - async function loadObject (id?: string, _class?: Ref>): Promise { + async function loadObject(id?: string, _class?: Ref>): Promise { if (id == null || _class == null || _class === '') { object = undefined objectQuery.unsubscribe() @@ -95,7 +95,7 @@ ) } - function syncLocation (loc: Location): void { + function syncLocation(loc: Location): void { if (loc.path[2] !== chunterId) { return } @@ -131,7 +131,7 @@ } } - async function handleChannelSelected (event: CustomEvent): Promise { + async function handleChannelSelected(event: CustomEvent): Promise { if (event.detail === null) { selectedData = undefined return diff --git a/plugins/chunter-resources/src/components/chat/DocAside.svelte b/plugins/chunter-resources/src/components/chat/DocAside.svelte index 060fe2e233..e87b8e60c3 100644 --- a/plugins/chunter-resources/src/components/chat/DocAside.svelte +++ b/plugins/chunter-resources/src/components/chat/DocAside.svelte @@ -35,7 +35,7 @@ $: mixins = getDocMixins(object) - function getMixinKeys (mixin: Ref>): KeyedAttribute[] { + function getMixinKeys(mixin: Ref>): KeyedAttribute[] { if (object === undefined) return [] const mixinClass = hierarchy.getClass(mixin) diff --git a/plugins/chunter-resources/src/components/chat/create/CreateChannel.svelte b/plugins/chunter-resources/src/components/chat/create/CreateChannel.svelte index d5b9158b53..f6894b07db 100644 --- a/plugins/chunter-resources/src/components/chat/create/CreateChannel.svelte +++ b/plugins/chunter-resources/src/components/chat/create/CreateChannel.svelte @@ -46,11 +46,11 @@ let autoJoin = false let autoJoinForRoles: AccountRole[] = [] - function normalizeAutoJoinForRoles (roles: AccountRole[]): AccountRole[] | undefined { + function normalizeAutoJoinForRoles(roles: AccountRole[]): AccountRole[] | undefined { return roles.length > 0 ? [...roles] : undefined } - function setGuestAutoJoin (enabled: boolean): void { + function setGuestAutoJoin(enabled: boolean): void { autoJoinForRoles = setWorkspaceGuestAutoJoinRoles(autoJoinForRoles, enabled) } @@ -60,7 +60,7 @@ $: canSave = !!channelName - async function save (): Promise { + async function save(): Promise { const myAcc = getCurrentAccount().uuid const employee = getCurrentEmployee() const space = await client.findOne(contact.class.PersonSpace, { person: employee }, { projection: { _id: 1 } }) @@ -81,7 +81,7 @@ openChannel(channelId, chunter.class.Channel) } - function handleCancel (): void { + function handleCancel(): void { dispatch('close') } diff --git a/plugins/chunter-resources/src/components/chat/create/CreateDirectChat.svelte b/plugins/chunter-resources/src/components/chat/create/CreateDirectChat.svelte index 03a5052655..6f45dd594f 100644 --- a/plugins/chunter-resources/src/components/chat/create/CreateDirectChat.svelte +++ b/plugins/chunter-resources/src/components/chat/create/CreateDirectChat.svelte @@ -38,11 +38,11 @@ dmName = r }) - async function loadDmName (accs: AccountUuid[]): Promise { + async function loadDmName(accs: AccountUuid[]): Promise { return await buildDmName(client, accs) } - async function createDirectMessage (): Promise { + async function createDirectMessage(): Promise { const dmId = await createDirect(employeeIds) if (dmId !== undefined) { @@ -51,7 +51,7 @@ } } - function handleCancel (): void { + function handleCancel(): void { dispatch('close') } @@ -59,11 +59,11 @@ openSelectUsersPopup(true) }) - function addMembersClicked (): void { + function addMembersClicked(): void { openSelectUsersPopup(false) } - function openSelectUsersPopup (closeOnClose: boolean): void { + function openSelectUsersPopup(closeOnClose: boolean): void { showPopup( SelectUsersPopup, { diff --git a/plugins/chunter-resources/src/components/chat/navigator/ChatNavGroup.svelte b/plugins/chunter-resources/src/components/chat/navigator/ChatNavGroup.svelte index acef166659..785c2204e8 100644 --- a/plugins/chunter-resources/src/components/chat/navigator/ChatNavGroup.svelte +++ b/plugins/chunter-resources/src/components/chat/navigator/ChatNavGroup.svelte @@ -75,11 +75,11 @@ getObjectGroup(object) === model.id && (!$contextByDocStore.has(object._id) || isArchived(object)) - function isArchived (object: Doc): boolean { + function isArchived(object: Doc): boolean { return hierarchy.isDerived(object._class, core.class.Space) ? (object as Space).archived : false } - function loadObjects (contexts: DocNotifyContext[]): void { + function loadObjects(contexts: DocNotifyContext[]): void { const contextsByClass = groupByArray(contexts, ({ objectClass }) => objectClass) for (const [_class, ctx] of contextsByClass.entries()) { @@ -115,7 +115,7 @@ objectsByClass = objectsByClass } - function getObjectGroup (object: Doc): ChatGroup { + function getObjectGroup(object: Doc): ChatGroup { if (hierarchy.isDerived(object._class, chunter.class.Channel)) { return 'channels' } @@ -194,7 +194,7 @@ } ) - function getSectionActions (section: Section, contexts: DocNotifyContext[]): Action[] { + function getSectionActions(section: Section, contexts: DocNotifyContext[]): Action[] { if (model.getActionsFn === undefined) { return [] } diff --git a/plugins/chunter-resources/src/components/chat/navigator/ChatNavItem.svelte b/plugins/chunter-resources/src/components/chat/navigator/ChatNavItem.svelte index 2a5163158a..01856b0ba7 100644 --- a/plugins/chunter-resources/src/components/chat/navigator/ChatNavItem.svelte +++ b/plugins/chunter-resources/src/components/chat/navigator/ChatNavItem.svelte @@ -70,7 +70,7 @@ const linkProviders = client.getModel().findAllSync(view.mixin.LinkIdProvider, {}) - async function getChannelActions (context: DocNotifyContext | undefined, object: Doc): Promise { + async function getChannelActions(context: DocNotifyContext | undefined, object: Doc): Promise { const result: Action[] = [] if (context === undefined) { diff --git a/plugins/chunter-resources/src/components/chat/navigator/ChatNavSection.svelte b/plugins/chunter-resources/src/components/chat/navigator/ChatNavSection.svelte index f756e56405..7e4f4df555 100644 --- a/plugins/chunter-resources/src/components/chat/navigator/ChatNavSection.svelte +++ b/plugins/chunter-resources/src/components/chat/navigator/ChatNavSection.svelte @@ -98,7 +98,7 @@ } ) - function onShowMore (): void { + function onShowMore(): void { dispatcher('show-more') } diff --git a/plugins/chunter-resources/src/components/chat/navigator/ChatNavigator.svelte b/plugins/chunter-resources/src/components/chat/navigator/ChatNavigator.svelte index 42049ec6ea..5bbb0c4ee1 100644 --- a/plugins/chunter-resources/src/components/chat/navigator/ChatNavigator.svelte +++ b/plugins/chunter-resources/src/components/chat/navigator/ChatNavigator.svelte @@ -55,7 +55,7 @@ const searchValue: string = '' - async function isSpecialVisible (special: SpecialNavModel, contexts: DocNotifyContext[]): Promise { + async function isSpecialVisible(special: SpecialNavModel, contexts: DocNotifyContext[]): Promise { if (special.visibleIf === undefined) { return true } @@ -65,7 +65,7 @@ return await getIsVisible(contexts as any) } - function addButtonClicked (ev: MouseEvent): void { + function addButtonClicked(ev: MouseEvent): void { pressed = true showPopup(Menu, { actions: globalActions }, ev.target as HTMLElement, () => { pressed = false diff --git a/plugins/chunter-resources/src/components/chat/navigator/ChatSpecialElement.svelte b/plugins/chunter-resources/src/components/chat/navigator/ChatSpecialElement.svelte index b7b12bc5b2..59172610bd 100644 --- a/plugins/chunter-resources/src/components/chat/navigator/ChatSpecialElement.svelte +++ b/plugins/chunter-resources/src/components/chat/navigator/ChatSpecialElement.svelte @@ -43,7 +43,7 @@ }) $: elementsCount = getElementsCount(special, $savedMessagesStore, $savedAttachmentsStore) - async function getNotificationsCount ( + async function getNotificationsCount( special: SpecialNavModel, notificationsByContext: Map, InboxNotification[]> ): Promise { @@ -56,7 +56,7 @@ return providerFn(notificationsByContext) } - function getElementsCount ( + function getElementsCount( special: SpecialNavModel, savedMessages: SavedMessage[], savedAttachments: SavedAttachments[] diff --git a/plugins/chunter-resources/src/components/chat/navigator/NavItem.svelte b/plugins/chunter-resources/src/components/chat/navigator/NavItem.svelte index cacbd146e1..2d5990d8b7 100644 --- a/plugins/chunter-resources/src/components/chat/navigator/NavItem.svelte +++ b/plugins/chunter-resources/src/components/chat/navigator/NavItem.svelte @@ -50,14 +50,14 @@ $: inlineActions = actions.filter(({ inline }) => inline === true) $: menuActions = actions.filter(({ inline }) => inline !== true) - function handleMenuClicked (ev: MouseEvent): void { + function handleMenuClicked(ev: MouseEvent): void { showPopup(Menu, { actions: menuActions, ctx: _id }, ev.target as HTMLElement, () => { menuOpened = false }) menuOpened = true } - async function handleInlineActionClicked (ev: MouseEvent, action: Action): Promise { + async function handleInlineActionClicked(ev: MouseEvent, action: Action): Promise { await action.action([], ev) } diff --git a/plugins/chunter-resources/src/components/chat/specials/MessagesBrowser.svelte b/plugins/chunter-resources/src/components/chat/specials/MessagesBrowser.svelte index ab3f3ebcf9..1fc65d0340 100644 --- a/plugins/chunter-resources/src/components/chat/specials/MessagesBrowser.svelte +++ b/plugins/chunter-resources/src/components/chat/specials/MessagesBrowser.svelte @@ -28,7 +28,7 @@ let searchQuery: DocumentQuery = { $search: search } - function updateSearchQuery (search: string): void { + function updateSearchQuery(search: string): void { searchQuery = { $search: search } } @@ -39,7 +39,7 @@ let resultQuery: DocumentQuery = { ...searchQuery } - async function updateMessages (resultQuery: DocumentQuery) { + async function updateMessages(resultQuery: DocumentQuery) { messages = await client.findAll( chunter.class.ChatMessage, { diff --git a/plugins/chunter-resources/src/components/chat/specials/SavedMessages.svelte b/plugins/chunter-resources/src/components/chat/specials/SavedMessages.svelte index 72f3fd9dbd..3b92bf8f3e 100644 --- a/plugins/chunter-resources/src/components/chat/specials/SavedMessages.svelte +++ b/plugins/chunter-resources/src/components/chat/specials/SavedMessages.svelte @@ -36,7 +36,7 @@ $: savedMessages = $savedMessagesStore $: savedAttachments = $savedAttachmentsStore - async function openAttachment (attach?: Attachment): Promise { + async function openAttachment(attach?: Attachment): Promise { if (attach === undefined) { return } @@ -48,7 +48,7 @@ }) } - async function getName (attach: Attachment): Promise { + async function getName(attach: Attachment): Promise { const person = await getPersonByPersonId(attach.modifiedBy) if (person != null) { @@ -56,7 +56,7 @@ } } - function handleMessageClicked (message?: ActivityMessage): void { + function handleMessageClicked(message?: ActivityMessage): void { void openMessageFromSpecial(message) } diff --git a/plugins/chunter-resources/src/components/inline-comment/InlineCommentPresenter.svelte b/plugins/chunter-resources/src/components/inline-comment/InlineCommentPresenter.svelte index f88daaca66..991b667454 100644 --- a/plugins/chunter-resources/src/components/inline-comment/InlineCommentPresenter.svelte +++ b/plugins/chunter-resources/src/components/inline-comment/InlineCommentPresenter.svelte @@ -86,16 +86,16 @@ let text: Markup = value?.message ?? EmptyMarkup $: if (!isEditing) text = value?.message ?? EmptyMarkup - async function handleEditAction (): Promise { + async function handleEditAction(): Promise { isEditing = true } - async function handleDeleteAction (): Promise { + async function handleDeleteAction(): Promise { if (value?._id) { handleSubmit?.('', value._id) } } - async function handleSubmitEvent (event: CustomEvent): Promise { + async function handleSubmitEvent(event: CustomEvent): Promise { if (value?._id) { handleSubmit?.(event.detail, value._id) } diff --git a/plugins/chunter-resources/src/components/inline-comment/InlineCommentThread.svelte b/plugins/chunter-resources/src/components/inline-comment/InlineCommentThread.svelte index 504fa47d87..f926556687 100644 --- a/plugins/chunter-resources/src/components/inline-comment/InlineCommentThread.svelte +++ b/plugins/chunter-resources/src/components/inline-comment/InlineCommentThread.svelte @@ -45,7 +45,7 @@ ] : [] - async function handleSubmitEvent (event: CustomEvent): Promise { + async function handleSubmitEvent(event: CustomEvent): Promise { handleSubmit?.(event.detail) } diff --git a/plugins/chunter-resources/src/components/notification/ChatMessageNotificationLabel.svelte b/plugins/chunter-resources/src/components/notification/ChatMessageNotificationLabel.svelte index 116fa07bd2..8b55c8fef2 100644 --- a/plugins/chunter-resources/src/components/notification/ChatMessageNotificationLabel.svelte +++ b/plugins/chunter-resources/src/components/notification/ChatMessageNotificationLabel.svelte @@ -43,7 +43,7 @@ title = res }) - function loadChannel (object: ChatMessage, isThread: boolean): void { + function loadChannel(object: ChatMessage, isThread: boolean): void { const _class = isThread ? (object as ThreadMessage).objectClass : object.attachedToClass const _id = isThread ? (object as ThreadMessage).objectId : object.attachedTo @@ -52,11 +52,11 @@ }) } - function toThread (message: ChatMessage): ThreadMessage { + function toThread(message: ChatMessage): ThreadMessage { return message as ThreadMessage } - function isAvatarIcon (_class: Ref>): boolean { + function isAvatarIcon(_class: Ref>): boolean { return hierarchy.isDerived(_class, contact.class.Person) || hierarchy.isDerived(_class, chunter.class.DirectMessage) } diff --git a/plugins/chunter-resources/src/components/threads/ThreadContent.svelte b/plugins/chunter-resources/src/components/threads/ThreadContent.svelte index 3b446afe18..a926603a42 100644 --- a/plugins/chunter-resources/src/components/threads/ThreadContent.svelte +++ b/plugins/chunter-resources/src/components/threads/ThreadContent.svelte @@ -37,7 +37,7 @@ $: void updateProvider(message) - async function updateProvider (message: ActivityMessage): Promise { + async function updateProvider(message: ActivityMessage): Promise { if (dataProvider !== undefined) { return } diff --git a/plugins/chunter-resources/src/components/threads/ThreadView.svelte b/plugins/chunter-resources/src/components/threads/ThreadView.svelte index d41497f43a..a2d0b84594 100644 --- a/plugins/chunter-resources/src/components/threads/ThreadView.svelte +++ b/plugins/chunter-resources/src/components/threads/ThreadView.svelte @@ -105,7 +105,7 @@ let breadcrumbs: BreadcrumbItem[] = [] $: breadcrumbs = showHeader ? getBreadcrumbsItems(channel, channelName) : [] - function getBreadcrumbsItems (channel?: Doc, channelName?: string): BreadcrumbItem[] { + function getBreadcrumbsItems(channel?: Doc, channelName?: string): BreadcrumbItem[] { if (channel === undefined) { return [] } @@ -127,7 +127,7 @@ ] } - function handleBreadcrumbSelect (event: CustomEvent): void { + function handleBreadcrumbSelect(event: CustomEvent): void { const index = event.detail const breadcrumb = breadcrumbs[index] diff --git a/plugins/chunter-resources/src/components/threads/Threads.svelte b/plugins/chunter-resources/src/components/threads/Threads.svelte index a6004fc31a..7e93505cc5 100644 --- a/plugins/chunter-resources/src/components/threads/Threads.svelte +++ b/plugins/chunter-resources/src/components/threads/Threads.svelte @@ -79,7 +79,7 @@ } ) - function handleScroll (): void { + function handleScroll(): void { if (divScroll != null && hasNextPage && threads.length === limit) { const isAtBottom = divScroll.scrollTop + divScroll.clientHeight >= divScroll.scrollHeight - 400 if (isAtBottom) { diff --git a/plugins/chunter-resources/src/navigation.ts b/plugins/chunter-resources/src/navigation.ts index 99854b4e87..3c595ef66d 100644 --- a/plugins/chunter-resources/src/navigation.ts +++ b/plugins/chunter-resources/src/navigation.ts @@ -453,11 +453,11 @@ export async function locationDataResolver (loc: Location): Promise = { threads: { label: chunter.string.Threads, diff --git a/plugins/chunter-resources/src/plugin.ts b/plugins/chunter-resources/src/plugin.ts index d8c184ca87..f7c2c24111 100644 --- a/plugins/chunter-resources/src/plugin.ts +++ b/plugins/chunter-resources/src/plugin.ts @@ -44,7 +44,7 @@ export default mergeIds(chunterId, chunter, { ChannelTitleProvider: '' as Resource<(client: Client, id: Ref) => Promise>, ChunterBrowserVisible: '' as Resource<(spaces: Space[]) => Promise>, GetUnreadThreadsCount: '' as Resource< - (inboxNotificationsByContext: Map, InboxNotification[]>) => number + (inboxNotificationsByContext: Map, InboxNotification[]>) => number > }, actionImpl: { diff --git a/plugins/chunter-resources/src/scroll.ts b/plugins/chunter-resources/src/scroll.ts index 1b5886834f..84305688ad 100644 --- a/plugins/chunter-resources/src/scroll.ts +++ b/plugins/chunter-resources/src/scroll.ts @@ -52,9 +52,9 @@ export function jumpToDate ( uuid: string, scrollDiv?: HTMLElement | null ): { - scrollOffset?: number - dateToJump?: Timestamp - } { + scrollOffset?: number + dateToJump?: Timestamp +} { const date = e.detail.date if (date === undefined || scrollDiv == null) { diff --git a/plugins/contact-resources/src/components/AccountArrayEditor.svelte b/plugins/contact-resources/src/components/AccountArrayEditor.svelte index b404809450..327d739afe 100644 --- a/plugins/contact-resources/src/components/AccountArrayEditor.svelte +++ b/plugins/contact-resources/src/components/AccountArrayEditor.svelte @@ -64,7 +64,7 @@ .filter(notEmpty) ) - function onUpdate (evt: CustomEvent[]>): void { + function onUpdate(evt: CustomEvent[]>): void { if (timer !== null) { clearTimeout(timer) } @@ -121,7 +121,7 @@ const hierarchy = client.getHierarchy() const me = getCurrentEmployee() - function sort (a: Contact, b: Contact): number { + function sort(a: Contact, b: Contact): number { if (me === a._id) { return -1 } diff --git a/plugins/contact-resources/src/components/AccountBox.svelte b/plugins/contact-resources/src/components/AccountBox.svelte index e1f3bed18b..029cb664b3 100644 --- a/plugins/contact-resources/src/components/AccountBox.svelte +++ b/plugins/contact-resources/src/components/AccountBox.svelte @@ -47,17 +47,17 @@ $: employeeToPersonIdMap = mapToPrimarySocialId ? employeeToPersonIdMap : new Map( - include - .map((personId) => { - const employee = $employeeByPersonIdStore.get(personId) - return employee !== undefined ? ([employee._id, personId] as const) : null - }) - .filter(notEmpty) - ) + include + .map((personId) => { + const employee = $employeeByPersonIdStore.get(personId) + return employee !== undefined ? ([employee._id, personId] as const) : null + }) + .filter(notEmpty) + ) const dispatch = createEventDispatcher() - function change (e: CustomEvent | null>): void { + function change(e: CustomEvent | null>): void { if (e.detail === null) { dispatch('change', null) } else { diff --git a/plugins/contact-resources/src/components/AddMembersPopup.svelte b/plugins/contact-resources/src/components/AddMembersPopup.svelte index 95f20d1322..7950513d9e 100644 --- a/plugins/contact-resources/src/components/AddMembersPopup.svelte +++ b/plugins/contact-resources/src/components/AddMembersPopup.svelte @@ -30,11 +30,11 @@ $: memberAccountsToAdd = membersToAdd.map((m) => $employeeByIdStore.get(m)?.personUuid).filter(notEmpty) - async function changeMembersToAdd (employees: Ref[]): Promise { + async function changeMembersToAdd(employees: Ref[]): Promise { membersToAdd = employees } - function removeMember (_id: Ref): void { + function removeMember(_id: Ref): void { membersToAdd = membersToAdd.filter((m) => m !== _id) } diff --git a/plugins/contact-resources/src/components/AssigneeBox.svelte b/plugins/contact-resources/src/components/AssigneeBox.svelte index fb1a6c4966..25daa97550 100644 --- a/plugins/contact-resources/src/components/AssigneeBox.svelte +++ b/plugins/contact-resources/src/components/AssigneeBox.svelte @@ -91,7 +91,7 @@ const mgr = getFocusManager() - function _click (ev: MouseEvent): void { + function _click(ev: MouseEvent): void { if (!readonly) { ev.preventDefault() ev.stopPropagation() diff --git a/plugins/contact-resources/src/components/AssigneePopup.svelte b/plugins/contact-resources/src/components/AssigneePopup.svelte index e42966b12a..af2bbaec15 100644 --- a/plugins/contact-resources/src/components/AssigneePopup.svelte +++ b/plugins/contact-resources/src/components/AssigneePopup.svelte @@ -110,7 +110,7 @@ } } - async function updateCategories (objects: Contact[], categories: AssigneeCategory[] | undefined) { + async function updateCategories(objects: Contact[], categories: AssigneeCategory[] | undefined) { const refs = objects.map((e) => e._id) for (const category of [currentUserCategory, assigned, ...(categories ?? []), otherCategory]) { @@ -133,13 +133,13 @@ let selection = 0 let list: ListView - async function handleSelection (evt: Event | undefined, selection: number): Promise { + async function handleSelection(evt: Event | undefined, selection: number): Promise { const person = contacts[selection] selected = allowDeselect && person?._id === selected ? undefined : person?._id dispatch('close', selected !== undefined ? person : undefined) } - function onKeydown (key: KeyboardEvent): void { + function onKeydown(key: KeyboardEvent): void { if (key.code === 'ArrowUp') { key.stopPropagation() key.preventDefault() @@ -158,7 +158,7 @@ } const manager = createFocusManager() - function toAny (obj: any): any { + function toAny(obj: any): any { return obj } diff --git a/plugins/contact-resources/src/components/Avatar.svelte b/plugins/contact-resources/src/components/Avatar.svelte index 21dd2aa9b5..a2556b7821 100644 --- a/plugins/contact-resources/src/components/Avatar.svelte +++ b/plugins/contact-resources/src/components/Avatar.svelte @@ -43,9 +43,9 @@ import { getPreviewPopup } from './person/utils' export let person: - | (Data> & { _id?: Ref, personUuid?: PersonUuid }) - | Person - | undefined = undefined + | (Data> & { _id?: Ref, personUuid?: PersonUuid }) + | Person + | undefined = undefined export let name: string | null | undefined = undefined export let direct: Blob | undefined = undefined export let size: IconSize @@ -62,7 +62,7 @@ export let clickable: boolean = false export let clipPath: string | undefined = undefined - export function pulse (): void { + export function pulse(): void { avatarInst.pulse() } diff --git a/plugins/contact-resources/src/components/AvatarInstance.svelte b/plugins/contact-resources/src/components/AvatarInstance.svelte index c25b32e88f..c71ec45b0e 100644 --- a/plugins/contact-resources/src/components/AvatarInstance.svelte +++ b/plugins/contact-resources/src/components/AvatarInstance.svelte @@ -37,11 +37,11 @@ export let style: 'modern' | undefined = undefined export let clipPath: string | undefined = undefined - function handleClick (): void { + function handleClick(): void { dispatch('click') } - export function pulse (): void { + export function pulse(): void { if (element === undefined) return const color: string = $themeStore.dark ? '255, 255, 255' : '50, 50, 50' element.animate( @@ -56,7 +56,7 @@ let fontSize: number = 16 let imgError = false - function handleImgError (): void { + function handleImgError(): void { imgError = true } diff --git a/plugins/contact-resources/src/components/ChannelFilter.svelte b/plugins/contact-resources/src/components/ChannelFilter.svelte index a4bfed7890..0ee1c4b4d9 100644 --- a/plugins/contact-resources/src/components/ChannelFilter.svelte +++ b/plugins/contact-resources/src/components/ChannelFilter.svelte @@ -45,7 +45,7 @@ return false } - function handleFilterToggle (element: ChannelProvider) { + function handleFilterToggle(element: ChannelProvider) { if (isSelected(element, selected)) { selected = selected.filter((p) => p !== element._id) } else { @@ -55,7 +55,7 @@ updateFilter(selected) } - function updateFilter (newValues: Ref[]) { + function updateFilter(newValues: Ref[]) { clearTimeout(filterUpdateTimeout) filterUpdateTimeout = setTimeout(() => { diff --git a/plugins/contact-resources/src/components/ChannelPanel.svelte b/plugins/contact-resources/src/components/ChannelPanel.svelte index 646ceec4ab..09ba90574e 100644 --- a/plugins/contact-resources/src/components/ChannelPanel.svelte +++ b/plugins/contact-resources/src/components/ChannelPanel.svelte @@ -35,7 +35,7 @@ ;[channel] = res }) - async function getPresenter (channel: Channel | undefined): Promise { + async function getPresenter(channel: Channel | undefined): Promise { if (channel === undefined) return const provider = $channelProviders.find((it) => it._id === channel.provider) ?? diff --git a/plugins/contact-resources/src/components/ChannelsDropdown.svelte b/plugins/contact-resources/src/components/ChannelsDropdown.svelte index fe7df60bc2..58e8f15eeb 100644 --- a/plugins/contact-resources/src/components/ChannelsDropdown.svelte +++ b/plugins/contact-resources/src/components/ChannelsDropdown.svelte @@ -77,7 +77,7 @@ canEdit: boolean } - function getProvider ( + function getProvider( item: AttachedData, map: Map, ChannelProvider>, notifyContextByDoc: Map, DocNotifyContext>, @@ -106,7 +106,7 @@ } } - function isNew ( + function isNew( item: Channel, notifyContextByDoc: Map, DocNotifyContext>, inboxNotificationsByContext: Map, InboxNotification[]> @@ -122,7 +122,7 @@ return inboxNotifications.some(({ isViewed }) => !isViewed) } - async function update ( + async function update( value: AttachedData[] | Channel | null, notifyContextByDoc: Map, DocNotifyContext>, inboxNotificationsByContext: Map, InboxNotification[]>, @@ -160,7 +160,7 @@ const btns: HTMLButtonElement[] = [] let opened: number | undefined = undefined - function filterUndefined (channels: AttachedData[]): AttachedData[] { + function filterUndefined(channels: AttachedData[]): AttachedData[] { return channels.filter((channel) => channel.value !== undefined) } const focusManager = getFocusManager() @@ -208,7 +208,7 @@ }) } - function remove (n: number) { + function remove(n: number) { const removed = displayItems[n] displayItems = dropItem(n) dispatch('remove', removed.channel) diff --git a/plugins/contact-resources/src/components/ChannelsEditor.svelte b/plugins/contact-resources/src/components/ChannelsEditor.svelte index 892b3c5892..e589fe6c78 100644 --- a/plugins/contact-resources/src/components/ChannelsEditor.svelte +++ b/plugins/contact-resources/src/components/ChannelsEditor.svelte @@ -96,7 +96,7 @@ } } - function _open (ev: any) { + function _open(ev: any) { if (ev.detail.presenter !== undefined) { if (allowOpen) { closeTooltip() diff --git a/plugins/contact-resources/src/components/ChannelsView.svelte b/plugins/contact-resources/src/components/ChannelsView.svelte index 5db024e4a1..13874dcff6 100644 --- a/plugins/contact-resources/src/components/ChannelsView.svelte +++ b/plugins/contact-resources/src/components/ChannelsView.svelte @@ -52,7 +52,7 @@ const dispatch = createEventDispatcher() - function getProvider ( + function getProvider( item: AttachedData, map: Map, ChannelProvider>, notifyContextByDoc: Map, DocNotifyContext>, @@ -75,7 +75,7 @@ } } - function isNew ( + function isNew( item: Channel, notifyContextByDoc: Map, DocNotifyContext>, inboxNotificationsByContext: Map, InboxNotification[]> @@ -91,7 +91,7 @@ return inboxNotifications.some(({ isViewed }) => !isViewed) } - async function update ( + async function update( value: AttachedData[] | Channel | null, notifyContextByDoc: Map, DocNotifyContext>, inboxNotificationsByContext: Map, InboxNotification[]>, diff --git a/plugins/contact-resources/src/components/CombineAvatars.svelte b/plugins/contact-resources/src/components/CombineAvatars.svelte index 8e4279381e..f956000a0d 100644 --- a/plugins/contact-resources/src/components/CombineAvatars.svelte +++ b/plugins/contact-resources/src/components/CombineAvatars.svelte @@ -40,7 +40,7 @@ { limit: includeEmpty ? limit - 1 : limit } ) - function getDataOver (last: boolean, items: (Ref | undefined | null)[]): string | undefined { + function getDataOver(last: boolean, items: (Ref | undefined | null)[]): string | undefined { if (hideLimit) return if (items.length > limit && last) { return `+${items.length - limit + 1}` diff --git a/plugins/contact-resources/src/components/ContactArrayEditor.svelte b/plugins/contact-resources/src/components/ContactArrayEditor.svelte index c28dc11522..e491a7493d 100644 --- a/plugins/contact-resources/src/components/ContactArrayEditor.svelte +++ b/plugins/contact-resources/src/components/ContactArrayEditor.svelte @@ -15,7 +15,7 @@ $: _clazz = (type?.of as RefTo)?.to let timer: any - function onUpdate (evt: CustomEvent[]>): void { + function onUpdate(evt: CustomEvent[]>): void { clearTimeout(timer) timer = setTimeout(() => { onChange(evt.detail) diff --git a/plugins/contact-resources/src/components/ContactList.svelte b/plugins/contact-resources/src/components/ContactList.svelte index 73191b952f..ed99cf89e0 100644 --- a/plugins/contact-resources/src/components/ContactList.svelte +++ b/plugins/contact-resources/src/components/ContactList.svelte @@ -48,7 +48,7 @@ const dispatch = createEventDispatcher() - async function addPerson (evt: Event): Promise { + async function addPerson(evt: Event): Promise { showPopup( UsersPopup, { diff --git a/plugins/contact-resources/src/components/ContactNamePresenter.svelte b/plugins/contact-resources/src/components/ContactNamePresenter.svelte index ed72d45dec..26b8d23150 100644 --- a/plugins/contact-resources/src/components/ContactNamePresenter.svelte +++ b/plugins/contact-resources/src/components/ContactNamePresenter.svelte @@ -19,7 +19,7 @@ export let name: string | null | undefined = undefined - function getDisplayName (name: string | null | undefined): string { + function getDisplayName(name: string | null | undefined): string { if (name == null) { return '' } diff --git a/plugins/contact-resources/src/components/ContactPresenter.svelte b/plugins/contact-resources/src/components/ContactPresenter.svelte index d24e097215..6b79c8b050 100644 --- a/plugins/contact-resources/src/components/ContactPresenter.svelte +++ b/plugins/contact-resources/src/components/ContactPresenter.svelte @@ -30,12 +30,12 @@ export let maxWidth = '' export let avatarSize: IconSize = 'x-small' - function isPerson (value: Contact): boolean { + function isPerson(value: Contact): boolean { const client = getClient() const hierarchy = client.getHierarchy() return hierarchy.isDerived(value._class, contact.class.Person) } - function isEmployee (value: Contact): boolean { + function isEmployee(value: Contact): boolean { const client = getClient() const hierarchy = client.getHierarchy() return hierarchy.isDerived(value._class, contact.mixin.Employee) diff --git a/plugins/contact-resources/src/components/Contacts.svelte b/plugins/contact-resources/src/components/Contacts.svelte index 09374ffa82..a42982de2b 100644 --- a/plugins/contact-resources/src/components/Contacts.svelte +++ b/plugins/contact-resources/src/components/Contacts.svelte @@ -33,7 +33,7 @@ let searchQuery: DocumentQuery = {} let resultQuery: DocumentQuery = searchQuery - function updateResultQuery (search: string): void { + function updateResultQuery(search: string): void { searchQuery = search === '' ? {} : { $search: search } } @@ -42,7 +42,7 @@ let preference: ViewletPreference | undefined = undefined let loading = true - function showCreateDialog (ev: Event) { + function showCreateDialog(ev: Event) { showPopup(CreateContact, { space: contact.space.Contacts, targetElement: ev.target }, ev.target as HTMLElement) } diff --git a/plugins/contact-resources/src/components/CreateEmployee.svelte b/plugins/contact-resources/src/components/CreateEmployee.svelte index 29ce9fbff1..ae4debec6e 100644 --- a/plugins/contact-resources/src/components/CreateEmployee.svelte +++ b/plugins/contact-resources/src/components/CreateEmployee.svelte @@ -53,7 +53,7 @@ const id: Ref = generateId() - export function canClose (): boolean { + export function canClose(): boolean { return firstName === '' && lastName === '' && email === '' } @@ -69,7 +69,7 @@ const client = getClient() const accountClient = getAccountClient() - async function createEmployee (): Promise { + async function createEmployee(): Promise { try { saving = true changeEmail() @@ -161,7 +161,7 @@ const manager = createFocusManager() - function changeEmail (): void { + function changeEmail(): void { const index = channels.findIndex((p) => p.provider === contact.channelProvider.Email) if (index !== -1) { channels[index].value = email.trim().toLowerCase() diff --git a/plugins/contact-resources/src/components/CreateGuest.svelte b/plugins/contact-resources/src/components/CreateGuest.svelte index 62ae1e7194..12a1b44b94 100644 --- a/plugins/contact-resources/src/components/CreateGuest.svelte +++ b/plugins/contact-resources/src/components/CreateGuest.svelte @@ -42,7 +42,7 @@ const id: Ref = generateId() - export function canClose (): boolean { + export function canClose(): boolean { return firstName === '' && lastName === '' && email === '' } @@ -52,7 +52,7 @@ const client = getClient() const accountClient = getAccountClient() - async function createGuest (): Promise { + async function createGuest(): Promise { try { saving = true changeEmail() @@ -143,7 +143,7 @@ const manager = createFocusManager() - function changeEmail (): void { + function changeEmail(): void { const index = channels.findIndex((p) => p.provider === contact.channelProvider.Email) if (index !== -1) { channels[index].value = email.trim() diff --git a/plugins/contact-resources/src/components/CreateOrganization.svelte b/plugins/contact-resources/src/components/CreateOrganization.svelte index b4c70cf046..375955fb7e 100644 --- a/plugins/contact-resources/src/components/CreateOrganization.svelte +++ b/plugins/contact-resources/src/components/CreateOrganization.svelte @@ -38,7 +38,7 @@ export let onCreate: ((orgId: Ref, client: TxOperations) => Promise) | undefined = undefined - export function canClose (): boolean { + export function canClose(): boolean { return object.name === '' } @@ -57,7 +57,7 @@ fillDefaults(hierarchy, object, contact.class.Organization) - async function createOrganization (): Promise { + async function createOrganization(): Promise { if (!isEmptyMarkup(description)) { const target = makeCollabId(contact.class.Organization, id, 'description') object.description = await createMarkup(target, description) diff --git a/plugins/contact-resources/src/components/CreatePerson.svelte b/plugins/contact-resources/src/components/CreatePerson.svelte index d654013c7c..5095f70708 100644 --- a/plugins/contact-resources/src/components/CreatePerson.svelte +++ b/plugins/contact-resources/src/components/CreatePerson.svelte @@ -31,7 +31,7 @@ const id = generateId() - export function canClose (): boolean { + export function canClose(): boolean { return firstName === '' && lastName === '' } @@ -40,7 +40,7 @@ const dispatch = createEventDispatcher() const client = getClient() - async function createPerson () { + async function createPerson() { const person: Data = { name: combineName(firstName, lastName), city: object.city, diff --git a/plugins/contact-resources/src/components/EditAvatarPopup.svelte b/plugins/contact-resources/src/components/EditAvatarPopup.svelte index d23179a00c..a9524e0ea8 100644 --- a/plugins/contact-resources/src/components/EditAvatarPopup.svelte +++ b/plugins/contact-resources/src/components/EditAvatarPopup.svelte @@ -28,7 +28,7 @@ const CropperP = getResource(imageCropper.component.Cropper) let cropper: any - function onSelect (e: any) { + function onSelect(e: any) { const newFile = e.target?.files[0] as File | undefined if (newFile === undefined || !targetMimes.includes(newFile.type)) { return @@ -38,17 +38,17 @@ e.target.value = null } - async function onCrop () { + async function onCrop() { const res = await cropper.crop() dispatch('close', res) } - async function remove () { + async function remove() { dispatch('close', null) } - function selectAnother () { + function selectAnother() { inputRef.click() } diff --git a/plugins/contact-resources/src/components/EditOrganization.svelte b/plugins/contact-resources/src/components/EditOrganization.svelte index cd4e3f25c0..866ef97c7a 100644 --- a/plugins/contact-resources/src/components/EditOrganization.svelte +++ b/plugins/contact-resources/src/components/EditOrganization.svelte @@ -31,7 +31,7 @@ const dispatch = createEventDispatcher() - function nameChange () { + function nameChange() { client.updateDoc(object._class, object.space, object._id, { name: object.name }) } diff --git a/plugins/contact-resources/src/components/EditOrganizationPanel.svelte b/plugins/contact-resources/src/components/EditOrganizationPanel.svelte index 789d2ee132..785c2dd6a7 100644 --- a/plugins/contact-resources/src/components/EditOrganizationPanel.svelte +++ b/plugins/contact-resources/src/components/EditOrganizationPanel.svelte @@ -51,7 +51,7 @@ editors = res.editors }) - function getEditorFooter ( + function getEditorFooter( _class: Ref>, object?: Doc ): { footer: AnyComponent, props?: Record } | undefined { @@ -68,7 +68,7 @@ $: editorFooter = getEditorFooter(contact.class.Organization, object) $: updateObject(_id) - function updateObject (_id: Ref): void { + function updateObject(_id: Ref): void { if (lastId !== _id) { const prev = lastId lastId = _id diff --git a/plugins/contact-resources/src/components/EditPerson.svelte b/plugins/contact-resources/src/components/EditPerson.svelte index 84fada6b61..a76ddc9583 100644 --- a/plugins/contact-resources/src/components/EditPerson.svelte +++ b/plugins/contact-resources/src/components/EditPerson.svelte @@ -45,20 +45,20 @@ $: setName(object) - function setName (object: Person): void { + function setName(object: Person): void { firstName = getFirstName(object.name) lastName = getLastName(object.name) } const dispatch = createEventDispatcher() - async function firstNameChange (): Promise { + async function firstNameChange(): Promise { await client.update(object, { name: combineName(firstName, getLastName(object.name)) }) } - async function lastNameChange (): Promise { + async function lastNameChange(): Promise { await client.update(object, { name: combineName(getFirstName(object.name), lastName) }) @@ -77,7 +77,7 @@ const sendOpen = () => dispatch('open', { ignoreKeys: ['comments', 'name', 'channels', 'city'] }) onMount(sendOpen) - async function onAvatarDone (): Promise { + async function onAvatarDone(): Promise { if (object.avatar != null) { await avatarEditor.removeAvatar(object.avatar) } diff --git a/plugins/contact-resources/src/components/EditableAvatar.svelte b/plugins/contact-resources/src/components/EditableAvatar.svelte index 32293a4c88..da998bb6ab 100644 --- a/plugins/contact-resources/src/components/EditableAvatar.svelte +++ b/plugins/contact-resources/src/components/EditableAvatar.svelte @@ -37,7 +37,7 @@ $: selectedAvatar = person?.avatar $: selectedAvatarProps = person?.avatarProps - export async function createAvatar (): Promise> { + export async function createAvatar(): Promise> { const result: Data = { avatarType: selectedAvatarType, avatarProps: selectedAvatarProps, @@ -54,14 +54,14 @@ return result } - export async function removeAvatar (avatar: string) { + export async function removeAvatar(avatar: string) { if (!avatar.includes('://')) { const deleteFile = await getResource(attachment.helper.DeleteFile) await deleteFile(avatar) } } - function handlePopupSubmit ( + function handlePopupSubmit( submittedAvatarType: AvatarType, submittedAvatar: Ref | undefined | null, submittedProps: Record | undefined, @@ -75,7 +75,7 @@ } const dispatch = createEventDispatcher() - async function showSelectionPopup (e: MouseEvent) { + async function showSelectionPopup(e: MouseEvent) { if (!disabled) { showPopup(SelectAvatarPopup, { avatar: selectedAvatar, diff --git a/plugins/contact-resources/src/components/EmployeeArrayEditor.svelte b/plugins/contact-resources/src/components/EmployeeArrayEditor.svelte index 9b599d6f6c..693094114a 100644 --- a/plugins/contact-resources/src/components/EmployeeArrayEditor.svelte +++ b/plugins/contact-resources/src/components/EmployeeArrayEditor.svelte @@ -27,7 +27,7 @@ let timer: any - function onUpdate (evt: CustomEvent[]>): void { + function onUpdate(evt: CustomEvent[]>): void { clearTimeout(timer) timer = setTimeout(() => { onChange(evt.detail) @@ -36,7 +36,7 @@ $: buildQuery(attribute, space) - async function buildQuery (attribute: AnyAttribute | undefined, space: Ref | undefined): Promise { + async function buildQuery(attribute: AnyAttribute | undefined, space: Ref | undefined): Promise { const baseQuery = { active: true } diff --git a/plugins/contact-resources/src/components/EmployeeAttributePresenter.svelte b/plugins/contact-resources/src/components/EmployeeAttributePresenter.svelte index 8f86c408be..f9ad2142fe 100644 --- a/plugins/contact-resources/src/components/EmployeeAttributePresenter.svelte +++ b/plugins/contact-resources/src/components/EmployeeAttributePresenter.svelte @@ -24,7 +24,7 @@ $: employee = value ? $employeeByIdStore.get(value) : undefined - function getValue ( + function getValue( employee: Employee | undefined, value: Ref | null | undefined ): Employee | null | undefined { @@ -42,7 +42,7 @@ $: buildQuery(attribute, space) - async function buildQuery (attribute: AnyAttribute | undefined, space: Ref | undefined): Promise { + async function buildQuery(attribute: AnyAttribute | undefined, space: Ref | undefined): Promise { const baseQuery = { active: true } diff --git a/plugins/contact-resources/src/components/EmployeeBrowser.svelte b/plugins/contact-resources/src/components/EmployeeBrowser.svelte index df369de8df..2d2dc36cac 100644 --- a/plugins/contact-resources/src/components/EmployeeBrowser.svelte +++ b/plugins/contact-resources/src/components/EmployeeBrowser.svelte @@ -12,7 +12,7 @@ $: resultQuery = { ...searchQuery } let employees: Employee[] = [] - async function updateEmployees (resultQuery: DocumentQuery) { + async function updateEmployees(resultQuery: DocumentQuery) { employees = await client.findAll( contact.mixin.Employee, { diff --git a/plugins/contact-resources/src/components/EmployeeEditor.svelte b/plugins/contact-resources/src/components/EmployeeEditor.svelte index ddf28665d0..5b86382be8 100644 --- a/plugins/contact-resources/src/components/EmployeeEditor.svelte +++ b/plugins/contact-resources/src/components/EmployeeEditor.svelte @@ -45,7 +45,7 @@ $: buildQuery(attribute, space) - async function buildQuery (attribute: AnyAttribute | undefined, space: Ref | undefined): Promise { + async function buildQuery(attribute: AnyAttribute | undefined, space: Ref | undefined): Promise { const baseQuery = { active: true } diff --git a/plugins/contact-resources/src/components/EmployeeFilter.svelte b/plugins/contact-resources/src/components/EmployeeFilter.svelte index 70af9a0b7d..bbdb32aeef 100644 --- a/plugins/contact-resources/src/components/EmployeeFilter.svelte +++ b/plugins/contact-resources/src/components/EmployeeFilter.svelte @@ -48,7 +48,7 @@ let filterUpdateTimeout: any | undefined - async function getValues (search: string): Promise { + async function getValues(search: string): Promise { if (objectsPromise) { await objectsPromise } @@ -103,11 +103,11 @@ objectsPromise = undefined } - function isSelected (value: Doc | undefined | null, values: any[]): boolean { + function isSelected(value: Doc | undefined | null, values: any[]): boolean { return values.includes(value?._id ?? value) } - function handleFilterToggle (value: any): void { + function handleFilterToggle(value: any): void { if (isSelected(value, filter.value)) { filter.value = filter.value.filter((p) => (value ? p !== value._id : p != null)) } else { @@ -121,7 +121,7 @@ updateFilter() } - function updateFilter () { + function updateFilter() { clearTimeout(filterUpdateTimeout) filterUpdateTimeout = setTimeout(() => { diff --git a/plugins/contact-resources/src/components/LanguageEditor.svelte b/plugins/contact-resources/src/components/LanguageEditor.svelte index 0b08207186..262985286d 100644 --- a/plugins/contact-resources/src/components/LanguageEditor.svelte +++ b/plugins/contact-resources/src/components/LanguageEditor.svelte @@ -36,7 +36,7 @@ iconProps: { lang } })) - function showLanguagesPopup (ev: MouseEvent): void { + function showLanguagesPopup(ev: MouseEvent): void { shown = true showPopup(DropdownLabelsPopupIntl, { items, selected: value }, eventToHTMLElement(ev), async (result) => { if (result != null && result !== '') { diff --git a/plugins/contact-resources/src/components/LanguagesPopup.svelte b/plugins/contact-resources/src/components/LanguagesPopup.svelte index 599f14ea14..199bd82075 100644 --- a/plugins/contact-resources/src/components/LanguagesPopup.svelte +++ b/plugins/contact-resources/src/components/LanguagesPopup.svelte @@ -32,7 +32,7 @@ isSelected: selected.includes(lang) })) - function onSelect (lang?: string | null | number): void { + function onSelect(lang?: string | null | number): void { if (lang == null) return items = items.map((it) => { if (it.id === lang) { diff --git a/plugins/contact-resources/src/components/MergeComparer.svelte b/plugins/contact-resources/src/components/MergeComparer.svelte index d5ca6b4916..92dd4678bc 100644 --- a/plugins/contact-resources/src/components/MergeComparer.svelte +++ b/plugins/contact-resources/src/components/MergeComparer.svelte @@ -29,7 +29,7 @@ const client = getClient() const hierarchy = client.getHierarchy() - function isEqual (value: Person, targetEmp: Person, key: string) { + function isEqual(value: Person, targetEmp: Person, key: string) { if (cast !== undefined) { value = hierarchy.as(value, cast) targetEmp = hierarchy.as(targetEmp, cast) diff --git a/plugins/contact-resources/src/components/MergePersons.svelte b/plugins/contact-resources/src/components/MergePersons.svelte index 9d83cc727f..8156673fcb 100644 --- a/plugins/contact-resources/src/components/MergePersons.svelte +++ b/plugins/contact-resources/src/components/MergePersons.svelte @@ -75,7 +75,7 @@ } }) - function fillUpdate (source: Person, target: Person): DocumentUpdate { + function fillUpdate(source: Person, target: Person): DocumentUpdate { const res: DocumentUpdate = {} const attributes = hierarchy.getOwnAttributes(contact.class.Person) for (const attribute of attributes) { @@ -89,7 +89,7 @@ return res } - function fillMixinUpdate (source: Person, target: Person): Record>, DocumentUpdate> { + function fillMixinUpdate(source: Person, target: Person): Record>, DocumentUpdate> { const res: Record>, DocumentUpdate> = {} for (const mixin of mixins) { if (!hierarchy.hasMixin(source, mixin)) continue @@ -113,13 +113,13 @@ let result: Person = { ...value } - function applyUpdate (update: DocumentUpdate): void { + function applyUpdate(update: DocumentUpdate): void { const r = hierarchy.clone(targetPerson) TxProcessor.applyUpdate(r, update) result = r } - async function merge (): Promise { + async function merge(): Promise { if (sourcePerson === undefined || targetPerson === undefined) return if (!canMergeGlobalPersons) return @@ -178,7 +178,7 @@ dispatch('close') } - function select (field: string, targetValue: boolean): void { + function select(field: string, targetValue: boolean): void { if (!targetValue) { ;(update as any)[field] = (sourcePerson as any)[field] } else { @@ -189,7 +189,7 @@ applyUpdate(update) } - function mergeChannels ( + function mergeChannels( oldChannels: Channel[], targetChannels: Channel[], enabledChannels: Map, boolean> @@ -253,13 +253,13 @@ (p) => !p[1].hidden && !ignoreKeys.includes(p[0]) && !isCollectionAttr(hierarchy, { key: p[0], attr: p[1] }) ) - function getMixinAttributes (mixin: Ref>): string[] { + function getMixinAttributes(mixin: Ref>): string[] { const attr = hierarchy.getOwnAttributes(mixin) const res = Array.from(attr.entries()).filter((p) => !isCollectionAttr(hierarchy, { key: p[0], attr: p[1] })) return res.map((p) => p[0]) } - function selectMixin (mixin: Ref>, field: string, targetValue: boolean): void { + function selectMixin(mixin: Ref>, field: string, targetValue: boolean): void { const upd = mixinUpdate[mixin] ?? {} if (!targetValue) { ;(upd as any)[field] = (sourcePerson as any)[mixin][field] @@ -270,7 +270,7 @@ mixinUpdate[mixin] = upd } - async function updateAllRefs (client: TxOperations, sourceAccount: Person, targetAccount: Person): Promise { + async function updateAllRefs(client: TxOperations, sourceAccount: Person, targetAccount: Person): Promise { const h = client.getHierarchy() // Move all possible references to Employee and replace to target one. const ancestors = h.getAncestors(contact.class.Person) @@ -352,7 +352,7 @@ void checkIfCanMergeGlobalPersons(targetPerson, sourcePerson) } - async function checkIfCanMergeGlobalPersons (primaryPerson: Person, secondaryPerson: Person): Promise { + async function checkIfCanMergeGlobalPersons(primaryPerson: Person, secondaryPerson: Person): Promise { if (primaryPerson === undefined || secondaryPerson === undefined) { return } diff --git a/plugins/contact-resources/src/components/PersonIdArrayEditor.svelte b/plugins/contact-resources/src/components/PersonIdArrayEditor.svelte index ddf08c6f9a..0d8049f164 100644 --- a/plugins/contact-resources/src/components/PersonIdArrayEditor.svelte +++ b/plugins/contact-resources/src/components/PersonIdArrayEditor.svelte @@ -57,7 +57,7 @@ .filter(notEmpty) ) - function onUpdate (evt: CustomEvent[]>): void { + function onUpdate(evt: CustomEvent[]>): void { if (timer !== null) { clearTimeout(timer) } @@ -118,7 +118,7 @@ const hierarchy = client.getHierarchy() const me = getCurrentEmployee() - function sort (a: Contact, b: Contact): number { + function sort(a: Contact, b: Contact): number { if (me === a._id) { return -1 } diff --git a/plugins/contact-resources/src/components/PersonIdFilter.svelte b/plugins/contact-resources/src/components/PersonIdFilter.svelte index 8b1fcb27f0..03ed517611 100644 --- a/plugins/contact-resources/src/components/PersonIdFilter.svelte +++ b/plugins/contact-resources/src/components/PersonIdFilter.svelte @@ -51,7 +51,7 @@ const dispatch = createEventDispatcher() - async function getValues (search: string): Promise { + async function getValues(search: string): Promise { if (socialIdentitiesPromise !== undefined) { await socialIdentitiesPromise } @@ -126,13 +126,13 @@ socialIdentitiesPromise = undefined } - function isPersonSelected (person: Ref, selectedIds: any[]): boolean { + function isPersonSelected(person: Ref, selectedIds: any[]): boolean { const personSocialIds = personToPersonIdsMap[person] ?? [] return includesAny(personSocialIds, selectedIds) } - function handleFilterToggle (person: Ref): void { + function handleFilterToggle(person: Ref): void { const personSocialIds = personToPersonIdsMap[person] ?? [] if (isPersonSelected(person, filter.value)) { filter.value = filter.value.filter((p) => !personSocialIds.includes(p)) @@ -143,7 +143,7 @@ updateFilter() } - function updateFilter (): void { + function updateFilter(): void { clearTimeout(filterUpdateTimeout) filterUpdateTimeout = setTimeout(() => { diff --git a/plugins/contact-resources/src/components/PersonPresenter.svelte b/plugins/contact-resources/src/components/PersonPresenter.svelte index 9aa8a686fa..63c536e12d 100644 --- a/plugins/contact-resources/src/components/PersonPresenter.svelte +++ b/plugins/contact-resources/src/components/PersonPresenter.svelte @@ -53,7 +53,7 @@ $: personByRefStore = typeof value === 'string' ? getPersonByPersonRefStore([value]) : undefined $: personValue = typeof value === 'string' ? $personByRefStore?.get(value) : value - function getTooltip ( + function getTooltip( tooltipLabels: PersonLabelTooltip | undefined, value: Person | null | undefined ): LabelAndProps | undefined { diff --git a/plugins/contact-resources/src/components/PersonRefPresenter.svelte b/plugins/contact-resources/src/components/PersonRefPresenter.svelte index 371ef8e215..b24abba052 100644 --- a/plugins/contact-resources/src/components/PersonRefPresenter.svelte +++ b/plugins/contact-resources/src/components/PersonRefPresenter.svelte @@ -48,7 +48,7 @@ { limit: 1 } ) - function getValue (person: Person | undefined, value: Ref | null | undefined): Person | null | undefined { + function getValue(person: Person | undefined, value: Ref | null | undefined): Person | null | undefined { if (value === undefined || value === null) { return value } diff --git a/plugins/contact-resources/src/components/SelectAvatarPopup.svelte b/plugins/contact-resources/src/components/SelectAvatarPopup.svelte index 021ee19883..4793f174d0 100644 --- a/plugins/contact-resources/src/components/SelectAvatarPopup.svelte +++ b/plugins/contact-resources/src/components/SelectAvatarPopup.svelte @@ -39,7 +39,7 @@ import AvatarComponent from './Avatar.svelte' import EditAvatarPopup from './EditAvatarPopup.svelte' - function buildGravatarId (email: string): string { + function buildGravatarId(email: string): string { return MD5(email.trim().toLowerCase()).toString() } @@ -73,14 +73,14 @@ let selectedFile: Blob | undefined = file let hasGravatar = false - async function updateHasGravatar (email?: string) { + async function updateHasGravatar(email?: string) { hasGravatar = !!email && (await checkHasGravatar(buildGravatarId(email))) } $: updateHasGravatar(email) const dispatch = createEventDispatcher() - function submit () { + function submit() { onSubmit( selectedAvatarType, selectedAvatar, @@ -91,7 +91,7 @@ let inputRef: HTMLInputElement const targetMimes = ['image/png', 'image/jpg', 'image/jpeg'] - function handleDropdownSelection (e: any) { + function handleDropdownSelection(e: any) { if (selectedAvatarType === AvatarType.GRAVATAR && email) { selectedAvatarProps = { url: buildGravatarId(email) } } else if (selectedAvatarType === AvatarType.IMAGE) { @@ -111,7 +111,7 @@ } } - async function handleImageAvatarClick (): Promise { + async function handleImageAvatarClick(): Promise { let editableFile: Blob if (selectedFile !== undefined) { @@ -126,7 +126,7 @@ if (editableFile.size > 0) showCropper(editableFile) } - function showCropper (editableFile: Blob): void { + function showCropper(editableFile: Blob): void { showPopup(EditAvatarPopup, { file: editableFile, lessCrop }, undefined, (blob) => { if (blob === undefined) { if (!selectedFile && !initialSelectedAvatar) { @@ -149,7 +149,7 @@ }) } - function onSelectFile (e: any): void { + function onSelectFile(e: any): void { const targetFile = e.target?.files[0] as File | undefined if (targetFile === undefined || !targetMimes.includes(targetFile.type)) { @@ -160,7 +160,7 @@ document.body.onfocus = null } - function handleFileSelectionCancel (): void { + function handleFileSelectionCancel(): void { document.body.onfocus = null if (!inputRef.value.length) { @@ -172,7 +172,7 @@ } } - function handleClearClick (): void { + function handleClearClick(): void { selectedAvatar = undefined selectedAvatarType = AvatarType.COLOR selectedAvatarProps = { color: getPlatformAvatarColorForTextDef(name ?? '', $themeStore.dark).name } diff --git a/plugins/contact-resources/src/components/SelectAvatars.svelte b/plugins/contact-resources/src/components/SelectAvatars.svelte index abd84c86d0..c350a3cf47 100644 --- a/plugins/contact-resources/src/components/SelectAvatars.svelte +++ b/plugins/contact-resources/src/components/SelectAvatars.svelte @@ -42,7 +42,7 @@ const dispatch = createEventDispatcher() - async function addPerson (evt: Event): Promise { + async function addPerson(evt: Event): Promise { showPopup( UsersPopup, { diff --git a/plugins/contact-resources/src/components/SelectUsersPopup.svelte b/plugins/contact-resources/src/components/SelectUsersPopup.svelte index eabb667f25..1e9071ebaf 100644 --- a/plugins/contact-resources/src/components/SelectUsersPopup.svelte +++ b/plugins/contact-resources/src/components/SelectUsersPopup.svelte @@ -41,15 +41,15 @@ let search: string = '' let selectedIds: Ref[] = selected - function handleCancel (): void { + function handleCancel(): void { dispatch('close') } - function okAction (): void { + function okAction(): void { dispatch('close', selectedIds) } - function handleSelectionChanged (event: CustomEvent): void { + function handleSelectionChanged(event: CustomEvent): void { selectedIds = event.detail ?? [] } diff --git a/plugins/contact-resources/src/components/SocialEditor.svelte b/plugins/contact-resources/src/components/SocialEditor.svelte index 40247f4326..65fff89df4 100644 --- a/plugins/contact-resources/src/components/SocialEditor.svelte +++ b/plugins/contact-resources/src/components/SocialEditor.svelte @@ -29,7 +29,7 @@ let providers: ChannelProvider[] = [] - function findValue (provider: Ref): number { + function findValue(provider: Ref): number { for (let i = 0; i < values.length; i++) { if (values[i].provider === provider) return i } @@ -49,7 +49,7 @@ } }) - function filterUndefined (channels: AttachedData[]): AttachedData[] { + function filterUndefined(channels: AttachedData[]): AttachedData[] { return channels.filter((channel) => channel.value !== undefined && channel.value.length > 0) } diff --git a/plugins/contact-resources/src/components/SpaceMembers.svelte b/plugins/contact-resources/src/components/SpaceMembers.svelte index 746aae678b..8c42622096 100644 --- a/plugins/contact-resources/src/components/SpaceMembers.svelte +++ b/plugins/contact-resources/src/components/SpaceMembers.svelte @@ -50,7 +50,7 @@ $: isSearch = search.trim().length let members: Set> = new Set>() - async function getUsers (accounts: AccountUuid[], search: string): Promise { + async function getUsers(accounts: AccountUuid[], search: string): Promise { const employeeRefs = accounts.map((acc) => $employeeRefByAccountUuidStore.get(acc)).filter(notEmpty) const query: DocumentQuery = isSearch > 0 ? { name: { $like: '%' + search + '%' } } : { _id: { $in: employeeRefs } } diff --git a/plugins/contact-resources/src/components/SpaceMembersEditor.svelte b/plugins/contact-resources/src/components/SpaceMembersEditor.svelte index 1069b56be8..7ba5dd6e87 100644 --- a/plugins/contact-resources/src/components/SpaceMembersEditor.svelte +++ b/plugins/contact-resources/src/components/SpaceMembersEditor.svelte @@ -32,7 +32,7 @@ $: joined = value.includes(myAccUuid) - function join (): void { + function join(): void { if (value.includes(myAccUuid)) return if (onChange === undefined) return diff --git a/plugins/contact-resources/src/components/TranslationSettings.svelte b/plugins/contact-resources/src/components/TranslationSettings.svelte index e66f0e19f3..8bff0033fc 100644 --- a/plugins/contact-resources/src/components/TranslationSettings.svelte +++ b/plugins/contact-resources/src/components/TranslationSettings.svelte @@ -32,7 +32,7 @@ $: settings = $translationStore $: enabled = settings?.enabled ?? false - async function toggle (data: Partial>): Promise { + async function toggle(data: Partial>): Promise { if (settings != null) { await client.update(settings, data) } else { @@ -45,7 +45,7 @@ } } - async function changeEnable (): Promise { + async function changeEnable(): Promise { enabled = !enabled await toggle({ enabled }) } diff --git a/plugins/contact-resources/src/components/UserBox.svelte b/plugins/contact-resources/src/components/UserBox.svelte index 6874531b61..d0623d8a94 100644 --- a/plugins/contact-resources/src/components/UserBox.svelte +++ b/plugins/contact-resources/src/components/UserBox.svelte @@ -74,7 +74,7 @@ const client = getClient() - async function updateSelected (value: Ref | null | undefined): Promise { + async function updateSelected(value: Ref | null | undefined): Promise { selected = value ? await client.findOne(_previewClass, { _id: value }) : undefined } diff --git a/plugins/contact-resources/src/components/UserBoxItems.svelte b/plugins/contact-resources/src/components/UserBoxItems.svelte index 3e87c6af7b..f8755f8d7d 100644 --- a/plugins/contact-resources/src/components/UserBoxItems.svelte +++ b/plugins/contact-resources/src/components/UserBoxItems.svelte @@ -46,7 +46,7 @@ const dispatch = createEventDispatcher() - async function addPerson (evt: Event): Promise { + async function addPerson(evt: Event): Promise { showPopup( UsersPopup, { @@ -75,11 +75,11 @@ ) } - function getPersons (employees: Ref[], employeeById: IdMap): Employee[] { + function getPersons(employees: Ref[], employeeById: IdMap): Employee[] { return employees.map((p) => employeeById.get(p)).filter((p) => p !== undefined) } - function removePerson (removed: Employee): void { + function removePerson(removed: Employee): void { const newItems = items.filter((it) => it !== removed._id) dispatch('update', newItems) } diff --git a/plugins/contact-resources/src/components/UserBoxList.svelte b/plugins/contact-resources/src/components/UserBoxList.svelte index 1d82450ac1..4fe6212e9a 100644 --- a/plugins/contact-resources/src/components/UserBoxList.svelte +++ b/plugins/contact-resources/src/components/UserBoxList.svelte @@ -43,7 +43,7 @@ export let sort: ((a: Person, b: Person) => number) | undefined = undefined - function filter (items: Ref[] | undefined): Ref[] { + function filter(items: Ref[] | undefined): Ref[] { return (items ?? []).filter((it, idx, arr) => arr.indexOf(it) === idx) } @@ -55,7 +55,7 @@ const dispatch = createEventDispatcher() - async function addPerson (evt: Event): Promise { + async function addPerson(evt: Event): Promise { const popupProps: any = { _class, label, diff --git a/plugins/contact-resources/src/components/UsersList.svelte b/plugins/contact-resources/src/components/UsersList.svelte index 217da8a6d9..872894eafb 100644 --- a/plugins/contact-resources/src/components/UsersList.svelte +++ b/plugins/contact-resources/src/components/UsersList.svelte @@ -68,7 +68,7 @@ { limit: 200 } ) - function handleSelection (contacts: Employee[], index: number) { + function handleSelection(contacts: Employee[], index: number) { const contact = contacts[index] if (contact === undefined) { @@ -80,7 +80,7 @@ dispatch('select', Array.from(selectedItems)) } - function onKeydown (key: KeyboardEvent): void { + function onKeydown(key: KeyboardEvent): void { if (key.code === 'ArrowUp') { key.stopPropagation() key.preventDefault() diff --git a/plugins/contact-resources/src/components/WorkspaceMemberStatusEditor.svelte b/plugins/contact-resources/src/components/WorkspaceMemberStatusEditor.svelte index 538e10fda6..62df24cc6e 100644 --- a/plugins/contact-resources/src/components/WorkspaceMemberStatusEditor.svelte +++ b/plugins/contact-resources/src/components/WorkspaceMemberStatusEditor.svelte @@ -68,21 +68,21 @@ /** Avoid flipping UI preset to `custom` when we programmatically set `message` from a template */ let skipMarkCustom = false - function presetEmoji (value: UiPreset): string { + function presetEmoji(value: UiPreset): string { if (value === 'away') return '⏳' if (value === 'vacation') return '🏖️' if (value === 'outSick') return '🤒' return '💬' } - function emojiToUiPreset (e: string): UiPreset { + function emojiToUiPreset(e: string): UiPreset { if (e === '⏳') return 'away' if (e === '🏖️') return 'vacation' if (e === '🤒') return 'outSick' return 'custom' } - function splitStoredMessage (raw: string): { emoji: string, text: string } { + function splitStoredMessage(raw: string): { emoji: string, text: string } { const t = raw.trim() if (t === '') return { emoji: '💬', text: '' } const sp = t.indexOf(' ') @@ -90,12 +90,12 @@ return { emoji: t.slice(0, sp), text: t.slice(sp + 1).trim() } } - function markCustom (): void { + function markCustom(): void { if (skipMarkCustom) return preset = 'custom' } - async function applyTemplate (template: Exclude): Promise { + async function applyTemplate(template: Exclude): Promise { skipMarkCustom = true preset = template emojiText = presetEmoji(template) @@ -141,14 +141,14 @@ ? '09:00' : `${String(new Date(clearAt).getHours()).padStart(2, '0')}:${String(new Date(clearAt).getMinutes()).padStart(2, '0')}` - function getEndOfDayTimestamp (): number { + function getEndOfDayTimestamp(): number { const d = new Date() d.setHours(23, 59, 59, 999) return d.getTime() } /** Best-effort: stored status only has `clearAt`, not which menu option was chosen */ - function inferClearModeFromTimestamp (ts: number): ClearMode { + function inferClearModeFromTimestamp(ts: number): ClearMode { const now = Date.now() const toleranceMs = 90 * 1000 if (ts <= now) return 'none' @@ -168,7 +168,7 @@ return 'pickDate' } - function applyClearMode (mode: ClearMode): void { + function applyClearMode(mode: ClearMode): void { clearMode = mode const now = Date.now() if (mode === 'none') { @@ -192,7 +192,7 @@ } } - function syncClearModeFromTimestamp (): void { + function syncClearModeFromTimestamp(): void { if (clearAt === undefined) { clearMode = 'none' return @@ -206,12 +206,12 @@ clearMode = inferred } - function finishPopup (): void { + function finishPopup(): void { closePopup() dispatch('close') } - function openUntilDatePicker (ev: MouseEvent): void { + function openUntilDatePicker(ev: MouseEvent): void { showPopup( DatePopup, { @@ -230,7 +230,7 @@ ) } - async function openClearModeMenu (ev: MouseEvent): Promise { + async function openClearModeMenu(ev: MouseEvent): Promise { const lang = getCurrentLanguage() const value: SelectPopupValueType[] = await Promise.all( CLEAR_MODE_MENU_ORDER.map(async (id) => ({ @@ -261,7 +261,7 @@ ) } - function onTimeChange (ev: Event): void { + function onTimeChange(ev: Event): void { if (clearAt === undefined) return const value = (ev.target as HTMLInputElement).value const [h, m] = value.split(':').map((it) => Number(it)) @@ -271,7 +271,7 @@ clearAt = d.getTime() } - function openEmojiPicker (ev: MouseEvent): void { + function openEmojiPicker(ev: MouseEvent): void { const target = ev.currentTarget as HTMLElement showPopup(EmojiPopup, { selected: emojiText }, target, (result: { text?: string, image?: unknown } | undefined) => { if (result?.text === undefined) return @@ -280,7 +280,7 @@ }) } - async function save (): Promise { + async function save(): Promise { const trimmed = trimWorkspaceMemberStatusMessage(message) const chosenEmoji = emojiText.trim() !== '' ? emojiText.trim() : presetEmoji(preset) const finalMessage = `${chosenEmoji} ${trimmed}`.trim() @@ -311,7 +311,7 @@ finishPopup() } - async function clearAll (): Promise { + async function clearAll(): Promise { if (existing !== undefined) { await client.remove(existing) } diff --git a/plugins/contact-resources/src/components/person/EmployeePreviewPopup.svelte b/plugins/contact-resources/src/components/person/EmployeePreviewPopup.svelte index 45cc8ca702..7050e9cd74 100644 --- a/plugins/contact-resources/src/components/person/EmployeePreviewPopup.svelte +++ b/plugins/contact-resources/src/components/person/EmployeePreviewPopup.svelte @@ -59,7 +59,7 @@ levelQuery.unsubscribe() } - async function viewProfile (): Promise { + async function viewProfile(): Promise { if (employee === undefined) return const panelComponent = hierarchy.classHierarchyMixin(employee._class as Ref>, view.mixin.ObjectPanel) const comp = panelComponent?.component ?? view.component.EditDoc diff --git a/plugins/contact-resources/src/components/person/TimePresenter.svelte b/plugins/contact-resources/src/components/person/TimePresenter.svelte index 201a7f22e9..486b8bb6a9 100644 --- a/plugins/contact-resources/src/components/person/TimePresenter.svelte +++ b/plugins/contact-resources/src/components/person/TimePresenter.svelte @@ -19,7 +19,7 @@ export let timezone: string | undefined - function displayTimeInTimezone (timezone: string): string { + function displayTimeInTimezone(timezone: string): string { const options: Intl.DateTimeFormatOptions = { timeZone: timezone, hour: '2-digit', diff --git a/plugins/contact-resources/src/index.ts b/plugins/contact-resources/src/index.ts index 81cc7b5870..39f53965c9 100644 --- a/plugins/contact-resources/src/index.ts +++ b/plugins/contact-resources/src/index.ts @@ -159,7 +159,7 @@ import { export * from './utils' export * from './workspaceMemberStatus' export { employeeByIdStore } from './utils' -export * from './assignee' +export type * from './assignee' export * from './translation' export { PersonIdArrayEditor, @@ -312,7 +312,7 @@ async function kickEmployee (doc: Person): Promise { if (doc.personUuid != null) { const leaveWorkspace = await getResource(login.function.LeaveWorkspace) - await leaveWorkspace(doc.personUuid as AccountUuid) + await leaveWorkspace(doc.personUuid) } } }) diff --git a/plugins/contact-resources/src/utils.ts b/plugins/contact-resources/src/utils.ts index 5384ab6f31..3d02d6a97d 100644 --- a/plugins/contact-resources/src/utils.ts +++ b/plugins/contact-resources/src/utils.ts @@ -204,11 +204,11 @@ export async function getRefs ( const filteredRefs = docUpdates !== undefined && inboxNotificationsByContext !== undefined ? refs.filter((channel) => { - const docUpdate = docUpdates.get(channel._id) - return docUpdate != null - ? inboxNotificationsByContext.get(docUpdate._id)?.some(({ isViewed }) => !isViewed) - : (channel.items ?? 0) > 0 - }) + const docUpdate = docUpdates.get(channel._id) + return docUpdate != null + ? inboxNotificationsByContext.get(docUpdate._id)?.some(({ isViewed }) => !isViewed) + : (channel.items ?? 0) > 0 + }) : refs const result = Array.from(new Set(filteredRefs.map((p) => p.attachedTo))) FilterQuery.results.set(filter.index, result) @@ -342,7 +342,7 @@ async function generateLocation (loc: Location, id: Ref): Promise>, view.mixin.ObjectPanel) + const objectPanel = client.getHierarchy().classHierarchyMixin(doc._class, view.mixin.ObjectPanel) const component = objectPanel?.component ?? view.component.EditDoc return { @@ -433,7 +433,7 @@ export function getAnonymousRefs ( return [] } const ref = byAccount.get(readOnlyGuestAccountUuid) - return ref !== undefined ? [ref as unknown as Ref] : [] + return ref !== undefined ? [ref] : [] } /** diff --git a/plugins/converter-resources/src/components/CopyAsMarkdownButton.svelte b/plugins/converter-resources/src/components/CopyAsMarkdownButton.svelte index b09753503b..38aa49cfb2 100644 --- a/plugins/converter-resources/src/components/CopyAsMarkdownButton.svelte +++ b/plugins/converter-resources/src/components/CopyAsMarkdownButton.svelte @@ -33,7 +33,7 @@ } ] satisfies DropdownIntlItem[] - async function handleCopyAll (e: Event): Promise { + async function handleCopyAll(e: Event): Promise { if (relationshipTableData !== undefined) { await copyRelationshipTableAsMarkdown(e, relationshipTableData) } else if (_class !== undefined && query !== undefined) { @@ -49,7 +49,7 @@ } } - async function onActionSelected (event?: CustomEvent): Promise { + async function onActionSelected(event?: CustomEvent): Promise { if (event == null || event.detail !== COPY_ALL_ACTION_ID) { return } diff --git a/plugins/converter-resources/src/formatter/utils.ts b/plugins/converter-resources/src/formatter/utils.ts index 56f1f0283f..d62f3ffdac 100644 --- a/plugins/converter-resources/src/formatter/utils.ts +++ b/plugins/converter-resources/src/formatter/utils.ts @@ -141,7 +141,7 @@ export async function formatSingleValue ( const isRef = attrType?._class === core.class.RefTo if (isRef) { if (attrType.to !== undefined && hierarchy.isDerived(attrType.to, contact.mixin.Employee)) { - const name = await loadPersonNameByRef(value as any, hierarchy, userCache as any) + const name = await loadPersonNameByRef(value, hierarchy, userCache) return name } } diff --git a/plugins/converter-resources/src/markdown/tableBuilder.ts b/plugins/converter-resources/src/markdown/tableBuilder.ts index 30297054cf..3820630c01 100644 --- a/plugins/converter-resources/src/markdown/tableBuilder.ts +++ b/plugins/converter-resources/src/markdown/tableBuilder.ts @@ -74,7 +74,7 @@ async function preloadRefLookups ( const refDocs = await client.findAll(targetClass, { _id: { $in: ids as any } }) const byId = new Map() for (const d of refDocs) { - byId.set(d._id as string, d) + byId.set(d._id, d) } for (const doc of docs) { @@ -135,7 +135,7 @@ function collectRelationshipDocsForRefPreload ( ): Doc[] { const byId = new Map() const add = (d: Doc | undefined): void => { - if (d !== undefined) byId.set(d._id as string, d) + if (d !== undefined) byId.set(d._id, d) } for (const o of props.objects) add(o) diff --git a/plugins/converter-resources/src/model/headerGenerator.ts b/plugins/converter-resources/src/model/headerGenerator.ts index 78eb02c614..9f1f6aead5 100644 --- a/plugins/converter-resources/src/model/headerGenerator.ts +++ b/plugins/converter-resources/src/model/headerGenerator.ts @@ -61,7 +61,7 @@ export async function generateHeaders ( if (attr.label.startsWith('custom')) { label = await resolveCustomAttributeLabel(attr.label, firstDocClass, hierarchy, language) } else if (isIntlString(attr.label)) { - label = await translate(attr.label as unknown as IntlString, {}, language) + label = await translate(attr.label, {}, language) } else { label = attr.label } diff --git a/plugins/desktop-downloads-resources/src/components/FileDownloadExt.svelte b/plugins/desktop-downloads-resources/src/components/FileDownloadExt.svelte index 0deea4b932..144bcfc9b7 100644 --- a/plugins/desktop-downloads-resources/src/components/FileDownloadExt.svelte +++ b/plugins/desktop-downloads-resources/src/components/FileDownloadExt.svelte @@ -21,7 +21,7 @@ let pressed: boolean = false let element: HTMLElement - function handleClick (): void { + function handleClick(): void { pressed = true showPopup(FileDownloadStatusPopup, {}, element, () => { pressed = false diff --git a/plugins/devmodel-resources/src/index.ts b/plugins/devmodel-resources/src/index.ts index 90ff300fb8..4c1c5b33a6 100644 --- a/plugins/devmodel-resources/src/index.ts +++ b/plugins/devmodel-resources/src/index.ts @@ -86,7 +86,7 @@ export class PresentationClientHook implements ClientHook { return candidate } - async findOne( + async findOne ( client: Client, _class: Ref>, query: DocumentQuery, @@ -113,7 +113,7 @@ export class PresentationClientHook implements ClientHook { return result } - async findAll( + async findAll ( client: Client, _class: Ref>, query: DocumentQuery, diff --git a/plugins/diffview-resources/src/components/DiffView.svelte b/plugins/diffview-resources/src/components/DiffView.svelte index 5072f744ca..ad92873b42 100644 --- a/plugins/diffview-resources/src/components/DiffView.svelte +++ b/plugins/diffview-resources/src/components/DiffView.svelte @@ -25,16 +25,16 @@ let mode: DiffViewMode = getCurrentMode() - function getCurrentMode (): DiffViewMode { + function getCurrentMode(): DiffViewMode { return (localStorage.getItem('diffview.mode') as DiffViewMode) ?? 'unified' } - function saveMode (value: DiffViewMode) { + function saveMode(value: DiffViewMode) { localStorage.setItem('diffview.mode', value) mode = value } - function isFileViewed (diffFile: DiffFile): boolean { + function isFileViewed(diffFile: DiffFile): boolean { const { fileName, sha } = diffFile return viewed.some((file) => file.fileName === fileName && file.sha === sha) diff --git a/plugins/diffview-resources/src/components/FileDiffContent.svelte b/plugins/diffview-resources/src/components/FileDiffContent.svelte index 5a5d2350a2..1a89f85dbc 100644 --- a/plugins/diffview-resources/src/components/FileDiffContent.svelte +++ b/plugins/diffview-resources/src/components/FileDiffContent.svelte @@ -28,17 +28,17 @@ } } - function codeLineClass (line: DiffLine): string { + function codeLineClass(line: DiffLine): string { return `line-${line.type}` } $: highlighted = file.hunks.map((hunk) => renderHunk(hunk, options)) - function prepareLinesForUnifiedView (lines: DiffLineRenderResult[]): DiffLine[] { + function prepareLinesForUnifiedView(lines: DiffLineRenderResult[]): DiffLine[] { return lines.map(({ before, after }) => (after.type !== DiffLineType.EMPTY ? after : before)) } - function prepareLinesForSplitView (lines: DiffLineRenderResult[]): DiffLineRenderResult[] { + function prepareLinesForSplitView(lines: DiffLineRenderResult[]): DiffLineRenderResult[] { const before: DiffLine[] = [] const after: DiffLine[] = [] diff --git a/plugins/diffview-resources/src/components/FileDiffHeader.svelte b/plugins/diffview-resources/src/components/FileDiffHeader.svelte index d74c450ff9..59aa306ac6 100644 --- a/plugins/diffview-resources/src/components/FileDiffHeader.svelte +++ b/plugins/diffview-resources/src/components/FileDiffHeader.svelte @@ -29,7 +29,7 @@ const dispatch = createEventDispatcher() - async function copyFileNameToClipboard (): Promise { + async function copyFileNameToClipboard(): Promise { const { oldName, newName } = file const name = isDevNullName(newName) ? newName : oldName diff --git a/plugins/diffview-resources/src/components/FileDiffView.svelte b/plugins/diffview-resources/src/components/FileDiffView.svelte index e90d262a31..cb78566253 100644 --- a/plugins/diffview-resources/src/components/FileDiffView.svelte +++ b/plugins/diffview-resources/src/components/FileDiffView.svelte @@ -39,7 +39,7 @@ let hideDiffLabel = getHideDiffLabel(file) - function getHideDiffLabel (file: DiffFile): IntlString | undefined { + function getHideDiffLabel(file: DiffFile): IntlString | undefined { if (diffRenderLimit >= 0 && file.stats.addedLines + file.stats.addedLines > diffRenderLimit) { return diffview.string.LargeDiffsAreHidden } @@ -48,7 +48,7 @@ } } - function getNoChangesLabel (file: DiffFile): IntlString { + function getNoChangesLabel(file: DiffFile): IntlString { if (file.hunks.length === 0) { if (file.isTooBig === true) { return diffview.string.FileIsTooLarge @@ -60,7 +60,7 @@ return diffview.string.NoChanges } - function showDiff (): void { + function showDiff(): void { hideDiffLabel = undefined } diff --git a/plugins/document-resources/src/components/CreateDocument.svelte b/plugins/document-resources/src/components/CreateDocument.svelte index ee25b26dc3..9bd3d0d9be 100644 --- a/plugins/document-resources/src/components/CreateDocument.svelte +++ b/plugins/document-resources/src/components/CreateDocument.svelte @@ -36,7 +36,7 @@ import { createEmptyDocument } from '../utils' import TeamspacePresenter from './teamspace/TeamspacePresenter.svelte' - export function canClose (): boolean { + export function canClose(): boolean { return object.title === '' } @@ -58,7 +58,7 @@ $: if (_space !== space) _parent = undefined $: canSave = getTitle(object.title).length > 0 && _space !== undefined - function chooseIcon (): void { + function chooseIcon(): void { const { icon, color } = object const icons = [document.icon.Document, document.icon.Teamspace] const update = (result: any): void => { @@ -70,11 +70,11 @@ showPopup(IconPicker, { icon, color, icons }, 'top', update, update) } - function getTitle (value: string): string { + function getTitle(value: string): string { return value.trim() } - async function create (): Promise { + async function create(): Promise { await createEmptyDocument(client, id, _space, _parent, object) Analytics.handleEvent(DocumentEvents.DocumentCreated, { id, parent: _parent }) dispatch('close', id) diff --git a/plugins/document-resources/src/components/CreateSnapshot.svelte b/plugins/document-resources/src/components/CreateSnapshot.svelte index c6dca74eba..25dabcbe68 100644 --- a/plugins/document-resources/src/components/CreateSnapshot.svelte +++ b/plugins/document-resources/src/components/CreateSnapshot.svelte @@ -26,7 +26,7 @@ let name = '' - async function create (): Promise { + async function create(): Promise { // TODO implement me // const snapshot = await takeSnapshot(doc.content, name) // await client.addCollection( diff --git a/plugins/document-resources/src/components/DocumentEditor.svelte b/plugins/document-resources/src/components/DocumentEditor.svelte index 52a3d00cfa..46929d33aa 100644 --- a/plugins/document-resources/src/components/DocumentEditor.svelte +++ b/plugins/document-resources/src/components/DocumentEditor.svelte @@ -45,7 +45,7 @@ let collabEditor: CollaboratorEditor - export function focus (position?: FocusPosition): void { + export function focus(position?: FocusPosition): void { collabEditor.focus(position) } diff --git a/plugins/document-resources/src/components/DocumentTitle.svelte b/plugins/document-resources/src/components/DocumentTitle.svelte index b8b7b04f6e..6caf0e4bce 100644 --- a/plugins/document-resources/src/components/DocumentTitle.svelte +++ b/plugins/document-resources/src/components/DocumentTitle.svelte @@ -30,7 +30,7 @@ let input: HTMLInputElement let placeholderTranslation = '' - function updatePlaceholderTranslation (ph: IntlString | undefined): void { + function updatePlaceholderTranslation(ph: IntlString | undefined): void { if (ph) { translateCB(ph, {}, $themeStore.language, (res) => { placeholderTranslation = res @@ -63,7 +63,7 @@ input.addEventListener('focus', updateFocus, { once: true }) } - export function focus (): void { + export function focus(): void { input.focus() } diff --git a/plugins/document-resources/src/components/Documents.svelte b/plugins/document-resources/src/components/Documents.svelte index b15cd1ac4a..99d4590388 100644 --- a/plugins/document-resources/src/components/Documents.svelte +++ b/plugins/document-resources/src/components/Documents.svelte @@ -28,7 +28,7 @@ let search = '' let resultQuery: DocumentQuery = query - function updateResultQuery (search: string, query: DocumentQuery): void { + function updateResultQuery(search: string, query: DocumentQuery): void { resultQuery = search === '' ? { ...query } : { ...query, $search: search } } diff --git a/plugins/document-resources/src/components/EditDoc.svelte b/plugins/document-resources/src/components/EditDoc.svelte index 55ea1bb4eb..4212706de4 100644 --- a/plugins/document-resources/src/components/EditDoc.svelte +++ b/plugins/document-resources/src/components/EditDoc.svelte @@ -77,7 +77,7 @@ let useMaxWidth = getUseMaxWidth() $: saveUseMaxWidth(useMaxWidth) - export function canClose (): boolean { + export function canClose(): boolean { return false } @@ -100,7 +100,7 @@ const notificationClient = getResource(notification.function.GetInboxNotificationsClient).then((res) => res()) $: read(_id) - function read (_id: Ref): void { + function read(_id: Ref): void { if (lastId !== _id) { loadedDocumentContent = false const prev = lastId @@ -114,7 +114,7 @@ clearTimeout(copyTimeout) }) - async function createEmbedding (file: File): Promise<{ file: Ref, type: string } | undefined> { + async function createEmbedding(file: File): Promise<{ file: Ref, type: string } | undefined> { if (doc === undefined) { return undefined } @@ -155,7 +155,7 @@ $: canSave = title.trim().length > 0 - async function saveTitle (ev: Event): Promise { + async function saveTitle(ev: Event): Promise { ev.preventDefault() if (doc === undefined || !canSave) { @@ -169,7 +169,7 @@ } } - async function chooseIcon (): Promise { + async function chooseIcon(): Promise { if (doc !== undefined) { const { icon, color } = doc const icons = [document.icon.Document, document.icon.Teamspace] @@ -182,24 +182,24 @@ } } - function showContextMenu (ev: MouseEvent): void { + function showContextMenu(ev: MouseEvent): void { if (doc !== undefined) { showMenu(ev, { object: doc, excludedActions: [view.action.Open] }) } } - function getUseMaxWidth (): boolean { + function getUseMaxWidth(): boolean { const useMaxWidth = localStorage.getItem('document.useMaxWidth') return useMaxWidth === 'true' } - function saveUseMaxWidth (useMaxWidth: boolean): void { + function saveUseMaxWidth(useMaxWidth: boolean): void { localStorage.setItem('document.useMaxWidth', useMaxWidth.toString()) } let sideContentSpace = 0 - function updateSizeContentSpace (width: number): void { + function updateSizeContentSpace(width: number): void { sideContentSpace = width } diff --git a/plugins/document-resources/src/components/Move.svelte b/plugins/document-resources/src/components/Move.svelte index 0b2b605b80..75218b4b56 100644 --- a/plugins/document-resources/src/components/Move.svelte +++ b/plugins/document-resources/src/components/Move.svelte @@ -34,11 +34,11 @@ let children: Ref[] = [] $: void updateChildren(value) - async function updateChildren (doc: Document): Promise { + async function updateChildren(doc: Document): Promise { children = await findChildren(doc) } - async function save (): Promise { + async function save(): Promise { const ops = client.apply(value._id) await moveDocument(value, space, parent ?? document.ids.NoParent) @@ -55,7 +55,7 @@ await ops.commit() } - async function findChildren (doc: Document): Promise>> { + async function findChildren(doc: Document): Promise>> { const documents = await client.findAll( document.class.Document, { space: doc.space, parent: { $ne: document.ids.NoParent } }, diff --git a/plugins/document-resources/src/components/NewDocumentHeader.svelte b/plugins/document-resources/src/components/NewDocumentHeader.svelte index dd17effa9f..d936820301 100644 --- a/plugins/document-resources/src/components/NewDocumentHeader.svelte +++ b/plugins/document-resources/src/components/NewDocumentHeader.svelte @@ -46,7 +46,7 @@ $: parent = getDocumentIdFromFragment(currentFragment ?? '') - async function newDocument (): Promise { + async function newDocument(): Promise { Analytics.handleEvent(DocumentEvents.CreateDocumentButtonClicked) showPopup(CreateDocument, { space: currentSpace, parent }, 'top', async (id) => { if (id !== undefined && id !== null) { @@ -58,13 +58,13 @@ }) } - async function newTeamspace (): Promise { + async function newTeamspace(): Promise { showPopup(CreateTeamspace, {}, 'top') } let mainActionId: string | undefined = undefined let visibleActions: string[] = [] - function updateActions (teamspace: boolean): void { + function updateActions(teamspace: boolean): void { mainActionId = document.string.CreateDocument if (teamspace) { visibleActions = [document.string.CreateTeamspace, document.string.CreateDocument] diff --git a/plugins/document-resources/src/components/navigator/DocHierarchy.svelte b/plugins/document-resources/src/components/navigator/DocHierarchy.svelte index 32d2cac072..39cdc556db 100644 --- a/plugins/document-resources/src/components/navigator/DocHierarchy.svelte +++ b/plugins/document-resources/src/components/navigator/DocHierarchy.svelte @@ -46,11 +46,11 @@ const client = getClient() const dispatch = createEventDispatcher() - function getDescendants (obj: Ref): Ref[] { + function getDescendants(obj: Ref): Ref[] { return (descendants.get(obj) ?? []).sort((a, b) => a.rank.localeCompare(b.rank)).map((p) => p._id) } - function getActions (doc: Document): Action[] { + function getActions(doc: Document): Action[] { return [ { icon: IconAdd, @@ -68,7 +68,7 @@ ] } - async function getMoreActions (obj: Document): Promise { + async function getMoreActions(obj: Document): Promise { const result: Action[] = [] const extraActions = await getContributedActions(client, obj) for (const act of extraActions) { @@ -84,7 +84,7 @@ return result } - function handleDocumentSelected (obj: Ref): void { + function handleDocumentSelected(obj: Ref): void { dispatch('selected', obj) } diff --git a/plugins/document-resources/src/components/navigator/DocTreeElement.svelte b/plugins/document-resources/src/components/navigator/DocTreeElement.svelte index 43d3d8382e..71b1bc1695 100644 --- a/plugins/document-resources/src/components/navigator/DocTreeElement.svelte +++ b/plugins/document-resources/src/components/navigator/DocTreeElement.svelte @@ -36,14 +36,14 @@ export let forciblyСollapsed: boolean = false let hovered: boolean = false - async function onMenuClick (ev: MouseEvent): Promise { + async function onMenuClick(ev: MouseEvent): Promise { showPopup(Menu, { actions: await moreActions(ev), ctx: doc._id }, ev.target as HTMLElement, () => { hovered = false }) hovered = true } - function selectDocument (): void { + function selectDocument(): void { const loc = getDocumentLink(doc) navigate(loc) } diff --git a/plugins/document-resources/src/components/navigator/TeamspaceSpacePresenter.svelte b/plugins/document-resources/src/components/navigator/TeamspaceSpacePresenter.svelte index 74e1e2f1f1..3bd81f7d8a 100644 --- a/plugins/document-resources/src/components/navigator/TeamspaceSpacePresenter.svelte +++ b/plugins/document-resources/src/components/navigator/TeamspaceSpacePresenter.svelte @@ -59,11 +59,11 @@ let documentById: Map, Document> = new Map, Document>() let descendants: Map, Document[]> = new Map, Document[]>() - function getDescendants (obj: Ref): Ref[] { + function getDescendants(obj: Ref): Ref[] { return (descendants.get(obj) ?? []).sort((a, b) => a.rank.localeCompare(b.rank)).map((p) => p._id) } - function getAllDescendants (obj: Ref): Ref[] { + function getAllDescendants(obj: Ref): Ref[] { const result: Ref[] = [] const queue: Ref[] = [obj] @@ -115,7 +115,7 @@ } ) - function getDocActions (doc: Document): Action[] { + function getDocActions(doc: Document): Action[] { return [ { icon: IconAdd, @@ -134,7 +134,7 @@ ] } - async function getMoreActions (obj: Document): Promise { + async function getMoreActions(obj: Document): Promise { const result: Action[] = [] const extraActions = await getContributedActions(client, obj) for (const act of extraActions) { @@ -158,14 +158,14 @@ let draggedOverTop: number = 0 let cannotDropTo: Ref[] = [] - function canDrop (object: Ref, target: Ref): boolean { + function canDrop(object: Ref, target: Ref): boolean { if (object === target) return false if (cannotDropTo.includes(target)) return false return true } - function onDragStart (event: DragEvent, object: Ref): void { + function onDragStart(event: DragEvent, object: Ref): void { // no prevent default to leverage default rendering // event.preventDefault() if (event.dataTransfer === null || event.target === null) { @@ -181,7 +181,7 @@ closeTooltip() } - function getDropPosition (event: DragEvent): { pos: 'before' | 'after' | undefined, top: number } { + function getDropPosition(event: DragEvent): { pos: 'before' | 'after' | undefined, top: number } { const parentRect = parent.getBoundingClientRect() const targetRect = (event.target as HTMLElement).getBoundingClientRect() const dropPosition = event.clientY - targetRect.top @@ -195,7 +195,7 @@ return { pos, top } } - function onDragOver (event: DragEvent, object: Ref): void { + function onDragOver(event: DragEvent, object: Ref): void { event.preventDefault() // this is an ugly solution to control drop effect // we drag and drop elements that are in the depth of components hierarchy @@ -217,14 +217,14 @@ } } - function onDragEnd (event: DragEvent): void { + function onDragEnd(event: DragEvent): void { event.preventDefault() draggedItem = undefined draggedOver = undefined draggedOverPos = undefined } - function onDrop (event: DragEvent, object: Ref): void { + function onDrop(event: DragEvent, object: Ref): void { event.preventDefault() if (event.dataTransfer === null) { return diff --git a/plugins/document-resources/src/components/sidebar/History.svelte b/plugins/document-resources/src/components/sidebar/History.svelte index fdaeaa8cab..7048a63d96 100644 --- a/plugins/document-resources/src/components/sidebar/History.svelte +++ b/plugins/document-resources/src/components/sidebar/History.svelte @@ -43,7 +43,7 @@ } ) - async function takeSnapshot (): Promise { + async function takeSnapshot(): Promise { showPopup(CreateSnapshot, { doc: value }, 'top') } diff --git a/plugins/document-resources/src/components/teamspace/CreateTeamspace.svelte b/plugins/document-resources/src/components/teamspace/CreateTeamspace.svelte index 528c97077a..20c1ceb95d 100644 --- a/plugins/document-resources/src/components/teamspace/CreateTeamspace.svelte +++ b/plugins/document-resources/src/components/teamspace/CreateTeamspace.svelte @@ -81,8 +81,8 @@ spaceType = id !== undefined ? await client - .getModel() - .findOne(core.class.SpaceType, { _id: id }, { lookup: { _id: { roles: core.class.Role } } }) + .getModel() + .findOne(core.class.SpaceType, { _id: id }, { lookup: { _id: { roles: core.class.Role } } }) : undefined if (teamspace === undefined || spaceType?.targetClass === undefined || spaceType?.$lookup?.roles === undefined) { @@ -92,7 +92,7 @@ rolesAssignment = getRolesAssignment() }) - function getRolesAssignment (): RolesAssignment { + function getRolesAssignment(): RolesAssignment { if (teamspace === undefined || spaceType?.targetClass === undefined || spaceType?.$lookup?.roles === undefined) { return {} } @@ -106,7 +106,7 @@ }, {}) } - async function handleSave (): Promise { + async function handleSave(): Promise { if (isNew) { await createTeamspace() } else { @@ -114,7 +114,7 @@ } } - function getTeamspaceData (): Omit, 'type'> { + function getTeamspaceData(): Omit, 'type'> { return { name, description, @@ -128,7 +128,7 @@ } } - async function updateTeamspace (): Promise { + async function updateTeamspace(): Promise { if (teamspace === undefined || spaceType?.targetClass === undefined) { return } @@ -191,7 +191,7 @@ close() } - async function createTeamspace (): Promise { + async function createTeamspace(): Promise { if (typeId === undefined || spaceType?.targetClass === undefined) { return } @@ -214,7 +214,7 @@ close(teamspaceId) } - function chooseIcon (ev: MouseEvent): void { + function chooseIcon(ev: MouseEvent): void { const icons = [document.icon.Document, document.icon.Teamspace] const update = (result: any): void => { if (result !== undefined && result !== null) { @@ -226,24 +226,24 @@ showPopup(IconPicker, { icon, color, icons }, 'top', update, update) } - function close (id?: Ref): void { + function close(id?: Ref): void { dispatch('close', id) } - function handleTypeChange (evt: CustomEvent>): void { + function handleTypeChange(evt: CustomEvent>): void { typeId = evt.detail } $: roles = (spaceType?.$lookup?.roles ?? []) as Role[] - function handleOwnersChanged (newOwners: AccountUuid[]): void { + function handleOwnersChanged(newOwners: AccountUuid[]): void { owners = newOwners const newMembersSet = new Set([...members, ...newOwners]) members = Array.from(newMembersSet) } - function handleMembersChanged (newMembers: AccountUuid[]): void { + function handleMembersChanged(newMembers: AccountUuid[]): void { membersChanged = true // If a member was removed we need to remove it from any roles assignments as well const newMembersSet = new Set(newMembers) @@ -258,7 +258,7 @@ members = newMembers } - function handleRoleAssignmentChanged (roleId: Ref, newMembers: AccountUuid[]): void { + function handleRoleAssignmentChanged(roleId: Ref, newMembers: AccountUuid[]): void { if (rolesAssignment === undefined) { rolesAssignment = {} } @@ -272,7 +272,7 @@ let membersChanged: boolean = false - function setDefaultMembers (typeType: SpaceType | undefined): void { + function setDefaultMembers(typeType: SpaceType | undefined): void { if (typeType === undefined) return if (membersChanged) return if (teamspace !== undefined) return diff --git a/plugins/drive-resources/src/components/CreateDrive.svelte b/plugins/drive-resources/src/components/CreateDrive.svelte index 46d5a5d71b..e77b734b15 100644 --- a/plugins/drive-resources/src/components/CreateDrive.svelte +++ b/plugins/drive-resources/src/components/CreateDrive.svelte @@ -64,8 +64,8 @@ spaceType = id !== undefined ? await client - .getModel() - .findOne(core.class.SpaceType, { _id: id }, { lookup: { _id: { roles: core.class.Role } } }) + .getModel() + .findOne(core.class.SpaceType, { _id: id }, { lookup: { _id: { roles: core.class.Role } } }) : undefined if (drive === undefined || spaceType?.targetClass === undefined || spaceType?.$lookup?.roles === undefined) { @@ -75,7 +75,7 @@ rolesAssignment = getRolesAssignment() }) - function getRolesAssignment (): RolesAssignment { + function getRolesAssignment(): RolesAssignment { if (drive === undefined || spaceType?.targetClass === undefined || spaceType?.$lookup?.roles === undefined) { return {} } @@ -89,7 +89,7 @@ }, {}) } - async function handleSave (): Promise { + async function handleSave(): Promise { if (drive === undefined) { await createDrive() } else { @@ -97,7 +97,7 @@ } } - function getDriveData (): Omit, 'type'> { + function getDriveData(): Omit, 'type'> { return { name, description, @@ -110,7 +110,7 @@ } } - async function updateDrive (): Promise { + async function updateDrive(): Promise { if (drive === undefined || spaceType?.targetClass === undefined) { return } @@ -131,7 +131,7 @@ close() } - async function createDrive (): Promise { + async function createDrive(): Promise { if (typeId === undefined || spaceType?.targetClass === undefined) { return } @@ -147,24 +147,24 @@ close(driveId) } - function close (id?: Ref): void { + function close(id?: Ref): void { dispatch('close', id) } - function handleTypeChange (evt: CustomEvent>): void { + function handleTypeChange(evt: CustomEvent>): void { typeId = evt.detail } $: roles = (spaceType?.$lookup?.roles ?? []) as Role[] - function handleOwnersChanged (newOwners: AccountUuid[]): void { + function handleOwnersChanged(newOwners: AccountUuid[]): void { owners = newOwners const newMembersSet = new Set([...members, ...newOwners]) members = Array.from(newMembersSet) } - function handleMembersChanged (newMembers: AccountUuid[]): void { + function handleMembersChanged(newMembers: AccountUuid[]): void { // If a member was removed we need to remove it from any roles assignments as well const newMembersSet = new Set(newMembers) const removedMembersSet = new Set(members.filter((m) => !newMembersSet.has(m))) @@ -178,7 +178,7 @@ members = newMembers } - function handleRoleAssignmentChanged (roleId: Ref, newMembers: AccountUuid[]): void { + function handleRoleAssignmentChanged(roleId: Ref, newMembers: AccountUuid[]): void { if (rolesAssignment === undefined) { rolesAssignment = {} } diff --git a/plugins/drive-resources/src/components/CreateFolder.svelte b/plugins/drive-resources/src/components/CreateFolder.svelte index f00fb4275c..288d5fde89 100644 --- a/plugins/drive-resources/src/components/CreateFolder.svelte +++ b/plugins/drive-resources/src/components/CreateFolder.svelte @@ -26,7 +26,7 @@ import drive from '../plugin' import { Analytics } from '@hcengineering/analytics' - export function canClose (): boolean { + export function canClose(): boolean { return name === '' } @@ -43,11 +43,11 @@ $: if (_space !== space) _parent = undefined $: canSave = getTitle(name).length > 0 && _space !== undefined - function getTitle (value: string): string { + function getTitle(value: string): string { return value.trim() } - async function create (): Promise { + async function create(): Promise { if (_space === undefined) { return } diff --git a/plugins/drive-resources/src/components/DrivePanel.svelte b/plugins/drive-resources/src/components/DrivePanel.svelte index 47265fb9f3..b1a7d7ea8a 100644 --- a/plugins/drive-resources/src/components/DrivePanel.svelte +++ b/plugins/drive-resources/src/components/DrivePanel.svelte @@ -24,7 +24,7 @@ export let readonly: boolean = false export let embedded: boolean = false - export function canClose (): boolean { + export function canClose(): boolean { return false } diff --git a/plugins/drive-resources/src/components/DriveSpaceHeader.svelte b/plugins/drive-resources/src/components/DriveSpaceHeader.svelte index a7e44d7f9f..5996da04c6 100644 --- a/plugins/drive-resources/src/components/DriveSpaceHeader.svelte +++ b/plugins/drive-resources/src/components/DriveSpaceHeader.svelte @@ -95,16 +95,16 @@ $: filteredBasicActions = [basicActions[0], ...(canCreateFolder ? [basicActions[1]] : [])] $: filteredUploadActions = canUpload ? uploadActions : [] - function handleCreateDrive (): void { + function handleCreateDrive(): void { void showCreateDrivePopup() } - function handleCreateFolder (): void { + function handleCreateFolder(): void { void showCreateFolderPopup(currentSpace, parent, true) } let visibleActions: (string | number | null)[] = [] - function updateActions ( + function updateActions( hasSpace: boolean, uploadActions: HeaderButtonAction[], basicActions: HeaderButtonAction[] diff --git a/plugins/drive-resources/src/components/DriveSpacePresenter.svelte b/plugins/drive-resources/src/components/DriveSpacePresenter.svelte index b6acbd7173..59f6cee480 100644 --- a/plugins/drive-resources/src/components/DriveSpacePresenter.svelte +++ b/plugins/drive-resources/src/components/DriveSpacePresenter.svelte @@ -38,7 +38,7 @@ let folderById: Map, Folder> = new Map, Folder>() let descendants: Map, Folder[]> = new Map, Folder[]>() - function getDescendants (obj: Ref): Ref[] { + function getDescendants(obj: Ref): Ref[] { return (descendants.get(obj) ?? []).sort((a, b) => a.title.localeCompare(b.title)).map((p) => p._id) } @@ -75,15 +75,15 @@ } ) - function handleDriveSelected (_id: Ref): void { + function handleDriveSelected(_id: Ref): void { navigate(getDriveLink(_id)) } - function handleFolderSelected (_id: Ref): void { + function handleFolderSelected(_id: Ref): void { navigate(getFolderLink(_id)) } - async function getFolderActions (obj: Folder): Promise { + async function getFolderActions(obj: Folder): Promise { const result: Action[] = [] const extraActions = await getContributedActions(client, obj) for (const act of extraActions) { diff --git a/plugins/drive-resources/src/components/FileDropArea.svelte b/plugins/drive-resources/src/components/FileDropArea.svelte index 12a6578239..d1c771c477 100644 --- a/plugins/drive-resources/src/components/FileDropArea.svelte +++ b/plugins/drive-resources/src/components/FileDropArea.svelte @@ -24,11 +24,11 @@ let dragover = false let counter = 0 - async function handleDragEnter (): Promise { + async function handleDragEnter(): Promise { counter++ } - async function handleDragLeave (): Promise { + async function handleDragLeave(): Promise { if (counter > 0) { counter-- } @@ -37,7 +37,7 @@ } } - async function handleDragOver (e: DragEvent): Promise { + async function handleDragOver(e: DragEvent): Promise { if (e.dataTransfer?.files === undefined) { return } @@ -51,7 +51,7 @@ dragover = true } - async function handleDrop (e: DragEvent): Promise { + async function handleDrop(e: DragEvent): Promise { counter = 0 dragover = false diff --git a/plugins/drive-resources/src/components/FileHeader.svelte b/plugins/drive-resources/src/components/FileHeader.svelte index dae3cea9a0..ba29ff6756 100644 --- a/plugins/drive-resources/src/components/FileHeader.svelte +++ b/plugins/drive-resources/src/components/FileHeader.svelte @@ -25,7 +25,7 @@ let parents: Doc[] = [] $: void updateParents(object) - async function updateParents (object: File): Promise { + async function updateParents(object: File): Promise { parents = await resolveParents(object) } diff --git a/plugins/drive-resources/src/components/FilePanel.svelte b/plugins/drive-resources/src/components/FilePanel.svelte index 6c2488f2d6..c1a06783fd 100644 --- a/plugins/drive-resources/src/components/FilePanel.svelte +++ b/plugins/drive-resources/src/components/FilePanel.svelte @@ -35,7 +35,7 @@ export let readonly: boolean = false export let embedded: boolean = false - export function canClose (): boolean { + export function canClose(): boolean { return false } @@ -61,13 +61,13 @@ ) $: canUploadVersion = object !== undefined && canChangeDoc(drive.class.File, object.space, $permissionsStore) - function handleDownloadFile (): void { + function handleDownloadFile(): void { if (object != null && download != null) { download.click() } } - function handleUploadFile (): void { + function handleUploadFile(): void { if (object != null && canUploadVersion) { const target = { objectId: object._id, objectClass: object._class } void showFilesUploadPopup( @@ -85,7 +85,7 @@ } } - async function onFileUploaded ({ uuid, name, file, metadata }: FileUploadCallbackParams): Promise { + async function onFileUploaded({ uuid, name, file, metadata }: FileUploadCallbackParams): Promise { const data = { file: uuid, title: name, diff --git a/plugins/drive-resources/src/components/FileVersionPresenter.svelte b/plugins/drive-resources/src/components/FileVersionPresenter.svelte index 4ea45b66e9..150385dc1f 100644 --- a/plugins/drive-resources/src/components/FileVersionPresenter.svelte +++ b/plugins/drive-resources/src/components/FileVersionPresenter.svelte @@ -33,7 +33,7 @@ $: version = formatFileVersion(value.version) - function handleClick (): void { + function handleClick(): void { if (disabled) { return } diff --git a/plugins/drive-resources/src/components/FolderBrowser.svelte b/plugins/drive-resources/src/components/FolderBrowser.svelte index ea656bde7e..8c90922812 100644 --- a/plugins/drive-resources/src/components/FolderBrowser.svelte +++ b/plugins/drive-resources/src/components/FolderBrowser.svelte @@ -56,7 +56,7 @@ $: if (query !== undefined) updateSearchQuery(search) $: resultQuery = { ...searchQuery } - function updateSearchQuery (search: string): void { + function updateSearchQuery(search: string): void { searchQuery = search === '' ? { ...query } : { ...query, $search: search } } diff --git a/plugins/drive-resources/src/components/FolderHeader.svelte b/plugins/drive-resources/src/components/FolderHeader.svelte index e657175fab..54aeb3881e 100644 --- a/plugins/drive-resources/src/components/FolderHeader.svelte +++ b/plugins/drive-resources/src/components/FolderHeader.svelte @@ -25,7 +25,7 @@ let parents: Doc[] = [] $: void updateParents(object) - async function updateParents (object: Folder): Promise { + async function updateParents(object: Folder): Promise { parents = await resolveParents(object) } diff --git a/plugins/drive-resources/src/components/FolderPanel.svelte b/plugins/drive-resources/src/components/FolderPanel.svelte index 735bb4ca44..5f3316958d 100644 --- a/plugins/drive-resources/src/components/FolderPanel.svelte +++ b/plugins/drive-resources/src/components/FolderPanel.svelte @@ -24,7 +24,7 @@ export let readonly: boolean = false export let embedded: boolean = false - export function canClose (): boolean { + export function canClose(): boolean { return false } diff --git a/plugins/drive-resources/src/components/FolderTreeLevel.svelte b/plugins/drive-resources/src/components/FolderTreeLevel.svelte index d63487bf88..6092ae8d7e 100644 --- a/plugins/drive-resources/src/components/FolderTreeLevel.svelte +++ b/plugins/drive-resources/src/components/FolderTreeLevel.svelte @@ -32,11 +32,11 @@ const client = getClient() const dispatch = createEventDispatcher() - function getDescendants (obj: Ref): Ref[] { + function getDescendants(obj: Ref): Ref[] { return (descendants.get(obj) ?? []).sort((a, b) => a.title.localeCompare(b.title)).map((p) => p._id) } - async function getActions (obj: Folder): Promise { + async function getActions(obj: Folder): Promise { const result: Action[] = [] const extraActions = await getContributedActions(client, obj) for (const act of extraActions) { @@ -52,7 +52,7 @@ return result } - function handleSelected (obj: Ref): void { + function handleSelected(obj: Ref): void { dispatch('selected', obj) } diff --git a/plugins/drive-resources/src/components/MoveResource.svelte b/plugins/drive-resources/src/components/MoveResource.svelte index 74011d854c..1a40c32463 100644 --- a/plugins/drive-resources/src/components/MoveResource.svelte +++ b/plugins/drive-resources/src/components/MoveResource.svelte @@ -32,14 +32,14 @@ let space: Ref = value.space let parent: Ref = value.parent as Ref - async function save (): Promise { + async function save(): Promise { await moveResources([value], space, parent ?? drive.ids.Root) } let children: Ref[] = [] $: void updateChildren(value) - async function updateChildren (resource: Resource): Promise { + async function updateChildren(resource: Resource): Promise { children = await findAllChildren(resource) } diff --git a/plugins/drive-resources/src/components/RenamePopup.svelte b/plugins/drive-resources/src/components/RenamePopup.svelte index 29b10347c6..20fb9f9782 100644 --- a/plugins/drive-resources/src/components/RenamePopup.svelte +++ b/plugins/drive-resources/src/components/RenamePopup.svelte @@ -29,7 +29,7 @@ $: canSave = value !== undefined && value.trim().length > 0 - function handleOkAction (): void { + function handleOkAction(): void { dispatch('close', value?.trim()) } diff --git a/plugins/drive-resources/src/components/ResourcePresenter.svelte b/plugins/drive-resources/src/components/ResourcePresenter.svelte index 72bacd93af..02581d00d4 100644 --- a/plugins/drive-resources/src/components/ResourcePresenter.svelte +++ b/plugins/drive-resources/src/components/ResourcePresenter.svelte @@ -35,11 +35,11 @@ const client = getClient() const hierarchy = client.getHierarchy() - function isFile (value: Resource): value is File { + function isFile(value: Resource): value is File { return hierarchy.isDerived(value._class, drive.class.File) } - function isFolder (value: Resource): value is Folder { + function isFolder(value: Resource): value is Folder { return hierarchy.isDerived(value._class, drive.class.Folder) } diff --git a/plugins/drive-resources/src/components/Thumbnail.svelte b/plugins/drive-resources/src/components/Thumbnail.svelte index e8e8b22fd1..3a257d999c 100644 --- a/plugins/drive-resources/src/components/Thumbnail.svelte +++ b/plugins/drive-resources/src/components/Thumbnail.svelte @@ -26,7 +26,7 @@ const client = getClient() const hierarchy = client.getHierarchy() - function extensionIconLabel (name: string): string { + function extensionIconLabel(name: string): string { const parts = name.split('.') const ext = parts[parts.length - 1] return ext.substring(0, 4).toUpperCase() diff --git a/plugins/emoji-resources/src/components/ActionsPopup.svelte b/plugins/emoji-resources/src/components/ActionsPopup.svelte index c349101c48..97ab3d93ff 100644 --- a/plugins/emoji-resources/src/components/ActionsPopup.svelte +++ b/plugins/emoji-resources/src/components/ActionsPopup.svelte @@ -52,8 +52,8 @@ return equal && noTone ? (e as Emoji.Emoji) : getEmojiSkins(e)?.find((skin) => - equal ? skin.tone === a : Array.isArray(skin.tone) && skin.tone[0] === a && skin.tone[1] === b - ) + equal ? skin.tone === a : Array.isArray(skin.tone) && skin.tone[0] === a && skin.tone[1] === b + ) } const getEmojiStringByTone = (e: ExtendedEmoji, [a, b]: number[]): string | undefined => { return getEmojiByTone(e, [a, b])?.emoji diff --git a/plugins/emoji-resources/src/components/EmojiPopup.svelte b/plugins/emoji-resources/src/components/EmojiPopup.svelte index 2b9371f962..df5228ee62 100644 --- a/plugins/emoji-resources/src/components/EmojiPopup.svelte +++ b/plugins/emoji-resources/src/components/EmojiPopup.svelte @@ -70,7 +70,7 @@ .filter((f) => f !== undefined) as EmojiCategory[] $: categoryTabs = searching ? ([...searchCategory, ...emojiTabs] as EmojiCategory[]) : emojiTabs - function handleScrollToCategory (categoryId: string): void { + function handleScrollToCategory(categoryId: string): void { if (searching && categoryId !== searchCategory[0].id) $searchEmoji = '' if (isMobile) { const tempCat = emojiTabs.find((ct) => ct?.id === categoryId) @@ -88,7 +88,7 @@ } } - function handleCategoryScrolled (): void { + function handleCategoryScrolled(): void { if (isMobile) return const selectedCategory = emojisCat.find((category) => { const labelElement = document.getElementById(category.id) @@ -124,7 +124,7 @@ sendEmoji(event.detail) } - function openContextMenu (event: TouchEvent | MouseEvent, _emoji: EmojiWithGroup, remove: boolean): void { + function openContextMenu(event: TouchEvent | MouseEvent, _emoji: EmojiWithGroup, remove: boolean): void { event.preventDefault() const emoji = _emoji if (emoji === undefined) return @@ -148,7 +148,7 @@ shownContext = false }) } - function handleContextMenu (event: MouseEvent, emoji: EmojiWithGroup, remove: boolean): void { + function handleContextMenu(event: MouseEvent, emoji: EmojiWithGroup, remove: boolean): void { event.preventDefault() const skins = getEmojiSkins(emoji) if (Array.isArray(skins) || remove) openContextMenu(event, emoji, remove) @@ -163,7 +163,7 @@ else window.addEventListener(event, clearTimer) }) } - function clampedContextMenu (event: TouchEvent, emoji: EmojiWithGroup, remove: boolean): void { + function clampedContextMenu(event: TouchEvent, emoji: EmojiWithGroup, remove: boolean): void { const skins = getEmojiSkins(emoji) if (timer == null && (Array.isArray(skins) || remove)) { touchObserver() diff --git a/plugins/emoji-resources/src/components/settings/CreateCustomEmojiPopup.svelte b/plugins/emoji-resources/src/components/settings/CreateCustomEmojiPopup.svelte index b0311c7eae..8e725db274 100644 --- a/plugins/emoji-resources/src/components/settings/CreateCustomEmojiPopup.svelte +++ b/plugins/emoji-resources/src/components/settings/CreateCustomEmojiPopup.svelte @@ -18,7 +18,7 @@ let inputFile: HTMLInputElement let file: File | undefined = undefined - async function save (): Promise { + async function save(): Promise { if (file === undefined) return const { uuid } = await uploadFile(file) await client.createDoc(emojiPlugin.class.CustomEmoji, core.space.Workspace, { @@ -28,7 +28,7 @@ dispatch('close') } - async function imageSize (imageFile: File): Promise<{ width: number, height: number }> { + async function imageSize(imageFile: File): Promise<{ width: number, height: number }> { return await new Promise((resolve, reject) => { try { const fileReader = new FileReader() @@ -46,7 +46,7 @@ }) } - async function fileSelected (): Promise { + async function fileSelected(): Promise { if (inputFile?.files === undefined || inputFile.files === null) return const newFile = inputFile.files[0] as File | undefined if (newFile === undefined || !targetMimes.includes(newFile.type)) { @@ -62,7 +62,7 @@ inputFile.value = '' } - function onShortcodeChange (): void { + function onShortcodeChange(): void { const lowercaseShortcode = shortcode.toLowerCase() if (`:${lowercaseShortcode}:`.match(shortcodeRegex) === null) { shortcodeError = emojiPlugin.string.ShortcodeMatchError @@ -75,7 +75,7 @@ shortcodeError = undefined } - function showConfirmationDialog (): void { + function showConfirmationDialog(): void { const isEmpty = file === undefined && shortcode.trim().length === 0 if (isEmpty) { dispatch('close') diff --git a/plugins/emoji-resources/src/components/settings/SettingsEmojiTable.svelte b/plugins/emoji-resources/src/components/settings/SettingsEmojiTable.svelte index b68dc36cf6..87d4c5739f 100644 --- a/plugins/emoji-resources/src/components/settings/SettingsEmojiTable.svelte +++ b/plugins/emoji-resources/src/components/settings/SettingsEmojiTable.svelte @@ -22,7 +22,7 @@ const resultQuery: DocumentQuery = {} - function showCreateDialog (ev: Event): void { + function showCreateDialog(ev: Event): void { showPopup(CreateCustomEmojiPopup, ev.target as HTMLElement) } diff --git a/plugins/emoji-resources/src/store.ts b/plugins/emoji-resources/src/store.ts index a3be7eacd9..2c5b8a1152 100644 --- a/plugins/emoji-resources/src/store.ts +++ b/plugins/emoji-resources/src/store.ts @@ -9,16 +9,16 @@ export const searchEmoji = writable('') export const resultEmojis = derived([unicodeEmojiStore, customEmojiStore, searchEmoji], ([unicode, custom, search]) => { return search !== '' ? unicode.concat(custom).filter((emoji) => { - if (isCustomEmoji(emoji)) { - return emoji.shortcode.toLowerCase().includes(search.toLowerCase()) - } - return ( - (emoji.tags?.some((tag: string) => tag.toLowerCase().startsWith(search.toLowerCase())) ?? false) || + if (isCustomEmoji(emoji)) { + return emoji.shortcode.toLowerCase().includes(search.toLowerCase()) + } + return ( + (emoji.tags?.some((tag: string) => tag.toLowerCase().startsWith(search.toLowerCase())) ?? false) || (emoji.shortcodes?.some((shortcode: string) => shortcode.toLowerCase().startsWith(search.toLowerCase())) ?? false) || emoji.label.toLowerCase().includes(search.toLowerCase()) - ) - }) + ) + }) : unicode.concat(custom) }) diff --git a/plugins/emoji-resources/src/utils.ts b/plugins/emoji-resources/src/utils.ts index bbb605cc7e..7e37d441e4 100644 --- a/plugins/emoji-resources/src/utils.ts +++ b/plugins/emoji-resources/src/utils.ts @@ -45,12 +45,12 @@ export async function loadUnicodeEmojis (lang: string): Promise { - return { - ...langEmoji, - tags: [...(englishEmojis[index]?.tags ?? []), ...(langEmoji?.tags ?? [])], - shortcodes: [...(englishEmojis[index]?.shortcodes ?? []), ...(langEmoji?.shortcodes ?? [])] - } - }) + return { + ...langEmoji, + tags: [...(englishEmojis[index]?.tags ?? []), ...(langEmoji?.tags ?? [])], + shortcodes: [...(englishEmojis[index]?.shortcodes ?? []), ...(langEmoji?.shortcodes ?? [])] + } + }) : (englishEmojis as Emoji.Emoji[]) return emojis diff --git a/plugins/export-resources/src/components/ExportButton.svelte b/plugins/export-resources/src/components/ExportButton.svelte index a77d962383..ac59a8efab 100644 --- a/plugins/export-resources/src/components/ExportButton.svelte +++ b/plugins/export-resources/src/components/ExportButton.svelte @@ -25,7 +25,7 @@ export let visible: boolean = false export let config: TransformConfig = {} - async function handleExport (): Promise { + async function handleExport(): Promise { try { const baseUrl = getMetadata(plugin.metadata.ExportUrl) const token = getMetadata(presentation.metadata.Token) diff --git a/plugins/export-resources/src/components/ExportSettings.svelte b/plugins/export-resources/src/components/ExportSettings.svelte index 2611b36a9f..c1679dd1a3 100644 --- a/plugins/export-resources/src/components/ExportSettings.svelte +++ b/plugins/export-resources/src/components/ExportSettings.svelte @@ -43,7 +43,7 @@ let selectedDetailLevel: string = 'everything' let isExporting = false - async function exportData (): Promise { + async function exportData(): Promise { if (isExporting) return try { diff --git a/plugins/export-resources/src/components/ExportToWorkspaceModal.svelte b/plugins/export-resources/src/components/ExportToWorkspaceModal.svelte index 2d9d39b7d0..e7dd151c9d 100644 --- a/plugins/export-resources/src/components/ExportToWorkspaceModal.svelte +++ b/plugins/export-resources/src/components/ExportToWorkspaceModal.svelte @@ -66,7 +66,7 @@ $: selectedDocs = spaceExport !== true ? (Array.isArray(value) ? value : value != null ? [value] : []) : [] $: _class = docClass ?? (selectedDocs.length > 0 ? selectedDocs[0]._class : undefined) - function filterDocsForExport (docs: Doc[], exportFilterMode: ExportFilterMode): Doc[] { + function filterDocsForExport(docs: Doc[], exportFilterMode: ExportFilterMode): Doc[] { if (docs.length === 0) return docs if (exportFilterMode === 'effectiveOnly') return docs.filter((doc) => isEffectiveDocument(doc)) if (exportFilterMode === 'skipArchivedObsolete') return docs.filter((doc) => !shouldSkipDocument(doc)) @@ -78,7 +78,7 @@ // Build query with space filter when exporting from space $: exportQuery = spaceExport === true ? { ...(query ?? {}), space: (value as Space)._id } : query - async function loadWorkspaces (): Promise { + async function loadWorkspaces(): Promise { try { workspaceLoading = true const getWorkspacesFn = await getResource(login.function.GetWorkspaces) @@ -123,7 +123,7 @@ $: canSave = targetWorkspace !== undefined && _class != null && (spaceExport === true || filteredSelectedDocs.length > 0) - async function getExportDocuments (): Promise> { + async function getExportDocuments(): Promise> { if (docClass == null) { console.error('Document class is required to export project documents') return [] @@ -140,7 +140,7 @@ return [] } - async function handleExport (): Promise { + async function handleExport(): Promise { if (!canSave || _class == null) return loading = true diff --git a/plugins/gmail-resources/src/components/Chats.svelte b/plugins/gmail-resources/src/components/Chats.svelte index 1b521d2ab7..935b183323 100644 --- a/plugins/gmail-resources/src/components/Chats.svelte +++ b/plugins/gmail-resources/src/components/Chats.svelte @@ -56,7 +56,7 @@ { sort: { createdOn: SortingOrder.Descending } } ) - function updateMessagesQuery (channelId: Ref): void { + function updateMessagesQuery(channelId: Ref): void { messagesQuery.query( gmail.class.Message, { attachedTo: channelId }, @@ -72,7 +72,7 @@ const client = getClient() - async function share (): Promise { + async function share(): Promise { const selectedMessages = messages.filter((m) => selected.has(m._id as string as Ref)) await client.addCollection( gmail.class.SharedMessages, @@ -88,7 +88,7 @@ clear() } - function clear (): void { + function clear(): void { selectable = false selected.clear() selected = selected diff --git a/plugins/gmail-resources/src/components/Configure.svelte b/plugins/gmail-resources/src/components/Configure.svelte index 87fa53e47c..48bdde0aaa 100644 --- a/plugins/gmail-resources/src/components/Configure.svelte +++ b/plugins/gmail-resources/src/components/Configure.svelte @@ -39,7 +39,7 @@ $: loadSettings(integration) - async function loadSettings (integration: AccountIntegration): Promise { + async function loadSettings(integration: AccountIntegration): Promise { const type = await client.findOne(setting.class.IntegrationType, { kind: integration.kind }) @@ -50,7 +50,7 @@ shared = (integrationSettings?.shared?.length ?? 0) > 0 } - async function change (shared: AccountUuid[]) { + async function change(shared: AccountUuid[]) { if (integrationSettings == null) { Analytics.handleError( new Error(`Integrations settings are not found for ${integration.socialId} ${integration.kind}`) @@ -63,14 +63,14 @@ }) } - async function apply () { + async function apply() { const integrationClient = await getIntegrationClient() integration = isWorkspaceIntegration(integration) ? integration : await integrationClient.integrate(integration, getCurrentWorkspaceUuid()) } - async function disable () { + async function disable() { if (!shared) { await change([]) } diff --git a/plugins/gmail-resources/src/components/ConfigureV2.svelte b/plugins/gmail-resources/src/components/ConfigureV2.svelte index 6c335aaaff..dcfb09607c 100644 --- a/plugins/gmail-resources/src/components/ConfigureV2.svelte +++ b/plugins/gmail-resources/src/components/ConfigureV2.svelte @@ -52,7 +52,7 @@ } }) - async function apply (): Promise { + async function apply(): Promise { const integrationClient = await getIntegrationClient() integration = isWorkspaceIntegration(integration) ? integration diff --git a/plugins/gmail-resources/src/components/Connect.svelte b/plugins/gmail-resources/src/components/Connect.svelte index 215f2a395f..0a547405ff 100644 --- a/plugins/gmail-resources/src/components/Connect.svelte +++ b/plugins/gmail-resources/src/components/Connect.svelte @@ -28,7 +28,7 @@ const gmailUrl = getMetadata(gmail.metadata.GmailURL) ?? '' let error = false - async function sendRequest (): Promise { + async function sendRequest(): Promise { try { connecting = true const link = concatLink(gmailUrl, '/signin') diff --git a/plugins/gmail-resources/src/components/FullMessage.svelte b/plugins/gmail-resources/src/components/FullMessage.svelte index 01dea7e44c..cce0c7f477 100644 --- a/plugins/gmail-resources/src/components/FullMessage.svelte +++ b/plugins/gmail-resources/src/components/FullMessage.svelte @@ -35,7 +35,7 @@ const client = getClient() let attachments: Attachment[] = [] - async function resendMessage (): Promise { + async function resendMessage(): Promise { const messageId = currentMessage._id as string as Ref await client.updateDoc(gmail.class.NewMessage, currentMessage.space, messageId, { status: 'new' }) } diff --git a/plugins/gmail-resources/src/components/IntegrationSelector.svelte b/plugins/gmail-resources/src/components/IntegrationSelector.svelte index 1c476834af..579d9b0c75 100644 --- a/plugins/gmail-resources/src/components/IntegrationSelector.svelte +++ b/plugins/gmail-resources/src/components/IntegrationSelector.svelte @@ -25,7 +25,7 @@ $: ids = Array.from(new Set(integrations.map((p) => p.createdBy))).filter(notEmpty) - function change (e: CustomEvent): void { + function change(e: CustomEvent): void { if (e.detail === null) { selected = undefined } else { diff --git a/plugins/gmail-resources/src/components/IntegrationState.svelte b/plugins/gmail-resources/src/components/IntegrationState.svelte index e09133cc9e..568af5caba 100644 --- a/plugins/gmail-resources/src/components/IntegrationState.svelte +++ b/plugins/gmail-resources/src/components/IntegrationState.svelte @@ -59,11 +59,11 @@ }) }) - function subscribe (): void { + function subscribe(): void { unsubscribers.push(onIntegrationEvent('integration:updated', onUpdateIntegration)) } - function onUpdateIntegration (data: IntegrationEventData): void { + function onUpdateIntegration(data: IntegrationEventData): void { if ( data.integration?.socialId === integration.socialId && data.integration?.workspaceUuid === integration.workspaceUuid @@ -72,7 +72,7 @@ } } - async function refresh (): Promise { + async function refresh(): Promise { try { state = await getState(integration.socialId) } catch (err: any) { diff --git a/plugins/gmail-resources/src/components/Main.svelte b/plugins/gmail-resources/src/components/Main.svelte index c3c2bcc7e1..28d1a4c1b8 100644 --- a/plugins/gmail-resources/src/components/Main.svelte +++ b/plugins/gmail-resources/src/components/Main.svelte @@ -70,14 +70,14 @@ gmailMessage = message } - function back () { + function back() { if (newMessage) { return (newMessage = false) } return (currentMessage = undefined) } - async function selectHandler (e: CustomEvent): Promise { + async function selectHandler(e: CustomEvent): Promise { currentMessage = e.detail } diff --git a/plugins/gmail-resources/src/components/Messages.svelte b/plugins/gmail-resources/src/components/Messages.svelte index 258f301af0..6250242d3e 100644 --- a/plugins/gmail-resources/src/components/Messages.svelte +++ b/plugins/gmail-resources/src/components/Messages.svelte @@ -24,7 +24,7 @@ export let selected: Set> = new Set>() const dispatch = createEventDispatcher() - function select (id: Ref): void { + function select(id: Ref): void { if (!selectable) { const currentMessage = messages.find((m) => m._id === id) dispatch('select', currentMessage) diff --git a/plugins/gmail-resources/src/components/NewMessage.svelte b/plugins/gmail-resources/src/components/NewMessage.svelte index 84c63d5c7d..60493fc246 100644 --- a/plugins/gmail-resources/src/components/NewMessage.svelte +++ b/plugins/gmail-resources/src/components/NewMessage.svelte @@ -66,7 +66,7 @@ $: templateProvider !== undefined && templateProvider.set(contact.class.Contact, object) - async function sendMsg (): Promise { + async function sendMsg(): Promise { await client.createDoc( plugin.class.NewMessage, core.space.Workspace, @@ -91,7 +91,7 @@ const dispatch = createEventDispatcher() let inputFile: HTMLInputElement - function fileSelected (): void { + function fileSelected(): void { progress = true const list = inputFile.files if (list === null || list.length === 0) return @@ -103,7 +103,7 @@ progress = false } - function fileDrop (e: DragEvent): void { + function fileDrop(e: DragEvent): void { e.preventDefault() e.stopPropagation() progress = true @@ -116,7 +116,7 @@ progress = false } - async function createAttachment (file: File) { + async function createAttachment(file: File) { try { const uploadFile = await getResource(attachmentP.helper.UploadFile) const { uuid, metadata } = await uploadFile(file) @@ -142,7 +142,7 @@ const query = createQuery() - async function removeAttachment (attachment: Attachment): Promise { + async function removeAttachment(attachment: Attachment): Promise { const deleteFile = await getResource(attachmentP.helper.DeleteFile) await client.removeCollection( attachment._class, @@ -168,7 +168,7 @@ } ) - function onTemplate (e: CustomEvent): void { + function onTemplate(e: CustomEvent): void { if (e.detail !== undefined) { if (obj.subject.trim() === '') { obj.subject = e.detail diff --git a/plugins/gmail-resources/src/components/NewMessages.svelte b/plugins/gmail-resources/src/components/NewMessages.svelte index b46d438c30..06d1505b66 100644 --- a/plugins/gmail-resources/src/components/NewMessages.svelte +++ b/plugins/gmail-resources/src/components/NewMessages.svelte @@ -78,7 +78,7 @@ let copy: string = '' let saved = false - async function sendMsg (): Promise { + async function sendMsg(): Promise { const templateProvider = (await getResource(templates.function.GetTemplateDataProvider))() if (templateProvider === undefined || selectedIntegration === undefined) return for (const channel of channels) { @@ -125,7 +125,7 @@ const dispatch = createEventDispatcher() let inputFile: HTMLInputElement - function fileSelected () { + function fileSelected() { const list = inputFile.files if (list === null || list.length === 0) return for (let index = 0; index < list.length; index++) { @@ -135,7 +135,7 @@ inputFile.value = '' } - function fileDrop (e: DragEvent) { + function fileDrop(e: DragEvent) { const list = e.dataTransfer?.files if (list === undefined || list.length === 0) return for (let index = 0; index < list.length; index++) { @@ -144,7 +144,7 @@ } } - async function createAttachment (file: File) { + async function createAttachment(file: File) { try { const uploadFile = await getResource(attachmentP.helper.UploadFile) const { uuid, metadata } = await uploadFile(file) @@ -170,7 +170,7 @@ const attachmentsQ = createQuery() - async function removeAttachment (attachment: Attachment): Promise { + async function removeAttachment(attachment: Attachment): Promise { const deleteFile = await getResource(attachmentP.helper.DeleteFile) await client.removeCollection( attachment._class, @@ -195,7 +195,7 @@ } ) - function getName (channel: Channel): string { + function getName(channel: Channel): string { const contact = contactMap.get(channel.attachedTo as Ref) if (contact === undefined) return channel.value return `${getContactName(client.getHierarchy(), contact)} (${channel.value})` @@ -228,7 +228,7 @@ integrations.find((p) => p.createdBy !== undefined && mySocialIds.includes(p.createdBy)) ?? integrations[0] }) - function onTemplate (e: CustomEvent): void { + function onTemplate(e: CustomEvent): void { if (e.detail !== undefined) { if (subject.trim() === '') { subject = e.detail diff --git a/plugins/gmail-resources/src/components/SharedMessages.svelte b/plugins/gmail-resources/src/components/SharedMessages.svelte index ef25062e79..be05ea05ab 100644 --- a/plugins/gmail-resources/src/components/SharedMessages.svelte +++ b/plugins/gmail-resources/src/components/SharedMessages.svelte @@ -21,7 +21,7 @@ export let value: SharedMessages - function selectHandler (e: CustomEvent) { + function selectHandler(e: CustomEvent) { const message = e.detail showPopup(FullMessagePopup, { message diff --git a/plugins/gmail-resources/src/components/activity/GmailSharedMessage.svelte b/plugins/gmail-resources/src/components/activity/GmailSharedMessage.svelte index 9558b5b39d..d79ed1a361 100644 --- a/plugins/gmail-resources/src/components/activity/GmailSharedMessage.svelte +++ b/plugins/gmail-resources/src/components/activity/GmailSharedMessage.svelte @@ -29,7 +29,7 @@ $: loadObject(_id, value) - function loadObject (_id?: Ref, value?: SharedMessages): void { + function loadObject(_id?: Ref, value?: SharedMessages): void { if (value === undefined && _id !== undefined) { query.query(gmail.class.SharedMessages, { _id }, (res) => { doc = res[0] diff --git a/plugins/gmail-resources/src/components/activity/GmailWriteMessage.svelte b/plugins/gmail-resources/src/components/activity/GmailWriteMessage.svelte index c930546a06..6ce2abae19 100644 --- a/plugins/gmail-resources/src/components/activity/GmailWriteMessage.svelte +++ b/plugins/gmail-resources/src/components/activity/GmailWriteMessage.svelte @@ -31,7 +31,7 @@ $: loadObject(_id, value) - function loadObject (_id?: Ref, value?: Message): void { + function loadObject(_id?: Ref, value?: Message): void { if (value === undefined && _id !== undefined) { query.query(gmail.class.Message, { _id }, (res) => { doc = res[0] @@ -42,7 +42,7 @@ } } - async function click (ev: MouseEvent): Promise { + async function click(ev: MouseEvent): Promise { ev.stopPropagation() if (onClick) { diff --git a/plugins/guest-resources/src/components/CreatePublicLink.svelte b/plugins/guest-resources/src/components/CreatePublicLink.svelte index f56a770cd7..7691f06c85 100644 --- a/plugins/guest-resources/src/components/CreatePublicLink.svelte +++ b/plugins/guest-resources/src/components/CreatePublicLink.svelte @@ -37,14 +37,14 @@ const dispatch = createEventDispatcher() - async function generate (object: Doc): Promise { + async function generate(object: Doc): Promise { const panelComponent = client.getHierarchy().classHierarchyMixin(object._class, view.mixin.ObjectPanel) const comp = panelComponent?.component ?? view.component.EditDoc const loc = await getObjectLinkFragment(client.getHierarchy(), object, {}, comp) await createPublicLink(client, value, loc) } - async function checkNeedGenerate (value: Doc, loading: boolean, link: PublicLink | undefined): Promise { + async function checkNeedGenerate(value: Doc, loading: boolean, link: PublicLink | undefined): Promise { if (!loading || link !== undefined) return await generate(value) } @@ -60,18 +60,18 @@ { limit: 1 } ) - function close () { + function close() { dispatch('close') } - function copy (): void { + function copy(): void { if (link?.url === undefined || link.url === '') return copyTextToClipboard(link.url) copied = true copiedTime = Date.now() } - async function revoke (): Promise { + async function revoke(): Promise { if (!revokable || link === undefined) return showPopup( MessageBox, @@ -97,7 +97,7 @@ let copied = false $: checkLabel($ticker) - function checkLabel (now: number) { + function checkLabel(now: number) { if (copiedTime) { if (copied && now - copiedTime > 1000) { copied = false diff --git a/plugins/guest-resources/src/components/Guest.svelte b/plugins/guest-resources/src/components/Guest.svelte index 57795bf50a..0f0c82bd63 100644 --- a/plugins/guest-resources/src/components/Guest.svelte +++ b/plugins/guest-resources/src/components/Guest.svelte @@ -49,7 +49,7 @@ const client = getClient() - async function load (): Promise { + async function load(): Promise { const token = getMetadata(presentation.metadata.Token) if (token == null) return false const { extra } = decodeTokenPayload(token) @@ -73,7 +73,7 @@ .getModel() .findAllSync(workbench.class.Application, { hidden: false, _id: { $nin: excludedApps } }) - async function resolveShortLink (loc: Location): Promise { + async function resolveShortLink(loc: Location): Promise { if (loc.path[2] != null && loc.path[2].trim().length > 0) { const app = apps.find((p) => p.alias === loc.path[2]) if (app?.locationResolver) { @@ -83,7 +83,7 @@ } } - function mergeLoc (loc: Location, resolved: ResolvedLocation): Location { + function mergeLoc(loc: Location, resolved: ResolvedLocation): Location { const resolvedApp = resolved.loc.path[2] const resolvedSpace = resolved.loc.path[3] const resolvedSpecial = resolved.loc.path[4] @@ -119,7 +119,7 @@ let navigatorModel: NavigatorModel | undefined let currentView: ViewConfiguration | undefined - function setSpaceSpecial (spaceSpecial: string | undefined): void { + function setSpaceSpecial(spaceSpecial: string | undefined): void { if (currentSpecial !== undefined && spaceSpecial === currentSpecial) return if (spaceSpecial === undefined) return specialComponent = getSpecialComponent(spaceSpecial) @@ -128,7 +128,7 @@ } } - function getSpecialComponent (id: string): SpecialNavModel | undefined { + function getSpecialComponent(id: string): SpecialNavModel | undefined { const sp = navigatorModel?.specials?.find((x) => x.id === id) if (sp !== undefined) { return sp @@ -141,7 +141,7 @@ } } - async function syncLoc (loc: Location): Promise { + async function syncLoc(loc: Location): Promise { if (loc.path.length > 3 && getSpecialComponent(loc.path[3]) === undefined) { // resolve short links const resolvedLoc = await resolveShortLink(loc) @@ -181,7 +181,7 @@ const linkProviders = client.getModel().findAllSync(view.mixin.LinkIdProvider, {}) - async function setOpenPanelFocus (fragment: string): Promise { + async function setOpenPanelFocus(fragment: string): Promise { const props = decodeURIComponent(fragment).split('|') if (props.length >= 3) { @@ -213,12 +213,12 @@ } } - async function doSyncLoc (loc: Location): Promise { + async function doSyncLoc(loc: Location): Promise { await syncLoc(loc) await updateWindowTitle(loc) } - async function updateSpace (spaceId?: Ref): Promise { + async function updateSpace(spaceId?: Ref): Promise { if (spaceId === currentSpace) return if (spaceId === undefined) return const space = await client.findOne(core.class.Space, { _id: spaceId }) @@ -229,7 +229,7 @@ currentView = view.view } - async function updateWindowTitle (loc: Location): Promise { + async function updateWindowTitle(loc: Location): Promise { const ws = loc.path[1] const docTitle = await getWindowTitle(loc) if (docTitle !== undefined && docTitle !== '') { @@ -240,7 +240,7 @@ } } - async function getWindowTitle (loc: Location): Promise { + async function getWindowTitle(loc: Location): Promise { if (loc.fragment == null) return const hierarchy = client.getHierarchy() const [, id, _class] = decodeURIComponent(loc.fragment).split('|') diff --git a/plugins/hr-resources/src/components/CreateDepartment.svelte b/plugins/hr-resources/src/components/CreateDepartment.svelte index b704d1dd5c..359a99874d 100644 --- a/plugins/hr-resources/src/components/CreateDepartment.svelte +++ b/plugins/hr-resources/src/components/CreateDepartment.svelte @@ -31,13 +31,13 @@ let name: string = '' let lead: Ref | null = null - export function canClose (): boolean { + export function canClose(): boolean { return name === '' } const client = getClient() - async function createDepartment () { + async function createDepartment() { const id = await client.createDoc(hr.class.Department, core.space.Workspace, { name, description: '', diff --git a/plugins/hr-resources/src/components/CreateRequest.svelte b/plugins/hr-resources/src/components/CreateRequest.svelte index f2c1ec79fe..2f98282222 100644 --- a/plugins/hr-resources/src/components/CreateRequest.svelte +++ b/plugins/hr-resources/src/components/CreateRequest.svelte @@ -65,11 +65,11 @@ let value = new Date(date).getTime() $: dueDate = new Date(value).getTime() - export function canClose (): boolean { + export function canClose(): boolean { return description.length === 0 } - async function saveRequest () { + async function saveRequest() { let date: number | undefined if (value != null) date = value if (date === undefined) return @@ -85,11 +85,11 @@ await descriptionBox.createAttachments() } - function typeSelected (_id: Ref): void { + function typeSelected(_id: Ref): void { type = types.find((p) => p._id === _id) } - function moreThanLimit ( + function moreThanLimit( employeeRequests: Map, Request[]>, staff: Staff, startDate: Date, diff --git a/plugins/hr-resources/src/components/DepartmentCard.svelte b/plugins/hr-resources/src/components/DepartmentCard.svelte index ddcddf6e9e..b4fdf1b716 100644 --- a/plugins/hr-resources/src/components/DepartmentCard.svelte +++ b/plugins/hr-resources/src/components/DepartmentCard.svelte @@ -34,7 +34,7 @@ const client = getClient() - async function changeLead (result: Employee | null | undefined): Promise { + async function changeLead(result: Employee | null | undefined): Promise { if (result === undefined) { return } @@ -45,7 +45,7 @@ } } - function openLeadEditor (event: MouseEvent) { + function openLeadEditor(event: MouseEvent) { event?.preventDefault() event?.stopPropagation() showPopup( @@ -64,11 +64,11 @@ ) } - function createChild (e: MouseEvent) { + function createChild(e: MouseEvent) { showPopup(CreateDepartment, { space: value._id }, eventToHTMLElement(e)) } - function edit (e: MouseEvent): void { + function edit(e: MouseEvent): void { openDoc(client.getHierarchy(), value) } @@ -83,7 +83,7 @@ $: dragging = value._id === dragOver?._id && dragPersonId !== undefined - function onContext (e: MouseEvent): void { + function onContext(e: MouseEvent): void { showMenu(e, { object: value, baseMenuClass: value._class }) } diff --git a/plugins/hr-resources/src/components/DepartmentStaff.svelte b/plugins/hr-resources/src/components/DepartmentStaff.svelte index 6b493906b1..433198ef01 100644 --- a/plugins/hr-resources/src/components/DepartmentStaff.svelte +++ b/plugins/hr-resources/src/components/DepartmentStaff.svelte @@ -42,7 +42,7 @@ } ) - function add (e: MouseEvent): void { + function add(e: MouseEvent): void { showPopup( UsersPopup, { diff --git a/plugins/hr-resources/src/components/EditDepartment.svelte b/plugins/hr-resources/src/components/EditDepartment.svelte index e96320de76..32ea456ae6 100644 --- a/plugins/hr-resources/src/components/EditDepartment.svelte +++ b/plugins/hr-resources/src/components/EditDepartment.svelte @@ -32,7 +32,7 @@ const dispatch = createEventDispatcher() const client = getClient() - async function onAvatarDone () { + async function onAvatarDone() { if (object === undefined) return if (object.avatar != null) { @@ -42,7 +42,7 @@ await client.diffUpdate(object, avatar) } - async function nameChange (): Promise { + async function nameChange(): Promise { if (object === undefined) return await client.update(object, { name: object.name diff --git a/plugins/hr-resources/src/components/EditRequest.svelte b/plugins/hr-resources/src/components/EditRequest.svelte index 0f6cf849c9..5d2ea9e70e 100644 --- a/plugins/hr-resources/src/components/EditRequest.svelte +++ b/plugins/hr-resources/src/components/EditRequest.svelte @@ -25,7 +25,7 @@ const dispatch = createEventDispatcher() const client = getClient() - async function onChangeDescription (): Promise { + async function onChangeDescription(): Promise { if (object === undefined) return await client.update(object, { description: object.description diff --git a/plugins/hr-resources/src/components/EditRequestType.svelte b/plugins/hr-resources/src/components/EditRequestType.svelte index 01c65a1b70..a1777a4b37 100644 --- a/plugins/hr-resources/src/components/EditRequestType.svelte +++ b/plugins/hr-resources/src/components/EditRequestType.svelte @@ -31,11 +31,11 @@ let newType: RequestType | undefined = type - function typeSelected (_id: Ref): void { + function typeSelected(_id: Ref): void { newType = types.find((p) => p._id === _id) } - async function changeType (): Promise { + async function changeType(): Promise { if (newType !== undefined && newType._id !== type?._id) { await client.update(object, { type: newType._id diff --git a/plugins/hr-resources/src/components/PersonsPresenter.svelte b/plugins/hr-resources/src/components/PersonsPresenter.svelte index 460f616a7d..9cc8625b3f 100644 --- a/plugins/hr-resources/src/components/PersonsPresenter.svelte +++ b/plugins/hr-resources/src/components/PersonsPresenter.svelte @@ -31,7 +31,7 @@ let persons: WithLookup[] = [] $: persons = Array.isArray(value) ? value : [value] - function ondrag (p: Employee): void { + function ondrag(p: Employee): void { dragPerson = p as WithLookup } diff --git a/plugins/hr-resources/src/components/Schedule.svelte b/plugins/hr-resources/src/components/Schedule.svelte index 0fc1cbac13..68a3fb2167 100644 --- a/plugins/hr-resources/src/components/Schedule.svelte +++ b/plugins/hr-resources/src/components/Schedule.svelte @@ -65,7 +65,7 @@ let search = '' let resultQuery: DocumentQuery = {} - function updateResultQuery (search: string, viewOptions: ViewOptions | undefined): void { + function updateResultQuery(search: string, viewOptions: ViewOptions | undefined): void { const q: DocumentQuery = search === '' ? {} : { name: { $like: '%' + search + '%' } } resultQuery = viewOptions?.hideInactive !== false ? { ...q, active: true } : q } @@ -119,7 +119,7 @@ ancestors = ancestors }) - function inc (val: number): void { + function inc(val: number): void { switch (mode) { case CalendarMode.Month: { currentDate.setDate(1) @@ -134,7 +134,7 @@ currentDate = currentDate } - function getMonthName (date: Date): string { + function getMonthName(date: Date): string { return new Intl.DateTimeFormat('default', { month: 'long' }).format(date) @@ -148,7 +148,7 @@ } } - function departmentSelected (selected: Ref): void { + function departmentSelected(selected: Ref): void { department = selected } @@ -162,7 +162,7 @@ let preference: ViewletPreference | undefined let loading = false - function exportTable (evt: Event) { + function exportTable(evt: Event) { interface ExportPopupItem extends DropdownIntlItem { separator: ',' | ';' } diff --git a/plugins/hr-resources/src/components/ScheduleView.svelte b/plugins/hr-resources/src/components/ScheduleView.svelte index 379539374d..87c7deb56c 100644 --- a/plugins/hr-resources/src/components/ScheduleView.svelte +++ b/plugins/hr-resources/src/components/ScheduleView.svelte @@ -84,7 +84,7 @@ let departmentStaff: Staff[] = [] let editableList: Ref[] = [] - function update (staffIdsForOpenedDepartments: Ref[], startDate: Date, endDate: Date) { + function update(staffIdsForOpenedDepartments: Ref[], startDate: Date, endDate: Date) { lq.query( hr.class.Request, { @@ -100,7 +100,7 @@ $: update(staffIdsForOpenedDepartments, startDate, endDate) - function updateRequest (requests: Request[], startDate: Date, endDate: Date) { + function updateRequest(requests: Request[], startDate: Date, endDate: Date) { const res = requests.filter( (r) => fromTzDate(r.tzDueDate) >= startDate.getTime() && fromTzDate(r.tzDate) <= endDate.getTime() ) @@ -117,7 +117,7 @@ $: updateRequest(requests, startDate, endDate) - function pushChilds ( + function pushChilds( department: Ref, departmentStaff: Staff[], departmentById: Map, Department> @@ -127,11 +127,11 @@ editableList.push(...staff.filter((p) => !editableList.includes(p._id)).map((p) => p._id)) } - function isEditable (department: Department): boolean { + function isEditable(department: Department): boolean { return department.teamLead === currentEmployee || department.managers.includes(currentEmployee) } - function checkDepartmentEditable ( + function checkDepartmentEditable( departmentById: Map, Department>, department: Ref, departmentStaff: Staff[], @@ -155,7 +155,7 @@ } } - function updateEditableList ( + function updateEditableList( departmentById: Map, Department>, departmentStaff: Staff[], descendants: Map, Department[]> @@ -165,7 +165,7 @@ editableList = editableList } - function updateStaff ( + function updateStaff( staff: Staff[], staffIdsForOpenedDepartments: Ref[], descendants: Map, Department[]>, @@ -228,7 +228,7 @@ } ) - function toHolidaysMap (holidays: PublicHoliday[]): Map, Date[]> { + function toHolidaysMap(holidays: PublicHoliday[]): Map, Date[]> { const group = groupBy(holidays, 'department') const result = new Map() for (const groupKey in group) { @@ -245,7 +245,7 @@ return result } - async function getHolidays (month: Date): Promise, Date[]>> { + async function getHolidays(month: Date): Promise, Date[]>> { const result = await client.findAll(hr.class.PublicHoliday, { 'date.month': month.getMonth(), 'date.year': month.getFullYear() @@ -255,7 +255,7 @@ const client = getClient() - async function getDepartmentsForEmployee (departmentStaff: Staff[]): Promise, Department[]>> { + async function getDepartmentsForEmployee(departmentStaff: Staff[]): Promise, Department[]>> { const map = new Map, Department[]>() if (departmentStaff && departmentStaff.length > 0) { const staffIds = departmentStaff.map((staff) => staff._id) @@ -274,7 +274,7 @@ staffDepartmentMap = res }) - function getDepartmentHolidays (department: Ref): Date[] { + function getDepartmentHolidays(department: Ref): Date[] { const parents = ancestors.get(department) ?? [] const result = new Map() diff --git a/plugins/hr-resources/src/components/Structure.svelte b/plugins/hr-resources/src/components/Structure.svelte index bec789bdbe..a11c383da9 100644 --- a/plugins/hr-resources/src/components/Structure.svelte +++ b/plugins/hr-resources/src/components/Structure.svelte @@ -25,11 +25,11 @@ let search = '' let resultQuery: DocumentQuery = {} - function updateResultQuery (search: string): void { + function updateResultQuery(search: string): void { resultQuery = search === '' ? {} : { $search: search } } - function showCreateDialog (ev: MouseEvent) { + function showCreateDialog(ev: MouseEvent) { showPopup(CreateDepartment, {}, eventToHTMLElement(ev)) } diff --git a/plugins/hr-resources/src/components/schedule/CreatePublicHoliday.svelte b/plugins/hr-resources/src/components/schedule/CreatePublicHoliday.svelte index eb7fb2b5be..418d08279e 100644 --- a/plugins/hr-resources/src/components/schedule/CreatePublicHoliday.svelte +++ b/plugins/hr-resources/src/components/schedule/CreatePublicHoliday.svelte @@ -31,7 +31,7 @@ let title: string let existingHoliday: PublicHoliday | undefined = undefined - async function getAncestors (department: Ref): Promise[]> { + async function getAncestors(department: Ref): Promise[]> { const departments = await client.findAll(hr.class.Department, {}) const byId = new Map, Ref>() for (const doc of departments) { @@ -49,7 +49,7 @@ return ancestors } - async function findHoliday (): Promise { + async function findHoliday(): Promise { const holidays = await client.findAll(hr.class.PublicHoliday, { date: timeToTzDate(date) }) // look into current department first @@ -68,7 +68,7 @@ } } - async function saveHoliday (): Promise { + async function saveHoliday(): Promise { if (existingHoliday !== undefined) { await client.updateDoc(hr.class.PublicHoliday, core.space.Workspace, existingHoliday._id, { title, @@ -90,7 +90,7 @@ loading = false }) - function deleteHoliday (): void { + function deleteHoliday(): void { if (existingHoliday !== undefined) { void client.remove(existingHoliday) } diff --git a/plugins/hr-resources/src/components/schedule/ExportPopup.svelte b/plugins/hr-resources/src/components/schedule/ExportPopup.svelte index 082c8b8242..a49f0e9adb 100644 --- a/plugins/hr-resources/src/components/schedule/ExportPopup.svelte +++ b/plugins/hr-resources/src/components/schedule/ExportPopup.svelte @@ -23,7 +23,7 @@ let selectedSeparator = items[0].id - function close (): void { + function close(): void { dispatch('close', selectedSeparator) } diff --git a/plugins/hr-resources/src/components/schedule/HolidayPresenter.svelte b/plugins/hr-resources/src/components/schedule/HolidayPresenter.svelte index 5be66567b6..24bcd4283e 100644 --- a/plugins/hr-resources/src/components/schedule/HolidayPresenter.svelte +++ b/plugins/hr-resources/src/components/schedule/HolidayPresenter.svelte @@ -19,7 +19,7 @@ export let month: Date export let display: (staff: Staff, month: Date) => number | string - // $: _value = display(value) + // $: _value = display(value) {#await display(value, month) then _value} diff --git a/plugins/hr-resources/src/components/schedule/MonthTableView.svelte b/plugins/hr-resources/src/components/schedule/MonthTableView.svelte index 2e109976cf..ede6fb0c02 100644 --- a/plugins/hr-resources/src/components/schedule/MonthTableView.svelte +++ b/plugins/hr-resources/src/components/schedule/MonthTableView.svelte @@ -53,7 +53,7 @@ export let staffDepartmentMap: Map, Department[]> - function getDateRange (request: Request, staff: Staff): string { + function getDateRange(request: Request, staff: Staff): string { const ds = getRequestDates( request, types, @@ -64,13 +64,13 @@ return ds.join(' ') } - function getStatRequests (employee: Ref, date: Date): Request[] { + function getStatRequests(employee: Ref, date: Date): Request[] { const endDate = getEndDate(date.getFullYear(), date.getMonth()) return getRequests(employeeRequests, date, endDate, employee) } - function getTypeVals (month: Date): Map { + function getTypeVals(month: Date): Map { return new Map( Array.from(types.values()).map((it) => [ it.label as string, @@ -92,7 +92,7 @@ ) } - async function getOverrideConfig (startDate: Date): Promise> { + async function getOverrideConfig(startDate: Date): Promise> { const holidays = await getHolidays(startDate) const typevals = getTypeVals(startDate) const endDate = getEndDate(startDate.getFullYear(), startDate.getMonth()) @@ -297,7 +297,7 @@ ]) } - async function createConfig ( + async function createConfig( descr: Viewlet, preference: ViewletPreference | undefined, month: Date diff --git a/plugins/hr-resources/src/components/schedule/MonthView.svelte b/plugins/hr-resources/src/components/schedule/MonthView.svelte index 315d79c048..458ca0060c 100644 --- a/plugins/hr-resources/src/components/schedule/MonthView.svelte +++ b/plugins/hr-resources/src/components/schedule/MonthView.svelte @@ -84,20 +84,20 @@ const noWeekendHolidayType: Ref[] = [hr.ids.PTO, hr.ids.PTO2, hr.ids.Vacation] - function checkConflict (request1: Request, request2: Request): boolean { + function checkConflict(request1: Request, request2: Request): boolean { return ( tzDateCompare(request1.tzDate, request2.tzDueDate) <= 0 && tzDateCompare(request1.tzDueDate, request2.tzDate) >= 0 ) } - function getMonthDate (request: Request): number { + function getMonthDate(request: Request): number { const year = currentDate.getFullYear() const month = currentDate.getMonth() return request.tzDate.year === year && request.tzDate.month === month ? request.tzDate.day : startDate.getDate() } - function getMonthDueDate (request: Request): number { + function getMonthDueDate(request: Request): number { const year = currentDate.getFullYear() const month = currentDate.getMonth() @@ -106,7 +106,7 @@ : endDate.getDate() } - function getOrderedEmployeeRequests (employee: Staff): Request[] { + function getOrderedEmployeeRequests(employee: Staff): Request[] { const requests = getRequests(employeeRequests, startDate, endDate, employee._id) requests.sort((a, b) => { const res = tzDateCompare(a.tzDate, b.tzDate) @@ -118,7 +118,7 @@ return requests } - function buildTimelineRows (departmentStaff: Staff[], employeeRequests: Map, Request[]>): TimelineRow[] { + function buildTimelineRows(departmentStaff: Staff[], employeeRequests: Map, Request[]>): TimelineRow[] { const res: TimelineRow[] = [] for (const employee of departmentStaff) { @@ -157,7 +157,7 @@ return res } - function createRequest (e: MouseEvent, date: Date, staff: Staff): void { + function createRequest(e: MouseEvent, date: Date, staff: Staff): void { if (!isEditable(staff)) return const readonly = editableList.length === 1 @@ -177,7 +177,7 @@ } const me = getCurrentAccount() - function isFutureDate () { + function isFutureDate() { const today = new Date(Date.now()) return ( currentDate >= today || @@ -185,11 +185,11 @@ ) } - function isEditable (employee: Staff): boolean { + function isEditable(employee: Staff): boolean { return editableList.includes(employee._id) && (isFutureDate() || me.role === AccountRole.Owner || isAdminUser()) } - function getTooltip (requests: Request[], day: Date, staff: Staff): LabelAndProps | undefined { + function getTooltip(requests: Request[], day: Date, staff: Staff): LabelAndProps | undefined { if (requests.length === 0) return const weekend = isWeekend(day) const holiday = @@ -203,30 +203,30 @@ } } - function setPublicHoliday (date: Date): void { + function setPublicHoliday(date: Date): void { showPopup(CreatePublicHoliday, { date: date.getTime(), department }) } - function getRowHeight (row: TimelineRow): number { + function getRowHeight(row: TimelineRow): number { const height = row.tracks.length * (eventHeightRem + eventMarginRem) - eventMarginRem + 2 return Math.max(height, minRowHeightRem) } - function getColumnWidth (gridWidth: number, currentDate: Date): number { + function getColumnWidth(gridWidth: number, currentDate: Date): number { const width = gridWidth / daysInMonth(currentDate) return Math.max(width, minColWidthRem) } - export function getCellStyle (): string { + export function getCellStyle(): string { return `width: ${columnWidthRem}rem;` } - export function getRowStyle (row: TimelineRow): string { + export function getRowStyle(row: TimelineRow): string { const height = getRowHeight(row) return `height: ${height}rem;` } - export function getElementStyle (element: TimelineElement, trackIndex: number): string { + export function getElementStyle(element: TimelineElement, trackIndex: number): string { const left = (element.date - 1) * columnWidthRem const top = trackIndex * (eventHeightRem + eventMarginRem) const width = columnWidthRem * element.length @@ -250,7 +250,7 @@ let rows: TimelineRow[] $: rows = buildTimelineRows(departmentStaff, employeeRequests) - function getClickHandler (day: Date, staff: Staff): (e: MouseEvent, day: Date, staff: Staff) => void { + function getClickHandler(day: Date, staff: Staff): (e: MouseEvent, day: Date, staff: Staff) => void { return (e) => { createRequest(e, day, staff) } diff --git a/plugins/hr-resources/src/components/schedule/ScheduleRequest.svelte b/plugins/hr-resources/src/components/schedule/ScheduleRequest.svelte index ef26dcd0a7..66925f2f28 100644 --- a/plugins/hr-resources/src/components/schedule/ScheduleRequest.svelte +++ b/plugins/hr-resources/src/components/schedule/ScheduleRequest.svelte @@ -25,17 +25,17 @@ const client = getClient() - async function getType (request: Request): Promise { + async function getType(request: Request): Promise { return await client.findOne(hr.class.RequestType, { _id: request.type }) } - function isAvailable (type: RequestType): boolean { + function isAvailable(type: RequestType): boolean { return type.value >= 0 } - function click (e: MouseEvent, request: Request) { + function click(e: MouseEvent, request: Request) { if (!editable) return closeTooltip() showMenu(e, { object: request }) diff --git a/plugins/hr-resources/src/components/schedule/StaffPresenter.svelte b/plugins/hr-resources/src/components/schedule/StaffPresenter.svelte index 7c9d662f6f..f1457384a2 100644 --- a/plugins/hr-resources/src/components/schedule/StaffPresenter.svelte +++ b/plugins/hr-resources/src/components/schedule/StaffPresenter.svelte @@ -25,7 +25,7 @@ const client = getClient() - async function getDepartment (staff: Staff): Promise { + async function getDepartment(staff: Staff): Promise { return await client.findOne(hr.class.Department, { _id: staff.department }) diff --git a/plugins/hr-resources/src/components/schedule/YearView.svelte b/plugins/hr-resources/src/components/schedule/YearView.svelte index 9fda6c2609..130b8d46f9 100644 --- a/plugins/hr-resources/src/components/schedule/YearView.svelte +++ b/plugins/hr-resources/src/components/schedule/YearView.svelte @@ -41,7 +41,7 @@ export let holidaysMap: Map, Date[]> export let staffDepartmentMap: Map, Department[]> - function getTooltip (requests: Request[]): LabelAndProps | undefined { + function getTooltip(requests: Request[]): LabelAndProps | undefined { if (requests.length === 0) return return { component: RequestsPopup, @@ -51,7 +51,7 @@ $: values = [...Array(12).keys()] - function getMonthName (date: Date): string { + function getMonthName(date: Date): string { return new Intl.DateTimeFormat('default', { month: 'long' }).format(date) } diff --git a/plugins/hr-resources/src/components/sidebar/DepartmentsHierarchy.svelte b/plugins/hr-resources/src/components/sidebar/DepartmentsHierarchy.svelte index 4e5aac26f2..ef4f91a638 100644 --- a/plugins/hr-resources/src/components/sidebar/DepartmentsHierarchy.svelte +++ b/plugins/hr-resources/src/components/sidebar/DepartmentsHierarchy.svelte @@ -31,11 +31,11 @@ const client = getClient() const dispatch = createEventDispatcher() - function getDescendants (department: Ref): Ref[] { + function getDescendants(department: Ref): Ref[] { return (descendants.get(department) ?? []).sort((a, b) => a.name.localeCompare(b.name)).map((p) => p._id) } - async function getActions (obj: Department): Promise { + async function getActions(obj: Department): Promise { const result: Action[] = [] const extraActions = await getContributedActions(client, obj, obj._class) for (const act of extraActions) { @@ -51,7 +51,7 @@ return result } - function handleDepartmentSelected (department: Ref): void { + function handleDepartmentSelected(department: Ref): void { dispatch('selected', department) } diff --git a/plugins/inventory-resources/src/components/Categories.svelte b/plugins/inventory-resources/src/components/Categories.svelte index 0198656c62..dd1a388bb2 100644 --- a/plugins/inventory-resources/src/components/Categories.svelte +++ b/plugins/inventory-resources/src/components/Categories.svelte @@ -25,11 +25,11 @@ let search = '' let resultQuery: DocumentQuery = {} - function updateResultQuery (search: string): void { + function updateResultQuery(search: string): void { resultQuery = search === '' ? {} : { $search: search } } - function showCreateDialog () { + function showCreateDialog() { showPopup(CreateCategory, { space: core.space.Workspace }, 'top') } diff --git a/plugins/inventory-resources/src/components/CreateCategory.svelte b/plugins/inventory-resources/src/components/CreateCategory.svelte index f5beae8012..5e4cb3ad03 100644 --- a/plugins/inventory-resources/src/components/CreateCategory.svelte +++ b/plugins/inventory-resources/src/components/CreateCategory.svelte @@ -32,11 +32,11 @@ const client = getClient() const inventoryId = generateId() - export function canClose (): boolean { + export function canClose(): boolean { return name !== '' } - async function create () { + async function create() { const value: AttachedData = { name } diff --git a/plugins/inventory-resources/src/components/CreateProduct.svelte b/plugins/inventory-resources/src/components/CreateProduct.svelte index db1c8fb5aa..6f3fe2893c 100644 --- a/plugins/inventory-resources/src/components/CreateProduct.svelte +++ b/plugins/inventory-resources/src/components/CreateProduct.svelte @@ -36,11 +36,11 @@ const dispatch = createEventDispatcher() const client = getClient() - export function canClose (): boolean { + export function canClose(): boolean { return doc.attachedTo.length === 0 && doc.name.length === 0 } - async function create () { + async function create() { const categoryInstance = await client.findOne(inventory.class.Category, { _id: doc.attachedTo as Ref }) if (categoryInstance === undefined) { throw new Error('category not found') diff --git a/plugins/inventory-resources/src/components/CreateVariant.svelte b/plugins/inventory-resources/src/components/CreateVariant.svelte index 7e671815fb..e2a0e64342 100644 --- a/plugins/inventory-resources/src/components/CreateVariant.svelte +++ b/plugins/inventory-resources/src/components/CreateVariant.svelte @@ -39,11 +39,11 @@ const dispatch = createEventDispatcher() const client = getClient() - export function canClose (): boolean { + export function canClose(): boolean { return doc.attachedTo.length === 0 && doc.name.length === 0 } - async function create () { + async function create() { const productInstance = await client.findOne(inventory.class.Product, { _id: doc.attachedTo as Ref }) if (productInstance === undefined) { throw new Error('product not found') diff --git a/plugins/inventory-resources/src/components/HierarchyElement.svelte b/plugins/inventory-resources/src/components/HierarchyElement.svelte index 6d792557af..b2fdcb9df4 100644 --- a/plugins/inventory-resources/src/components/HierarchyElement.svelte +++ b/plugins/inventory-resources/src/components/HierarchyElement.svelte @@ -29,7 +29,7 @@ export let parent: Ref = inventory.global.Category let expanded: Set> = new Set>() - function click (id: Ref): void { + function click(id: Ref): void { if (!descendants.has(id)) return if (expanded.has(id)) { expanded.delete(id) diff --git a/plugins/inventory-resources/src/components/HierarchyView.svelte b/plugins/inventory-resources/src/components/HierarchyView.svelte index 0e86bce391..581719ae47 100644 --- a/plugins/inventory-resources/src/components/HierarchyView.svelte +++ b/plugins/inventory-resources/src/components/HierarchyView.svelte @@ -32,7 +32,7 @@ const q = createQuery() - async function update (_class: Ref>, query: DocumentQuery, options?: FindOptions) { + async function update(_class: Ref>, query: DocumentQuery, options?: FindOptions) { q.query( _class, query, @@ -45,7 +45,7 @@ } $: update(_class, query, options) - function updateDescendants (): void { + function updateDescendants(): void { descendants.clear() for (const doc of objects) { const current = descendants.get(doc.attachedTo) diff --git a/plugins/lead-resources/src/components/CreateCustomer.svelte b/plugins/lead-resources/src/components/CreateCustomer.svelte index f2ef95ccdd..a652101d33 100644 --- a/plugins/lead-resources/src/components/CreateCustomer.svelte +++ b/plugins/lead-resources/src/components/CreateCustomer.svelte @@ -50,7 +50,7 @@ let lastName = '' let description = EmptyMarkup - export function canClose (): boolean { + export function canClose(): boolean { return firstName === '' && lastName === '' } @@ -67,11 +67,11 @@ let channels: AttachedData[] = [] let avatar: File | undefined - function formatName (targetClass: Ref>, firstName: string, lastName: string, objectName: string): string { + function formatName(targetClass: Ref>, firstName: string, lastName: string, objectName: string): string { return targetClass === contact.class.Person ? combineName(firstName.trim(), lastName.trim()) : objectName } - async function createCustomer (): Promise { + async function createCustomer(): Promise { const candidate: Data = { name, city: object.city, @@ -128,7 +128,7 @@ ] let targetClass = targets[0] - function selectTarget (evt: MouseEvent): void { + function selectTarget(evt: MouseEvent): void { showPopup( SelectPopup, { diff --git a/plugins/lead-resources/src/components/CreateFunnel.svelte b/plugins/lead-resources/src/components/CreateFunnel.svelte index f498685ac4..df4b15c090 100644 --- a/plugins/lead-resources/src/components/CreateFunnel.svelte +++ b/plugins/lead-resources/src/components/CreateFunnel.svelte @@ -58,12 +58,12 @@ $: membersPersons = members.map((m) => $employeeRefByAccountUuidStore.get(m)).filter(notEmpty) $: readOnlyGuestOwnerExcludeItems = getAnonymousRefs($employeeRefByAccountUuidStore, owners) $: void loadSpaceType(typeId) - async function loadSpaceType (id: typeof typeId): Promise { + async function loadSpaceType(id: typeof typeId): Promise { spaceType = id !== undefined ? await client - .getModel() - .findOne(core.class.SpaceType, { _id: id }, { lookup: { _id: { roles: core.class.Role } } }) + .getModel() + .findOne(core.class.SpaceType, { _id: id }, { lookup: { _id: { roles: core.class.Role } } }) : undefined if (spaceType?.targetClass === undefined || spaceType?.$lookup?.roles === undefined) { @@ -75,7 +75,7 @@ $: roles = (spaceType?.$lookup?.roles ?? []) as Role[] - function getRolesAssignment (): RolesAssignment { + function getRolesAssignment(): RolesAssignment { if (funnel === undefined || spaceType?.targetClass === undefined || spaceType?.$lookup?.roles === undefined) { return {} } @@ -89,11 +89,11 @@ }, {}) } - export function canClose (): boolean { + export function canClose(): boolean { return name === '' && typeId !== undefined } - async function createFunnel (): Promise { + async function createFunnel(): Promise { if (typeId === undefined || spaceType?.targetClass === undefined) { return } @@ -114,7 +114,7 @@ Analytics.handleEvent(LeadEvents.FunnelCreated, { id: funnelId }) } - async function save (): Promise { + async function save(): Promise { if (isNew) { await createFunnel() } else if (funnel !== undefined && spaceType?.targetClass !== undefined) { @@ -136,14 +136,14 @@ } } - function handleOwnersChanged (newOwners: AccountUuid[]): void { + function handleOwnersChanged(newOwners: AccountUuid[]): void { owners = newOwners const newMembersSet = new Set([...members, ...newOwners]) members = Array.from(newMembersSet) } - function handleMembersChanged (newMembers: AccountUuid[]): void { + function handleMembersChanged(newMembers: AccountUuid[]): void { membersChanged = true // If a member was removed we need to remove it from any roles assignments as well const newMembersSet = new Set(newMembers) @@ -158,7 +158,7 @@ members = newMembers } - function handleRoleAssignmentChanged (roleId: Ref, newMembers: AccountUuid[]): void { + function handleRoleAssignmentChanged(roleId: Ref, newMembers: AccountUuid[]): void { if (rolesAssignment === undefined) { rolesAssignment = {} } @@ -175,7 +175,7 @@ let membersChanged: boolean = false - function setDefaultMembers (typeType: SpaceType | undefined): void { + function setDefaultMembers(typeType: SpaceType | undefined): void { if (typeType === undefined) return if (membersChanged) return if (funnel !== undefined) return diff --git a/plugins/lead-resources/src/components/CreateLead.svelte b/plugins/lead-resources/src/components/CreateLead.svelte index 092bdbee06..375c363cdd 100644 --- a/plugins/lead-resources/src/components/CreateLead.svelte +++ b/plugins/lead-resources/src/components/CreateLead.svelte @@ -51,7 +51,7 @@ const client = getClient() const leadId: Ref = generateId() - export function canClose (): boolean { + export function canClose(): boolean { return (preserveCustomer || customer === undefined) && title === '' } @@ -66,7 +66,7 @@ $: setStatus(rawStates, object.status) - function setStatus (rawStates: TaskStatus[], status: Ref | undefined) { + function setStatus(rawStates: TaskStatus[], status: Ref | undefined) { if (status === undefined || rawStates.findIndex((it) => it._id === status) === -1) { state = rawStates[0]?._id object.status = state @@ -83,7 +83,7 @@ let kind: Ref | undefined = undefined - async function createLead () { + async function createLead() { const sequence = await client.findOne(core.class.Sequence, { attachedTo: lead.class.Lead }) if (sequence === undefined || customer == null) { throw new Error('Lead creation failed') diff --git a/plugins/lead-resources/src/components/EditFunnel.svelte b/plugins/lead-resources/src/components/EditFunnel.svelte index 638363792c..7265178c7c 100644 --- a/plugins/lead-resources/src/components/EditFunnel.svelte +++ b/plugins/lead-resources/src/components/EditFunnel.svelte @@ -39,7 +39,7 @@ const query = createQuery() - function updateObject (_id: Ref): void { + function updateObject(_id: Ref): void { query.query(lead.class.Funnel, { _id }, (result) => { object = result[0] as Required rawName = object.name @@ -49,7 +49,7 @@ $: updateObject(_id) - function onChange (key: string, value: any): void { + function onChange(key: string, value: any): void { client.updateDoc(object._class, object.space, object._id, { [key]: value }) } diff --git a/plugins/lead-resources/src/components/EditLead.svelte b/plugins/lead-resources/src/components/EditLead.svelte index 1e3559c67e..baa7e9f4fb 100644 --- a/plugins/lead-resources/src/components/EditLead.svelte +++ b/plugins/lead-resources/src/components/EditLead.svelte @@ -36,7 +36,7 @@ rawTitle = object.title } - function change (field: string, value: any) { + function change(field: string, value: any) { client.updateDoc(object._class, object.space, object._id, { [field]: value }) } diff --git a/plugins/lead-resources/src/components/KanbanCard.svelte b/plugins/lead-resources/src/components/KanbanCard.svelte index e1c01959d3..577ddb8d07 100644 --- a/plugins/lead-resources/src/components/KanbanCard.svelte +++ b/plugins/lead-resources/src/components/KanbanCard.svelte @@ -39,7 +39,7 @@ const client = getClient() const assigneeAttribute = client.getHierarchy().getAttribute(lead.class.Lead, 'assignee') - function showLead () { + function showLead() { openDoc(client.getHierarchy(), object) } diff --git a/plugins/lead-resources/src/components/MyLeads.svelte b/plugins/lead-resources/src/components/MyLeads.svelte index 3c807092a5..2343a9a328 100644 --- a/plugins/lead-resources/src/components/MyLeads.svelte +++ b/plugins/lead-resources/src/components/MyLeads.svelte @@ -59,14 +59,14 @@ $: mode = $resolvedLocationStore.query?.mode ?? undefined let searchQuery: DocumentQuery = { ...(baseQuery ?? {}) } - function updateSearchQuery (search: string): void { + function updateSearchQuery(search: string): void { searchQuery = search === '' ? { ...baseQuery } : { ...baseQuery, $search: search } } $: if (baseQuery) updateSearchQuery(search) $: resultQuery = { ...searchQuery } const subscribedQuery = createQuery() - function getSubscribed () { + function getSubscribed() { subscribedQuery.query( _class, { 'notification:mixin:Collaborators.collaborators': myAcc.uuid }, diff --git a/plugins/lead-resources/src/components/NewItemsHeader.svelte b/plugins/lead-resources/src/components/NewItemsHeader.svelte index 3b9354347e..96568c8e5a 100644 --- a/plugins/lead-resources/src/components/NewItemsHeader.svelte +++ b/plugins/lead-resources/src/components/NewItemsHeader.svelte @@ -21,7 +21,7 @@ const client = getClient() - async function newIssue (): Promise { + async function newIssue(): Promise { showPopup(CreateCustomer, {}, 'top') } diff --git a/plugins/login-resources/src/components/AdminWorkspaces.svelte b/plugins/login-resources/src/components/AdminWorkspaces.svelte index c096980caa..6f647859e4 100644 --- a/plugins/login-resources/src/components/AdminWorkspaces.svelte +++ b/plugins/login-resources/src/components/AdminWorkspaces.svelte @@ -51,7 +51,7 @@ let search: string = '' - async function select (workspace: string): Promise { + async function select(workspace: string): Promise { const url = locationToUrl({ path: [workbenchId, workspace] }) window.open(url, '_blank') } @@ -95,7 +95,7 @@ let showSelectedRegionOnly: boolean = false let showInactive = false - function isWorkspaceInactive (it: WorkspaceInfo, stats: WorkspaceStatistics | undefined): boolean { + function isWorkspaceInactive(it: WorkspaceInfo, stats: WorkspaceStatistics | undefined): boolean { if (stats === undefined) { return true } @@ -112,7 +112,7 @@ return false } - function getBackupSize (workspace: WorkspaceInfo): number { + function getBackupSize(workspace: WorkspaceInfo): number { return Math.max( workspace.backupInfo?.backupSize ?? 0, (workspace.backupInfo?.dataSize ?? 0) + (workspace.backupInfo?.blobsSize ?? 0) @@ -166,7 +166,7 @@ const endpoint = getMetadata(presentation.metadata.StatsUrl) - async function fetchStats (time: number): Promise { + async function fetchStats(time: number): Promise { await fetch(endpoint + `/api/v1/overview?token=${token}`, {}) .then(async (json) => { data = await json.json() @@ -327,11 +327,11 @@ void loadAccounts(accountSearch, accountSkip, accountLimit) - async function deleteAccount (uuid: AccountUuid): Promise { + async function deleteAccount(uuid: AccountUuid): Promise { await accountClient.deleteAccount(uuid) } - async function accountSearchChanged (ev: CustomEvent): Promise { + async function accountSearchChanged(ev: CustomEvent): Promise { accountSkip = 0 await loadAccounts(ev.detail, accountSkip, accountLimit) } diff --git a/plugins/login-resources/src/components/Auth.svelte b/plugins/login-resources/src/components/Auth.svelte index 94b46b40ed..da11004fe4 100644 --- a/plugins/login-resources/src/components/Auth.svelte +++ b/plugins/login-resources/src/components/Auth.svelte @@ -59,7 +59,7 @@ await handleLoginInfo(result) }) - async function handleLoginInfo (result: LoginInfoByToken): Promise { + async function handleLoginInfo(result: LoginInfoByToken): Promise { if (result == null) { goTo('login', true) } else if (isLoginInfoRequest(result)) { diff --git a/plugins/login-resources/src/components/AutoJoin.svelte b/plugins/login-resources/src/components/AutoJoin.svelte index 5ff072f731..40aef06f8e 100644 --- a/plugins/login-resources/src/components/AutoJoin.svelte +++ b/plugins/login-resources/src/components/AutoJoin.svelte @@ -41,13 +41,13 @@ $: void updateSubtitle(name, $themeStore.language) - async function updateSubtitle (name: string, language: string): Promise { + async function updateSubtitle(name: string, language: string): Promise { if (name != null && name !== '') { subtitle = await translate(login.string.Hello, { name }, language) } } - async function check (): Promise { + async function check(): Promise { if (location.query?.inviteId == null || (location.query?.firstName == null && location.query?.token == null)) return if (location.query?.token != null) { @@ -95,7 +95,7 @@ } } - async function onLogin (loginInfo: LoginInfo | null): Promise { + async function onLogin(loginInfo: LoginInfo | null): Promise { if (loginInfo?.token == null) { return } diff --git a/plugins/login-resources/src/components/Confirmation.svelte b/plugins/login-resources/src/components/Confirmation.svelte index 6955b40fbf..7c0e35cb4a 100644 --- a/plugins/login-resources/src/components/Confirmation.svelte +++ b/plugins/login-resources/src/components/Confirmation.svelte @@ -23,7 +23,7 @@ export let status: Status = OK - async function check (): Promise { + async function check(): Promise { const location = getCurrentLocation() if (location.query?.id === undefined || location.query?.id === null) return status = new Status(Severity.INFO, login.status.ConnectingToServer, {}) diff --git a/plugins/login-resources/src/components/ConfirmationSend.svelte b/plugins/login-resources/src/components/ConfirmationSend.svelte index 97e59dc218..54efc01737 100644 --- a/plugins/login-resources/src/components/ConfirmationSend.svelte +++ b/plugins/login-resources/src/components/ConfirmationSend.svelte @@ -22,7 +22,7 @@ let checkHandle: number | undefined let mounted = false - async function checkAccountStatus (): Promise { + async function checkAccountStatus(): Promise { const loginInfo = await getAccount(false) if (loginInfo?.token != null) { @@ -30,7 +30,7 @@ } } - async function check (): Promise { + async function check(): Promise { try { await checkAccountStatus() } catch (e) { diff --git a/plugins/login-resources/src/components/Form.svelte b/plugins/login-resources/src/components/Form.svelte index 396d3d08ec..5b8f7f42fb 100644 --- a/plugins/login-resources/src/components/Form.svelte +++ b/plugins/login-resources/src/components/Form.svelte @@ -52,7 +52,7 @@ export let actionButtonDataId: string | undefined = undefined export let secondaryButtonDataId: string | undefined = undefined - const validate = makeSequential(async function validateAsync (language: string): Promise { + const validate = makeSequential(async function validateAsync(language: string): Promise { if (ignoreInitialValidation || isLoading) return true for (const field of fields) { @@ -93,7 +93,7 @@ return true }) - export function invalidate (): void { + export function invalidate(): void { void validate($themeStore.language) } @@ -108,7 +108,7 @@ let inAction = false - function performAction (action: Action): void { + function performAction(action: Action): void { if (inAction) return for (const field of fields) { @@ -121,7 +121,7 @@ } onMount(() => (ignoreInitialValidation = false)) - function trim (field: string): void { + function trim(field: string): void { object[field] = (object[field] as string).trim() } diff --git a/plugins/login-resources/src/components/InviteLink.svelte b/plugins/login-resources/src/components/InviteLink.svelte index 16dec932b3..d3a3cdce08 100644 --- a/plugins/login-resources/src/components/InviteLink.svelte +++ b/plugins/login-resources/src/components/InviteLink.svelte @@ -59,13 +59,13 @@ } }) - function setToDefault (): void { + function setToDefault(): void { expHours = defaultValues.expirationTime emailMask = defaultValues.emailMask limit = defaultValues.limit } - async function getLink (expHours: number, mask: string, limit: number | undefined, role: AccountRole): Promise { + async function getLink(expHours: number, mask: string, limit: number | undefined, role: AccountRole): Promise { loading = true link = await getInviteLink(expHours, mask, limit ?? -1, role) loading = false @@ -78,7 +78,7 @@ copied = false } - async function copy (): Promise { + async function copy(): Promise { if (!isSecureContext) return if (link === undefined) return @@ -117,7 +117,7 @@ let link: string | undefined let loading = false - function handleInviteRoleSelected (e: CustomEvent): void { + function handleInviteRoleSelected(e: CustomEvent): void { role = e.detail link = undefined } diff --git a/plugins/login-resources/src/components/Join.svelte b/plugins/login-resources/src/components/Join.svelte index 57d7c362a7..dc64c5bfe4 100644 --- a/plugins/login-resources/src/components/Join.svelte +++ b/plugins/login-resources/src/components/Join.svelte @@ -95,19 +95,19 @@ const [loginStatus, result] = page === 'login' ? await join( - object.username, - object.password, - location.query?.inviteId ?? '', - location.query?.workspace ?? '' - ) + object.username, + object.password, + location.query?.inviteId ?? '', + location.query?.workspace ?? '' + ) : await signUpJoin( - object.username, - object.password, - object.first, - object.last, - location.query?.inviteId ?? '', - location.query?.workspace ?? '' - ) + object.username, + object.password, + object.first, + object.last, + location.query?.inviteId ?? '', + location.query?.workspace ?? '' + ) status = loginStatus if (result != null) { @@ -145,7 +145,7 @@ void check() }) - async function check (): Promise { + async function check(): Promise { if (location.query?.inviteId === undefined || location.query?.inviteId === null) { checking = false return @@ -192,7 +192,7 @@ checking = false } - async function handleJoinWithThisAccount (): Promise { + async function handleJoinWithThisAccount(): Promise { const inviteId = location.query?.inviteId if (inviteId == null) return joiningWithAccount = true @@ -222,13 +222,13 @@ } } - function handleUseDifferentAccount (): void { + function handleUseDifferentAccount(): void { setMetadata(presentation.metadata.Token, null) showJoinWithAccount = false page = 'login' } - async function handleUseCurrentAccountToJoin (): Promise { + async function handleUseCurrentAccountToJoin(): Promise { try { if (currentAccountName == null) { console.error('Current account is not found') diff --git a/plugins/login-resources/src/components/LoginApp.svelte b/plugins/login-resources/src/components/LoginApp.svelte index 2af6f572bd..f063df0184 100644 --- a/plugins/login-resources/src/components/LoginApp.svelte +++ b/plugins/login-resources/src/components/LoginApp.svelte @@ -65,7 +65,7 @@ onDestroy(location.subscribe(updatePageLoc)) - function updatePageLoc (loc: Location): void { + function updatePageLoc(loc: Location): void { const token = getMetadata(presentation.metadata.Token) page = (loc.path[1] as Pages) ?? (token != null ? 'selectWorkspace' : 'login') if (page === 'join' && loc.query?.autoJoin !== undefined) { @@ -93,7 +93,7 @@ tfaToken = loc.query?.token ?? undefined } - async function chooseToken (): Promise { + async function chooseToken(): Promise { if (page === 'auth') { // token handled by auth page return diff --git a/plugins/login-resources/src/components/LoginAppBase.svelte b/plugins/login-resources/src/components/LoginAppBase.svelte index 30f031e72c..3f0691f707 100644 --- a/plugins/login-resources/src/components/LoginAppBase.svelte +++ b/plugins/login-resources/src/components/LoginAppBase.svelte @@ -46,7 +46,7 @@ $: activeTheme = $loginTheme // themeStyle resolves to override theme vars when override is active, otherwise to store theme vars - function onDevThemeChange (e: Event): void { + function onDevThemeChange(e: Event): void { const v = (e.target as HTMLSelectElement).value as LoginThemeName // set local override and apply accent class immediately (no store change) setLoginTheme(v) diff --git a/plugins/login-resources/src/components/LoginForm.svelte b/plugins/login-resources/src/components/LoginForm.svelte index 02b752ec4b..c3d9009045 100644 --- a/plugins/login-resources/src/components/LoginForm.svelte +++ b/plugins/login-resources/src/components/LoginForm.svelte @@ -52,7 +52,7 @@ }) }) - function changeMethod (event: CustomEvent): void { + function changeMethod(event: CustomEvent): void { method = event.detail } @@ -70,7 +70,7 @@ } } - async function guestLogin (): Promise { + async function guestLogin(): Promise { let status = new Status(Severity.INFO, login.status.ConnectingToServer, {}) const [loginStatus, result] = await doLoginAsGuest() status = loginStatus diff --git a/plugins/login-resources/src/components/LoginOtpForm.svelte b/plugins/login-resources/src/components/LoginOtpForm.svelte index 48319683f1..eb03b57d8b 100644 --- a/plugins/login-resources/src/components/LoginOtpForm.svelte +++ b/plugins/login-resources/src/components/LoginOtpForm.svelte @@ -57,7 +57,7 @@ } } - function handleStep (event: CustomEvent): void { + function handleStep(event: CustomEvent): void { step = event.detail } diff --git a/plugins/login-resources/src/components/OtpForm.svelte b/plugins/login-resources/src/components/OtpForm.svelte index 44a71b308a..70139f8bfa 100644 --- a/plugins/login-resources/src/components/OtpForm.svelte +++ b/plugins/login-resources/src/components/OtpForm.svelte @@ -60,11 +60,11 @@ let formElement: HTMLFormElement | undefined - function trim (field: string): void { + function trim(field: string): void { otpData[field] = otpData[field].trim() } - async function validateOtp (): Promise { + async function validateOtp(): Promise { status = new Status(Severity.INFO, login.status.ConnectingToServer, {}) const otp = otpData.otp1 + otpData.otp2 + otpData.otp3 + otpData.otp4 + otpData.otp5 + otpData.otp6 @@ -84,7 +84,7 @@ } } - function onInput (e: Event): void { + function onInput(e: Event): void { if (e.target == null) return const target = e.target as HTMLInputElement @@ -115,7 +115,7 @@ } } - function clearOtpData (): void { + function clearOtpData(): void { Object.keys(otpData).forEach((key) => { otpData[key] = '' }) @@ -126,7 +126,7 @@ } } - function onKeydown (e: KeyboardEvent): void { + function onKeydown(e: KeyboardEvent): void { const key = e.key.toLowerCase() const target = e.target as HTMLInputElement @@ -150,7 +150,7 @@ } } - function onPaste (e: ClipboardEvent): void { + function onPaste(e: ClipboardEvent): void { e.preventDefault() if (e.clipboardData == null) return @@ -159,7 +159,7 @@ pasteOtpCode(text) } - function pasteOtpCode (text: string): boolean { + function pasteOtpCode(text: string): boolean { const digits = text.split('').filter((it) => it !== ' ') if (digits.length !== fields.length) { @@ -203,7 +203,7 @@ } }) - async function resendCode (): Promise { + async function resendCode(): Promise { status = new Status(Severity.INFO, login.status.ConnectingToServer, {}) const [otpStatus, result] = await loginOtp(email) status = otpStatus diff --git a/plugins/login-resources/src/components/Providers.svelte b/plugins/login-resources/src/components/Providers.svelte index a2d8f3663a..ff39b6c3c5 100644 --- a/plugins/login-resources/src/components/Providers.svelte +++ b/plugins/login-resources/src/components/Providers.svelte @@ -37,7 +37,7 @@ }) }) - function getColumnsCount (providersCount: number): number { + function getColumnsCount(providersCount: number): number { if ($deviceOptionsStore.isMobile) { return 1 } @@ -46,7 +46,7 @@ const location = getCurrentLocation() - function getLink (provider: Provider): string { + function getLink(provider: Provider): string { const inviteId = location.query?.inviteId const autoJoin = location.query?.autoJoin !== undefined const navigateUrl = location.query?.navigateUrl @@ -65,7 +65,7 @@ return concatLink(accountsUrl, path) } - function handleProviderClick (provider: Provider): void { + function handleProviderClick(provider: Provider): void { const currentPath = location.path[1] const isSignUp = currentPath === 'signup' const isJoin = currentPath === 'join' diff --git a/plugins/login-resources/src/components/SelectWorkspace.svelte b/plugins/login-resources/src/components/SelectWorkspace.svelte index 357e7a3015..590e4a9312 100644 --- a/plugins/login-resources/src/components/SelectWorkspace.svelte +++ b/plugins/login-resources/src/components/SelectWorkspace.svelte @@ -61,14 +61,14 @@ let flagToUpdateWorkspaces = false - async function loadAccount (): Promise { + async function loadAccount(): Promise { accountPromise = getAccount() account = await accountPromise isReadOnlyGuest = await isReadOnlyGuestAccount(account) } // eslint-disable-next-line @typescript-eslint/no-unused-vars - const updateWorkspaces = reduceCalls(async function updateWorkspaces (_time?: number): Promise { + const updateWorkspaces = reduceCalls(async function updateWorkspaces(_time?: number): Promise { try { workspaces = await getWorkspaces() } catch (e) { @@ -84,7 +84,7 @@ void loadAccount() }) - async function select (workspaceUrl: string): Promise { + async function select(workspaceUrl: string): Promise { status = new Status(Severity.INFO, login.status.ConnectingToServer, {}) const [loginStatus, result] = await selectWorkspace(workspaceUrl) @@ -117,7 +117,7 @@ navigateToWorkspace(workspaceUrl, result, navigateUrl) } - async function _getWorkspaces (): Promise { + async function _getWorkspaces(): Promise { try { const res = await getWorkspaces() diff --git a/plugins/login-resources/src/components/SignupForm.svelte b/plugins/login-resources/src/components/SignupForm.svelte index d0eaba04dd..9a897e63b5 100644 --- a/plugins/login-resources/src/components/SignupForm.svelte +++ b/plugins/login-resources/src/components/SignupForm.svelte @@ -126,7 +126,7 @@ } } - function handleStep (event: CustomEvent): void { + function handleStep(event: CustomEvent): void { step = event.detail } diff --git a/plugins/love-resources/src/components/AddRoomPopup.svelte b/plugins/love-resources/src/components/AddRoomPopup.svelte index 622315cfcd..be76596725 100644 --- a/plugins/love-resources/src/components/AddRoomPopup.svelte +++ b/plugins/love-resources/src/components/AddRoomPopup.svelte @@ -46,7 +46,7 @@ } ] as const - async function createRoom (value: TypeIds): Promise { + async function createRoom(value: TypeIds): Promise { const val = items.find((i) => i.id === value) if (val === undefined) return const client = getClient() @@ -85,7 +85,7 @@ dispatch('close') } - async function createFloor (): Promise { + async function createFloor(): Promise { const client = getClient() const name = await translate(love.string.Floor, {}) const _id = await client.createDoc(love.class.Floor, core.space.Workspace, { name }) diff --git a/plugins/love-resources/src/components/EditFloorPopup.svelte b/plugins/love-resources/src/components/EditFloorPopup.svelte index 985aeab02e..32eeb88d21 100644 --- a/plugins/love-resources/src/components/EditFloorPopup.svelte +++ b/plugins/love-resources/src/components/EditFloorPopup.svelte @@ -19,10 +19,10 @@ }) } - async function createFloor (): Promise { + async function createFloor(): Promise { await client.createDoc(love.class.Floor, core.space.Workspace, { name }) } - async function updateFloor (): Promise { + async function updateFloor(): Promise { if (id === undefined) return await client.updateDoc(love.class.Floor, core.space.Workspace, id, { name }) } diff --git a/plugins/love-resources/src/components/EditMeetingData.svelte b/plugins/love-resources/src/components/EditMeetingData.svelte index 096e77aec8..b2677242fb 100644 --- a/plugins/love-resources/src/components/EditMeetingData.svelte +++ b/plugins/love-resources/src/components/EditMeetingData.svelte @@ -43,7 +43,7 @@ meetingDoc = r.shift() }) - async function resetMeeting (meetingDoc: MeetingMinutes): Promise { + async function resetMeeting(meetingDoc: MeetingMinutes): Promise { if (meetingDoc.status === MeetingStatus.Active || meetingDoc.status === MeetingStatus.Pending) { // Disallow change for active meeting return diff --git a/plugins/love-resources/src/components/EditMeetingMinutes.svelte b/plugins/love-resources/src/components/EditMeetingMinutes.svelte index de38ae7248..a96704eb91 100644 --- a/plugins/love-resources/src/components/EditMeetingMinutes.svelte +++ b/plugins/love-resources/src/components/EditMeetingMinutes.svelte @@ -43,7 +43,7 @@ currentTitle = object.title } - async function changeTitle (): Promise { + async function changeTitle(): Promise { await client.diffUpdate(object, { title: newTitle }) } @@ -56,13 +56,13 @@ $: hasPendingJoinInThisSession = $myConnectingSessionId !== null && $myConnectingSessionId === currentSessionId && $lkIsConnecting - async function connect (): Promise { + async function connect(): Promise { await joinMeeting(object) } $: connectLabel = object.status !== MeetingStatus.Scheduled ? love.string.JoinMeeting : love.string.StartMeeting - function showConnectionButton (object: MeetingMinutes, connecting: boolean, isConnected: boolean): boolean { + function showConnectionButton(object: MeetingMinutes, connecting: boolean, isConnected: boolean): boolean { if (object.status === MeetingStatus.Finished) { return false } @@ -74,7 +74,7 @@ return true } - function getInfo (mm: Ref, info: ParticipantInfo[]): ParticipantInfo[] { + function getInfo(mm: Ref, info: ParticipantInfo[]): ParticipantInfo[] { return info.filter((p) => p.meeting === mm) } diff --git a/plugins/love-resources/src/components/EditMeetingScheduleData.svelte b/plugins/love-resources/src/components/EditMeetingScheduleData.svelte index 53ac6d2d07..511b08f97e 100644 --- a/plugins/love-resources/src/components/EditMeetingScheduleData.svelte +++ b/plugins/love-resources/src/components/EditMeetingScheduleData.svelte @@ -27,7 +27,7 @@ $: isMeetingSchedule = client.getHierarchy().hasMixin(value, love.mixin.MeetingSchedule) $: meetingSchedule = isMeetingSchedule ? client.getHierarchy().as(value, love.mixin.MeetingSchedule) : null - async function changeRoom (val: Ref): Promise { + async function changeRoom(val: Ref): Promise { const schedules = await client.findAll(value._class, { _id: value._id }, { projection: { _id: 1 } }) for (const schedule of schedules) { await client.updateMixin(schedule._id, schedule._class, schedule.space, love.mixin.MeetingSchedule, { room: val }) diff --git a/plugins/love-resources/src/components/EditRoom.svelte b/plugins/love-resources/src/components/EditRoom.svelte index 196f02035e..c5f18cb100 100644 --- a/plugins/love-resources/src/components/EditRoom.svelte +++ b/plugins/love-resources/src/components/EditRoom.svelte @@ -43,7 +43,7 @@ dispatch('open', { ignoreKeys: ['name'] }) }) - async function connect (): Promise { + async function connect(): Promise { const mm = get(meetings).find((it) => it.attachedTo === object._id) if (mm !== undefined) { await joinMeeting(mm) @@ -54,7 +54,7 @@ let connectLabel: IntlString | undefined - async function updateConnecting (object: Room, infos: ParticipantInfo[], isLocalConnecting: boolean): Promise { + async function updateConnecting(object: Room, infos: ParticipantInfo[], isLocalConnecting: boolean): Promise { connecting = isLocalConnecting || ($currentRoom?._id === object._id && !$lkSessionConnected) let _connectLabel: IntlString = infos.some(({ room }) => room === object._id) @@ -75,7 +75,7 @@ $: void updateConnecting(object, $infos, hasPendingJoinInThisSession) - function showConnectionButton ( + function showConnectionButton( object: Room, connecting: boolean, isConnected: boolean, @@ -102,7 +102,7 @@ return true } - function getInfo (room: Ref, info: ParticipantInfo[]): ParticipantInfo[] { + function getInfo(room: Ref, info: ParticipantInfo[]): ParticipantInfo[] { return info.filter((p) => p.room === room) } diff --git a/plugins/love-resources/src/components/Floor.svelte b/plugins/love-resources/src/components/Floor.svelte index 50cb3e77d2..588c1e95d7 100644 --- a/plugins/love-resources/src/components/Floor.svelte +++ b/plugins/love-resources/src/components/Floor.svelte @@ -47,7 +47,7 @@ return { id: p._id, label: p.name } }) - function changeFloor (event: CustomEvent>) { + function changeFloor(event: CustomEvent>) { if (event.detail) { selectedFloor.set(event.detail) } diff --git a/plugins/love-resources/src/components/FloorConfigure.svelte b/plugins/love-resources/src/components/FloorConfigure.svelte index 661d6811f0..7b2b941a7b 100644 --- a/plugins/love-resources/src/components/FloorConfigure.svelte +++ b/plugins/love-resources/src/components/FloorConfigure.svelte @@ -70,7 +70,7 @@ let cursor: string = '' $: document.body.style.cursor = cursor - async function updateRoom (id: Ref): Promise { + async function updateRoom(id: Ref): Promise { if (locked !== undefined && resizeInitParams !== undefined) { const room = rooms.find((r) => r._id === id) if (room === undefined) { @@ -95,7 +95,7 @@ } } - function addRoom (e: MouseEvent): void { + function addRoom(e: MouseEvent): void { showPopup(AddRoomPopup, { floor }, eventToHTMLElement(e)) } @@ -107,7 +107,7 @@ else if (roomsConf[lockedID]) roomsConf[lockedID].setShadowColor(r, g, b, a) } - function startDragRoom (room: Room, size: DOMRect, n: number): void { + function startDragRoom(room: Room, size: DOMRect, n: number): void { if (room === undefined || size === undefined) return const map: boolean[][] = getFreeSpace(rooms, room, true) locked = { room, size, map } @@ -117,7 +117,7 @@ window.addEventListener('mouseup', docMouseUp) } - function dragMouseMove (e: MouseEvent): void { + function dragMouseMove(e: MouseEvent): void { if ($lockedRoom === '' || block || dragged === undefined || locked === undefined) return block = true if (!dragShadow && dragged && dragRoom) { @@ -152,7 +152,7 @@ block = false } - function startResizeRoom (room: Room, size: DOMRect, side: RoomSide, n: number): void { + function startResizeRoom(room: Room, size: DOMRect, side: RoomSide, n: number): void { if (room === undefined || size === undefined || side === undefined) return const map: boolean[][] = getFreeSpace(rooms, room) locked = { room, size, map, side } @@ -161,7 +161,7 @@ window.addEventListener('mouseup', docMouseUp) } - function resizeMouseMove (e: MouseEvent): void { + function resizeMouseMove(e: MouseEvent): void { if ($lockedRoom === '' || locked?.room === undefined || locked.side === undefined || block) return block = true const error: RoomSide = { top: false, bottom: false, left: false, right: false } @@ -271,7 +271,7 @@ block = false } - function docMouseUp (e: MouseEvent): void { + function docMouseUp(e: MouseEvent): void { if (locked) updateRoom(locked.room._id) if (dragged !== undefined) { divScroll.removeEventListener('mousemove', dragMouseMove) @@ -288,7 +288,7 @@ } $: rows = calculateFloorSize(rooms) + 2 - function changeFloor (event: CustomEvent>) { + function changeFloor(event: CustomEvent>) { if (event.detail) { selectedFloor.set(event.detail) } diff --git a/plugins/love-resources/src/components/FloorPreview.svelte b/plugins/love-resources/src/components/FloorPreview.svelte index 34d9da17f4..5c77e37136 100644 --- a/plugins/love-resources/src/components/FloorPreview.svelte +++ b/plugins/love-resources/src/components/FloorPreview.svelte @@ -57,13 +57,13 @@ let floorContainer: HTMLDivElement let hovered: number = -1 - function getInfo (room: Ref, info: ParticipantInfo[]): ParticipantInfo[] { + function getInfo(room: Ref, info: ParticipantInfo[]): ParticipantInfo[] { return info.filter((p) => p.room === room) } let roomName: IntlString | undefined = undefined - function hover (e: CustomEvent, n: number): void { + function hover(e: CustomEvent, n: number): void { roomName = e.detail.name hovered = n } @@ -73,11 +73,11 @@ const client = getClient() - async function remove (): Promise { + async function remove(): Promise { await client.remove(floor) } - function renameFloor (): void { + function renameFloor(): void { showPopup(EditFloorPopup, { id: floor._id }, 'top', () => { pressed = false }) diff --git a/plugins/love-resources/src/components/FloorView.svelte b/plugins/love-resources/src/components/FloorView.svelte index d565a2edca..4eaa62123b 100644 --- a/plugins/love-resources/src/components/FloorView.svelte +++ b/plugins/love-resources/src/components/FloorView.svelte @@ -25,7 +25,7 @@ let floorContainer: HTMLDivElement - function getInfo (room: Ref, info: ParticipantInfo[]): ParticipantInfo[] { + function getInfo(room: Ref, info: ParticipantInfo[]): ParticipantInfo[] { return info.filter((p) => p.room === room) } diff --git a/plugins/love-resources/src/components/Hall.svelte b/plugins/love-resources/src/components/Hall.svelte index 5f586ffd16..fdadceeecf 100644 --- a/plugins/love-resources/src/components/Hall.svelte +++ b/plugins/love-resources/src/components/Hall.svelte @@ -22,7 +22,7 @@ import Floor from './Floor.svelte' import FloorConfigure from './FloorConfigure.svelte' - function getRooms (rooms: Room[], floor: Ref): Room[] { + function getRooms(rooms: Room[], floor: Ref): Room[] { return rooms.filter((p) => p.floor === floor) } diff --git a/plugins/love-resources/src/components/LoveWidget.svelte b/plugins/love-resources/src/components/LoveWidget.svelte index da1939a5d4..4355d821f4 100644 --- a/plugins/love-resources/src/components/LoveWidget.svelte +++ b/plugins/love-resources/src/components/LoveWidget.svelte @@ -29,11 +29,11 @@ floor = $floors[0] } - function getRooms (rooms: Room[], floor: Ref): Room[] { + function getRooms(rooms: Room[], floor: Ref): Room[] { return rooms.filter((p) => p.floor === floor) } - function addFloor (e: MouseEvent): void { + function addFloor(e: MouseEvent): void { showPopup(EditFloorPopup, {}, eventToHTMLElement(e)) } diff --git a/plugins/love-resources/src/components/MediaPopupItemExt.svelte b/plugins/love-resources/src/components/MediaPopupItemExt.svelte index bb0ba8db99..d59717358f 100644 --- a/plugins/love-resources/src/components/MediaPopupItemExt.svelte +++ b/plugins/love-resources/src/components/MediaPopupItemExt.svelte @@ -20,20 +20,20 @@ $: allowLeave = $myInfo !== undefined && !isMyOffice && $myInfo.room !== love.ids.Reception let leaving = false - async function handleLeaveClick (): Promise { + async function handleLeaveClick(): Promise { leaving = true await leaveMeeting() dispatch('close') } let ending = false - async function handleEndMeetingClick (): Promise { + async function handleEndMeetingClick(): Promise { ending = true await leaveMeeting() dispatch('close') } - async function stopShare (): Promise { + async function stopShare(): Promise { await liveKitClient.setScreenShareEnabled(false) } diff --git a/plugins/love-resources/src/components/MeetingData.svelte b/plugins/love-resources/src/components/MeetingData.svelte index 014a2db5dd..5ac58b9800 100644 --- a/plugins/love-resources/src/components/MeetingData.svelte +++ b/plugins/love-resources/src/components/MeetingData.svelte @@ -23,11 +23,11 @@ export let state: Writable> - function changeRoom (val: Ref): void { + function changeRoom(val: Ref): void { $state.room = val } - function changeIsMeeting (val: boolean): void { + function changeIsMeeting(val: boolean): void { $state.isMeeting = val } diff --git a/plugins/love-resources/src/components/MeetingScheduleData.svelte b/plugins/love-resources/src/components/MeetingScheduleData.svelte index fce3b375b4..fec1ee2686 100644 --- a/plugins/love-resources/src/components/MeetingScheduleData.svelte +++ b/plugins/love-resources/src/components/MeetingScheduleData.svelte @@ -20,7 +20,7 @@ export let state: Writable> - function changeRoom (val: Ref): void { + function changeRoom(val: Ref): void { $state.room = val } diff --git a/plugins/love-resources/src/components/ParticipantsPreview.svelte b/plugins/love-resources/src/components/ParticipantsPreview.svelte index 34816e3c8d..af7af903fa 100644 --- a/plugins/love-resources/src/components/ParticipantsPreview.svelte +++ b/plugins/love-resources/src/components/ParticipantsPreview.svelte @@ -21,7 +21,7 @@ export let info: ParticipantInfo[] - async function getPerson (info: Ref | undefined): Promise { + async function getPerson(info: Ref | undefined): Promise { if (info === undefined) { return } diff --git a/plugins/love-resources/src/components/Room.svelte b/plugins/love-resources/src/components/Room.svelte index cebcf0cf43..fc14cef615 100644 --- a/plugins/love-resources/src/components/Room.svelte +++ b/plugins/love-resources/src/components/Room.svelte @@ -103,7 +103,7 @@ }) } - function updateStyle (count: number, screenSharing: boolean): void { + function updateStyle(count: number, screenSharing: boolean): void { columns = screenSharing ? 1 : Math.min(Math.ceil(Math.sqrt(count)), 8) rows = Math.ceil(count / columns) gridStyle = `grid-template-columns: repeat(${columns}, 1fr); aspect-ratio: ${columns * 1280}/${rows * 720};` @@ -111,7 +111,7 @@ const handleFullScreen = () => ($isFullScreen = document.fullscreenElement != null) - function checkFullscreen (): void { + function checkFullscreen(): void { const needFullScreen = $isFullScreen if (document.fullscreenElement && !needFullScreen) { document @@ -136,7 +136,7 @@ } } - function onFullScreen (): void { + function onFullScreen(): void { const needFullScreen = !$isFullScreen if (!document.fullscreenElement && needFullScreen && roomEl != null) { roomEl diff --git a/plugins/love-resources/src/components/RoomAccessPopup.svelte b/plugins/love-resources/src/components/RoomAccessPopup.svelte index 723445d238..707bebab17 100644 --- a/plugins/love-resources/src/components/RoomAccessPopup.svelte +++ b/plugins/love-resources/src/components/RoomAccessPopup.svelte @@ -9,7 +9,7 @@ const client = getClient() const dispatch = createEventDispatcher() - async function setAccess (access: RoomAccess): Promise { + async function setAccess(access: RoomAccess): Promise { await client.update(room, { access }) dispatch('close', access) } diff --git a/plugins/love-resources/src/components/RoomConfigure.svelte b/plugins/love-resources/src/components/RoomConfigure.svelte index 7f7ff97a04..80e46d570f 100644 --- a/plugins/love-resources/src/components/RoomConfigure.svelte +++ b/plugins/love-resources/src/components/RoomConfigure.svelte @@ -41,11 +41,11 @@ const SHADOW_BLUR = 2 const SHADOW_SPREAD = -1 - async function updateName (): Promise { + async function updateName(): Promise { await client.update(room, { name: room.name }) } - async function changePerson (e: CustomEvent | null>): Promise { + async function changePerson(e: CustomEvent | null>): Promise { if (isOffice(room)) { const value = e.detail const prevValue = room.person @@ -65,7 +65,7 @@ } } - async function remove (): Promise { + async function remove(): Promise { await client.remove(room) } @@ -84,26 +84,26 @@ const shadow = tweened({ x: 0, y: 0, r: 0, s: 0 }, { duration: 150, easing: cubicOut }) const shadowColor = tweened(shadowNormal, { duration: 300, easing: cubicOut }) - export function setShadow (x: number, y: number, r: number, s?: number) { + export function setShadow(x: number, y: number, r: number, s?: number) { shadow.set({ x, y, r, s: s ?? 0 }) } - export function setShadowColor (r: number, g: number, b: number, a: number) { + export function setShadowColor(r: number, g: number, b: number, a: number) { shadowColor.set({ r, g, b, a }) } - export function clearShadow () { + export function clearShadow() { shadow.set({ x: 0, y: 0, r: 1, s: 0 }) shadowColor.set({ ...shadowNormal, a: 0 }) } - export function getRect (): DOMRect { + export function getRect(): DOMRect { return container ? container.getBoundingClientRect() : new DOMRect() } - function checkLeave () { + function checkLeave() { if ($lockedRoom !== '') return cursor = '' clearShadow() } - function mouseDown (e: MouseEvent): void { + function mouseDown(e: MouseEvent): void { if (container === undefined || $lockedRoom !== '') return roomRect = container.getBoundingClientRect() if (roomSide.top || roomSide.bottom || roomSide.left || roomSide.right) { @@ -121,7 +121,7 @@ lockedRoom.set(room._id) } - function changeCursor (e: MouseEvent): void { + function changeCursor(e: MouseEvent): void { if ($lockedRoom !== '') return roomRect = container.getBoundingClientRect() const offsetX = e.clientX - roomRect.x + cellSize / 5 diff --git a/plugins/love-resources/src/components/RoomLanguageEditor.svelte b/plugins/love-resources/src/components/RoomLanguageEditor.svelte index 274724a88e..4080b5fbe1 100644 --- a/plugins/love-resources/src/components/RoomLanguageEditor.svelte +++ b/plugins/love-resources/src/components/RoomLanguageEditor.svelte @@ -34,7 +34,7 @@ iconProps: { lang } })) - function showLanguagesPopup (ev: MouseEvent): void { + function showLanguagesPopup(ev: MouseEvent): void { shown = true showPopup(DropdownLabelsPopupIntl, { items, selected: value }, eventToHTMLElement(ev), async (result) => { if (result != null && result !== '') { diff --git a/plugins/love-resources/src/components/RoomLanguageSelector.svelte b/plugins/love-resources/src/components/RoomLanguageSelector.svelte index cd9b2c2b5b..f6bdcf1e44 100644 --- a/plugins/love-resources/src/components/RoomLanguageSelector.svelte +++ b/plugins/love-resources/src/components/RoomLanguageSelector.svelte @@ -39,13 +39,13 @@ iconProps: { lang } })) - async function handleSelection (newLang?: RoomLanguage): Promise { + async function handleSelection(newLang?: RoomLanguage): Promise { if (newLang == null) return await client.diffUpdate(room, { language: newLang }) } - function showLanguagesPopup (): void { + function showLanguagesPopup(): void { showPopup(DropdownLabelsPopupIntl, { items, selected: selectedItem }, container, async (result) => { if (result != null && result !== '') { selectedItem = result diff --git a/plugins/love-resources/src/components/RoomPopup.svelte b/plugins/love-resources/src/components/RoomPopup.svelte index 753ffc5490..d8ec5bc60b 100644 --- a/plugins/love-resources/src/components/RoomPopup.svelte +++ b/plugins/love-resources/src/components/RoomPopup.svelte @@ -38,7 +38,7 @@ export let meeting: MeetingMinutes const client = getClient() - async function getPerson (info: ParticipantInfo | undefined): Promise { + async function getPerson(info: ParticipantInfo | undefined): Promise { if (info === undefined) { return null } @@ -55,12 +55,12 @@ const dispatch = createEventDispatcher() - async function connect (): Promise { + async function connect(): Promise { await createMeeting(room, meeting) dispatch('close') } - async function backOrOpen (): Promise { + async function backOrOpen(): Promise { if (meeting !== undefined) { const hierarchy = client.getHierarchy() const panelComponent = hierarchy.classHierarchyMixin(meeting._class as Ref>, view.mixin.ObjectPanel) @@ -72,7 +72,7 @@ } } - function canGoBack (joined: boolean, location: Location, meetingMinutes?: MeetingMinutes): boolean { + function canGoBack(joined: boolean, location: Location, meetingMinutes?: MeetingMinutes): boolean { if (!joined) return false if (location.path[2] !== loveId) return true if (meetingMinutes === undefined) return false diff --git a/plugins/love-resources/src/components/RoomPreview.svelte b/plugins/love-resources/src/components/RoomPreview.svelte index cf00095ba2..327c7b4427 100644 --- a/plugins/love-resources/src/components/RoomPreview.svelte +++ b/plugins/love-resources/src/components/RoomPreview.svelte @@ -37,7 +37,7 @@ const dispatch = createEventDispatcher() - function prepareInfo (info: ParticipantInfo[]): ParticipantInfo[] { + function prepareInfo(info: ParticipantInfo[]): ParticipantInfo[] { const result: ParticipantInfo[] = [] const posMap = new Set() @@ -89,7 +89,7 @@ let personPopupVisible: Ref | undefined = undefined - async function getPerson (info: Ref | undefined): Promise { + async function getPerson(info: Ref | undefined): Promise { if (info === undefined) { return } @@ -97,20 +97,20 @@ return (await getPersonByPersonRef(info)) ?? undefined } - function getPersonInfo (y: number, x: number, info: ParticipantInfo[]): Omit | undefined { + function getPersonInfo(y: number, x: number, info: ParticipantInfo[]): Omit | undefined { return info.find((p) => p.x === x && p.y === y) } - function mouseEnter (): void { + function mouseEnter(): void { hovered = true dispatch('hover', { name: roomLabel }) } - function mouseLeave (): void { + function mouseLeave(): void { hovered = false } - async function openRoom (x: number, y: number): Promise { + async function openRoom(x: number, y: number): Promise { const client = getClient() const hierarchy = client.getHierarchy() if ($lkSessionConnected && $currentRoom?._id === room._id) { @@ -133,7 +133,7 @@ } } - async function placeClickHandler (e: MouseEvent, x: number, y: number): Promise { + async function placeClickHandler(e: MouseEvent, x: number, y: number): Promise { e.stopPropagation() e.preventDefault() @@ -170,7 +170,7 @@ $: extraRow = calcExtraRows(hovered, room, _info, $myInfo) - function calcExtraRows ( + function calcExtraRows( hovered: boolean, room: Room, info: ParticipantInfo[], @@ -206,7 +206,7 @@ return init } - async function handleClick (): Promise { + async function handleClick(): Promise { await openRoom(0, 0) } diff --git a/plugins/love-resources/src/components/RoomSelector.svelte b/plugins/love-resources/src/components/RoomSelector.svelte index 912e8e5f7f..c2e4b9a13d 100644 --- a/plugins/love-resources/src/components/RoomSelector.svelte +++ b/plugins/love-resources/src/components/RoomSelector.svelte @@ -52,7 +52,7 @@ $: selectedRoom = $rooms.find((p) => p._id === value) $: selected = selectedRoom !== undefined ? makeRoomItem(selectedRoom, true) : undefined - function makeRoomItem (room: Room, forSelected: boolean): { _id: string, label: string } { + function makeRoomItem(room: Room, forSelected: boolean): { _id: string, label: string } { const item = { _id: room._id, label: room.name } if (isOffice(room)) { if (room.person === currentPersonId) { @@ -102,7 +102,7 @@ return item } - function change (id: Ref): void { + function change(id: Ref): void { if (value !== id) { dispatch('change', id) value = id diff --git a/plugins/love-resources/src/components/RoomSettingsPopup.svelte b/plugins/love-resources/src/components/RoomSettingsPopup.svelte index 155b6cb0f9..64e7151e92 100644 --- a/plugins/love-resources/src/components/RoomSettingsPopup.svelte +++ b/plugins/love-resources/src/components/RoomSettingsPopup.svelte @@ -35,7 +35,7 @@ let selectedGroup = groups[0] - function selectGroup (group: Group): void { + function selectGroup(group: Group): void { selectedGroup = group } diff --git a/plugins/love-resources/src/components/RoomTranscriptionSettings.svelte b/plugins/love-resources/src/components/RoomTranscriptionSettings.svelte index 34911afc1b..50e1904d5f 100644 --- a/plugins/love-resources/src/components/RoomTranscriptionSettings.svelte +++ b/plugins/love-resources/src/components/RoomTranscriptionSettings.svelte @@ -21,11 +21,11 @@ const client = getClient() - async function toggleTranscribing (): Promise { + async function toggleTranscribing(): Promise { await client.diffUpdate(room, { startWithTranscription: !room.startWithTranscription }) } - async function toggleRecording (): Promise { + async function toggleRecording(): Promise { await client.diffUpdate(room, { startWithRecording: !room.startWithRecording }) } diff --git a/plugins/love-resources/src/components/Settings.svelte b/plugins/love-resources/src/components/Settings.svelte index 17d70f25e2..805f04df57 100644 --- a/plugins/love-resources/src/components/Settings.svelte +++ b/plugins/love-resources/src/components/Settings.svelte @@ -9,7 +9,7 @@ const client = getClient() - async function saveMicPreference (myPreferences: DevicesPreference | undefined, value: boolean): Promise { + async function saveMicPreference(myPreferences: DevicesPreference | undefined, value: boolean): Promise { if (myPreferences !== undefined) { await client.update(myPreferences, { micEnabled: !value }) } else { @@ -24,7 +24,7 @@ } } - async function saveCamPreference (myPreferences: DevicesPreference | undefined, value: boolean): Promise { + async function saveCamPreference(myPreferences: DevicesPreference | undefined, value: boolean): Promise { if (myPreferences !== undefined) { await client.update(myPreferences, { camEnabled: !value }) } else { @@ -39,7 +39,7 @@ } } - async function saveNoiseCancellationPreference ( + async function saveNoiseCancellationPreference( myPreferences: DevicesPreference | undefined, value: boolean ): Promise { @@ -58,7 +58,7 @@ await liveKitClient.applyNoiseCancellation(value) } - async function saveSpeakingWhileMutedPreference ( + async function saveSpeakingWhileMutedPreference( myPreferences: DevicesPreference | undefined, value: boolean ): Promise { diff --git a/plugins/love-resources/src/components/SharingStateIndicator.svelte b/plugins/love-resources/src/components/SharingStateIndicator.svelte index c605160954..9c08af755d 100644 --- a/plugins/love-resources/src/components/SharingStateIndicator.svelte +++ b/plugins/love-resources/src/components/SharingStateIndicator.svelte @@ -24,14 +24,14 @@ let pressed: boolean = false - function handleShowPopup (ev: MouseEvent): void { + function handleShowPopup(ev: MouseEvent): void { pressed = true showPopup(SharingStatePopup, {}, eventToHTMLElement(ev), () => { pressed = false }) } - function handleShare (): void { + function handleShare(): void { if ($screenSharingState !== ScreenSharingState.Inactive) return void liveKitClient.setScreenShareEnabled(true, $isShareWithSound) } diff --git a/plugins/love-resources/src/components/SharingStatePopup.svelte b/plugins/love-resources/src/components/SharingStatePopup.svelte index 1d091d147c..6fba6d07a9 100644 --- a/plugins/love-resources/src/components/SharingStatePopup.svelte +++ b/plugins/love-resources/src/components/SharingStatePopup.svelte @@ -53,7 +53,7 @@ } } - function handleStop (): void { + function handleStop(): void { void liveKitClient.setScreenShareEnabled(false) dispatch('close') } diff --git a/plugins/love-resources/src/components/WorkbenchExtension.svelte b/plugins/love-resources/src/components/WorkbenchExtension.svelte index 0574dd70ae..64ca061831 100644 --- a/plugins/love-resources/src/components/WorkbenchExtension.svelte +++ b/plugins/love-resources/src/components/WorkbenchExtension.svelte @@ -56,7 +56,7 @@ * When force is true, bypasses the audioUnlocked flag and checks the actual * AudioContext state — needed when Safari suspends audio after initial unlock. */ - async function ensureAudioUnlocked (force: boolean = false): Promise { + async function ensureAudioUnlocked(force: boolean = false): Promise { if (!force && audioUnlocked) return try { // Check actual AudioContext state when forcing recovery @@ -77,7 +77,7 @@ /** * Try to play an audio element with retry on user interaction. */ - function safePlay (element: HTMLAudioElement, trackSid: string): void { + function safePlay(element: HTMLAudioElement, trackSid: string): void { element.play().catch((err) => { console.warn('[WorkbenchExtension] Audio play() failed, will retry on interaction', { trackSid, @@ -100,7 +100,7 @@ /** * Get current audio context state for debugging Safari audio issues. */ - function getAudioContextState (): AudioContextState { + function getAudioContextState(): AudioContextState { try { // @ts-expect-error - accessing internal LiveKit audio context const audioCtx = lk.audioContext @@ -120,7 +120,7 @@ /** * Get current state of all audio elements for debugging. */ - function getAudioElementsState (): Array<{ + function getAudioElementsState(): Array<{ id: string paused: boolean muted: boolean @@ -147,7 +147,7 @@ * intercepting the audio element's output pipeline. * Returns true if the stream is producing non-silent audio. */ - function hasAudioOutput (element: HTMLAudioElement, trackSid: string): boolean { + function hasAudioOutput(element: HTMLAudioElement, trackSid: string): boolean { let entry = audioAnalysers.get(trackSid) if (entry == null) { try { @@ -175,7 +175,7 @@ return false } - function cleanupAnalyser (trackSid: string): void { + function cleanupAnalyser(trackSid: string): void { const entry = audioAnalysers.get(trackSid) if (entry != null) { try { @@ -189,7 +189,7 @@ /** * Collect full diagnostics for all remote audio tracks. */ - function collectAudioDiagnostics (): AudioTrackDiagnostics[] { + function collectAudioDiagnostics(): AudioTrackDiagnostics[] { const result: AudioTrackDiagnostics[] = [] for (const participant of lk.remoteParticipants.values()) { for (const publication of participant.trackPublications.values()) { @@ -223,7 +223,7 @@ /** * Retry playing all paused audio elements in the container. */ - function retryPausedAudioElements (): void { + function retryPausedAudioElements(): void { if (parentElement == null) return const audioElements = Array.from(parentElement.children) as HTMLAudioElement[] for (const el of audioElements) { @@ -238,7 +238,7 @@ } } - function attachAudioTrack ( + function attachAudioTrack( track: RemoteTrack, publication: RemoteTrackPublication, participant?: RemoteParticipant @@ -260,7 +260,7 @@ safePlay(element, publication.trackSid) } - function handleTrackSubscribed ( + function handleTrackSubscribed( track: RemoteTrack, publication: RemoteTrackPublication, participant: RemoteParticipant @@ -277,7 +277,7 @@ } } - function handleTrackUnsubscribed ( + function handleTrackUnsubscribed( track: RemoteTrack, publication: RemoteTrackPublication, participant: RemoteParticipant @@ -297,7 +297,7 @@ } } - function handleTrackMuted (publication: TrackPublication, participant: Participant): void { + function handleTrackMuted(publication: TrackPublication, participant: Participant): void { if (publication.track?.kind !== Track.Kind.Audio) return console.log('[WorkbenchExtension.handleTrackMuted]', { @@ -309,7 +309,7 @@ silentTrackCounts.delete(publication.trackSid) } - function handleTrackUnmuted (publication: TrackPublication, participant: Participant): void { + function handleTrackUnmuted(publication: TrackPublication, participant: Participant): void { if (publication.track?.kind !== Track.Kind.Audio) return console.log('[WorkbenchExtension.handleTrackUnmuted]', { @@ -365,7 +365,7 @@ * LiveKit signals playback got blocked by the browser (Safari autoplay policy, * suspended AudioContext). Canonical recovery point — force unlock and retry. */ - function handleAudioPlaybackStatusChanged (): void { + function handleAudioPlaybackStatusChanged(): void { const canPlayback = lk.canPlaybackAudio console.log( `[WorkbenchExtension] AudioPlaybackStatusChanged canPlayback=${canPlayback} ctx=${getAudioContextState().state}` @@ -382,7 +382,7 @@ * Safari-specific: detach and re-attach a single audio track * to force Safari to re-establish audio routing. */ - async function safariReattachTrack (publication: TrackPublication, participant: Participant): Promise { + async function safariReattachTrack(publication: TrackPublication, participant: Participant): Promise { await ensureAudioUnlocked(true) const track = publication.track @@ -412,7 +412,7 @@ * Re-attach all remote audio tracks. Called after LiveKit reconnect * to ensure audio elements reference the new MediaStreams. */ - async function reattachAllAudioTracks (): Promise { + async function reattachAllAudioTracks(): Promise { if (parentElement == null) return console.log('[WorkbenchExtension] Reattaching audio tracks after reconnect') @@ -473,7 +473,7 @@ const silentTrackCounts = new Map() const SILENT_THRESHOLD = 3 // Trigger recovery after 3 consecutive silent checks (~15s) - function startSafariAudioHealthCheck (): void { + function startSafariAudioHealthCheck(): void { if (!isSafariBrowser) return stopSafariAudioHealthCheck() @@ -593,7 +593,7 @@ }, AUDIO_CHECK_INTERVAL_MS) } - function stopSafariAudioHealthCheck (): void { + function stopSafariAudioHealthCheck(): void { if (safariAudioCheckInterval != null) { clearInterval(safariAudioCheckInterval) safariAudioCheckInterval = undefined @@ -603,7 +603,7 @@ /** * Attach existing audio tracks from already connected participants. */ - function attachExistingAudioTracks (): void { + function attachExistingAudioTracks(): void { let attachedCount = 0 for (const participant of lk.remoteParticipants.values()) { for (const publication of participant.trackPublications.values()) { diff --git a/plugins/love-resources/src/components/guest/GuestJoinPopup.svelte b/plugins/love-resources/src/components/guest/GuestJoinPopup.svelte index f9369913bb..5e86e5f9ce 100644 --- a/plugins/love-resources/src/components/guest/GuestJoinPopup.svelte +++ b/plugins/love-resources/src/components/guest/GuestJoinPopup.svelte @@ -57,7 +57,7 @@ let previewError: IntlString | null = null let previewStarting: boolean = false - async function startLocalPreview (): Promise { + async function startLocalPreview(): Promise { if (previewStarting || localStream != null) return previewStarting = true previewError = null @@ -82,7 +82,7 @@ } } - function stopLocalPreview (): void { + function stopLocalPreview(): void { if (localStream != null) { for (const t of localStream.getTracks()) { try { @@ -100,7 +100,7 @@ previewStarting = false } - function setStartWithVideo (value: boolean): void { + function setStartWithVideo(value: boolean): void { startWithVideo = value if (get(lkSessionConnected)) { void liveKitClient.setCameraEnabled(startWithVideo) @@ -111,7 +111,7 @@ } } - function setStartWithAudio (value: boolean): void { + function setStartWithAudio(value: boolean): void { startWithAudio = value if (get(lkSessionConnected)) { void liveKitClient.setMicrophoneEnabled(startWithAudio) @@ -119,7 +119,7 @@ } // Attach element for incoming tracks - function handleTrackSubscribed (track: RemoteTrack, publication: RemoteTrackPublication): void { + function handleTrackSubscribed(track: RemoteTrack, publication: RemoteTrackPublication): void { try { const el = track.attach() if (el == null) return @@ -134,7 +134,7 @@ } } - function handleTrackUnsubscribed (_track: RemoteTrack, publication: RemoteTrackPublication): void { + function handleTrackUnsubscribed(_track: RemoteTrack, publication: RemoteTrackPublication): void { try { const el = document.getElementById(publication.trackSid) if (el != null && el.parentElement === videoContainer) { @@ -145,7 +145,7 @@ } } - function attachExistingTracks (): void { + function attachExistingTracks(): void { try { // Attach already subscribed remote tracks for (const participant of lk.remoteParticipants.values()) { @@ -173,7 +173,7 @@ } } - async function join (firstName: string, lastName: string): Promise { + async function join(firstName: string, lastName: string): Promise { if (guestToken == null || meetingId == null) { error = 'Missing invite information' return @@ -256,7 +256,7 @@ } } - async function toggleMute (): Promise { + async function toggleMute(): Promise { try { await liveKitClient.setMicrophoneEnabled(!micEnabled) micEnabled = !micEnabled @@ -265,7 +265,7 @@ } } - async function toggleCam (): Promise { + async function toggleCam(): Promise { try { await liveKitClient.setCameraEnabled(!camEnabled) camEnabled = !camEnabled @@ -274,7 +274,7 @@ } } - async function leave (): Promise { + async function leave(): Promise { try { await liveKitClient.disconnect() } catch (err) { diff --git a/plugins/love-resources/src/components/guest/GuestMeetingApp.svelte b/plugins/love-resources/src/components/guest/GuestMeetingApp.svelte index a86a4b3584..6b80f055f0 100644 --- a/plugins/love-resources/src/components/guest/GuestMeetingApp.svelte +++ b/plugins/love-resources/src/components/guest/GuestMeetingApp.svelte @@ -83,13 +83,13 @@ let rows: number = 0 const guestRoomPlaceholder: any = undefined - function updateStyle (count: number, screenSharing: boolean): void { + function updateStyle(count: number, screenSharing: boolean): void { columns = screenSharing ? 1 : Math.min(Math.ceil(Math.sqrt(count)), 8) rows = Math.ceil(count / columns) gridStyle = `grid-template-columns: repeat(${columns}, 1fr); aspect-ratio: ${columns * 1280}/${rows * 720};` } - async function leaveGuest (): Promise { + async function leaveGuest(): Promise { try { await liveKitClient.disconnect() } catch (err: any) { @@ -98,7 +98,7 @@ } // Check if there are any non-guest participants in the room - function checkForNonGuestParticipants (): void { + function checkForNonGuestParticipants(): void { if (!lk || !$lkSessionConnected) return // Get all remote participants @@ -151,19 +151,19 @@ } } - function onParticipantConnected (_participant: RemoteParticipant): void { + function onParticipantConnected(_participant: RemoteParticipant): void { console.log('[GuestMeetingApp] Participant connected:', _participant.identity) // Recheck when someone joins checkForNonGuestParticipants() } - function onParticipantDisconnected (_participant: RemoteParticipant): void { + function onParticipantDisconnected(_participant: RemoteParticipant): void { console.log('[GuestMeetingApp] Participant disconnected:', _participant.identity) // Recheck when someone leaves checkForNonGuestParticipants() } - function startGuestOnlyCheck (): void { + function startGuestOnlyCheck(): void { if (guestOnlyCheckInterval !== undefined) return console.log('[GuestMeetingApp] Starting guest-only check') @@ -176,7 +176,7 @@ }, GUEST_ONLY_CHECK_INTERVAL_MS) } - function stopGuestOnlyCheck (): void { + function stopGuestOnlyCheck(): void { console.log('[GuestMeetingApp] Stopping guest-only check') if (guestOnlyCheckInterval !== undefined) { clearInterval(guestOnlyCheckInterval) @@ -188,7 +188,7 @@ } } - function handleLocation (loc: Location): void { + function handleLocation(loc: Location): void { if (loc.path[0] !== 'meetings') { return } @@ -205,7 +205,7 @@ } } - async function fetchGuestInfo (): Promise { + async function fetchGuestInfo(): Promise { if (guestToken == null) return lastFetchedToken = guestToken @@ -312,7 +312,7 @@ } }) - function goHome (): void { + function goHome(): void { // Navigate to root (workbench) - adjust if you prefer a different location navigate({ path: [] }) } @@ -321,7 +321,7 @@ const handleFullScreen = () => ($isFullScreen = document.fullscreenElement != null) - function checkFullscreen (): void { + function checkFullscreen(): void { const needFullScreen = $isFullScreen if (document.fullscreenElement && !needFullScreen) { document @@ -346,7 +346,7 @@ } } - function onFullScreen (): void { + function onFullScreen(): void { const needFullScreen = !$isFullScreen if (!document.fullscreenElement && needFullScreen && roomEl != null) { roomEl diff --git a/plugins/love-resources/src/components/guest/GuestParticipantView.svelte b/plugins/love-resources/src/components/guest/GuestParticipantView.svelte index 4f64c5ddcc..1a53504b7a 100644 --- a/plugins/love-resources/src/components/guest/GuestParticipantView.svelte +++ b/plugins/love-resources/src/components/guest/GuestParticipantView.svelte @@ -58,7 +58,7 @@ let reactions: Array<{ id: string, emoji: string, width: number, height: number }> = [] // Attach a track's element to the DOM - function attachTrack (track: Track): void { + function attachTrack(track: Track): void { if (parent == null) return detachCurrentTrack() @@ -72,7 +72,7 @@ videoMuted = false } - function detachCurrentTrack (): void { + function detachCurrentTrack(): void { if (videoTrackElement !== undefined) { try { videoTrack?.detach(videoTrackElement) @@ -89,7 +89,7 @@ } } - function setTrackMuted (value: boolean): void { + function setTrackMuted(value: boolean): void { if (videoTrackElement !== undefined) { if (value) { videoTrackElement.classList.add('hidden') @@ -100,11 +100,11 @@ videoMuted = value } - function speachHandler (speaking: boolean): void { + function speachHandler(speaking: boolean): void { isSpeaking = speaking } - function muteHandler (publication: TrackPublication): void { + function muteHandler(publication: TrackPublication): void { if (publication.kind === Track.Kind.Audio) { microphoneMuted = publication.isMuted } else if (publication.kind === Track.Kind.Video && publication.source !== Track.Source.ScreenShare) { @@ -112,11 +112,11 @@ } } - function onConnectionQualityChanged (quality: ConnectionQuality): void { + function onConnectionQualityChanged(quality: ConnectionQuality): void { isBadConnection = quality === ConnectionQuality.Lost || quality === ConnectionQuality.Poor } - function onLocalTrackPublished (publication: LocalTrackPublication): void { + function onLocalTrackPublished(publication: LocalTrackPublication): void { if (publication.track === undefined) return if (publication.kind === Track.Kind.Audio) { microphoneMuted = publication.isMuted @@ -127,13 +127,13 @@ } } - function onLocalTrackUnpublished (publication: LocalTrackPublication): void { + function onLocalTrackUnpublished(publication: LocalTrackPublication): void { if (videoTrack === publication.track) { detachCurrentTrack() } } - function onTrackSubscribed (track: RemoteTrack, publication: RemoteTrackPublication): void { + function onTrackSubscribed(track: RemoteTrack, publication: RemoteTrackPublication): void { if (track.kind === Track.Kind.Audio) { microphoneMuted = track.isMuted } else if (track.kind === Track.Kind.Video && publication.source !== Track.Source.ScreenShare) { @@ -143,13 +143,13 @@ } } - function onTrackUnsubscribed (track: RemoteTrack): void { + function onTrackUnsubscribed(track: RemoteTrack): void { if (videoTrack === track) { detachCurrentTrack() } } - function onChatMessage (message: ChatMessage, p?: RemoteParticipant | LocalParticipant | undefined): void { + function onChatMessage(message: ChatMessage, p?: RemoteParticipant | LocalParticipant | undefined): void { // Only display reaction if it belongs to this participant if (activeParticipant !== p) return if (parent == null) return @@ -164,7 +164,7 @@ ] } - function detachParticipant (): void { + function detachParticipant(): void { if (activeParticipant === undefined) return activeParticipant.off(ParticipantEvent.TrackMuted, muteHandler) activeParticipant.off(ParticipantEvent.TrackUnmuted, muteHandler) @@ -182,7 +182,7 @@ detachCurrentTrack() } - function setParticipant (p: Participant | undefined): void { + function setParticipant(p: Participant | undefined): void { if (parent == null) return if (activeParticipant === p) return diff --git a/plugins/love-resources/src/components/guest/GuestParticipantsListView.svelte b/plugins/love-resources/src/components/guest/GuestParticipantsListView.svelte index a387a6437d..f8d19ab314 100644 --- a/plugins/love-resources/src/components/guest/GuestParticipantsListView.svelte +++ b/plugins/love-resources/src/components/guest/GuestParticipantsListView.svelte @@ -38,7 +38,7 @@ let participants: ParticipantData[] = [] // Attach or update a participant entry (using LiveKit identity as key). - function attachParticipant (participant: Participant): void { + function attachParticipant(participant: Participant): void { if (participant == null) return if (participant.identity == null || participant.identity === '') return @@ -59,7 +59,7 @@ participants = participants } - function handleParticipantDisconnected (participant: RemoteParticipant): void { + function handleParticipantDisconnected(participant: RemoteParticipant): void { const index = participants.findIndex((p) => p._id === participant.identity) if (index !== -1) { participants.splice(index, 1) @@ -96,7 +96,7 @@ // Return active participants to render. For guests we hide agent participants // unless there's an explicit reason to show them (guests don't have DB-based info). - function getActiveParticipants (items: ParticipantData[]): ParticipantData[] { + function getActiveParticipants(items: ParticipantData[]): ParticipantData[] { const result = items.filter((p) => !p.isAgent) dispatch('participantsCount', result.length) return result diff --git a/plugins/love-resources/src/components/meeting/ControlBar.svelte b/plugins/love-resources/src/components/meeting/ControlBar.svelte index a1fe3b7382..2e6b369252 100644 --- a/plugins/love-resources/src/components/meeting/ControlBar.svelte +++ b/plugins/love-resources/src/components/meeting/ControlBar.svelte @@ -46,7 +46,7 @@ // If user is in a meeting, they can leave unless it's their office or reception $: allowLeave = $myInfo !== undefined && $myInfo.room !== ($myOffice?._id ?? love.ids.Reception) - function maximize (): void { + function maximize(): void { showPopup(RoomModal, { room }, 'full-centered') } diff --git a/plugins/love-resources/src/components/meeting/ControlBarContainer.svelte b/plugins/love-resources/src/components/meeting/ControlBarContainer.svelte index 2fb9db5f2a..12840450e3 100644 --- a/plugins/love-resources/src/components/meeting/ControlBarContainer.svelte +++ b/plugins/love-resources/src/components/meeting/ControlBarContainer.svelte @@ -25,7 +25,7 @@ const HORIZONTAL_PADDING = 60 const SCALE_CHANGE_THRESHOLD = 0.001 - function measureWidths (): { barWidth: number, rowWidth: number } { + function measureWidths(): { barWidth: number, rowWidth: number } { if (barContainer === undefined || rowContainer === undefined) { return { barWidth: 0, rowWidth: 0 } } @@ -37,7 +37,7 @@ return { barWidth, rowWidth } } - function updateScale (): void { + function updateScale(): void { const { barWidth: containerWidth, rowWidth } = measureWidths() if (containerWidth === 0 || rowWidth === 0) { diff --git a/plugins/love-resources/src/components/meeting/ControlExt.svelte b/plugins/love-resources/src/components/meeting/ControlExt.svelte index c94e4eb04c..c1ee188ad0 100644 --- a/plugins/love-resources/src/components/meeting/ControlExt.svelte +++ b/plugins/love-resources/src/components/meeting/ControlExt.svelte @@ -40,7 +40,7 @@ meeting: MeetingMinutes } - function getActiveMeetings (rooms: Room[], infos: ParticipantInfo[], meetings: MeetingMinutes[]): ActiveRoom[] { + function getActiveMeetings(rooms: Room[], infos: ParticipantInfo[], meetings: MeetingMinutes[]): ActiveRoom[] { const roomMap = toIdMap(rooms) const map: IdMap = new Map() for (const info of infos) { @@ -80,7 +80,7 @@ $: activeMeetings = getActiveMeetings($rooms, $infos, $meetings) - function openRoom (room: ActiveRoom): (e: MouseEvent) => void { + function openRoom(room: ActiveRoom): (e: MouseEvent) => void { return (e: MouseEvent) => { closeTooltip() showPopup(RoomPopup, { room, meeting: room.meeting }, eventToHTMLElement(e)) @@ -93,7 +93,7 @@ $: receptionParticipants = $infos.filter((p) => p.room === love.ids.Reception) - function checkActiveMeeting ( + function checkActiveMeeting( loc: Location, meetingSessionConnected: boolean, room: Ref | undefined, @@ -164,13 +164,13 @@ closeWidget(love.ids.MeetingWidget) }) - function participantClickHandler (e: MouseEvent, participant: ParticipantInfo): void { + function participantClickHandler(e: MouseEvent, participant: ParticipantInfo): void { if ($myInfo !== undefined) { showPopup(PersonActionPopup, { room: reception, person: participant.person }, eventToHTMLElement(e)) } } - function getParticipantClickHandler (participant: ParticipantInfo): (e: MouseEvent) => void { + function getParticipantClickHandler(participant: ParticipantInfo): (e: MouseEvent) => void { return (e: MouseEvent) => { participantClickHandler(e, participant) } diff --git a/plugins/love-resources/src/components/meeting/LastParticipantNotification.svelte b/plugins/love-resources/src/components/meeting/LastParticipantNotification.svelte index 43cb89e92c..91d10352dc 100644 --- a/plugins/love-resources/src/components/meeting/LastParticipantNotification.svelte +++ b/plugins/love-resources/src/components/meeting/LastParticipantNotification.svelte @@ -20,11 +20,11 @@ export let onRemove: () => void export let notification: Notification - function stayInMeeting (): void { + function stayInMeeting(): void { onRemove() } - async function leave (): Promise { + async function leave(): Promise { // Use dynamic import to avoid circular dependency const { leaveMeeting } = await import('../../meetings') await leaveMeeting() diff --git a/plugins/love-resources/src/components/meeting/MeetingHeader.svelte b/plugins/love-resources/src/components/meeting/MeetingHeader.svelte index 9c25cbd075..8fdfc83151 100644 --- a/plugins/love-resources/src/components/meeting/MeetingHeader.svelte +++ b/plugins/love-resources/src/components/meeting/MeetingHeader.svelte @@ -20,7 +20,7 @@ currentMeetingMinutes = res }) - function formatElapsedTime (elapsed: number): string { + function formatElapsedTime(elapsed: number): string { const seconds = Math.floor(elapsed / 1000) const minutes = Math.floor(seconds / 60) const hours = Math.floor(minutes / 60) diff --git a/plugins/love-resources/src/components/meeting/MicSettingPopup.svelte b/plugins/love-resources/src/components/meeting/MicSettingPopup.svelte index 8c3745f906..8d6bdcda09 100644 --- a/plugins/love-resources/src/components/meeting/MicSettingPopup.svelte +++ b/plugins/love-resources/src/components/meeting/MicSettingPopup.svelte @@ -10,7 +10,7 @@ const client = getClient() - function isNoiseCancellationSupported (): boolean { + function isNoiseCancellationSupported(): boolean { try { const c = navigator.mediaDevices?.getSupportedConstraints?.() ?? {} return c.echoCancellation === true || c.noiseSuppression === true @@ -19,7 +19,7 @@ } } - async function saveNoiseCancellationPreference ( + async function saveNoiseCancellationPreference( myPreferences: DevicesPreference | undefined, value: boolean ): Promise { @@ -38,7 +38,7 @@ await liveKitClient.applyNoiseCancellation(value) } - async function saveSpeakingWhileMutedPreference ( + async function saveSpeakingWhileMutedPreference( myPreferences: DevicesPreference | undefined, value: boolean ): Promise { diff --git a/plugins/love-resources/src/components/meeting/ParticipantView.svelte b/plugins/love-resources/src/components/meeting/ParticipantView.svelte index c8864ff7ac..48793a51fb 100644 --- a/plugins/love-resources/src/components/meeting/ParticipantView.svelte +++ b/plugins/love-resources/src/components/meeting/ParticipantView.svelte @@ -57,7 +57,7 @@ $: user = $personByRefStore?.get(_id as Ref) $: userName = (user !== undefined ? user.name : activeParticipant?.name) ?? '' - function attachTrack (track: Track): void { + function attachTrack(track: Track): void { if (parent == null) return detachCurrentTrack() @@ -71,14 +71,14 @@ videoMuted = !enabled } - function detachCurrentTrack (): void { + function detachCurrentTrack(): void { if (videoTrackElement !== undefined) { videoTrack?.detach(videoTrackElement) videoTrackElement.remove() } } - function setTrackMuted (value: boolean): void { + function setTrackMuted(value: boolean): void { if (videoTrackElement !== undefined) { if (value) { videoTrackElement.classList.add('hidden') @@ -89,11 +89,11 @@ videoMuted = value } - function speachHandler (speaking: boolean): void { + function speachHandler(speaking: boolean): void { isSpeaking = speaking } - function muteHandler (publication: TrackPublication): void { + function muteHandler(publication: TrackPublication): void { if (publication.kind === Track.Kind.Audio) { microphoneMuted = publication.isMuted } else if (publication.kind === Track.Kind.Video && publication.source !== Track.Source.ScreenShare) { @@ -101,11 +101,11 @@ } } - function onConnectionQualityChanged (quality: ConnectionQuality): void { + function onConnectionQualityChanged(quality: ConnectionQuality): void { isBadConnection = quality === ConnectionQuality.Lost || quality === ConnectionQuality.Poor } - function onLocalTrackPublished (publication: LocalTrackPublication): void { + function onLocalTrackPublished(publication: LocalTrackPublication): void { if (publication.track === undefined) return if (publication.kind === Track.Kind.Audio) { microphoneMuted = publication.isMuted @@ -114,13 +114,13 @@ } } - function onLocalTrackUnpublished (publication: LocalTrackPublication): void { + function onLocalTrackUnpublished(publication: LocalTrackPublication): void { if (videoTrack === publication.track) { detachCurrentTrack() } } - function onTrackSubscribed (track: RemoteTrack, publication: RemoteTrackPublication): void { + function onTrackSubscribed(track: RemoteTrack, publication: RemoteTrackPublication): void { if (track.kind === Track.Kind.Audio) { microphoneMuted = track.isMuted } else if (track.kind === Track.Kind.Video && track.source !== Track.Source.ScreenShare) { @@ -128,13 +128,13 @@ } } - function onTrackUnsubscribed (track: RemoteTrack, publication: RemoteTrackPublication): void { + function onTrackUnsubscribed(track: RemoteTrack, publication: RemoteTrackPublication): void { if (videoTrack === track) { detachCurrentTrack() } } - function detachParticipant (): void { + function detachParticipant(): void { if (activeParticipant === undefined) return activeParticipant.off(ParticipantEvent.TrackMuted, muteHandler) activeParticipant.off(ParticipantEvent.TrackUnmuted, muteHandler) @@ -149,7 +149,7 @@ activeParticipant = undefined } - function onChatMessage (message: ChatMessage, participant?: RemoteParticipant | LocalParticipant | undefined): void { + function onChatMessage(message: ChatMessage, participant?: RemoteParticipant | LocalParticipant | undefined): void { if (activeParticipant !== participant) return reactions = [ ...reactions, @@ -164,7 +164,7 @@ let reactions: Array<{ id: string, emoji: string, height: number, width: number }> = [] - function setParticipant (p: Participant | undefined): void { + function setParticipant(p: Participant | undefined): void { if (parent == null) return if (activeParticipant === p) return diff --git a/plugins/love-resources/src/components/meeting/ParticipantsListView.svelte b/plugins/love-resources/src/components/meeting/ParticipantsListView.svelte index 5b45b8cc51..2b8793335c 100644 --- a/plugins/love-resources/src/components/meeting/ParticipantsListView.svelte +++ b/plugins/love-resources/src/components/meeting/ParticipantsListView.svelte @@ -55,7 +55,7 @@ let lkitParticipants = new Map, ParticipantData>() // Attach or update a participant entry (using LiveKit identity as key). - function attachParticipant (participant: Participant): void { + function attachParticipant(participant: Participant): void { // Add new participant const value: ParticipantData = { _id: participant.identity, @@ -66,12 +66,12 @@ lkitParticipants = lkitParticipants } - function handleParticipantDisconnected (participant: RemoteParticipant): void { + function handleParticipantDisconnected(participant: RemoteParticipant): void { lkitParticipants.delete(participant.identity as Ref) lkitParticipants = lkitParticipants } - function updateParticipants ( + function updateParticipants( data: ParticipantInfo[], currentMeeting: MeetingMinutes | undefined, room: Ref, diff --git a/plugins/love-resources/src/components/meeting/ScreenSharingView.svelte b/plugins/love-resources/src/components/meeting/ScreenSharingView.svelte index ef1ad316f3..e7aee73179 100644 --- a/plugins/love-resources/src/components/meeting/ScreenSharingView.svelte +++ b/plugins/love-resources/src/components/meeting/ScreenSharingView.svelte @@ -35,7 +35,7 @@ let showControls = false let hideTimeout: ReturnType | undefined - function showControlsWithTimeout (): void { + function showControlsWithTimeout(): void { showControls = true clearTimeout(hideTimeout) hideTimeout = setTimeout(() => { @@ -43,39 +43,39 @@ }, 2000) } - function handleMouseEnter (): void { + function handleMouseEnter(): void { showControlsWithTimeout() } - function handleMouseLeave (): void { + function handleMouseLeave(): void { showControls = false clearTimeout(hideTimeout) } - function zoomIn (): void { + function zoomIn(): void { scale = Math.min(MAX_SCALE, scale + SCALE_STEP) clampPan() } - function zoomOut (): void { + function zoomOut(): void { scale = Math.max(MIN_SCALE, scale - SCALE_STEP) clampPan() } - function clampPan (): void { + function clampPan(): void { if (scale <= 1) { panX = 0 panY = 0 } } - function resetZoom (): void { + function resetZoom(): void { scale = 1 panX = 0 panY = 0 } - function handleMouseDown (e: MouseEvent): void { + function handleMouseDown(e: MouseEvent): void { if (scale > 1) { isDragging = true startX = e.clientX - panX @@ -83,7 +83,7 @@ } } - function handleMouseMove (e: MouseEvent): void { + function handleMouseMove(e: MouseEvent): void { if (isDragging && scale > 1) { panX = e.clientX - startX panY = e.clientY - startY @@ -92,12 +92,12 @@ showControlsWithTimeout() } - function handleMouseUp (): void { + function handleMouseUp(): void { isDragging = false clampPan() } - function handleWheel (e: WheelEvent): void { + function handleWheel(e: WheelEvent): void { e.preventDefault() const rect = container.getBoundingClientRect() const mouseX = e.clientX - rect.left - rect.width / 2 @@ -113,7 +113,7 @@ } } - function trySetActiveTrack (track: Track | undefined): boolean { + function trySetActiveTrack(track: Track | undefined): boolean { if (track === undefined) return false if (track.kind !== Track.Kind.Video || track.source !== Track.Source.ScreenShare) return false hasActiveTrack = true @@ -122,14 +122,14 @@ return true } - function clearActiveTrack (track: Track | undefined): void { + function clearActiveTrack(track: Track | undefined): void { if (track !== activeTrack) return hasActiveTrack = false activeTrack?.detach() activeTrack = null } - function onTrackSubscribed ( + function onTrackSubscribed( track: RemoteTrack, publication: RemoteTrackPublication, participant: RemoteParticipant @@ -137,7 +137,7 @@ trySetActiveTrack(track) } - function onTrackUnsubscribed ( + function onTrackUnsubscribed( track: RemoteTrack, publication: RemoteTrackPublication, participant: RemoteParticipant @@ -145,11 +145,11 @@ clearActiveTrack(track) } - function onLocalTrackPublished (publication: LocalTrackPublication, participant: LocalParticipant): void { + function onLocalTrackPublished(publication: LocalTrackPublication, participant: LocalParticipant): void { trySetActiveTrack(publication.track) } - function onLocalTrackUnpublished (publication: LocalTrackPublication, participant: LocalParticipant): void { + function onLocalTrackUnpublished(publication: LocalTrackPublication, participant: LocalParticipant): void { clearActiveTrack(publication.track) } diff --git a/plugins/love-resources/src/components/meeting/controls/CameraButton.svelte b/plugins/love-resources/src/components/meeting/controls/CameraButton.svelte index 80f5764c76..decb3c8848 100644 --- a/plugins/love-resources/src/components/meeting/controls/CameraButton.svelte +++ b/plugins/love-resources/src/components/meeting/controls/CameraButton.svelte @@ -18,7 +18,7 @@ ? getClient().getModel().findAllSync(view.class.Action, { _id: love.action.ToggleVideo })?.[0]?.keyBinding : [] - function camSettings (e: MouseEvent): void { + function camSettings(e: MouseEvent): void { showPopup(CamSettingPopup, {}, eventToHTMLElement(e)) } diff --git a/plugins/love-resources/src/components/meeting/controls/LeaveRoomButton.svelte b/plugins/love-resources/src/components/meeting/controls/LeaveRoomButton.svelte index 5822f4a4ac..5a2c78cce2 100644 --- a/plugins/love-resources/src/components/meeting/controls/LeaveRoomButton.svelte +++ b/plugins/love-resources/src/components/meeting/controls/LeaveRoomButton.svelte @@ -15,7 +15,7 @@ // Check if this is my office using myOffice store (works even when not in a meeting) $: isMyOffice = isOffice(room) && room._id === $myOffice?._id - async function leave (): Promise { + async function leave(): Promise { await leaveMeeting() dispatch('leave') } diff --git a/plugins/love-resources/src/components/meeting/controls/MeetingOptionsButton.svelte b/plugins/love-resources/src/components/meeting/controls/MeetingOptionsButton.svelte index fe185fd2d2..32866a46ae 100644 --- a/plugins/love-resources/src/components/meeting/controls/MeetingOptionsButton.svelte +++ b/plugins/love-resources/src/components/meeting/controls/MeetingOptionsButton.svelte @@ -27,14 +27,14 @@ icon: action.icon })) - async function handleMenuOption (e: CustomEvent): Promise { + async function handleMenuOption(e: CustomEvent): Promise { const action = actions.find((action) => action._id === e.detail) if (action !== undefined) { await handleAction(action) } } - async function handleAction (action: Action): Promise { + async function handleAction(action: Action): Promise { const fn = await getResource(action.action) await fn(room) } diff --git a/plugins/love-resources/src/components/meeting/controls/MicrophoneButton.svelte b/plugins/love-resources/src/components/meeting/controls/MicrophoneButton.svelte index 2b2eab099d..6b1ac583b5 100644 --- a/plugins/love-resources/src/components/meeting/controls/MicrophoneButton.svelte +++ b/plugins/love-resources/src/components/meeting/controls/MicrophoneButton.svelte @@ -15,7 +15,7 @@ ? getClient().getModel().findAllSync(view.class.Action, { _id: love.action.ToggleMic })?.[0]?.keyBinding : ['Alt+D'] - function micSettings (e: MouseEvent): void { + function micSettings(e: MouseEvent): void { showPopup(MicSettingPopup, {}, eventToHTMLElement(e)) } diff --git a/plugins/love-resources/src/components/meeting/controls/RoomAccessButton.svelte b/plugins/love-resources/src/components/meeting/controls/RoomAccessButton.svelte index 23720213ed..48221fa175 100644 --- a/plugins/love-resources/src/components/meeting/controls/RoomAccessButton.svelte +++ b/plugins/love-resources/src/components/meeting/controls/RoomAccessButton.svelte @@ -11,7 +11,7 @@ const me = getCurrentEmployee() - function setAccess (e: MouseEvent): void { + function setAccess(e: MouseEvent): void { if (isOffice(room) && room.person !== me) return showPopup(RoomAccessPopup, { room }, eventToHTMLElement(e)) } diff --git a/plugins/love-resources/src/components/meeting/controls/SendReactionButton.svelte b/plugins/love-resources/src/components/meeting/controls/SendReactionButton.svelte index c76e7a5f55..ea63521b7a 100644 --- a/plugins/love-resources/src/components/meeting/controls/SendReactionButton.svelte +++ b/plugins/love-resources/src/components/meeting/controls/SendReactionButton.svelte @@ -5,7 +5,7 @@ export let size: 'large' | 'medium' | 'small' | 'extra-small' | 'min' = 'large' - function addReaction (event: MouseEvent): void { + function addReaction(event: MouseEvent): void { showPopup( emojiPlugin.component.EmojiPopup, {}, diff --git a/plugins/love-resources/src/components/meeting/controls/ShareScreenButton.svelte b/plugins/love-resources/src/components/meeting/controls/ShareScreenButton.svelte index e53db1d9cb..fb92047371 100644 --- a/plugins/love-resources/src/components/meeting/controls/ShareScreenButton.svelte +++ b/plugins/love-resources/src/components/meeting/controls/ShareScreenButton.svelte @@ -10,14 +10,14 @@ const dispatch = createEventDispatcher() - async function changeShare (): Promise { + async function changeShare(): Promise { const newValue = $screenSharingState !== ScreenSharingState.Local const audio = newValue && $isShareWithSound await liveKitClient.setScreenShareEnabled(newValue, audio) dispatch('changeShare') } - function shareSettings (e: MouseEvent): void { + function shareSettings(e: MouseEvent): void { showPopup(ShareSettingPopup, {}, eventToHTMLElement(e)) } diff --git a/plugins/love-resources/src/components/meeting/invites/IncomingInvitePopup.svelte b/plugins/love-resources/src/components/meeting/invites/IncomingInvitePopup.svelte index dbee3b8e5d..94b2b35047 100644 --- a/plugins/love-resources/src/components/meeting/invites/IncomingInvitePopup.svelte +++ b/plugins/love-resources/src/components/meeting/invites/IncomingInvitePopup.svelte @@ -54,12 +54,12 @@ clearInterval(interval) }) - async function handleJoin (): Promise { + async function handleJoin(): Promise { await responseToInviteRequest(invite, true) dispatch('close') } - async function handleReject (): Promise { + async function handleReject(): Promise { await responseToInviteRequest(invite, false) dispatch('close') } diff --git a/plugins/love-resources/src/components/meeting/invites/InviteEmployeeButton.svelte b/plugins/love-resources/src/components/meeting/invites/InviteEmployeeButton.svelte index e4ebf90ef3..ef2c32adf5 100644 --- a/plugins/love-resources/src/components/meeting/invites/InviteEmployeeButton.svelte +++ b/plugins/love-resources/src/components/meeting/invites/InviteEmployeeButton.svelte @@ -31,7 +31,7 @@ const dispatch = createEventDispatcher() - async function invite (): Promise { + async function invite(): Promise { if (employee !== undefined) { sendInvites([employee._id]) } else { @@ -39,7 +39,7 @@ } } - function openSelectUsersPopup (): void { + function openSelectUsersPopup(): void { const skipAccounts = $infos.filter((p) => p.meeting === $currentMeetingMinutes?._id).map((p) => p.person) showPopup( SelectUsersPopup, diff --git a/plugins/love-resources/src/components/meeting/invites/InvitesExt.svelte b/plugins/love-resources/src/components/meeting/invites/InvitesExt.svelte index 21eb8f2148..8698262458 100644 --- a/plugins/love-resources/src/components/meeting/invites/InvitesExt.svelte +++ b/plugins/love-resources/src/components/meeting/invites/InvitesExt.svelte @@ -47,7 +47,7 @@ } ) - function openOutgoingInvites (e: MouseEvent, invite: UserMeetingInvite, person: Person): void { + function openOutgoingInvites(e: MouseEvent, invite: UserMeetingInvite, person: Person): void { closePopup(invitesCategory) showPopup( OutgoingInvitePopup, @@ -65,7 +65,7 @@ ) } - function openIncomingInvites (e: MouseEvent, invite: UserMeetingInvite, person: Person): void { + function openIncomingInvites(e: MouseEvent, invite: UserMeetingInvite, person: Person): void { closePopup(invitesCategory) showPopup( IncomingInvitePopup, diff --git a/plugins/love-resources/src/components/meeting/invites/OutgoingInvitePopup.svelte b/plugins/love-resources/src/components/meeting/invites/OutgoingInvitePopup.svelte index 4bc68d617b..9ea40d4145 100644 --- a/plugins/love-resources/src/components/meeting/invites/OutgoingInvitePopup.svelte +++ b/plugins/love-resources/src/components/meeting/invites/OutgoingInvitePopup.svelte @@ -43,7 +43,7 @@ clearInterval(countdownInterval) }) - async function handleCancel (): Promise { + async function handleCancel(): Promise { await cancelInvites(undefined, [invite]) dispatch('close') } diff --git a/plugins/love-resources/src/components/meeting/widget/ChatTab.svelte b/plugins/love-resources/src/components/meeting/widget/ChatTab.svelte index 1ce29275b5..afea6c1b2e 100644 --- a/plugins/love-resources/src/components/meeting/widget/ChatTab.svelte +++ b/plugins/love-resources/src/components/meeting/widget/ChatTab.svelte @@ -23,11 +23,11 @@ export let height: string export let width: string - function replyToThread (message: ActivityMessage): void { + function replyToThread(message: ActivityMessage): void { updateTabData(love.ids.MeetingWidget, 'chat', { thread: message._id }) } - function closeThread (): void { + function closeThread(): void { updateTabData(love.ids.MeetingWidget, 'chat', { thread: undefined }) } diff --git a/plugins/love-resources/src/components/meeting/widget/MeetingWidget.svelte b/plugins/love-resources/src/components/meeting/widget/MeetingWidget.svelte index 8669e6e7e7..9ffc722712 100644 --- a/plugins/love-resources/src/components/meeting/widget/MeetingWidget.svelte +++ b/plugins/love-resources/src/components/meeting/widget/MeetingWidget.svelte @@ -53,7 +53,7 @@ closeWidget(love.ids.MeetingWidget) } - function handleClose (): void { + function handleClose(): void { minimizeSidebar() } diff --git a/plugins/love-resources/src/components/meeting/widget/MeetingWidgetHeader.svelte b/plugins/love-resources/src/components/meeting/widget/MeetingWidgetHeader.svelte index b30437654d..d9ecf0164b 100644 --- a/plugins/love-resources/src/components/meeting/widget/MeetingWidgetHeader.svelte +++ b/plugins/love-resources/src/components/meeting/widget/MeetingWidgetHeader.svelte @@ -45,7 +45,7 @@ } ] - function maximize (): void { + function maximize(): void { popup = showPopup(RoomModal, { room }, 'full-centered', undefined) } diff --git a/plugins/love-resources/src/components/meeting/widget/WidgetSwitcher.svelte b/plugins/love-resources/src/components/meeting/widget/WidgetSwitcher.svelte index 2c6a768411..c9a090affa 100644 --- a/plugins/love-resources/src/components/meeting/widget/WidgetSwitcher.svelte +++ b/plugins/love-resources/src/components/meeting/widget/WidgetSwitcher.svelte @@ -41,8 +41,8 @@ : $lkSessionConnected && !allowCam && isMicEnabled ? love.icon.Mic : !allowCam || (!isCamEnabled && isMicEnabled) - ? love.icon.Mic - : icon} + ? love.icon.Mic + : icon} {selected} {size} kind={$screenSharingState === ScreenSharingState.Local diff --git a/plugins/love-resources/src/types.ts b/plugins/love-resources/src/types.ts index 52fad6bc8d..95c04c633d 100644 --- a/plugins/love-resources/src/types.ts +++ b/plugins/love-resources/src/types.ts @@ -43,9 +43,7 @@ export const shadowError: RGBAColor = { r: 249, g: 110, b: 80, a: 1 } export const loveSeparators: DefSeparators = [{ minSize: 17.5, size: 25, maxSize: 30, float: 'navigator' }, null] -export const languagesDisplayData: { - [key in RoomLanguage]: { emoji: string, label: string } -} = { +export const languagesDisplayData: Record = { bg: { emoji: '🇧🇬', label: 'Български' }, ca: { emoji: '🇨🇦', label: 'Català' }, zh: { emoji: '🇨🇳', label: '简体中文' }, diff --git a/plugins/media-resources/src/components/MediaPopup.svelte b/plugins/media-resources/src/components/MediaPopup.svelte index e0f5de63ed..e4b3ce6ab0 100644 --- a/plugins/media-resources/src/components/MediaPopup.svelte +++ b/plugins/media-resources/src/components/MediaPopup.svelte @@ -27,7 +27,7 @@ let camOpened = false let spkOpened = false - function handleMicExpanded (ev: CustomEvent): void { + function handleMicExpanded(ev: CustomEvent): void { micOpened = ev.detail if (micOpened) { camOpened = false @@ -35,7 +35,7 @@ } } - function handleCamExpanded (ev: CustomEvent): void { + function handleCamExpanded(ev: CustomEvent): void { camOpened = ev.detail if (camOpened) { micOpened = false @@ -43,7 +43,7 @@ } } - function handleSpkExpanded (ev: CustomEvent): void { + function handleSpkExpanded(ev: CustomEvent): void { spkOpened = ev.detail if (spkOpened) { micOpened = false diff --git a/plugins/media-resources/src/components/MediaPopupCamPreview.svelte b/plugins/media-resources/src/components/MediaPopupCamPreview.svelte index f98eacb1eb..d1b1269520 100644 --- a/plugins/media-resources/src/components/MediaPopupCamPreview.svelte +++ b/plugins/media-resources/src/components/MediaPopupCamPreview.svelte @@ -22,7 +22,7 @@ let stream: MediaStream | null = null let video: HTMLVideoElement | null = null - async function updateStream (device: MediaDeviceInfo): Promise { + async function updateStream(device: MediaDeviceInfo): Promise { const constraints = device !== null ? { video: { deviceId: { exact: device.deviceId }, width: { ideal: 1280 }, height: { ideal: 720 } } } diff --git a/plugins/media-resources/src/components/MediaPopupCamSelector.svelte b/plugins/media-resources/src/components/MediaPopupCamSelector.svelte index e3021ed158..a3d2c2bb36 100644 --- a/plugins/media-resources/src/components/MediaPopupCamSelector.svelte +++ b/plugins/media-resources/src/components/MediaPopupCamSelector.svelte @@ -33,7 +33,7 @@ $: access = $camAccess.state $: devices = mediaInfo.devices.filter((device) => device.kind === 'videoinput') - async function handleSelectCam (device: MediaDeviceInfo | null): Promise { + async function handleSelectCam(device: MediaDeviceInfo | null): Promise { if (device == null || mediaInfo === undefined) return if (mediaInfo.activeCamera?.deviceId === device?.deviceId) return const deviceId = device?.deviceId diff --git a/plugins/media-resources/src/components/MediaPopupItem.svelte b/plugins/media-resources/src/components/MediaPopupItem.svelte index 45fb3ee868..aa17190bc1 100644 --- a/plugins/media-resources/src/components/MediaPopupItem.svelte +++ b/plugins/media-resources/src/components/MediaPopupItem.svelte @@ -28,7 +28,7 @@ export let selectable: boolean = false export let disabled: boolean = false - function handleClick (): void { + function handleClick(): void { if (disabled) return if (expandable) { diff --git a/plugins/media-resources/src/components/MediaPopupMicSelector.svelte b/plugins/media-resources/src/components/MediaPopupMicSelector.svelte index de48a2a62b..9f404c9d38 100644 --- a/plugins/media-resources/src/components/MediaPopupMicSelector.svelte +++ b/plugins/media-resources/src/components/MediaPopupMicSelector.svelte @@ -30,7 +30,7 @@ $: access = $micAccess.state $: devices = mediaInfo.devices.filter((device) => device.kind === 'audioinput') - async function handleSelectMic (device: MediaDeviceInfo | null): Promise { + async function handleSelectMic(device: MediaDeviceInfo | null): Promise { if (device == null || mediaInfo === undefined) return if (mediaInfo.activeMicrophone?.deviceId === device?.deviceId) return const deviceId = device?.deviceId diff --git a/plugins/media-resources/src/components/MediaPopupSpkSelector.svelte b/plugins/media-resources/src/components/MediaPopupSpkSelector.svelte index 2b5c9c3666..96e42cc08a 100644 --- a/plugins/media-resources/src/components/MediaPopupSpkSelector.svelte +++ b/plugins/media-resources/src/components/MediaPopupSpkSelector.svelte @@ -29,7 +29,7 @@ $: access = $micAccess.state $: devices = mediaInfo.devices.filter((device) => device.kind === 'audiooutput') - async function handleSelectSpk (device: MediaDeviceInfo | null): Promise { + async function handleSelectSpk(device: MediaDeviceInfo | null): Promise { if (device == null) return if (mediaInfo.activeSpeaker?.deviceId === device?.deviceId) return const deviceId = device?.deviceId diff --git a/plugins/media-resources/src/components/MediaSettingsButton.svelte b/plugins/media-resources/src/components/MediaSettingsButton.svelte index bffe3e62fb..29351fc34a 100644 --- a/plugins/media-resources/src/components/MediaSettingsButton.svelte +++ b/plugins/media-resources/src/components/MediaSettingsButton.svelte @@ -27,7 +27,7 @@ let pressed = false - async function openPopup (): Promise { + async function openPopup(): Promise { pressed = true showPopup(MediaPopup, {}, anchor, () => { pressed = false diff --git a/plugins/media-resources/src/stores.ts b/plugins/media-resources/src/stores.ts index eaaa6b8647..4aadc7196d 100644 --- a/plugins/media-resources/src/stores.ts +++ b/plugins/media-resources/src/stores.ts @@ -36,8 +36,8 @@ export const state: Readable = derived(sessions, ($sessions) => { return { camera, microphone } }) -export const camAccess = createPermissionStore('camera' as PermissionName) -export const micAccess = createPermissionStore('microphone' as PermissionName) +export const camAccess = createPermissionStore('camera') +export const micAccess = createPermissionStore('microphone') function createPermissionStore (name: PermissionName): Readable { return readable({ state: 'prompt', ready: Promise.resolve() }, (set) => { diff --git a/plugins/media-resources/src/utils.ts b/plugins/media-resources/src/utils.ts index 140b6e8397..0d6265ed0c 100644 --- a/plugins/media-resources/src/utils.ts +++ b/plugins/media-resources/src/utils.ts @@ -90,7 +90,8 @@ function toggleDeviceState (kind: 'camera' | 'microphone'): void { class MediaSessionImpl extends (EventEmitter as unknown as new () => TypedEventEmitter) - implements MediaSession { + implements MediaSession +{ readonly state: MediaState constructor (state: MediaState) { diff --git a/plugins/notification-resources/src/components/BrowserNotificatator.svelte b/plugins/notification-resources/src/components/BrowserNotificatator.svelte index e0af7c4eda..e3f298d707 100644 --- a/plugins/notification-resources/src/components/BrowserNotificatator.svelte +++ b/plugins/notification-resources/src/components/BrowserNotificatator.svelte @@ -26,7 +26,7 @@ import { checkPermission, pushAllowed, subscribePush } from '../utils' import Notification from './Notification.svelte' - async function check (allowed: boolean): Promise { + async function check(allowed: boolean): Promise { if (allowed) { query.unsubscribe() return @@ -58,7 +58,7 @@ const client = getClient() const linkProviders = client.getModel().findAllSync(view.mixin.LinkIdProvider, {}) - async function getObjectIdFromLocation (loc: Location): Promise { + async function getObjectIdFromLocation(loc: Location): Promise { const appAlias = loc.path[2] const application = client.getModel().findAllSync(workbench.class.Application, { alias: appAlias })[0] @@ -78,7 +78,7 @@ } } - async function notify (value: BrowserNotification): Promise { + async function notify(value: BrowserNotification): Promise { const _id: Ref | undefined = value.objectId const getSidebarObject = await getResource(workbench.function.GetSidebarObject) @@ -106,7 +106,7 @@ await removeNotification(value) } - async function removeNotification (value: BrowserNotification): Promise { + async function removeNotification(value: BrowserNotification): Promise { if (account.role !== AccountRole.ReadOnlyGuest) { await client.remove(value) } diff --git a/plugins/notification-resources/src/components/CollaboratorEditor.svelte b/plugins/notification-resources/src/components/CollaboratorEditor.svelte index c12341e401..2a0e1c62f1 100644 --- a/plugins/notification-resources/src/components/CollaboratorEditor.svelte +++ b/plugins/notification-resources/src/components/CollaboratorEditor.svelte @@ -37,7 +37,7 @@ $: accounts = collaborators.map((c) => c.collaborator) - async function change (res: AccountUuid[]): Promise { + async function change(res: AccountUuid[]): Promise { const toAdd: AccountUuid[] = res.filter((a) => !accounts.includes(a)) const toRemove: Collaborator[] = collaborators.filter((a) => !res.includes(a.collaborator)) for (const account of toAdd) { diff --git a/plugins/notification-resources/src/components/DocNotifyContextCard.svelte b/plugins/notification-resources/src/components/DocNotifyContextCard.svelte index 85fb2ffbcd..aff56ae47e 100644 --- a/plugins/notification-resources/src/components/DocNotifyContextCard.svelte +++ b/plugins/notification-resources/src/components/DocNotifyContextCard.svelte @@ -90,7 +90,7 @@ groupedNotifications = res }) - function isTextMessage (_class: Ref>): boolean { + function isTextMessage(_class: Ref>): boolean { return hierarchy.isDerived(_class, chunter.class.ChatMessage) } @@ -102,7 +102,7 @@ return isMentionNotification(it) && isTextMessage(it.mentionedInClass) } - async function groupNotificationsByUser ( + async function groupNotificationsByUser( notifications: WithLookup[] ): Promise> { const result: Array = [] @@ -142,7 +142,7 @@ return result } - function showMenu (ev: MouseEvent): void { + function showMenu(ev: MouseEvent): void { ev.stopPropagation() ev.preventDefault() showPopup( @@ -165,15 +165,15 @@ handleActionMenuOpened() } - function handleActionMenuOpened (): void { + function handleActionMenuOpened(): void { isActionMenuOpened = true } - function handleActionMenuClosed (): void { + function handleActionMenuClosed(): void { isActionMenuOpened = false } - async function checkContext (): Promise { + async function checkContext(): Promise { dispatch('archive') } @@ -183,7 +183,7 @@ // return canGroup(first) // } - function getKey (group: InboxNotification[]): string { + function getKey(group: InboxNotification[]): string { return group.map((it) => it._id).join('-') } diff --git a/plugins/notification-resources/src/components/DocNotifyContextPresenter.svelte b/plugins/notification-resources/src/components/DocNotifyContextPresenter.svelte index 56f39fd41c..f77ab1ccc0 100644 --- a/plugins/notification-resources/src/components/DocNotifyContextPresenter.svelte +++ b/plugins/notification-resources/src/components/DocNotifyContextPresenter.svelte @@ -31,7 +31,7 @@ object = res[0] }) - async function getTitle (object: Doc) { + async function getTitle(object: Doc) { if (object._class === chunter.class.DirectMessage) { return await getDocTitle(client, object._id, object._class, object) } diff --git a/plugins/notification-resources/src/components/Notification.svelte b/plugins/notification-resources/src/components/Notification.svelte index c02edc80c2..8f45a39be7 100644 --- a/plugins/notification-resources/src/components/Notification.svelte +++ b/plugins/notification-resources/src/components/Notification.svelte @@ -30,7 +30,7 @@ sender = undefined } - async function openChannelInSidebar (): Promise { + async function openChannelInSidebar(): Promise { if (!value.onClickLocation) return const { onClickLocation } = value let _id: Ref | undefined = value.objectId diff --git a/plugins/notification-resources/src/components/inbox/ActivityInboxNotificationPresenter.svelte b/plugins/notification-resources/src/components/inbox/ActivityInboxNotificationPresenter.svelte index b06f86fe0e..18065412a9 100644 --- a/plugins/notification-resources/src/components/inbox/ActivityInboxNotificationPresenter.svelte +++ b/plugins/notification-resources/src/components/inbox/ActivityInboxNotificationPresenter.svelte @@ -44,7 +44,7 @@ $: void updateDisplayMessage(value.combinedMessages) - async function updateDisplayMessage (messages: ActivityMessage[]): Promise { + async function updateDisplayMessage(messages: ActivityMessage[]): Promise { const combinedMessages = combineActivityMessages(sortActivityMessages(messages)) displayMessage = combinedMessages[0] @@ -56,7 +56,7 @@ $: updateViewlet(viewlets, displayMessage) - function matchViewlet (viewlet: ActivityNotificationViewlet, message: DisplayActivityMessage): boolean { + function matchViewlet(viewlet: ActivityNotificationViewlet, message: DisplayActivityMessage): boolean { const hierarchy = client.getHierarchy() const matched = matchQuery([message], viewlet.messageMatch, message._class, hierarchy, true)[0] if (matched !== undefined) return true @@ -74,7 +74,7 @@ return false } - function updateViewlet (viewlets: ActivityNotificationViewlet[], message?: DisplayActivityMessage): void { + function updateViewlet(viewlets: ActivityNotificationViewlet[], message?: DisplayActivityMessage): void { if (viewlets.length === 0 || message === undefined) { viewlet = undefined return @@ -95,7 +95,7 @@ viewlet = undefined } - async function getAllActions (value: ActivityInboxNotification): Promise { + async function getAllActions(value: ActivityInboxNotification): Promise { const notificationActions = await getActions(client, value, notification.class.InboxNotification) const result: Action[] = [] diff --git a/plugins/notification-resources/src/components/inbox/CommonInboxNotificationPresenter.svelte b/plugins/notification-resources/src/components/inbox/CommonInboxNotificationPresenter.svelte index edc47dc967..9bbb978d75 100644 --- a/plugins/notification-resources/src/components/inbox/CommonInboxNotificationPresenter.svelte +++ b/plugins/notification-resources/src/components/inbox/CommonInboxNotificationPresenter.svelte @@ -28,7 +28,7 @@ $: void updateContent(value.message, value.messageHtml) - async function updateContent (message?: IntlString, messageHtml?: Markup): Promise { + async function updateContent(message?: IntlString, messageHtml?: Markup): Promise { if (messageHtml !== undefined) { content = messageHtml } else if (message !== undefined) { diff --git a/plugins/notification-resources/src/components/inbox/Inbox.svelte b/plugins/notification-resources/src/components/inbox/Inbox.svelte index fa2b7edcb0..a185987f47 100644 --- a/plugins/notification-resources/src/components/inbox/Inbox.svelte +++ b/plugins/notification-resources/src/components/inbox/Inbox.svelte @@ -133,7 +133,7 @@ ) $: void updateInboxData($notificationsByContextStore, archivedNotifications, showArchive) - async function updateInboxData ( + async function updateInboxData( notificationsByContext: Map, InboxNotification[]>, archivedNotifications: InboxNotification[], showArchive: boolean @@ -163,7 +163,7 @@ isContextsLoaded = true }) - async function syncLocation (newLocation: Location): Promise { + async function syncLocation(newLocation: Location): Promise { const token = ++syncLocationToken const loc = await resolveLocation(newLocation) if (token !== syncLocationToken) return @@ -219,7 +219,7 @@ $: void updateSelectedPanel(selectedContext, urlObjectClass) $: void updateTabItems(inboxData, $contextsStore) - async function updateTabItems (inboxData: InboxData, notifyContexts: DocNotifyContext[]): Promise { + async function updateTabItems(inboxData: InboxData, notifyContexts: DocNotifyContext[]): Promise { const displayClasses = new Set( notifyContexts.filter(({ _id }) => inboxData.has(_id)).map(({ objectClass }) => objectClass) ) @@ -255,13 +255,13 @@ tabItems = [allTab].concat(tabs.sort((a, b) => (a.label ?? '').localeCompare(b.label ?? ''))) } - function selectTab (event: CustomEvent): void { + function selectTab(event: CustomEvent): void { if (event.detail !== undefined) { selectedTabId = event.detail.id } } - async function selectContext (event?: CustomEvent): Promise { + async function selectContext(event?: CustomEvent): Promise { closePanel() selectedContext = event?.detail?.context selectedContextId = selectedContext?._id @@ -275,7 +275,7 @@ void selectInboxContext(linkProviders, selectedContext, selectedNotification, event?.detail.object) } - function isChunterChannel (selectedContext: DocNotifyContext, urlObjectClass?: Ref>): boolean { + function isChunterChannel(selectedContext: DocNotifyContext, urlObjectClass?: Ref>): boolean { const isActivityMessageContext = hierarchy.isDerived(selectedContext.objectClass, activity.class.ActivityMessage) const chunterClass = isActivityMessageContext ? (urlObjectClass ?? selectedContext.objectClass) @@ -283,7 +283,7 @@ return hierarchy.isDerived(chunterClass, chunter.class.ChunterSpace) } - async function updateSelectedPanel ( + async function updateSelectedPanel( selectedContext?: DocNotifyContext, urlObjectClass?: Ref> ): Promise { @@ -317,7 +317,7 @@ } } - function filterData ( + function filterData( filter: InboxNotificationsFilter, selectedTabId: string | number, inboxData: InboxData @@ -367,13 +367,13 @@ { size: 20, minSize: 20, maxSize: 50, float: 'aside' } ]) - function onArchiveToggled (): void { + function onArchiveToggled(): void { showArchive = !showArchive selectedTabId = allTab.id void selectContext(undefined) } - function onUnreadsToggled (): void { + function onUnreadsToggled(): void { filter = filter === 'unread' ? 'all' : 'unread' localStorage.setItem('inbox-filter', filter) void selectContext(undefined) diff --git a/plugins/notification-resources/src/components/inbox/InboxGroupedListView.svelte b/plugins/notification-resources/src/components/inbox/InboxGroupedListView.svelte index 91f36a2b4e..59628b6921 100644 --- a/plugins/notification-resources/src/components/inbox/InboxGroupedListView.svelte +++ b/plugins/notification-resources/src/components/inbox/InboxGroupedListView.svelte @@ -70,7 +70,7 @@ } } - function updateDisplayData (data: InboxData): void { + function updateDisplayData(data: InboxData): void { let result: [Ref, DisplayInboxNotification[]][] = Array.from(data.entries()) if (archivedContexts.size > 0) { result = result.filter(([contextId]) => { @@ -87,7 +87,7 @@ ) } - async function archiveContext (listSelection: number): Promise { + async function archiveContext(listSelection: number): Promise { const contextId = displayData[listSelection]?.[0] const context = $contextByIdStore.get(contextId) if (contextId === undefined || context === undefined) { @@ -118,7 +118,7 @@ archivingContexts = archivingContexts } - async function onKeydown (key: KeyboardEvent): Promise { + async function onKeydown(key: KeyboardEvent): Promise { if (key.code === 'ArrowUp') { key.stopPropagation() key.preventDefault() @@ -159,12 +159,12 @@ element.focus() } - function getContextKey (index: number): string { + function getContextKey(index: number): string { const contextId = displayData[index][0] return contextId ?? index.toString() } - function selectIndex (index: number): void { + function selectIndex(index: number): void { if (displayData.length === 0) return list.select(Math.max(0, Math.min(index, displayData.length - 1))) diff --git a/plugins/notification-resources/src/components/inbox/InboxMenuButton.svelte b/plugins/notification-resources/src/components/inbox/InboxMenuButton.svelte index 7117f559d7..8e1dbd16b9 100644 --- a/plugins/notification-resources/src/components/inbox/InboxMenuButton.svelte +++ b/plugins/notification-resources/src/components/inbox/InboxMenuButton.svelte @@ -19,7 +19,7 @@ import notification from '../../plugin' import { archiveAll, readAll, unreadAll } from '../../utils' - async function onSelect (id?: 'archive' | 'read' | 'unread'): Promise { + async function onSelect(id?: 'archive' | 'read' | 'unread'): Promise { if (id == null) return if (id === 'archive') { diff --git a/plugins/notification-resources/src/components/inbox/InboxNotificationPresenter.svelte b/plugins/notification-resources/src/components/inbox/InboxNotificationPresenter.svelte index 4b2e90e4a1..90a1ea0eee 100644 --- a/plugins/notification-resources/src/components/inbox/InboxNotificationPresenter.svelte +++ b/plugins/notification-resources/src/components/inbox/InboxNotificationPresenter.svelte @@ -36,19 +36,19 @@ const client = getClient() const hierarchy = client.getHierarchy() - function asDisplayActivityNotification (notification: DisplayInboxNotification): DisplayActivityInboxNotification { + function asDisplayActivityNotification(notification: DisplayInboxNotification): DisplayActivityInboxNotification { return notification as DisplayActivityInboxNotification } - function asMentionNotification (notification: DisplayInboxNotification): MentionInboxNotification { + function asMentionNotification(notification: DisplayInboxNotification): MentionInboxNotification { return notification as MentionInboxNotification } - function asReactionNotification (notification: DisplayInboxNotification): ReactionInboxNotification { + function asReactionNotification(notification: DisplayInboxNotification): ReactionInboxNotification { return notification as ReactionInboxNotification } - function asCommonNotification (notification: DisplayInboxNotification): CommonInboxNotification { + function asCommonNotification(notification: DisplayInboxNotification): CommonInboxNotification { return notification as CommonInboxNotification } diff --git a/plugins/notification-resources/src/components/inbox/SettingsButton.svelte b/plugins/notification-resources/src/components/inbox/SettingsButton.svelte index b5da214e32..681c886c53 100644 --- a/plugins/notification-resources/src/components/inbox/SettingsButton.svelte +++ b/plugins/notification-resources/src/components/inbox/SettingsButton.svelte @@ -20,7 +20,7 @@ export let items: SettingItem[] = [] - function click (e: MouseEvent): void { + function click(e: MouseEvent): void { showPopup(SettingsPopup, { items }, eventToHTMLElement(e)) } diff --git a/plugins/notification-resources/src/components/inbox/SettingsPopup.svelte b/plugins/notification-resources/src/components/inbox/SettingsPopup.svelte index bef20dd509..bc8642a92e 100644 --- a/plugins/notification-resources/src/components/inbox/SettingsPopup.svelte +++ b/plugins/notification-resources/src/components/inbox/SettingsPopup.svelte @@ -26,7 +26,7 @@ let selection = 0 let list: ListView - export function onKeydown (key: KeyboardEvent): boolean { + export function onKeydown(key: KeyboardEvent): boolean { if (key.code === 'Tab') { dispatch('close') key.preventDefault() @@ -72,13 +72,13 @@ popupElement.focus() } - function selectIndex (index: number): void { + function selectIndex(index: number): void { if (items.length === 0) return list.select(Math.max(0, Math.min(index, items.length - 1))) } - function toggleSelectedItem (): void { + function toggleSelectedItem(): void { const item = items[selection] if (item === undefined) return diff --git a/plugins/notification-resources/src/components/settings/GeneralPreferencesGroup.svelte b/plugins/notification-resources/src/components/settings/GeneralPreferencesGroup.svelte index 14e1c6537e..7b6275b015 100644 --- a/plugins/notification-resources/src/components/settings/GeneralPreferencesGroup.svelte +++ b/plugins/notification-resources/src/components/settings/GeneralPreferencesGroup.svelte @@ -28,7 +28,7 @@ .findAllSync(notification.class.NotificationProvider, {}) .sort((provider1, provider2) => provider1.order - provider2.order) - function getProviderStatus (ref: Ref): boolean { + function getProviderStatus(ref: Ref): boolean { const provider = providers.find(({ _id }) => _id === ref) if (provider === undefined) return false @@ -37,7 +37,7 @@ return setting?.enabled ?? provider.defaultEnabled } - async function updateStatus (ref: Ref, enabled: boolean): Promise { + async function updateStatus(ref: Ref, enabled: boolean): Promise { const setting = $providersSettings.find(({ attachedTo }) => attachedTo === ref) if (setting !== undefined) { await client.update(setting, { enabled }) @@ -50,7 +50,7 @@ } } - async function onToggle (event: CustomEvent): Promise { + async function onToggle(event: CustomEvent): Promise { const provider = event.detail if (provider == null) return diff --git a/plugins/notification-resources/src/components/settings/NotificationGroupSetting.svelte b/plugins/notification-resources/src/components/settings/NotificationGroupSetting.svelte index 58394ffcab..bdcd49ec1b 100644 --- a/plugins/notification-resources/src/components/settings/NotificationGroupSetting.svelte +++ b/plugins/notification-resources/src/components/settings/NotificationGroupSetting.svelte @@ -46,7 +46,7 @@ $: types = client.getModel().findAllSync(notification.class.NotificationType, { group }) $: typesMap = toIdMap(types) - function getStatus ( + function getStatus( settings: Map, NotificationTypeSetting[]>, type: Ref, provider: Ref @@ -62,7 +62,7 @@ return typeValue.defaultEnabled } - async function onToggle ( + async function onToggle( typeId: Ref, providerId: Ref, value: boolean @@ -94,7 +94,7 @@ } } - function getTypeSetting ( + function getTypeSetting( map: Map, NotificationTypeSetting[]>, type: Ref, provider: Ref @@ -108,7 +108,7 @@ return type._class === notification.class.NotificationType } - function getLabel (type: NotificationType): IntlString { + function getLabel(type: NotificationType): IntlString { if (isNotificationType(type) && type.attachedToClass !== undefined) { return notification.string.AddedRemoved } @@ -116,7 +116,7 @@ return notification.string.Change } - function isIgnored (type: Ref, provider: NotificationProvider): boolean { + function isIgnored(type: Ref, provider: NotificationProvider): boolean { const ignored = providerDefaults.some((it) => provider._id === it.provider && it.ignoredTypes.includes(type)) if (ignored) return true @@ -130,7 +130,7 @@ return false } - async function getFilteredProviders ( + async function getFilteredProviders( providers: NotificationProvider[], types: NotificationType[], providersSettings: NotificationProviderSetting[] diff --git a/plugins/notification-resources/src/components/settings/WebpushesPreferencesPresenter.svelte b/plugins/notification-resources/src/components/settings/WebpushesPreferencesPresenter.svelte index 5f5393a55b..e7a2e613d6 100644 --- a/plugins/notification-resources/src/components/settings/WebpushesPreferencesPresenter.svelte +++ b/plugins/notification-resources/src/components/settings/WebpushesPreferencesPresenter.svelte @@ -56,7 +56,7 @@ return setting?.enabled ?? true } - async function toggle (sub: PushSubscription): Promise { + async function toggle(sub: PushSubscription): Promise { const setting = settings.find(({ attachedTo }) => attachedTo === sub._id) const currentEnabled: boolean = setting !== undefined ? Boolean(setting.enabled) : true const enabled = !currentEnabled @@ -71,7 +71,7 @@ } } - async function remove (sub: PushSubscription): Promise { + async function remove(sub: PushSubscription): Promise { showPopup( MessageBox, { @@ -104,7 +104,7 @@ let currentEndpoint: string | undefined - async function updateCurrentEndpoint (): Promise { + async function updateCurrentEndpoint(): Promise { if (!('serviceWorker' in navigator)) return const loc = getCurrentLocation() const registration = await navigator.serviceWorker.getRegistration(`/${loc.path[0]}/${loc.path[1]}`) @@ -125,7 +125,7 @@ let subscribing = false - async function subscribe (): Promise { + async function subscribe(): Promise { if (subscribing) return subscribing = true const subscribeResult = await subscribePush() @@ -157,10 +157,10 @@ : publicKey === undefined ? notification.string.PushNotConfigured : !browserSupported - ? notification.string.PushNotSupported - : permissionDenied - ? notification.string.PushDenied - : undefined + ? notification.string.PushNotSupported + : permissionDenied + ? notification.string.PushDenied + : undefined $: buttonDisabled = desktopPlatform || alreadySubscribed || publicKey === undefined || !browserSupported || permissionDenied diff --git a/plugins/notification-resources/src/utils.ts b/plugins/notification-resources/src/utils.ts index 3246ac25e7..3949a667ce 100644 --- a/plugins/notification-resources/src/utils.ts +++ b/plugins/notification-resources/src/utils.ts @@ -659,12 +659,12 @@ export async function selectInboxContext ( object?._id === objectId ? (object as ThreadMessage) : await client.findOne( - chunter.class.ThreadMessage, - { - _id: objectId as Ref - }, - { projection: { _id: 1, attachedTo: 1 } } - ) + chunter.class.ThreadMessage, + { + _id: objectId as Ref + }, + { projection: { _id: 1, attachedTo: 1 } } + ) void navigateToInboxDoc( linkProviders, diff --git a/plugins/onboard-resources/src/components/Auth.svelte b/plugins/onboard-resources/src/components/Auth.svelte index 48e1de9074..ee74e1d80f 100644 --- a/plugins/onboard-resources/src/components/Auth.svelte +++ b/plugins/onboard-resources/src/components/Auth.svelte @@ -21,7 +21,7 @@ } }) - function isWorkspaceLoginInfo (info: WorkspaceLoginInfo | LoginInfo): info is WorkspaceLoginInfo { + function isWorkspaceLoginInfo(info: WorkspaceLoginInfo | LoginInfo): info is WorkspaceLoginInfo { return (info as WorkspaceLoginInfo).workspace !== undefined } diff --git a/plugins/onboard-resources/src/components/Form.svelte b/plugins/onboard-resources/src/components/Form.svelte index d60e5df7dc..efa165a459 100644 --- a/plugins/onboard-resources/src/components/Form.svelte +++ b/plugins/onboard-resources/src/components/Form.svelte @@ -56,7 +56,7 @@ let valid: boolean = false - async function validateAsync (language: string): Promise { + async function validateAsync(language: string): Promise { if (ignoreInitialValidation) return true for (const field of fields) { const v = object[field.name] @@ -101,7 +101,7 @@ let inAction = false - function performAction (action: Action): void { + function performAction(action: Action): void { for (const field of fields) { trim(field.name) } @@ -112,7 +112,7 @@ } onMount(() => (ignoreInitialValidation = false)) - function trim (field: string): void { + function trim(field: string): void { object[field] = (object[field] as string).trim() } diff --git a/plugins/onboard-resources/src/components/OnboardApp.svelte b/plugins/onboard-resources/src/components/OnboardApp.svelte index cf569804a8..7e65291e86 100644 --- a/plugins/onboard-resources/src/components/OnboardApp.svelte +++ b/plugins/onboard-resources/src/components/OnboardApp.svelte @@ -50,7 +50,7 @@ onDestroy(location.subscribe(updatePageLoc)) - function updatePageLoc (loc: Location): void { + function updatePageLoc(loc: Location): void { const token = getMetadata(presentation.metadata.Token) page = (loc.path[1] as Pages) ?? (token != null ? 'selectWorkspace' : 'login') const allowedUnauthPages: Pages[] = ['onboard', 'auth'] @@ -59,7 +59,7 @@ } } - async function chooseToken (): Promise { + async function chooseToken(): Promise { if (page === 'auth') { // token handled by auth page return diff --git a/plugins/onboard-resources/src/components/OnboardForm.svelte b/plugins/onboard-resources/src/components/OnboardForm.svelte index f0d5b8e030..9a0c8c09d4 100644 --- a/plugins/onboard-resources/src/components/OnboardForm.svelte +++ b/plugins/onboard-resources/src/components/OnboardForm.svelte @@ -33,21 +33,21 @@ let account: LoginInfo | null | undefined = undefined let step: OnboardSteps = OnboardSteps.Workspace - function handleStepEvent (event: CustomEvent): void { + function handleStepEvent(event: CustomEvent): void { if (event.detail != null) { account = event.detail } handleNext(step) } - function handleNext (current: OnboardSteps): void { + function handleNext(current: OnboardSteps): void { const next = steps.indexOf(current) + 1 if (next < steps.length) { step = steps[next] } } - function isWorkspaceLoginInfo (info: WorkspaceLoginInfo | LoginInfo): info is WorkspaceLoginInfo { + function isWorkspaceLoginInfo(info: WorkspaceLoginInfo | LoginInfo): info is WorkspaceLoginInfo { return (info as WorkspaceLoginInfo).workspace !== undefined } diff --git a/plugins/presence-resources/src/components/PresenceAvatars.svelte b/plugins/presence-resources/src/components/PresenceAvatars.svelte index eeec1764ed..6b336ebbb1 100644 --- a/plugins/presence-resources/src/components/PresenceAvatars.svelte +++ b/plugins/presence-resources/src/components/PresenceAvatars.svelte @@ -37,7 +37,7 @@ $: overLimit = persons.length > limit $: adaptive = checkAdaptiveMatching($deviceInfo.size, 'md') || overLimit - async function updatePresence (presenceInfo: Map>): Promise { + async function updatePresence(presenceInfo: Map>): Promise { const personByRef = await getPersonsByPersonRefs(Array.from(presenceInfo.values())) persons = presenceInfo .values() @@ -46,7 +46,7 @@ .toArray() } - function onPresence (presence: Map>): void { + function onPresence(presence: Map>): void { presenceInfo = presence } diff --git a/plugins/presence-resources/src/index.ts b/plugins/presence-resources/src/index.ts index 954748a2c3..dcc65758f0 100644 --- a/plugins/presence-resources/src/index.ts +++ b/plugins/presence-resources/src/index.ts @@ -24,7 +24,7 @@ export { Presence, PresenceAvatars } export * from './presence' export * from './typing' -export * from './types' +export type * from './types' export default async (): Promise => ({ component: { diff --git a/plugins/print-resources/src/components/PrintBulkToPDF.svelte b/plugins/print-resources/src/components/PrintBulkToPDF.svelte index f718f144df..33e87cbb58 100644 --- a/plugins/print-resources/src/components/PrintBulkToPDF.svelte +++ b/plugins/print-resources/src/components/PrintBulkToPDF.svelte @@ -41,17 +41,17 @@ $: successCount = results.filter((r) => r.error === undefined).length $: failedList = results.filter((r) => r.error !== undefined) - function cancel (): void { + function cancel(): void { cancelled = true close() } - function openPdf (result: PdfResult): void { + function openPdf(result: PdfResult): void { if (result.error !== undefined) return selectedResult = result } - async function doDownloadAll (): Promise { + async function doDownloadAll(): Promise { downloadAllLoading = true try { await downloadAllPdfs(results) @@ -62,7 +62,7 @@ const dispatch = createEventDispatcher() - function close (): void { + function close(): void { dispatch('close') } diff --git a/plugins/print-resources/src/components/PrintToPDF.svelte b/plugins/print-resources/src/components/PrintToPDF.svelte index b16c45e4a8..604bec9551 100644 --- a/plugins/print-resources/src/components/PrintToPDF.svelte +++ b/plugins/print-resources/src/components/PrintToPDF.svelte @@ -48,7 +48,7 @@ } ] satisfies DropdownIntlItem[] - function nextPrintRequest (): number { + function nextPrintRequest(): number { printRequest += 1 return printRequest } @@ -116,14 +116,14 @@ void createLinkIfMissing(object) } - async function getObjectLocation (obj: Doc): Promise { + async function getObjectLocation(obj: Doc): Promise { const panelComponent = client.getHierarchy().classHierarchyMixin(obj._class, view.mixin.ObjectPanel) const comp = panelComponent?.component ?? view.component.EditDoc return await getObjectLinkFragment(client.getHierarchy(), obj, {}, comp) } - async function createLinkIfMissing (obj: Doc): Promise { + async function createLinkIfMissing(obj: Doc): Promise { if (link?.attachedTo === obj._id) { return } @@ -135,25 +135,25 @@ } } - async function updateDocTitle (obj: Doc): Promise { + async function updateDocTitle(obj: Doc): Promise { const value = (await getDocTitle(client, obj._id, obj._class, obj)) ?? '' title = value !== '' ? value + '.pdf' : '' } - function toggleOrientation (): void { + function toggleOrientation(): void { nextPrintRequest() orientation = orientation === 'landscape' ? 'portrait' : 'landscape' file = undefined isLoading = true } - function handlePrintSetting (id: 'landscape' | 'contentOnly'): void { + function handlePrintSetting(id: 'landscape' | 'contentOnly'): void { if (id === 'landscape') { toggleOrientation() } } - function openPrintSettings (event: MouseEvent): void { + function openPrintSettings(event: MouseEvent): void { showPopup( ModernPopup, { items: printSettingsItems }, diff --git a/plugins/products-resources/src/components/product-version/CreateProductVersion.svelte b/plugins/products-resources/src/components/product-version/CreateProductVersion.svelte index dd05046f52..8ca4edd84e 100644 --- a/plugins/products-resources/src/components/product-version/CreateProductVersion.svelte +++ b/plugins/products-resources/src/components/product-version/CreateProductVersion.svelte @@ -70,7 +70,7 @@ $: updateSeverity(parent, severity) - function updateSeverity (parent: ProductVersion | null | undefined, severity: Severity): void { + function updateSeverity(parent: ProductVersion | null | undefined, severity: Severity): void { if (parent != null) { object.major = severity === 'major' ? parent.major + 1 : parent.major object.minor = severity === 'minor' ? parent.minor + 1 : 0 @@ -82,15 +82,15 @@ } } - function formatProductVersion (object: ProductVersionDraft): string { + function formatProductVersion(object: ProductVersionDraft): string { return `${object.major}.${object.minor}.${object.patch}` } - function formatProductVersionName (object: ProductVersionDraft): string { + function formatProductVersionName(object: ProductVersionDraft): string { return `${formatProductVersion(object)}` + (object.codename != null ? ` ${object.codename}` : '') } - async function handleOkAction (): Promise { + async function handleOkAction(): Promise { if (space === undefined) { return } @@ -120,7 +120,7 @@ dispatch('close', id) } - async function handleClose (): Promise { + async function handleClose(): Promise { const noChanges = deepEqual(object, createDefaultObject()) if (noChanges) { dispatch('close') @@ -141,7 +141,7 @@ } } - function createDefaultObject (): ProductVersionDraft { + function createDefaultObject(): ProductVersionDraft { return { readonly: false, major: 1, diff --git a/plugins/products-resources/src/components/product-version/EditProductVersion.svelte b/plugins/products-resources/src/components/product-version/EditProductVersion.svelte index ad77c4fed3..4ca41bc11c 100644 --- a/plugins/products-resources/src/components/product-version/EditProductVersion.svelte +++ b/plugins/products-resources/src/components/product-version/EditProductVersion.svelte @@ -44,7 +44,7 @@ let lastId: Ref = _id $: read(_id) - function read (_id: Ref): void { + function read(_id: Ref): void { if (lastId !== _id) { const prev = lastId lastId = _id diff --git a/plugins/products-resources/src/components/product-version/ProductVersionPresenter.svelte b/plugins/products-resources/src/components/product-version/ProductVersionPresenter.svelte index ee500ea796..88055e377e 100644 --- a/plugins/products-resources/src/components/product-version/ProductVersionPresenter.svelte +++ b/plugins/products-resources/src/components/product-version/ProductVersionPresenter.svelte @@ -33,7 +33,7 @@ export let noUnderline: boolean = false export let shouldShowAvatar: boolean = true - function getProductVersionName (value: ProductVersion): string { + function getProductVersionName(value: ProductVersion): string { const version = `${value.major}.${value.minor}.${value.patch}` const codename = value.codename ?? '' return codename !== '' ? `${version} ${codename}` : version diff --git a/plugins/products-resources/src/components/product/CreateProduct.svelte b/plugins/products-resources/src/components/product/CreateProduct.svelte index c9c803b7a8..ab8fc91349 100644 --- a/plugins/products-resources/src/components/product/CreateProduct.svelte +++ b/plugins/products-resources/src/components/product/CreateProduct.svelte @@ -102,16 +102,16 @@ } $: void loadSpaceType(typeId) - async function loadSpaceType (id: typeof typeId): Promise { + async function loadSpaceType(id: typeof typeId): Promise { spaceType = id !== undefined ? await client - .getModel() - .findOne(core.class.SpaceType, { _id: id }, { lookup: { _id: { roles: core.class.Role } } }) + .getModel() + .findOne(core.class.SpaceType, { _id: id }, { lookup: { _id: { roles: core.class.Role } } }) : undefined } - function chooseIcon (): void { + function chooseIcon(): void { const { icon, color } = object const icons = [products.icon.Product] showPopup(IconPicker, { icon, color, icons }, 'top', (result) => { @@ -122,14 +122,14 @@ }) } - function handleOwnersChanged (newOwners: AccountUuid[]): void { + function handleOwnersChanged(newOwners: AccountUuid[]): void { object.owners = newOwners const newMembersSet = new Set([...object.owners, ...object.members]) object.members = Array.from(newMembersSet) } - function handleMembersChanged (newMembers: AccountUuid[]): void { + function handleMembersChanged(newMembers: AccountUuid[]): void { // If a member was removed we need to remove it from any roles assignments as well const newMembersSet = new Set(newMembers) const removedMembersSet = new Set(object.members.filter((m) => !newMembersSet.has(m))) @@ -143,7 +143,7 @@ object.members = newMembers } - function handleRoleAssignmentChanged (roleId: Ref, newMembers: AccountUuid[]): void { + function handleRoleAssignmentChanged(roleId: Ref, newMembers: AccountUuid[]): void { if (rolesAssignment === undefined) { rolesAssignment = {} } @@ -151,7 +151,7 @@ rolesAssignment[roleId] = newMembers } - async function handleOkAction (): Promise { + async function handleOkAction(): Promise { if (typeId === undefined || spaceType?.targetClass === undefined) { return } @@ -189,7 +189,7 @@ dispatch('close', productId) } - async function handleClose (): Promise { + async function handleClose(): Promise { const noChanges = deepEqual(object, createDefaultObject()) if (noChanges) { dispatch('close') @@ -211,7 +211,7 @@ } } - function createDefaultObject (): Data { + function createDefaultObject(): Data { return { // Space name: '', diff --git a/plugins/products-resources/src/components/product/EditProduct.svelte b/plugins/products-resources/src/components/product/EditProduct.svelte index c4fd56f920..26c5195428 100644 --- a/plugins/products-resources/src/components/product/EditProduct.svelte +++ b/plugins/products-resources/src/components/product/EditProduct.svelte @@ -47,7 +47,7 @@ let lastId: Ref = _id $: read(_id) - function read (_id: Ref): void { + function read(_id: Ref): void { if (lastId !== _id) { const prev = lastId lastId = _id @@ -70,7 +70,7 @@ } }) - function chooseIcon (): void { + function chooseIcon(): void { if (object === undefined) return const { icon, color } = object @@ -83,7 +83,7 @@ showPopup(IconPicker, { icon, color, icons }, 'top', update, update) } - function onChange (key: string, value: any): void { + function onChange(key: string, value: any): void { if (object === undefined) return if (value !== (object as any)[key]) { diff --git a/plugins/products-resources/src/components/product/NewProductHeader.svelte b/plugins/products-resources/src/components/product/NewProductHeader.svelte index 79a460f2a1..9c7993fb94 100644 --- a/plugins/products-resources/src/components/product/NewProductHeader.svelte +++ b/plugins/products-resources/src/components/product/NewProductHeader.svelte @@ -18,7 +18,7 @@ import CreateProduct from './CreateProduct.svelte' import { openDocFromRef } from '@hcengineering/view-resources' - async function newProduct (): Promise { + async function newProduct(): Promise { showPopup(CreateProduct, {}, 'top', async (id) => { if (id != null) { void openDocFromRef(products.class.Product, id) diff --git a/plugins/questions-resources/src/components/AnswersItemEditor.svelte b/plugins/questions-resources/src/components/AnswersItemEditor.svelte index b68b0c3199..ddf40fbcc3 100644 --- a/plugins/questions-resources/src/components/AnswersItemEditor.svelte +++ b/plugins/questions-resources/src/components/AnswersItemEditor.svelte @@ -64,7 +64,7 @@ } } - async function submit (answerData: AnswerDataOf): Promise { + async function submit(answerData: AnswerDataOf): Promise { if (answer === null) { await createAnswer(answerClassRef, answerData) } else { diff --git a/plugins/questions-resources/src/components/LabelEditor.svelte b/plugins/questions-resources/src/components/LabelEditor.svelte index d7765f8eb7..0cc346d705 100644 --- a/plugins/questions-resources/src/components/LabelEditor.svelte +++ b/plugins/questions-resources/src/components/LabelEditor.svelte @@ -9,7 +9,7 @@ export let readonly = false let editBox: EditBox | undefined = undefined - export function focus (): void { + export function focus(): void { if (editBox) { editBox.focus() } diff --git a/plugins/questions-resources/src/components/MultipleChoiceAnswerDataEditor.svelte b/plugins/questions-resources/src/components/MultipleChoiceAnswerDataEditor.svelte index d6f20f0bc4..b4dc932163 100644 --- a/plugins/questions-resources/src/components/MultipleChoiceAnswerDataEditor.svelte +++ b/plugins/questions-resources/src/components/MultipleChoiceAnswerDataEditor.svelte @@ -34,7 +34,7 @@ export let submit: ((answerData: MultipleChoiceAnswerData) => Promise) | null = null export let showDiff: boolean = false - async function toggleIndex (index: number, on: boolean): Promise { + async function toggleIndex(index: number, on: boolean): Promise { if (submit === null) { return } diff --git a/plugins/questions-resources/src/components/MultipleChoiceQuestionDataEditor.svelte b/plugins/questions-resources/src/components/MultipleChoiceQuestionDataEditor.svelte index aa446d1ce4..4403bb62c8 100644 --- a/plugins/questions-resources/src/components/MultipleChoiceQuestionDataEditor.svelte +++ b/plugins/questions-resources/src/components/MultipleChoiceQuestionDataEditor.svelte @@ -37,7 +37,7 @@ let draft: string = '' - function onOptionLabelKeyDown (event: KeyboardEvent, index: number): void { + function onOptionLabelKeyDown(event: KeyboardEvent, index: number): void { if (submit === undefined) { return } @@ -61,7 +61,7 @@ } } - function onOptionLabelChange (index: number): void { + function onOptionLabelChange(index: number): void { if (submit === undefined) { return } @@ -73,7 +73,7 @@ } } - function appendOption (): void { + function appendOption(): void { if (submit === undefined) { return } @@ -85,7 +85,7 @@ }) } - function removeOptionAt (index: number): void { + function removeOptionAt(index: number): void { if (submit === undefined) { return } @@ -116,7 +116,7 @@ }) } - function toggleIndex (index: number, on: boolean): void { + function toggleIndex(index: number, on: boolean): void { if (submit === undefined || assessmentData === null) { return } @@ -135,7 +135,7 @@ let canDrag: boolean = false $: canDrag = submit !== undefined && questionData.options.length > 1 - function onDrop (event: OptionsListDropEvent): void { + function onDrop(event: OptionsListDropEvent): void { const { from, to } = event.detail if (submit === undefined || from === to) { @@ -159,7 +159,7 @@ } } - export function focus (): void { + export function focus(): void { if (submit !== undefined) { inputs[0].focus() } diff --git a/plugins/questions-resources/src/components/OptionsList.svelte b/plugins/questions-resources/src/components/OptionsList.svelte index 6e1c3dddd8..28075d85e5 100644 --- a/plugins/questions-resources/src/components/OptionsList.svelte +++ b/plugins/questions-resources/src/components/OptionsList.svelte @@ -32,7 +32,7 @@ drop: { from: number, to: number } }>() - function onDragStart (event: DragEvent, index: number): void { + function onDragStart(event: DragEvent, index: number): void { if (!canDrag || event.dataTransfer === null) { return } @@ -44,7 +44,7 @@ draggedIndex = index } - function onDragOver (event: DragEvent, index: number): void { + function onDragOver(event: DragEvent, index: number): void { if (!canDrag || event.dataTransfer === null) { return } @@ -54,7 +54,7 @@ draggedOverIndex = index } - function onDragLeave (event: DragEvent, index: number): void { + function onDragLeave(event: DragEvent, index: number): void { if (!canDrag || event.dataTransfer === null) { return } @@ -67,7 +67,7 @@ draggedOverIndex = undefined } - function onDragEnd (event: DragEvent): void { + function onDragEnd(event: DragEvent): void { if (!canDrag || event.dataTransfer === null) { return } diff --git a/plugins/questions-resources/src/components/OrderingAnswerDataEditor.svelte b/plugins/questions-resources/src/components/OrderingAnswerDataEditor.svelte index 70e2291ea6..b6db864036 100644 --- a/plugins/questions-resources/src/components/OrderingAnswerDataEditor.svelte +++ b/plugins/questions-resources/src/components/OrderingAnswerDataEditor.svelte @@ -59,7 +59,7 @@ let canDrag: boolean = false $: canDrag = submit !== null && answerData !== null && questionData.options.length > 1 - function onDrop (event: OptionsListDropEvent): void { + function onDrop(event: OptionsListDropEvent): void { if (submit === null) { return } diff --git a/plugins/questions-resources/src/components/OrderingQuestionDataEditor.svelte b/plugins/questions-resources/src/components/OrderingQuestionDataEditor.svelte index fff979bfc0..cf5db16ea6 100644 --- a/plugins/questions-resources/src/components/OrderingQuestionDataEditor.svelte +++ b/plugins/questions-resources/src/components/OrderingQuestionDataEditor.svelte @@ -44,7 +44,7 @@ let draft: string = '' - function onOptionLabelKeyDown (event: KeyboardEvent, index: number): void { + function onOptionLabelKeyDown(event: KeyboardEvent, index: number): void { if (submit === undefined) { return } @@ -68,7 +68,7 @@ } } - function onOptionLabelChange (index: number): void { + function onOptionLabelChange(index: number): void { if (submit === undefined) { return } @@ -80,7 +80,7 @@ } } - function appendOption (): void { + function appendOption(): void { if (submit === undefined) { return } @@ -97,7 +97,7 @@ }) } - function removeOptionAt (index: number): void { + function removeOptionAt(index: number): void { if (submit === undefined) { return } @@ -134,7 +134,7 @@ let positionDropdownItems: DropdownTextItem[] = [{ id: '1', label: '1' }] $: positionDropdownItems = questionData.options.map((_, i) => ({ id: String(i + 1), label: String(i + 1) })) - function changePosition (event: MouseEvent, index: number): void { + function changePosition(event: MouseEvent, index: number): void { if (submit === undefined || assessmentData === null) { return } @@ -176,7 +176,7 @@ let canDrag: boolean = false $: canDrag = submit !== undefined && questionData.options.length > 1 - function onDrop (event: OptionsListDropEvent): void { + function onDrop(event: OptionsListDropEvent): void { const { from, to } = event.detail if (submit === undefined || from === to) { return @@ -191,7 +191,7 @@ } } - export function focus (): void { + export function focus(): void { if (submit !== undefined) { inputs[0].focus() } diff --git a/plugins/questions-resources/src/components/QuestionsCollectionEditor.svelte b/plugins/questions-resources/src/components/QuestionsCollectionEditor.svelte index aa79a29738..db51d55053 100644 --- a/plugins/questions-resources/src/components/QuestionsCollectionEditor.svelte +++ b/plugins/questions-resources/src/components/QuestionsCollectionEditor.svelte @@ -58,7 +58,7 @@ } } - async function onClickAdd (e: MouseEvent, index: number | null): Promise { + async function onClickAdd(e: MouseEvent, index: number | null): Promise { if (readonly) { return } diff --git a/plugins/questions-resources/src/components/QuestionsItemEditor.svelte b/plugins/questions-resources/src/components/QuestionsItemEditor.svelte index 5d7d7205af..6572334d66 100644 --- a/plugins/questions-resources/src/components/QuestionsItemEditor.svelte +++ b/plugins/questions-resources/src/components/QuestionsItemEditor.svelte @@ -67,18 +67,18 @@ isSubmitting = false } - async function onTitleChange (): Promise { + async function onTitleChange(): Promise { if (readonly) { return } await submit({ title: draft.title }) } - async function showContextMenu (evt: MouseEvent): Promise { + async function showContextMenu(evt: MouseEvent): Promise { showMenu(evt, { object: draft, excludedActions: [view.action.Open] }) } - export function focus (): void { + export function focus(): void { void editorPromise.then(() => ed?.focus()) } diff --git a/plugins/questions-resources/src/components/SingleChoiceAnswerDataEditor.svelte b/plugins/questions-resources/src/components/SingleChoiceAnswerDataEditor.svelte index 8d2ff53142..6c3cc264a1 100644 --- a/plugins/questions-resources/src/components/SingleChoiceAnswerDataEditor.svelte +++ b/plugins/questions-resources/src/components/SingleChoiceAnswerDataEditor.svelte @@ -34,7 +34,7 @@ export let submit: ((answerData: SingleChoiceAnswerData) => Promise) | null = null export let showDiff: boolean = false - async function toggleIndex (selectedIndex: number): Promise { + async function toggleIndex(selectedIndex: number): Promise { if (submit === null) { return } diff --git a/plugins/questions-resources/src/components/SingleChoiceQuestionDataEditor.svelte b/plugins/questions-resources/src/components/SingleChoiceQuestionDataEditor.svelte index a127361b87..96bafe3c7b 100644 --- a/plugins/questions-resources/src/components/SingleChoiceQuestionDataEditor.svelte +++ b/plugins/questions-resources/src/components/SingleChoiceQuestionDataEditor.svelte @@ -37,7 +37,7 @@ let draft: string = '' - function onOptionLabelKeyDown (event: KeyboardEvent, index: number): void { + function onOptionLabelKeyDown(event: KeyboardEvent, index: number): void { if (submit === undefined) { return } @@ -61,7 +61,7 @@ } } - function onOptionLabelChange (index: number): void { + function onOptionLabelChange(index: number): void { if (submit === undefined) { return } @@ -73,7 +73,7 @@ } } - function appendOption (): void { + function appendOption(): void { if (submit === undefined) { return } @@ -85,7 +85,7 @@ }) } - function removeOptionAt (index: number): void { + function removeOptionAt(index: number): void { if (submit === undefined) { return } @@ -112,7 +112,7 @@ }) } - function toggleIndex (index: number): void { + function toggleIndex(index: number): void { if (submit === undefined || assessmentData === null) { return } @@ -123,7 +123,7 @@ let canDrag: boolean = false $: canDrag = submit !== undefined && questionData.options.length > 1 - function onDrop (event: OptionsListDropEvent): void { + function onDrop(event: OptionsListDropEvent): void { const { from, to } = event.detail if (submit === undefined || from === to) { return @@ -140,7 +140,7 @@ } } - export function focus (): void { + export function focus(): void { if (submit !== undefined) { inputs[0].focus() } diff --git a/plugins/questions-resources/src/functions/MultipleChoiceAssessmentAssess.ts b/plugins/questions-resources/src/functions/MultipleChoiceAssessmentAssess.ts index c5d51863b3..8d6b7b42a4 100644 --- a/plugins/questions-resources/src/functions/MultipleChoiceAssessmentAssess.ts +++ b/plugins/questions-resources/src/functions/MultipleChoiceAssessmentAssess.ts @@ -10,8 +10,8 @@ import type { /** @public */ export const MultipleChoiceAssessmentAssess: AnswerDataAssessFunction< -MultipleChoiceAssessment, -MultipleChoiceAssessmentAnswer + MultipleChoiceAssessment, + MultipleChoiceAssessmentAnswer > = async (answerData, assessmentData) => { return { score: diff --git a/plugins/questions-resources/src/functions/SingleChoiceAssessmentAssess.ts b/plugins/questions-resources/src/functions/SingleChoiceAssessmentAssess.ts index e36b754499..4db76db431 100644 --- a/plugins/questions-resources/src/functions/SingleChoiceAssessmentAssess.ts +++ b/plugins/questions-resources/src/functions/SingleChoiceAssessmentAssess.ts @@ -10,8 +10,8 @@ import type { /** @public */ export const SingleChoiceAssessmentAssess: AnswerDataAssessFunction< -SingleChoiceAssessment, -SingleChoiceAssessmentAnswer + SingleChoiceAssessment, + SingleChoiceAssessmentAnswer > = async (answerData, assessmentData) => { return { score: answerData.selectedIndex === assessmentData.correctIndex ? 100 : 0 diff --git a/plugins/questions-resources/src/plugin.ts b/plugins/questions-resources/src/plugin.ts index f8b7bf1984..e3e126ab32 100644 --- a/plugins/questions-resources/src/plugin.ts +++ b/plugins/questions-resources/src/plugin.ts @@ -51,20 +51,20 @@ export default mergeIds(questionsId, questions, { MultipleChoiceAssessmentDataEditor: '' as Resource>, MultipleChoiceAssessmentDataPresenter: '' as Resource>, MultipleChoiceAssessmentAnswerDataEditor: '' as Resource< - AnswerDataEditor + AnswerDataEditor >, MultipleChoiceAssessmentAnswerDataPresenter: '' as Resource< - AnswerDataPresenter + AnswerDataPresenter >, // MultipleChoiceQuestion MultipleChoiceQuestionDataEditor: '' as Resource>, MultipleChoiceQuestionDataPresenter: '' as Resource>, MultipleChoiceQuestionAnswerDataEditor: '' as Resource< - AnswerDataEditor + AnswerDataEditor >, MultipleChoiceQuestionAnswerDataPresenter: '' as Resource< - AnswerDataPresenter + AnswerDataPresenter >, // OrderingAssessment @@ -72,7 +72,7 @@ export default mergeIds(questionsId, questions, { OrderingAssessmentDataPresenter: '' as Resource>, OrderingAssessmentAnswerDataEditor: '' as Resource>, OrderingAssessmentAnswerDataPresenter: '' as Resource< - AnswerDataPresenter + AnswerDataPresenter >, // OrderingQuestion @@ -85,26 +85,26 @@ export default mergeIds(questionsId, questions, { SingleChoiceAssessmentDataEditor: '' as Resource>, SingleChoiceAssessmentDataPresenter: '' as Resource>, SingleChoiceAssessmentAnswerDataEditor: '' as Resource< - AnswerDataEditor + AnswerDataEditor >, SingleChoiceAssessmentAnswerDataPresenter: '' as Resource< - AnswerDataPresenter + AnswerDataPresenter >, // SingleChoiceQuestion SingleChoiceQuestionDataEditor: '' as Resource>, SingleChoiceQuestionDataPresenter: '' as Resource>, SingleChoiceQuestionAnswerDataEditor: '' as Resource< - AnswerDataEditor + AnswerDataEditor >, SingleChoiceQuestionAnswerDataPresenter: '' as Resource< - AnswerDataPresenter + AnswerDataPresenter > }, function: { // MultipleChoice MultipleChoiceAssessmentAssess: '' as Resource< - AnswerDataAssessFunction + AnswerDataAssessFunction >, MultipleChoiceAssessmentInit: '' as Resource>, MultipleChoiceQuestionInit: '' as Resource>, @@ -116,7 +116,7 @@ export default mergeIds(questionsId, questions, { // SingleChoice SingleChoiceAssessmentAssess: '' as Resource< - AnswerDataAssessFunction + AnswerDataAssessFunction >, SingleChoiceAssessmentInit: '' as Resource>, SingleChoiceQuestionInit: '' as Resource> diff --git a/plugins/questions-resources/src/utils/assessAnswer.ts b/plugins/questions-resources/src/utils/assessAnswer.ts index 8aa63f101a..455758ade2 100644 --- a/plugins/questions-resources/src/utils/assessAnswer.ts +++ b/plugins/questions-resources/src/utils/assessAnswer.ts @@ -12,11 +12,11 @@ export async function assessAnswer, A extends Answer { +> { if (!isAssessment(question)) { return undefined } diff --git a/plugins/questions-resources/src/utils/assessAnswers.ts b/plugins/questions-resources/src/utils/assessAnswers.ts index 7d6c1da02c..63f115fcfa 100644 --- a/plugins/questions-resources/src/utils/assessAnswers.ts +++ b/plugins/questions-resources/src/utils/assessAnswers.ts @@ -11,10 +11,10 @@ export async function assessAnswers ( questionsCollection: Array>, answersCollection: Array, unknown>> ): Promise<{ - assessmentsPassed: number - assessmentsTotal: number - score: Percentage - }> { + assessmentsPassed: number + assessmentsTotal: number + score: Percentage +}> { if (questionsCollection.length === 0) { return { assessmentsPassed: 0, diff --git a/plugins/questions-resources/src/utils/calculateAnswersToPass.ts b/plugins/questions-resources/src/utils/calculateAnswersToPass.ts index 10e0548ac5..eaeb20ae23 100644 --- a/plugins/questions-resources/src/utils/calculateAnswersToPass.ts +++ b/plugins/questions-resources/src/utils/calculateAnswersToPass.ts @@ -24,9 +24,9 @@ export function calculateAnswersToPass ( questionsCollection: Array>, passingScore: Percentage ): { - assessmentsTotal: number - answersNeeded: number - } { + assessmentsTotal: number + answersNeeded: number +} { const assessmentsTotal = questionsCollection.filter(isAssessment).length const answersNeeded = Math.ceil((passingScore * assessmentsTotal) / 100) return { diff --git a/plugins/rating-resources/src/components/RatingActivities.svelte b/plugins/rating-resources/src/components/RatingActivities.svelte index 4338ca9cbe..cf86c7b631 100644 --- a/plugins/rating-resources/src/components/RatingActivities.svelte +++ b/plugins/rating-resources/src/components/RatingActivities.svelte @@ -14,7 +14,7 @@ const monthMax: number = 500 // Color scale: 0 = #ebedf0, low = #c6e48b, mid = #7bc96f, high = #239a3b, max = #196127 - function getColor (val: number, max: number): string { + function getColor(val: number, max: number): string { max = Math.max(max, monthMax) const COLORS = [ 'transparent', @@ -40,7 +40,7 @@ return COLORS[idx] } - function getMax (year: number, rating?: PersonRating): number { + function getMax(year: number, rating?: PersonRating): number { const monthData = rating?.months?.filter((it) => Math.floor(it[0] / 100) === year) if (monthData === undefined) return monthMax return Math.max(...monthData.map((val) => (val[1] ?? 0) + (val[2] ?? 0) + (val[3] ?? 0))) diff --git a/plugins/rating-resources/src/components/RatingEditor.svelte b/plugins/rating-resources/src/components/RatingEditor.svelte index 4dd15d7586..227ede5f4c 100644 --- a/plugins/rating-resources/src/components/RatingEditor.svelte +++ b/plugins/rating-resources/src/components/RatingEditor.svelte @@ -45,16 +45,16 @@ _reactions = reactions } - async function addStarReaction (): Promise { + async function addStarReaction(): Promise { operating = true try { const r = !loading ? _reactions : await client.findAll(ratingPlugin.class.DocReaction, { - attachedTo: _id, - attachedToClass: _class, - reactionType: ReactionKind.Star - }) + attachedTo: _id, + attachedToClass: _class, + reactionType: ReactionKind.Star + }) const existing = r.filter((it) => it.reactionType === ReactionKind.Star && socialIds.has(it.modifiedBy)) if (existing.length > 0) { for (const e of existing) { @@ -75,7 +75,7 @@ } } - async function addEmojiReaction (event: MouseEvent): Promise { + async function addEmojiReaction(event: MouseEvent): Promise { showPopup(emojiPlugin.component.EmojiPopup, {}, event.target as HTMLElement, async (emoji) => { if (emoji?.text === undefined) return @@ -84,11 +84,11 @@ const r = !loading ? _reactions : await client.findAll(ratingPlugin.class.DocReaction, { - attachedTo: _id, - attachedToClass: _class, - reactionType: ReactionKind.Emoji, - text: emoji.text - }) + attachedTo: _id, + attachedToClass: _class, + reactionType: ReactionKind.Emoji, + text: emoji.text + }) const existing = r.filter( (it) => it.reactionType === ReactionKind.Emoji && it.emoji === emoji.text && socialIds.has(it.modifiedBy) @@ -111,7 +111,7 @@ }) } - async function existingReactionClick (reactions: DocReaction[]): Promise { + async function existingReactionClick(reactions: DocReaction[]): Promise { let removed = false for (const reaction of reactions) { if (account.fullSocialIds.some((it) => it._id === reaction.modifiedBy)) { diff --git a/plugins/rating-resources/src/components/RatingWidget.svelte b/plugins/rating-resources/src/components/RatingWidget.svelte index b0e52b5ac9..9641474ae7 100644 --- a/plugins/rating-resources/src/components/RatingWidget.svelte +++ b/plugins/rating-resources/src/components/RatingWidget.svelte @@ -22,7 +22,7 @@ { limit: 5000, sort: { modifiedOn: SortingOrder.Descending } } ) - function groupReactions (reactions: DocReaction[]): { + function groupReactions(reactions: DocReaction[]): { _class: Ref> objects: { _id: Ref diff --git a/plugins/recorder-resources/src/components/Draggable.svelte b/plugins/recorder-resources/src/components/Draggable.svelte index 22c9254417..9594dc4b92 100644 --- a/plugins/recorder-resources/src/components/Draggable.svelte +++ b/plugins/recorder-resources/src/components/Draggable.svelte @@ -71,7 +71,7 @@ } }) - function handleDragStart (event: MouseEvent): void { + function handleDragStart(event: MouseEvent): void { dragStartX = event.clientX dragStartY = event.clientY dragOffsetX = event.clientX - posX @@ -81,7 +81,7 @@ window.addEventListener('mouseup', handleDragEnd) } - function handleDragEnd (): void { + function handleDragEnd(): void { window.removeEventListener('mousemove', handleDrag) window.removeEventListener('mouseup', handleDragEnd) @@ -93,7 +93,7 @@ dragging = false } - function handleDrag (event: MouseEvent): void { + function handleDrag(event: MouseEvent): void { if (!dragging) { if (Math.abs(event.clientX - dragStartX) < 5 && Math.abs(event.clientY - dragStartY) < 5) { return diff --git a/plugins/recorder-resources/src/components/RecorderExt.svelte b/plugins/recorder-resources/src/components/RecorderExt.svelte index db05c0cfc6..0abc3560c2 100644 --- a/plugins/recorder-resources/src/components/RecorderExt.svelte +++ b/plugins/recorder-resources/src/components/RecorderExt.svelte @@ -29,7 +29,7 @@ $: state = $recorderState.state $: elapsedTime = $recorderState.elapsedTime - function handleRecClick (): void { + function handleRecClick(): void { void record({}) } diff --git a/plugins/recorder-resources/src/components/RecordingPopup.svelte b/plugins/recorder-resources/src/components/RecordingPopup.svelte index cfae32d189..9f7b3d7c0b 100644 --- a/plugins/recorder-resources/src/components/RecordingPopup.svelte +++ b/plugins/recorder-resources/src/components/RecordingPopup.svelte @@ -96,7 +96,7 @@ video.srcObject = $canvasStream } - async function updateName (screenShareEnabled: boolean): Promise { + async function updateName(screenShareEnabled: boolean): Promise { name = (await formatRecordingName( screenShareEnabled ? plugin.string.ScreenRecordingName : plugin.string.CameraRecordingName, @@ -104,7 +104,7 @@ )) + '.mp4' } - async function handleCompleteRecording (): Promise { + async function handleCompleteRecording(): Promise { if (name.length === 0) return const { @@ -153,7 +153,7 @@ let messageBox: PopupResult | null = null - async function handleCancelRecording (): Promise { + async function handleCancelRecording(): Promise { if (canClosePopup()) { await cancelRecording() @@ -187,15 +187,15 @@ ) } - export function canClose (): boolean { + export function canClose(): boolean { return false } - function canClosePopup (): boolean { + function canClosePopup(): boolean { return state.state === 'idle' || state.state === 'ready' } - async function handleCamSetting (e: MouseEvent): Promise { + async function handleCamSetting(e: MouseEvent): Promise { const mediaDevices = await getMediaDevices(false, true) const devices = mediaDevices.devices.filter((d) => d.kind === 'videoinput') @@ -216,7 +216,7 @@ }) } - async function handleMicSetting (e: MouseEvent): Promise { + async function handleMicSetting(e: MouseEvent): Promise { const mediaDevices = await getMediaDevices(true, false) const devices = mediaDevices.devices.filter((d) => d.kind === 'audioinput') @@ -237,11 +237,11 @@ }) } - async function handleShareSettings (e: MouseEvent): Promise { + async function handleShareSettings(e: MouseEvent): Promise { showPopup(ShareSettingsPopup, {}, eventToHTMLElement(e)) } - function handleSettingsClick (e: MouseEvent): void { + function handleSettingsClick(e: MouseEvent): void { showPopup(SettingsPopup, { value: [] }, eventToHTMLElement(e)) } @@ -255,7 +255,7 @@ $: updateContainerSize(rootWidth, rootHeight, $canvasWidth, $canvasHeight) - function updateContainerSize (rootWidth: number, rootHeight: number, canvasWidth: number, canvasHeight: number): void { + function updateContainerSize(rootWidth: number, rootHeight: number, canvasWidth: number, canvasHeight: number): void { const scaleFactorX = rootWidth / canvasWidth const scaleFactorY = rootHeight / canvasHeight @@ -264,13 +264,13 @@ containerHeight = Math.floor(canvasHeight * containerScaleFactor) } - function handleContainerResize (element: Element): void { + function handleContainerResize(element: Element): void { const { width, height } = element.getBoundingClientRect() rootWidth = width rootHeight = height } - function handleKeyDown (e: KeyboardEvent): void { + function handleKeyDown(e: KeyboardEvent): void { if (state?.state === 'stopping') return if (messageBox !== null) return diff --git a/plugins/request-resources/src/components/RequestActions.svelte b/plugins/request-resources/src/components/RequestActions.svelte index 0f68e281de..ba2ae52b56 100644 --- a/plugins/request-resources/src/components/RequestActions.svelte +++ b/plugins/request-resources/src/components/RequestActions.svelte @@ -37,7 +37,7 @@ const approvable = value.requested.filter((a) => a === myPerson).length > value.approved.filter((a) => a === myPerson).length - async function approve () { + async function approve() { await saveComment() await client.update(value, { $push: { @@ -48,7 +48,7 @@ $: disabled = commentIsEmpty(message, attachments) - async function reject () { + async function reject() { await saveComment() await client.update(value, { rejected: myPerson, @@ -59,12 +59,12 @@ let message: Markup = EmptyMarkup let attachments: number | undefined = 0 - async function onUpdate (event: CustomEvent>) { + async function onUpdate(event: CustomEvent>) { message = event.detail.message attachments = event.detail.attachments } - async function saveComment (): Promise { + async function saveComment(): Promise { const _id = await client.addCollection( chunter.class.ChatMessage, value.space, @@ -83,7 +83,7 @@ loading = false } - async function comment (): Promise { + async function comment(): Promise { await client.addCollection(chunter.class.ChatMessage, value.space, value._id, value._class, 'comments', { message, attachments @@ -92,7 +92,7 @@ loading = false } - function commentIsEmpty (message: string, attachments: number | undefined): boolean { + function commentIsEmpty(message: string, attachments: number | undefined): boolean { return isEmptyMarkup(message) && !((attachments ?? 0) > 0) } @@ -122,7 +122,7 @@ ] let loading = false - async function cancel () { + async function cancel() { await client.update(value, { status: RequestStatus.Cancelled }) diff --git a/plugins/request-resources/src/components/RequestDetail.svelte b/plugins/request-resources/src/components/RequestDetail.svelte index 20cf89fbb9..1538803148 100644 --- a/plugins/request-resources/src/components/RequestDetail.svelte +++ b/plugins/request-resources/src/components/RequestDetail.svelte @@ -47,7 +47,7 @@ comment?: RequestDecisionComment } - function convert (value: Request, comments: Map | undefined, RequestDecisionComment>): RequestDecision[] { + function convert(value: Request, comments: Map | undefined, RequestDecisionComment>): RequestDecision[] { const res: RequestDecision[] = [] for (const emp of value.requested) { const decision = value.rejected === emp ? false : value.approved.includes(emp) ? true : undefined diff --git a/plugins/request-resources/src/components/RequestStatusPresenter.svelte b/plugins/request-resources/src/components/RequestStatusPresenter.svelte index da68e1eaa1..eab1253087 100644 --- a/plugins/request-resources/src/components/RequestStatusPresenter.svelte +++ b/plugins/request-resources/src/components/RequestStatusPresenter.svelte @@ -20,7 +20,7 @@ export let value: RequestStatus - function getBooleanLabel (value: RequestStatus): IntlString { + function getBooleanLabel(value: RequestStatus): IntlString { if (value === RequestStatus.Completed) return request.string.Completed if (value === RequestStatus.Rejected) return request.string.Rejected return request.string.Cancelled diff --git a/plugins/setting-resources/src/components/AnonymousGuestSpaceInput.svelte b/plugins/setting-resources/src/components/AnonymousGuestSpaceInput.svelte index b04153a91a..889994015d 100644 --- a/plugins/setting-resources/src/components/AnonymousGuestSpaceInput.svelte +++ b/plugins/setting-resources/src/components/AnonymousGuestSpaceInput.svelte @@ -31,7 +31,7 @@ let persistedSelectedKeys: string[] = [] let docById: Map = new Map() - async function loadSpaces (): Promise { + async function loadSpaces(): Promise { if (group.spaceClass === undefined) { dropdownItems = [] selectedKeys = [] @@ -63,7 +63,7 @@ } } - async function handleSelected (e: CustomEvent): Promise { + async function handleSelected(e: CustomEvent): Promise { const nextKeys = new Set(e.detail) const prevKeys = new Set(persistedSelectedKeys) const toEnable = [...nextKeys].filter((k) => !prevKeys.has(k)) diff --git a/plugins/setting-resources/src/components/AssociationEditor.svelte b/plugins/setting-resources/src/components/AssociationEditor.svelte index 473b890232..dcf8b660c4 100644 --- a/plugins/setting-resources/src/components/AssociationEditor.svelte +++ b/plugins/setting-resources/src/components/AssociationEditor.svelte @@ -49,7 +49,7 @@ .map((p) => p.attachTo) ) - function filterClasses ( + function filterClasses( descendants: Set>>, viewlets: Set>>, exclude: Ref>[] @@ -102,7 +102,7 @@ $: classA = isEmptyClass(classARef) ? undefined : hierarchy.getClass(classARef as Ref>) $: classB = isEmptyClass(classBRef) ? undefined : hierarchy.getClass(classBRef as Ref>) - function isEmptyClass (ref: Ref> | undefined): boolean { + function isEmptyClass(ref: Ref> | undefined): boolean { return ref === undefined || ref !== '' } @@ -110,7 +110,7 @@ $: fill(association) - function fill (association: Association | Data): void { + function fill(association: Association | Data): void { classBRef = !isEmptyClass(association.classB) ? association.classB : undefined classARef = !isEmptyClass(association.classA) ? association.classA : undefined nameA = association.nameA @@ -118,13 +118,13 @@ automationOnly = association.automationOnly ?? false } - function isAssociation (data: Data | Association): data is Association { + function isAssociation(data: Data | Association): data is Association { return (data as Association)._id !== undefined } const dispatch = createEventDispatcher() - async function save (): Promise { + async function save(): Promise { if (classBRef === undefined || classARef === undefined) { return } diff --git a/plugins/setting-resources/src/components/AvailableSpacesInput.svelte b/plugins/setting-resources/src/components/AvailableSpacesInput.svelte index 06cf1418b4..8e869a5a34 100644 --- a/plugins/setting-resources/src/components/AvailableSpacesInput.svelte +++ b/plugins/setting-resources/src/components/AvailableSpacesInput.svelte @@ -36,11 +36,11 @@ let persistedSelectedKeys: string[] = [] let docById: Map = new Map() - function normalizeAutoJoinForRoles (roles: AccountRole[]): AccountRole[] | undefined { + function normalizeAutoJoinForRoles(roles: AccountRole[]): AccountRole[] | undefined { return roles.length > 0 ? [...roles] : undefined } - async function loadSpaces (): Promise { + async function loadSpaces(): Promise { if (group.spaceClass === undefined) { dropdownItems = [] selectedKeys = [] @@ -72,7 +72,7 @@ } } - async function handleSelected (e: CustomEvent): Promise { + async function handleSelected(e: CustomEvent): Promise { const nextKeys = new Set(e.detail) const prevKeys = new Set(persistedSelectedKeys) const toEnable = [...nextKeys].filter((k) => !prevKeys.has(k)) diff --git a/plugins/setting-resources/src/components/Backup.svelte b/plugins/setting-resources/src/components/Backup.svelte index 5ee991314b..1ba4a81e0c 100644 --- a/plugins/setting-resources/src/components/Backup.svelte +++ b/plugins/setting-resources/src/components/Backup.svelte @@ -41,22 +41,22 @@ const workspaceId = workspaceDataId ?? workspaceUuid let backupInfo: - | { - files: { name: string, size: number }[] - extraBlobs: { name: string, size: number, contentType: string }[] - extraBlobsTotal?: number - error?: string - info?: BackupInfo - } - | undefined + | { + files: { name: string, size: number }[] + extraBlobs: { name: string, size: number, contentType: string }[] + extraBlobsTotal?: number + error?: string + info?: BackupInfo + } + | undefined $: fileSizes = new Map(backupInfo?.files?.map((it) => [it.name, it.size ?? 0])) - function formatDate (timestamp: number): string { + function formatDate(timestamp: number): string { return new Date(timestamp).toLocaleString() } - function getSize (size: number): string { + function getSize(size: number): string { const mbSize = size / (1024 * 1024) if (size < 1024) { @@ -69,7 +69,7 @@ return `${Math.round(mbSize * 100) / 100}Mb` } - function getSnapshotSummary (snapshot: BackupSnapshot): string { + function getSnapshotSummary(snapshot: BackupSnapshot): string { let size = 0 Object.values(snapshot.domains).forEach((domain) => { @@ -80,7 +80,7 @@ return getSize(size) } - function getBackupSize (files: { name: string, size: number }[]): string { + function getBackupSize(files: { name: string, size: number }[]): string { let size = 0 files.forEach((file) => { @@ -90,7 +90,7 @@ return getSize(size) } - async function updateBackupInfo (): Promise { + async function updateBackupInfo(): Promise { if (owner && backupUrl !== '') { try { const response = await fetch(`${backupUrl}/${workspaceId}/index.json`, { @@ -111,7 +111,7 @@ void updateBackupInfo() }) - function formatAgoHours (timestamp: number): string { + function formatAgoHours(timestamp: number): string { const date = new Date(timestamp) const now = new Date() const diffMs = now.getTime() - date.getTime() @@ -127,11 +127,11 @@ return '' } - function getBackupFileUrl (filename: string): string { + function getBackupFileUrl(filename: string): string { return `${backupUrl}/${workspaceId}/${filename}` } - async function doDownload (downloadUrl: string, filename?: string): Promise { + async function doDownload(downloadUrl: string, filename?: string): Promise { const a = document.createElement('a') try { const response = await fetch(downloadUrl, { @@ -160,11 +160,11 @@ } } - async function downloadFile (filename: string): Promise { + async function downloadFile(filename: string): Promise { const url = getBackupFileUrl(filename) await doDownload(url, filename) } - async function downloadBlobFile (filename: string): Promise { + async function downloadBlobFile(filename: string): Promise { const url = getFileUrl(filename) await doDownload(url, filename) } @@ -176,7 +176,7 @@ let scriptCopied = false let tokenCopied = false - function copyToken (): void { + function copyToken(): void { void copyTextToClipboard(token).then(() => { tokenCopied = true setTimeout(() => { @@ -185,12 +185,12 @@ }) } - function backupArchiveName (): string { + function backupArchiveName(): string { const date = new Date().toISOString().slice(0, 10) return `huly-backup-${workspaceId}-${date}.zip` } - async function downloadFullBackup (): Promise { + async function downloadFullBackup(): Promise { if (downloading) { return } @@ -233,7 +233,7 @@ } } - function copyBackupScript (): void { + function copyBackupScript(): void { const files = collectBackupFileNames(backupInfo) const script = generateBackupScript({ baseUrl: downloadBase, diff --git a/plugins/setting-resources/src/components/ClassAttributeRow.svelte b/plugins/setting-resources/src/components/ClassAttributeRow.svelte index 0a13a808ee..d958e4c707 100644 --- a/plugins/setting-resources/src/components/ClassAttributeRow.svelte +++ b/plugins/setting-resources/src/components/ClassAttributeRow.svelte @@ -26,21 +26,21 @@ export let hovered: boolean = false export let attributeMapper: - | { - component: AnySvelteComponent - label: IntlString - props: Record - } - | undefined = undefined + | { + component: AnySvelteComponent + label: IntlString + props: Record + } + | undefined = undefined const client = getClient() - async function getEnumName (type: Type): Promise { + async function getEnumName(type: Type): Promise { const ref = (type as EnumOf).of const res = await client.findOne(core.class.Enum, { _id: ref }) return res?.name } - function getArrayName (type: Type): IntlString | undefined { + function getArrayName(type: Type): IntlString | undefined { const ref = (type as ArrOf).of if (client.getHierarchy().hasClass((ref as RefTo).to)) { const res = client.getHierarchy().getClass((ref as RefTo).to) diff --git a/plugins/setting-resources/src/components/ClassAttributes.svelte b/plugins/setting-resources/src/components/ClassAttributes.svelte index b4be28df36..128f975527 100644 --- a/plugins/setting-resources/src/components/ClassAttributes.svelte +++ b/plugins/setting-resources/src/components/ClassAttributes.svelte @@ -49,12 +49,12 @@ export let isCard: boolean = false export let showAll: boolean = false export let attributeMapper: - | { - component: AnySvelteComponent - label: IntlString - props: Record - } - | undefined = undefined + | { + component: AnySvelteComponent + label: IntlString + props: Record + } + | undefined = undefined const client = getClient() const hierarchy = client.getHierarchy() @@ -78,7 +78,7 @@ attributes = getCustomAttributes(_class) }) - function getCustomAttributes (_class: Ref>): AnyAttribute[] { + function getCustomAttributes(_class: Ref>): AnyAttribute[] { const cl = hierarchy.getClass(_class) const attributes = Array.from( hierarchy.getAllAttributes(_class, _class === ofClass ? core.class.Doc : cl.extends).values() @@ -90,7 +90,7 @@ return attributes } - export function createAttribute (ev: MouseEvent): void { + export function createAttribute(ev: MouseEvent): void { if (disabled) { return } @@ -102,7 +102,7 @@ }) } - function editLabel (evt: MouseEvent): void { + function editLabel(evt: MouseEvent): void { if (disabled) { return } diff --git a/plugins/setting-resources/src/components/ClassAttributesList.svelte b/plugins/setting-resources/src/components/ClassAttributesList.svelte index e65ab2cfc9..77094a4c47 100644 --- a/plugins/setting-resources/src/components/ClassAttributesList.svelte +++ b/plugins/setting-resources/src/components/ClassAttributesList.svelte @@ -52,12 +52,12 @@ export let showAll: boolean = false export let attributeMapper: - | { - component: AnySvelteComponent - label: IntlString - props: Record - } - | undefined = undefined + | { + component: AnySvelteComponent + label: IntlString + props: Record + } + | undefined = undefined const dispatch = createEventDispatcher() @@ -74,7 +74,7 @@ }) $: attributes = getCustomAttributes(_class) - function getCustomAttributes (_class: Ref>): AnyAttribute[] { + function getCustomAttributes(_class: Ref>): AnyAttribute[] { const cl = hierarchy.getClass(_class) const to = showAll ? ofClass : _class === ofClass && !notUseOfClass ? core.class.Doc : cl.extends const attributes = Array.from(hierarchy.getAllAttributes(_class, to).values()).sort((a, b) => { @@ -91,15 +91,15 @@ attributes = getCustomAttributes(_class) }) - function update (): void { + function update(): void { attributes = getCustomAttributes(_class) } - export async function editAttribute (attribute: AnyAttribute, exist: boolean): Promise { + export async function editAttribute(attribute: AnyAttribute, exist: boolean): Promise { showPopup(EditAttribute, { attribute, exist }, 'top', update) } - export async function overrideAttribute (source: AnyAttribute): Promise { + export async function overrideAttribute(source: AnyAttribute): Promise { const newSeq = await client.createDoc(core.class.CustomSequence, core.space.Workspace, { prefix: '', sequence: 0, @@ -116,7 +116,7 @@ } } - export async function removeAttribute (attribute: AnyAttribute, exist: boolean): Promise { + export async function removeAttribute(attribute: AnyAttribute, exist: boolean): Promise { showPopup( MessageBox, { @@ -131,7 +131,7 @@ ) } - async function showMenu (ev: MouseEvent, attribute: AnyAttribute): Promise { + async function showMenu(ev: MouseEvent, attribute: AnyAttribute): Promise { hovered = attribute._id const exist = (await client.findOne(attribute.attributeOf, { [attribute.name]: { $exists: true } })) !== undefined const actions: Action[] = [ @@ -177,7 +177,7 @@ }) } - function getAttrType (type: Type): IntlString | undefined { + function getAttrType(type: Type): IntlString | undefined { switch (type._class) { case core.class.RefTo: return client.getHierarchy().getClass((type as RefTo).to)?.label @@ -192,7 +192,7 @@ } } - function toRank (str: string | undefined): Rank | undefined { + function toRank(str: string | undefined): Rank | undefined { if (str === undefined) return if (str.startsWith('0|')) { return str @@ -200,7 +200,7 @@ return '0|' + str.replaceAll(/[-:_]/g, '').toLowerCase() } - async function moveHadler (e: CustomEvent): Promise { + async function moveHadler(e: CustomEvent): Promise { const { item, prev, next } = e.detail const rank = makeRank(prev?.rank ?? toRank(prev?._id), next?.rank ?? toRank(next?._id)) await client.update(item, { rank }) diff --git a/plugins/setting-resources/src/components/ClassHierarchy.svelte b/plugins/setting-resources/src/components/ClassHierarchy.svelte index d2024d0574..04fd49be9f 100644 --- a/plugins/setting-resources/src/components/ClassHierarchy.svelte +++ b/plugins/setting-resources/src/components/ClassHierarchy.svelte @@ -29,7 +29,7 @@ const dispatch = createEventDispatcher() let descendants = new Map>, Ref>[]>() - function getDescendants (_class: Ref>): Ref>[] { + function getDescendants(_class: Ref>): Ref>[] { const hierarchy = client.getHierarchy() const result: Ref>[] = [] const desc = hierarchy.getDescendants(_class) @@ -52,7 +52,7 @@ return result } - function fillDescendants (classes: Ref>[]): void { + function fillDescendants(classes: Ref>[]): void { for (const cl of classes) { descendants.set(cl, getDescendants(cl)) } diff --git a/plugins/setting-resources/src/components/ClassSetting.svelte b/plugins/setting-resources/src/components/ClassSetting.svelte index 62a6aca39d..04bfab03ba 100644 --- a/plugins/setting-resources/src/components/ClassSetting.svelte +++ b/plugins/setting-resources/src/components/ClassSetting.svelte @@ -39,12 +39,12 @@ export let ofClass: Ref> | undefined = undefined export let attributeMapper: - | { - component: AnySvelteComponent - label: IntlString - props: Record - } - | undefined = undefined + | { + component: AnySvelteComponent + label: IntlString + props: Record + } + | undefined = undefined export let withoutHeader = false export let useOfClassAttributes = true diff --git a/plugins/setting-resources/src/components/Configure.svelte b/plugins/setting-resources/src/components/Configure.svelte index 478ffa485a..02dada2d04 100644 --- a/plugins/setting-resources/src/components/Configure.svelte +++ b/plugins/setting-resources/src/components/Configure.svelte @@ -28,7 +28,7 @@ const client = getClient() - async function change (config: PluginConfiguration, value: boolean): Promise { + async function change(config: PluginConfiguration, value: boolean): Promise { await client.update(config, { enabled: value }) diff --git a/plugins/setting-resources/src/components/CreateAttribute.svelte b/plugins/setting-resources/src/components/CreateAttribute.svelte index d07b0c100d..9ec990e18c 100644 --- a/plugins/setting-resources/src/components/CreateAttribute.svelte +++ b/plugins/setting-resources/src/components/CreateAttribute.svelte @@ -61,7 +61,7 @@ const client = getClient() const hierarchy = client.getHierarchy() - async function save (): Promise { + async function save(): Promise { if (type === undefined) return const data: Data = { @@ -86,7 +86,7 @@ clearSettingsStore() } - function getTypes (): DropdownIntlItem[] { + function getTypes(): DropdownIntlItem[] { const descendants = hierarchy.getDescendants(core.class.Type) const res: DropdownIntlItem[] = [] for (const descendant of descendants) { @@ -106,7 +106,7 @@ $: selectType(selectedType) - function selectType (type: Ref>> | undefined): void { + function selectType(type: Ref>> | undefined): void { if (type === undefined) return const _class = hierarchy.getClass(type) const editor = hierarchy.as(_class, view.mixin.ObjectEditor) @@ -129,7 +129,7 @@ extra = e.detail?.extra ?? extra } } - function setIcon (): void { + function setIcon(): void { showPopup(IconPicker, { icon, showEmoji: false, showColor: false }, 'top', async (res) => { if (res !== undefined) { icon = res.icon diff --git a/plugins/setting-resources/src/components/CreateAttributePopup.svelte b/plugins/setting-resources/src/components/CreateAttributePopup.svelte index 35c0d62833..6106bd4d6a 100644 --- a/plugins/setting-resources/src/components/CreateAttributePopup.svelte +++ b/plugins/setting-resources/src/components/CreateAttributePopup.svelte @@ -60,7 +60,7 @@ const dispatch = createEventDispatcher() - async function save (): Promise { + async function save(): Promise { if (type === undefined) return const data: Data = { @@ -84,7 +84,7 @@ dispatch('close') } - function getTypes (): DropdownIntlItem[] { + function getTypes(): DropdownIntlItem[] { const descendants = hierarchy.getDescendants(core.class.Type) const res: DropdownIntlItem[] = [] for (const descendant of descendants) { @@ -103,7 +103,7 @@ $: selectType(selectedType) - function selectType (type: Ref>> | undefined): void { + function selectType(type: Ref>> | undefined): void { if (type === undefined) return const _class = hierarchy.getClass(type) const editor = hierarchy.as(_class, view.mixin.ObjectEditor) @@ -127,7 +127,7 @@ } } - function setIcon (): void { + function setIcon(): void { showPopup(IconPicker, { icon, showEmoji: false, showColor: false }, 'top', async (res) => { if (res !== undefined) { icon = res.icon diff --git a/plugins/setting-resources/src/components/CreateMixin.svelte b/plugins/setting-resources/src/components/CreateMixin.svelte index b5190dbc83..2dacf7f363 100644 --- a/plugins/setting-resources/src/components/CreateMixin.svelte +++ b/plugins/setting-resources/src/components/CreateMixin.svelte @@ -26,7 +26,7 @@ const client = getClient() const dispatch = createEventDispatcher() - async function save (): Promise { + async function save(): Promise { const data: Data>> = { extends: value._id, label: getEmbeddedLabel(name), diff --git a/plugins/setting-resources/src/components/CreateRelation.svelte b/plugins/setting-resources/src/components/CreateRelation.svelte index d616ffb526..68bd62fca5 100644 --- a/plugins/setting-resources/src/components/CreateRelation.svelte +++ b/plugins/setting-resources/src/components/CreateRelation.svelte @@ -39,7 +39,7 @@ .map((p) => p.attachTo) ) - function filterClasses ( + function filterClasses( descendants: Set>>, viewlets: Set>>, exclude: Ref>[] @@ -98,7 +98,7 @@ let nameB: string = '' let automationOnly = false - async function save (): Promise { + async function save(): Promise { if (classBRef === undefined || classARef === undefined) { return } @@ -132,7 +132,7 @@ $: classA = getAClass(aClass) - function getAClass (aClass: Ref> | undefined): DropdownIntlItem | undefined { + function getAClass(aClass: Ref> | undefined): DropdownIntlItem | undefined { if (aClass === undefined) { return undefined } diff --git a/plugins/setting-resources/src/components/EditClassLabel.svelte b/plugins/setting-resources/src/components/EditClassLabel.svelte index 040a30e806..d6791def24 100644 --- a/plugins/setting-resources/src/components/EditClassLabel.svelte +++ b/plugins/setting-resources/src/components/EditClassLabel.svelte @@ -27,7 +27,7 @@ const client = getClient() const dispatch = createEventDispatcher() - async function save (newLabel: IntlString): Promise { + async function save(newLabel: IntlString): Promise { const update: DocumentUpdate> = {} if (newLabel !== clazz.label) { update.label = newLabel diff --git a/plugins/setting-resources/src/components/EditEnum.svelte b/plugins/setting-resources/src/components/EditEnum.svelte index 01d38f09e0..b8ba7d1e83 100644 --- a/plugins/setting-resources/src/components/EditEnum.svelte +++ b/plugins/setting-resources/src/components/EditEnum.svelte @@ -50,7 +50,7 @@ $: matched = values.includes(newValue.trim()) - async function save (): Promise { + async function save(): Promise { if (value === undefined) { const _id = await client.createDoc(core.class.Enum, core.space.Model, { name, @@ -66,7 +66,7 @@ } } - function add (): void { + function add(): void { newValue = newValue.trim() if (newValue.length === 0) return if (matched) return @@ -75,7 +75,7 @@ newValue = '' } - function remove (value: string): void { + function remove(value: string): void { values = values.filter((p) => p !== value) } @@ -94,7 +94,7 @@ let opened: boolean = false let inputFile: HTMLInputElement - function processText (text: string): void { + function processText(text: string): void { const newValues = text.split('\n').map((it) => it.trim()) for (const v of newValues) { if (!values.includes(v)) { @@ -104,12 +104,12 @@ values = values newValue = '' } - async function processFile (file: File): Promise { + async function processFile(file: File): Promise { const text = await file.text() processText(text) } - function fileSelected (): void { + function fileSelected(): void { const list = inputFile.files if (list === null || list.length === 0) return for (let index = 0; index < list.length; index++) { @@ -121,7 +121,7 @@ inputFile.value = '' } - function fileDrop (e: DragEvent): void { + function fileDrop(e: DragEvent): void { dragover = false const list = e.dataTransfer?.files if (list === undefined || list.length === 0) return @@ -132,7 +132,7 @@ } } } - function pasteAction (evt: ClipboardEvent): void { + function pasteAction(evt: ClipboardEvent): void { const items = evt.clipboardData?.items ?? [] for (const index in items) { const item = items[index] @@ -144,7 +144,7 @@ } } } - async function handleClipboard (): Promise { + async function handleClipboard(): Promise { const text = await navigator.clipboard.readText() processText(text) } @@ -179,7 +179,7 @@ } } - function showConfirmationDialog (): void { + function showConfirmationDialog(): void { const isEnumEmpty = values.length === 0 const oldValues = value?.enumValues ?? [] const isEnumSame = values.length === oldValues.length && values.every((it, i) => it === oldValues[i]) diff --git a/plugins/setting-resources/src/components/EditRelation.svelte b/plugins/setting-resources/src/components/EditRelation.svelte index b3cf303e67..9cae14d754 100644 --- a/plugins/setting-resources/src/components/EditRelation.svelte +++ b/plugins/setting-resources/src/components/EditRelation.svelte @@ -58,7 +58,7 @@ const label = items.find((item) => item.id === association?.type)?.label ?? ('' as IntlString) - async function remove (): Promise { + async function remove(): Promise { showPopup(MessageBox, { label: view.string.DeleteObject, message: view.string.DeleteObjectConfirm, diff --git a/plugins/setting-resources/src/components/EnumSetting.svelte b/plugins/setting-resources/src/components/EnumSetting.svelte index 000e7e514b..e7e13bf952 100644 --- a/plugins/setting-resources/src/components/EnumSetting.svelte +++ b/plugins/setting-resources/src/components/EnumSetting.svelte @@ -47,7 +47,7 @@ } }) - function create () { + function create() { showPopup(setting.component.EditEnum, { title: setting.string.CreateEnum }, 'top') } diff --git a/plugins/setting-resources/src/components/EnumValues.svelte b/plugins/setting-resources/src/components/EnumValues.svelte index b7281263d0..99851d65bb 100644 --- a/plugins/setting-resources/src/components/EnumValues.svelte +++ b/plugins/setting-resources/src/components/EnumValues.svelte @@ -44,7 +44,7 @@ let newItem: boolean = false let opened: boolean = false - async function add () { + async function add() { if (newValue.trim().length === 0) return if (matched) return await client.update(value, { @@ -54,7 +54,7 @@ newItem = false } - async function remove (target: string) { + async function remove(target: string) { await client.update(value, { $pull: { enumValues: target } }) @@ -71,12 +71,12 @@ // $: filtered = newValue.length > 0 ? value.enumValues.filter((it) => it.includes(newValue)) : [] $: matched = value.enumValues.includes(newValue.trim()) - async function handleClipboard (): Promise { + async function handleClipboard(): Promise { const text = await navigator.clipboard.readText() processText(text) } - async function processText (text: string): Promise { + async function processText(text: string): Promise { const newValues = text.split('\n').map((it) => it.trim()) for (const v of newValues) { if (!value.enumValues.includes(v)) { @@ -88,12 +88,12 @@ newValue = '' } let inputFile: HTMLInputElement - async function processFile (file: File): Promise { + async function processFile(file: File): Promise { const text = await file.text() processText(text) } - function fileSelected () { + function fileSelected() { const list = inputFile.files if (list === null || list.length === 0) return for (let index = 0; index < list.length; index++) { @@ -124,13 +124,13 @@ // ) // } - async function update (value: Enum): Promise { + async function update(value: Enum): Promise { await client.update(value, { name: value.name }) } - async function onDrop () { + async function onDrop() { await client.update(value, { enumValues: value.enumValues }) } diff --git a/plugins/setting-resources/src/components/EnumValuesList.svelte b/plugins/setting-resources/src/components/EnumValuesList.svelte index 8133048fd3..749141f4e3 100644 --- a/plugins/setting-resources/src/components/EnumValuesList.svelte +++ b/plugins/setting-resources/src/components/EnumValuesList.svelte @@ -34,7 +34,7 @@ let opened: number | undefined = undefined const elements: HTMLElement[] = [] - function dragswap (ev: MouseEvent, item: string): boolean { + function dragswap(ev: MouseEvent, item: string): boolean { const s = values.findIndex((p) => p === selected) const i = values.findIndex((p) => p === item) if (i < s) { @@ -45,7 +45,7 @@ return false } - function dragover (ev: MouseEvent, item: string): void { + function dragover(ev: MouseEvent, item: string): void { const s = values.findIndex((p) => p === selected) const i = values.findIndex((p) => p === item) if (dragswap(ev, item)) { @@ -55,11 +55,11 @@ const dispatch = createEventDispatcher() - async function remove (target: string): Promise { + async function remove(target: string): Promise { dispatch('remove', target) } - async function onDrop (): Promise { + async function onDrop(): Promise { dispatch('drop') } @@ -77,7 +77,7 @@ } ] - function openPopup (ev: MouseEvent, n: number) { + function openPopup(ev: MouseEvent, n: number) { if (opened === undefined) { opened = n showPopup(ModernPopup, { items }, eventToHTMLElement(ev), (result) => { @@ -102,7 +102,7 @@ } } - function update (): void { + function update(): void { dispatch('update', values) } diff --git a/plugins/setting-resources/src/components/General.svelte b/plugins/setting-resources/src/components/General.svelte index 9aaee0ad0a..2467cb2492 100644 --- a/plugins/setting-resources/src/components/General.svelte +++ b/plugins/setting-resources/src/components/General.svelte @@ -65,7 +65,7 @@ void loadWorkspaceName() - async function loadWorkspaceName (): Promise { + async function loadWorkspaceName(): Promise { const res = await accountClient.getWorkspaceInfo() workspaceUrl = res.url @@ -75,7 +75,7 @@ loading = false } - async function handleEditName (): Promise { + async function handleEditName(): Promise { if (editNameDisabled) { return } @@ -87,12 +87,12 @@ isEditingName = !isEditingName } - function handleCancelEditName (): void { + function handleCancelEditName(): void { name = oldName isEditingName = false } - async function handleDelete (): Promise { + async function handleDelete(): Promise { showPopup(MessageBox, { label: settingsRes.string.DeleteWorkspace, message: settingsRes.string.DeleteWorkspaceConfirm, @@ -118,7 +118,7 @@ } ) - async function handleAvatarDone (): Promise { + async function handleAvatarDone(): Promise { const existing = await client.findOne(settingsRes.class.WorkspaceSetting, { _id: settingsRes.ids.WorkspaceSetting }) if (existing !== undefined) { const avatar = await avatarEditor.createAvatar() @@ -153,7 +153,7 @@ } ) - async function changePasswordAgingRules (val: number | undefined): Promise { + async function changePasswordAgingRules(val: number | undefined): Promise { passwordAgingRule = val !== undefined ? Math.max(val, 1) : undefined await accountClient.updatePasswordAgingRule(passwordAgingRule) } diff --git a/plugins/setting-resources/src/components/GuestPermissionsSettings.svelte b/plugins/setting-resources/src/components/GuestPermissionsSettings.svelte index 2c828b786e..1e809f5bcd 100644 --- a/plugins/setting-resources/src/components/GuestPermissionsSettings.svelte +++ b/plugins/setting-resources/src/components/GuestPermissionsSettings.svelte @@ -117,9 +117,9 @@ $: workspaceApplications = client .getModel() .findAllSync(workbench.class.Application, { - hidden: false, - _id: { $nin: excludedApplicationIds } - }) + hidden: false, + _id: { $nin: excludedApplicationIds } + }) .filter((app) => !hiddenApplicationIds.includes(app._id)) $: applicationsMap = new Map, Application>( @@ -140,23 +140,23 @@ /** Anonymous (read-only guest) module rows are view-only until workspace allows anonymous guests. */ $: anonymousModulePermissionsReadOnly = guestPermissionsTab === 'anonymous' && !allowReadOnlyGuests - function getApplicationLabel (applicationId: Ref): IntlString { + function getApplicationLabel(applicationId: Ref): IntlString { return applicationsMap.get(applicationId)?.label ?? getEmbeddedLabel(applicationId) } - function getApplication (applicationId: Ref): Application | undefined { + function getApplication(applicationId: Ref): Application | undefined { return applicationsMap.get(applicationId) } - function getDisabledPermissions (group: ModulePermissionGroup): Set> { + function getDisabledPermissions(group: ModulePermissionGroup): Set> { return new Set(group.disabledPermissions ?? []) } - function isPermissionActive (group: ModulePermissionGroup, permissionId: Ref): boolean { + function isPermissionActive(group: ModulePermissionGroup, permissionId: Ref): boolean { return !getDisabledPermissions(group).has(permissionId) } - async function togglePermission ( + async function togglePermission( group: ModulePermissionGroup, permissionId: Ref, enabled: boolean @@ -174,44 +174,44 @@ } as any) } - async function toggleModule (group: ModulePermissionGroup, enabled: boolean): Promise { + async function toggleModule(group: ModulePermissionGroup, enabled: boolean): Promise { if (anonymousModulePermissionsReadOnly) return await client.updateDoc(core.class.ModulePermissionGroup, core.space.Model, group._id, { enabled } as any) } - function isModuleEnabled (group: ModulePermissionGroup): boolean { + function isModuleEnabled(group: ModulePermissionGroup): boolean { return group.enabled ?? true } - function getPermissionLabel (permissionId: Ref): IntlString { + function getPermissionLabel(permissionId: Ref): IntlString { return permissionsMap.get(permissionId)?.label ?? getEmbeddedLabel(permissionId) } - function onAccessToggle (group: ModulePermissionGroup, ev: Event): void { + function onAccessToggle(group: ModulePermissionGroup, ev: Event): void { const e = ev as CustomEvent void toggleModule(group, e.detail) } - function onPermissionToggle (group: ModulePermissionGroup, permissionId: Ref, ev: Event): void { + function onPermissionToggle(group: ModulePermissionGroup, permissionId: Ref, ev: Event): void { const e = ev as CustomEvent void togglePermission(group, permissionId, e.detail) } - function handleAccessToggle (group: ModulePermissionGroup): (ev: Event) => void { + function handleAccessToggle(group: ModulePermissionGroup): (ev: Event) => void { return (ev: Event) => { onAccessToggle(group, ev) } } - function handlePermissionToggle (group: ModulePermissionGroup, permissionId: Ref): (ev: Event) => void { + function handlePermissionToggle(group: ModulePermissionGroup, permissionId: Ref): (ev: Event) => void { return (ev: Event) => { onPermissionToggle(group, permissionId, ev) } } - async function handleToggleReadonlyAccess (e: CustomEvent): Promise { + async function handleToggleReadonlyAccess(e: CustomEvent): Promise { const enabled = e.detail const guestUserInfo = await accountClient.updateAllowReadOnlyGuests(enabled) allowReadOnlyGuests = enabled @@ -241,16 +241,16 @@ } } - async function handleToggleGuestSignUp (e: CustomEvent): Promise { + async function handleToggleGuestSignUp(e: CustomEvent): Promise { await accountClient.updateAllowGuestSignUp(e.detail) allowGuestSignUp = e.detail } - function onReadonlyGuestsToggle (e: CustomEvent): void { + function onReadonlyGuestsToggle(e: CustomEvent): void { void handleToggleReadonlyAccess(e) } - function onGuestSignUpToggle (e: CustomEvent): void { + function onGuestSignUpToggle(e: CustomEvent): void { void handleToggleGuestSignUp(e) } diff --git a/plugins/setting-resources/src/components/InviteSetting.svelte b/plugins/setting-resources/src/components/InviteSetting.svelte index 73982e95e6..95b6164185 100644 --- a/plugins/setting-resources/src/components/InviteSetting.svelte +++ b/plugins/setting-resources/src/components/InviteSetting.svelte @@ -79,7 +79,7 @@ }) } - function applyInviteSettings (set: InviteSettings[]): void { + function applyInviteSettings(set: InviteSettings[]): void { existingInviteSettings = set const state = resolveInviteSettings(set[0]) expTime = state.expirationTime @@ -93,12 +93,12 @@ $: query.query(setting.class.InviteSettings, {}, applyInviteSettings) - function normalizeValues (): void { + function normalizeValues(): void { expTime = Math.max(1, expTime) limit = noLimit ? -1 : Math.max(1, limit ?? 1) } - async function setInviteSettings (): Promise { + async function setInviteSettings(): Promise { if (inviteLimitInvalid) return normalizeValues() const savedLimit = limit ?? -1 @@ -138,12 +138,12 @@ } } - async function autoSaveIfValid (): Promise { + async function autoSaveIfValid(): Promise { if (loading || inviteLimitInvalid) return await setInviteSettings() } - function handleNoLimitChange (e: CustomEvent): void { + function handleNoLimitChange(e: CustomEvent): void { noLimit = e.detail if (noLimit) { limit = -1 @@ -153,20 +153,20 @@ void autoSaveIfValid() } - function handleExpTimeChange (): void { + function handleExpTimeChange(): void { void autoSaveIfValid() } - function handleLimitChange (): void { + function handleLimitChange(): void { void autoSaveIfValid() } - function handleDefaultInviteRoleSelected (e: CustomEvent): void { + function handleDefaultInviteRoleSelected(e: CustomEvent): void { defaultInviteRole = e.detail void autoSaveIfValid() } - function handleGeneratorRolesSelected (e: CustomEvent): void { + function handleGeneratorRolesSelected(e: CustomEvent): void { if (e.detail != null) { inviteLinkGeneratorRoles = [...e.detail] } diff --git a/plugins/setting-resources/src/components/MailboxEditorModal.svelte b/plugins/setting-resources/src/components/MailboxEditorModal.svelte index 7d066b3b91..6b4cf93bd4 100644 --- a/plugins/setting-resources/src/components/MailboxEditorModal.svelte +++ b/plugins/setting-resources/src/components/MailboxEditorModal.svelte @@ -37,12 +37,12 @@ $: canSave = !loading && validateName(name) $: domains = mailboxOptions.availableDomains.map((d) => ({ _id: d, label: '@' + d })) - function validateName (name: string): boolean { + function validateName(name: string): boolean { const n = name.trim() return n.length >= mailboxOptions.minNameLength && n.length <= mailboxOptions.maxNameLength && !name.includes('+') } - async function createMailbox (): Promise { + async function createMailbox(): Promise { const { mailbox, socialId } = await getAccountClient().createMailbox(name, (domain ?? domains[0])._id) console.log('Mailbox created', mailbox, socialId) const currentUser = getCurrentEmployee() @@ -75,7 +75,7 @@ ) } - async function save (): Promise { + async function save(): Promise { loading = true try { await createMailbox() @@ -89,7 +89,7 @@ } } - function formatError (err: any): void { + function formatError(err: any): void { error = `${err}` let errMsg: IntlString | undefined const errParams: Record = {} diff --git a/plugins/setting-resources/src/components/MailboxItem.svelte b/plugins/setting-resources/src/components/MailboxItem.svelte index 087f5982a7..546eb804fd 100644 --- a/plugins/setting-resources/src/components/MailboxItem.svelte +++ b/plugins/setting-resources/src/components/MailboxItem.svelte @@ -38,7 +38,7 @@ let opened = false - function deleteMailboxAction (): void { + function deleteMailboxAction(): void { showPopup( MessageBox, { @@ -61,7 +61,7 @@ ) } - async function deleteMailbox (): Promise { + async function deleteMailbox(): Promise { await getAccountClient().deleteMailbox(mailbox.mailbox) const client = getClient() const currentUser = getCurrentEmployee() diff --git a/plugins/setting-resources/src/components/Mailboxes.svelte b/plugins/setting-resources/src/components/Mailboxes.svelte index d8afac6b0a..7985660d06 100644 --- a/plugins/setting-resources/src/components/Mailboxes.svelte +++ b/plugins/setting-resources/src/components/Mailboxes.svelte @@ -37,7 +37,7 @@ let mailboxes: MailboxInfo[] = [] let mailboxOptions: MailboxOptions | undefined - function loadMailboxes (): void { + function loadMailboxes(): void { getAccountClient() .getMailboxes() .then((res) => { @@ -52,7 +52,7 @@ }) } - function loadMailboxOptions (): void { + function loadMailboxOptions(): void { getAccountClient() .getMailboxOptions() .then((res) => { @@ -66,7 +66,7 @@ }) } - function create (): void { + function create(): void { if (mailboxOptions === undefined) { console.warn('Mailbox options not loaded yet') return diff --git a/plugins/setting-resources/src/components/OfficeSettings.svelte b/plugins/setting-resources/src/components/OfficeSettings.svelte index 27afde9299..7e61e7b97d 100644 --- a/plugins/setting-resources/src/components/OfficeSettings.svelte +++ b/plugins/setting-resources/src/components/OfficeSettings.svelte @@ -35,7 +35,7 @@ loading = false }) - async function toggleDefaultTranscription (e: CustomEvent): Promise { + async function toggleDefaultTranscription(e: CustomEvent): Promise { const enabled = e.detail defaultStartWithTranscription = enabled const newSettings = { @@ -55,7 +55,7 @@ } } - async function toggleDefaultRecording (e: CustomEvent): Promise { + async function toggleDefaultRecording(e: CustomEvent): Promise { const enabled = e.detail defaultStartWithRecording = enabled const newSettings = { diff --git a/plugins/setting-resources/src/components/Password.svelte b/plugins/setting-resources/src/components/Password.svelte index 8b40619dc8..a350400932 100644 --- a/plugins/setting-resources/src/components/Password.svelte +++ b/plugins/setting-resources/src/components/Password.svelte @@ -43,7 +43,7 @@ password !== password2 || saved - async function checkPassword (): Promise { + async function checkPassword(): Promise { try { const check = await getResource(login.function.CheckHasPassword) hasPassword = await check() @@ -54,7 +54,7 @@ } } - async function save (): Promise { + async function save(): Promise { label = setting.string.Saving saved = true try { @@ -70,7 +70,7 @@ } } - async function sendSetupLink (): Promise { + async function sendSetupLink(): Promise { sendingLink = true noEmailLinked = false try { @@ -89,7 +89,7 @@ } } - function updateSaved (p1: string, p2: string, p3: string): void { + function updateSaved(p1: string, p2: string, p3: string): void { saved = false label = presentation.string.Save error = false diff --git a/plugins/setting-resources/src/components/Profile.svelte b/plugins/setting-resources/src/components/Profile.svelte index cf6f1173e5..2f5bd79d33 100644 --- a/plugins/setting-resources/src/components/Profile.svelte +++ b/plugins/setting-resources/src/components/Profile.svelte @@ -64,7 +64,7 @@ } let avatarEditor: EditableAvatar - async function onAvatarDone (): Promise { + async function onAvatarDone(): Promise { if ($myEmployeeStore === undefined) return if ($myEmployeeStore.avatar != null) { @@ -76,7 +76,7 @@ const manager = createFocusManager() - async function leave (): Promise { + async function leave(): Promise { showPopup(MessageBox, { label: setting.string.Leave, message: setting.string.LeaveDescr, @@ -111,7 +111,7 @@ }) } - async function nameChange (): Promise { + async function nameChange(): Promise { if ($myEmployeeStore !== undefined) { await client.diffUpdate($myEmployeeStore, { name: combineName(firstName, lastName) diff --git a/plugins/setting-resources/src/components/RelationSetting.svelte b/plugins/setting-resources/src/components/RelationSetting.svelte index a6a56bfb5e..2b18e0709d 100644 --- a/plugins/setting-resources/src/components/RelationSetting.svelte +++ b/plugins/setting-resources/src/components/RelationSetting.svelte @@ -34,7 +34,7 @@ $: filtered = filterAssociations(associations, _classes, exclude) - function filterAssociations ( + function filterAssociations( associations: Association[], _classes: Ref>[], exclude: Ref>[] @@ -63,7 +63,7 @@ return res } - function createRelation (): void { + function createRelation(): void { selected = { classA: '' as Ref>, classB: '' as Ref>, @@ -73,16 +73,16 @@ } } - function isAssociation (data: Data | Association | undefined): data is Association { + function isAssociation(data: Data | Association | undefined): data is Association { return (data as Association)?._id !== undefined } - function getClassLabel (_class: Ref>): IntlString | undefined { + function getClassLabel(_class: Ref>): IntlString | undefined { const _classLabel = client.getModel().findObject(_class) return _classLabel?.label } - async function getLabel (association: Association): Promise { + async function getLabel(association: Association): Promise { const aLabel = getClassLabel(association.classA) const bLabel = getClassLabel(association.classB) const aClass = aLabel !== undefined ? await translate(aLabel, {}) : undefined @@ -92,7 +92,7 @@ defineSeparators('workspaceSettings', twoPanelsSeparators) - async function remove (val: Association | Data | undefined): Promise { + async function remove(val: Association | Data | undefined): Promise { if (isAssociation(val)) { showPopup(MessageBox, { label: view.string.DeleteObject, diff --git a/plugins/setting-resources/src/components/Settings.svelte b/plugins/setting-resources/src/components/Settings.svelte index a58f02c250..f800ed83e6 100644 --- a/plugins/setting-resources/src/components/Settings.svelte +++ b/plugins/setting-resources/src/components/Settings.svelte @@ -88,10 +88,10 @@ }, 500) }) - function findCategory (name: string): SettingsCategory | undefined { + function findCategory(name: string): SettingsCategory | undefined { return categories.find((x) => x.name === name) } - function selectCategory (id: string): void { + function selectCategory(id: string): void { clearSettingsStore() const loc = getCurrentResolvedLocation() if (loc.path[3] === id) { @@ -102,17 +102,17 @@ } navigate(loc) } - function signOut (): void { + function signOut(): void { void logOut() navigate({ path: [loginId] }) Analytics.handleEvent(SettingsEvents.SignOut) Analytics.logout() } - function selectWorkspace (): void { + function selectWorkspace(): void { Analytics.handleEvent(SettingsEvents.SelectWorkspace) navigate({ path: [loginId, 'selectWorkspace'] }) } - function inviteWorkspace (): void { + function inviteWorkspace(): void { Analytics.handleEvent(SettingsEvents.InviteToWorkspace) showPopup(login.component.InviteLink, {}) } diff --git a/plugins/setting-resources/src/components/Spaces.svelte b/plugins/setting-resources/src/components/Spaces.svelte index 39774c118f..602467fe24 100644 --- a/plugins/setting-resources/src/components/Spaces.svelte +++ b/plugins/setting-resources/src/components/Spaces.svelte @@ -69,7 +69,7 @@ } } - async function handleRoleAssignmentChanged (roleId: Ref, newMembers: AccountUuid[]): Promise { + async function handleRoleAssignmentChanged(roleId: Ref, newMembers: AccountUuid[]): Promise { await client.updateMixin(space._id, space._class, core.space.Space, spaceType.targetClass, { [roleId]: newMembers }) diff --git a/plugins/setting-resources/src/components/UserRoleSelect.svelte b/plugins/setting-resources/src/components/UserRoleSelect.svelte index 7294db9da9..81c65dda71 100644 --- a/plugins/setting-resources/src/components/UserRoleSelect.svelte +++ b/plugins/setting-resources/src/components/UserRoleSelect.svelte @@ -36,7 +36,7 @@ ? allInviteRoleItems.filter((item) => item.id !== AccountRole.Owner && item.id !== AccountRole.Maintainer) : allInviteRoleItems - function handleSelected (e: CustomEvent): void { + function handleSelected(e: CustomEvent): void { dispatch('selected', e.detail) } diff --git a/plugins/setting-resources/src/components/WorkspacePermissionEditor.svelte b/plugins/setting-resources/src/components/WorkspacePermissionEditor.svelte index ce65e4c628..49225b2a3d 100644 --- a/plugins/setting-resources/src/components/WorkspacePermissionEditor.svelte +++ b/plugins/setting-resources/src/components/WorkspacePermissionEditor.svelte @@ -35,7 +35,7 @@ void loadPermissions() }) - async function loadPermissions (): Promise { + async function loadPermissions(): Promise { try { const result = await accountClient.getWorkspaceUsersWithPermission({ permission @@ -48,7 +48,7 @@ } } - async function handleUsersChange (newUsers: AccountUuid[]): Promise { + async function handleUsersChange(newUsers: AccountUuid[]): Promise { const currentUsers = new Set(users) const updatedUsers = new Set(newUsers) diff --git a/plugins/setting-resources/src/components/WorkspaceSettings.svelte b/plugins/setting-resources/src/components/WorkspaceSettings.svelte index c5be61c103..603d7f9012 100644 --- a/plugins/setting-resources/src/components/WorkspaceSettings.svelte +++ b/plugins/setting-resources/src/components/WorkspaceSettings.svelte @@ -70,7 +70,7 @@ }, 500) }) - function selectCategory (id: string): void { + function selectCategory(id: string): void { clearSettingsStore() const loc = getCurrentResolvedLocation() loc.path[3] = categoryName diff --git a/plugins/setting-resources/src/components/integrations/IntegrationCard.svelte b/plugins/setting-resources/src/components/integrations/IntegrationCard.svelte index 4a2269c603..0f129cffa0 100644 --- a/plugins/setting-resources/src/components/integrations/IntegrationCard.svelte +++ b/plugins/setting-resources/src/components/integrations/IntegrationCard.svelte @@ -61,11 +61,11 @@ }) }) - function subscribe (): void { + function subscribe(): void { unsubscribers.push(onIntegrationEvent('integration:updated', onUpdateIntegration)) } - function onUpdateIntegration (data: IntegrationUpdatedData): void { + function onUpdateIntegration(data: IntegrationUpdatedData): void { if ( integration !== undefined && data.integration?.socialId === integration.socialId && @@ -75,7 +75,7 @@ } } - async function close (res: any): Promise { + async function close(res: any): Promise { /* TODO: if (res?.value && integration !== undefined) { await client.update(integration, { value: res.value, @@ -84,13 +84,13 @@ } */ } - async function reconnect (res: any): Promise { + async function reconnect(res: any): Promise { if (res?.connected === true && integration !== undefined) { await integrationClient?.setIntegrationEnabled(integration, true) } } - async function disconnect (): Promise { + async function disconnect(): Promise { try { isDisconnecting = true if (integration !== undefined && integrationType.onDisconnect !== undefined) { @@ -116,7 +116,7 @@ } } - async function disconnectAll (): Promise { + async function disconnectAll(): Promise { try { isDisconnecting = true if (integration !== undefined && integrationType.onDisconnectAll !== undefined) { diff --git a/plugins/setting-resources/src/components/integrations/IntegrationLabel.svelte b/plugins/setting-resources/src/components/integrations/IntegrationLabel.svelte index e534661335..f491dade18 100644 --- a/plugins/setting-resources/src/components/integrations/IntegrationLabel.svelte +++ b/plugins/setting-resources/src/components/integrations/IntegrationLabel.svelte @@ -23,7 +23,7 @@ type IntegrationStatus = 'available' | 'disconnected' | 'connected' | 'integrated' - function getIntegrationStatus (integration: Integration | undefined): IntegrationStatus { + function getIntegrationStatus(integration: Integration | undefined): IntegrationStatus { if (integration === undefined) { return 'available' } @@ -36,7 +36,7 @@ return 'integrated' } - function getIntegrationLabel (status: IntegrationStatus): IntlString { + function getIntegrationLabel(status: IntegrationStatus): IntlString { switch (status) { case 'available': return setting.string.Available diff --git a/plugins/setting-resources/src/components/integrations/IntegrationTag.svelte b/plugins/setting-resources/src/components/integrations/IntegrationTag.svelte index f616271244..5dff0a473f 100644 --- a/plugins/setting-resources/src/components/integrations/IntegrationTag.svelte +++ b/plugins/setting-resources/src/components/integrations/IntegrationTag.svelte @@ -31,11 +31,11 @@ const dispatch = createEventDispatcher() - function getColorDefinition (color: number | undefined): ColorDefinition { + function getColorDefinition(color: number | undefined): ColorDefinition { return getPlatformColorDef(color ?? 0, $themeStore.dark) } - function getTagStyle (color: ColorDefinition): string { + function getTagStyle(color: ColorDefinition): string { return ` background: ${color.color + '33'}; border: 1px solid ${color.color + '66'}; diff --git a/plugins/setting-resources/src/components/integrations/Integrations.svelte b/plugins/setting-resources/src/components/integrations/Integrations.svelte index 57b56562fa..418e45532a 100644 --- a/plugins/setting-resources/src/components/integrations/Integrations.svelte +++ b/plugins/setting-resources/src/components/integrations/Integrations.svelte @@ -63,7 +63,7 @@ integrationTypes = res }) - function getIntegrations (type: IntegrationType, integrations: Integration[]): Integration[] { + function getIntegrations(type: IntegrationType, integrations: Integration[]): Integration[] { return integrations.filter((p) => p.kind === type.kind) } @@ -110,7 +110,7 @@ } }) - function subscribe (): void { + function subscribe(): void { unsubscribers.push( onIntegrationEvent('integration:updated', onRefreshIntegrations), onIntegrationEvent('integration:created', onRefreshIntegrations), @@ -118,12 +118,12 @@ ) } - function onRefreshIntegrations (data: any): void { + function onRefreshIntegrations(data: any): void { lastEventTime = Date.now() void refreshIntegrations() } - function startRefreshTimer (): void { + function startRefreshTimer(): void { if (refreshTimer !== null) { clearInterval(refreshTimer) } @@ -138,7 +138,7 @@ }, 10000) } - async function refreshIntegrations (): Promise { + async function refreshIntegrations(): Promise { // If there's already a promise, return it to avoid concurrent calls if (loadIntegrationsPromise !== null) { await loadIntegrationsPromise @@ -160,7 +160,7 @@ loadIntegrationsPromise = null } - async function showErrorNotification (error: string): Promise { + async function showErrorNotification(error: string): Promise { const errorMessage = error === IntegrationError.EMAIL_IS_ALREADY_USED ? await translate(setting.string.EmailIsUsed, {}, $themeStore.language) @@ -174,7 +174,7 @@ ) } - async function showLoadErrorNotification (): Promise { + async function showLoadErrorNotification(): Promise { addNotification( await translate(setting.string.FailedToLoadIntegrations, {}, $themeStore.language), await translate(setting.string.IntegrationError, {}, $themeStore.language), @@ -188,7 +188,7 @@ integration?: Integration } - function getFilteredIntegrationTypes ( + function getFilteredIntegrationTypes( mode: string, integrationTypes: IntegrationType[], integrations: Integration[] @@ -236,7 +236,7 @@ // Reactive statement to get filtered integration types $: filteredIntegrationTypes = getFilteredIntegrationTypes(mode, integrationTypes, integrations) - function getIntegrationKey (integrationInfo: IntegrationInfo): string { + function getIntegrationKey(integrationInfo: IntegrationInfo): string { const { integration, integrationType } = integrationInfo if (integration === undefined && integrationType !== undefined) { return integrationType._id diff --git a/plugins/setting-resources/src/components/socialIds/AddEmailSocialId.svelte b/plugins/setting-resources/src/components/socialIds/AddEmailSocialId.svelte index 72100e3baf..4c7a2816f9 100644 --- a/plugins/setting-resources/src/components/socialIds/AddEmailSocialId.svelte +++ b/plugins/setting-resources/src/components/socialIds/AddEmailSocialId.svelte @@ -52,11 +52,11 @@ let codeForm: CodeForm | undefined let canResend = false - function getCleanEmail (value: string | undefined): string { + function getCleanEmail(value: string | undefined): string { return value?.trim().toLowerCase() ?? '' } - async function sendConfirmation (): Promise { + async function sendConfirmation(): Promise { try { status = OK otpInfo = await accountClient.addEmailSocialId(getCleanEmail(email)) @@ -72,20 +72,20 @@ } } - async function handleSendConfirmation (): Promise { + async function handleSendConfirmation(): Promise { if (otpInfo != null) return await sendConfirmation() } - async function handleResend (): Promise { + async function handleResend(): Promise { if (codeForm != null) codeForm.clear() await sendConfirmation() if (timer != null) timer.restart(retryOn) } - async function handleCode (event: CustomEvent): Promise { + async function handleCode(event: CustomEvent): Promise { const code = event.detail if (code == null) return status = OK diff --git a/plugins/setting-resources/src/components/socialIds/AddSocialId.svelte b/plugins/setting-resources/src/components/socialIds/AddSocialId.svelte index 582ea7d7ff..95e01362b8 100644 --- a/plugins/setting-resources/src/components/socialIds/AddSocialId.svelte +++ b/plugins/setting-resources/src/components/socialIds/AddSocialId.svelte @@ -34,11 +34,11 @@ typeString = s }) - async function handleClose (): Promise { + async function handleClose(): Promise { dispatch('close') } - async function handleSubmit (): Promise { + async function handleSubmit(): Promise { await onSubmit() } diff --git a/plugins/setting-resources/src/components/socialIds/SocialIdRow.svelte b/plugins/setting-resources/src/components/socialIds/SocialIdRow.svelte index 3ca2f005a6..bb52a9bb14 100644 --- a/plugins/setting-resources/src/components/socialIds/SocialIdRow.svelte +++ b/plugins/setting-resources/src/components/socialIds/SocialIdRow.svelte @@ -45,7 +45,7 @@ $: isLogin = loginSocialTypes.includes(socialId.type) $: isPrimary = socialId._id === currAcc.primarySocialId - async function doRelease (): Promise { + async function doRelease(): Promise { try { // Important to always get current account in the callback to avoid race conditions // with the account from the reactive variable @@ -87,7 +87,7 @@ } } - async function handleRelease (): Promise { + async function handleRelease(): Promise { showPopup(MessageBox, { label: setting.string.ReleaseSocialId, message: setting.string.ReleaseSocialIdConfirm, diff --git a/plugins/setting-resources/src/components/socialIds/SocialIdsEditor.svelte b/plugins/setting-resources/src/components/socialIds/SocialIdsEditor.svelte index afbcb4c5e4..d3a05a6005 100644 --- a/plugins/setting-resources/src/components/socialIds/SocialIdsEditor.svelte +++ b/plugins/setting-resources/src/components/socialIds/SocialIdsEditor.svelte @@ -53,14 +53,14 @@ }) .filter(notEmpty) - function handleAdd (ev: MouseEvent): void { + function handleAdd(ev: MouseEvent): void { showPopup(Menu, { actions: addActions }, ev.target as HTMLElement) } $: onlyHuly = socialIds.filter((it) => it.type === SocialIdType.HULY).length === 1 $: onlyLogin = socialIds.filter((it) => loginSocialTypes.includes(it.type)).length === 1 - function handleAccountUpdated (): void { + function handleAccountUpdated(): void { account = getCurrentAccount() } diff --git a/plugins/setting-resources/src/components/spaceTypes/CreateSpaceType.svelte b/plugins/setting-resources/src/components/spaceTypes/CreateSpaceType.svelte index 14be159fcb..599ffe0dea 100644 --- a/plugins/setting-resources/src/components/spaceTypes/CreateSpaceType.svelte +++ b/plugins/setting-resources/src/components/spaceTypes/CreateSpaceType.svelte @@ -32,7 +32,7 @@ let descriptor: SpaceTypeDescriptor | undefined = undefined let handleTypeCreated: (() => Promise) | undefined - async function createType (): Promise { + async function createType(): Promise { if (descriptor === undefined) { return } @@ -62,15 +62,15 @@ $: typeCreator = descriptor !== undefined ? hierarchy.classHierarchyMixin, SpaceTypeCreator>( - descriptor._class, - setting.mixin.SpaceTypeCreator - ) + descriptor._class, + setting.mixin.SpaceTypeCreator + ) : undefined let extraComponent: AnySvelteComponent | undefined $: loadExtraComponent(typeCreator) - async function loadExtraComponent (tc: SpaceTypeCreator | undefined): Promise { + async function loadExtraComponent(tc: SpaceTypeCreator | undefined): Promise { if (tc === undefined) { extraComponent = undefined handleTypeCreated = undefined @@ -81,7 +81,7 @@ extraComponent = await getResource(tc.extraComponent) } - function handleDescriptorSelected (evt: CustomEvent>): void { + function handleDescriptorSelected(evt: CustomEvent>): void { descriptor = descriptors.find((it) => it._id === evt.detail) } diff --git a/plugins/setting-resources/src/components/spaceTypes/ManageSpaceTypeContent.svelte b/plugins/setting-resources/src/components/spaceTypes/ManageSpaceTypeContent.svelte index fc34b91495..815cd27e0a 100644 --- a/plugins/setting-resources/src/components/spaceTypes/ManageSpaceTypeContent.svelte +++ b/plugins/setting-resources/src/components/spaceTypes/ManageSpaceTypeContent.svelte @@ -60,7 +60,7 @@ onDestroy(resolvedLocationStore.subscribe(handleLocationChanged)) - function handleLocationChanged ({ path }: Location): void { + function handleLocationChanged({ path }: Location): void { selectedTypeId = path[4] as Ref if (path.length === 7) { @@ -70,7 +70,7 @@ } } - function selectSubItem (editorId: string | undefined, objId: Ref | undefined): void { + function selectSubItem(editorId: string | undefined, objId: Ref | undefined): void { selectedSubEditorId = editorId selectedSubObjectId = objId } @@ -124,7 +124,7 @@ } } - function handleCrumbSelected (event: CustomEvent): void { + function handleCrumbSelected(event: CustomEvent): void { if (event.detail === 0) { const loc = getCurrentResolvedLocation() loc.path.length = 5 diff --git a/plugins/setting-resources/src/components/spaceTypes/ManageSpaceTypes.svelte b/plugins/setting-resources/src/components/spaceTypes/ManageSpaceTypes.svelte index f16d73901b..6d4eaa0773 100644 --- a/plugins/setting-resources/src/components/spaceTypes/ManageSpaceTypes.svelte +++ b/plugins/setting-resources/src/components/spaceTypes/ManageSpaceTypes.svelte @@ -29,7 +29,7 @@ onDestroy(resolvedLocationStore.subscribe(handleLocationChanged)) - function handleLocationChanged (loc: Location): void { + function handleLocationChanged(loc: Location): void { selectedTypeId = loc.path[4] as Ref } @@ -48,7 +48,7 @@ } ) - function selectProjectType (id: string): void { + function selectProjectType(id: string): void { clearSettingsStore() const loc = getCurrentResolvedLocation() loc.path[3] = categoryName @@ -57,7 +57,7 @@ navigate(loc) } - function handleTypeChange (event: CustomEvent): void { + function handleTypeChange(event: CustomEvent): void { selectProjectType(event.detail) } diff --git a/plugins/setting-resources/src/components/spaceTypes/ManageSpaceTypesTools.svelte b/plugins/setting-resources/src/components/spaceTypes/ManageSpaceTypesTools.svelte index 1ffdb42310..2aa9935087 100644 --- a/plugins/setting-resources/src/components/spaceTypes/ManageSpaceTypesTools.svelte +++ b/plugins/setting-resources/src/components/spaceTypes/ManageSpaceTypesTools.svelte @@ -18,7 +18,7 @@ import CreateSpaceType from './CreateSpaceType.svelte' import { isOwnerOrMaintainer } from '@hcengineering/core' - function handleAdd (): void { + function handleAdd(): void { showPopup(CreateSpaceType, {}, 'top') } diff --git a/plugins/setting-resources/src/components/spaceTypes/RoleEditor.svelte b/plugins/setting-resources/src/components/spaceTypes/RoleEditor.svelte index ce922336cf..2a68ee8ee1 100644 --- a/plugins/setting-resources/src/components/spaceTypes/RoleEditor.svelte +++ b/plugins/setting-resources/src/components/spaceTypes/RoleEditor.svelte @@ -65,7 +65,7 @@ }) } - function handleEditPermissions (evt: Event): void { + function handleEditPermissions(evt: Event): void { if (role === undefined || descriptor === undefined || readonly) { return } @@ -101,7 +101,7 @@ ) } - async function handleDeleteRole (): Promise { + async function handleDeleteRole(): Promise { showPopup( MessageBox, { @@ -115,7 +115,7 @@ ) } - async function performDeleteRole (): Promise { + async function performDeleteRole(): Promise { if (role === undefined) { return } diff --git a/plugins/setting-resources/src/components/spaceTypes/SpaceTypes.svelte b/plugins/setting-resources/src/components/spaceTypes/SpaceTypes.svelte index 641185bbcd..9ef7411187 100644 --- a/plugins/setting-resources/src/components/spaceTypes/SpaceTypes.svelte +++ b/plugins/setting-resources/src/components/spaceTypes/SpaceTypes.svelte @@ -23,7 +23,7 @@ const dispatch = createEventDispatcher() - function handleSelected (type: SpaceType): void { + function handleSelected(type: SpaceType): void { selectedTypeId = type._id dispatch('change', selectedTypeId) diff --git a/plugins/setting-resources/src/components/spaceTypes/editor/CreateRole.svelte b/plugins/setting-resources/src/components/spaceTypes/editor/CreateRole.svelte index 5dd40f74a8..1818fecd93 100644 --- a/plugins/setting-resources/src/components/spaceTypes/editor/CreateRole.svelte +++ b/plugins/setting-resources/src/components/spaceTypes/editor/CreateRole.svelte @@ -29,7 +29,7 @@ permissions: [] } - async function handleRoleCreated (): Promise { + async function handleRoleCreated(): Promise { const name = roleData.name.trim() if (name === '') { return diff --git a/plugins/setting-resources/src/components/spaceTypes/editor/SpaceTypeEditor.svelte b/plugins/setting-resources/src/components/spaceTypes/editor/SpaceTypeEditor.svelte index ac3aef2eb2..d54fa14888 100644 --- a/plugins/setting-resources/src/components/spaceTypes/editor/SpaceTypeEditor.svelte +++ b/plugins/setting-resources/src/components/spaceTypes/editor/SpaceTypeEditor.svelte @@ -40,7 +40,7 @@ void loadDescriptor() } - async function loadDescriptor (): Promise { + async function loadDescriptor(): Promise { descriptor = await client.findOne(core.class.SpaceTypeDescriptor, { _id: type.descriptor }) } @@ -50,9 +50,9 @@ }[] = editorDescriptor !== undefined ? editorDescriptor.sections.map(({ id, label }) => ({ - id, - label - })) + id, + label + })) : [] const sectionRefs: Record = {} diff --git a/plugins/setting-resources/src/components/spaceTypes/editor/SpaceTypeGeneralSectionEditor.svelte b/plugins/setting-resources/src/components/spaceTypes/editor/SpaceTypeGeneralSectionEditor.svelte index 0b6cd5ed0f..cbec540dc7 100644 --- a/plugins/setting-resources/src/components/spaceTypes/editor/SpaceTypeGeneralSectionEditor.svelte +++ b/plugins/setting-resources/src/components/spaceTypes/editor/SpaceTypeGeneralSectionEditor.svelte @@ -70,7 +70,7 @@ await client.update(type, { [field]: value }) } - const changeMembers = reduceCalls(async function changeMembers (members: AccountUuid[]): Promise { + const changeMembers = reduceCalls(async function changeMembers(members: AccountUuid[]): Promise { if (disabled || type === undefined) { return } @@ -97,7 +97,7 @@ await ops.commit() }) - async function handleDelete (): Promise { + async function handleDelete(): Promise { if (!canDelete || disabled || type == null) { return } diff --git a/plugins/setting-resources/src/components/spaceTypes/editor/SpaceTypeRolesSectionEditor.svelte b/plugins/setting-resources/src/components/spaceTypes/editor/SpaceTypeRolesSectionEditor.svelte index 2a6151fcb6..d16fcf9df3 100644 --- a/plugins/setting-resources/src/components/spaceTypes/editor/SpaceTypeRolesSectionEditor.svelte +++ b/plugins/setting-resources/src/components/spaceTypes/editor/SpaceTypeRolesSectionEditor.svelte @@ -40,7 +40,7 @@ ) } - function handleRoleSelected (id: string | undefined): void { + function handleRoleSelected(id: string | undefined): void { const loc = getCurrentResolvedLocation() if (id !== undefined) { loc.path[5] = 'roles' diff --git a/plugins/setting-resources/src/components/typeEditors/ArrayEditor.svelte b/plugins/setting-resources/src/components/typeEditors/ArrayEditor.svelte index 02d5307845..8da47eeb4b 100644 --- a/plugins/setting-resources/src/components/typeEditors/ArrayEditor.svelte +++ b/plugins/setting-resources/src/components/typeEditors/ArrayEditor.svelte @@ -63,7 +63,7 @@ } } - function getComponent (selected: Class>): AnyComponent { + function getComponent(selected: Class>): AnyComponent { const editor = hierarchy.as(selected, view.mixin.ObjectEditor) return editor.editor } diff --git a/plugins/setting-resources/src/components/typeEditors/BooleanTypeEditor.svelte b/plugins/setting-resources/src/components/typeEditors/BooleanTypeEditor.svelte index fc273b9b44..3a380924db 100644 --- a/plugins/setting-resources/src/components/typeEditors/BooleanTypeEditor.svelte +++ b/plugins/setting-resources/src/components/typeEditors/BooleanTypeEditor.svelte @@ -34,7 +34,7 @@ } }) - function change () { + function change() { dispatch('change', { type: TypeBoolean(), defaultValue, @@ -42,7 +42,7 @@ }) } - async function changeShowing () { + async function changeShowing() { dispatch('change', { extra: { showInPresenter } }) } diff --git a/plugins/setting-resources/src/components/typeEditors/EmployeeRefEditor.svelte b/plugins/setting-resources/src/components/typeEditors/EmployeeRefEditor.svelte index b8b306aacd..efc480647a 100644 --- a/plugins/setting-resources/src/components/typeEditors/EmployeeRefEditor.svelte +++ b/plugins/setting-resources/src/components/typeEditors/EmployeeRefEditor.svelte @@ -31,11 +31,11 @@ let spaceMembersOnly: boolean = attribute?.spaceMembersOnly ?? false let byRole: Ref | null | undefined = attribute?.byRole - function changeSpaceMembersOnly () { + function changeSpaceMembersOnly() { dispatch('change', { extra: isCard ? { spaceMembersOnly, byRole } : { spaceMembersOnly } }) } - function changeByRole (e: any) { + function changeByRole(e: any) { if (!isCard) return byRole = e.detail dispatch('change', { extra: isCard ? { spaceMembersOnly, byRole } : { spaceMembersOnly } }) diff --git a/plugins/setting-resources/src/components/typeEditors/EnumTypeEditor.svelte b/plugins/setting-resources/src/components/typeEditors/EnumTypeEditor.svelte index a150224633..c309ff1b51 100644 --- a/plugins/setting-resources/src/components/typeEditors/EnumTypeEditor.svelte +++ b/plugins/setting-resources/src/components/typeEditors/EnumTypeEditor.svelte @@ -43,18 +43,18 @@ component: setting.component.EditEnum } - function changeEnum (value: Enum) { + function changeEnum(value: Enum) { type = TypeEnum(value._id) dispatch('change', { type, defaultValue, index: IndexKind.FullText }) } - async function updateSelected (ref: Ref | undefined) { + async function updateSelected(ref: Ref | undefined) { value = ref !== undefined ? await client.findOne(core.class.Enum, { _id: ref }) : undefined } $: updateSelected(ref) - async function edit () { + async function edit() { if (value === undefined) return showPopup(setting.component.EditEnum, { value }, 'top') } diff --git a/plugins/setting-resources/src/components/typeEditors/IdentifierTypeEditor.svelte b/plugins/setting-resources/src/components/typeEditors/IdentifierTypeEditor.svelte index 412b188004..aad1c0135c 100644 --- a/plugins/setting-resources/src/components/typeEditors/IdentifierTypeEditor.svelte +++ b/plugins/setting-resources/src/components/typeEditors/IdentifierTypeEditor.svelte @@ -43,12 +43,12 @@ $: currentSequence = sequences.find((s) => s._id === seq) - async function resetSequence () { + async function resetSequence() { if (!editable || currentSequence === undefined) return await client.update(currentSequence, { sequence: 0 }) } - async function change () { + async function change() { if (!editable) return if (identifiers.has(identifier.toUpperCase())) return if (identifier.toUpperCase() === (currentSequence?.prefix?.toUpperCase() ?? '')) return @@ -65,7 +65,7 @@ } } - async function changeShowing () { + async function changeShowing() { if (seq === undefined) return const type = TypeIdentifier(seq) dispatch('change', { type, index: IndexKind.FullText, extra: { showInPresenter } }) diff --git a/plugins/setting-resources/src/components/typeEditors/NumberTypeEditor.svelte b/plugins/setting-resources/src/components/typeEditors/NumberTypeEditor.svelte index df7ea022c6..25a4718ad2 100644 --- a/plugins/setting-resources/src/components/typeEditors/NumberTypeEditor.svelte +++ b/plugins/setting-resources/src/components/typeEditors/NumberTypeEditor.svelte @@ -30,7 +30,7 @@ let max: number | undefined = type?.max let isInteger = type?.digits === 0 - function updateType (): void { + function updateType(): void { dispatch('change', { type: TypeNumber(min, max, isInteger ? 0 : undefined), defaultValue }) } @@ -40,7 +40,7 @@ } }) - function changeIsInteger (e: CustomEvent): void { + function changeIsInteger(e: CustomEvent): void { isInteger = e.detail updateType() } diff --git a/plugins/setting-resources/src/components/typeEditors/TypesPopup.svelte b/plugins/setting-resources/src/components/typeEditors/TypesPopup.svelte index b8b596bfa2..93afc05b3d 100644 --- a/plugins/setting-resources/src/components/typeEditors/TypesPopup.svelte +++ b/plugins/setting-resources/src/components/typeEditors/TypesPopup.svelte @@ -25,7 +25,7 @@ const client = getClient() const hierarchy = client.getHierarchy() - function getTypes (): DropdownIntlItem[] { + function getTypes(): DropdownIntlItem[] { const descendants = hierarchy.getDescendants(core.class.Type) const res: DropdownIntlItem[] = [] for (const descendant of descendants) { diff --git a/plugins/setting-resources/src/inviteSettingsUtils.ts b/plugins/setting-resources/src/inviteSettingsUtils.ts index d6d29454c4..4fc05c5a92 100644 --- a/plugins/setting-resources/src/inviteSettingsUtils.ts +++ b/plugins/setting-resources/src/inviteSettingsUtils.ts @@ -26,7 +26,7 @@ const numericAccountRoles = new Set(Object.values(AccountRole).filter((v export function normalizeInviteRole (value: string | AccountRole | undefined, fallback: AccountRole): AccountRole { if (value !== undefined && typeof value === 'number' && numericAccountRoles.has(value)) { - return value as AccountRole + return value } if (typeof value === 'string') { const n = value.toLowerCase() @@ -91,13 +91,13 @@ export function resolveInviteSettings (doc: InviteSettings | undefined): Resolve expirationTime: doc.expirationTime, emailMask: doc.emailMask, limit: doc.limit, - defaultInviteRole: normalizeInviteRole(doc.defaultInviteRole as string | AccountRole | undefined, metaRole), + defaultInviteRole: normalizeInviteRole(doc.defaultInviteRole, metaRole), inviteLinkGeneratorRoles: doc.inviteLinkGeneratorRoles != null && doc.inviteLinkGeneratorRoles.length > 0 ? normalizeInviteRoles( - doc.inviteLinkGeneratorRoles as Array, - DEFAULT_INVITE_LINK_GENERATOR_ROLES - ) + doc.inviteLinkGeneratorRoles, + DEFAULT_INVITE_LINK_GENERATOR_ROLES + ) : [...DEFAULT_INVITE_LINK_GENERATOR_ROLES], noLimit: doc.limit === -1 } diff --git a/plugins/survey-resources/src/components/CreateSurvey.svelte b/plugins/survey-resources/src/components/CreateSurvey.svelte index 1724db0fa9..ca28861ac0 100644 --- a/plugins/survey-resources/src/components/CreateSurvey.svelte +++ b/plugins/survey-resources/src/components/CreateSurvey.svelte @@ -30,11 +30,11 @@ const id = generateId() - export function canClose (): boolean { + export function canClose(): boolean { return name === '' } - async function createSurvey (): Promise { + async function createSurvey(): Promise { const data: Data = { name, prompt: '' diff --git a/plugins/survey-resources/src/components/EditPoll.svelte b/plugins/survey-resources/src/components/EditPoll.svelte index 1ac5aa18b2..efabc1ebbc 100644 --- a/plugins/survey-resources/src/components/EditPoll.svelte +++ b/plugins/survey-resources/src/components/EditPoll.svelte @@ -31,11 +31,11 @@ $: updateCanSubmit(isAnswered) - function updateCanSubmit (isAnswered: boolean[]): void { + function updateCanSubmit(isAnswered: boolean[]): void { canSubmit = isAnswered.every((yes) => yes) } - function isQuestionValid (question: Question): boolean { + function isQuestionValid(question: Question): boolean { if (!hasText(question.name)) { return false } @@ -47,11 +47,11 @@ return true } - function handleChange (patch: Partial): void { + function handleChange(patch: Partial): void { dispatch('change', patch) } - function handleQuestionChange (index: number, patch: Partial): Promise | void { + function handleQuestionChange(index: number, patch: Partial): Promise | void { const questions = (object.questions ?? []).slice() questions[index] = { ...questions[index], ...patch } handleChange({ questions }) diff --git a/plugins/survey-resources/src/components/EditPollPanel.svelte b/plugins/survey-resources/src/components/EditPollPanel.svelte index 29c76adef6..ca91c7d6c6 100644 --- a/plugins/survey-resources/src/components/EditPollPanel.svelte +++ b/plugins/survey-resources/src/components/EditPollPanel.svelte @@ -42,7 +42,7 @@ patch: Partial } - function combinedPatch (patches: Patch[]): Partial { + function combinedPatch(patches: Patch[]): Partial { return patches.reduce((r, c) => Object.assign(r, c.patch), {}) } @@ -60,7 +60,7 @@ $: void queryObject(_id) - async function queryObject (_id: Ref): Promise { + async function queryObject(_id: Ref): Promise { await flush() objectState = undefined patches = [] @@ -69,7 +69,7 @@ }) } - async function submit (): Promise { + async function submit(): Promise { if (object === undefined) { return } @@ -90,14 +90,14 @@ await getClient().updateDoc(object._class, object.space, object._id, { isCompleted: true }) } - function handleChange (patch: Partial): void { + function handleChange(patch: Partial): void { patches = [...patches, { id: patchCounter++, patch }] throttle.call(() => { void flush() }) } - async function flush (): Promise { + async function flush(): Promise { if (!object?._id || patches.length < 1) return const patchesToApply = patches.slice() diff --git a/plugins/survey-resources/src/components/EditQuestion.svelte b/plugins/survey-resources/src/components/EditQuestion.svelte index 9370aa4d64..23c107ba56 100644 --- a/plugins/survey-resources/src/components/EditQuestion.svelte +++ b/plugins/survey-resources/src/components/EditQuestion.svelte @@ -57,11 +57,11 @@ let hovered: boolean = false - function handleChange (patch: Partial): void { + function handleChange(patch: Partial): void { dispatch('change', patch) } - function flush (): void { + function flush(): void { if (isNewQuestion) return const patch: Partial = {} @@ -85,7 +85,7 @@ handleChange({ name: inputName }) } - function changeOption (index: number): void { + function changeOption(index: number): void { if (inputOptions[index]?.trim()?.length === 0) { deleteOption(index) } else { @@ -93,7 +93,7 @@ } } - function addOption (): void { + function addOption(): void { if (inputNewOption.trim().length === 0) { inputNewOption = '' return @@ -103,12 +103,12 @@ handleChange({ options: inputOptions }) } - function deleteOption (index: number): void { + function deleteOption(index: number): void { inputOptions = inputOptions.filter((val, idx) => idx !== index) handleChange({ options: inputOptions }) } - function showQuestionParams (ev: MouseEvent): void { + function showQuestionParams(ev: MouseEvent): void { hovered = true showPopup( SelectPopup, @@ -196,7 +196,7 @@ ) } - function showOptionParams (ev: MouseEvent, index: number): void { + function showOptionParams(ev: MouseEvent, index: number): void { hovered = true showPopup( SelectPopup, @@ -232,7 +232,7 @@ let draggedOverIndex: number | undefined const draggableElements: HTMLElement[] = [] - function onOptionDragStart (ev: DragEvent, index: number): void { + function onOptionDragStart(ev: DragEvent, index: number): void { if (readonly || ev.dataTransfer === null) { return } @@ -245,7 +245,7 @@ ) } - function onOptionDragOver (ev: DragEvent, index: number): void { + function onOptionDragOver(ev: DragEvent, index: number): void { if (draggedIndex === undefined || draggedIndex === draggedOverIndex || draggedIndex + 1 === draggedOverIndex) { return } @@ -253,7 +253,7 @@ draggedOverIndex = index } - function onOptionDragLeave (ev: DragEvent, index: number): void { + function onOptionDragLeave(ev: DragEvent, index: number): void { if (draggedIndex === undefined) { return } @@ -263,7 +263,7 @@ } } - function onOptionDrop (): void { + function onOptionDrop(): void { if (draggedIndex === undefined || draggedOverIndex === undefined) { return } @@ -279,7 +279,7 @@ handleChange({ options: inputOptions }) } - function onOptionDragEnd (): void { + function onOptionDragEnd(): void { draggedIndex = undefined draggedOverIndex = undefined } @@ -287,7 +287,7 @@ let isRootDragging = false let rootElement: HTMLElement - function onRootDragStart (ev: DragEvent): void { + function onRootDragStart(ev: DragEvent): void { if (readonly || ev.dataTransfer === null) { return } @@ -301,12 +301,12 @@ dispatch('dragStart') } - function onRootDragEnd (): void { + function onRootDragEnd(): void { isRootDragging = false dispatch('dragEnd') } - export function focusQuestion (): void { + export function focusQuestion(): void { inputNameEditBox.focusInput() } diff --git a/plugins/survey-resources/src/components/EditSurvey.svelte b/plugins/survey-resources/src/components/EditSurvey.svelte index 52c4347e6a..d27ba2bb04 100644 --- a/plugins/survey-resources/src/components/EditSurvey.svelte +++ b/plugins/survey-resources/src/components/EditSurvey.svelte @@ -41,11 +41,11 @@ let newQuestionComponent: EditQuestion const questionComponents: EditQuestion[] = [] - function handleChange (patch: Partial): void { + function handleChange(patch: Partial): void { dispatch('change', patch) } - function deleteQuestion (index: number): void { + function deleteQuestion(index: number): void { if (!object.questions?.[index]) return showPopup( MessageBox, @@ -64,7 +64,7 @@ ) } - function handleNewQuestionChange (patch: Partial): void { + function handleNewQuestionChange(patch: Partial): void { const question = { ...newQuestion, ...patch } let questions = object.questions ?? [] @@ -75,7 +75,7 @@ handleChange({ questions }) } - function handleQuestionChange (index: number, patch: Partial): Promise | void { + function handleQuestionChange(index: number, patch: Partial): Promise | void { const questions = (object.questions ?? []).slice() questions[index] = { ...questions[index], ...patch } handleChange({ questions }) @@ -84,7 +84,7 @@ let draggedIndex: number | undefined = undefined let draggedOverIndex: number | undefined = undefined - function onQuestionDragOver (ev: DragEvent, index: number): void { + function onQuestionDragOver(ev: DragEvent, index: number): void { if (draggedIndex === undefined || draggedIndex === draggedOverIndex || draggedIndex + 1 === draggedOverIndex) { return } @@ -92,14 +92,14 @@ draggedOverIndex = index } - function onQuestionDragLeave (ev: DragEvent, index: number): void { + function onQuestionDragLeave(ev: DragEvent, index: number): void { if (draggedIndex === undefined) return ev.preventDefault() if (draggedOverIndex === index) draggedOverIndex = undefined } - function onQuestionDrop (): void { + function onQuestionDrop(): void { if (draggedIndex === undefined || draggedOverIndex === undefined) { return } diff --git a/plugins/survey-resources/src/components/EditSurveyPanel.svelte b/plugins/survey-resources/src/components/EditSurveyPanel.svelte index 8a25ab0ca8..8f09cbcf04 100644 --- a/plugins/survey-resources/src/components/EditSurveyPanel.svelte +++ b/plugins/survey-resources/src/components/EditSurveyPanel.svelte @@ -53,7 +53,7 @@ patch: Partial } - function combinedPatch (patches: Patch[]): Partial { + function combinedPatch(patches: Patch[]): Partial { return patches.reduce((r, c) => Object.assign(r, c.patch), {}) } @@ -69,7 +69,7 @@ $: void queryObject(_id) $: poll = preview && object !== undefined ? makePollData(object) : undefined - async function queryObject (_id: Ref): Promise { + async function queryObject(_id: Ref): Promise { await flush() objectState = undefined patches = [] @@ -78,14 +78,14 @@ }) } - function handleChange (patch: Partial): void { + function handleChange(patch: Partial): void { patches = [...patches, { id: patchCounter++, patch }] throttle.call(() => { void flush() }) } - async function flush (): Promise { + async function flush(): Promise { if (!object?._id || patches.length < 1) return const patchesToApply = patches.slice() diff --git a/plugins/survey-resources/src/components/PollCollection.svelte b/plugins/survey-resources/src/components/PollCollection.svelte index 19e5ee360e..c6ba4e27fd 100644 --- a/plugins/survey-resources/src/components/PollCollection.svelte +++ b/plugins/survey-resources/src/components/PollCollection.svelte @@ -36,7 +36,7 @@ let viewlet: Viewlet | undefined let preference: ViewletPreference | undefined - function selectSurvey (ev: MouseEvent): void { + function selectSurvey(ev: MouseEvent): void { showPopup(SurveyPopup, {}, ev.target as HTMLElement, async (result) => { if (result != null) { await createPoll(result as Survey) @@ -44,7 +44,7 @@ }) } - async function createPoll (source: Survey): Promise { + async function createPoll(source: Survey): Promise { const client = getClient() const pollId = await client.addCollection(survey.class.Poll, space, objectId, _class, 'polls', makePollData(source)) diff --git a/plugins/survey-resources/src/components/PollQuestion.svelte b/plugins/survey-resources/src/components/PollQuestion.svelte index 80ea7e7435..bce2ef3d52 100644 --- a/plugins/survey-resources/src/components/PollQuestion.svelte +++ b/plugins/survey-resources/src/components/PollQuestion.svelte @@ -47,7 +47,7 @@ $: syncInputState(question) $: validateAnswer(question, input) - function flush (): void { + function flush(): void { const patch: Partial = {} let haveChanges = false @@ -62,7 +62,7 @@ } onDestroy(flush) - function syncInputState (question: AnsweredQuestion): void { + function syncInputState(question: AnsweredQuestion): void { const current = extractCurrentAnswerSet(input) if (isSameAnswers(current, question)) return @@ -82,11 +82,11 @@ } } - function validateAnswer (question: AnsweredQuestion, input: InputState): void { + function validateAnswer(question: AnsweredQuestion, input: InputState): void { isAnswered = isValidAnswer(question, input) } - function isValidAnswer (question: AnsweredQuestion, input: InputState): boolean { + function isValidAnswer(question: AnsweredQuestion, input: InputState): boolean { if (!question.isMandatory) return true switch (question.kind) { @@ -101,11 +101,11 @@ } } - function handleChange (patch: Partial): void { + function handleChange(patch: Partial): void { dispatch('change', patch) } - function handleAnswerChange (): void { + function handleAnswerChange(): void { const patch = extractCurrentAnswerSet(input) handleChange(patch) } @@ -115,11 +115,11 @@ answers?: number[] } - function isSameAnswers (a1: AnswerSet, a2: AnswerSet): boolean { + function isSameAnswers(a1: AnswerSet, a2: AnswerSet): boolean { return (a1.answer ?? null) === (a2.answer ?? null) && deepEqual(a1.answers ?? null, a2.answers ?? null) } - function extractCurrentAnswerSet (input: InputState): AnswerSet { + function extractCurrentAnswerSet(input: InputState): AnswerSet { switch (question.kind) { case QuestionKind.STRING: { const answer = hasText(input.answer) ? input.answer : undefined @@ -144,7 +144,7 @@ } } - function getReadonlyAnswers (): string[] { + function getReadonlyAnswers(): string[] { switch (question.kind) { case QuestionKind.STRING: return [input.answer.trim()] diff --git a/plugins/survey-resources/src/utils.ts b/plugins/survey-resources/src/utils.ts index 85348f57a2..78e631f2a0 100644 --- a/plugins/survey-resources/src/utils.ts +++ b/plugins/survey-resources/src/utils.ts @@ -52,7 +52,7 @@ export async function generateSurveyLocation (loc: Location, id: Ref): P const appComponent = loc.path[0] ?? '' const workspace = loc.path[1] ?? '' - const objectPanel = client.getHierarchy().classHierarchyMixin(doc._class as Ref>, view.mixin.ObjectPanel) + const objectPanel = client.getHierarchy().classHierarchyMixin(doc._class, view.mixin.ObjectPanel) const component = objectPanel?.component ?? view.component.EditDoc return { @@ -80,7 +80,7 @@ export async function generatePollLocation (loc: Location, id: Ref): Promi const workspace = loc.path[1] ?? '' const appId = loc.path[2] ?? '' - const objectPanel = client.getHierarchy().classHierarchyMixin(doc._class as Ref>, view.mixin.ObjectPanel) + const objectPanel = client.getHierarchy().classHierarchyMixin(doc._class, view.mixin.ObjectPanel) const component = objectPanel?.component ?? view.component.EditDoc return { diff --git a/plugins/tags-resources/src/components/CategoryBar.svelte b/plugins/tags-resources/src/components/CategoryBar.svelte index 2a50efd081..e907a88091 100644 --- a/plugins/tags-resources/src/components/CategoryBar.svelte +++ b/plugins/tags-resources/src/components/CategoryBar.svelte @@ -100,7 +100,7 @@ dispatch('change', { category, elements: selected }) } - function selectTag (evt: Event, category: TagCategory): void { + function selectTag(evt: Event, category: TagCategory): void { showPopup( TagsCategoryPopup, { diff --git a/plugins/tags-resources/src/components/CreateTagElement.svelte b/plugins/tags-resources/src/components/CreateTagElement.svelte index 9da78502ae..cc18c1a42c 100644 --- a/plugins/tags-resources/src/components/CreateTagElement.svelte +++ b/plugins/tags-resources/src/components/CreateTagElement.svelte @@ -56,7 +56,7 @@ category = findTagCategory(title, categories) } - export function canClose (): boolean { + export function canClose(): boolean { return title === '' } @@ -76,7 +76,7 @@ categoryItems = newItems }) - async function createTagElementFnc (): Promise { + async function createTagElementFnc(): Promise { const res = await createTagElement(title, targetClass, category, description, color, keyTitle) dispatch('close', res) } diff --git a/plugins/tags-resources/src/components/DocTagsEditor.svelte b/plugins/tags-resources/src/components/DocTagsEditor.svelte index 1cec1cf691..9d0c28a33f 100644 --- a/plugins/tags-resources/src/components/DocTagsEditor.svelte +++ b/plugins/tags-resources/src/components/DocTagsEditor.svelte @@ -40,7 +40,7 @@ items = result }) - async function click (evt: MouseEvent): Promise { + async function click(evt: MouseEvent): Promise { pressed = true showPopup( TagsEditorPopup, @@ -58,7 +58,7 @@ ) } - async function removeTag (tag: TagReference): Promise { + async function removeTag(tag: TagReference): Promise { if (tag !== undefined) await client.remove(tag) } diff --git a/plugins/tags-resources/src/components/DraftTagsEditor.svelte b/plugins/tags-resources/src/components/DraftTagsEditor.svelte index 24ad0342b2..a37c4ccd06 100644 --- a/plugins/tags-resources/src/components/DraftTagsEditor.svelte +++ b/plugins/tags-resources/src/components/DraftTagsEditor.svelte @@ -28,12 +28,12 @@ const dispatch = createEventDispatcher() - function removeTag (tag: TagReference) { + function removeTag(tag: TagReference) { tags = tags.filter((t) => t !== tag) dispatch('change', tags) } - function click (evt: MouseEvent) { + function click(evt: MouseEvent) { showPopup( DraftTagsPopup, { targetClass, tags }, diff --git a/plugins/tags-resources/src/components/DraftTagsPopup.svelte b/plugins/tags-resources/src/components/DraftTagsPopup.svelte index 48b56c97ec..80a3bd7ca7 100644 --- a/plugins/tags-resources/src/components/DraftTagsPopup.svelte +++ b/plugins/tags-resources/src/components/DraftTagsPopup.svelte @@ -24,7 +24,7 @@ $: selected = tags.map((p) => p.tag) const dispatch = createEventDispatcher() - async function addRef ({ title, color, _id: tag }: TagElement): Promise { + async function addRef({ title, color, _id: tag }: TagElement): Promise { tags = [ ...tags, { @@ -36,12 +36,12 @@ dispatch('update', tags) } - async function removeTag (tag: TagElement): Promise { + async function removeTag(tag: TagElement): Promise { tags = tags.filter((t) => t.tag !== tag._id) dispatch('update', tags) } - async function onUpdate (event: CustomEvent<{ action: string, tag: TagElement }>) { + async function onUpdate(event: CustomEvent<{ action: string, tag: TagElement }>) { const result = event.detail if (result === undefined) return if (result.action === 'add') addRef(result.tag) diff --git a/plugins/tags-resources/src/components/EditTagElement.svelte b/plugins/tags-resources/src/components/EditTagElement.svelte index cdc00c7e87..4677f5f3f2 100644 --- a/plugins/tags-resources/src/components/EditTagElement.svelte +++ b/plugins/tags-resources/src/components/EditTagElement.svelte @@ -45,7 +45,7 @@ category: value.category } - async function updateElement () { + async function updateElement() { const documentUpdate: DocumentUpdate = {} const refUpdate: DocumentUpdate = {} diff --git a/plugins/tags-resources/src/components/LabelsPresenter.svelte b/plugins/tags-resources/src/components/LabelsPresenter.svelte index e09f2aa8c8..9ff72df8a0 100644 --- a/plugins/tags-resources/src/components/LabelsPresenter.svelte +++ b/plugins/tags-resources/src/components/LabelsPresenter.svelte @@ -28,7 +28,7 @@ $: update(object, value) - function update (object: WithLookup, value: number) { + function update(object: WithLookup, value: number) { if (value > 0) { query.query(tags.class.TagReference, { attachedTo: object._id }, (result) => { items = result.slice(ignoreFirst ? 1 : 0) @@ -39,7 +39,7 @@ } } - async function tagsHandler (evt: MouseEvent): Promise { + async function tagsHandler(evt: MouseEvent): Promise { showPopup(TagsEditorPopup, { object }, getEventPopupPositionElement(evt), undefined, undefined, { refId: 'TagsPopup', category: 'popup', diff --git a/plugins/tags-resources/src/components/ObjectsTagsEditorPopup.svelte b/plugins/tags-resources/src/components/ObjectsTagsEditorPopup.svelte index c5634d8d17..dc592024e7 100644 --- a/plugins/tags-resources/src/components/ObjectsTagsEditorPopup.svelte +++ b/plugins/tags-resources/src/components/ObjectsTagsEditorPopup.svelte @@ -42,7 +42,7 @@ }) const client = getClient() - async function addRef ({ title, color, _id: tag }: TagElement): Promise { + async function addRef({ title, color, _id: tag }: TagElement): Promise { await Promise.all( objects.map(async (object) => { if (tagRefs.findIndex((p) => p.attachedTo === object._id && p.tag === tag) !== -1) return @@ -55,7 +55,7 @@ }) ) } - async function removeTag (tag: TagElement): Promise { + async function removeTag(tag: TagElement): Promise { await Promise.all( objects.map(async (object) => { const tagRef = await client.findOne(tags.class.TagReference, { attachedTo: object._id, tag: tag._id }) @@ -63,7 +63,7 @@ }) ) } - async function onUpdate (event: CustomEvent<{ action: string, tag: TagElement }>) { + async function onUpdate(event: CustomEvent<{ action: string, tag: TagElement }>) { const result = event.detail if (result === undefined) return if (result.action === 'add') addRef(result.tag) diff --git a/plugins/tags-resources/src/components/Tags.svelte b/plugins/tags-resources/src/components/Tags.svelte index eff37b91bd..6db13f7a2a 100644 --- a/plugins/tags-resources/src/components/Tags.svelte +++ b/plugins/tags-resources/src/components/Tags.svelte @@ -38,7 +38,7 @@ { sort: { weight: -1, title: 1 } } ) - async function addRef (tag: TagElement): Promise { + async function addRef(tag: TagElement): Promise { await client.addCollection(tags.class.TagReference, object.space, object._id, _class, key.key, { title: tag.title, tag: tag._id, @@ -46,11 +46,11 @@ }) } - async function removeTag (id: Ref): Promise { + async function removeTag(id: Ref): Promise { await client.removeCollection(tags.class.TagReference, object.space, id, object._id, _class, key.key) } - async function updateWeight (tag: TagReference, weight: TagReference['weight']): Promise { + async function updateWeight(tag: TagReference, weight: TagReference['weight']): Promise { await client.update(tag, { weight }) } diff --git a/plugins/tags-resources/src/components/TagsAttributeEditor.svelte b/plugins/tags-resources/src/components/TagsAttributeEditor.svelte index 951d314e61..0f0bcd38c9 100644 --- a/plugins/tags-resources/src/components/TagsAttributeEditor.svelte +++ b/plugins/tags-resources/src/components/TagsAttributeEditor.svelte @@ -25,7 +25,7 @@ $: query.query(tags.class.TagReference, { attachedTo: object._id }, (result) => { items = result }) - async function tagsHandler (evt: MouseEvent): Promise { + async function tagsHandler(evt: MouseEvent): Promise { if (readonly) return showPopup(TagsEditorPopup, { object, targetClass }, getEventPopupPositionElement(evt), undefined, undefined, { refId: 'TagsPopup', @@ -33,7 +33,7 @@ overlay: true }) } - async function removeTag (tag: TagReference): Promise { + async function removeTag(tag: TagReference): Promise { if (tag !== undefined) { await client.remove(tag) const id = await getObjectId(object, hierarchy) diff --git a/plugins/tags-resources/src/components/TagsDropdownEditor.svelte b/plugins/tags-resources/src/components/TagsDropdownEditor.svelte index e8c9e7a871..5ce5049930 100644 --- a/plugins/tags-resources/src/components/TagsDropdownEditor.svelte +++ b/plugins/tags-resources/src/components/TagsDropdownEditor.svelte @@ -48,10 +48,10 @@ keyLabel = v }) - async function addRef (tag: TagElement): Promise { + async function addRef(tag: TagElement): Promise { dispatch('open', tag) } - async function addTag (evt: Event): Promise { + async function addTag(evt: Event): Promise { showPopup( TagsPopup, { @@ -79,7 +79,7 @@ ) } - async function removeTag (tag: TagElement): Promise { + async function removeTag(tag: TagElement): Promise { dispatch('delete', tag) } diff --git a/plugins/tags-resources/src/components/TagsEditor.svelte b/plugins/tags-resources/src/components/TagsEditor.svelte index f4c10e6f76..2e97ad4254 100644 --- a/plugins/tags-resources/src/components/TagsEditor.svelte +++ b/plugins/tags-resources/src/components/TagsEditor.svelte @@ -74,10 +74,10 @@ { items: initial, label: tags.string.Initial } ] - async function addRef (tag: TagElement): Promise { + async function addRef(tag: TagElement): Promise { dispatch('open', tag) } - async function addTag (evt: Event): Promise { + async function addTag(evt: Event): Promise { showPopup( TagsPopup, { @@ -102,7 +102,7 @@ ) } - async function removeTag (id: Ref): Promise { + async function removeTag(id: Ref): Promise { dispatch('delete', id) } diff --git a/plugins/tags-resources/src/components/TagsEditorPopup.svelte b/plugins/tags-resources/src/components/TagsEditorPopup.svelte index 9be7ce487d..47a65d7b55 100644 --- a/plugins/tags-resources/src/components/TagsEditorPopup.svelte +++ b/plugins/tags-resources/src/components/TagsEditorPopup.svelte @@ -31,7 +31,7 @@ }) const client = getClient() const hierarchy = client.getHierarchy() - async function addRef ({ title, color, _id: tag }: TagElement): Promise { + async function addRef({ title, color, _id: tag }: TagElement): Promise { // check if tag already attached, could happen if 'add' clicked faster than ui updates const containsTag = selected.some((refElement) => refElement === tag) if (containsTag) { @@ -49,7 +49,7 @@ Analytics.handleEvent(TagsEvents.TagCreated, { objectId: id, objectClass: object._class }) } - async function removeTag (tag: TagElement): Promise { + async function removeTag(tag: TagElement): Promise { const tagRef = await client.findOne(tags.class.TagReference, { tag: tag._id, attachedTo: object._id }) if (tagRef) { await client.remove(tagRef) @@ -59,7 +59,7 @@ } } - async function onUpdate (event: CustomEvent<{ action: string, tag: TagElement }>) { + async function onUpdate(event: CustomEvent<{ action: string, tag: TagElement }>) { const result = event.detail if (result === undefined) return if (result.action === 'add') addRef(result.tag) diff --git a/plugins/tags-resources/src/components/TagsFilter.svelte b/plugins/tags-resources/src/components/TagsFilter.svelte index b1e2785606..59bce92445 100644 --- a/plugins/tags-resources/src/components/TagsFilter.svelte +++ b/plugins/tags-resources/src/components/TagsFilter.svelte @@ -65,7 +65,7 @@ let objectsPromise: Promise> | undefined let queryId = 0 - async function getValues (search: string): Promise { + async function getValues(search: string): Promise { const qid = ++queryId const resultQuery = search !== '' @@ -112,7 +112,7 @@ return false } - function handleFilterToggle (element: TagElement): void { + function handleFilterToggle(element: TagElement): void { if (isSelected(element)) { selected = selected.filter((p) => p !== element._id) } else { @@ -124,7 +124,7 @@ updateFilter(selected, level) } - function updateFilter (newValues: Ref[], newLevel: number) { + function updateFilter(newValues: Ref[], newLevel: number) { clearTimeout(filterUpdateTimeout) filterUpdateTimeout = setTimeout(() => { diff --git a/plugins/tags-resources/src/components/TagsPopup.svelte b/plugins/tags-resources/src/components/TagsPopup.svelte index 517413896d..ada1bd214b 100644 --- a/plugins/tags-resources/src/components/TagsPopup.svelte +++ b/plugins/tags-resources/src/components/TagsPopup.svelte @@ -69,7 +69,7 @@ objects = newElements.concat(result) }) - async function onCreateTagElement (res: Ref | undefined | null): Promise { + async function onCreateTagElement(res: Ref | undefined | null): Promise { if (res == null) return const tag = await getClient().findOne(tags.class.TagElement, { _id: res }) dispatch('update', { action: 'add', tag }) @@ -77,11 +77,11 @@ inProcess = false } - async function createTagElementPopup (): Promise { + async function createTagElementPopup(): Promise { showPopup(CreateTagElement, { targetClass, title: search }, 'top', onCreateTagElement) } - async function createTagElementQuick (): Promise { + async function createTagElementQuick(): Promise { const res = await createTagElement( search, targetClass, @@ -124,7 +124,7 @@ return r } - async function onSearchKeydown (ev: KeyboardEvent): Promise { + async function onSearchKeydown(ev: KeyboardEvent): Promise { if (ev.code !== 'Enter') return if (!inProcess && !hideAdd && objects.length < 1) { inProcess = true diff --git a/plugins/tags-resources/src/components/TagsView.svelte b/plugins/tags-resources/src/components/TagsView.svelte index e7ed1280c2..1e4fb07347 100644 --- a/plugins/tags-resources/src/components/TagsView.svelte +++ b/plugins/tags-resources/src/components/TagsView.svelte @@ -49,14 +49,14 @@ let search = '' let resultQuery: DocumentQuery = { targetClass } - function updateResultQuery (search: string, category?: Ref): void { + function updateResultQuery(search: string, category?: Ref): void { resultQuery = search === '' ? { targetClass } : { $search: search, targetClass } if (category !== undefined) { resultQuery.category = category } } - function showCreateDialog () { + function showCreateDialog() { showPopup(CreateTagElement, { targetClass, keyTitle }, 'top') } const opt: FindOptions = { diff --git a/plugins/task-resources/src/components/AssignedTasks.svelte b/plugins/task-resources/src/components/AssignedTasks.svelte index 0162428f7d..fda09f9172 100644 --- a/plugins/task-resources/src/components/AssignedTasks.svelte +++ b/plugins/task-resources/src/components/AssignedTasks.svelte @@ -60,7 +60,7 @@ $: mode = $resolvedLocationStore.query?.mode ?? undefined let searchQuery: DocumentQuery = { baseQuery } - function updateSearchQuery (search: string): void { + function updateSearchQuery(search: string): void { searchQuery = search === '' ? { ...baseQuery } : { ...baseQuery, $search: search } } $: if (baseQuery) updateSearchQuery(search) @@ -69,7 +69,7 @@ let loading = true let preference: ViewletPreference | undefined - function updateResultQuery (search: string, doneStates: Status[], mode: string | undefined): void { + function updateResultQuery(search: string, doneStates: Status[], mode: string | undefined): void { if (mode === 'assigned') { resultQuery.status = { $nin: doneStates.map((it) => it._id) } } @@ -80,7 +80,7 @@ ) const subscribedQuery = createQuery() - function getSubscribed (): void { + function getSubscribed(): void { subscribedQuery.query( _class, { 'notification:mixin:Collaborators.collaborators': { $in: getCurrentAccount().socialIds } }, diff --git a/plugins/task-resources/src/components/CreateFilterPopup.svelte b/plugins/task-resources/src/components/CreateFilterPopup.svelte index 83d53d40bf..e3cab74f08 100644 --- a/plugins/task-resources/src/components/CreateFilterPopup.svelte +++ b/plugins/task-resources/src/components/CreateFilterPopup.svelte @@ -21,13 +21,13 @@ const dispatch = createEventDispatcher() - function click (value: Timestamp | undefined): void { + function click(value: Timestamp | undefined): void { closeTooltip() dispatch('close', value) } const today = new Date().setHours(0, 0, 0, 0) - function shiftDays (diff: number): number { + function shiftDays(diff: number): number { return new Date(today).setDate(new Date(today).getDate() - diff) } diff --git a/plugins/task-resources/src/components/Dashboard.svelte b/plugins/task-resources/src/components/Dashboard.svelte index 3376dde2b9..993094daed 100644 --- a/plugins/task-resources/src/components/Dashboard.svelte +++ b/plugins/task-resources/src/components/Dashboard.svelte @@ -33,7 +33,7 @@ $: states = getStates(project, $typeStore, $statusStore.byId) - function updateStates (space: Ref): void { + function updateStates(space: Ref): void { statesQuery.query(task.class.Project, { _id: space }, (result) => { project = result[0] }) @@ -43,7 +43,7 @@ let ids: Ref[] = [] const txQuery = createQuery() - function updateTxes (_class: Ref>, space: Ref, modified: Timestamp | undefined): void { + function updateTxes(_class: Ref>, space: Ref, modified: Timestamp | undefined): void { if (modified === undefined) { ids = [] return @@ -77,7 +77,7 @@ $: group(tasks, $statusStore.byId) - function group (tasks: Task[], statuses: IdMap): void { + function group(tasks: Task[], statuses: IdMap): void { const template = new Map, DashboardItem>( states.map((p) => { return [ @@ -109,7 +109,7 @@ items = Array.from(template.values()) } - function updateDocs (_class: Ref>, states: Status[], query: DocumentQuery): void { + function updateDocs(_class: Ref>, states: Status[], query: DocumentQuery): void { if (states.length === 0) { return } diff --git a/plugins/task-resources/src/components/StatusFilter.svelte b/plugins/task-resources/src/components/StatusFilter.svelte index 1c1fd55791..34f8ecac5f 100644 --- a/plugins/task-resources/src/components/StatusFilter.svelte +++ b/plugins/task-resources/src/components/StatusFilter.svelte @@ -63,7 +63,7 @@ let filterUpdateTimeout: any | undefined - async function getValues ( + async function getValues( search: string, selectedType: Ref | undefined, typeStore: IdMap, @@ -141,7 +141,7 @@ objectsPromise = undefined } - async function sort (statuses: Status[]): Promise { + async function sort(statuses: Status[]): Promise { const categories = toIdMap(await client.findAll(core.class.StatusCategory, {})) statuses.sort((a, b) => { if (a.category !== undefined && b.category !== undefined && a.category !== b.category) { @@ -157,11 +157,11 @@ return statuses } - function isSelected (value: Doc | undefined | null, values: any[]): boolean { + function isSelected(value: Doc | undefined | null, values: any[]): boolean { return values.includes(value?._id ?? value) } - function handleFilterToggle (value: any): void { + function handleFilterToggle(value: any): void { if (isSelected(value, filter.value)) { filter.value = filter.value.filter((p) => (value ? p !== value._id : p != null)) } else { @@ -175,7 +175,7 @@ updateFilter() } - function updateFilter (): void { + function updateFilter(): void { clearTimeout(filterUpdateTimeout) filterUpdateTimeout = setTimeout(() => { diff --git a/plugins/task-resources/src/components/StatusSelector.svelte b/plugins/task-resources/src/components/StatusSelector.svelte index 4d04734d5d..6f59ee744d 100644 --- a/plugins/task-resources/src/components/StatusSelector.svelte +++ b/plugins/task-resources/src/components/StatusSelector.svelte @@ -39,7 +39,7 @@ Analytics.handleEvent('task.SetStatus', { status: newStatus, objects: ids }) } - async function getAnalyticsIds (docs: Task[]): Promise { + async function getAnalyticsIds(docs: Task[]): Promise { const result: string[] = [] for (const doc of docs) { @@ -61,7 +61,7 @@ : undefined : value.kind - function updateStatuses (taskTypes: IdMap, store: IdMap, kind: Ref | undefined): void { + function updateStatuses(taskTypes: IdMap, store: IdMap, kind: Ref | undefined): void { if (kind === undefined) { statuses = [] } else { diff --git a/plugins/task-resources/src/components/StatusTableView.svelte b/plugins/task-resources/src/components/StatusTableView.svelte index a7d8f6afe5..fc7d3db79d 100644 --- a/plugins/task-resources/src/components/StatusTableView.svelte +++ b/plugins/task-resources/src/components/StatusTableView.svelte @@ -46,7 +46,7 @@ let resultQuery: DocumentQuery let divScroll: HTMLElement - function getItems (doneStates: Status[]): TabItem[] { + function getItems(doneStates: Status[]): TabItem[] { const itemsDS: TabItem[] = doneStates.map((s) => { return { id: s._id, @@ -59,7 +59,7 @@ return itemsDS } - function updateConfig (config: string[]): string[] { + function updateConfig(config: string[]): string[] { if (state !== undefined) { return config.filter((p) => p !== 'status') } @@ -83,7 +83,7 @@ const client = getClient() - function updateQuery (query: DocumentQuery, selectedDoneStates: Set>): void { + function updateQuery(query: DocumentQuery, selectedDoneStates: Set>): void { resConfig = updateConfig(config) const result = client.getHierarchy().clone(query) if (state) { @@ -102,7 +102,7 @@ resultQuery = result } - function doneStateClick (id: Ref): void { + function doneStateClick(id: Ref): void { withoutDone = false if (selectedDoneStates.has(id)) selectedDoneStates.delete(id) else selectedDoneStates.add(id) @@ -116,7 +116,7 @@ updateQuery(query, selectedDoneStates) } - function noDoneClick (): void { + function noDoneClick(): void { withoutDone = true selectedDS = ['NoDoneState'] selectedDoneStates.clear() diff --git a/plugins/task-resources/src/components/TaskHeader.svelte b/plugins/task-resources/src/components/TaskHeader.svelte index 30d1c8aaaa..cc86d0b5a7 100644 --- a/plugins/task-resources/src/components/TaskHeader.svelte +++ b/plugins/task-resources/src/components/TaskHeader.svelte @@ -33,7 +33,7 @@ const client = getClient() const hierarchy = client.getHierarchy() - function change () { + function change() { client.updateCollection( object._class, object.space, @@ -47,7 +47,7 @@ $: assigneeTitle = hierarchy.getAttribute(object._class, 'assignee').label - function getAssigneeClass (object: Task): Ref> { + function getAssigneeClass(object: Task): Ref> { const attribute = hierarchy.getAttribute(object._class, 'assignee') const attrClass = attribute.type._class if (attrClass === core.class.RefTo) { diff --git a/plugins/task-resources/src/components/TypesView.svelte b/plugins/task-resources/src/components/TypesView.svelte index f2e9c036e9..f7b42b249c 100644 --- a/plugins/task-resources/src/components/TypesView.svelte +++ b/plugins/task-resources/src/components/TypesView.svelte @@ -71,7 +71,7 @@ $: searchQuery = search === '' ? query : { ...query, $search: search } $: resultQuery = searchQuery - function showCreateDialog (): void { + function showCreateDialog(): void { if (createComponent === undefined) return showPopup(createComponent, createComponentProps, 'top') } diff --git a/plugins/task-resources/src/components/kanban/KanbanView.svelte b/plugins/task-resources/src/components/kanban/KanbanView.svelte index 2b6110acce..8dfd8fac30 100644 --- a/plugins/task-resources/src/components/kanban/KanbanView.svelte +++ b/plugins/task-resources/src/components/kanban/KanbanView.svelte @@ -164,7 +164,7 @@ const queryId = generateId() - function update (): void { + function update(): void { void updateTaskKanbanCategories( client, viewlet, @@ -196,7 +196,7 @@ categories = res }) - function getHeader (_class: Ref>, groupByKey: string): void { + function getHeader(_class: Ref>, groupByKey: string): void { if (groupByKey === noCategory) { headerComponent = undefined } else { diff --git a/plugins/task-resources/src/components/projectTypes/CreateProjectType.svelte b/plugins/task-resources/src/components/projectTypes/CreateProjectType.svelte index 797c778336..532957ad56 100644 --- a/plugins/task-resources/src/components/projectTypes/CreateProjectType.svelte +++ b/plugins/task-resources/src/components/projectTypes/CreateProjectType.svelte @@ -32,7 +32,7 @@ const dispatch = createEventDispatcher() - async function createType (): Promise { + async function createType(): Promise { if (projDescriptor === undefined) { return } diff --git a/plugins/task-resources/src/components/projectTypes/ProjectTypeTasksTypeSectionEditor.svelte b/plugins/task-resources/src/components/projectTypes/ProjectTypeTasksTypeSectionEditor.svelte index 013aa1de7c..cefcbfef66 100644 --- a/plugins/task-resources/src/components/projectTypes/ProjectTypeTasksTypeSectionEditor.svelte +++ b/plugins/task-resources/src/components/projectTypes/ProjectTypeTasksTypeSectionEditor.svelte @@ -40,7 +40,7 @@ { sort: { _id: SortingOrder.Ascending } } ) - function handleTaskTypeSelected (id: string | undefined): void { + function handleTaskTypeSelected(id: string | undefined): void { const loc = getCurrentResolvedLocation() if (id !== undefined) { loc.path[5] = 'taskTypes' diff --git a/plugins/task-resources/src/components/state/CreateStatePopup.svelte b/plugins/task-resources/src/components/state/CreateStatePopup.svelte index 110091035d..0b43620579 100644 --- a/plugins/task-resources/src/components/state/CreateStatePopup.svelte +++ b/plugins/task-resources/src/components/state/CreateStatePopup.svelte @@ -103,7 +103,7 @@ value.trim() !== '' && !selectableStates.some((it) => it.name === value) - async function save (): Promise { + async function save(): Promise { if (readonly) return if (total > 0 && value.trim() !== status?.name?.trim()) { // We should ask for changes approve. @@ -125,7 +125,7 @@ } } - async function performSave (): Promise { + async function performSave(): Promise { if (_taskType === undefined || _class === undefined) return if (status === undefined) { const _id = await createState(client, _class, { @@ -229,7 +229,7 @@ icon: it.icon })) - async function renameStatuses ( + async function renameStatuses( type: ProjectType, taskType: TaskType, oldStatus: Ref, @@ -259,7 +259,7 @@ } } - function onDelete (): void { + function onDelete(): void { if (status === undefined || readonly) return const estatus = status showPopup( @@ -303,7 +303,7 @@ ) } - function onDuplicate (): void { + function onDuplicate(): void { if (readonly) return let pattern = '' let inc = 2 diff --git a/plugins/task-resources/src/components/state/StateIconPresenter.svelte b/plugins/task-resources/src/components/state/StateIconPresenter.svelte index 92113d5faa..d4b4da704a 100644 --- a/plugins/task-resources/src/components/state/StateIconPresenter.svelte +++ b/plugins/task-resources/src/components/state/StateIconPresenter.svelte @@ -53,7 +53,7 @@ ? getPlatformColorDef(viewState.color ?? category?.color ?? getColorNumberByText(viewState.name), $themeStore.dark) : undefined - function getViewState (type: ProjectType | undefined, state: Status | undefined): Status | undefined { + function getViewState(type: ProjectType | undefined, state: Status | undefined): Status | undefined { if (state === undefined) return if (type === undefined) return state const statusColor = type?.statuses?.find((p) => p._id === state._id)?.color @@ -66,12 +66,12 @@ } } - async function updateCategory (value: Status | undefined): Promise { + async function updateCategory(value: Status | undefined): Promise { if (value === undefined) return category = await client.findOne(core.class.StatusCategory, { _id: value.category }) } - async function getType (space: Ref, types: IdMap): Promise { + async function getType(space: Ref, types: IdMap): Promise { const _space = await client.findOne(task.class.Project, { _id: space }) if (_space === undefined) { type = undefined diff --git a/plugins/task-resources/src/components/state/StatePresenter.svelte b/plugins/task-resources/src/components/state/StatePresenter.svelte index ca566c878c..ed135ba2be 100644 --- a/plugins/task-resources/src/components/state/StatePresenter.svelte +++ b/plugins/task-resources/src/components/state/StatePresenter.svelte @@ -61,7 +61,7 @@ const client = getClient() - async function getType ( + async function getType( space: Ref | undefined, projectType: Ref | undefined, types: IdMap diff --git a/plugins/task-resources/src/components/state/StatesBar.svelte b/plugins/task-resources/src/components/state/StatesBar.svelte index 813cde3e5a..8f4ca1a6b7 100644 --- a/plugins/task-resources/src/components/state/StatesBar.svelte +++ b/plugins/task-resources/src/components/state/StatesBar.svelte @@ -76,7 +76,7 @@ categories = toIdMap(res) }) - function getColor ( + function getColor( state: Status, _space: Project | undefined, typeStore: IdMap, diff --git a/plugins/task-resources/src/components/state/StatesPopup.svelte b/plugins/task-resources/src/components/state/StatesPopup.svelte index f34fc56ac6..0969988ef5 100644 --- a/plugins/task-resources/src/components/state/StatesPopup.svelte +++ b/plugins/task-resources/src/components/state/StatesPopup.svelte @@ -36,7 +36,7 @@ const client = getClient() - async function getType (space: Ref, types: IdMap): Promise { + async function getType(space: Ref, types: IdMap): Promise { const _space = await client.findOne(task.class.Project, { _id: space }) if (_space === undefined) { type = undefined diff --git a/plugins/task-resources/src/components/state/StatesProjectEditor.svelte b/plugins/task-resources/src/components/state/StatesProjectEditor.svelte index 55e937c075..bb28a80ec3 100644 --- a/plugins/task-resources/src/components/state/StatesProjectEditor.svelte +++ b/plugins/task-resources/src/components/state/StatesProjectEditor.svelte @@ -35,7 +35,7 @@ let dragState: Ref let opened: Ref | undefined - function dragswap (ev: MouseEvent, i: number, targetCategory: Ref): boolean { + function dragswap(ev: MouseEvent, i: number, targetCategory: Ref): boolean { if (readonly) return false const s = selected as number const sourceState = states[s] @@ -53,7 +53,7 @@ return false } - function dragover (ev: MouseEvent, i: number, targetCategory: Ref): void { + function dragover(ev: MouseEvent, i: number, targetCategory: Ref): void { if (readonly) return const s = selected as number @@ -63,7 +63,7 @@ } } - function moveState (i: number): void { + function moveState(i: number): void { if (readonly || selected === undefined || i === selected) return // Get state to move @@ -82,7 +82,7 @@ selected = targetIndex } - function onMove (to: number, targetCategory: Ref): void { + function onMove(to: number, targetCategory: Ref): void { if (readonly) return const state = $statusStore.byId.get(dragState) @@ -113,11 +113,11 @@ categoriesMap = toIdMap(res) }) - function getProjectStatus (type: ProjectType, state: Status): ProjectStatus | undefined { + function getProjectStatus(type: ProjectType, state: Status): ProjectStatus | undefined { return type.statuses.find((p) => p._id === state._id) } - function group (categories: StatusCategory[], states: Status[]): Map, Status[]> { + function group(categories: StatusCategory[], states: Status[]): Map, Status[]> { const map = new Map, Status[]>(categories.map((p) => [p._id, []])) for (const state of states) { if (state.category === undefined) continue @@ -134,7 +134,7 @@ $: groups = group(categories, taskTypeStates) - function getPrevIndex (groups: Map, Status[]>, categories: Ref): number { + function getPrevIndex(groups: Map, Status[]>, categories: Ref): number { let index = 0 for (const [cat, states] of groups) { if (cat === categories) { diff --git a/plugins/task-resources/src/components/state/TypeStatesPopup.svelte b/plugins/task-resources/src/components/state/TypeStatesPopup.svelte index 521df564a6..8382387f99 100644 --- a/plugins/task-resources/src/components/state/TypeStatesPopup.svelte +++ b/plugins/task-resources/src/components/state/TypeStatesPopup.svelte @@ -32,7 +32,7 @@ $: states = getStates($statusStore.byId, type, taskType) - function getStates ( + function getStates( statusStore: IdMap, type: ProjectType | undefined, taskType: TaskType | undefined @@ -48,7 +48,7 @@ const dispatch = createEventDispatcher() - function getColor (state: Status, type: ProjectType | undefined, categories: IdMap): ColorDefinition { + function getColor(state: Status, type: ProjectType | undefined, categories: IdMap): ColorDefinition { const category = state.category ? categories.get(state.category) : undefined const statusColor = type?.statuses?.find((p) => p._id === state._id)?.color const targetColor = diff --git a/plugins/task-resources/src/components/taskTypes/CreateTaskType.svelte b/plugins/task-resources/src/components/taskTypes/CreateTaskType.svelte index 9d7dfa4844..fbec74a92a 100644 --- a/plugins/task-resources/src/components/taskTypes/CreateTaskType.svelte +++ b/plugins/task-resources/src/components/taskTypes/CreateTaskType.svelte @@ -35,7 +35,7 @@ export let descriptor: ProjectTypeDescriptor export let taskType: TaskType | undefined - function defaultTaskType (type: ProjectType): Data { + function defaultTaskType(type: ProjectType): Data { return { kind: 'task', name: '', @@ -68,7 +68,7 @@ let { kind, name, targetClass, statusCategories, statuses, allowedAsChildOf } = taskType !== undefined ? { ...taskType } : { ...defaultTaskType(type) } - function findStatusClass (_class: Ref>): Ref> | undefined { + function findStatusClass(_class: Ref>): Ref> | undefined { const h = getClient().getHierarchy() const attrs = h.getAllAttributes(_class) for (const it of attrs.values()) { @@ -80,7 +80,7 @@ let taskTypeDescriptor: TaskTypeDescriptor = taskTypeDescriptors[0] - async function save (): Promise { + async function save(): Promise { if (type === undefined) return const descr = taskTypeDescriptors.find((it) => it._id === taskTypeDescriptor._id) diff --git a/plugins/task-resources/src/components/taskTypes/TaskKindSelector.svelte b/plugins/task-resources/src/components/taskTypes/TaskKindSelector.svelte index b6ca7bc33a..7113ad933d 100644 --- a/plugins/task-resources/src/components/taskTypes/TaskKindSelector.svelte +++ b/plugins/task-resources/src/components/taskTypes/TaskKindSelector.svelte @@ -52,7 +52,7 @@ const dispatch = createEventDispatcher() - function change () { + function change() { dispatch('change', value) } diff --git a/plugins/task-resources/src/components/taskTypes/TaskTypeEditor.svelte b/plugins/task-resources/src/components/taskTypes/TaskTypeEditor.svelte index d0a2b69a64..c67e86bae9 100644 --- a/plugins/task-resources/src/components/taskTypes/TaskTypeEditor.svelte +++ b/plugins/task-resources/src/components/taskTypes/TaskTypeEditor.svelte @@ -88,7 +88,7 @@ ) } - function selectIcon (el: MouseEvent): void { + function selectIcon(el: MouseEvent): void { if (readonly) { return } @@ -107,7 +107,7 @@ ) } - function handleAddStatus (): void { + function handleAddStatus(): void { if (taskType === undefined || readonly) { return } @@ -134,7 +134,7 @@ $: canDelete = !loading && tasksCounter === 0 - async function handleDelete (): Promise { + async function handleDelete(): Promise { if (!canDelete || readonly || taskType == null) { return } @@ -155,7 +155,7 @@ } }) } - async function showIssuesOfTaskType (): Promise { + async function showIssuesOfTaskType(): Promise { if (taskType == null) return const descriptor = client .getModel() diff --git a/plugins/telegram-resources/src/components/Chat.svelte b/plugins/telegram-resources/src/components/Chat.svelte index b57e04ad40..f51157a35f 100644 --- a/plugins/telegram-resources/src/components/Chat.svelte +++ b/plugins/telegram-resources/src/components/Chat.svelte @@ -82,7 +82,7 @@ const messagesQuery = createQuery() const settingsQuery = createQuery() - function updateMessagesQuery (channelId: Ref): void { + function updateMessagesQuery(channelId: Ref): void { messagesQuery.query( telegram.class.Message, { attachedTo: channelId }, @@ -112,7 +112,7 @@ } ) - async function onMessage (event: CustomEvent) { + async function onMessage(event: CustomEvent) { if (channel === undefined) return const { message, attachments } = event.detail await client.addCollection( @@ -137,7 +137,7 @@ // return message.incoming ? object.name : accounts.get(message.modifiedBy as PersonId)?.name ?? '' // } - async function share (): Promise { + async function share(): Promise { // TODO: FIXME throw new Error('Not implemented') // const selectedMessages = messages.filter((m) => selected.has(m._id as unknown as Ref)) @@ -157,7 +157,7 @@ // clear() } - function clear (): void { + function clear(): void { selectable = false selected.clear() selected = selected @@ -173,7 +173,7 @@ // }) // } - async function onConnectClose (res: any): Promise { + async function onConnectClose(res: any): Promise { if (res?.value) { await client.createDoc(setting.class.Integration, core.space.Workspace, { type: telegram.integrationType.Telegram, @@ -183,7 +183,7 @@ } } - async function onReconnect (res: any): Promise { + async function onReconnect(res: any): Promise { if (res?.value && integration !== undefined) { await client.update(integration, { disabled: false diff --git a/plugins/telegram-resources/src/components/Configure.svelte b/plugins/telegram-resources/src/components/Configure.svelte index 07a192c0ba..63c5d41c60 100644 --- a/plugins/telegram-resources/src/components/Configure.svelte +++ b/plugins/telegram-resources/src/components/Configure.svelte @@ -110,7 +110,7 @@ }) // Get channel icon based on type - function getChannelIcon (channel: TelegramChannelConfig) { + function getChannelIcon(channel: TelegramChannelConfig) { switch (channel.type) { case 'user': return telegram.icon.User @@ -150,7 +150,7 @@ }) // Handle filter changes - function handleFilterChange (event: CustomEvent): void { + function handleFilterChange(event: CustomEvent): void { activeFilters = event.detail } @@ -159,7 +159,7 @@ updateSelectAllForFiltered(filteredChannels, selectedChannels) } - function updateSelectAllForFiltered (filtered: typeof filteredChannels, selected: typeof selectedChannels): void { + function updateSelectAllForFiltered(filtered: typeof filteredChannels, selected: typeof selectedChannels): void { if (filtered === undefined || filtered.length === 0) { selectAll = false return @@ -171,7 +171,7 @@ } // Handle individual channel selection - function toggleChannelSelection (channelId: string): void { + function toggleChannelSelection(channelId: string): void { if (selectedChannels.has(channelId)) { selectedChannels.delete(channelId) } else { @@ -182,7 +182,7 @@ } // Update sync status for individual channel - function updateChannelSync (channelId: string, enabled: boolean): void { + function updateChannelSync(channelId: string, enabled: boolean): void { const channel = channels.find((c) => c.id === channelId) if (channel) { channel.syncEnabled = enabled @@ -191,7 +191,7 @@ } } - function updateChannelSpace (channelId: string, space: Space): void { + function updateChannelSpace(channelId: string, space: Space): void { const channel = channels.find((c) => c.id === channelId) if (channel !== undefined && channel?.syncEnabled) { channel.space = space._id @@ -201,7 +201,7 @@ } // Action button functions - function selectAllFiltered (): void { + function selectAllFiltered(): void { filteredChannels.forEach((channel) => { selectedChannels.add(channel.id) }) @@ -209,7 +209,7 @@ updateSelectAllForFiltered(filteredChannels, selectedChannels) } - function unselectAllFiltered (): void { + function unselectAllFiltered(): void { filteredChannels.forEach((channel) => { selectedChannels.delete(channel.id) }) @@ -217,19 +217,19 @@ updateSelectAllForFiltered(filteredChannels, selectedChannels) } - function enableSelectedChannels (): void { + function enableSelectedChannels(): void { selectedChannels.forEach((channelId) => { updateChannelSync(channelId, true) }) } - function disableSelectedChannels (): void { + function disableSelectedChannels(): void { selectedChannels.forEach((channelId) => { updateChannelSync(channelId, false) }) } - function showActionsPopup (event: MouseEvent): void { + function showActionsPopup(event: MouseEvent): void { const actionItems = [ { id: 'select-all', @@ -280,12 +280,12 @@ ) } - function handleRightClick (event: MouseEvent): void { + function handleRightClick(event: MouseEvent): void { event.preventDefault() showActionsPopup(event) } - async function applyChanges (): Promise { + async function applyChanges(): Promise { // Dispatch event to apply changes const integrationClient = await getIntegrationClient() integration = isWorkspaceIntegration(integration) @@ -316,11 +316,11 @@ } // Clear search - function clearSearch (): void { + function clearSearch(): void { searchQuery = '' } - function close (): void { + function close(): void { closePopup() } diff --git a/plugins/telegram-resources/src/components/ConfigureBotPopup.svelte b/plugins/telegram-resources/src/components/ConfigureBotPopup.svelte index 78e3ddc556..a16004aff5 100644 --- a/plugins/telegram-resources/src/components/ConfigureBotPopup.svelte +++ b/plugins/telegram-resources/src/components/ConfigureBotPopup.svelte @@ -37,7 +37,7 @@ void loadBotInfo() }) - async function loadBotInfo (): Promise { + async function loadBotInfo(): Promise { if (info !== undefined || isLoading) return isLoading = true try { @@ -54,7 +54,7 @@ isLoading = false } - async function handleTestConnection (): Promise { + async function handleTestConnection(): Promise { isTestingConnection = true isConnectionEstablished = false connectionError = undefined @@ -90,7 +90,7 @@ let isCodeValid = false let codeError: IntlString | undefined - async function handleCode (event: CustomEvent): Promise { + async function handleCode(event: CustomEvent): Promise { isCodeValid = false codeError = undefined diff --git a/plugins/telegram-resources/src/components/Connect.svelte b/plugins/telegram-resources/src/components/Connect.svelte index 968fe191a8..1c7b8928ea 100644 --- a/plugins/telegram-resources/src/components/Connect.svelte +++ b/plugins/telegram-resources/src/components/Connect.svelte @@ -36,13 +36,13 @@ const dispatch = createEventDispatcher() - function close (value?: string): void { + function close(value?: string): void { const connected = state.mode === 'Authorized' || state.mode === 'Configured' dispatch('close', { value, connected }) } // Wrapper for command API with loading state management - async function commandWithLoading (phone: string, action: 'start' | 'next', data?: string): Promise { + async function commandWithLoading(phone: string, action: 'start' | 'next', data?: string): Promise { if (isLoading) { throw new Error('Already processing request') } @@ -69,7 +69,7 @@ let integrationState: IntegrationState = 'Loading' let state: UIState = { mode: 'Loading' } - function h (handler: () => Promise) { + function h(handler: () => Promise) { return () => { handler() .then((i) => { @@ -88,7 +88,7 @@ } } - function getErrorLabel (error: any): IntlString | undefined { + function getErrorLabel(error: any): IntlString | undefined { if (error instanceof PlatformError) { if (error.status.code === platform.status.Unauthorized || error.status.code === platform.status.Forbidden) { return telegram.string.IncorrectPhoneOrCode @@ -190,7 +190,7 @@ } } - async function init (): Promise { + async function init(): Promise { try { const phoneNumber = integration?.data?.phone @@ -227,7 +227,7 @@ } } - async function disconnectSession (phoneNumber: string): Promise { + async function disconnectSession(phoneNumber: string): Promise { try { await disconnect(phoneNumber) } catch (error: any) { diff --git a/plugins/telegram-resources/src/components/IntegrationState.svelte b/plugins/telegram-resources/src/components/IntegrationState.svelte index 322cfff26f..b205ee6740 100644 --- a/plugins/telegram-resources/src/components/IntegrationState.svelte +++ b/plugins/telegram-resources/src/components/IntegrationState.svelte @@ -38,7 +38,7 @@ let integrationClient: IntegrationClient | undefined const unsubscribers: (() => void)[] = [] - async function handleUnauthorized (): Promise { + async function handleUnauthorized(): Promise { if (isDisabled(integration)) { return } @@ -81,11 +81,11 @@ }) }) - function subscribe (): void { + function subscribe(): void { unsubscribers.push(onIntegrationEvent('integration:updated', onUpdateIntegration)) } - function onUpdateIntegration (data: IntegrationUpdatedData): void { + function onUpdateIntegration(data: IntegrationUpdatedData): void { if ( data.integration?.socialId === integration.socialId && data.integration?.workspaceUuid === integration.workspaceUuid @@ -110,7 +110,7 @@ } } - async function refresh (): Promise { + async function refresh(): Promise { try { if (isDisabled(integration)) { return diff --git a/plugins/telegram-resources/src/components/Messages.svelte b/plugins/telegram-resources/src/components/Messages.svelte index 4a853fb156..c286295d2f 100644 --- a/plugins/telegram-resources/src/components/Messages.svelte +++ b/plugins/telegram-resources/src/components/Messages.svelte @@ -23,21 +23,21 @@ export let selectable: boolean = false export let selected: Set> = new Set>() - function isNewDate (messages: SharedTelegramMessage[], i: number): boolean { + function isNewDate(messages: SharedTelegramMessage[], i: number): boolean { if (i === 0) return true const current = new Date(messages[i].sendOn).toLocaleDateString() const prev = new Date(messages[i - 1].sendOn).toLocaleDateString() return current !== prev } - function needName (messages: SharedTelegramMessage[], i: number): boolean { + function needName(messages: SharedTelegramMessage[], i: number): boolean { if (i === 0) return true const current = messages[i] const prev = messages[i - 1] return current.incoming !== prev.incoming || current.modifiedBy !== prev.modifiedBy } - function select (id: Ref): void { + function select(id: Ref): void { if (!selectable) return if (selected.has(id)) { selected.delete(id) diff --git a/plugins/telegram-resources/src/components/NotificationProviderPresenter.svelte b/plugins/telegram-resources/src/components/NotificationProviderPresenter.svelte index 74e1ccdc91..59bd5e9861 100644 --- a/plugins/telegram-resources/src/components/NotificationProviderPresenter.svelte +++ b/plugins/telegram-resources/src/components/NotificationProviderPresenter.svelte @@ -21,7 +21,7 @@ export let enabled: boolean - function configureBot (): void { + function configureBot(): void { showPopup(ConfigureBotPopup, {}) } diff --git a/plugins/telegram-resources/src/components/PhoneInput.svelte b/plugins/telegram-resources/src/components/PhoneInput.svelte index 6dc991e037..29b915a6ab 100644 --- a/plugins/telegram-resources/src/components/PhoneInput.svelte +++ b/plugins/telegram-resources/src/components/PhoneInput.svelte @@ -10,7 +10,7 @@ const formatter: AsYouType = new AsYouType() - function formatPhone (newValue: string | number): string | number { + function formatPhone(newValue: string | number): string | number { newValue = typeof newValue === 'number' ? newValue.toString() : newValue // Only allow digits, +, spaces, parentheses, and hyphens diff --git a/plugins/telegram-resources/src/components/activity/TelegramMessageCreated.svelte b/plugins/telegram-resources/src/components/activity/TelegramMessageCreated.svelte index 371a6507bc..0bc0df2802 100644 --- a/plugins/telegram-resources/src/components/activity/TelegramMessageCreated.svelte +++ b/plugins/telegram-resources/src/components/activity/TelegramMessageCreated.svelte @@ -29,7 +29,7 @@ $: value === undefined && _id && loadObject(_id) - async function loadObject (_id: Ref): Promise { + async function loadObject(_id: Ref): Promise { const isRemoved = await checkIsObjectRemoved(client, _id, telegram.class.Message) if (isRemoved) { diff --git a/plugins/templates-resources/src/components/Copy.svelte b/plugins/templates-resources/src/components/Copy.svelte index a7cfbfc22d..276d074109 100644 --- a/plugins/templates-resources/src/components/Copy.svelte +++ b/plugins/templates-resources/src/components/Copy.svelte @@ -23,7 +23,7 @@ const client = getClient() - async function save (): Promise { + async function save(): Promise { await client.createDoc(value._class, space, { title: value.title, message: value.message diff --git a/plugins/templates-resources/src/components/CreateTemplateCategory.svelte b/plugins/templates-resources/src/components/CreateTemplateCategory.svelte index 3fda044783..05428e2664 100644 --- a/plugins/templates-resources/src/components/CreateTemplateCategory.svelte +++ b/plugins/templates-resources/src/components/CreateTemplateCategory.svelte @@ -25,13 +25,13 @@ const description: string = '' let isPrivate: boolean = false - export function canClose (): boolean { + export function canClose(): boolean { return name === '' } const client = getClient() - async function create (): Promise { + async function create(): Promise { await client.createDoc(templates.class.TemplateCategory, core.space.Space, { name, description, diff --git a/plugins/templates-resources/src/components/EditGroup.svelte b/plugins/templates-resources/src/components/EditGroup.svelte index b8a2b78bab..7f403bc76f 100644 --- a/plugins/templates-resources/src/components/EditGroup.svelte +++ b/plugins/templates-resources/src/components/EditGroup.svelte @@ -31,7 +31,7 @@ const client = getClient() const rawName = object.name - async function changeName (value: string): Promise { + async function changeName(value: string): Promise { if (object) { await client.updateDoc(object._class, object.space, object._id, { name: value }) } diff --git a/plugins/templates-resources/src/components/EditorTemplatePopup.svelte b/plugins/templates-resources/src/components/EditorTemplatePopup.svelte index 7f238f99c2..467ec4b76f 100644 --- a/plugins/templates-resources/src/components/EditorTemplatePopup.svelte +++ b/plugins/templates-resources/src/components/EditorTemplatePopup.svelte @@ -18,7 +18,7 @@ export let editor: TextEditorHandler - async function dispatchItem (e: CustomEvent): Promise { + async function dispatchItem(e: CustomEvent): Promise { editor.insertTemplate(e.detail.title, e.detail.message) } diff --git a/plugins/templates-resources/src/components/Move.svelte b/plugins/templates-resources/src/components/Move.svelte index 9a6be80742..50c2ec07d2 100644 --- a/plugins/templates-resources/src/components/Move.svelte +++ b/plugins/templates-resources/src/components/Move.svelte @@ -24,7 +24,7 @@ const client = getClient() - async function save (): Promise { + async function save(): Promise { await client.update(value, { space }) diff --git a/plugins/templates-resources/src/components/TemplatePopup.svelte b/plugins/templates-resources/src/components/TemplatePopup.svelte index aa22fa956b..c733a40284 100644 --- a/plugins/templates-resources/src/components/TemplatePopup.svelte +++ b/plugins/templates-resources/src/components/TemplatePopup.svelte @@ -48,7 +48,7 @@ const dispatch = createEventDispatcher() const provider = getTemplateDataProvider() - async function dispatchItem (item: MessageTemplate): Promise { + async function dispatchItem(item: MessageTemplate): Promise { const message = await provider.fillTemplate(item.message) dispatch('template', { _id: item._id, @@ -63,7 +63,7 @@ closePopup() } - export function onKeyDown (ev: KeyboardEvent) { + export function onKeyDown(ev: KeyboardEvent) { if (ev.key === 'ArrowDown') { if (selected < items.length - 1) selected++ return true @@ -88,7 +88,7 @@ return false } - function getInitIndex (groups: TemplateCategory[], i: number): number { + function getInitIndex(groups: TemplateCategory[], i: number): number { let res = 0 for (let index = 0; index < i; index++) { const cat = groups[index] diff --git a/plugins/templates-resources/src/components/Templates.svelte b/plugins/templates-resources/src/components/Templates.svelte index b202a6e52c..0069894f0b 100644 --- a/plugins/templates-resources/src/components/Templates.svelte +++ b/plugins/templates-resources/src/components/Templates.svelte @@ -58,13 +58,13 @@ } let mode = Mode.View - async function addTemplate (): Promise { + async function addTemplate(): Promise { title = '' message = '' newTemplate = true mode = Mode.Create } - async function saveNewTemplate (): Promise { + async function saveNewTemplate(): Promise { if (!newTemplate) { return } @@ -87,14 +87,14 @@ let textEditor: StyledTextEditor - export function submit (): void { + export function submit(): void { textEditor.submit() } const updateTemplate = (evt: any) => { message = evt.detail } - function addField (ev: MouseEvent) { + function addField(ev: MouseEvent) { showPopup(FieldPopup, {}, eventToHTMLElement(ev), (res) => { if (res !== undefined) { textEditor.insertText(`\${${res._id}}`) @@ -102,11 +102,11 @@ }) } - function getTemplates (templates: MessageTemplate[], space: Ref): MessageTemplate[] { + function getTemplates(templates: MessageTemplate[], space: Ref): MessageTemplate[] { return templates.filter((p) => p.space === space) } - async function getActions (t: MessageTemplate): Promise { + async function getActions(t: MessageTemplate): Promise { const result: Action[] = [] const extraActions = await getContributedActions(client, t) for (const act of extraActions) { @@ -130,7 +130,7 @@ } } - async function getSpaceActions (space: TemplateCategory): Promise { + async function getSpaceActions(space: TemplateCategory): Promise { const result: Action[] = [addSpace] const extraActions = await getContributedActions(client, space, core.class.Space) for (const act of extraActions) { diff --git a/plugins/test-management-resources/src/components/TestManagementSpaceHeader.svelte b/plugins/test-management-resources/src/components/TestManagementSpaceHeader.svelte index 7b21a07498..927c33ce45 100644 --- a/plugins/test-management-resources/src/components/TestManagementSpaceHeader.svelte +++ b/plugins/test-management-resources/src/components/TestManagementSpaceHeader.svelte @@ -41,15 +41,15 @@ ) } - async function handleCreateProject (): Promise { + async function handleCreateProject(): Promise { await showCreateProjectPopup() } - async function handleCreateTestSuite (): Promise { + async function handleCreateTestSuite(): Promise { await showCreateTestSuitePopup(currentSpace, testManagement.ids.NoParent) } - async function handleCreateTestCase (): Promise { + async function handleCreateTestCase(): Promise { if (currentSpace !== undefined) { await showCreateTestCasePopup(currentSpace, getTestSuiteIdFromLocation()) } else { @@ -57,7 +57,7 @@ } } - async function handleDropdownItemSelected (res?: SelectPopupValueType['id']): Promise { + async function handleDropdownItemSelected(res?: SelectPopupValueType['id']): Promise { switch (res) { case testManagement.string.CreateProject: { await handleCreateProject() diff --git a/plugins/test-management-resources/src/components/project/CreateProject.svelte b/plugins/test-management-resources/src/components/project/CreateProject.svelte index 099a8395ce..f6be0237f6 100644 --- a/plugins/test-management-resources/src/components/project/CreateProject.svelte +++ b/plugins/test-management-resources/src/components/project/CreateProject.svelte @@ -77,8 +77,8 @@ spaceType = id !== undefined ? await client - .getModel() - .findOne(core.class.SpaceType, { _id: id }, { lookup: { _id: { roles: core.class.Role } } }) + .getModel() + .findOne(core.class.SpaceType, { _id: id }, { lookup: { _id: { roles: core.class.Role } } }) : undefined if (project === undefined || spaceType?.targetClass === undefined || spaceType?.$lookup?.roles === undefined) { @@ -88,7 +88,7 @@ rolesAssignment = getRolesAssignment() }) - function getRolesAssignment (): RolesAssignment { + function getRolesAssignment(): RolesAssignment { if (project === undefined || spaceType?.targetClass === undefined || spaceType?.$lookup?.roles === undefined) { return {} } @@ -102,7 +102,7 @@ }, {}) } - async function handleSave (): Promise { + async function handleSave(): Promise { if (project === undefined) { await createTestProject() } else { @@ -110,7 +110,7 @@ } } - function getTestProjectData (): Omit, 'type'> { + function getTestProjectData(): Omit, 'type'> { return { name, description, @@ -123,7 +123,7 @@ } } - async function updateTestProject (): Promise { + async function updateTestProject(): Promise { if (project === undefined || spaceType?.targetClass === undefined) { return } @@ -183,7 +183,7 @@ close() } - async function createTestProject (): Promise { + async function createTestProject(): Promise { if (typeId === undefined || spaceType?.targetClass === undefined) { return } @@ -210,24 +210,24 @@ close(projectId) } - function close (id?: Ref): void { + function close(id?: Ref): void { dispatch('close', id) } - function handleTypeChange (evt: CustomEvent>): void { + function handleTypeChange(evt: CustomEvent>): void { typeId = evt.detail } $: roles = (spaceType?.$lookup?.roles ?? []) as Role[] - function handleOwnersChanged (newOwners: AccountUuid[]): void { + function handleOwnersChanged(newOwners: AccountUuid[]): void { owners = newOwners const newMembersSet = new Set([...members, ...newOwners]) members = Array.from(newMembersSet) } - function handleMembersChanged (newMembers: AccountUuid[]): void { + function handleMembersChanged(newMembers: AccountUuid[]): void { // If a member was removed we need to remove it from any roles assignments as well const newMembersSet = new Set(newMembers) const removedMembersSet = new Set(members.filter((m) => !newMembersSet.has(m))) @@ -241,7 +241,7 @@ members = newMembers } - function chooseIcon (ev: MouseEvent): void { + function chooseIcon(ev: MouseEvent): void { const icons = [testManagement.icon.Home, testManagement.icon.RedCircle] const update = (result: any): void => { if (result !== undefined && result !== null) { @@ -253,7 +253,7 @@ showPopup(IconPicker, { icon, color, icons }, 'top', update, update) } - function handleRoleAssignmentChanged (roleId: Ref, newMembers: AccountUuid[]): void { + function handleRoleAssignmentChanged(roleId: Ref, newMembers: AccountUuid[]): void { if (rolesAssignment === undefined) { rolesAssignment = {} } diff --git a/plugins/test-management-resources/src/components/project/ProjectSpacePresenter.svelte b/plugins/test-management-resources/src/components/project/ProjectSpacePresenter.svelte index c779f19393..223e6dc241 100644 --- a/plugins/test-management-resources/src/components/project/ProjectSpacePresenter.svelte +++ b/plugins/test-management-resources/src/components/project/ProjectSpacePresenter.svelte @@ -33,7 +33,7 @@ let specials: SpecialNavModel[] = [] - async function updateSpecials (model: SpacesNavModel, space: TestProject): Promise { + async function updateSpecials(model: SpacesNavModel, space: TestProject): Promise { const newSpecials: SpecialNavModel[] = [] for (const sp of model.specials ?? []) { let shouldAdd = true diff --git a/plugins/test-management-resources/src/components/test-case/CreateTestCase.svelte b/plugins/test-management-resources/src/components/test-case/CreateTestCase.svelte index fce254f756..9e8c9c9ed1 100644 --- a/plugins/test-management-resources/src/components/test-case/CreateTestCase.svelte +++ b/plugins/test-management-resources/src/components/test-case/CreateTestCase.svelte @@ -29,7 +29,7 @@ export let onCreate: ((orgId: Ref, client: TxOperations) => Promise) | undefined = undefined - export function canClose (): boolean { + export function canClose(): boolean { return object.name === '' } @@ -59,7 +59,7 @@ fillDefaults(hierarchy, object, testManagement.class.TestCase) - async function createTestCase (): Promise { + async function createTestCase(): Promise { const op = client.apply() if (!isEmptyMarkup(description)) { const target = makeCollabId(testManagement.class.TestCase, id, 'description') @@ -83,7 +83,7 @@ dispatch('close', id) } - function handleTestSuiteChange (evt: CustomEvent>): void { + function handleTestSuiteChange(evt: CustomEvent>): void { object.attachedTo = evt.detail } diff --git a/plugins/test-management-resources/src/components/test-case/SelectTestCasesModal.svelte b/plugins/test-management-resources/src/components/test-case/SelectTestCasesModal.svelte index 074ea6fb6e..bdc55b7ef0 100644 --- a/plugins/test-management-resources/src/components/test-case/SelectTestCasesModal.svelte +++ b/plugins/test-management-resources/src/components/test-case/SelectTestCasesModal.svelte @@ -45,7 +45,7 @@ }) } - async function handleSave (): Promise { + async function handleSave(): Promise { if (onSave !== undefined) { const testCases: TestCase[] = ($selectionStore?.docs ?? []) as TestCase[] onSave(testCases) @@ -53,7 +53,7 @@ handleClose() } - function handleClose (): void { + function handleClose(): void { dispatch('close') } diff --git a/plugins/test-management-resources/src/components/test-case/StatusEditor.svelte b/plugins/test-management-resources/src/components/test-case/StatusEditor.svelte index 959a9c8ab4..6fad3244a3 100644 --- a/plugins/test-management-resources/src/components/test-case/StatusEditor.svelte +++ b/plugins/test-management-resources/src/components/test-case/StatusEditor.svelte @@ -49,7 +49,7 @@ ...testCaseStatusAssets[status] })) - function handlePopupOpen (event: MouseEvent): void { + function handlePopupOpen(event: MouseEvent): void { showPopup( SelectPopup, { value: itemsInfo, placeholder: testManagement.string.SetStatus }, @@ -58,7 +58,7 @@ ) } - async function changeStatus (newStatus: TestCase['status'] | null | undefined): Promise { + async function changeStatus(newStatus: TestCase['status'] | null | undefined): Promise { if (disabled || newStatus == null || value === newStatus) { return } diff --git a/plugins/test-management-resources/src/components/test-plan/NewTestPlanPanel.svelte b/plugins/test-management-resources/src/components/test-plan/NewTestPlanPanel.svelte index 4979eb1f2b..f7005d2b76 100644 --- a/plugins/test-management-resources/src/components/test-plan/NewTestPlanPanel.svelte +++ b/plugins/test-management-resources/src/components/test-plan/NewTestPlanPanel.svelte @@ -64,7 +64,7 @@ let descriptionBox: AttachmentStyledBox let attachments: Map, Attachment> = new Map, Attachment>() - async function onSave (): Promise { + async function onSave(): Promise { try { const applyOp = client.apply() await applyOp.createDoc(testManagement.class.TestPlan, space, object, id) diff --git a/plugins/test-management-resources/src/components/test-result/TestResultStatusEditor.svelte b/plugins/test-management-resources/src/components/test-result/TestResultStatusEditor.svelte index dea4e87317..3b4af04591 100644 --- a/plugins/test-management-resources/src/components/test-result/TestResultStatusEditor.svelte +++ b/plugins/test-management-resources/src/components/test-result/TestResultStatusEditor.svelte @@ -50,7 +50,7 @@ ...testRunStatusAssets[status] })) - function handlePopupOpen (event: MouseEvent): void { + function handlePopupOpen(event: MouseEvent): void { showPopup( SelectPopup, { value: itemsInfo, placeholder: testManagement.string.SetStatus }, @@ -59,7 +59,7 @@ ) } - async function changeStatus (newStatus: TestResult['status'] | null | undefined): Promise { + async function changeStatus(newStatus: TestResult['status'] | null | undefined): Promise { if (disabled || newStatus == null || value === newStatus) { return } diff --git a/plugins/test-management-resources/src/components/test-result/TestRunner.svelte b/plugins/test-management-resources/src/components/test-result/TestRunner.svelte index e23c4cb2fb..d70b5e42c5 100644 --- a/plugins/test-management-resources/src/components/test-result/TestRunner.svelte +++ b/plugins/test-management-resources/src/components/test-result/TestRunner.svelte @@ -44,7 +44,7 @@ unsubscribe() }) - async function goToNextItem (): Promise { + async function goToNextItem(): Promise { object = testResultIteratorProvider.getIterator()?.next() testCase = object?.$lookup?.testCase as TestCase | undefined } diff --git a/plugins/test-management-resources/src/components/test-run/NewTestRunPanel.svelte b/plugins/test-management-resources/src/components/test-run/NewTestRunPanel.svelte index 030e1414f4..b985956263 100644 --- a/plugins/test-management-resources/src/components/test-run/NewTestRunPanel.svelte +++ b/plugins/test-management-resources/src/components/test-run/NewTestRunPanel.svelte @@ -93,7 +93,7 @@ let description = EmptyMarkup let attachments: Map, Attachment> = new Map, Attachment>() - async function onSave (): Promise { + async function onSave(): Promise { try { const applyOp = client.apply() await applyOp.createDoc(testManagement.class.TestRun, space, object, id) diff --git a/plugins/test-management-resources/src/components/test-suite/CreateTestSuite.svelte b/plugins/test-management-resources/src/components/test-suite/CreateTestSuite.svelte index ea0e14f66c..7664aed8fe 100644 --- a/plugins/test-management-resources/src/components/test-suite/CreateTestSuite.svelte +++ b/plugins/test-management-resources/src/components/test-suite/CreateTestSuite.svelte @@ -37,11 +37,11 @@ let _space = space - function handleTestSuiteChange (evt: CustomEvent>): void { + function handleTestSuiteChange(evt: CustomEvent>): void { object.parent = evt.detail } - async function onSave () { + async function onSave() { await client.createDoc(testManagement.class.TestSuite, _space, object) } diff --git a/plugins/text-editor-resources/src/components/extension/embed/embed.ts b/plugins/text-editor-resources/src/components/extension/embed/embed.ts index 20e89afbde..6d56c07e71 100644 --- a/plugins/text-editor-resources/src/components/extension/embed/embed.ts +++ b/plugins/text-editor-resources/src/components/extension/embed/embed.ts @@ -15,7 +15,7 @@ import { getMetadata, translate } from '@hcengineering/platform' import { type ActionContext, copyTextToClipboard } from '@hcengineering/presentation' -import { EmbedNode as BaseEmbedNode, type ReferenceNodeProps } from '@hcengineering/text' +import { EmbedNode as BaseEmbedNode } from '@hcengineering/text' import textEditor from '@hcengineering/text-editor' import { type Editor, type Range } from '@tiptap/core' import { Fragment, type Node, type ResolvedPos, Slice } from '@tiptap/pm/model' diff --git a/plugins/text-editor-resources/src/components/extension/qms/qmsInlineCommentMark.ts b/plugins/text-editor-resources/src/components/extension/qms/qmsInlineCommentMark.ts index 1a691358c7..7cecda3b80 100644 --- a/plugins/text-editor-resources/src/components/extension/qms/qmsInlineCommentMark.ts +++ b/plugins/text-editor-resources/src/components/extension/qms/qmsInlineCommentMark.ts @@ -105,7 +105,7 @@ export const QMSInlineCommentMark = Mark.create({ return { [qmsInlineCommentMarkName]: { default: null, - parseHTML: (el) => (el).getAttribute(qmsInlineCommentMarkName) + parseHTML: (el) => el.getAttribute(qmsInlineCommentMarkName) } } }, @@ -115,7 +115,7 @@ export const QMSInlineCommentMark = Mark.create({ { tag: `span[${qmsInlineCommentMarkName}]`, getAttrs: (el) => { - const value = (el).getAttribute(qmsInlineCommentMarkName)?.trim() + const value = el.getAttribute(qmsInlineCommentMarkName)?.trim() if (value === null || value === undefined || value.length === 0) { return false } diff --git a/plugins/text-editor-resources/src/components/extension/reference.ts b/plugins/text-editor-resources/src/components/extension/reference.ts index b41976b1ef..5ef6545b61 100644 --- a/plugins/text-editor-resources/src/components/extension/reference.ts +++ b/plugins/text-editor-resources/src/components/extension/reference.ts @@ -489,10 +489,7 @@ export async function getReferenceObject ( return message } - const referenceObjectProvider = hierarchy.classHierarchyMixin( - objectclass, - view.mixin.ReferenceObjectProvider - ) + const referenceObjectProvider = hierarchy.classHierarchyMixin(objectclass, view.mixin.ReferenceObjectProvider) const referenceObjectProviderFn = referenceObjectProvider !== undefined ? await getResource(referenceObjectProvider.provider) : undefined diff --git a/plugins/text-editor-resources/src/components/extensions.ts b/plugins/text-editor-resources/src/components/extensions.ts index ec621e3447..dfa6b148a3 100644 --- a/plugins/text-editor-resources/src/components/extensions.ts +++ b/plugins/text-editor-resources/src/components/extensions.ts @@ -86,16 +86,14 @@ export const mInsertTable = [ } ] -const inlineCommandsIds = [ - 'image', - 'table', - 'code-block', - 'separator-line', - 'todo-list', - 'drawing-board', - 'mermaid' -] as const -export type InlineCommandId = (typeof inlineCommandsIds)[number] +export type InlineCommandId = + | 'image' + | 'table' + | 'code-block' + | 'separator-line' + | 'todo-list' + | 'drawing-board' + | 'mermaid' /** * @public diff --git a/plugins/training-resources/src/components/NullablePositiveNumberEditor.svelte b/plugins/training-resources/src/components/NullablePositiveNumberEditor.svelte index 91f30d8dac..6000717449 100644 --- a/plugins/training-resources/src/components/NullablePositiveNumberEditor.svelte +++ b/plugins/training-resources/src/components/NullablePositiveNumberEditor.svelte @@ -21,11 +21,11 @@ const shown: boolean = false - function onEditBoxChange (event: Event): void { + function onEditBoxChange(event: Event): void { applyValue((event.target as HTMLInputElement).valueAsNumber) } - function applyValue (valueAsNumber: number): void { + function applyValue(valueAsNumber: number): void { let value: number | null = null if (Number.isFinite(valueAsNumber)) { value = Math.abs(Math.round(valueAsNumber)) diff --git a/plugins/training-resources/src/components/SentRequestCompletionPresenter.svelte b/plugins/training-resources/src/components/SentRequestCompletionPresenter.svelte index 1ab8aeff31..5ee7ed1c4c 100644 --- a/plugins/training-resources/src/components/SentRequestCompletionPresenter.svelte +++ b/plugins/training-resources/src/components/SentRequestCompletionPresenter.svelte @@ -53,7 +53,7 @@ ) } - function showDetails (event: Event): void { + function showDetails(event: Event): void { if (completionMap === null) { return } diff --git a/plugins/training-resources/src/components/Settings.svelte b/plugins/training-resources/src/components/Settings.svelte index 8c46007132..602458496a 100644 --- a/plugins/training-resources/src/components/Settings.svelte +++ b/plugins/training-resources/src/components/Settings.svelte @@ -71,7 +71,7 @@ ) } - async function onChange (roleId: Ref, members: AccountUuid[]): Promise { + async function onChange(roleId: Ref, members: AccountUuid[]): Promise { if (space === null || spaceType === null) { return } diff --git a/plugins/training-resources/src/components/TrainingAttemptPanel.svelte b/plugins/training-resources/src/components/TrainingAttemptPanel.svelte index c26c60d97c..2b10a43368 100644 --- a/plugins/training-resources/src/components/TrainingAttemptPanel.svelte +++ b/plugins/training-resources/src/components/TrainingAttemptPanel.svelte @@ -137,7 +137,7 @@ canCreateTrainingAttempt(trainingObject, request, latestOwnAttempt) } - function showContextMenu (evt: MouseEvent): void { + function showContextMenu(evt: MouseEvent): void { if (object !== null) { showMenu(evt, { object, @@ -146,7 +146,7 @@ } } - async function retakeTraining (): Promise { + async function retakeTraining(): Promise { if (trainingObject !== null && request !== null && canRetakeTraining) { await createTrainingAttempt(trainingObject, request, latestOwnAttempt) } diff --git a/plugins/training-resources/src/components/TrainingChangeOwnerPopup.svelte b/plugins/training-resources/src/components/TrainingChangeOwnerPopup.svelte index e45fca39f9..552c90f857 100644 --- a/plugins/training-resources/src/components/TrainingChangeOwnerPopup.svelte +++ b/plugins/training-resources/src/components/TrainingChangeOwnerPopup.svelte @@ -20,7 +20,7 @@ } let isSubmitting = false - async function okAction (): Promise { + async function okAction(): Promise { if (draft.owner === undefined) { return } @@ -33,7 +33,7 @@ let canSave = false $: canSave = canChangeOwner && !isSubmitting && draft.owner !== undefined && draft.owner !== object.owner - function onUpdate (key: KeyedAttribute | string, value: any): void { + function onUpdate(key: KeyedAttribute | string, value: any): void { const attrKey = typeof key === 'string' ? key : key.key draft[attrKey as keyof typeof draft] = value } diff --git a/plugins/training-resources/src/components/TrainingCreator.svelte b/plugins/training-resources/src/components/TrainingCreator.svelte index ce6d8f5657..71f0db34b3 100644 --- a/plugins/training-resources/src/components/TrainingCreator.svelte +++ b/plugins/training-resources/src/components/TrainingCreator.svelte @@ -24,7 +24,7 @@ let canSave = false $: canSave = canCreateTraining() && !isSubmitting && object.title.length > 0 - async function okAction (): Promise { + async function okAction(): Promise { isSubmitting = true await createTraining(object) isSubmitting = false diff --git a/plugins/training-resources/src/components/TrainingNotification.svelte b/plugins/training-resources/src/components/TrainingNotification.svelte index 77b242b66d..d2b255c622 100644 --- a/plugins/training-resources/src/components/TrainingNotification.svelte +++ b/plugins/training-resources/src/components/TrainingNotification.svelte @@ -39,7 +39,7 @@ } ) - function onClick (): void { + function onClick(): void { if (trainingObject === null) { return } diff --git a/plugins/training-resources/src/components/TrainingPanel.svelte b/plugins/training-resources/src/components/TrainingPanel.svelte index be0d570017..8b99514bf2 100644 --- a/plugins/training-resources/src/components/TrainingPanel.svelte +++ b/plugins/training-resources/src/components/TrainingPanel.svelte @@ -61,7 +61,7 @@ let modes: IModeSelector $: void setModes(object, _id) - async function setModes (trn: Training | null, id: Ref): Promise { + async function setModes(trn: Training | null, id: Ref): Promise { const config: IModeSelector['config'] = [] if (trn !== null) { if (await canViewTrainingOverview(trn)) { @@ -110,7 +110,7 @@ } } - function showContextMenu (evt: MouseEvent): void { + function showContextMenu(evt: MouseEvent): void { if (object !== null) { showMenu(evt, { object, diff --git a/plugins/training-resources/src/components/TrainingPanelOverview.svelte b/plugins/training-resources/src/components/TrainingPanelOverview.svelte index d6226a2fd7..4dcca926b3 100644 --- a/plugins/training-resources/src/components/TrainingPanelOverview.svelte +++ b/plugins/training-resources/src/components/TrainingPanelOverview.svelte @@ -21,7 +21,7 @@ $: void verifyRoute(object) - async function verifyRoute (trn: Training): Promise { + async function verifyRoute(trn: Training): Promise { if (!(await canViewTrainingOverview(trn))) { navigate(trainingRoute.build({ id: trn._id, tab: TrainingRouteTab.Overview }), true) } @@ -31,7 +31,7 @@ const hierarchy = getClient().getHierarchy() const descriptionAttr = hierarchy.getAttribute(training.class.Training, 'description') - function onDescriptionChange (e: CustomEvent): void { + function onDescriptionChange(e: CustomEvent): void { void getClient().updateDoc(object._class, object.space, object._id, { description: e.detail }) } diff --git a/plugins/training-resources/src/components/TrainingPassingScoreSlider.svelte b/plugins/training-resources/src/components/TrainingPassingScoreSlider.svelte index a5d31b494c..4283048843 100644 --- a/plugins/training-resources/src/components/TrainingPassingScoreSlider.svelte +++ b/plugins/training-resources/src/components/TrainingPassingScoreSlider.svelte @@ -14,7 +14,7 @@ let score: HTMLElement let isDragging = false - function onDragStart (event: DragEvent): void { + function onDragStart(event: DragEvent): void { if (readonly || event.dataTransfer === null) { return } @@ -22,7 +22,7 @@ event.dataTransfer.setDragImage(event.target as HTMLElement, 0, 0) } - function onDrag (event: MouseEvent): void { + function onDrag(event: MouseEvent): void { if (readonly) { return } @@ -33,7 +33,7 @@ object.passingScore = Math.round(Math.max(0, Math.min(100, ((event.clientX - rect.x) / rect.width) * 100))) } - function onDragEnd (event: MouseEvent): void { + function onDragEnd(event: MouseEvent): void { if (readonly) { return } @@ -42,7 +42,7 @@ void getClient().updateDoc(object._class, object.space, object._id, { passingScore: object.passingScore }) } - function onClick (event: MouseEvent): void { + function onClick(event: MouseEvent): void { if (readonly) { return } diff --git a/plugins/training-resources/src/components/TrainingRefEditor.svelte b/plugins/training-resources/src/components/TrainingRefEditor.svelte index d8518bcb65..e25878332a 100644 --- a/plugins/training-resources/src/components/TrainingRefEditor.svelte +++ b/plugins/training-resources/src/components/TrainingRefEditor.svelte @@ -44,7 +44,7 @@ } ) - async function onClick (event: MouseEvent): Promise { + async function onClick(event: MouseEvent): Promise { if (readonly) { return } diff --git a/plugins/training-resources/src/components/TrainingRequestChangeOwnerPopup.svelte b/plugins/training-resources/src/components/TrainingRequestChangeOwnerPopup.svelte index 955c53fb10..a20bf8e940 100644 --- a/plugins/training-resources/src/components/TrainingRequestChangeOwnerPopup.svelte +++ b/plugins/training-resources/src/components/TrainingRequestChangeOwnerPopup.svelte @@ -34,7 +34,7 @@ } let isSubmitting = false - async function okAction (): Promise { + async function okAction(): Promise { if (draft.owner === undefined) { return } @@ -47,7 +47,7 @@ let canSave = false $: canSave = canChangeOwner && !isSubmitting && draft.owner !== undefined && draft.owner !== object.owner - function onUpdate (key: KeyedAttribute | string, value: any): void { + function onUpdate(key: KeyedAttribute | string, value: any): void { const attrKey = typeof key === 'string' ? key : key.key draft[attrKey as keyof typeof draft] = value } diff --git a/plugins/training-resources/src/components/TrainingRequestCreator.svelte b/plugins/training-resources/src/components/TrainingRequestCreator.svelte index 0bf1178788..449307d080 100644 --- a/plugins/training-resources/src/components/TrainingRequestCreator.svelte +++ b/plugins/training-resources/src/components/TrainingRequestCreator.svelte @@ -22,13 +22,13 @@ (object.dueDate === null || object.dueDate > Date.now()) && (object.maxAttempts === null || object.maxAttempts > 0) - async function okAction (): Promise { + async function okAction(): Promise { isSubmitting = true await createTrainingRequest(parent, object) isSubmitting = false } - function onUpdate (key: KeyedAttribute | string, value: any): void { + function onUpdate(key: KeyedAttribute | string, value: any): void { const attrKey = typeof key === 'string' ? key : key.key object[attrKey as keyof typeof object] = value } diff --git a/plugins/training-resources/src/components/TrainingRequestPanel.svelte b/plugins/training-resources/src/components/TrainingRequestPanel.svelte index 234e741d75..3e1539c98f 100644 --- a/plugins/training-resources/src/components/TrainingRequestPanel.svelte +++ b/plugins/training-resources/src/components/TrainingRequestPanel.svelte @@ -105,19 +105,19 @@ canCreateTrainingAttempt(trainingObject, object, latestOwnAttempt) } - async function takeTraining (): Promise { + async function takeTraining(): Promise { if (trainingObject !== null && object !== null && canTakeTraining) { await createTrainingAttempt(trainingObject, object, latestOwnAttempt) } } - async function retakeTraining (): Promise { + async function retakeTraining(): Promise { if (trainingObject !== null && object !== null && canRetakeTraining) { await createTrainingAttempt(trainingObject, object, latestOwnAttempt) } } - async function openLatestAttempt (): Promise { + async function openLatestAttempt(): Promise { if (latestOwnAttempt !== null) { navigate( trainingAttemptRoute.build({ @@ -179,7 +179,7 @@ } } - function showContextMenu (evt: MouseEvent): void { + function showContextMenu(evt: MouseEvent): void { if (object !== null) { showMenu(evt, { object, diff --git a/plugins/training-resources/src/components/TrainingRequestRolesEditor.svelte b/plugins/training-resources/src/components/TrainingRequestRolesEditor.svelte index 8826cacf36..17073ad748 100644 --- a/plugins/training-resources/src/components/TrainingRequestRolesEditor.svelte +++ b/plugins/training-resources/src/components/TrainingRequestRolesEditor.svelte @@ -33,7 +33,7 @@ export let width: string | undefined = 'max-content' export let justify: 'left' | 'center' = 'left' - async function onClick (evt: Event): Promise { + async function onClick(evt: Event): Promise { showPopup( TrainingRequestRolesEditorPopup, { diff --git a/plugins/training-resources/src/routing/routes/trainingRequestRoute.ts b/plugins/training-resources/src/routing/routes/trainingRequestRoute.ts index 5460de2f84..7cabbd0bda 100644 --- a/plugins/training-resources/src/routing/routes/trainingRequestRoute.ts +++ b/plugins/training-resources/src/routing/routes/trainingRequestRoute.ts @@ -64,8 +64,8 @@ export const trainingRequestRoute: Route = { loc: { ...(isOwner ? sentRequestRoute.build({ - tab: object.canceledOn === null ? SentRequestsRouteTab.Active : SentRequestsRouteTab.Canceled - }) + tab: object.canceledOn === null ? SentRequestsRouteTab.Active : SentRequestsRouteTab.Canceled + }) : incomingRequestRoute.build({})), fragment: getPanelFragment(object) }, diff --git a/plugins/training-resources/src/utils/CompletionMap.ts b/plugins/training-resources/src/utils/CompletionMap.ts index ac678922d6..c8ca408aaa 100644 --- a/plugins/training-resources/src/utils/CompletionMap.ts +++ b/plugins/training-resources/src/utils/CompletionMap.ts @@ -37,13 +37,13 @@ export function compareCompletionMapValueState (a: CompletionMapValueState, b: C export type CompletionMapValue = | { - state: CompletionMapValueState.Pending - } + state: CompletionMapValueState.Pending + } | { - _id: TrainingAttempt['_id'] - seqNumber: TrainingAttempt['seqNumber'] - state: Exclude - } + _id: TrainingAttempt['_id'] + seqNumber: TrainingAttempt['seqNumber'] + state: Exclude + } export type CompletionMap = Map, CompletionMapValue> diff --git a/plugins/training-resources/src/utils/createTraining.ts b/plugins/training-resources/src/utils/createTraining.ts index 81529e50b9..706e67678b 100644 --- a/plugins/training-resources/src/utils/createTraining.ts +++ b/plugins/training-resources/src/utils/createTraining.ts @@ -13,7 +13,7 @@ import { getCurrentEmployeeRef } from './getCurrentEmployeeRef' import { getNextTrainingSeqNumber } from './getNextTrainingSeqNumber' export type CreateTrainingData = Required< -Omit + Omit > export async function createTraining (data: CreateTrainingData): Promise> { diff --git a/plugins/training-resources/src/utils/createTrainingRequest.ts b/plugins/training-resources/src/utils/createTrainingRequest.ts index f934b4b0db..4cccf2c310 100644 --- a/plugins/training-resources/src/utils/createTrainingRequest.ts +++ b/plugins/training-resources/src/utils/createTrainingRequest.ts @@ -13,7 +13,7 @@ import { trainingRequestRoute } from '../routing/routes/trainingRequestRoute' import { getCurrentEmployeeRef } from './getCurrentEmployeeRef' export type CreateTrainingRequestData = Required< -Omit, 'owner' | 'attempts' | 'canceledOn' | 'canceledBy'> & { roles: Array> } + Omit, 'owner' | 'attempts' | 'canceledOn' | 'canceledBy'> & { roles: Array> } > export async function createTrainingRequest ( diff --git a/plugins/uploader-resources/src/components/FileUploadStatusBar.svelte b/plugins/uploader-resources/src/components/FileUploadStatusBar.svelte index b69f43efde..7ee5bdfd22 100644 --- a/plugins/uploader-resources/src/components/FileUploadStatusBar.svelte +++ b/plugins/uploader-resources/src/components/FileUploadStatusBar.svelte @@ -23,7 +23,7 @@ export let upload: Upload - function handleClick (ev: MouseEvent): void { + function handleClick(ev: MouseEvent): void { showPopup(FileUploadStatusPopup, { uploadId: upload.uuid }, ev.currentTarget as HTMLElement) } diff --git a/plugins/uploader-resources/src/components/FileUploadStatusPopup.svelte b/plugins/uploader-resources/src/components/FileUploadStatusPopup.svelte index 9197110306..cf3b4b3627 100644 --- a/plugins/uploader-resources/src/components/FileUploadStatusPopup.svelte +++ b/plugins/uploader-resources/src/components/FileUploadStatusPopup.svelte @@ -31,24 +31,24 @@ const dispatch = createEventDispatcher() let upload: Upload | undefined = undefined - function updateState (state: Map): void { + function updateState(state: Map): void { upload = state.get(uploadId) if (upload === undefined) { dispatch('close') } } - function handleCancelAll (): void { + function handleCancelAll(): void { upload?.files.forEach((element) => { element.cancel?.() }) } - function handleCancelFile (file: FileUpload): void { + function handleCancelFile(file: FileUpload): void { file.cancel?.() } - function handleRetryFile (file: FileUpload): void { + function handleRetryFile(file: FileUpload): void { void file.retry?.() } onMount(() => { diff --git a/plugins/view-resources/src/__tests__/objectIterator.test.ts b/plugins/view-resources/src/__tests__/objectIterator.test.ts index 5d59223a73..5997aa25c6 100644 --- a/plugins/view-resources/src/__tests__/objectIterator.test.ts +++ b/plugins/view-resources/src/__tests__/objectIterator.test.ts @@ -99,7 +99,7 @@ describe('ObjectIterator', () => { }) it('should return undefined for empty array', async () => { - mockObjects = [] as any + mockObjects = [] const query: DocumentQuery = { key: 'value' } const _class: Ref> = { id: 'class1' } as any const iterator = new ObjectIterator(_class, storeAdapter, { query }) diff --git a/plugins/view-resources/src/actionImpl.ts b/plugins/view-resources/src/actionImpl.ts index 92f492df0b..e539130edf 100644 --- a/plugins/view-resources/src/actionImpl.ts +++ b/plugins/view-resources/src/actionImpl.ts @@ -345,10 +345,10 @@ async function Open ( doc: Doc, evt: Event, props: - | { - component?: AnyComponent - } - | undefined + | { + component?: AnyComponent + } + | undefined ): Promise { evt.preventDefault() const d = Array.isArray(doc) ? doc[0] : doc @@ -364,10 +364,10 @@ async function OpenInNewTab ( doc: Doc, evt: Event, props: - | { - component?: AnyComponent - } - | undefined + | { + component?: AnyComponent + } + | undefined ): Promise { evt.preventDefault() const d = Array.isArray(doc) ? doc[0] : doc diff --git a/plugins/view-resources/src/components/ActionHandler.svelte b/plugins/view-resources/src/components/ActionHandler.svelte index 81a9f5479d..1580a3a31e 100644 --- a/plugins/view-resources/src/components/ActionHandler.svelte +++ b/plugins/view-resources/src/components/ActionHandler.svelte @@ -45,7 +45,7 @@ let delayedAction: (() => Promise) | undefined let timer: any | undefined - function getCurrentActions ( + function getCurrentActions( context: { mode: ViewContextType application?: Ref @@ -69,7 +69,7 @@ const isMac = /Macintosh/i.test(navigator.userAgent) - function keyPrefix (key: KeyboardEvent): string { + function keyPrefix(key: KeyboardEvent): string { return ( (key.altKey ? 'Alt + ' : '') + (key.shiftKey ? 'Shift + ' : '') + @@ -77,18 +77,18 @@ (key.ctrlKey ? (isMac ? 'Ctrl + ' : 'Meta + ') : '') ) } - function m (s1: string, s2: string): boolean { + function m(s1: string, s2: string): boolean { return s1 === s2 } - function findKeySequence (pattern: string, key: KeyboardEvent): boolean { + function findKeySequence(pattern: string, key: KeyboardEvent): boolean { const lc = pattern.toLowerCase() const pfp = (keyPrefix(key) + key.key).toLowerCase() const pfp2 = (keyPrefix(key) + key.code).toLowerCase() return lc.startsWith(`${pfp}->`) || lc.startsWith(`${pfp2}->`) } - function getSequences ( + function getSequences( key: KeyboardEvent, currentActions: Array>> ): Array>> { @@ -96,7 +96,7 @@ return res } - function matchKeySequence (key: KeyboardEvent, pattern: string, lastKey: KeyboardEvent): boolean { + function matchKeySequence(key: KeyboardEvent, pattern: string, lastKey: KeyboardEvent): boolean { const fp = (keyPrefix(key) + key.key).toLowerCase() const fp2 = (keyPrefix(key) + key.code).toLowerCase() const lc = pattern.toLowerCase() @@ -106,7 +106,7 @@ return m(`${pfp}->${fp}`, lc) || m(`${pfp2}->${fp}`, lc) || m(`${pfp}->${fp2}`, lc) || m(`${pfp2}->${fp2}`, lc) } - function matchKey (key: KeyboardEvent, pattern: string): boolean { + function matchKey(key: KeyboardEvent, pattern: string): boolean { const fp = (keyPrefix(key) + key.key).toLowerCase() const fp2 = (keyPrefix(key) + key.code).toLowerCase() const lc = pattern.toLowerCase() @@ -116,7 +116,7 @@ let currentElement: EventTarget | null = null let currentActions: Action[] | undefined = undefined - function clearActions (doc: any) { + function clearActions(doc: any) { currentActions = undefined } @@ -132,7 +132,7 @@ $: disableActions = $restrictionStore.disableActions - function handleKeys (evt: KeyboardEvent): void { + function handleKeys(evt: KeyboardEvent): void { // For none we ignore all actions. if (disableActions || ctx?.mode === 'none') return const targetTagName = (evt.target as any)?.tagName?.toLowerCase() @@ -174,7 +174,7 @@ clearTimeout(timer) - async function activateAction (a: Action): Promise { + async function activateAction(a: Action): Promise { const action = await getResource(a.action) if (action === undefined) return diff --git a/plugins/view-resources/src/components/ActionsPopup.svelte b/plugins/view-resources/src/components/ActionsPopup.svelte index 0b11ffed81..9672f47e44 100644 --- a/plugins/view-resources/src/components/ActionsPopup.svelte +++ b/plugins/view-resources/src/components/ActionsPopup.svelte @@ -87,7 +87,7 @@ let supportedActions: Array> = [] let filteredActions: Array> = [] - async function filterVisibleActions ( + async function filterVisibleActions( actions: Array>, docs: Doc[] ): Promise>> { @@ -166,7 +166,7 @@ let activeAction: Action | undefined - async function handleSelection (evt: Event, selection: number): Promise { + async function handleSelection(evt: Event, selection: number): Promise { const item = items[selection] if (item == null) { return @@ -202,7 +202,7 @@ } } - function onKeydown (key: KeyboardEvent): void { + function onKeydown(key: KeyboardEvent): void { if (key.code === 'ArrowUp') { key.stopPropagation() key.preventDefault() @@ -230,7 +230,7 @@ actionCategory?: ActionCategory | WithLookup } - function packSearchAndActions ( + function packSearchAndActions( searchItems: SearchItem[], filteredActions: Array> ): SearchActionItem[] { @@ -262,7 +262,7 @@ $: void updateItems(search, filteredActions) - function txListener (txes: Tx[]): void { + function txListener(txes: Tx[]): void { if ( txes.some( (it) => @@ -284,7 +284,7 @@ let phTraslate: string = '' let autoFocus = !$deviceOptionsStore.isMobile - export function focus (): void { + export function focus(): void { textHTML.focus() autoFocus = false } @@ -297,7 +297,7 @@ }) let timer: any $: _search = search - function restartTimer (): void { + function restartTimer(): void { clearTimeout(timer) timer = setTimeout(() => { search = _search diff --git a/plugins/view-resources/src/components/AssociationPresenter.svelte b/plugins/view-resources/src/components/AssociationPresenter.svelte index b40a9d7c39..41c91d03eb 100644 --- a/plugins/view-resources/src/components/AssociationPresenter.svelte +++ b/plugins/view-resources/src/components/AssociationPresenter.svelte @@ -23,7 +23,7 @@ const client = getClient() const hierarchy = client.getHierarchy() - function getClassLabel (_class: Ref>): IntlString { + function getClassLabel(_class: Ref>): IntlString { try { const _classLabel = hierarchy.getClass(_class) return _classLabel.label diff --git a/plugins/view-resources/src/components/ClassAttributeBar.svelte b/plugins/view-resources/src/components/ClassAttributeBar.svelte index 63f8a20e58..d214117207 100644 --- a/plugins/view-resources/src/components/ClassAttributeBar.svelte +++ b/plugins/view-resources/src/components/ClassAttributeBar.svelte @@ -36,7 +36,7 @@ let keys: KeyedAttribute[] = [] - function updateKeys (_class: Ref>, ignoreKeys: string[], to: Ref> | undefined): void { + function updateKeys(_class: Ref>, ignoreKeys: string[], to: Ref> | undefined): void { const filtredKeys = getFiltredKeys(hierarchy, _class, ignoreKeys, to) keys = filtredKeys .filter((key) => !isCollectionAttr(hierarchy, key) || allowedCollections.includes(key.key)) @@ -58,7 +58,7 @@ $: label = showLabel ?? hierarchy.getClass(_class).label - function getCollapsed (_class: Ref>, nonEmpty?: KeyedAttribute): boolean { + function getCollapsed(_class: Ref>, nonEmpty?: KeyedAttribute): boolean { return nonEmpty === undefined } diff --git a/plugins/view-resources/src/components/DocNavLink.svelte b/plugins/view-resources/src/components/DocNavLink.svelte index 9ab21a0569..358e9f9971 100644 --- a/plugins/view-resources/src/components/DocNavLink.svelte +++ b/plugins/view-resources/src/components/DocNavLink.svelte @@ -58,7 +58,7 @@ ? '#' + getPanelURI(component, object._id, Hierarchy.mixinOrClass(object), 'content') : undefined - async function getHref (object: Doc): Promise { + async function getHref(object: Doc): Promise { if (_disabled) { href = undefined return @@ -75,7 +75,7 @@ $: if (object !== undefined) getHref(object) - function onBrokenLinkClick (event: MouseEvent): void { + function onBrokenLinkClick(event: MouseEvent): void { showPopup(MessageBox, { label: presentation.string.UnableToFollowMention, message: presentation.string.AccessDenied, diff --git a/plugins/view-resources/src/components/DocTable.svelte b/plugins/view-resources/src/components/DocTable.svelte index 653b03e78d..9a7edac3fe 100644 --- a/plugins/view-resources/src/components/DocTable.svelte +++ b/plugins/view-resources/src/components/DocTable.svelte @@ -49,7 +49,7 @@ $: uniqueObjects = deduplicate(objects) - function deduplicate (list: Doc[] | undefined): Doc[] { + function deduplicate(list: Doc[] | undefined): Doc[] { if (!list) return [] const seen = new Set() return list.filter((item) => { @@ -64,7 +64,7 @@ $: viewlet = getViewlet(_class) - function getViewlet (_class: Ref>): Viewlet | undefined { + function getViewlet(_class: Ref>): Viewlet | undefined { let clazz: Ref> | undefined = _class while (true) { const res = client.getModel().findAllSync(view.class.Viewlet, { attachTo: clazz }) @@ -91,7 +91,7 @@ } } - function onRow (object: Doc): void { + function onRow(object: Doc): void { dispatch('row-focus', object) } @@ -117,7 +117,7 @@ return { ...attribute.props, space: object.space, ...readonlyParams } } - function getValue (attribute: AttributeModel, object: Doc): any { + function getValue(attribute: AttributeModel, object: Doc): any { if (attribute.castRequest) { return getObjectValue( attribute.key.substring(attribute.castRequest.length + 1), @@ -127,11 +127,11 @@ return getObjectValue(attribute.key, object) } - function onChange (value: any, doc: Doc, key: string, attribute: AnyAttribute) { + function onChange(value: any, doc: Doc, key: string, attribute: AnyAttribute) { updateAttribute(client, doc, _class, { key, attr: attribute }, value) } - function getOnChange (doc: Doc, attribute: AttributeModel) { + function getOnChange(doc: Doc, attribute: AttributeModel) { const attr = attribute.attribute if (attr === undefined) return if (attribute.collectionAttr) return @@ -147,7 +147,7 @@ let model: AttributeModel[] | undefined let modelOptions: BuildModelOptions | undefined - const updateModelOptions = reduceCalls(async function updateModelOptions ( + const updateModelOptions = reduceCalls(async function updateModelOptions( client: TxOperations, _class: Ref>, keys: Array @@ -160,14 +160,14 @@ }) $: void updateModelOptions(client, _class, config) - async function build (modelOptions: BuildModelOptions): Promise { + async function build(modelOptions: BuildModelOptions): Promise { isBuildingModel = true const res = await buildModel(modelOptions) model = res isBuildingModel = false } - function contextHandler (object: Doc, row: number): (ev: MouseEvent) => void { + function contextHandler(object: Doc, row: number): (ev: MouseEvent) => void { return (ev) => { if (!readonly) { void showContextMenu(ev, object, row) @@ -181,7 +181,7 @@ permissionsStore = await getResource(contact.store.Permissions) }) - function canChangeAttr ( + function canChangeAttr( object: Doc, attr: AnyAttribute | undefined, permissionsStore: PermissionsStore | undefined @@ -191,7 +191,7 @@ return canChangeAttribute(attr, object.space as Ref, permissionsStore, object._class) } - async function canEdit (object: Doc): Promise { + async function canEdit(object: Doc): Promise { if (client.getHierarchy().isDerived(object._class, core.class.Space)) { return await canEditSpace(object) } diff --git a/plugins/view-resources/src/components/DocsNavigator.svelte b/plugins/view-resources/src/components/DocsNavigator.svelte index 6df72fb0b5..5e24626f22 100644 --- a/plugins/view-resources/src/components/DocsNavigator.svelte +++ b/plugins/view-resources/src/components/DocsNavigator.svelte @@ -23,7 +23,7 @@ const client = getClient() - async function getBreadcrumbsModels (elements: readonly Doc[]): Promise { + async function getBreadcrumbsModels(elements: readonly Doc[]): Promise { if (elements.length === 0) { return [] } diff --git a/plugins/view-resources/src/components/EditDoc.svelte b/plugins/view-resources/src/components/EditDoc.svelte index 03e2d16870..65c2fcc798 100644 --- a/plugins/view-resources/src/components/EditDoc.svelte +++ b/plugins/view-resources/src/components/EditDoc.svelte @@ -63,7 +63,7 @@ $: read(objectId) - function read (_id?: Ref): void { + function read(_id?: Ref): void { if (objectId && lastId && lastId !== _id) { const prev = lastId lastId = _id @@ -83,7 +83,7 @@ const query = createQuery() $: updateQuery(objectId, _class) - function updateQuery (_id?: Ref, _class?: Ref>): void { + function updateQuery(_id?: Ref, _class?: Ref>): void { if (_id && _class) { query.query(_class, { _id }, (result) => { object = result[0] @@ -122,7 +122,7 @@ $: mixins = getDocMixins(object, showAllMixins, ignoreMixins, realObjectClass) let attr: Promise | undefined - async function updateKeys (): Promise { + async function updateKeys(): Promise { if (attr instanceof Promise) { await attr } @@ -138,14 +138,14 @@ pinned?: boolean } - function getEditor (_class: Ref>): MixinEditor { + function getEditor(_class: Ref>): MixinEditor { const clazz = hierarchy.getClass(_class) const editorMixin = hierarchy.as(clazz, view.mixin.ObjectEditor) if (editorMixin?.editor == null && clazz.extends != null) return getEditor(clazz.extends) return { editor: editorMixin.editor, pinned: editorMixin?.pinned } } - function getEditorFooter ( + function getEditorFooter( _class: Ref>, object?: Doc ): { footer: AnyComponent, props?: Record } | undefined { @@ -159,7 +159,7 @@ return undefined } - function getPanelFooter ( + function getPanelFooter( _class: Ref>, object?: Doc ): { footer: AnyComponent, props?: Record } | undefined { @@ -197,7 +197,7 @@ }) } - function getHeaderEditor (_class: Ref>): AnyComponent | undefined { + function getHeaderEditor(_class: Ref>): AnyComponent | undefined { const editorMixin = hierarchy.classHierarchyMixin( _class, view.mixin.ObjectEditorHeader, @@ -215,7 +215,7 @@ let panelWidth: number = 0 let innerWidth: number = 0 - function handleOpen (ev: CustomEvent): void { + function handleOpen(ev: CustomEvent): void { ignoreKeys = ev.detail.ignoreKeys activityOptions = ev.detail.activityOptions ?? activityOptions ignoreMixins = new Set(ev.detail.ignoreMixins) diff --git a/plugins/view-resources/src/components/FixedColumn.svelte b/plugins/view-resources/src/components/FixedColumn.svelte index 6f6ba38f6f..16af5ac3fa 100644 --- a/plugins/view-resources/src/components/FixedColumn.svelte +++ b/plugins/view-resources/src/components/FixedColumn.svelte @@ -38,7 +38,7 @@ } }) - function resize (element: Element) { + function resize(element: Element) { cWidth = element.clientWidth if (cWidth > ($fixedWidthStore[key] ?? 0)) $fixedWidthStore[key] = cWidth } diff --git a/plugins/view-resources/src/components/IdPresenter.svelte b/plugins/view-resources/src/components/IdPresenter.svelte index adc6187e72..a08a678f4c 100644 --- a/plugins/view-resources/src/components/IdPresenter.svelte +++ b/plugins/view-resources/src/components/IdPresenter.svelte @@ -28,7 +28,7 @@ const client = getClient() const h = client.getHierarchy() - function getTooltip (value: string | undefined): LabelAndProps | undefined { + function getTooltip(value: string | undefined): LabelAndProps | undefined { if (value === undefined) return return { label: getEmbeddedLabel(value) diff --git a/plugins/view-resources/src/components/LinkPresenter.svelte b/plugins/view-resources/src/components/LinkPresenter.svelte index 3bf0709604..0befa7902c 100644 --- a/plugins/view-resources/src/components/LinkPresenter.svelte +++ b/plugins/view-resources/src/components/LinkPresenter.svelte @@ -21,7 +21,7 @@ const client = getClient() - async function getPresenter (href: string): Promise { + async function getPresenter(href: string): Promise { const presenters = await client.findAll(view.class.LinkPresenter, {}) for (const presenter of presenters) { if (new RegExp(presenter.pattern).test(href)) { diff --git a/plugins/view-resources/src/components/MarkupDiffPresenter.svelte b/plugins/view-resources/src/components/MarkupDiffPresenter.svelte index f756ec3753..f7be686c62 100644 --- a/plugins/view-resources/src/components/MarkupDiffPresenter.svelte +++ b/plugins/view-resources/src/components/MarkupDiffPresenter.svelte @@ -30,7 +30,7 @@ $: content = markupToJSON(value ?? EmptyMarkup) $: comparedVersion = markupToJSON(prevValue ?? EmptyMarkup) - function cleanup (node1: MarkupNode, node2: MarkupNode): MarkupNode[] { + function cleanup(node1: MarkupNode, node2: MarkupNode): MarkupNode[] { if (node1.type !== MarkupNodeType.doc || node2.type !== MarkupNodeType.doc) { return [node1, node2] } @@ -57,7 +57,7 @@ ] } - function same (node1: MarkupNode | undefined, node2: MarkupNode | undefined): boolean { + function same(node1: MarkupNode | undefined, node2: MarkupNode | undefined): boolean { if (node1 === undefined && node2 === undefined) return true if (node1 === undefined || node2 === undefined) return false diff --git a/plugins/view-resources/src/components/Move.svelte b/plugins/view-resources/src/components/Move.svelte index 5532ecfd2e..9d513e6b54 100644 --- a/plugins/view-resources/src/components/Move.svelte +++ b/plugins/view-resources/src/components/Move.svelte @@ -46,7 +46,7 @@ } $: _class && translate(_class, {}, $themeStore.language).then((res) => (classLabel = res.toLocaleLowerCase())) - async function move (doc: Doc): Promise { + async function move(doc: Doc): Promise { const op = client.apply(undefined, 'move-to-space') const needRank = currentSpace ? hierarchy.isDerived(currentSpace._class, task.class.Project) : false if (needRank) { @@ -71,11 +71,11 @@ dispatch('close') } - async function getSpace (): Promise { + async function getSpace(): Promise { return await client.findOne(core.class.Space, { _id: space }).then((res) => (currentSpace = res)) } - async function invokeValidate ( + async function invokeValidate( doc: Doc, action: Resource<(doc: T, client: Client) => Promise> ): Promise { @@ -83,7 +83,7 @@ return await impl(doc, client) } - async function validate (doc: Doc, _class: Ref>): Promise { + async function validate(doc: Doc, _class: Ref>): Promise { const clazz = hierarchy.getClass(_class) const validatorMixin = hierarchy.as(clazz, view.mixin.ObjectValidator) if (validatorMixin?.validator != null) { diff --git a/plugins/view-resources/src/components/ObjectBox.svelte b/plugins/view-resources/src/components/ObjectBox.svelte index 6ee7e3c31e..09af394890 100644 --- a/plugins/view-resources/src/components/ObjectBox.svelte +++ b/plugins/view-resources/src/components/ObjectBox.svelte @@ -71,7 +71,7 @@ const client = getClient() - async function updateSelected ( + async function updateSelected( _value: Ref | null | undefined, docQuery: DocumentQuery | undefined = undefined ): Promise { diff --git a/plugins/view-resources/src/components/ObjectIcon.svelte b/plugins/view-resources/src/components/ObjectIcon.svelte index 0500999fba..2b0590bb39 100644 --- a/plugins/view-resources/src/components/ObjectIcon.svelte +++ b/plugins/view-resources/src/components/ObjectIcon.svelte @@ -30,7 +30,7 @@ const client = getClient() const hierarchy = client.getHierarchy() - function getObjectIcon (value: Doc): Asset | undefined { + function getObjectIcon(value: Doc): Asset | undefined { if (!withObjectIcon) return undefined return (value as any)?.icon } diff --git a/plugins/view-resources/src/components/ObjectMention.svelte b/plugins/view-resources/src/components/ObjectMention.svelte index 1aec343bca..20572c3ac2 100644 --- a/plugins/view-resources/src/components/ObjectMention.svelte +++ b/plugins/view-resources/src/components/ObjectMention.svelte @@ -64,7 +64,7 @@ $: void updateParentDoc(doc, _class) - async function updateParentDoc (doc: Doc | undefined, _class: Ref> | undefined): Promise { + async function updateParentDoc(doc: Doc | undefined, _class: Ref> | undefined): Promise { const resultClass = doc?._class ?? _class if (resultClass == null) { parentDoc = undefined @@ -91,14 +91,14 @@ $: void updateDocTooltip(doc) $: void updateDocLabel(parentDoc ?? doc, _class) - function getIcon (doc: Doc | undefined): any { + function getIcon(doc: Doc | undefined): any { if (doc == null) return undefined if (hierarchy.isDerived(doc._class, contact.class.Contact)) return undefined return classIcon(client, doc._class) } - function getPanelComponent (doc?: Doc, _class?: Ref>): AnyComponent { + function getPanelComponent(doc?: Doc, _class?: Ref>): AnyComponent { if (component !== undefined) return component const resultClass = doc?._class ?? _class @@ -117,7 +117,7 @@ } } - async function updateDocLabel (doc?: Doc, _class?: Ref>): Promise { + async function updateDocLabel(doc?: Doc, _class?: Ref>): Promise { const resultClass = doc?._class ?? _class if (resultClass != null) { @@ -129,11 +129,11 @@ } } - async function updateDocTitle (doc: Doc | undefined): Promise { + async function updateDocTitle(doc: Doc | undefined): Promise { docTitle = doc ? await getReferenceLabel(doc._class, doc._id, doc) : undefined } - async function updateDocTooltip (doc?: Doc): Promise { + async function updateDocTooltip(doc?: Doc): Promise { if (doc === undefined) { docTooltip = {} return diff --git a/plugins/view-resources/src/components/ObjectSearchBox.svelte b/plugins/view-resources/src/components/ObjectSearchBox.svelte index f5003a3bfd..139242c308 100644 --- a/plugins/view-resources/src/components/ObjectSearchBox.svelte +++ b/plugins/view-resources/src/components/ObjectSearchBox.svelte @@ -73,7 +73,7 @@ const client = getClient() - async function updateSelected (value: Ref | null | undefined) { + async function updateSelected(value: Ref | null | undefined) { selected = value ? await client.findOne(_class, { _id: value }) : undefined } diff --git a/plugins/view-resources/src/components/ParentsNavigator.svelte b/plugins/view-resources/src/components/ParentsNavigator.svelte index 4fbe8acf47..c821d954a8 100644 --- a/plugins/view-resources/src/components/ParentsNavigator.svelte +++ b/plugins/view-resources/src/components/ParentsNavigator.svelte @@ -23,23 +23,23 @@ const client = getClient() - function hasParent (doc: Doc | AttachedDoc): boolean { + function hasParent(doc: Doc | AttachedDoc): boolean { return 'parent' in doc && doc.parent != null } - function getParentId (doc: Doc | AttachedDoc): Ref { + function getParentId(doc: Doc | AttachedDoc): Ref { return isAttachedDoc(doc) ? doc.attachedTo : (doc as any).parent } - function getParentClass (doc: Doc | AttachedDoc): Ref> { + function getParentClass(doc: Doc | AttachedDoc): Ref> { return isAttachedDoc(doc) ? doc.attachedToClass : client.getHierarchy().getParentClass(doc._class) } - function withParent (doc: Doc | AttachedDoc): boolean { + function withParent(doc: Doc | AttachedDoc): boolean { return isAttachedDoc(doc) || hasParent(doc) } - async function getParents (_id: Ref, _class: Ref>, showParents: boolean): Promise { + async function getParents(_id: Ref, _class: Ref>, showParents: boolean): Promise { if (!showParents) { return [] } diff --git a/plugins/view-resources/src/components/ReadOnlyNotification.svelte b/plugins/view-resources/src/components/ReadOnlyNotification.svelte index e72d4577c8..d5b408376e 100644 --- a/plugins/view-resources/src/components/ReadOnlyNotification.svelte +++ b/plugins/view-resources/src/components/ReadOnlyNotification.svelte @@ -8,7 +8,7 @@ export let onRemove: () => void export let notification: Notification - function joinWorkspace (e: MouseEvent): void { + function joinWorkspace(e: MouseEvent): void { navigate({ path: ['login', 'join'], query: { workspace: getCurrentWorkspaceUrl() } }) } diff --git a/plugins/view-resources/src/components/RelationEditor.svelte b/plugins/view-resources/src/components/RelationEditor.svelte index 7b22f314f8..d9e69290be 100644 --- a/plugins/view-resources/src/components/RelationEditor.svelte +++ b/plugins/view-resources/src/components/RelationEditor.svelte @@ -36,7 +36,7 @@ }) } - function getCreate (): ObjectCreate | undefined { + function getCreate(): ObjectCreate | undefined { const factory = client.getHierarchy().classHierarchyMixin(_class, view.mixin.ObjectFactory) if (factory) { const usePopup = isBaseCardTypeWithSubtypes() @@ -49,7 +49,7 @@ } } - function isBaseCardTypeWithSubtypes (): boolean { + function isBaseCardTypeWithSubtypes(): boolean { const hierarchy = client.getHierarchy() if (!hierarchy.isDerived(_class, card.class.Card)) return false @@ -104,7 +104,7 @@ : !p.key.includes('$lookup') && !p.key.startsWith('@') ) - async function onContextMenu (ev: MouseEvent, doc: Doc): Promise { + async function onContextMenu(ev: MouseEvent, doc: Doc): Promise { const q = direction === 'B' ? { docA: object._id, docB: doc._id, association: association._id } diff --git a/plugins/view-resources/src/components/RelationsEditor.svelte b/plugins/view-resources/src/components/RelationsEditor.svelte index 902a2ad866..35f31e055f 100644 --- a/plugins/view-resources/src/components/RelationsEditor.svelte +++ b/plugins/view-resources/src/components/RelationsEditor.svelte @@ -31,7 +31,7 @@ let associationsA: Association[] = [] let associationsB: Association[] = [] - function getAssociations (object: Doc): void { + function getAssociations(object: Doc): void { const parents = h.getAncestors(object._class) const mixins = h.findAllMixins(object) associationsB = client diff --git a/plugins/view-resources/src/components/RelationshipTable.svelte b/plugins/view-resources/src/components/RelationshipTable.svelte index 0078847925..c265460505 100644 --- a/plugins/view-resources/src/components/RelationshipTable.svelte +++ b/plugins/view-resources/src/components/RelationshipTable.svelte @@ -118,12 +118,12 @@ $: sortingFunction = (config.find((it) => typeof it !== 'string' && it.sortingKey === _sortKey) as BuildModelKey) ?.sortingFunction - function getSort (sortKey: string | string[]) { + function getSort(sortKey: string | string[]) { return Array.isArray(sortKey) ? sortKey.reduce((acc: Record, val) => { - acc[val] = sortOrder - return acc - }, {}) + acc[val] = sortOrder + return acc + }, {}) : { ...(options?.sort ?? {}), [sortKey]: sortOrder } } @@ -213,7 +213,7 @@ gtotal = total } - function changeSorting (key: string | string[]): void { + function changeSorting(key: string | string[]): void { if (key === '') { return } @@ -248,20 +248,20 @@ return { ...attribute.props, space: object.space, ...readonlyParams } } - function getValue (attribute: AttributeModel, object: Doc): any { + function getValue(attribute: AttributeModel, object: Doc): any { return getAttributeValue(attribute, object, client.getHierarchy()) } - function showContextMenu (ev: MouseEvent, object: Doc | undefined): void { + function showContextMenu(ev: MouseEvent, object: Doc | undefined): void { if (object === undefined) return showMenu(ev, { object }) } - function onChange (value: any, doc: Doc, key: string, attribute: AnyAttribute): void { + function onChange(value: any, doc: Doc, key: string, attribute: AnyAttribute): void { updateAttribute(client, doc, _class, { key, attr: attribute }, value) } - function getOnChange (doc: Doc, attribute: AttributeModel) { + function getOnChange(doc: Doc, attribute: AttributeModel) { const attr = attribute.attribute if (attr === undefined) return if (attribute.collectionAttr) return @@ -279,7 +279,7 @@ let model: AttributeModel[] | undefined let modelOptions: BuildModelOptions | undefined - const updateModelOptions = reduceCalls(async function updateModelOptions ( + const updateModelOptions = reduceCalls(async function updateModelOptions( client: TxOperations, _class: Ref>, config: Array, @@ -293,7 +293,7 @@ }) $: void updateModelOptions(client, _class, config, lookup) - async function build (modelOptions: BuildModelOptions): Promise { + async function build(modelOptions: BuildModelOptions): Promise { isBuildingModel = true const res = await buildModel(modelOptions) res.sort((a, b) => { @@ -311,7 +311,7 @@ permissionsStore = await getResource(contact.store.Permissions) }) - function canChangeAttr ( + function canChangeAttr( object: Doc, attr: AnyAttribute | undefined, permissionsStore: PermissionsStore | undefined @@ -337,7 +337,7 @@ rowCount: number } - function getView (objects: Doc[], model: AttributeModel[] | undefined): RowModel[] { + function getView(objects: Doc[], model: AttributeModel[] | undefined): RowModel[] { if (model === undefined) return [] const res: RowModel[] = [] for (const obj of objects) { @@ -348,14 +348,14 @@ $: viewModel = getView(objects, model) - function getOwnAttributes (model: AttributeModel[], associationId?: string): AttributeModel[] { + function getOwnAttributes(model: AttributeModel[], associationId?: string): AttributeModel[] { return model.filter((attr) => { if (associationId) return attr.key.startsWith(associationId) && !attr.key.startsWith(`${associationId}.${assoc}`) return !attr.key.startsWith(assoc) }) } - function createLeafResult (doc: Doc | undefined, attrs: AttributeModel[], parent: Doc | undefined): WalkResult { + function createLeafResult(doc: Doc | undefined, attrs: AttributeModel[], parent: Doc | undefined): WalkResult { return { rowCount: 1, rows: [ @@ -371,7 +371,7 @@ } } - function processBranches ( + function processBranches( doc: Doc | undefined, model: AttributeModel[], associations: string[], @@ -402,7 +402,7 @@ return branchesByRelation } - function distributeExtraRows (totalRows: number, existingRows: number): number[] { + function distributeExtraRows(totalRows: number, existingRows: number): number[] { const diff = totalRows - existingRows const extraPerRow = new Array(existingRows).fill(0) @@ -419,7 +419,7 @@ return extraPerRow } - function mergeRows ( + function mergeRows( doc: Doc | undefined, ownAttrs: AttributeModel[], branchesByRelation: Map, @@ -505,7 +505,7 @@ } } - function isAssociationKey (key: string): boolean { + function isAssociationKey(key: string): boolean { // A valid association key ends with `$associations.{assocId}_{direction}` // Sub-field keys like `$associations.assocId_b.fieldName` should NOT be treated as associations const parts = key.split('.') @@ -522,7 +522,7 @@ return lastAssocIdx + 1 === parts.length - 1 } - function getAssociations (model: AttributeModel[], associationId?: string): string[] { + function getAssociations(model: AttributeModel[], associationId?: string): string[] { return model .filter((p) => { if (!isAssociationKey(p.key)) return false @@ -539,7 +539,7 @@ .map((p) => p.key) } - function walk ( + function walk( doc: WithLookup | undefined, model: AttributeModel[], associationId?: string, @@ -563,7 +563,7 @@ return res } - function clickHandler (e: MouseEvent, cell: CellModel): void { + function clickHandler(e: MouseEvent, cell: CellModel): void { if (cell.parentObject === undefined) return const parts = cell.attribute.key.split('$associations.') let association = parts.pop() diff --git a/plugins/view-resources/src/components/SearchSelector.svelte b/plugins/view-resources/src/components/SearchSelector.svelte index 49b544b1c9..1c9a17e9c8 100644 --- a/plugins/view-resources/src/components/SearchSelector.svelte +++ b/plugins/view-resources/src/components/SearchSelector.svelte @@ -2,7 +2,7 @@ import { IconSearch, StatusBarButton, showPopup } from '@hcengineering/ui' import ActionsPopup from './ActionsPopup.svelte' - function openPopup (): void { + function openPopup(): void { showPopup(ActionsPopup, {}, 'top') } diff --git a/plugins/view-resources/src/components/StringPresenter.svelte b/plugins/view-resources/src/components/StringPresenter.svelte index c246094dfc..96e48c9208 100644 --- a/plugins/view-resources/src/components/StringPresenter.svelte +++ b/plugins/view-resources/src/components/StringPresenter.svelte @@ -23,7 +23,7 @@ $: tooltipParams = getTooltip(value) - function getTooltip (value: string | string[] | null | undefined): LabelAndProps | undefined { + function getTooltip(value: string | string[] | null | undefined): LabelAndProps | undefined { if (value == null) return let str = '' if (Array.isArray(value)) { diff --git a/plugins/view-resources/src/components/Table.svelte b/plugins/view-resources/src/components/Table.svelte index 1bbcd6cfc6..b7872c2f8e 100644 --- a/plugins/view-resources/src/components/Table.svelte +++ b/plugins/view-resources/src/components/Table.svelte @@ -129,12 +129,12 @@ $: sortingFunction = (config.find((it) => typeof it !== 'string' && it.sortingKey === _sortKey) as BuildModelKey) ?.sortingFunction - function getSort (sortKey: string | string[]) { + function getSort(sortKey: string | string[]) { return Array.isArray(sortKey) ? sortKey.reduce((acc: Record, val) => { - acc[val] = sortOrder - return acc - }, {}) + acc[val] = sortOrder + return acc + }, {}) : { ...(options?.sort ?? {}), [sortKey]: sortOrder } } @@ -241,7 +241,7 @@ showMenu(ev, { object: items, baseMenuClass }) } - function changeSorting (key: string | string[]): void { + function changeSorting(key: string | string[]): void { if (key === '') { return } @@ -258,22 +258,22 @@ $: checkedSet = new Set>(checked.map((it) => it._id)) $: allItemsSelected = objects?.length === checkedSet.size && objects?.length > 0 - export function check (docs: Doc[], value: boolean) { + export function check(docs: Doc[], value: boolean) { if (!enableChecking) return dispatch('check', { docs, value }) } - function getLoadingLength (props: LoadingProps, options?: FindOptions): number { + function getLoadingLength(props: LoadingProps, options?: FindOptions): number { if (options?.limit !== undefined && options?.limit > 0) { return Math.min(options?.limit, props.length) } return props.length } - function onRow (object: Doc): void { + function onRow(object: Doc): void { dispatch('row-focus', object) } - export function select (offset: 1 | -1 | 0, of?: Doc, noScroll?: boolean): void { + export function select(offset: 1 | -1 | 0, of?: Doc, noScroll?: boolean): void { let pos = (of !== undefined ? objects.findIndex((it) => it._id === of._id) : selection) ?? -1 pos += offset if (pos < 0) { @@ -310,7 +310,7 @@ } return { ...attribute.props, space: object.space, ...readonlyParams } } - function getValue (attribute: AttributeModel, object: Doc): any { + function getValue(attribute: AttributeModel, object: Doc): any { if (attribute.castRequest) { return getObjectValue( attribute.key.substring(attribute.castRequest.length + 1), @@ -320,11 +320,11 @@ return getObjectValue(attribute.key, object) } - function onChange (value: any, doc: Doc, key: string, attribute: AnyAttribute): void { + function onChange(value: any, doc: Doc, key: string, attribute: AnyAttribute): void { updateAttribute(client, doc, _class, { key, attr: attribute }, value) } - function getOnChange (doc: Doc, attribute: AttributeModel) { + function getOnChange(doc: Doc, attribute: AttributeModel) { const attr = attribute.attribute if (attr === undefined) return if (attribute.collectionAttr) return @@ -342,7 +342,7 @@ let model: AttributeModel[] | undefined let modelOptions: BuildModelOptions | undefined - const updateModelOptions = reduceCalls(async function updateModelOptions ( + const updateModelOptions = reduceCalls(async function updateModelOptions( client: TxOperations, _class: Ref>, config: Array, @@ -356,14 +356,14 @@ }) $: void updateModelOptions(client, _class, config, lookup) - async function build (modelOptions: BuildModelOptions): Promise { + async function build(modelOptions: BuildModelOptions): Promise { isBuildingModel = true const res = await buildModel(modelOptions) model = res isBuildingModel = false } - function contextHandler (object: Doc, row: number): (ev: MouseEvent) => void { + function contextHandler(object: Doc, row: number): (ev: MouseEvent) => void { return (ev) => { if (!readonly) { void showContextMenu(ev, object, row) @@ -377,7 +377,7 @@ permissionsStore = await getResource(contact.store.Permissions) }) - function canChangeAttr ( + function canChangeAttr( object: Doc, attr: AnyAttribute | undefined, permissionsStore: PermissionsStore | undefined @@ -387,7 +387,7 @@ return canChangeAttribute(attr, object.space as Ref, permissionsStore, object._class) } - async function canEdit (object: Doc): Promise { + async function canEdit(object: Doc): Promise { if (client.getHierarchy().isDerived(object._class, core.class.Space)) { return await canEditSpace(object) } diff --git a/plugins/view-resources/src/components/UpDownNavigator.svelte b/plugins/view-resources/src/components/UpDownNavigator.svelte index 4a040e95ed..651976187b 100644 --- a/plugins/view-resources/src/components/UpDownNavigator.svelte +++ b/plugins/view-resources/src/components/UpDownNavigator.svelte @@ -12,7 +12,7 @@ const client = getClient() - async function next (evt: Event, pn: boolean): Promise { + async function next(evt: Event, pn: boolean): Promise { select(evt, pn ? 1 : -1, element, 'vertical') await tick() if ($focusStore.focus !== undefined) { diff --git a/plugins/view-resources/src/components/ValueSelector.svelte b/plugins/view-resources/src/components/ValueSelector.svelte index 1c9045ed4b..78c5541ada 100644 --- a/plugins/view-resources/src/components/ValueSelector.svelte +++ b/plugins/view-resources/src/components/ValueSelector.svelte @@ -18,12 +18,12 @@ export let attribute: string export let searchField: string export let values: - | Array<{ - icon?: Asset - label: IntlString - id: string | number - }> - | undefined = undefined + | Array<{ + icon?: Asset + label: IntlString + id: string | number + }> + | undefined = undefined export let fillQuery: Record | undefined export let docMatches: string[] | undefined @@ -80,7 +80,7 @@ let docMatch = true - function updateQuery ( + function updateQuery( query: DocumentQuery | undefined, value: Doc | Doc[], fillQuery: Record | undefined diff --git a/plugins/view-resources/src/components/ViewOptions.svelte b/plugins/view-resources/src/components/ViewOptions.svelte index ee94f92d0e..cc01bb1946 100644 --- a/plugins/view-resources/src/components/ViewOptions.svelte +++ b/plugins/view-resources/src/components/ViewOptions.svelte @@ -57,7 +57,7 @@ } }) - function selectGrouping (value: string, i: number) { + function selectGrouping(value: string, i: number) { groups[i] = value if (value === noCategory) { groups.length = i + 1 @@ -72,7 +72,7 @@ }) } - function getItems (groupBy: DropdownIntlItem[], i: number, current: string[]): DropdownIntlItem[] { + function getItems(groupBy: DropdownIntlItem[], i: number, current: string[]): DropdownIntlItem[] { const notAllowed = current.slice(0, i) return groupBy.filter((p) => !notAllowed.includes(p.id as string)) } diff --git a/plugins/view-resources/src/components/ViewOptionsButton.svelte b/plugins/view-resources/src/components/ViewOptionsButton.svelte index 81ae676c97..bc06ce0868 100644 --- a/plugins/view-resources/src/components/ViewOptionsButton.svelte +++ b/plugins/view-resources/src/components/ViewOptionsButton.svelte @@ -43,7 +43,7 @@ let btn: HTMLButtonElement let pressed: boolean = false - function getGroupingCustomAttributes (h: Hierarchy, _class: Ref>): string[] { + function getGroupingCustomAttributes(h: Hierarchy, _class: Ref>): string[] { const customAttributes = [...h.getOwnAttributes(_class).values()] .filter( (attr) => attr.isCustom && !attr.isHidden && [core.class.RefTo, core.class.EnumOf].includes(attr.type._class) @@ -52,7 +52,7 @@ return customAttributes } - function getCustomSortingAttributes (h: Hierarchy, _class: Ref>): OrderOption[] { + function getCustomSortingAttributes(h: Hierarchy, _class: Ref>): OrderOption[] { const sortableTypes: Ref>>[] = [ core.class.EnumOf, core.class.TypeString, @@ -69,7 +69,7 @@ return customSortableAttributes } - async function clickHandler (): Promise { + async function clickHandler(): Promise { if (viewlet === undefined) { return } diff --git a/plugins/view-resources/src/components/ViewletClassSettings.svelte b/plugins/view-resources/src/components/ViewletClassSettings.svelte index 9007628433..26d2f50ecd 100644 --- a/plugins/view-resources/src/components/ViewletClassSettings.svelte +++ b/plugins/view-resources/src/components/ViewletClassSettings.svelte @@ -24,12 +24,12 @@ const dispatch = createEventDispatcher() - function dragEnd () { + function dragEnd() { selected = undefined dispatch('save', items) } - function dragOver (e: DragEvent, i: number) { + function dragOver(e: DragEvent, i: number) { e.preventDefault() e.stopPropagation() const s = selected as number @@ -41,7 +41,7 @@ const elements: HTMLElement[] = [] - function dragswap (ev: MouseEvent, i: number, s: number): boolean { + function dragswap(ev: MouseEvent, i: number, s: number): boolean { if (i < s) { return ev.offsetY < elements[i].offsetHeight / 2 } else if (i > s) { @@ -50,7 +50,7 @@ return false } - function change (item: Config, value: boolean): void { + function change(item: Config, value: boolean): void { if (isAttribute(item)) { item.enabled = value dispatch('save', items) diff --git a/plugins/view-resources/src/components/ViewletContentView.svelte b/plugins/view-resources/src/components/ViewletContentView.svelte index a8d50f0952..c3dcb38b89 100644 --- a/plugins/view-resources/src/components/ViewletContentView.svelte +++ b/plugins/view-resources/src/components/ViewletContentView.svelte @@ -30,7 +30,7 @@ let configurationRaw: Viewlet[] = [] let configurations: Record>, Viewlet['config']> = {} - function fetchConfigurations (viewlet: Viewlet): void { + function fetchConfigurations(viewlet: Viewlet): void { configurations = {} configurationsLoading = objectConfigurations.query( view.class.Viewlet, @@ -47,7 +47,7 @@ ) } - function fetchPreferences (configurationRaw: Viewlet[]): void { + function fetchPreferences(configurationRaw: Viewlet[]): void { preferencesLoading = preferenceQuery.query( view.class.ViewletPreference, { @@ -62,7 +62,7 @@ ) } - function updateConfiguration (configurationRaw: Viewlet[], preference: ViewletPreference[]): void { + function updateConfiguration(configurationRaw: Viewlet[], preference: ViewletPreference[]): void { const newConfigurations: Record>, Viewlet['config']> = {} for (const v of configurationRaw) { diff --git a/plugins/view-resources/src/components/ViewletSelector.svelte b/plugins/view-resources/src/components/ViewletSelector.svelte index e057ee1817..316e745140 100644 --- a/plugins/view-resources/src/components/ViewletSelector.svelte +++ b/plugins/view-resources/src/components/ViewletSelector.svelte @@ -44,7 +44,7 @@ const dispatch = createEventDispatcher() - function getActiveViewlet ( + function getActiveViewlet( viewlets: Array>, activeViewlet: Record | null>, key: string diff --git a/plugins/view-resources/src/components/ViewletSetting.svelte b/plugins/view-resources/src/components/ViewletSetting.svelte index 4ee033794b..bf0ca7920d 100644 --- a/plugins/view-resources/src/components/ViewletSetting.svelte +++ b/plugins/view-resources/src/components/ViewletSetting.svelte @@ -95,7 +95,7 @@ order?: number } - function getObjectConfig (_class: Ref>, param: string): AttributeConfig { + function getObjectConfig(_class: Ref>, param: string): AttributeConfig { const clazz = hierarchy.getClass(_class) return { type: 'attribute', @@ -107,11 +107,11 @@ } } - function getAssociationLabel (client: TxOperations, param: string): IntlString { + function getAssociationLabel(client: TxOperations, param: string): IntlString { return getKeyLabel(client, viewlet.attachTo, param, undefined) } - function getBaseConfig (viewlet: Viewlet): Config[] { + function getBaseConfig(viewlet: Viewlet): Config[] { const config = defaultConfig ?? viewlet.config const lookup = buildConfigLookup(hierarchy, viewlet.attachTo, config, viewlet.options?.lookup) const result: Config[] = [] @@ -177,7 +177,7 @@ return result } - function getValue (name: string, type: Type, attrClass: Ref>): string { + function getValue(name: string, type: Type, attrClass: Ref>): string { const presenter = hierarchy.classHierarchyMixin(attrClass, view.mixin.AttributePresenter)?.presenter if (presenter !== undefined) { return name @@ -188,7 +188,7 @@ return name } - function processAttribute (attribute: AnyAttribute, result: Config[], useMixinProxy = false): void { + function processAttribute(attribute: AnyAttribute, result: Config[], useMixinProxy = false): void { if (attribute.hidden || attribute.label === undefined) return if (viewlet.configOptions?.hiddenKeys?.includes(attribute.name)) return if (hierarchy.isDerived(attribute.type._class, core.class.Collection)) return @@ -244,15 +244,15 @@ } } - function isAttribute (val: Config): val is AttributeConfig { + function isAttribute(val: Config): val is AttributeConfig { return val.type === 'attribute' } - function getKey (value: string | BuildModelKey | undefined): string | undefined { + function getKey(value: string | BuildModelKey | undefined): string | undefined { return typeof value === 'string' ? value : value?.key } - function getAttributeKey (key: string): string { + function getAttributeKey(key: string): string { if (key.startsWith('$lookup.')) { return key.slice('$lookup.'.length) } @@ -260,11 +260,11 @@ return dotIndex === -1 ? key : key.slice(dotIndex + 1) } - function isSourceAttribute (sourceClass: Ref>, key: string): boolean { + function isSourceAttribute(sourceClass: Ref>, key: string): boolean { return hierarchy.getAllAttributes(sourceClass).has(getAttributeKey(key)) } - function syncConfigOrder ( + function syncConfigOrder( sourceClass: Ref>, previousSourceConfig: Array, sourceConfig: Array, @@ -313,7 +313,7 @@ return synced } - function isExist (result: Config[], newValue: Config): boolean { + function isExist(result: Config[], newValue: Config): boolean { if (!isAttribute(newValue)) return false const newValueKey = getKey(newValue.value) if (newValueKey === undefined) return false @@ -332,11 +332,11 @@ return false } - function getParentsString (parents: AssociationQuery[]): string { + function getParentsString(parents: AssociationQuery[]): string { return parents.map(([assocId, direction]) => `$associations.${assocId}_${direction === 1 ? 'a' : 'b'}`).join('.') } - async function processAssociation ( + async function processAssociation( association: Association, direction: 'a' | 'b', result: Config[], @@ -387,7 +387,7 @@ } } - async function addAssociationAttributes ( + async function addAssociationAttributes( result: Config[], targetClass: Ref>, associationKey: string, @@ -429,7 +429,7 @@ } } - async function getConfig (viewlet: Viewlet, preference: ViewletPreference | undefined): Promise { + async function getConfig(viewlet: Viewlet, preference: ViewletPreference | undefined): Promise { const result = getBaseConfig(viewlet) if (viewlet.configOptions?.strict !== true) { @@ -452,7 +452,7 @@ return preference === undefined ? result : setStatus(result, preference) } - async function upsertViewletPreference ( + async function upsertViewletPreference( viewletId: Ref, config: Array ): Promise { @@ -471,7 +471,7 @@ } } - async function syncChildViewletPreferences ( + async function syncChildViewletPreferences( sourceViewlet: Viewlet, previousSourceConfig: Array, sourceConfig: Array @@ -491,7 +491,7 @@ } } - async function addAssociations ( + async function addAssociations( result: Config[], _class: Ref>, preference: ViewletPreference | undefined, @@ -523,7 +523,7 @@ } } - async function save (viewletId: Ref, items: Array): Promise { + async function save(viewletId: Ref, items: Array): Promise { const configValues = items.filter( (p) => p.value !== undefined && @@ -548,14 +548,14 @@ } } - async function restoreDefault (viewletId: Ref): Promise { + async function restoreDefault(viewletId: Ref): Promise { const preference = preferences.find((p) => p.attachedTo === viewletId) if (preference !== undefined) { await client.remove(preference) } } - function setStatus (result: Config[], preference: ViewletPreference): Config[] { + function setStatus(result: Config[], preference: ViewletPreference): Config[] { for (const key of result) { if (!isAttribute(key)) continue const index = preference.config.findIndex((p) => deepEqual(p, key.value)) diff --git a/plugins/view-resources/src/components/ViewletSettingButton.svelte b/plugins/view-resources/src/components/ViewletSettingButton.svelte index 10c9ff5c89..48c9e87cfe 100644 --- a/plugins/view-resources/src/components/ViewletSettingButton.svelte +++ b/plugins/view-resources/src/components/ViewletSettingButton.svelte @@ -73,7 +73,7 @@ }) } - function getDefaults (viewOptions: ViewOptionsModel): ViewOptions { + function getDefaults(viewOptions: ViewOptionsModel): ViewOptions { const res: ViewOptions = { groupBy: [viewOptions.groupBy[0] ?? defaultOptions.groupBy[0]], orderBy: viewOptions.orderBy?.[0] ?? defaultOptions.orderBy @@ -84,7 +84,7 @@ return res } - function getDefaultOptions (): ViewOptions { + function getDefaultOptions(): ViewOptions { if (defaultViewOptions != null) return defaultViewOptions return viewlet?.viewOptions != null ? getDefaults(viewlet.viewOptions) : defaultOptions diff --git a/plugins/view-resources/src/components/filter/ArrayFilter.svelte b/plugins/view-resources/src/components/filter/ArrayFilter.svelte index ec72d26ded..1d4fd7a08f 100644 --- a/plugins/view-resources/src/components/filter/ArrayFilter.svelte +++ b/plugins/view-resources/src/components/filter/ArrayFilter.svelte @@ -61,7 +61,7 @@ let filterUpdateTimeout: any | undefined - async function getEnumValues (search: string): Promise { + async function getEnumValues(search: string): Promise { const enumId = ((filter.key.attribute.type as ArrOf).of as EnumOf).of const enumVal = await client.findOne(core.class.Enum, { _id: enumId }) if (enumVal !== undefined) { @@ -75,7 +75,7 @@ } } - async function getValues (search: string): Promise { + async function getValues(search: string): Promise { if (objectsPromise) { await objectsPromise } @@ -128,7 +128,7 @@ objectsPromise = undefined } - function getValue (obj: any): any { + function getValue(obj: any): any { if (typeof obj === 'string') { const trim = obj.trim() return trim.length > 0 ? trim.toUpperCase() : undefined @@ -137,11 +137,11 @@ } } - function isSelected (value: any, values: Set): boolean { + function isSelected(value: any, values: Set): boolean { return values.has(value) } - function handleFilterToggle (value: any): void { + function handleFilterToggle(value: any): void { if (isSelected(value, selectedValues)) { selectedValues.delete(value) } else { @@ -152,7 +152,7 @@ updateFilter(selectedValues) } - function updateFilter (newValues: Set) { + function updateFilter(newValues: Set) { clearTimeout(filterUpdateTimeout) filterUpdateTimeout = setTimeout(() => { diff --git a/plugins/view-resources/src/components/filter/DateFilter.svelte b/plugins/view-resources/src/components/filter/DateFilter.svelte index 394b3c21b3..a828a46387 100644 --- a/plugins/view-resources/src/components/filter/DateFilter.svelte +++ b/plugins/view-resources/src/components/filter/DateFilter.svelte @@ -64,7 +64,7 @@ modes = res }) - function showPicker () { + function showPicker() { if (filter.mode === view.filter.FilterDateBetween) { showPopup( RangeDatePopup, diff --git a/plugins/view-resources/src/components/filter/DateFilterPresenter.svelte b/plugins/view-resources/src/components/filter/DateFilterPresenter.svelte index 113319add3..8bc4016608 100644 --- a/plugins/view-resources/src/components/filter/DateFilterPresenter.svelte +++ b/plugins/view-resources/src/components/filter/DateFilterPresenter.svelte @@ -26,7 +26,7 @@ $: checkValues(filter.mode) - function checkValues (mode: Ref) { + function checkValues(mode: Ref) { if (mode !== view.filter.FilterDateBetween && filter.value.length !== 1) { showPicker() } else if (mode === view.filter.FilterDateBetween && filter.value.length !== 2) { @@ -34,7 +34,7 @@ } } - function showPicker () { + function showPicker() { if (filter.mode === view.filter.FilterDateBetween) { showPopup( RangeDatePopup, diff --git a/plugins/view-resources/src/components/filter/FilterBar.svelte b/plugins/view-resources/src/components/filter/FilterBar.svelte index 85fba9e11f..4f94788b8c 100644 --- a/plugins/view-resources/src/components/filter/FilterBar.svelte +++ b/plugins/view-resources/src/components/filter/FilterBar.svelte @@ -109,7 +109,7 @@ visible = hierarchy.classHierarchyMixin(_class, view.mixin.ClassFilters) !== undefined } - function selectedFilterChanged ( + function selectedFilterChanged( selectedFilter: FilteredView | undefined, filters: Filter[], activeViewlet: Record | null>, diff --git a/plugins/view-resources/src/components/filter/FilterButton.svelte b/plugins/view-resources/src/components/filter/FilterButton.svelte index 7b4f418be6..905db2f5ff 100644 --- a/plugins/view-resources/src/components/filter/FilterButton.svelte +++ b/plugins/view-resources/src/components/filter/FilterButton.svelte @@ -36,7 +36,7 @@ } }) - function load (_class: Ref> | undefined): void { + function load(_class: Ref> | undefined): void { const key = getFilterKey(_class) const items = localStorage.getItem(key) if (items !== null) { @@ -44,7 +44,7 @@ } } - function save (_class: Ref> | undefined, p: Filter[]): void { + function save(_class: Ref> | undefined, p: Filter[]): void { const key = getFilterKey(_class) localStorage.setItem(key, JSON.stringify(p)) } @@ -66,7 +66,7 @@ _class = undefined }) - function add (e: MouseEvent): void { + function add(e: MouseEvent): void { const target = eventToHTMLElement(e) showPopup( FilterTypePopup, diff --git a/plugins/view-resources/src/components/filter/FilterSave.svelte b/plugins/view-resources/src/components/filter/FilterSave.svelte index 034df3d158..e293b20138 100644 --- a/plugins/view-resources/src/components/filter/FilterSave.svelte +++ b/plugins/view-resources/src/components/filter/FilterSave.svelte @@ -16,14 +16,14 @@ let filterName = '' const client = getClient() - async function getTargetSpace (spaceRef: string | undefined): Promise> { + async function getTargetSpace(spaceRef: string | undefined): Promise> { // Store the filtered view in the space it is built on if (spaceRef === undefined) return core.space.Workspace const space = await client.findOne(core.class.Space, { _id: spaceRef as Ref }) return space?._id ?? core.space.Workspace } - async function saveFilter () { + async function saveFilter() { const loc = getCurrentResolvedLocation() loc.fragment = undefined const filters = JSON.stringify($filterStore) diff --git a/plugins/view-resources/src/components/filter/FilterSection.svelte b/plugins/view-resources/src/components/filter/FilterSection.svelte index 57ea8f7e05..9f73af962e 100644 --- a/plugins/view-resources/src/components/filter/FilterSection.svelte +++ b/plugins/view-resources/src/components/filter/FilterSection.svelte @@ -40,7 +40,7 @@ const client = getClient() const hierarchy = client.getHierarchy() - function getTargetClass (): Ref> | undefined { + function getTargetClass(): Ref> | undefined { try { return (hierarchy.getAttribute(currentFilter.key._class, currentFilter.key.key).type as RefTo).to } catch (err: any) { @@ -51,7 +51,7 @@ $: isState = targetClass === core.class.Status const dispatch = createEventDispatcher() - async function getCountStates (ids: Array>): Promise { + async function getCountStates(ids: Array>): Promise { if (targetClass === undefined) { return 0 } @@ -61,7 +61,7 @@ } let countLabel: string = '' - async function getLabel (): Promise { + async function getLabel(): Promise { const count = isState ? await getCountStates(currentFilter.value) : currentFilter.value.length countLabel = await translate(view.string.FilterStatesCount, { value: count }, $themeStore.language) } @@ -70,17 +70,17 @@ $: if (filter) getLabel() $: getValueComponent(currentFilter) - async function getValueComponent (filter: Filter): Promise { + async function getValueComponent(filter: Filter): Promise { const presenterClass = getAttributePresenterClass(hierarchy, filter.key.attribute.type) const presenterMixin = hierarchy.classHierarchyMixin(presenterClass.attrClass, view.mixin.AttributeFilterPresenter) valueComponent = presenterMixin?.presenter } - async function getMode (mode: Ref): Promise { + async function getMode(mode: Ref): Promise { return await client.findOne(view.class.FilterMode, { _id: mode }) } - function onChange (e: Filter) { + function onChange(e: Filter) { if (filter.nested !== undefined) { filter.nested = e } else { @@ -97,7 +97,7 @@ $: modeValuePromise = getMode(filter.mode) $: nestedModeValuePromise = filter.nested ? getMode(filter.nested.mode) : undefined - function clickHandler (e: MouseEvent, nested: boolean) { + function clickHandler(e: MouseEvent, nested: boolean) { const curr = nested && filter.nested ? filter.nested : filter showPopup(ModeSelector, { filter: curr }, eventToHTMLElement(e), (res) => { if (res) { diff --git a/plugins/view-resources/src/components/filter/FilterTypePopup.svelte b/plugins/view-resources/src/components/filter/FilterTypePopup.svelte index 3b0c0f6f40..489ba0a913 100644 --- a/plugins/view-resources/src/components/filter/FilterTypePopup.svelte +++ b/plugins/view-resources/src/components/filter/FilterTypePopup.svelte @@ -34,7 +34,7 @@ const client = getClient() const hierarchy = client.getHierarchy() - function getFilters (_class: Ref>, mixin: ClassFilters): KeyFilter[] { + function getFilters(_class: Ref>, mixin: ClassFilters): KeyFilter[] { if (mixin.filters === undefined) return [] const filters = mixin.filters.map((p) => { return typeof p === 'string' ? buildFilterFromKey(mixin._id, p) : buildFilterFromPreset(p) @@ -51,7 +51,7 @@ return result } - function buildFilterFromPreset (p: KeyFilterPreset): KeyFilter | undefined { + function buildFilterFromPreset(p: KeyFilterPreset): KeyFilter | undefined { if (p.key !== '') { const attribute = hierarchy.getAttribute(p._class, p.key) return { @@ -62,19 +62,19 @@ } } - function buildFilterFromKey (_class: Ref>, key: string): KeyFilter | undefined { + function buildFilterFromKey(_class: Ref>, key: string): KeyFilter | undefined { const attribute = hierarchy.getAttribute(_class, key) return buildFilterKey(hierarchy, _class, key, attribute) } - function getValue (name: string, type: Type): string { + function getValue(name: string, type: Type): string { if (hierarchy.isDerived(type._class, core.class.ArrOf)) { return getValue(name, (type as ArrOf).of) } return name } - function buildFilterForAttr (_class: Ref>, attribute: AnyAttribute, result: KeyFilter[]): void { + function buildFilterForAttr(_class: Ref>, attribute: AnyAttribute, result: KeyFilter[]): void { if (attribute.label === undefined || attribute.hidden) { return } @@ -88,7 +88,7 @@ } } - function buildFilterFor ( + function buildFilterFor( _class: Ref>, allAttributes: Map, result: KeyFilter[], @@ -103,7 +103,7 @@ } } - async function getTypes (_class: Ref>, nestedFrom: KeyFilter | undefined): Promise { + async function getTypes(_class: Ref>, nestedFrom: KeyFilter | undefined): Promise { let res: KeyFilter[] = [] if (nestedFrom !== undefined) { res = await getNestedTypes(nestedFrom) @@ -121,12 +121,12 @@ return res } - async function getNestedTypes (type: KeyFilter): Promise { + async function getNestedTypes(type: KeyFilter): Promise { const targetClass = (hierarchy.getAttribute(type._class, type.key).type as RefTo).to return await getOwnTypes(targetClass) } - async function getOwnTypes (_class: Ref>): Promise { + async function getOwnTypes(_class: Ref>): Promise { const mixin = hierarchy.classHierarchyMixin(_class, view.mixin.ClassFilters) if (mixin === undefined) return [] _class = hierarchy.getBaseClass(_class) @@ -194,7 +194,7 @@ const dispatch = createEventDispatcher() - function click (type: KeyFilter): void { + function click(type: KeyFilter): void { closePopup() closeTooltip() @@ -239,7 +239,7 @@ } } - function hasNested (type: KeyFilter): boolean { + function hasNested(type: KeyFilter): boolean { if (type.showNested === false) { return false } @@ -249,7 +249,7 @@ return hierarchy.hasMixin(clazz, view.mixin.ClassFilters) } - function setNestedFilter (type: KeyFilter, e: Filter | undefined) { + function setNestedFilter(type: KeyFilter, e: Filter | undefined) { const filter: Filter = { value: [], key: type, @@ -269,7 +269,7 @@ const elements: HTMLElement[] = [] - function nextDiffCat (types: KeyFilter[], i: number): boolean { + function nextDiffCat(types: KeyFilter[], i: number): boolean { if (types[i + 1] === undefined) return false return types[i].group !== types[i + 1].group } diff --git a/plugins/view-resources/src/components/filter/ObjectFilter.svelte b/plugins/view-resources/src/components/filter/ObjectFilter.svelte index 95fbfb9175..a26ad05f27 100644 --- a/plugins/view-resources/src/components/filter/ObjectFilter.svelte +++ b/plugins/view-resources/src/components/filter/ObjectFilter.svelte @@ -73,7 +73,7 @@ let filterUpdateTimeout: any | undefined - async function getValues (search: string): Promise { + async function getValues(search: string): Promise { if (objectsPromise !== undefined) { await objectsPromise } @@ -155,14 +155,14 @@ objectsPromise = undefined } - function isSelected (value: Doc | undefined | null, values: any[]): boolean { + function isSelected(value: Doc | undefined | null, values: any[]): boolean { if (value != null && grouppingManager !== undefined) { return grouppingManager.hasValue(value, values) } return values.includes(value?._id ?? value) } - function handleFilterToggle (value: any): void { + function handleFilterToggle(value: any): void { if (isSelected(value, filter.value)) { filter.value = filter.value.filter((p) => (value ? p !== value._id : p != null)) } else { @@ -176,7 +176,7 @@ updateFilter() } - function updateFilter (): void { + function updateFilter(): void { clearTimeout(filterUpdateTimeout) filterUpdateTimeout = setTimeout(() => { diff --git a/plugins/view-resources/src/components/filter/PersonIdFilterValuePresenter.svelte b/plugins/view-resources/src/components/filter/PersonIdFilterValuePresenter.svelte index 26aa48c393..1fd2ee17c5 100644 --- a/plugins/view-resources/src/components/filter/PersonIdFilterValuePresenter.svelte +++ b/plugins/view-resources/src/components/filter/PersonIdFilterValuePresenter.svelte @@ -24,7 +24,7 @@ let persons: Ref[] = [] $: void getPersons(value) - async function getPersons (ids: PersonId[]): Promise { + async function getPersons(ids: PersonId[]): Promise { if (ids !== undefined) { if (ids.length === 0) { persons = [] diff --git a/plugins/view-resources/src/components/filter/StringFilter.svelte b/plugins/view-resources/src/components/filter/StringFilter.svelte index f976d0fdf5..753df56a61 100644 --- a/plugins/view-resources/src/components/filter/StringFilter.svelte +++ b/plugins/view-resources/src/components/filter/StringFilter.svelte @@ -28,7 +28,7 @@ filter.modes = [view.filter.FilterContains] filter.mode ??= filter.modes[0] - export function onKeyDown (event: KeyboardEvent): boolean { + export function onKeyDown(event: KeyboardEvent): boolean { if (event.key === 'Enter') { event.preventDefault() event.stopPropagation() @@ -40,7 +40,7 @@ return false } - function save () { + function save() { if (search == null || search === '') { return } diff --git a/plugins/view-resources/src/components/filter/TimestampFilter.svelte b/plugins/view-resources/src/components/filter/TimestampFilter.svelte index a22025a434..83b62a8cec 100644 --- a/plugins/view-resources/src/components/filter/TimestampFilter.svelte +++ b/plugins/view-resources/src/components/filter/TimestampFilter.svelte @@ -27,7 +27,7 @@ filter.modes = [view.filter.FilterBefore, view.filter.FilterAfter] filter.mode = filter.mode === undefined ? filter.modes[0] : filter.mode - function click (value: number): void { + function click(value: number): void { closeTooltip() filter.value = [value] onChange(filter) @@ -35,7 +35,7 @@ } const today = new Date().setHours(0, 0, 0, 0) - function shiftDays (diff: number): number { + function shiftDays(diff: number): number { return new Date(today).setDate(new Date(today).getDate() - diff) } diff --git a/plugins/view-resources/src/components/filter/ValueFilter.svelte b/plugins/view-resources/src/components/filter/ValueFilter.svelte index 0d77e78723..2d76119c60 100644 --- a/plugins/view-resources/src/components/filter/ValueFilter.svelte +++ b/plugins/view-resources/src/components/filter/ValueFilter.svelte @@ -64,7 +64,7 @@ let filterUpdateTimeout: any | undefined - async function getValues (search: string): Promise { + async function getValues(search: string): Promise { if (objectsPromise) { await objectsPromise } @@ -83,7 +83,7 @@ } : {} - async function doQuery (limit: number | undefined, sortedValues: any[] | undefined): Promise { + async function doQuery(limit: number | undefined, sortedValues: any[] | undefined): Promise { const p = client.findAll( _class, { @@ -132,7 +132,7 @@ } } - function getValue (obj: any): any { + function getValue(obj: any): any { if (typeof obj === 'string') { const trim = obj.trim() return trim.length > 0 ? trim.toUpperCase() : undefined @@ -141,11 +141,11 @@ } } - function isSelected (value: any, values: Set): boolean { + function isSelected(value: any, values: Set): boolean { return values.has(value) } - function handleFilterToggle (value: any): void { + function handleFilterToggle(value: any): void { if (isSelected(value, selectedValues)) { selectedValues.delete(value) } else { @@ -156,7 +156,7 @@ updateFilter(selectedValues) } - function updateFilter (newValues: Set) { + function updateFilter(newValues: Set) { clearTimeout(filterUpdateTimeout) filterUpdateTimeout = setTimeout(() => { diff --git a/plugins/view-resources/src/components/folders/FolderTreeLevel.svelte b/plugins/view-resources/src/components/folders/FolderTreeLevel.svelte index 93323762a9..7a7c181134 100644 --- a/plugins/view-resources/src/components/folders/FolderTreeLevel.svelte +++ b/plugins/view-resources/src/components/folders/FolderTreeLevel.svelte @@ -33,19 +33,19 @@ const client = getClient() - function getTitle (doc: Doc): string { + function getTitle(doc: Doc): string { return (doc as any)?.title || '' } - function getDescendants (obj: Ref): Ref[] { + function getDescendants(obj: Ref): Ref[] { return (descendants.get(obj) ?? []).sort((a, b) => getTitle(a).localeCompare(getTitle(b))).map((p) => p._id) } - function handleSelected (obj: Ref): void { + function handleSelected(obj: Ref): void { dispatch('selected', obj) } - async function getActions (obj: Doc): Promise { + async function getActions(obj: Doc): Promise { const result: Action[] = [] const extraActions = await getContributedActions(client, obj) for (const act of extraActions) { diff --git a/plugins/view-resources/src/components/folders/FoldersBrowser.svelte b/plugins/view-resources/src/components/folders/FoldersBrowser.svelte index 5ae3aac572..500a71a53c 100644 --- a/plugins/view-resources/src/components/folders/FoldersBrowser.svelte +++ b/plugins/view-resources/src/components/folders/FoldersBrowser.svelte @@ -81,7 +81,7 @@ } ) - async function handleFolderSelected (_id: Ref): Promise { + async function handleFolderSelected(_id: Ref): Promise { if (getFolderLink !== undefined) { const getFolderLinkFunction = await getResource(getFolderLink) navigate(getFolderLinkFunction(_id)) @@ -91,11 +91,11 @@ dispatch('select', _id) } - async function handleAllItemsSelected (): Promise { + async function handleAllItemsSelected(): Promise { await handleFolderSelected(noParentId) } - async function getFolderActions (obj: Doc): Promise { + async function getFolderActions(obj: Doc): Promise { const result: Action[] = [] const extraActions = await getContributedActions(client, obj) for (const act of extraActions) { @@ -111,7 +111,7 @@ return result } - async function getRootActions (): Promise { + async function getRootActions(): Promise { return [] } diff --git a/plugins/view-resources/src/components/linkPresenters/GithubPresenter.svelte b/plugins/view-resources/src/components/linkPresenters/GithubPresenter.svelte index a2857ceff3..5e73cb259e 100644 --- a/plugins/view-resources/src/components/linkPresenters/GithubPresenter.svelte +++ b/plugins/view-resources/src/components/linkPresenters/GithubPresenter.svelte @@ -36,7 +36,7 @@ labels: Label[] } - async function getData (href: string): Promise { + async function getData(href: string): Promise { let params = href.replace(/(http.:\/\/)?(www.)?github.com\//, '') params = params.replace('/pull/', '/pulls/') const res = await (await fetch(`https://api.github.com/repos/${params}`)).json() @@ -54,7 +54,7 @@ } } - function format (body: string | undefined): string | undefined { + function format(body: string | undefined): string | undefined { if (!body) return undefined return body .replace(/[\r?\n]+/g, '
') diff --git a/plugins/view-resources/src/components/linkPresenters/YoutubePresenter.svelte b/plugins/view-resources/src/components/linkPresenters/YoutubePresenter.svelte index dcb7ebc1d4..99fb74d38d 100644 --- a/plugins/view-resources/src/components/linkPresenters/YoutubePresenter.svelte +++ b/plugins/view-resources/src/components/linkPresenters/YoutubePresenter.svelte @@ -32,7 +32,7 @@ let played = false - async function getData (href: string): Promise { + async function getData(href: string): Promise { const res = await ( await fetch(`https://www.youtube.com/oembed?url=${href}&format=json&maxwidth=${maxWidth}&maxheight=${maxHeight}`) ).json() @@ -46,7 +46,7 @@ } } - function setHeigh (emb: HTMLElement): void { + function setHeigh(emb: HTMLElement): void { const child = emb.firstElementChild as HTMLElement child.style.height = `${height}px` child.setAttribute('height', `${height}px`) diff --git a/plugins/view-resources/src/components/list/List.svelte b/plugins/view-resources/src/components/list/List.svelte index 859779d70f..0937e88979 100644 --- a/plugins/view-resources/src/components/list/List.svelte +++ b/plugins/view-resources/src/components/list/List.svelte @@ -178,7 +178,7 @@ $: docs = [...fastDocs, ...slowDocs.filter((it) => !fastQueryIds.has(it._id))] - function getProjection (fields: string[], query: DocumentQuery, _class: Ref>): Record { + function getProjection(fields: string[], query: DocumentQuery, _class: Ref>): Record { const res: Record = {} for (const f of fields) { /* @@ -203,7 +203,7 @@ return res } - function noLookup (query: DocumentQuery): DocumentQuery { + function noLookup(query: DocumentQuery): DocumentQuery { const newQuery: DocumentQuery = {} for (const [k, v] of Object.entries(query)) { if (!k.startsWith('$lookup.')) { @@ -213,7 +213,7 @@ return newQuery } - function noLookupSortingOptions (options: FindOptions): FindOptions { + function noLookupSortingOptions(options: FindOptions): FindOptions { const { lookup, sort, ...resultOptions } = options return resultOptions } @@ -222,12 +222,12 @@ $: dispatch('content', docs) - function uncheckAll (): void { + function uncheckAll(): void { dispatch('check', { docs, value: false }) selectedObjectIds = [] } - export function select (offset: 2 | -2 | 1 | -1 | 0, of?: Doc, noScroll?: boolean): void { + export function select(offset: 2 | -2 | 1 | -1 | 0, of?: Doc, noScroll?: boolean): void { if (of !== undefined || offset !== 0) { listCategories?.select(offset, of, undefined, noScroll) } diff --git a/plugins/view-resources/src/components/list/ListCategories.svelte b/plugins/view-resources/src/components/list/ListCategories.svelte index 3344c7e606..dbef904f21 100644 --- a/plugins/view-resources/src/components/list/ListCategories.svelte +++ b/plugins/view-resources/src/components/list/ListCategories.svelte @@ -130,7 +130,7 @@ } ) - function update (): void { + function update(): void { void updateCategories(_class, space, docs, groupByKey, viewOptions, viewOptionsConfig) } @@ -183,7 +183,7 @@ $: void buildModels(_class, config, configurations) - function getInitIndex (categories: any, i: number): number { + function getInitIndex(categories: any, i: number): number { let res = initIndex for (let index = 0; index < i; index++) { const cat = categories[index] @@ -196,7 +196,7 @@ const dispatch = createEventDispatcher() - function getState (doc: Doc): number { + function getState(doc: Doc): number { let pos = 0 for (const st of categories) { const stateObjs = getGroupByValues(groupByDocs, st) ?? [] @@ -208,7 +208,7 @@ return -1 } - export function select ( + export function select( offset: 2 | 1 | -2 | -1 | 0, of?: Doc, dir?: 'vertical' | 'horizontal', @@ -357,14 +357,14 @@ listCategory[objState]?.select(offset, of, dir, noScroll) } } - function scrollInto (statePos: number, obj: Doc): void { + function scrollInto(statePos: number, obj: Doc): void { listListCategory[statePos]?.scroll(obj) listCategory[statePos]?.scroll(obj) } const listCategory: SvelteComponentTyped[] = [] const listListCategory: ListCategory[] = [] - function getGroupByKey ( + function getGroupByKey( docKeys: Partial>>, category: CategoryType, resultQuery: DocumentQuery> diff --git a/plugins/view-resources/src/components/list/ListCategory.svelte b/plugins/view-resources/src/components/list/ListCategory.svelte index 665615ed03..9a289299ea 100644 --- a/plugins/view-resources/src/components/list/ListCategory.svelte +++ b/plugins/view-resources/src/components/list/ListCategory.svelte @@ -118,7 +118,7 @@ } } - function noSearch (query: DocumentQuery): DocumentQuery { + function noSearch(query: DocumentQuery): DocumentQuery { const result = query if ('$search' in result) { delete result.$search @@ -129,9 +129,9 @@ $: finalResultQuery = itemProj.length < 20 && resultQuery.$search !== null ? noSearch({ - ...resultQuery, - _id: { $in: itemProj.map((it) => it._id) } - }) + ...resultQuery, + _id: { $in: itemProj.map((it) => it._id) } + }) : resultQuery $: if (lastLevel) { @@ -167,12 +167,12 @@ const dispatch = createEventDispatcher() - function limitGroup (items: Doc[], limit: number | undefined): Doc[] { + function limitGroup(items: Doc[], limit: number | undefined): Doc[] { const res = limit !== undefined ? items.slice(0, limit) : items return res } - function initCollapsed (singleCat: boolean, lastLevel: boolean, level: number): void { + function initCollapsed(singleCat: boolean, lastLevel: boolean, level: number): void { if (localStorage.getItem(categoryCollapseKey) === null) { collapsed = (!disableHeader && @@ -215,7 +215,7 @@ } } - function isSelected (doc: Doc, focusStore: FocusSelection): boolean { + function isSelected(doc: Doc, focusStore: FocusSelection): boolean { return focusStore.focus?._id === doc._id } @@ -225,7 +225,7 @@ let dragItemIndex: number | undefined - function dragswap (ev: MouseEvent, i: number): boolean { + function dragswap(ev: MouseEvent, i: number): boolean { if (dragItemIndex === undefined || !byRank) return false const s = dragItemIndex if (i < s) { @@ -236,19 +236,19 @@ return false } - function dragOverCat (ev: MouseEvent): void { + function dragOverCat(ev: MouseEvent): void { ev.preventDefault() ev.stopPropagation() } let div: HTMLDivElement - function isBorder (ev: MouseEvent, direction: 'top' | 'bottom'): boolean { + function isBorder(ev: MouseEvent, direction: 'top' | 'bottom'): boolean { const target = ev.target as HTMLDivElement return Math.abs(ev.clientY - target.getBoundingClientRect()[direction]) < 5 } - function dragEnterCat (ev: MouseEvent): void { + function dragEnterCat(ev: MouseEvent): void { ev.preventDefault() if (dragItemIndex === undefined && dragItem.doc !== undefined) { const index = items.findIndex((p) => p._id === dragItem.doc?._id) @@ -273,7 +273,7 @@ } } - function dragLeaveCat (ev: MouseEvent): void { + function dragLeaveCat(ev: MouseEvent): void { ev.stopPropagation() if (dragItemIndex !== undefined) { items.splice(dragItemIndex, 1) @@ -282,7 +282,7 @@ } } - function dragItemLeave (ev: MouseEvent, i: number): void { + function dragItemLeave(ev: MouseEvent, i: number): void { if (dragItemIndex !== undefined) { const isLastItem = i === limited.length - 1 const isFirstItemWithoutHeader = i === 0 && disableHeader @@ -297,7 +297,7 @@ } } - function dragover (ev: MouseEvent, i: number): void { + function dragover(ev: MouseEvent, i: number): void { if (dragItemIndex === undefined || !lastLevel) return ev.preventDefault() ev.stopPropagation() @@ -310,7 +310,7 @@ } } - function dropItemHandle (ev: MouseEvent): void { + function dropItemHandle(ev: MouseEvent): void { ev.stopPropagation() ev.preventDefault() const update: DocumentUpdate = {} @@ -327,7 +327,7 @@ void drop(update) } - async function drop (update: DocumentUpdate = {}): Promise { + async function drop(update: DocumentUpdate = {}): Promise { if (dragItem.doc !== undefined) { const props = _newObjectProps(dragItem.doc) if (props !== undefined) { @@ -364,13 +364,13 @@ } } - function dragStartHandler (e: CustomEvent): void { + function dragStartHandler(e: CustomEvent): void { const { target, index } = e.detail dragItemIndex = index ;(target as EventTarget).addEventListener('dragend', (e) => dragEndListener(e, index)) } - function dragStart (ev: DragEvent, docObject: Doc, i: number): void { + function dragStart(ev: DragEvent, docObject: Doc, i: number): void { if (ev.dataTransfer != null) { ev.dataTransfer.effectAllowed = 'move' ev.dataTransfer.dropEffect = 'move' @@ -392,11 +392,11 @@ index: i }) } - export function expand (): void { + export function expand(): void { collapsed = false localStorage.setItem(categoryCollapseKey, 'false') } - export function scroll (item: Doc): void { + export function scroll(item: Doc): void { const pos = limited.findIndex((it) => it._id === item._id) if (pos >= 0) { if (collapsed) { @@ -411,13 +411,13 @@ } } - export function getLimited (): Doc[] { + export function getLimited(): Doc[] { return limited } const listItems: ListItem[] = [] - function getDocItemModel (docClass: Ref>): AttributeModel[] { + function getDocItemModel(docClass: Ref>): AttributeModel[] { let res = itemModels.get(docClass) if (res) { return res diff --git a/plugins/view-resources/src/components/list/ListItem.svelte b/plugins/view-resources/src/components/list/ListItem.svelte index 7f3cc5ca05..b60944ec0f 100644 --- a/plugins/view-resources/src/components/list/ListItem.svelte +++ b/plugins/view-resources/src/components/list/ListItem.svelte @@ -34,7 +34,7 @@ export let compactMode: boolean = false export let readonly: boolean = false - export function scroll () { + export function scroll() { elem?.scrollIntoView({ behavior: 'auto', block: 'nearest' }) } @@ -42,21 +42,21 @@ const dispatch = createEventDispatcher() - export function getDoc () { + export function getDoc() { return docObject } - export function getElement () { + export function getElement() { return elem } const client = getClient() - function onChange (value: any, doc: Doc, key: string, attribute: AnyAttribute) { + function onChange(value: any, doc: Doc, key: string, attribute: AnyAttribute) { updateAttribute(client, doc, doc._class, { key, attr: attribute }, value) } - function getOnChange (docObject: Doc, attribute: AttributeModel) { + function getOnChange(docObject: Doc, attribute: AttributeModel) { const attr = attribute.attribute if (attr === undefined) return if (attribute.collectionAttr) return diff --git a/plugins/view-resources/src/components/list/ListPresenter.svelte b/plugins/view-resources/src/components/list/ListPresenter.svelte index b67997f03e..5ba86d50d5 100644 --- a/plugins/view-resources/src/components/list/ListPresenter.svelte +++ b/plugins/view-resources/src/components/list/ListPresenter.svelte @@ -35,7 +35,7 @@ $: dp = attributeModel?.displayProps - function joinProps (attribute: AttributeModel, object: Doc, props: Record, readonly: boolean) { + function joinProps(attribute: AttributeModel, object: Doc, props: Record, readonly: boolean) { const readonlyParams = readonly || (attribute?.attribute?.readonly ?? false) ? { @@ -62,7 +62,7 @@ permissionsStore = await getResource(contact.store.Permissions) }) - function canChangeAttr ( + function canChangeAttr( object: Doc, attr: AnyAttribute | undefined, permissionsStore: PermissionsStore | undefined diff --git a/plugins/view-resources/src/components/list/SortableDocList.svelte b/plugins/view-resources/src/components/list/SortableDocList.svelte index 1c633bc0d0..450b2830ac 100644 --- a/plugins/view-resources/src/components/list/SortableDocList.svelte +++ b/plugins/view-resources/src/components/list/SortableDocList.svelte @@ -45,7 +45,7 @@ let presenter: typeof SvelteComponent | undefined let items: Doc[] = [] - async function updatePresenter (classRef: Ref>) { + async function updatePresenter(classRef: Ref>) { try { isPresenterLoading = true @@ -64,7 +64,7 @@ } } - function updateItems (newItems: FindResult): void { + function updateItems(newItems: FindResult): void { items = newItems areItemsloading = false } @@ -78,7 +78,7 @@ $: isSortable = hierarchy.getAllAttributes(_class).has('rank') - async function handleMove ( + async function handleMove( e: CustomEvent<{ item: DocWithRank, prev: DocWithRank | undefined, next: DocWithRank | undefined }> ): Promise { if (!isSortable) return diff --git a/plugins/view-resources/src/components/list/SortableList.svelte b/plugins/view-resources/src/components/list/SortableList.svelte index 7ae277cae1..a0f1eab9f1 100644 --- a/plugins/view-resources/src/components/list/SortableList.svelte +++ b/plugins/view-resources/src/components/list/SortableList.svelte @@ -31,7 +31,7 @@ let draggingIndex: number | null = null let hoveringIndex: number | null = null - function handleDragStart (ev: DragEvent, itemIndex: number) { + function handleDragStart(ev: DragEvent, itemIndex: number) { if (ev.dataTransfer) { ev.dataTransfer.effectAllowed = 'move' ev.dataTransfer.dropEffect = 'move' @@ -40,7 +40,7 @@ draggingIndex = itemIndex } - function handleDragOver (ev: DragEvent, itemIndex: number) { + function handleDragOver(ev: DragEvent, itemIndex: number) { ev.preventDefault() hoveringIndex = itemIndex @@ -48,7 +48,7 @@ const dispatch = createEventDispatcher() - async function handleDrop (itemIndex: number) { + async function handleDrop(itemIndex: number) { if (draggingIndex !== null && draggingIndex !== itemIndex) { const item = items[draggingIndex] const [prev, next] = [ @@ -64,7 +64,7 @@ resetDrag() } - function resetDrag () { + function resetDrag() { draggingIndex = null hoveringIndex = null } diff --git a/plugins/view-resources/src/components/masterDetail/MasterDetailBrowser.svelte b/plugins/view-resources/src/components/masterDetail/MasterDetailBrowser.svelte index 8644c303e1..96f1eaec0f 100644 --- a/plugins/view-resources/src/components/masterDetail/MasterDetailBrowser.svelte +++ b/plugins/view-resources/src/components/masterDetail/MasterDetailBrowser.svelte @@ -71,7 +71,7 @@ ) } - function onSelected (e: CustomEvent): void { + function onSelected(e: CustomEvent): void { dispatch('select', e.detail) if (syncWithLocationQuery) return parentQuery = { [parentKey]: e.detail } diff --git a/plugins/view-resources/src/components/masterDetail/MasterDetailView.svelte b/plugins/view-resources/src/components/masterDetail/MasterDetailView.svelte index 3ff938ae86..d1cc016e7c 100644 --- a/plugins/view-resources/src/components/masterDetail/MasterDetailView.svelte +++ b/plugins/view-resources/src/components/masterDetail/MasterDetailView.svelte @@ -47,7 +47,7 @@ detailView = results.find((v) => v._id === views[1].view) } - async function selected (e: CustomEvent): Promise { + async function selected(e: CustomEvent): Promise { const views: MasterDetailConfig[] = viewlet?.masterDetailOptions?.views ?? [] if (detailView === undefined) return if (detailView?._id === view.viewlet.Document) { diff --git a/plugins/view-resources/src/components/navigator/NavLink.svelte b/plugins/view-resources/src/components/navigator/NavLink.svelte index 39fd9864a7..0f2555ab1e 100644 --- a/plugins/view-resources/src/components/navigator/NavLink.svelte +++ b/plugins/view-resources/src/components/navigator/NavLink.svelte @@ -28,7 +28,7 @@ $: href = locationToUrl(loc) - function createLocation ( + function createLocation( loc: Location, app: string | undefined, space: string | undefined, @@ -66,7 +66,7 @@ return location } - function clickHandler (e: MouseEvent): void { + function clickHandler(e: MouseEvent): void { if (e.metaKey || e.ctrlKey) return e.preventDefault() setFilters([]) diff --git a/plugins/view-resources/src/components/navigator/TreeElement.svelte b/plugins/view-resources/src/components/navigator/TreeElement.svelte index 210491bc24..bde97c051d 100644 --- a/plugins/view-resources/src/components/navigator/TreeElement.svelte +++ b/plugins/view-resources/src/components/navigator/TreeElement.svelte @@ -68,7 +68,7 @@ }) } - async function onMenuClick (ev: MouseEvent): Promise { + async function onMenuClick(ev: MouseEvent): Promise { // Read actual popup actions on open as visibility might have been changed pressed = true popupMenuActions = await actions().then((res) => res.filter((action) => action.inline !== true)) @@ -77,7 +77,7 @@ }) } - async function onInlineClick (ev: MouseEvent, action: Action): Promise { + async function onInlineClick(ev: MouseEvent, action: Action): Promise { action.action([], ev) } diff --git a/plugins/view-resources/src/components/relation/AddRelationPopup.svelte b/plugins/view-resources/src/components/relation/AddRelationPopup.svelte index 6bbf559b50..524278f1f7 100644 --- a/plugins/view-resources/src/components/relation/AddRelationPopup.svelte +++ b/plugins/view-resources/src/components/relation/AddRelationPopup.svelte @@ -25,7 +25,7 @@ const h = client.getHierarchy() const dispatch = createEventDispatcher() - function getCommonClass (value: Doc | Doc[]): Ref> | undefined { + function getCommonClass(value: Doc | Doc[]): Ref> | undefined { if (Array.isArray(value)) { if (value.length === 0) { return undefined @@ -49,7 +49,7 @@ $: items = getItems(value) - function getItems (value: Doc | Doc[]): Item[] { + function getItems(value: Doc | Doc[]): Item[] { const _class = getCommonClass(value) if (_class === undefined) return [] const descendants = h.getDescendants(_class) @@ -79,7 +79,7 @@ let selected: Item | undefined = undefined - async function save (): Promise { + async function save(): Promise { if (selected === undefined || target === undefined) return const objects = Array.isArray(value) ? value : [value] for (const obj of objects) { diff --git a/plugins/view-resources/src/components/viewer/AudioPlayer.svelte b/plugins/view-resources/src/components/viewer/AudioPlayer.svelte index eca4cde120..c7d52d2e1b 100644 --- a/plugins/view-resources/src/components/viewer/AudioPlayer.svelte +++ b/plugins/view-resources/src/components/viewer/AudioPlayer.svelte @@ -29,7 +29,7 @@ let duration = Number.POSITIVE_INFINITY let paused = true - function handleClick (): void { + function handleClick(): void { paused = !paused } diff --git a/plugins/view-resources/src/components/viewer/ImageViewer.svelte b/plugins/view-resources/src/components/viewer/ImageViewer.svelte index 9b2c627eca..a7ad5fcad2 100644 --- a/plugins/view-resources/src/components/viewer/ImageViewer.svelte +++ b/plugins/view-resources/src/components/viewer/ImageViewer.svelte @@ -40,7 +40,7 @@ $: height = imageHeight != null ? `min(${imageHeight}px, ${fit ? '100%' : '80vh'})` : '100%' let loading = true - function _setLoading (newState: boolean): void { + function _setLoading(newState: boolean): void { loading = newState setLoading?.(loading) } diff --git a/plugins/view-resources/src/components/viewer/TextViewer.svelte b/plugins/view-resources/src/components/viewer/TextViewer.svelte index 96e505a39e..5bb8eaff56 100644 --- a/plugins/view-resources/src/components/viewer/TextViewer.svelte +++ b/plugins/view-resources/src/components/viewer/TextViewer.svelte @@ -26,7 +26,7 @@ let loading = true let text: string | undefined = undefined - async function fetchFile (value: Ref, name: string): Promise { + async function fetchFile(value: Ref, name: string): Promise { loading = true const src = getFileUrl(value, name) diff --git a/plugins/view-resources/src/middleware.ts b/plugins/view-resources/src/middleware.ts index e9a414c259..4c486fe7b1 100644 --- a/plugins/view-resources/src/middleware.ts +++ b/plugins/view-resources/src/middleware.ts @@ -50,15 +50,15 @@ export class AggregationMiddleware extends BasePresentationMiddleware implements docs: Doc[] | undefined subscribers: Map = new Map() - private constructor(client: Client, next?: PresentationMiddleware) { + private constructor (client: Client, next?: PresentationMiddleware) { super(client, next) } - static create(client: Client, next?: PresentationMiddleware): AggregationMiddleware { + static create (client: Client, next?: PresentationMiddleware): AggregationMiddleware { return new AggregationMiddleware(client, next) } - async notifyTx(...tx: Tx[]): Promise { + async notifyTx (...tx: Tx[]): Promise { const promises: Array> = [] for (const [, value] of this.mgrs) { promises.push(value.notifyTx(...tx)) @@ -67,25 +67,25 @@ export class AggregationMiddleware extends BasePresentationMiddleware implements await this.provideNotifyTx(...tx) } - async close(): Promise { + async close (): Promise { this.mgrs.forEach((mgr) => { mgr.close() }) await this.provideClose() } - async tx(tx: Tx): Promise { + async tx (tx: Tx): Promise { return await this.provideTx(tx) } - private refreshSubscribers(): void { + private refreshSubscribers (): void { for (const s of this.subscribers.values()) { // TODO: Do something more smart and track if used component field is changed. s.refresh() } } - async subscribe( + async subscribe ( _class: Ref>, query: DocumentQuery, options: FindOptions | undefined, @@ -129,7 +129,7 @@ export class AggregationMiddleware extends BasePresentationMiddleware implements } // TODO: rework notifications to avoid using Account and remove it - private shouldAggregate(attrClass: Ref>, _class: Ref>): boolean { + private shouldAggregate (attrClass: Ref>, _class: Ref>): boolean { // TODO: FIXME // if (attrClass !== core.class.Account) { // return true @@ -157,7 +157,7 @@ export class AggregationMiddleware extends BasePresentationMiddleware implements return true } - private async getAggregationManager(_class: Ref>): Promise | undefined> { + private async getAggregationManager (_class: Ref>): Promise | undefined> { let mgr = this.mgrs.get(_class) if (mgr === undefined) { @@ -188,7 +188,7 @@ export class AggregationMiddleware extends BasePresentationMiddleware implements return mgr } - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions | undefined @@ -205,7 +205,7 @@ export class AggregationMiddleware extends BasePresentationMiddleware implements return await this.provideFindAll(_class, fquery, finalOptions) } - private async updateQueryOptions( + private async updateQueryOptions ( allAttrs: Map, h: Hierarchy, docFields: Array>, @@ -285,28 +285,28 @@ export class AggregationMiddleware extends BasePresentationMiddleware implements * @public */ export class AnalyticsMiddleware extends BasePresentationMiddleware implements PresentationMiddleware { - private constructor(client: Client, next?: PresentationMiddleware) { + private constructor (client: Client, next?: PresentationMiddleware) { super(client, next) } - async notifyTx(...tx: Tx[]): Promise { + async notifyTx (...tx: Tx[]): Promise { await this.provideNotifyTx(...tx) } - async close(): Promise { + async close (): Promise { await this.provideClose() } - static create(client: Client, next?: PresentationMiddleware): AnalyticsMiddleware { + static create (client: Client, next?: PresentationMiddleware): AnalyticsMiddleware { return new AnalyticsMiddleware(client, next) } - async tx(tx: Tx): Promise { + async tx (tx: Tx): Promise { void this.handleTx(tx) return await this.provideTx(tx) } - private async handleTx(...txes: Tx[]): Promise { + private async handleTx (...txes: Tx[]): Promise { for (const etx of txes) { if (etx._class === core.class.TxApplyIf) { const applyIf = etx as TxApplyIf @@ -335,23 +335,23 @@ export class AnalyticsMiddleware extends BasePresentationMiddleware implements P * @public */ export class ReadOnlyAccessMiddleware extends BasePresentationMiddleware implements PresentationMiddleware { - private constructor(client: Client, next?: PresentationMiddleware) { + private constructor (client: Client, next?: PresentationMiddleware) { super(client, next) } - async notifyTx(...tx: Tx[]): Promise { + async notifyTx (...tx: Tx[]): Promise { await this.provideNotifyTx(...tx) } - async close(): Promise { + async close (): Promise { await this.provideClose() } - static create(client: Client, next?: PresentationMiddleware): ReadOnlyAccessMiddleware { + static create (client: Client, next?: PresentationMiddleware): ReadOnlyAccessMiddleware { return new ReadOnlyAccessMiddleware(client, next) } - async tx(tx: Tx): Promise { + async tx (tx: Tx): Promise { if (getCurrentAccount()?.role === AccountRole.ReadOnlyGuest) { addNotification( await translate(view.string.ReadOnlyWarningTitle, {}, getCurrentLanguage()), diff --git a/plugins/view-resources/src/permissions.ts b/plugins/view-resources/src/permissions.ts index 3e03580ac7..c1c368ca45 100644 --- a/plugins/view-resources/src/permissions.ts +++ b/plugins/view-resources/src/permissions.ts @@ -11,7 +11,7 @@ import core, { import { getMetadata } from '@hcengineering/platform' import { getClient } from '@hcengineering/presentation' -export function canChangeAttribute( +export function canChangeAttribute ( attr: AnyAttribute, space: Ref, store: PermissionsStore, @@ -46,7 +46,7 @@ export function canChangeAttribute( return canChangeDoc(_class, space, store) } -export function canChangeDoc(_class: Ref>, space: Ref, store: PermissionsStore): boolean { +export function canChangeDoc (_class: Ref>, space: Ref, store: PermissionsStore): boolean { const arePermissionsDisabled = getMetadata(core.metadata.DisablePermissions) ?? false if (arePermissionsDisabled) return true if (store.whitelist.has(space)) return true @@ -85,7 +85,7 @@ export function canChangeDoc(_class: Ref>, space: Ref, store: return !store.restrictedSpaces.has(space) } -export function canRemoveDoc(_class: Ref>, space: Ref, store: PermissionsStore): boolean { +export function canRemoveDoc (_class: Ref>, space: Ref, store: PermissionsStore): boolean { const arePermissionsDisabled = getMetadata(core.metadata.DisablePermissions) ?? false if (arePermissionsDisabled) return true if (store.whitelist.has(space)) return true @@ -107,7 +107,7 @@ export function canRemoveDoc(_class: Ref>, space: Ref, store: return !store.restrictedSpaces.has(space) } -export function canCreateObject(_class: Ref>, space: Ref, store: PermissionsStore): boolean { +export function canCreateObject (_class: Ref>, space: Ref, store: PermissionsStore): boolean { const arePermissionsDisabled = getMetadata(core.metadata.DisablePermissions) ?? false if (arePermissionsDisabled) return true if (store.whitelist.has(space)) return true diff --git a/plugins/view-resources/src/utils.ts b/plugins/view-resources/src/utils.ts index 29e1f6c160..771567aca2 100644 --- a/plugins/view-resources/src/utils.ts +++ b/plugins/view-resources/src/utils.ts @@ -145,7 +145,7 @@ export class AggregationManager implements IAggregationManager void this.getManager() } - static create( + static create ( client: Client, lqCallback: () => void, setStore: (manager: DocManager) => void, @@ -169,7 +169,7 @@ export class AggregationManager implements IAggregationManager (res) => { const first = this.docs === undefined this.docs = res - this.mgr = new DocManager(res as T[]) + this.mgr = new DocManager(res) this.setStore(this.mgr) if (!first) { this.lqCallback() @@ -789,7 +789,7 @@ export async function deleteObjects (client: TxOperations, objects: Doc[], skipC } export function getMixinStyle (id: Ref>, selected: boolean, black: boolean): string { - const color = getPlatformColorForText(id as string, black) + const color = getPlatformColorForText(id, black) return ` color: ${selected ? '#fff' : 'var(--caption-color)'}; background: ${color + (selected ? 'ff' : '33')}; @@ -912,9 +912,9 @@ export function categorizeFields ( useAsCollection: string[], useAsAttribute: string[] ): { - attributes: CategoryKey[] - collections: CategoryKey[] - } { + attributes: CategoryKey[] + collections: CategoryKey[] +} { const result = { attributes: [] as CategoryKey[], collections: [] as CategoryKey[] @@ -1143,9 +1143,9 @@ export function getCategorySpaces (categories: CategoryType[]): Array categories .filter((it) => typeof it === 'object') .reduce>>((arr, val) => { - val.values.forEach((it) => arr.add(it.space)) - return arr - }, new Set()) + val.values.forEach((it) => arr.add(it.space)) + return arr + }, new Set()) ) } @@ -1781,10 +1781,10 @@ export async function getDocAttrsInfo ( allowedCollections: string[] = [], collectionArrays: string[] = [] ): Promise<{ - keys: KeyedAttribute[] - inplaceAttributes: string[] - editors: Array<{ key: KeyedAttribute, editor: AnyComponent, category: AttributeCategory }> - }> { + keys: KeyedAttribute[] + inplaceAttributes: string[] + editors: Array<{ key: KeyedAttribute, editor: AnyComponent, category: AttributeCategory }> +}> { const client = getClient() const hierarchy = client.getHierarchy() diff --git a/plugins/view-resources/src/viewletUtils.ts b/plugins/view-resources/src/viewletUtils.ts index 315000e490..771c14f9ab 100644 --- a/plugins/view-resources/src/viewletUtils.ts +++ b/plugins/view-resources/src/viewletUtils.ts @@ -31,7 +31,7 @@ export function getViewletSpecialActions (client: Client, viewlet: Viewlet): Res if (actions == null || actions.length === 0) { actions = model.findAllSync(view.class.ViewletViewAction, { descriptor: viewlet.descriptor - }) as ViewletViewAction[] + }) } if (actions == null || actions.length === 0) { diff --git a/plugins/workbench-resources/src/components/AccountPopup.svelte b/plugins/workbench-resources/src/components/AccountPopup.svelte index 3da17fceca..3ed710a567 100644 --- a/plugins/workbench-resources/src/components/AccountPopup.svelte +++ b/plugins/workbench-resources/src/components/AccountPopup.svelte @@ -81,7 +81,7 @@ ? contactResources.string.WorkspaceStatusUpdateYour : contactResources.string.WorkspaceStatusSetYour - function selectCategory (sp?: SettingsCategory): void { + function selectCategory(sp?: SettingsCategory): void { closePopup() const loc = getCurrentResolvedLocation() loc.fragment = undefined @@ -96,27 +96,27 @@ navigate(loc) } - function inviteWorkspace (): void { + function inviteWorkspace(): void { showPopup(login.component.InviteLink, {}) } - function helpAndSupport (): void { + function helpAndSupport(): void { showPopup(HelpAndSupport, {}, 'help-center') } - function filterItems (items: SettingsCategory[], keys: string[]): SettingsCategory[] { + function filterItems(items: SettingsCategory[], keys: string[]): SettingsCategory[] { return items.filter( (p) => p._id !== setting.ids.Profile && p._id !== setting.ids.Password && keys.includes(p.group ?? '') ) } - function editProfile (items: SettingsCategory[]): void { + function editProfile(items: SettingsCategory[]): void { const profile = items.find((p) => p._id === setting.ids.Profile) if (profile === undefined) return selectCategory(profile) } - function getURLCategory (sp: SettingsCategory): string { + function getURLCategory(sp: SettingsCategory): string { const loc = getCurrentResolvedLocation() loc.path[2] = settingId loc.path[3] = sp.name diff --git a/plugins/workbench-resources/src/components/AppSwitcher.svelte b/plugins/workbench-resources/src/components/AppSwitcher.svelte index 28079f310a..8b91566fe9 100644 --- a/plugins/workbench-resources/src/components/AppSwitcher.svelte +++ b/plugins/workbench-resources/src/components/AppSwitcher.svelte @@ -27,7 +27,7 @@ let activeElement: HTMLElement const btns: HTMLElement[] = [] - function focusTarget (target: HTMLElement): void { + function focusTarget(target: HTMLElement): void { activeElement = target } @@ -77,7 +77,7 @@ !isExcludedApp(it.alias) ) - function isExcludedApp (alias: string): boolean { + function isExcludedApp(alias: string): boolean { const me = getCurrentAccount() if (me.role === AccountRole.ReadOnlyGuest || me.role === AccountRole.Guest) { diff --git a/plugins/workbench-resources/src/components/ComponentNavigator.svelte b/plugins/workbench-resources/src/components/ComponentNavigator.svelte index 6027458eb8..56cccb81e7 100644 --- a/plugins/workbench-resources/src/components/ComponentNavigator.svelte +++ b/plugins/workbench-resources/src/components/ComponentNavigator.svelte @@ -73,12 +73,12 @@ ) } - function onSelected (e: CustomEvent): void { + function onSelected(e: CustomEvent): void { if (syncWithLocationQuery) return parentQuery = { [parentKey]: e.detail } } - function showCreateDialog (): void { + function showCreateDialog(): void { if (createComponent === undefined) return showPopup(createComponent, { ...createComponentProps, space }, 'top') } diff --git a/plugins/workbench-resources/src/components/HelpAndSupport.svelte b/plugins/workbench-resources/src/components/HelpAndSupport.svelte index f47032566d..8b3c430169 100644 --- a/plugins/workbench-resources/src/components/HelpAndSupport.svelte +++ b/plugins/workbench-resources/src/components/HelpAndSupport.svelte @@ -47,7 +47,7 @@ const client = getClient() - function navigateToSettings () { + function navigateToSettings() { closePopup() const loc = getCurrentResolvedLocation() loc.path[2] = loc.path[3] = settingId @@ -55,7 +55,7 @@ navigate(loc) } - async function getActions () { + async function getActions() { categories = await getClient().findAll(view.class.ActionCategory, []) const rawActions = await client.findAll(view.class.Action, []) diff --git a/plugins/workbench-resources/src/components/MetricsStats.svelte b/plugins/workbench-resources/src/components/MetricsStats.svelte index 6cd1d15cd2..47926480d4 100644 --- a/plugins/workbench-resources/src/components/MetricsStats.svelte +++ b/plugins/workbench-resources/src/components/MetricsStats.svelte @@ -10,7 +10,7 @@ const endpoint = getMetadata(presentation.metadata.StatsUrl) const token: string = getMetadata(presentation.metadata.Token) ?? '' - async function fetchStats (time: number): Promise { + async function fetchStats(time: number): Promise { await fetch(endpoint + `/api/v1/statistics?token=${token}&name=${serviceName}`, {}) .then(async (json) => { data = await json.json() diff --git a/plugins/workbench-resources/src/components/Navigator.svelte b/plugins/workbench-resources/src/components/Navigator.svelte index ca09ae04e3..d429765e67 100644 --- a/plugins/workbench-resources/src/components/Navigator.svelte +++ b/plugins/workbench-resources/src/components/Navigator.svelte @@ -80,7 +80,7 @@ }) let requestIndex = 0 - async function update (model: NavigatorModel, spaces: Space[], preferences: Map, SpacePreference>) { + async function update(model: NavigatorModel, spaces: Space[], preferences: Map, SpacePreference>) { shownSpaces = spaces.filter((sp) => !sp.archived && (model.hideStarred || !preferences.has(sp._id))) starred = model.hideStarred ? [] : spaces.filter((sp) => preferences.has(sp._id)) if (model.specials !== undefined) { @@ -106,7 +106,7 @@ $: if (model) update(model, spaces, preferences) - async function updateSpecials ( + async function updateSpecials( specials: SpecialNavModel[], spaces: Space[], requestIndex: number @@ -142,7 +142,7 @@ return [result, requestIndex] } - async function checkIsDisabled (special: SpecialNavModel) { + async function checkIsDisabled(special: SpecialNavModel) { return special.checkIsDisabled && (await (await getResource(special.checkIsDisabled))()) } diff --git a/plugins/workbench-resources/src/components/SavedView.svelte b/plugins/workbench-resources/src/components/SavedView.svelte index 4d1fc4ab2a..3ece0182d6 100644 --- a/plugins/workbench-resources/src/components/SavedView.svelte +++ b/plugins/workbench-resources/src/components/SavedView.svelte @@ -66,7 +66,7 @@ availableFilteredViews = [] } - async function removeAction (filteredView: FilteredView): Promise { + async function removeAction(filteredView: FilteredView): Promise { return [ { icon: view.icon.Delete, @@ -78,7 +78,7 @@ ] } - async function renameAction (object: FilteredView, originalEvent: MouseEvent | undefined): Promise { + async function renameAction(object: FilteredView, originalEvent: MouseEvent | undefined): Promise { return [ { icon: contact.icon.Edit, @@ -99,7 +99,7 @@ ] } - async function switchPublicAction (object: FilteredView, originalEvent: MouseEvent | undefined): Promise { + async function switchPublicAction(object: FilteredView, originalEvent: MouseEvent | undefined): Promise { return [ { icon: object.sharable ? TodoCheck : TodoUncheck, @@ -111,7 +111,7 @@ ] } - async function copyUrlAction (filteredView: FilteredView): Promise { + async function copyUrlAction(filteredView: FilteredView): Promise { return [ { icon: view.icon.CopyLink, @@ -134,7 +134,7 @@ ] } - async function viewAction (filteredView: FilteredView, originalEvent: MouseEvent | undefined): Promise { + async function viewAction(filteredView: FilteredView, originalEvent: MouseEvent | undefined): Promise { const copyUrl = await copyUrlAction(filteredView) const rename = await renameAction(filteredView, originalEvent) const setPublic = await switchPublicAction(filteredView, originalEvent) @@ -147,7 +147,7 @@ return [...hide, ...copyUrl] } - async function hideAction (object: FilteredView): Promise { + async function hideAction(object: FilteredView): Promise { return [ { icon: view.icon.Archive, @@ -161,7 +161,7 @@ let selectedId: Ref | undefined = undefined - async function load (fv: FilteredView): Promise { + async function load(fv: FilteredView): Promise { selectedFilterStore.set(fv) navigate({ path: fv.location.path, @@ -184,7 +184,7 @@ dispatch('select', false) } - function checkFilter ( + function checkFilter( fv: FilteredView, loc: Location, filters: string, @@ -201,7 +201,7 @@ return true } - function checkSelected ( + function checkSelected( fs: Filter[], loc: Location, filteredViews: FilteredView[] | undefined, @@ -234,7 +234,7 @@ $: shown = myFilteredViews.length > 0 || availableFilteredViews.length > 0 $: dispatch('shown', shown) - async function getActions (availableFilteredViews: FilteredView[]): Promise { + async function getActions(availableFilteredViews: FilteredView[]): Promise { if (availableFilteredViews.length > 0) { const filteredViewsIdMap = toIdMap(availableFilteredViews) const pushMeToFV = async (id: Ref): Promise => { diff --git a/plugins/workbench-resources/src/components/SelectWorkspaceMenu.svelte b/plugins/workbench-resources/src/components/SelectWorkspaceMenu.svelte index 360e22e099..5eb723ed8f 100644 --- a/plugins/workbench-resources/src/components/SelectWorkspaceMenu.svelte +++ b/plugins/workbench-resources/src/components/SelectWorkspaceMenu.svelte @@ -69,7 +69,7 @@ return locationToUrl(loc) } - async function clickHandler (e: MouseEvent, wsUrl: string): Promise { + async function clickHandler(e: MouseEvent, wsUrl: string): Promise { if (!e.metaKey && !e.ctrlKey) { e.preventDefault() closePopup() @@ -94,7 +94,7 @@ let activeElement: HTMLElement const btns: HTMLElement[] = [] - function focusTarget (target: HTMLElement): void { + function focusTarget(target: HTMLElement): void { activeElement = target } @@ -147,11 +147,11 @@ $: activeSessions = (data?.statistics?.activeSessions as Record< - string, - Array<{ - userId: string - data?: Record - }> + string, + Array<{ + userId: string + data?: Record + }> >) ?? {} diff --git a/plugins/workbench-resources/src/components/ServerManagerGeneral.svelte b/plugins/workbench-resources/src/components/ServerManagerGeneral.svelte index fe66490b24..be5e55f455 100644 --- a/plugins/workbench-resources/src/components/ServerManagerGeneral.svelte +++ b/plugins/workbench-resources/src/components/ServerManagerGeneral.svelte @@ -34,7 +34,7 @@ let profiling = false - async function fetchStats (time: number): Promise { + async function fetchStats(time: number): Promise { await fetch(endpoint + '/api/v1/profiling', { method: 'GET', keepalive: true, @@ -55,7 +55,7 @@ $: void fetchStats($ticker) - function genData (dataSize: number): string { + function genData(dataSize: number): string { let result = '' const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789' const charactersLength = characters.length @@ -65,7 +65,7 @@ return result } - async function doBenchmark (): Promise { + async function doBenchmark(): Promise { avgTime = 0 maxTime = 0 let count = commandsToSend @@ -112,7 +112,7 @@ running = false } - async function downloadProfile (): Promise { + async function downloadProfile(): Promise { const link = document.createElement('a') link.style.display = 'none' link.setAttribute('target', '_blank') @@ -134,7 +134,7 @@ let metrics: Metrics | undefined - function update (tick: number): void { + function update(tick: number): void { metrics = metricsAggregate(uiContext.metrics) } diff --git a/plugins/workbench-resources/src/components/ServerManagerServerStatistics.svelte b/plugins/workbench-resources/src/components/ServerManagerServerStatistics.svelte index cb368243a9..3bc808b771 100644 --- a/plugins/workbench-resources/src/components/ServerManagerServerStatistics.svelte +++ b/plugins/workbench-resources/src/components/ServerManagerServerStatistics.svelte @@ -9,7 +9,7 @@ const endpoint = getMetadata(presentation.metadata.StatsUrl) - async function fetchStats (time: number): Promise { + async function fetchStats(time: number): Promise { await fetch(endpoint + `/api/v1/overview?token=${token}`, {}) .then(async (json) => { data = await json.json() diff --git a/plugins/workbench-resources/src/components/ServerManagerUsers.svelte b/plugins/workbench-resources/src/components/ServerManagerUsers.svelte index 63c6e73af2..adfeb269ee 100644 --- a/plugins/workbench-resources/src/components/ServerManagerUsers.svelte +++ b/plugins/workbench-resources/src/components/ServerManagerUsers.svelte @@ -11,7 +11,7 @@ const token: string = getMetadata(presentation.metadata.Token) ?? '' const endpoint = getMetadata(presentation.metadata.StatsUrl) - async function fetchStats (time: number): Promise { + async function fetchStats(time: number): Promise { await fetch(endpoint + `/api/v1/overview?token=${token}`, {}) .then(async (json) => { data = await json.json() diff --git a/plugins/workbench-resources/src/components/SpaceContent.svelte b/plugins/workbench-resources/src/components/SpaceContent.svelte index b4ccafd6d2..d09dcfc571 100644 --- a/plugins/workbench-resources/src/components/SpaceContent.svelte +++ b/plugins/workbench-resources/src/components/SpaceContent.svelte @@ -42,7 +42,7 @@ $: searchQuery = search === '' ? { space, ...query } : { $search: search, space, ...query } $: resultQuery = searchQuery - function buildQuery ( + function buildQuery( space: Ref, baseQuery: DocumentQuery | undefined, viewlet: WithLookup | undefined diff --git a/plugins/workbench-resources/src/components/SpaceHeader.svelte b/plugins/workbench-resources/src/components/SpaceHeader.svelte index 6a5a63a33b..0d6f94412d 100644 --- a/plugins/workbench-resources/src/components/SpaceHeader.svelte +++ b/plugins/workbench-resources/src/components/SpaceHeader.svelte @@ -66,7 +66,7 @@ { limit: 1 } ) - function showCreateDialog (ev: Event) { + function showCreateDialog(ev: Event) { showPopup(createItemDialog as AnyComponent, { space: spaceId }, 'top') } @@ -84,7 +84,7 @@ description = space.description } - function getEditor (_class: Ref>): AnyComponent | undefined { + function getEditor(_class: Ref>): AnyComponent | undefined { const clazz = hierarchy.getClass(_class) const editorMixin = hierarchy.as(clazz, view.mixin.ObjectEditor) if (editorMixin?.editor == null && clazz.extends != null) return getEditor(clazz.extends) diff --git a/plugins/workbench-resources/src/components/SpaceView.svelte b/plugins/workbench-resources/src/components/SpaceView.svelte index 44ee729e67..5f29c45dd1 100644 --- a/plugins/workbench-resources/src/components/SpaceView.svelte +++ b/plugins/workbench-resources/src/components/SpaceView.svelte @@ -55,7 +55,7 @@ $: active = $activeViewlet[key] - const update = reduceCalls(async function update ( + const update = reduceCalls(async function update( active: Ref | null, currentSpace?: Ref, attachTo?: Ref> @@ -91,13 +91,13 @@ $: void update(active, currentSpace, currentView?.class) const hierarchy = client.getHierarchy() - async function getHeader (_class: Ref>): Promise { + async function getHeader(_class: Ref>): Promise { const clazz = hierarchy.getClass(_class) const headerMixin = hierarchy.as(clazz, view.mixin.SpaceHeader) if (headerMixin?.header == null && clazz.extends != null) return await getHeader(clazz.extends) return headerMixin.header } - function setViewlet (e: CustomEvent>): void { + function setViewlet(e: CustomEvent>): void { viewlet = e.detail } diff --git a/plugins/workbench-resources/src/components/SpecialView.svelte b/plugins/workbench-resources/src/components/SpecialView.svelte index b3c04abe6b..9c3eaddbe2 100644 --- a/plugins/workbench-resources/src/components/SpecialView.svelte +++ b/plugins/workbench-resources/src/components/SpecialView.svelte @@ -97,7 +97,7 @@ $: viewletActions = viewlet != null ? getViewletSpecialActions(client, viewlet) : [] - async function updateOptions ( + async function updateOptions( _options: FindOptions | undefined, viewOptions: ViewOptions | undefined, viewlet: Viewlet | undefined @@ -105,7 +105,7 @@ options = await getResultOptions(_options, viewlet?.viewOptions?.other, viewOptions) } - async function updateQuery ( + async function updateQuery( initialQuery: DocumentQuery, viewOptions: ViewOptions | undefined, viewlet: Viewlet | undefined, @@ -119,7 +119,7 @@ isQueryLoaded = true } - async function updateInitialQuery ( + async function updateInitialQuery( initialQuery: DocumentQuery, builder: Resource<() => Promise>> | undefined ): Promise> { @@ -129,7 +129,7 @@ return mergeQueries(initialQuery ?? {}, q ?? {}) } - function showCreateDialog (): void { + function showCreateDialog(): void { if (createComponent === undefined) return showPopup(createComponent, { ...createComponentProps, space }, 'top') } diff --git a/plugins/workbench-resources/src/components/Workbench.svelte b/plugins/workbench-resources/src/components/Workbench.svelte index 2375768991..5767413110 100644 --- a/plugins/workbench-resources/src/components/Workbench.svelte +++ b/plugins/workbench-resources/src/components/Workbench.svelte @@ -188,7 +188,7 @@ let hiddenAside: boolean = true $deviceInfo.navigator.visible = !hiddenNavigator - async function toggleNav (): Promise { + async function toggleNav(): Promise { $deviceInfo.navigator.visible = !$deviceInfo.navigator.visible if (!$deviceInfo.navigator.float) { hiddenNavigator = !$deviceInfo.navigator.visible @@ -226,7 +226,7 @@ } ) - async function initCurrentTab (tabs: WorkbenchTab[]): Promise { + async function initCurrentTab(tabs: WorkbenchTab[]): Promise { const tab = tabs.find((t) => t._id === $tabIdStore) const loc = getCurrentLocation() const tabLoc = tab ? getTabLocation(tab) : undefined @@ -366,7 +366,7 @@ let windowWorkspaceName = '' - async function updateWindowTitle (loc: Location): Promise { + async function updateWindowTitle(loc: Location): Promise { let wsUrl = loc.path[1] const ws = $workspacesStore.find((it) => it.url === wsUrl) if (ws !== undefined) { @@ -383,7 +383,7 @@ void broadcastEvent(workbench.event.NotifyTitle, document.title) } - async function getWindowTitle (loc: Location): Promise { + async function getWindowTitle(loc: Location): Promise { if (loc.fragment == null) return const hierarchy = client.getHierarchy() const [, id, _class] = decodeURIComponent(loc.fragment).split('|') @@ -400,7 +400,7 @@ } } - async function resolveShortLink (loc: Location): Promise { + async function resolveShortLink(loc: Location): Promise { let locationResolver = currentApplication?.locationResolver if (loc.path[2] != null && loc.path[2].trim().length > 0) { const app = apps.find((p) => p.alias === loc.path[2]) @@ -414,7 +414,7 @@ } } - function mergeLoc (loc: Location, resolved: ResolvedLocation): Location { + function mergeLoc(loc: Location, resolved: ResolvedLocation): Location { const resolvedApp = resolved.loc.path[2] const resolvedSpace = resolved.loc.path[3] const resolvedSpecial = resolved.loc.path[4] @@ -469,7 +469,7 @@ return loc } - async function syncLoc (loc: Location): Promise { + async function syncLoc(loc: Location): Promise { accessDeniedStore.set(false) const originalLoc = JSON.stringify(loc) if ($tabIdStore !== $prevTabIdStore) { @@ -594,7 +594,7 @@ } } - async function setOpenPanelFocus (fragment: string): Promise { + async function setOpenPanelFocus(fragment: string): Promise { const props = decodeURIComponent(fragment).split('|') if (props.length >= 3) { @@ -637,7 +637,7 @@ }) } - function clear (level: number): void { + function clear(level: number): void { switch (level) { case 1: currentAppAlias = undefined @@ -659,7 +659,7 @@ } } - async function updateSpace (spaceId?: Ref): Promise { + async function updateSpace(spaceId?: Ref): Promise { if (spaceId === currentSpace) return clear(2) currentSpace = spaceId @@ -673,7 +673,7 @@ createItemLabel = currentView?.createItemLabel } - function setSpaceSpecial (spaceSpecial: string | undefined): void { + function setSpaceSpecial(spaceSpecial: string | undefined): void { if (currentSpecial !== undefined && spaceSpecial === currentSpecial) return clear(3) if (spaceSpecial === undefined) return @@ -683,7 +683,7 @@ } } - function getSpecialComponent (id: string): SpecialNavModel | undefined { + function getSpecialComponent(id: string): SpecialNavModel | undefined { const sp = navigatorModel?.specials?.find((x) => x.id === id) if (sp !== undefined) { if (sp.accessLevel !== undefined && !hasAccountRole(account, sp.accessLevel)) { @@ -779,7 +779,7 @@ subscribeMobile(setTheme) }) - function checkInbox (popups: CompAndProps[]) { + function checkInbox(popups: CompAndProps[]) { if (inboxPopup !== undefined) { const exists = popups.find((p) => p.id === inboxPopup?.id) if (!exists) { @@ -789,7 +789,7 @@ } let supportStatus: SupportStatus | undefined = undefined - function handleSupportStatusChanged (status: SupportStatus) { + function handleSupportStatusChanged(status: SupportStatus) { supportStatus = status } @@ -806,7 +806,7 @@ }) let supportWidgetLoading = false - async function handleToggleSupportWidget (): Promise { + async function handleToggleSupportWidget(): Promise { const timer = setTimeout(() => { supportWidgetLoading = true }, 100) @@ -860,7 +860,7 @@ ? !client.getHierarchy().as($myEmployeeStore, contact.mixin.Employee).active : false - function isExcludedApp (alias: string): boolean { + function isExcludedApp(alias: string): boolean { const me = getCurrentAccount() if (me.role === AccountRole.ReadOnlyGuest || me.role === AccountRole.Guest) { diff --git a/plugins/workbench-resources/src/components/WorkbenchTabPresenter.svelte b/plugins/workbench-resources/src/components/WorkbenchTabPresenter.svelte index ba33857ccc..d4842ce16a 100644 --- a/plugins/workbench-resources/src/components/WorkbenchTabPresenter.svelte +++ b/plugins/workbench-resources/src/components/WorkbenchTabPresenter.svelte @@ -43,7 +43,7 @@ let lastLocUrl: string | undefined = undefined let lastLang: string | undefined = undefined - async function updateTabData (tab: WorkbenchTab, lang: string): Promise { + async function updateTabData(tab: WorkbenchTab, lang: string): Promise { const tabLoc = $tabIdStore === tab._id ? getCurrentLocation() : getTabLocation(tab) const url = locationToUrl(tabLoc) @@ -75,7 +75,7 @@ $: void update(tab, $languageStore) - function handleClickTab (): void { + function handleClickTab(): void { selectTab(tab._id) const tabLoc = getTabLocation(tab) const loc = getCurrentLocation() @@ -87,11 +87,11 @@ navigate(tabLoc) } - function handleCloseTab (): void { + function handleCloseTab(): void { void closeTab(tab) } - function handleMenu (event: CustomEvent): void { + function handleMenu(event: CustomEvent): void { event.preventDefault() event.stopPropagation() diff --git a/plugins/workbench-resources/src/components/navigator/SpacePanel.svelte b/plugins/workbench-resources/src/components/navigator/SpacePanel.svelte index 01cb497673..71ddef23bd 100644 --- a/plugins/workbench-resources/src/components/navigator/SpacePanel.svelte +++ b/plugins/workbench-resources/src/components/navigator/SpacePanel.svelte @@ -45,7 +45,7 @@ { limit: 1 } ) - function onNameChange (ev: Event) { + function onNameChange(ev: Event) { const value = (ev.target as HTMLInputElement).value if (value.trim().length > 0) { client.updateDoc(_class, space.space, space._id, { name: value }) diff --git a/plugins/workbench-resources/src/components/navigator/SpacesNav.svelte b/plugins/workbench-resources/src/components/navigator/SpacesNav.svelte index a42600bbaf..66c2dbbb17 100644 --- a/plugins/workbench-resources/src/components/navigator/SpacesNav.svelte +++ b/plugins/workbench-resources/src/components/navigator/SpacesNav.svelte @@ -84,7 +84,7 @@ const notifyContextByDocStore = inboxClient.contextByDoc const inboxNotificationsByContextStore = inboxClient.inboxNotificationsByContext - function isChanged ( + function isChanged( space: Space, notifyContextByDoc: Map, DocNotifyContext>, inboxNotificationsByContext: Map, InboxNotification[]> @@ -100,7 +100,7 @@ return inboxNotifications.filter(({ isViewed }) => !isViewed).length > 0 } - function getParentActions (): Action[] { + function getParentActions(): Action[] { const result = hasSpaceBrowser ? [browseSpaces] : [] if ( hasAccountRole(getCurrentAccount(), AccountRole.User) && @@ -122,7 +122,7 @@ let filteredSpaces: Space[] = [] - async function updateSpaces (spaces: Space[], visibleIf: (space: Space) => Promise): Promise { + async function updateSpaces(spaces: Space[], visibleIf: (space: Space) => Promise): Promise { const result: Space[] = [] for (const s of spaces) { if (await visibleIf(s)) { diff --git a/plugins/workbench-resources/src/components/navigator/SpacesNavItem.svelte b/plugins/workbench-resources/src/components/navigator/SpacesNavItem.svelte index 0e850a551a..ea1c673b75 100644 --- a/plugins/workbench-resources/src/components/navigator/SpacesNavItem.svelte +++ b/plugins/workbench-resources/src/components/navigator/SpacesNavItem.svelte @@ -41,7 +41,7 @@ const client = getClient() - async function getActions (space: Space): Promise { + async function getActions(space: Space): Promise { const result = [...(spaceActions ?? [])] const extraActions = await getContributedActions(client, space, core.class.Space) diff --git a/plugins/workbench-resources/src/components/navigator/StarredNav.svelte b/plugins/workbench-resources/src/components/navigator/StarredNav.svelte index d0e9162528..068b2655f9 100644 --- a/plugins/workbench-resources/src/components/navigator/StarredNav.svelte +++ b/plugins/workbench-resources/src/components/navigator/StarredNav.svelte @@ -32,7 +32,7 @@ const client = getClient() - function getSpaceModel (space: Ref>): SpacesNavModel | undefined { + function getSpaceModel(space: Ref>): SpacesNavModel | undefined { const hierarchy = client.getHierarchy() const ancestors = [space, ...[...hierarchy.getAncestors(space)].reverse()] for (const clazz of ancestors) { @@ -46,7 +46,7 @@ const notifyContextByDocStore = inboxClient.contextByDoc const inboxNotificationsByContextStore = inboxClient.inboxNotificationsByContext - function isChanged ( + function isChanged( space: Space, docUpdates: Map, DocNotifyContext>, inboxNotificationsByContext: Map, InboxNotification[]> diff --git a/plugins/workbench-resources/src/components/navigator/StarredNavItem.svelte b/plugins/workbench-resources/src/components/navigator/StarredNavItem.svelte index db127e0638..c066fdf906 100644 --- a/plugins/workbench-resources/src/components/navigator/StarredNavItem.svelte +++ b/plugins/workbench-resources/src/components/navigator/StarredNavItem.svelte @@ -51,7 +51,7 @@ } } - async function getActions (space: Space): Promise { + async function getActions(space: Space): Promise { const result = [unStarSpace] const extraActions = await getContributedActions(client, space, core.class.Space) diff --git a/plugins/workbench-resources/src/components/sidebar/SidebarExpanded.svelte b/plugins/workbench-resources/src/components/sidebar/SidebarExpanded.svelte index ccdbf31ded..2b3f7e894b 100644 --- a/plugins/workbench-resources/src/components/sidebar/SidebarExpanded.svelte +++ b/plugins/workbench-resources/src/components/sidebar/SidebarExpanded.svelte @@ -56,7 +56,7 @@ } $: float = $sidebarStore.float - function closeWrongTabs (loc: Location): void { + function closeWrongTabs(loc: Location): void { if (widget === undefined) return for (const tab of tabs) { if (tab.allowedPath !== undefined && !tab.isPinned) { @@ -83,12 +83,12 @@ unsubscribe() }) - async function handleTabClose (tabId: string, widget?: Widget): Promise { + async function handleTabClose(tabId: string, widget?: Widget): Promise { if (widget === undefined) return await closeWidgetTab(widget, tabId) } - function handleTabOpen (tabId: string, widget?: Widget): void { + function handleTabOpen(tabId: string, widget?: Widget): void { if (widget === undefined) return openWidgetTab(widget._id, tabId) } @@ -96,7 +96,7 @@ let componentHeight = '0px' let componentWidth = '0px' - function resize (element: Element): void { + function resize(element: Element): void { componentHeight = `${element.clientHeight}px` componentWidth = `${element.clientWidth}px` } diff --git a/plugins/workbench-resources/src/components/sidebar/SidebarTab.svelte b/plugins/workbench-resources/src/components/sidebar/SidebarTab.svelte index 7e756f2ce5..65fe748c6c 100644 --- a/plugins/workbench-resources/src/components/sidebar/SidebarTab.svelte +++ b/plugins/workbench-resources/src/components/sidebar/SidebarTab.svelte @@ -30,7 +30,7 @@ }) } - function handleMenu (event: CustomEvent): void { + function handleMenu(event: CustomEvent): void { if (actions.length === 0) { return } diff --git a/plugins/workbench-resources/src/components/sidebar/SidebarTabs.svelte b/plugins/workbench-resources/src/components/sidebar/SidebarTabs.svelte index 4a5f8faadd..3a98a013af 100644 --- a/plugins/workbench-resources/src/components/sidebar/SidebarTabs.svelte +++ b/plugins/workbench-resources/src/components/sidebar/SidebarTabs.svelte @@ -28,7 +28,7 @@ const dispatch = createEventDispatcher() - function getActions (tab: WidgetTab): Action[] { + function getActions(tab: WidgetTab): Action[] { const pinAction: Action = { label: view.string.Pin, icon: view.icon.Pin, diff --git a/plugins/workbench-resources/src/components/sidebar/widgets/AddWidgetsPopup.svelte b/plugins/workbench-resources/src/components/sidebar/widgets/AddWidgetsPopup.svelte index 10be660ea9..9713acb7c6 100644 --- a/plugins/workbench-resources/src/components/sidebar/widgets/AddWidgetsPopup.svelte +++ b/plugins/workbench-resources/src/components/sidebar/widgets/AddWidgetsPopup.svelte @@ -35,11 +35,11 @@ preferences = res }) - function handleClose (): void { + function handleClose(): void { dispatch('close') } - function isEnabled ( + function isEnabled( widget: Widget, widgetsUpdates: Map, boolean>, preference?: WidgetPreference @@ -47,13 +47,13 @@ return widgetsUpdates.get(widget._id) ?? preference?.enabled ?? false } - function handleCheck (widget: Widget, preference?: WidgetPreference): void { + function handleCheck(widget: Widget, preference?: WidgetPreference): void { const newValue = !isEnabled(widget, widgetsUpdates, preference) widgetsUpdates.set(widget._id, newValue) } - async function handleApply (): Promise { + async function handleApply(): Promise { for (const [widget, enabled] of widgetsUpdates) { const preference = preferences.find((it) => it.attachedTo === widget) if (preference !== undefined) { diff --git a/plugins/workbench-resources/src/components/sidebar/widgets/WidgetsBar.svelte b/plugins/workbench-resources/src/components/sidebar/widgets/WidgetsBar.svelte index e4f7a83768..d45ea9a8f0 100644 --- a/plugins/workbench-resources/src/components/sidebar/widgets/WidgetsBar.svelte +++ b/plugins/workbench-resources/src/components/sidebar/widgets/WidgetsBar.svelte @@ -25,11 +25,11 @@ export let preferences: WidgetPreference[] = [] export let selected: Ref | undefined = undefined - function handleAddWidget (): void { + function handleAddWidget(): void { showPopup(AddWidgetsPopup, { widgets }) } - function handleSelectWidget (widget: Widget): void { + function handleSelectWidget(widget: Widget): void { if (selected === widget._id) { minimizeSidebar(true) } else { diff --git a/plugins/workbench-resources/src/components/statistics/MetricsInfo.svelte b/plugins/workbench-resources/src/components/statistics/MetricsInfo.svelte index f4eb29c222..3cbb4b28ea 100644 --- a/plugins/workbench-resources/src/components/statistics/MetricsInfo.svelte +++ b/plugins/workbench-resources/src/components/statistics/MetricsInfo.svelte @@ -17,7 +17,7 @@ const toTime = (value: number, digits = 10): number => Math.round(value * digits) / digits - function showAvg (name: string, time: number, ops: number): string { + function showAvg(name: string, time: number, ops: number): string { if (name.startsWith('#')) { return `➿ ${toTime(time)}` } @@ -36,7 +36,7 @@ } } - function getSortedMeasurements ( + function getSortedMeasurements( m: Record, sortingOrder: 'avg' | 'ops' | 'total' ): [string, Metrics][] { diff --git a/plugins/workbench-resources/src/components/statistics/Params.svelte b/plugins/workbench-resources/src/components/statistics/Params.svelte index 01f247c3f3..bbf9595870 100644 --- a/plugins/workbench-resources/src/components/statistics/Params.svelte +++ b/plugins/workbench-resources/src/components/statistics/Params.svelte @@ -25,7 +25,7 @@ const manager = createFocusManager() - function toEntries (entries: OperationLogEntry[]): OperationLogEntry[] { + function toEntries(entries: OperationLogEntry[]): OperationLogEntry[] { entries.sort((a, b) => a.start - b.start) // make relative times diff --git a/plugins/workbench-resources/src/connect.ts b/plugins/workbench-resources/src/connect.ts index c4f71a1269..b8e6055f28 100644 --- a/plugins/workbench-resources/src/connect.ts +++ b/plugins/workbench-resources/src/connect.ts @@ -75,7 +75,7 @@ let _token: string | undefined let _client: Client | undefined let _clientSet: boolean = false -export async function disconnect(): Promise { +export async function disconnect (): Promise { if (_client !== undefined) { await _client.close() _client = undefined @@ -83,7 +83,7 @@ export async function disconnect(): Promise { } } -export async function connect(title: string): Promise { +export async function connect (title: string): Promise { const ctx = uiContext.newChild('connect', {}) const loc = getCurrentLocation() const wsUrl = loc.path[1] @@ -594,7 +594,7 @@ export async function connect(title: string): Promise { return newClient } -async function getGlobalPerson(): Promise { +async function getGlobalPerson (): Promise { const getPerson = await getResource(login.function.GetPerson) const [status, globalPerson] = await getPerson() diff --git a/plugins/workbench-resources/src/mobile.ts b/plugins/workbench-resources/src/mobile.ts index 091430b0e1..9225c4fa41 100644 --- a/plugins/workbench-resources/src/mobile.ts +++ b/plugins/workbench-resources/src/mobile.ts @@ -43,8 +43,8 @@ interface Bridge { type MobileNSWindow = Window & typeof globalThis & { - nsWebViewBridge: Bridge -} + nsWebViewBridge: Bridge + } type SetTheme = (theme: string) => void diff --git a/server-plugins/activity-resources/src/references.ts b/server-plugins/activity-resources/src/references.ts index 61a4982260..df6bcd6f05 100644 --- a/server-plugins/activity-resources/src/references.ts +++ b/server-plugins/activity-resources/src/references.ts @@ -33,7 +33,6 @@ import core, { type TxCUD, TxFactory, TxProcessor, - type TxRemoveDoc, type TxUpdateDoc, type Type, getClassCollaborators diff --git a/server/indexer/src/indexer/indexer.ts b/server/indexer/src/indexer/indexer.ts index 319116e58c..c7144e20bf 100644 --- a/server/indexer/src/indexer/indexer.ts +++ b/server/indexer/src/indexer/indexer.ts @@ -1172,9 +1172,7 @@ export class FullTextIndexPipeline implements FullTextPipeline { indexedDoc: IndexedDoc ): Promise { if (docInfo !== undefined) { - let textContent = Buffer.concat( - (await this.storageAdapter?.read(ctx, this.workspace, docInfo._id)) - ).toString() + let textContent = Buffer.concat(await this.storageAdapter?.read(ctx, this.workspace, docInfo._id)).toString() textContent = textContent .split(/ +|\t+|\f+/) diff --git a/server/tool/src/index.ts b/server/tool/src/index.ts index aeb64b9097..67f39f93f8 100644 --- a/server/tool/src/index.ts +++ b/server/tool/src/index.ts @@ -183,7 +183,7 @@ export async function updateModel ( for (const op of migrateOperations) { const st = platformNow() await ctx.with(op[0], {}, async () => { - await op[1].upgrade(migrateState, async () => connection as any, mode) + await op[1].upgrade(migrateState, async () => connection, mode) }) const tdelta = platformNowDiff(st) if (tdelta > 0) { @@ -400,9 +400,9 @@ async function prepareMigrationClient ( wsIds: WorkspaceIds, queue: PlatformQueueProducer ): Promise<{ - migrateClient: MigrateClientImpl - migrateState: Map> - }> { + migrateClient: MigrateClientImpl + migrateState: Map> +}> { const migrateClient = new MigrateClientImpl( pipeline, hierarchy, diff --git a/server/tool/src/initializer.ts b/server/tool/src/initializer.ts index 8f08dd4763..406c1520d7 100644 --- a/server/tool/src/initializer.ts +++ b/server/tool/src/initializer.ts @@ -176,7 +176,7 @@ export class WorkspaceInitializer { } } - private async processDefault( + private async processDefault ( step: DefaultStep, defaults: Map>, Props> ): Promise { @@ -213,7 +213,7 @@ export class WorkspaceInitializer { } } - private async processFind(step: FindStep, vars: Record): Promise { + private async processFind (step: FindStep, vars: Record): Promise { const query = this.fillProps(step.query, vars) const res = await this.client.findOne(step._class, { ...(query as any) }) if (res === undefined) { @@ -224,7 +224,7 @@ export class WorkspaceInitializer { } } - private async processMixin(step: MixinStep, vars: Record): Promise { + private async processMixin (step: MixinStep, vars: Record): Promise { const data = await this.fillPropsWithMarkdown(step.data, vars, step.markdownFields) const { _id, space, ...props } = data if (_id === undefined || space === undefined) { @@ -233,16 +233,16 @@ export class WorkspaceInitializer { await this.client.createMixin(_id, step._class, space, step.mixin, props) } - private async processUpdate(step: UpdateStep, vars: Record): Promise { + private async processUpdate (step: UpdateStep, vars: Record): Promise { const data = await this.fillPropsWithMarkdown(step.data, vars, step.markdownFields) const { _id, space, ...props } = data if (_id === undefined || space === undefined) { throw new Error('Update step must have _id and space') } - await this.client.updateDoc(step._class, space, _id as Ref, props) + await this.client.updateDoc(step._class, space, _id, props) } - private async processBulkUpdate(step: BulkUpdateStep, vars: Record): Promise { + private async processBulkUpdate (step: BulkUpdateStep, vars: Record): Promise { const ops = this.client.apply() const docs = await this.client.findAll(step._class, { ...(step.query as any) }) const data = await this.fillPropsWithMarkdown(step.data, vars, step.markdownFields) @@ -252,7 +252,7 @@ export class WorkspaceInitializer { await ops.commit() } - private async processCreate( + private async processCreate ( step: CreateStep, vars: Record, defaults: Map>, Props> @@ -286,7 +286,7 @@ export class WorkspaceInitializer { return JSON.stringify(json) } - private async create(_class: Ref>, data: Props, _id?: Ref): Promise> { + private async create (_class: Ref>, data: Props, _id?: Ref): Promise> { const hierarchy = this.client.getHierarchy() if (hierarchy.isDerived(_class, core.class.AttachedDoc)) { @@ -317,7 +317,7 @@ export class WorkspaceInitializer { } } - private async fillPropsWithMarkdown | Props>( + private async fillPropsWithMarkdown | Props> ( data: P, vars: Record, markdownFields?: string[] @@ -352,7 +352,7 @@ export class WorkspaceInitializer { return await saveCollabJson(this.ctx, this.storageAdapter, this.wsIds, doc, markup) } - private async fillProps | Props>( + private async fillProps | Props> ( data: P, vars: Record ): Promise

{ diff --git a/server/tool/src/upgrade.ts b/server/tool/src/upgrade.ts index 21a8942e82..48849ef074 100644 --- a/server/tool/src/upgrade.ts +++ b/server/tool/src/upgrade.ts @@ -53,7 +53,7 @@ export class MigrateClientImpl implements MigrationClient { migrateState = new Map>() - async find( + async find ( domain: Domain, query: DocumentQuery, options?: FindOptions | undefined @@ -61,11 +61,11 @@ export class MigrateClientImpl implements MigrationClient { return await this.lowLevel.rawFindAll(domain, query, options) } - async groupBy(domain: Domain, field: string, query?: DocumentQuery

): Promise> { + async groupBy (domain: Domain, field: string, query?: DocumentQuery

): Promise> { return await this.lowLevel.groupBy(this.ctx, domain, field, query) } - async traverse( + async traverse ( domain: Domain, query: DocumentQuery, options?: FindOptions | undefined @@ -73,7 +73,7 @@ export class MigrateClientImpl implements MigrationClient { return await this.lowLevel.traverse(domain, query, options) } - async update(domain: Domain, query: DocumentQuery, operations: MigrateUpdate): Promise { + async update (domain: Domain, query: DocumentQuery, operations: MigrateUpdate): Promise { const t = Date.now() try { await this.lowLevel.rawUpdate(domain, query, operations) @@ -84,7 +84,7 @@ export class MigrateClientImpl implements MigrationClient { } } - async bulk( + async bulk ( domain: Domain, operations: { filter: DocumentQuery, update: MigrateUpdate }[] ): Promise { @@ -93,7 +93,7 @@ export class MigrateClientImpl implements MigrationClient { } } - async move( + async move ( sourceDomain: Domain, query: DocumentQuery, targetDomain: Domain, @@ -113,17 +113,17 @@ export class MigrateClientImpl implements MigrationClient { } } - async create(domain: Domain, doc: T | T[]): Promise { + async create (domain: Domain, doc: T | T[]): Promise { const ctx = new MeasureMetricsContext('create', {}) await this.lowLevel.upload(ctx, domain, Array.isArray(doc) ? doc : [doc]) } - async delete(domain: Domain, _id: Ref): Promise { + async delete (domain: Domain, _id: Ref): Promise { const ctx = new MeasureMetricsContext('delete', {}) await this.lowLevel.clean(ctx, domain, [_id]) } - async deleteMany(domain: Domain, query: DocumentQuery): Promise { + async deleteMany (domain: Domain, query: DocumentQuery): Promise { await this.lowLevel.rawDeleteMany(domain, query) } diff --git a/services/billing/pod-billing/src/db/postgres.ts b/services/billing/pod-billing/src/db/postgres.ts index bf0b13ebaa..841d0ee86a 100644 --- a/services/billing/pod-billing/src/db/postgres.ts +++ b/services/billing/pod-billing/src/db/postgres.ts @@ -65,7 +65,7 @@ class PostgresDB implements BillingDB { return db } - async execute)[]>(query: string, params?: any[]): Promise { + async execute)[]> (query: string, params?: any[]): Promise { query = params !== undefined && params.length > 0 ? injectVars(query, params) : query return await this.sql.unsafe(query) } diff --git a/services/calendar/pod-calendar/src/sync.ts b/services/calendar/pod-calendar/src/sync.ts index a98a7335d5..e232dfa123 100644 --- a/services/calendar/pod-calendar/src/sync.ts +++ b/services/calendar/pod-calendar/src/sync.ts @@ -290,10 +290,10 @@ export class IncomingSyncManager { if (event.id != null) { const _calendar = this.getEventCalendar(calendarId, event) if (_calendar !== undefined) { - const exists = (await this.client.findOne(calendar.class.Event, { + const exists = await this.client.findOne(calendar.class.Event, { eventId: event.id, calendar: _calendar._id - })) + }) if (exists === undefined) { await this.saveExtEvent(event, accessRole, _calendar) } else { diff --git a/services/rekoni/src/server.ts b/services/rekoni/src/server.ts index 57fe45fd76..c5dd060538 100644 --- a/services/rekoni/src/server.ts +++ b/services/rekoni/src/server.ts @@ -100,7 +100,7 @@ export const startServer = async (): Promise => { let idx = 0 // Allow to execute 30 per second. const extractQueue = { - add: async (exec: () => Promise): Promise => { + add: async (exec: () => Promise): Promise => { if (ops.size > 100) { await Promise.any(ops.values()) } diff --git a/services/telegram/pod-telegram/src/config.ts b/services/telegram/pod-telegram/src/config.ts index b4687813e3..809fac181d 100644 --- a/services/telegram/pod-telegram/src/config.ts +++ b/services/telegram/pod-telegram/src/config.ts @@ -49,7 +49,7 @@ const defaults: Partial = { const required: Array = ['TelegramApiID', 'TelegramApiHash', 'MongoURI', 'AccountsURL', 'Secret'] -const mergeConfigs = (defaults: Partial, params: Partial): T => { +const mergeConfigs = (defaults: Partial, params: Partial): T => { const result = { ...defaults } for (const key in params) { if (params[key] !== undefined) { diff --git a/services/telegram/pod-telegram/src/utils.ts b/services/telegram/pod-telegram/src/utils.ts index 6d311f4653..f7d2dc267a 100644 --- a/services/telegram/pod-telegram/src/utils.ts +++ b/services/telegram/pod-telegram/src/utils.ts @@ -1,4 +1,4 @@ -import client, { ClientSocket } from '@hcengineering/client' +import client from '@hcengineering/client' import { Client } from '@hcengineering/core' import { setMetadata } from '@hcengineering/platform' import { createClient, getTransactorEndpoint } from '@hcengineering/server-client' From 33f8518d241d9e22bc0510c011b5515a6d2bfb6d Mon Sep 17 00:00:00 2001 From: Artem Savchenko Date: Wed, 19 Aug 2026 23:13:06 +0700 Subject: [PATCH 23/55] Fix warnings Signed-off-by: Artem Savchenko (ported from TraceX 4381b2371e) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- dev/doc-import-tool/src/extract/container.ts | 2 +- dev/doc-import-tool/src/extract/types.ts | 4 +- dev/tool/src/calendar.ts | 2 +- dev/tool/src/db.ts | 7 +- dev/tool/src/github.ts | 2 +- dev/tool/src/gmail.ts | 8 +- dev/tool/src/markup.ts | 4 +- dev/tool/src/restoreGithub.ts | 2 +- dev/tool/src/telegram.ts | 7 +- dev/tool/src/workspace.ts | 8 +- .../server/packages/kafka/src/index.ts | 7 +- models/bitrix/src/index.ts | 12 +- models/board/src/index.ts | 14 +- models/calendar/src/index.ts | 24 +-- models/card/src/index.ts | 28 ++-- models/contact/src/index.ts | 2 +- models/controlled-documents/src/index.ts | 12 +- models/controlled-documents/src/types.ts | 142 +++++++++--------- models/document/src/index.ts | 32 ++-- models/drive/src/index.ts | 28 ++-- models/emoji/src/models.ts | 4 +- models/gmail/src/index.ts | 40 ++--- models/gmail/src/migration.ts | 2 +- models/hr/src/index.ts | 4 +- models/lead/src/types.ts | 14 +- models/love/src/index.ts | 2 +- models/process/src/index.ts | 92 ++++++------ models/products/src/index.ts | 24 +-- models/questions/src/doc-types/base.ts | 16 +- models/questions/src/doc-types/mixin.ts | 3 +- .../src/doc-types/questions/MultipleChoice.ts | 9 +- .../src/doc-types/questions/Ordering.ts | 9 +- .../src/doc-types/questions/SingleChoice.ts | 9 +- models/recruit/src/types.ts | 68 ++++----- models/survey/src/types.ts | 16 +- models/task/src/index.ts | 50 +++--- models/telegram/src/index.ts | 16 +- models/templates/src/index.ts | 4 +- models/test-management/src/types.ts | 62 ++++---- models/time/src/index.ts | 18 +-- models/tracker/src/types.ts | 104 ++++++------- models/training/src/types.ts | 58 +++---- .../src/components/Configure.svelte | 2 +- .../src/stores/largestFiles.ts | 2 +- plugins/billing-resources/src/utils.ts | 1 - .../src/__tests__/cardTableFormatter.test.ts | 28 ++-- .../src/__tests__/tagFormatter.test.ts | 4 +- plugins/card-resources/src/card.ts | 2 +- .../src/components/CardArrayEditor.svelte | 2 +- .../src/components/CardAttributeEditor.svelte | 4 +- .../src/components/CardAttributes.svelte | 4 +- .../src/components/CardFeedView.svelte | 6 +- .../src/components/CardIcon.svelte | 2 +- .../src/components/CardPresenter.svelte | 2 +- .../src/components/CardTagColored.svelte | 2 +- .../src/components/CardTagsColored.svelte | 4 +- .../src/components/CardTimestamp.svelte | 2 +- .../src/components/CardVersionSelector.svelte | 4 +- .../src/components/ChangeType.svelte | 6 +- .../src/components/Childs.svelte | 2 +- .../src/components/ColoredCardIcon.svelte | 2 +- .../src/components/Content.svelte | 2 +- .../src/components/ContentEditor.svelte | 2 +- .../src/components/ContentPreview.svelte | 2 +- .../src/components/CreateCardButton.svelte | 2 +- .../src/components/CreateCardPopup.svelte | 6 +- .../src/components/CreateCardPopupFull.svelte | 10 +- .../components/CreateCardPopupSimple.svelte | 8 +- .../src/components/Description.svelte | 2 +- .../src/components/DuplicateCard.svelte | 6 +- .../src/components/EditCard.svelte | 2 +- .../src/components/EditCardNew.svelte | 4 +- .../components/EditCardTableOfContents.svelte | 26 ++-- .../src/components/EditorActions.svelte | 2 +- .../src/components/FilePlaceholder.svelte | 6 +- .../card-resources/src/components/Main.svelte | 2 +- .../src/components/MarkupProperties.svelte | 8 +- .../src/components/MasterTagAttributes.svelte | 6 +- .../src/components/MasterTags.svelte | 2 +- .../src/components/NewCardForm.svelte | 12 +- .../components/ParentNamesPresenter.svelte | 2 +- .../components/SetParentActionPopup.svelte | 2 +- .../src/components/TagAttributes.svelte | 6 +- .../src/components/TagsEditor.svelte | 14 +- .../src/components/TypeSelector.svelte | 6 +- .../navigator-next/Navigator.svelte | 6 +- .../navigator-next/NavigatorCard.svelte | 4 +- .../NavigatorCardsSection.svelte | 2 +- .../navigator-next/NavigatorHierarchy.svelte | 4 +- .../navigator-next/NavigatorType.svelte | 4 +- .../navigator/CardHeaderButton.svelte | 6 +- .../components/navigator/CreateSpace.svelte | 24 +-- .../navigator/SpacePresenter.svelte | 2 +- .../components/navigator/TagHierarchy.svelte | 6 +- .../navigator/TypesNavigator.svelte | 12 +- .../components/navigator/TypesSelector.svelte | 6 +- .../components/sections/ContentSection.svelte | 4 +- .../components/settings/ChildsSection.svelte | 4 +- .../settings/CreateRolePopup.svelte | 2 +- .../settings/DuplicateSetting.svelte | 6 +- .../src/components/settings/EditRole.svelte | 12 +- .../components/settings/GeneralSection.svelte | 12 +- .../settings/ManageMasterTags.svelte | 4 +- .../settings/ManageMasterTagsContent.svelte | 10 +- .../settings/ManageMasterTagsTools.svelte | 4 +- .../settings/ProperitiesSection.svelte | 4 +- .../settings/RelationSetting.svelte | 2 +- .../settings/RelationsSection.svelte | 4 +- .../components/settings/RolesSection.svelte | 2 +- .../components/settings/TagsSection.svelte | 4 +- .../settings/VersioningSetting.svelte | 6 +- .../settings/view/AssociationsSelect.svelte | 4 +- .../settings/view/CreateView.svelte | 10 +- .../components/settings/view/EditView.svelte | 6 +- .../settings/view/RelatedTagSelect.svelte | 2 +- .../settings/view/ViewConfigSection.svelte | 8 +- .../settings/view/ViewOptionsButton.svelte | 2 +- .../settings/view/ViewSetting.svelte | 26 ++-- .../settings/view/ViewSettingButton.svelte | 2 +- .../settings/view/ViewsSection.svelte | 2 +- plugins/card-resources/src/exporter.ts | 6 +- plugins/card-resources/src/index.ts | 2 +- plugins/card-resources/src/tagFormatter.ts | 4 +- plugins/card-resources/src/utils.ts | 9 +- .../create-doc/steps/TeamStep.svelte | 2 +- .../components/document/EditDocContent.svelte | 2 +- .../document/EditDocReasonAndImpact.svelte | 2 +- .../components/document/EditDocRelease.svelte | 2 +- .../components/document/EditDocTeam.svelte | 2 +- .../hierarchy/DocumentSpacePresenter.svelte | 2 +- .../src/docTableFormatter.ts | 8 +- .../src/docutils.ts | 24 +-- .../src/index.ts | 30 ++-- .../src/navigation.ts | 18 +-- .../editors/document/documentComments.ts | 6 +- .../src/stores/editors/document/query.ts | 8 +- .../src/text.ts | 18 +-- .../src/utils.ts | 114 +++++++------- .../src/model/headerGenerator.ts | 2 +- .../src/components/Configure.svelte | 8 +- .../components/ApproveRequestButtons.svelte | 2 +- .../components/ApproveRequestPresenter.svelte | 2 +- .../src/components/ErrorTooltip.svelte | 2 +- .../src/components/ExecutionDetails.svelte | 2 +- .../src/components/ExecutionMyToDos.svelte | 4 +- .../src/components/ExecutonPresenter.svelte | 2 +- .../src/components/NotifierExtension.svelte | 4 +- .../src/components/ProcessAttribute.svelte | 6 +- .../src/components/ProcessesExtension.svelte | 6 +- .../ProcessesHeaderExtension.svelte | 2 +- .../src/components/ProcessesSection.svelte | 4 +- .../src/components/RequestsExtension.svelte | 2 +- .../src/components/RunProcessCardPopup.svelte | 4 +- .../src/components/RunProcessPopup.svelte | 8 +- .../src/components/SignatureDialog.svelte | 6 +- .../attributeEditors/ConfigurePopup.svelte | 34 ++--- .../attributeEditors/ConstValuePopup.svelte | 4 +- .../ContextSelectorPopup.svelte | 20 +-- .../attributeEditors/ContextValue.svelte | 2 +- .../ExecutionContextSelector.svelte | 2 +- .../NestedContextSelector.svelte | 2 +- .../RelatedContextSelector.svelte | 2 +- .../contextEditors/ClassUserInput.svelte | 2 +- .../contextEditors/FallbackEditor.svelte | 8 +- .../contextEditors/RequestUserInput.svelte | 4 +- .../RequestUserInputAttribute.svelte | 6 +- .../contextEditors/ResultInput.svelte | 10 +- .../contextEditors/RoleEditor.svelte | 2 +- .../contextEditors/ToDoContextSelector.svelte | 8 +- .../criterias/ArraySizeCriteria.svelte | 6 +- .../criterias/AttributeCriteria.svelte | 2 +- .../components/criterias/BaseCriteria.svelte | 4 +- .../criterias/BaseCriteriaEditor.svelte | 6 +- .../criterias/ContextCriteria.svelte | 4 +- .../criterias/CriteriasEditor.svelte | 2 +- .../components/criterias/RangeCriteria.svelte | 12 +- .../criterias/SubProcessStateCriteria.svelte | 4 +- .../UpdateAttributePresenter.svelte | 4 +- .../settings/ActionPresenter.svelte | 2 +- .../settings/AddRelationEditor.svelte | 4 +- .../components/settings/AddTagEditor.svelte | 12 +- .../settings/AddTransitionButton.svelte | 2 +- .../settings/AddTransitionPopup.svelte | 4 +- .../settings/ApproveRequestEditor.svelte | 10 +- .../ApproveRequestTriggerEditor.svelte | 2 +- .../ApproveRequestTriggerPresenter.svelte | 4 +- .../settings/AsideStepEditor.svelte | 8 +- .../settings/AsideTransitionEditor.svelte | 10 +- .../settings/AssociationSelector.svelte | 2 +- .../components/settings/BindingsEditor.svelte | 8 +- .../settings/CancelSubProcessEditor.svelte | 2 +- .../settings/CancelToDoEditor.svelte | 2 +- .../settings/CardUpdateEditor.svelte | 10 +- .../components/settings/ContextEditor.svelte | 6 +- .../components/settings/ContextFooter.svelte | 14 +- .../settings/CreateCardEditor.svelte | 22 +-- .../settings/FieldChangesEditor.svelte | 8 +- .../settings/FunctionSubmenu.svelte | 4 +- .../settings/ImportSlotsPopup.svelte | 10 +- .../settings/InitParamsEditor.svelte | 2 +- .../settings/LockFieldEditor.svelte | 10 +- .../settings/LockSectionEditor.svelte | 2 +- .../src/components/settings/Navigator.svelte | 2 +- .../components/settings/ParamsEditor.svelte | 2 +- .../settings/ProcessAttributeEditor.svelte | 8 +- .../components/settings/ProcessEditor.svelte | 16 +- .../settings/ProcesssSetting.svelte | 4 +- .../settings/ResultCriteriaEditor.svelte | 10 +- .../components/settings/ResultEditor.svelte | 4 +- .../settings/ResultFieldTypeEditor.svelte | 4 +- .../settings/ResultTypeEditor.svelte | 4 +- .../components/settings/ResultsEditor.svelte | 6 +- .../settings/StateInlineEditor.svelte | 4 +- .../settings/StatesInlineEditor.svelte | 4 +- .../src/components/settings/StepEditor.svelte | 4 +- .../settings/SubProcessEditor.svelte | 8 +- .../settings/SubProcessMatchEditor.svelte | 6 +- .../components/settings/TagSelector.svelte | 2 +- .../src/components/settings/TimeEditor.svelte | 2 +- .../src/components/settings/ToDoEditor.svelte | 8 +- .../settings/ToDoParamsEditor.svelte | 4 +- .../components/settings/ToDoPresenter.svelte | 4 +- .../settings/ToDoValuePresenter.svelte | 4 +- .../settings/TransitionEditor.svelte | 12 +- .../settings/TransitionsInlineEditor.svelte | 6 +- .../settings/TriggerPresenter.svelte | 2 +- .../settings/UpdateCardEditor.svelte | 10 +- .../transformEditors/AppendEditor.svelte | 4 +- .../ArrayElementEditor.svelte | 2 +- .../transformEditors/CutEditor.svelte | 2 +- .../DateDifferenceEditor.svelte | 4 +- .../transformEditors/DateOffsetEditor.svelte | 2 +- .../transformEditors/FilterEditor.svelte | 12 +- .../transformEditors/NumberEditor.svelte | 4 +- .../transformEditors/ReplaceEditor.svelte | 2 +- .../transformEditors/SplitEditor.svelte | 2 +- plugins/process-resources/src/exporter.ts | 12 +- plugins/process-resources/src/utils.ts | 4 +- .../components/ApplicantNamePresenter.svelte | 2 +- .../src/components/CreateApplication.svelte | 8 +- .../src/components/CreateCandidate.svelte | 32 ++-- .../src/components/CreateOrganization.svelte | 4 +- .../src/components/CreateVacancy.svelte | 12 +- .../src/components/EditVacancy.svelte | 4 +- .../src/components/MoveApplication.svelte | 4 +- .../src/components/NewCandidateHeader.svelte | 4 +- .../src/components/OptimizeSkills.svelte | 26 ++-- .../src/components/Organizations.svelte | 4 +- .../src/components/SkillsView.svelte | 4 +- .../src/components/Vacancies.svelte | 4 +- .../src/components/VacancyCard.svelte | 2 +- .../components/VacancyCountPresenter.svelte | 2 +- .../components/VacancyItemPresenter.svelte | 2 +- .../components/VacancyTemplateEditor.svelte | 2 +- .../VacancyListCountPresenter.svelte | 4 +- .../components/review/CreateOpinion.svelte | 4 +- .../src/components/review/CreateReview.svelte | 8 +- .../src/components/review/EditOpinion.svelte | 4 +- .../src/components/review/EditReview.svelte | 2 +- .../components/review/OpinionPresenter.svelte | 2 +- plugins/survey-resources/src/utils.ts | 2 +- .../src/components/CreateToDo.svelte | 6 +- .../src/components/CreateToDoPopup.svelte | 12 +- .../src/components/DueDateEditor.svelte | 2 +- .../src/components/EditToDo.svelte | 16 +- .../src/components/EditWorkSlot.svelte | 4 +- .../src/components/Header.svelte | 4 +- .../src/components/PlanView.svelte | 2 +- .../src/components/PlanningCalendar.svelte | 20 +-- .../src/components/PriorityEditor.svelte | 2 +- .../src/components/TaskSelector.svelte | 2 +- .../src/components/ToDoDraggable.svelte | 8 +- .../src/components/ToDoElement.svelte | 6 +- .../src/components/ToDoGroup.svelte | 4 +- .../src/components/ToDoPresenter.svelte | 4 +- .../src/components/ToDoProjectGroup.svelte | 2 +- .../src/components/ToDos.svelte | 12 +- .../src/components/ToDosNavigator.svelte | 4 +- .../src/components/TodoWorkslots.svelte | 10 +- .../src/components/WorkItemPresenter.svelte | 2 +- .../src/components/WorkSlotElement.svelte | 4 +- .../src/components/Workslots.svelte | 6 +- .../src/components/team/Team.svelte | 4 +- .../src/components/team/agenda/DayPlan.svelte | 2 +- .../team/calendar/EventElement.svelte | 4 +- .../team/calendar/PersonCalendar.svelte | 8 +- .../team/calendar/TeamCalendar.svelte | 2 +- .../team/calendar/TeamCalendarDay.svelte | 4 +- .../components/team/calendar/TxPanel.svelte | 2 +- plugins/tracker-resources/src/component.ts | 2 +- .../src/components/CreateIssue.svelte | 62 ++++---- .../src/components/LabelsView.svelte | 4 +- .../src/components/NewIssueHeader.svelte | 6 +- .../src/components/RelationsPopup.svelte | 4 +- .../components/SetDueDateActionPopup.svelte | 2 +- .../SetParentIssueActionPopup.svelte | 4 +- .../src/components/SubIssues.svelte | 14 +- .../components/ComponentBrowser.svelte | 2 +- .../components/ComponentSelector.svelte | 2 +- .../DeleteComponentPresenter.svelte | 4 +- .../components/components/NewComponent.svelte | 2 +- .../components/issues/AssigneeEditor.svelte | 2 +- .../src/components/issues/Duration.svelte | 2 +- .../issues/IssueNotification.svelte | 4 +- .../src/components/issues/IssuePreview.svelte | 2 +- .../issues/IssueStatusActivity.svelte | 2 +- .../src/components/issues/KanbanView.svelte | 8 +- .../src/components/issues/Move.svelte | 6 +- .../issues/ParentNamesPresenter.svelte | 2 +- .../components/issues/RelationEditor.svelte | 2 +- .../issues/RelationEditorPart.svelte | 4 +- .../src/components/issues/StatusEditor.svelte | 2 +- .../issues/StatusFilterValuePresenter.svelte | 2 +- .../components/issues/StatusSelector.svelte | 4 +- .../issues/edit/ControlPanel.svelte | 4 +- .../components/issues/edit/EditIssue.svelte | 12 +- .../issues/edit/QueryIssuesList.svelte | 4 +- .../issues/edit/SubIssueList.svelte | 2 +- .../issues/edit/SubIssueSelector.svelte | 6 +- .../issues/edit/SubIssuesSelector.svelte | 4 +- .../issues/related/RelatedIssuePopup.svelte | 6 +- .../related/RelatedIssueSelector.svelte | 2 +- .../timereport/EstimationValueEditor.svelte | 2 +- .../timereport/ReportedTimeEditor.svelte | 4 +- .../issues/timereport/ReportsPopup.svelte | 4 +- .../issues/timereport/TimePresenter.svelte | 2 +- .../issues/timereport/TimeSpendReport.svelte | 2 +- .../timereport/TimeSpendReportPopup.svelte | 4 +- .../timereport/TimeSpendReportsList.svelte | 2 +- .../milestones/EditMilestone.svelte | 2 +- .../milestones/MilestoneBrowser.svelte | 2 +- .../milestones/MilestoneFilter.svelte | 12 +- .../milestones/MilestoneStatusEditor.svelte | 4 +- .../components/milestones/NewMilestone.svelte | 2 +- .../components/projects/CreateProject.svelte | 32 ++-- .../projects/ProjectSpacePresenter.svelte | 2 +- .../templates/CreateIssueTemplate.svelte | 8 +- .../templates/DraftIssueChildEditor.svelte | 18 +-- .../templates/DraftIssueChildList.svelte | 10 +- .../templates/EditIssueTemplate.svelte | 6 +- .../templates/IssueTemplateChildEditor.svelte | 14 +- .../templates/IssueTemplateChildList.svelte | 10 +- .../templates/IssueTemplateChilds.svelte | 2 +- .../templates/IssueTemplatePresenter.svelte | 2 +- .../templates/IssueTemplatesView.svelte | 2 +- .../templates/TemplateControlPanel.svelte | 2 +- plugins/tracker-resources/src/index.ts | 2 +- plugins/tracker-resources/src/utils.ts | 46 +++--- pods/authProviders/src/utils.ts | 2 +- pods/media/src/client.ts | 6 +- pods/server/src/__tests__/server.test.ts | 4 +- pods/server/src/server_http.ts | 4 +- .../calendar-resources/src/index.ts | 22 +-- server/account-service/src/index.ts | 2 +- .../src/migration/collections/mongo.ts | 4 +- server/account-service/src/unread.ts | 8 +- .../account/src/__tests__/operations.test.ts | 20 +-- server/account/src/__tests__/utils.test.ts | 5 +- server/account/src/collections/mongo.ts | 3 +- .../src/collections/postgres/postgres.ts | 10 +- server/account/src/operations.ts | 60 ++++---- server/account/src/serviceOperations.ts | 2 +- server/account/src/utils.ts | 14 +- server/backup/src/backup.ts | 20 +-- server/backup/src/restore.ts | 12 +- server/backup/src/service.ts | 10 +- server/backup/src/storage.ts | 2 +- server/backup/src/utils.ts | 36 ++--- server/collaborator/src/rpc/index.ts | 2 +- server/server-pipeline/src/blobStorage.ts | 26 ++-- .../datalake/pod-datalake/src/datalake/db.ts | 2 +- .../pod-datalake/src/datalake/index.ts | 2 +- .../datalake/pod-datalake/src/s3/index.ts | 2 +- services/datalake/pod-datalake/src/server.ts | 6 +- .../src/__tests__/data-mapper.test.ts | 4 +- .../__tests__/product-version-handler.test.ts | 8 +- .../src/__tests__/relation-exporter.test.ts | 2 +- .../src/__tests__/workspace-exporter.test.ts | 20 +-- services/export/pod-export/src/converter.ts | 4 +- services/export/pod-export/src/index.ts | 2 +- services/export/pod-export/src/server.ts | 6 +- .../src/workspace/attachment-exporter.ts | 14 +- .../src/workspace/document-exporter.ts | 2 +- .../export/pod-export/src/workspace/index.ts | 2 +- .../src/workspace/relation-exporter.ts | 2 +- .../src/workspace/workspace-exporter.ts | 2 +- .../src/components/Connect.svelte | 6 +- .../src/components/ConnectApp.svelte | 4 +- .../src/components/ConnectProject.svelte | 4 +- .../src/components/GithubIssueHeader.svelte | 2 +- .../components/GithubIssueInfoHeader.svelte | 6 +- .../src/components/GithubRepositories.svelte | 6 +- .../src/components/IntegrationState.svelte | 2 +- .../components/MarkdownDescriptionDiff.svelte | 2 +- .../src/components/PullRequestDiff.svelte | 2 +- .../src/components/PullRequestsView.svelte | 2 +- .../RepositoryPresenterRefEditor.svelte | 2 +- .../src/components/RepositorySelector.svelte | 2 +- .../presenters/GithubReviewPresenter.svelte | 2 +- .../GithubReviewThreadPresenter.svelte | 6 +- ...RequestReviewDecisionValuePresenter.svelte | 4 +- services/github/model-github/src/index.ts | 140 ++++++++--------- services/github/pod-github/src/client.ts | 4 +- .../src/markdown/__tests__/markup.test.ts | 2 +- .../src/markdown/__tests__/textmodel.test.ts | 2 +- services/github/pod-github/src/platform.ts | 10 +- services/github/pod-github/src/server.ts | 2 +- .../src/sync/__tests__/pullrequests.test.ts | 6 +- .../github/pod-github/src/sync/comments.ts | 4 +- .../github/pod-github/src/sync/issueBase.ts | 62 ++++---- services/github/pod-github/src/sync/issues.ts | 14 +- .../pod-github/src/sync/pullrequests.ts | 17 +-- .../github/pod-github/src/sync/repository.ts | 6 +- .../pod-github/src/sync/reviewComments.ts | 14 +- .../pod-github/src/sync/reviewThreads.ts | 42 +++--- .../github/pod-github/src/sync/reviews.ts | 14 +- services/github/pod-github/src/sync/users.ts | 2 +- services/github/pod-github/src/sync/utils.ts | 2 +- services/github/pod-github/src/worker.ts | 34 ++--- .../pod-gmail/src/__tests__/sync.test.ts | 2 +- services/gmail/pod-gmail/src/config.ts | 2 +- services/gmail/pod-gmail/src/gmail.ts | 2 +- .../gmail/pod-gmail/src/gmailController.ts | 4 +- services/gmail/pod-gmail/src/main.ts | 2 +- services/love/src/workspaceClient.ts | 8 +- .../mail-common/src/__tests__/thread.test.ts | 2 +- .../src/__tests__/utils.test.ts | 4 +- .../src/__tests__/worker.test.ts | 4 +- .../pod-events-processor/src/worker.ts | 12 +- services/rating/src/calculator.ts | 18 +-- .../pod-telegram-bot/src/limiter.ts | 4 +- .../pod-telegram-bot/src/start.ts | 3 +- .../pod-telegram-bot/src/telegraf/types.ts | 6 +- .../pod-telegram-bot/src/utils.ts | 24 +-- .../pod-telegram-bot/src/workspace.ts | 4 +- services/worker/src/activities.ts | 2 +- tests/sanity/tests/index.ts | 4 +- tests/sanity/tests/tracker/layout.spec.ts | 2 +- tests/sanity/tests/utils.ts | 2 +- 439 files changed, 1906 insertions(+), 1911 deletions(-) diff --git a/dev/doc-import-tool/src/extract/container.ts b/dev/doc-import-tool/src/extract/container.ts index cee34bfeb0..de6546923b 100644 --- a/dev/doc-import-tool/src/extract/container.ts +++ b/dev/doc-import-tool/src/extract/container.ts @@ -25,7 +25,7 @@ export abstract class Container { return this.title } - abstract getArray (): Container[] + abstract getArray(): Container[] } export class TableContainer extends Container { diff --git a/dev/doc-import-tool/src/extract/types.ts b/dev/doc-import-tool/src/extract/types.ts index 5ec7690388..939c3c450f 100644 --- a/dev/doc-import-tool/src/extract/types.ts +++ b/dev/doc-import-tool/src/extract/types.ts @@ -103,9 +103,7 @@ const tocSection = z.object({ node: tocParagraphSequence }) -const section = z.union([tocSection, genericSection]) - -export type SectionSpec = z.infer +export type SectionSpec = z.infer | z.infer export type TocSectionSpec = z.infer // #endregion diff --git a/dev/tool/src/calendar.ts b/dev/tool/src/calendar.ts index 19444f3bef..349db35fed 100644 --- a/dev/tool/src/calendar.ts +++ b/dev/tool/src/calendar.ts @@ -66,7 +66,7 @@ export async function performCalendarAccountMigrations (db: Db, region: string | const oldNewIds = new Map(allWorkpaces.map((it) => [it.dataId ?? it.uuid, it])) const workspaceProvider: WorkspaceInfoProvider = { getWorkspaceInfo: async (workspaceUuid: WorkspaceUuid) => { - const ws = oldNewIds.get(workspaceUuid as any) ?? byId.get(workspaceUuid as any) + const ws = oldNewIds.get(workspaceUuid) ?? byId.get(workspaceUuid) if (ws == null) { console.error('No workspace found for token', workspaceUuid) return undefined diff --git a/dev/tool/src/db.ts b/dev/tool/src/db.ts index 186d7a6c20..772d770dfc 100644 --- a/dev/tool/src/db.ts +++ b/dev/tool/src/db.ts @@ -463,8 +463,7 @@ export async function moveAccountDbFromMongoToPG ( ctx.info('Starting migration of invites...') const invitesCursor = mdb.invite.findCursor({}) try { - // eslint-disable-next-line @typescript-eslint/no-loss-of-precision - const MAX_INT_8 = 9223372036854775807 + const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER let invitesCount = 0 let invitesBatch: any[] = [] while (await invitesCursor.hasNext()) { @@ -476,11 +475,11 @@ export async function moveAccountDbFromMongoToPG ( delete (invite as any).id - if (invite.expiresOn > MAX_INT_8 || typeof invite.expiresOn !== 'number') { + if (invite.expiresOn > MAX_SAFE_INTEGER || typeof invite.expiresOn !== 'number') { invite.expiresOn = -1 } - if (["USER'", 'ADMIN'].includes(invite.role as any)) { + if (["USER'", 'ADMIN'].includes(invite.role)) { invite.role = AccountRole.User } diff --git a/dev/tool/src/github.ts b/dev/tool/src/github.ts index ad18191747..8c7bf5122d 100644 --- a/dev/tool/src/github.ts +++ b/dev/tool/src/github.ts @@ -145,7 +145,7 @@ export async function performGithubAccountMigrations ( if (systemAccounts.includes(account._id as any)) { ;(socialKeyByAccount as any)[account._id] = account._id } else { - socialKeyByAccount[account._id] = buildSocialIdString(getSocialKeyByOldEmail(account.email)) as any + socialKeyByAccount[account._id] = buildSocialIdString(getSocialKeyByOldEmail(account.email)) } } diff --git a/dev/tool/src/gmail.ts b/dev/tool/src/gmail.ts index 76756ba2b4..9301511692 100644 --- a/dev/tool/src/gmail.ts +++ b/dev/tool/src/gmail.ts @@ -87,7 +87,7 @@ export async function performGmailAccountMigrations ( const oldNewIds = new Map(allWorkpaces.map((it) => [it.dataId ?? it.uuid, it])) const workspaceProvider: WorkspaceInfoProvider = { getWorkspaceInfo: async (workspaceUuid: WorkspaceUuid) => { - const ws = oldNewIds.get(workspaceUuid as any) ?? byId.get(workspaceUuid as any) + const ws = oldNewIds.get(workspaceUuid) ?? byId.get(workspaceUuid) if (ws == null) { console.error('No workspace found for token', workspaceUuid) return undefined @@ -128,7 +128,7 @@ async function migrateGmailIntegrations ( for (const token of allTokens) { try { - const ws = await workspaceProvider.getWorkspaceInfo(token.workspace as any) + const ws = await workspaceProvider.getWorkspaceInfo(token.workspace) if (ws == null) { continue } @@ -222,7 +222,7 @@ async function migrateGmailHistory ( for (const history of allHistories) { try { - const ws = await workspaceProvider.getWorkspaceInfo(history.workspace as any) + const ws = await workspaceProvider.getWorkspaceInfo(history.workspace) if (ws == null) { continue } @@ -295,7 +295,7 @@ async function getSociaKeysMap ( if (systemAccounts.includes(account._id as any)) { ;(socialKeyByAccount as any)[account._id] = account._id } else { - socialKeyByAccount[account._id] = buildSocialIdString(getSocialKeyByOldEmail(account.email)) as any + socialKeyByAccount[account._id] = buildSocialIdString(getSocialKeyByOldEmail(account.email)) } } return socialKeyByAccount diff --git a/dev/tool/src/markup.ts b/dev/tool/src/markup.ts index 6c98c4d9a7..d47d7b4ba8 100644 --- a/dev/tool/src/markup.ts +++ b/dev/tool/src/markup.ts @@ -299,7 +299,7 @@ export async function restoreControlledDocContentForDoc ( } const data = await storageAdapter.read(ctx, wsIds, currentYdocId) - const buffer = Buffer.concat(data as any) + const buffer = Buffer.concat(data) await storageAdapter.put(ctx, wsIds, ydocId, buffer, 'application/ydoc', buffer.length) } catch (err: any) { console.error('failed to restore content for', doc._class, doc._id, err) @@ -359,7 +359,7 @@ export async function restoreMarkupRefsMongo ( try { const buffer = await storageAdapter.read(ctx, wsIds, ydocId) - const ydoc = yDocFromBuffer(Buffer.concat(buffer as any)) + const ydoc = yDocFromBuffer(Buffer.concat(buffer)) const jsonId = await saveCollabJson(ctx, storageAdapter, wsIds, collabId, ydoc) await collection.updateOne({ _id: doc._id }, { $set: { [attributeName]: jsonId } }) diff --git a/dev/tool/src/restoreGithub.ts b/dev/tool/src/restoreGithub.ts index 5da6fd95d5..c40b2a71ae 100644 --- a/dev/tool/src/restoreGithub.ts +++ b/dev/tool/src/restoreGithub.ts @@ -20,7 +20,7 @@ export async function restoreGithubIntegrations (dbUrl: string, dryrun: boolean) const accountClient = getAccountClient(token) const integrationSettings = await pgClient< - { workspaceId: WorkspaceUuid, createdBy: PersonId, installationId: number }[] + { workspaceId: WorkspaceUuid, createdBy: PersonId, installationId: number }[] >` SELECT "workspaceId", "createdBy", data -> 'installationId' "installationId" FROM github diff --git a/dev/tool/src/telegram.ts b/dev/tool/src/telegram.ts index 1590cf0fb1..4e339dd277 100644 --- a/dev/tool/src/telegram.ts +++ b/dev/tool/src/telegram.ts @@ -21,7 +21,6 @@ import { DOMAIN_TELEGRAM } from '@hcengineering/model-telegram' import { getMongoClient, getWorkspaceMongoDB } from '@hcengineering/mongo' import { type StorageAdapter } from '@hcengineering/server-core' import telegram, { type SharedTelegramMessage, type SharedTelegramMessages } from '@hcengineering/telegram' -import { type Document, type UpdateFilter } from 'mongodb' const LastMessages = 'last-msgs' @@ -45,8 +44,8 @@ export async function clearTelegramHistory ( const sharedMessages = await workspaceDB .collection(DOMAIN_TELEGRAM) .find({ - _class: telegram.class.SharedMessages - }) + _class: telegram.class.SharedMessages + }) .toArray() const sharedIds: Ref[] = [] for (const sharedMessage of sharedMessages) { @@ -87,7 +86,7 @@ export async function clearTelegramHistory ( $set: { items: 0 } - } as unknown as UpdateFilter + } ), workspaceDB.collection(DOMAIN_ATTACHMENT).deleteMany({ attachedToClass: telegram.class.Message diff --git a/dev/tool/src/workspace.ts b/dev/tool/src/workspace.ts index e790dbc1fe..01b2ff43c5 100644 --- a/dev/tool/src/workspace.ts +++ b/dev/tool/src/workspace.ts @@ -39,10 +39,10 @@ export async function diffWorkspace (mongoUrl: string, dbName: string, rawTxes: const currentModel = await db .collection(DOMAIN_TX) .find({ - objectSpace: core.space.Model, - modifiedBy: core.account.System, - objectClass: { $ne: 'contact:class:PersonAccount' } // Note: we may keep these transactions in old workspaces for history purposes - }) + objectSpace: core.space.Model, + modifiedBy: core.account.System, + objectClass: { $ne: 'contact:class:PersonAccount' } // Note: we may keep these transactions in old workspaces for history purposes + }) .toArray() const txes = rawTxes.filter((tx) => { diff --git a/foundations/server/packages/kafka/src/index.ts b/foundations/server/packages/kafka/src/index.ts index c025e20f27..9e28fff069 100644 --- a/foundations/server/packages/kafka/src/index.ts +++ b/foundations/server/packages/kafka/src/index.ts @@ -295,7 +295,8 @@ class PlatformQueueConsumerImpl implements ConsumerHandle { await this.doSubscribe() await this.cc.run({ - eachMessage: async ({ topic, message, pause, heartbeat }) => { + eachMessage: async (payload) => { + const { message } = payload const msgKey = message.key?.toString() ?? '' const msgData = JSON.parse(message.value?.toString() ?? '{}') const meta = JSON.parse(message.headers?.meta?.toString() ?? '{}') @@ -313,7 +314,7 @@ class PlatformQueueConsumerImpl implements ConsumerHandle { this.onMessage( ctx, { workspace, value: msgData }, - { heartbeat: () => heartbeat(), pause: () => pause() } + { heartbeat: () => payload.heartbeat(), pause: () => payload.pause() } ), {}, { @@ -323,7 +324,7 @@ class PlatformQueueConsumerImpl implements ConsumerHandle { break } catch (err: any) { this.ctx.error('failed to process message', { err, msgKey, msgData, workspace }) - await heartbeat() + await payload.heartbeat() await new Promise((resolve) => setTimeout(resolve, to * retryDelay)) if (to < maxRetryDelay) { to++ diff --git a/models/bitrix/src/index.ts b/models/bitrix/src/index.ts index fd78aec317..a70beb5ed4 100644 --- a/models/bitrix/src/index.ts +++ b/models/bitrix/src/index.ts @@ -65,18 +65,18 @@ export class TBitrixSyncDoc extends TDoc implements BitrixSyncDoc { @Prop(TypeString(), getEmbeddedLabel('BitrixId')) @ReadOnly() @Hidden() - bitrixId!: string + bitrixId!: string } @Model(bitrix.class.EntityMapping, core.class.Doc, DOMAIN_BITRIX) export class TBitrixEntityMapping extends TDoc implements BitrixEntityMapping { @Prop(TypeRef(core.class.Attribute), core.string.ClassPropertyLabel) - ofClass!: Ref> + ofClass!: Ref> type!: string @Prop(Collection(bitrix.class.FieldMapping), bitrix.string.FieldMapping) - fields!: number + fields!: number bitrixFields!: Fields comments!: boolean @@ -85,16 +85,16 @@ export class TBitrixEntityMapping extends TDoc implements BitrixEntityMapping { @Prop(ArrOf(TypeRef(core.class.Mixin)), core.string.Class) // If specified, will include this mixins in any case. - mixins!: Ref>[] + mixins!: Ref>[] } @Model(bitrix.class.FieldMapping, core.class.Doc, DOMAIN_BITRIX) export class TBitrixFieldMapping extends TAttachedDoc implements BitrixFieldMapping { @Prop(TypeRef(core.class.Attribute), core.string.ClassPropertyLabel) - ofClass!: Ref> + ofClass!: Ref> @Prop(TypeString(), core.string.ClassPropertyLabel) - attributeName!: Ref + attributeName!: Ref bitrixTitle!: string bitrixType!: string diff --git a/models/board/src/index.ts b/models/board/src/index.ts index 36054241d8..e9935b4101 100644 --- a/models/board/src/index.ts +++ b/models/board/src/index.ts @@ -89,30 +89,30 @@ export class TCommonBoardPreference extends TPreference implements CommonBoardPr export class TCard extends TTask implements Card { @Prop(TypeString(), board.string.Title) @Index(IndexKind.FullText) - title!: string + title!: string @Prop(TypeBoolean(), board.string.IsArchived) - isArchived?: boolean + isArchived?: boolean @Prop(TypeMarkup(), board.string.Description) @Index(IndexKind.FullText) - description!: Markup + description!: Markup @Prop(TypeString(), board.string.Location) @Index(IndexKind.FullText) - location?: string + location?: string @Prop(TypeRef(contact.mixin.Employee), board.string.Assignee) declare assignee: Ref | null @Prop(ArrOf(TypeRef(contact.mixin.Employee)), board.string.Members) - members?: Ref[] + members?: Ref[] @Prop(TypeCardCover(), board.string.Cover) - cover?: CardCover + cover?: CardCover @Prop(TypeDate(), task.string.StartDate) - startDate!: Timestamp | null + startDate!: Timestamp | null @Prop(TypeRef(core.class.Status), task.string.TaskState, { _id: board.attribute.State }) declare status: Ref diff --git a/models/calendar/src/index.ts b/models/calendar/src/index.ts index 887a29048f..c4be096ab5 100644 --- a/models/calendar/src/index.ts +++ b/models/calendar/src/index.ts @@ -104,44 +104,44 @@ export class TEvent extends TAttachedDoc implements Event { declare space: Ref @Prop(TypeRef(calendar.class.Calendar), calendar.string.Calendar) - calendar!: Ref + calendar!: Ref eventId!: string @Prop(TypeString(), calendar.string.Title) @Index(IndexKind.FullText) - title!: string + title!: string @Prop(TypeMarkup(), calendar.string.Description) @Index(IndexKind.FullText) - description!: Markup + description!: Markup @Prop(TypeString(), calendar.string.Location, { icon: calendar.icon.Location }) @Index(IndexKind.FullText) - location?: string + location?: string @Prop(TypeBoolean(), calendar.string.AllDay) @ReadOnly() - allDay!: boolean + allDay!: boolean @Prop(TypeDate(DateRangeMode.DATETIME), calendar.string.Date) - date!: Timestamp + date!: Timestamp @Prop(TypeDate(DateRangeMode.DATETIME), calendar.string.DueTo) - dueDate!: Timestamp + dueDate!: Timestamp @Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: number + attachments?: number @Prop(ArrOf(TypeRef(contact.class.Contact)), calendar.string.Participants) - participants!: Ref[] + participants!: Ref[] @Prop(ArrOf(TypeTimestamp()), calendar.string.Reminders) - reminders?: number[] + reminders?: number[] @Prop(ArrOf(TypeString()), calendar.string.ExternalParticipants) @Index(IndexKind.Indexed) - externalParticipants?: string[] + externalParticipants?: string[] access!: AccessLevel @@ -150,7 +150,7 @@ export class TEvent extends TAttachedDoc implements Event { timeZone?: string @Index(IndexKind.Indexed) - user!: PersonId + user!: PersonId blockTime!: boolean } diff --git a/models/card/src/index.ts b/models/card/src/index.ts index 8726893bb5..9b63775b1e 100644 --- a/models/card/src/index.ts +++ b/models/card/src/index.ts @@ -99,10 +99,10 @@ export class TMasterTag extends TClass implements MasterTag { removed?: boolean @Prop(TypeBoolean(), card.string.SingleColumn) - singleColumn?: boolean + singleColumn?: boolean @Prop(TypeBoolean(), card.string.BaseType) - baseType?: boolean + baseType?: boolean } @Model(card.class.Tag, core.class.Mixin) @@ -124,36 +124,36 @@ export class TCard extends TDoc implements Card { @Prop(TypeString(), core.string.Name) @Index(IndexKind.FullText) - title!: string + title!: string @Prop(TypeCollaborativeDoc(), card.string.Content) - content!: MarkupBlobRef + content!: MarkupBlobRef blobs!: Blobs @Prop(TypeRef(card.class.Card), card.string.Parent) - parent?: Ref | null + parent?: Ref | null @Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: number + attachments?: number @Prop(TypeRank(), core.string.Rank) @Hidden() - rank!: Rank + rank!: Rank @Prop(Collection(time.class.ToDo), getEmbeddedLabel('Action Items')) - todos?: CollectionSize + todos?: CollectionSize @Prop(TypeString(), view.string.Icon) @Hidden() - icon?: Asset + icon?: Asset @Prop(TypeNumber(), view.string.Color) @Hidden() - color?: number + color?: number @Hidden() - readonly?: boolean + readonly?: boolean children?: number @@ -161,17 +161,17 @@ export class TCard extends TDoc implements Card { @Hidden() @ReadOnly() - peerId?: string + peerId?: string @Prop(Collection(chunter.class.ChatMessage), chunter.string.Comments) - comments?: number + comments?: number } @Model(card.class.CardSpace, core.class.TypedSpace, DOMAIN_SPACE) @UX(core.string.Space) export class TCardSpace extends TTypedSpace implements CardSpace { @Prop(ArrOf(TypeRef(card.class.MasterTag)), card.string.MasterTags) - types!: Ref[] + types!: Ref[] } @Model(card.class.MasterTagEditorSection, core.class.Doc, DOMAIN_MODEL) diff --git a/models/contact/src/index.ts b/models/contact/src/index.ts index 0b984a16f1..e749843cd9 100644 --- a/models/contact/src/index.ts +++ b/models/contact/src/index.ts @@ -326,7 +326,7 @@ export class TWorkspaceMemberStatus extends TDoc implements WorkspaceMemberStatu clearAt?: Timestamp } -export function createModel(builder: Builder): void { +export function createModel (builder: Builder): void { builder.createModel( TAvatarProvider, TChannelProvider, diff --git a/models/controlled-documents/src/index.ts b/models/controlled-documents/src/index.ts index 60d3bbc8af..a093efcc28 100644 --- a/models/controlled-documents/src/index.ts +++ b/models/controlled-documents/src/index.ts @@ -80,7 +80,7 @@ import { export { documentsId } from '@hcengineering/controlled-documents/src/index' export * from './types' -function defineRelationMetadata(builder: Builder): void { +function defineRelationMetadata (builder: Builder): void { const rel = ( ref: Ref>, field: string, @@ -112,7 +112,7 @@ function defineRelationMetadata(builder: Builder): void { rel(documents.class.ProjectDocument, 'document', documents.class.Document, 'forward') } -export function createModel(builder: Builder): void { +export function createModel (builder: Builder): void { builder.createModel( TDocumentSpace, TDocumentSpaceType, @@ -1121,7 +1121,7 @@ export function createModel(builder: Builder): void { documents.action.OpenDocumentInNewTab ) - function createPrintAction(target: Ref>, id?: Ref>): void { + function createPrintAction (target: Ref>, id?: Ref>): void { createAction( builder, { @@ -1179,7 +1179,7 @@ export function createModel(builder: Builder): void { defineTextActions(builder) } -export function defineNotifications(builder: Builder): void { +export function defineNotifications (builder: Builder): void { builder.mixin(documents.class.ControlledDocument, core.class.Class, activity.mixin.ActivityDoc, {}) builder.createDoc(activity.class.ActivityExtension, core.space.Model, { @@ -1365,7 +1365,7 @@ export function defineNotifications(builder: Builder): void { ) } -export function defineSearch(builder: Builder): void { +export function defineSearch (builder: Builder): void { builder.createDoc(core.class.FullTextSearchContext, core.space.Model, { toClass: documents.class.Document }) @@ -1391,7 +1391,7 @@ export function defineSearch(builder: Builder): void { ) } -export function defineTextActions(builder: Builder): void { +export function defineTextActions (builder: Builder): void { // Comment category builder.createDoc(textEditor.class.TextEditorAction, core.space.Model, { tags: ['text'], diff --git a/models/controlled-documents/src/types.ts b/models/controlled-documents/src/types.ts index ec58da6fd3..695f1ae266 100644 --- a/models/controlled-documents/src/types.ts +++ b/models/controlled-documents/src/types.ts @@ -116,7 +116,7 @@ export class TDocumentSpaceType extends TSpaceType implements DocumentSpaceType declare targetClass: Ref> @Prop(TypeBoolean(), getEmbeddedLabel('Projects')) - projects!: boolean + projects!: boolean } @Model(documents.class.DocumentSpaceTypeDescriptor, core.class.SpaceTypeDescriptor) @@ -140,23 +140,23 @@ export class TProject extends TDoc implements Project { @Prop(TypeString(), documents.string.Name) @Index(IndexKind.FullText) @ReadOnly() - name!: string + name!: string @Prop(TypeBoolean(), documents.string.Readonly) @ReadOnly() @Hidden() - readonly!: boolean + readonly!: boolean } @Model(documents.class.DocumentMeta, core.class.Doc, DOMAIN_DOCUMENTS) @UX(documents.string.ControlledDocument, documents.icon.Document) export class TDocumentMeta extends TDoc implements DocumentMeta { @Prop(Collection(documents.class.Document), documents.string.Documents) - documents!: CollectionSize + documents!: CollectionSize @Prop(TypeString(), documents.string.Title) @Index(IndexKind.FullText) - title!: string + title!: string } @Model(documents.class.ProjectMeta, core.class.Doc, DOMAIN_DOCUMENTS) @@ -164,31 +164,31 @@ export class TDocumentMeta extends TDoc implements DocumentMeta { export class TProjectMeta extends TDoc implements ProjectMeta { @Prop(TypeRef(documents.class.Project), documents.string.Project) @Index(IndexKind.Indexed) - project!: Ref + project!: Ref @Prop(TypeRef(documents.class.DocumentMeta), documents.string.Document) @Index(IndexKind.Indexed) @Hidden() - meta!: Ref + meta!: Ref @Prop(ArrOf(TypeRef(documents.class.DocumentMeta)), documents.string.Path) - path!: Ref[] + path!: Ref[] @Prop(TypeRef(documents.class.DocumentMeta), documents.string.Parent) @Index(IndexKind.Indexed) - parent!: Ref + parent!: Ref // @Prop(TypeRef(documents.class.Document), documents.string.Document) // @Index(IndexKind.Indexed) // head!: Ref @Prop(Collection(documents.class.ProjectDocument), documents.string.Documents) - documents!: CollectionSize + documents!: CollectionSize @Prop(TypeRank(), core.string.Rank) @Index(IndexKind.Indexed) @Hidden() - rank!: Rank + rank!: Rank } @Model(documents.class.ProjectDocument, core.class.AttachedDoc, DOMAIN_DOCUMENTS) @@ -210,15 +210,15 @@ export class TProjectDocument extends TAttachedDoc implements ProjectDocument { @Prop(TypeRef(documents.class.Project), documents.string.Project) @Index(IndexKind.Indexed) - project!: Ref + project!: Ref @Prop(TypeRef(documents.class.Project), documents.string.Project) @Hidden() - initial!: Ref + initial!: Ref @Prop(TypeRef(documents.class.Document), documents.string.Document) @Index(IndexKind.Indexed) - document!: Ref + document!: Ref } @Model(documents.class.Document, core.class.Doc, DOMAIN_DOCUMENTS) @@ -231,64 +231,64 @@ export class TDocument extends TDoc implements Document { @Prop(TypeRef(documents.mixin.DocumentTemplate), documents.string.DocumentTemplate) @Hidden() - template?: Ref + template?: Ref @Prop(TypeString(), documents.string.Title) @Index(IndexKind.FullText) - title!: string + title!: string @Prop(TypeString(), documents.string.Title) @Index(IndexKind.FullText) - code!: string + code!: string @Prop(TypeString(), documents.string.Code) @Index(IndexKind.FullText) - prefix!: string + prefix!: string @Prop(TypeNumber(), documents.string.Number) @Hidden() - seqNumber!: number + seqNumber!: number @Prop(TypeNumber(), documents.string.Major) - major!: number + major!: number @Prop(TypeNumber(), documents.string.Minor) - minor!: number + minor!: number @Prop(TypeRef(documents.class.DocumentCategory), documents.string.Category) - category?: Ref + category?: Ref @Prop(TypeRef(contact.mixin.Employee), documents.string.Author) - author?: Ref + author?: Ref @Prop(TypeRef(contact.mixin.Employee), documents.string.Owner) - owner?: Ref + owner?: Ref @Prop(TypeDocumentState(), documents.string.Status) - state!: DocumentState + state!: DocumentState @Prop(TypeCollaborativeDoc(), documents.string.CollaborativeDocument) - content!: MarkupBlobRef | null + content!: MarkupBlobRef | null @Prop(Collection(tags.class.TagReference), documents.string.Labels) - labels?: CollectionSize + labels?: CollectionSize @Prop(TypeString(), documents.string.MetaAbstract) @Index(IndexKind.FullText) - abstract?: string + abstract?: string @Prop(TypeNumber(), documents.string.Number) @Hidden() - commentSequence!: number + commentSequence!: number @Prop(Collection(documents.class.DocumentComment), chunter.string.Comments) - comments?: CollectionSize + comments?: CollectionSize @Prop(Collection(documents.class.DocumentSnapshot), documents.string.Snapshots) - snapshots?: CollectionSize + snapshots?: CollectionSize @Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: CollectionSize + attachments?: CollectionSize } @Model(documents.class.HierarchyDocument, documents.class.Document) @@ -297,16 +297,16 @@ export class THierarchyDocument extends TDocument implements HierarchyDocument { @Prop(TypeRef(documents.class.DocumentMeta), core.string.AttachedTo) @Index(IndexKind.Indexed) @Hidden() - attachedTo!: Ref + attachedTo!: Ref @Prop(TypeRef(core.class.Class), core.string.AttachedToClass) @Index(IndexKind.Indexed) @Hidden() - attachedToClass!: Ref> + attachedToClass!: Ref> @Prop(TypeString(), core.string.Collection) @Hidden() - collection!: 'documents' + collection!: 'documents' } @Mixin(documents.mixin.DocumentTemplate, documents.class.Document) @@ -314,44 +314,44 @@ export class THierarchyDocument extends TDocument implements HierarchyDocument { export class TDocumentTemplate extends TDocument implements DocumentTemplate { @Prop(TypeNumber(), core.string.Collection) @Hidden() - sequence!: number + sequence!: number @Prop(TypeString(), documents.string.DocumentPrefix) @Index(IndexKind.FullText) - docPrefix!: string + docPrefix!: string } @Mixin(documents.mixin.DocumentTraining, documents.class.Document) @UX(training.string.Training, training.icon.Training) export class TDocumentTraining extends TDocument implements DocumentTraining { @Prop(TypeBoolean(), documents.string.DocumentTrainingEnabled, { defaultValue: false }) - enabled: boolean = false + enabled: boolean = false @Prop(TypeRef(training.class.Training), training.string.Training, { defaultValue: null }) - training: Ref | null = null + training: Ref | null = null @Prop(ArrOf(TypeRef(core.class.Role)), training.string.TrainingRequestRoles, { defaultValue: [] }) - roles: Array> = [] + roles: Array> = [] @Prop(ArrOf(TypeRef(contact.mixin.Employee)), training.string.TrainingRequestTrainees, { defaultValue: [] }) - trainees: TrainingRequest['trainees'] = [] + trainees: TrainingRequest['trainees'] = [] @Prop(TypeNumber(), training.string.TrainingRequestMaxAttempts, { defaultValue: null }) - maxAttempts: TrainingRequest['maxAttempts'] = null + maxAttempts: TrainingRequest['maxAttempts'] = null @Prop(TypeNumber(), documents.string.DocumentTrainingDueDays, { defaultValue: null }) - dueDays: number | null = null + dueDays: number | null = null } @Mixin(documents.mixin.DocumentAttachment, attachment.class.Attachment) export class TDocumentAttachment extends TAttachment implements DocumentAttachment { @Prop(TypeString(), getEmbeddedLabel('State')) @Hidden() - state?: DocumentAttachmentState + state?: DocumentAttachmentState @Prop(TypeRecord(), getEmbeddedLabel('DeletedIn')) @Hidden() - deletedIn?: { major: number, minor: number } + deletedIn?: { major: number, minor: number } } @Model(documents.class.DocumentCategory, core.class.Doc, DOMAIN_DOCUMENTS) @@ -364,18 +364,18 @@ export class TDocumentCategory extends TDoc implements DocumentCategory { @Prop(TypeString(), documents.string.Code) @Index(IndexKind.FullText) - code!: string + code!: string @Prop(TypeString(), documents.string.Title) @Index(IndexKind.FullText) - title!: string + title!: string @Prop(TypeMarkup(), documents.string.Description) @Index(IndexKind.FullText) - description?: string + description?: string @Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: CollectionSize + attachments?: CollectionSize } @Model(documents.class.ControlledDocument, documents.class.HierarchyDocument) @@ -390,39 +390,39 @@ export class TDocumentCategory extends TDoc implements DocumentCategory { export class TControlledDocument extends THierarchyDocument implements ControlledDocument { @Prop(Collection(documents.class.DocumentRequest), documents.string.Requests) @Hidden() - requests!: CollectionSize + requests!: CollectionSize @Prop(ArrOf(TypeRef(contact.mixin.Employee)), documents.string.Reviewers) - reviewers!: Ref[] + reviewers!: Ref[] @Prop(ArrOf(TypeRef(contact.mixin.Employee)), documents.string.Approvers) - approvers!: Ref[] + approvers!: Ref[] @Prop(ArrOf(TypeRef(contact.mixin.Employee)), documents.string.ExternalApprovers) - externalApprovers!: Ref[] + externalApprovers!: Ref[] @Prop(ArrOf(TypeRef(contact.mixin.Employee)), documents.string.CoAuthors) - coAuthors!: Ref[] + coAuthors!: Ref[] @Prop(TypeNumber(), documents.string.ReviewInterval) - reviewInterval?: number + reviewInterval?: number @Prop(TypeControlledDocumentState(), documents.string.ControlledStatus) - controlledState?: ControlledDocumentState + controlledState?: ControlledDocumentState @Prop(TypeDate(DateRangeMode.DATE), documents.string.EffectiveDate) - effectiveDate?: Timestamp + effectiveDate?: Timestamp @Prop(TypeDate(DateRangeMode.DATE), documents.string.PlannedEffectiveDate) @Hidden() - plannedEffectiveDate!: Timestamp + plannedEffectiveDate!: Timestamp @Prop(TypeRef(documents.class.Document), documents.string.ChangeControl) @Hidden() - changeControl!: Ref + changeControl!: Ref @Prop(Collection(time.class.ToDo), getEmbeddedLabel('Action Items')) - todos?: CollectionSize + todos?: CollectionSize } @Model(documents.class.ChangeControl, core.class.Doc, DOMAIN_DOCUMENTS) @@ -430,50 +430,50 @@ export class TControlledDocument extends THierarchyDocument implements Controlle export class TChangeControl extends TDoc implements ChangeControl { @Prop(TypeString(), documents.string.Description) @Index(IndexKind.FullText) - description!: string + description!: string @Prop(TypeString(), documents.string.Reason) @Index(IndexKind.FullText) - reason!: string + reason!: string @Prop(TypeString(), documents.string.ImpactAnalysis) - impact!: string + impact!: string @Prop(ArrOf(TypeRef(documents.class.Document)), documents.string.ImpactedDocuments) - impactedDocuments!: Ref[] + impactedDocuments!: Ref[] } @Model(documents.class.DocumentSnapshot, core.class.AttachedDoc, DOMAIN_DOCUMENTS) @UX(documents.string.Snapshot) export class TDocumentSnapshot extends TAttachedDoc implements DocumentSnapshot { @Prop(TypeString(), documents.string.Name) - name?: string + name?: string @Prop(TypeCollaborativeDoc(), documents.string.CollaborativeDocument) @Hidden() - content!: MarkupBlobRef | null + content!: MarkupBlobRef | null @Prop(TypeDocumentState(), documents.string.Status) - state?: DocumentState + state?: DocumentState } @Model(documents.class.ControlledDocumentSnapshot, documents.class.DocumentSnapshot) @UX(documents.string.ControlledSnapshot) export class TControlledDocumentSnapshot extends TDocumentSnapshot implements ControlledDocumentSnapshot { @Prop(TypeControlledDocumentState(), documents.string.Status) - controlledState!: ControlledDocumentState + controlledState!: ControlledDocumentState } @Model(documents.class.DocumentComment, chunter.class.ChatMessage) export class TDocumentComment extends TChatMessage implements DocumentComment { @Prop(TypeString(), documents.string.ID) - nodeId?: string + nodeId?: string @Prop(TypeBoolean(), documents.string.Resolve) - resolved?: boolean + resolved?: boolean @Prop(TypeNumber(), documents.string.Index) - index?: number + index?: number } @Model(documents.class.DocumentRequest, request.class.Request) diff --git a/models/document/src/index.ts b/models/document/src/index.ts index 380a7efffd..4bb77741d3 100644 --- a/models/document/src/index.ts +++ b/models/document/src/index.ts @@ -71,13 +71,13 @@ export const DOMAIN_DOCUMENT = 'document' as Domain export class TDocument extends TDoc implements Document, Todoable { @Prop(TypeString(), document.string.Name) @Index(IndexKind.FullText) - title!: string + title!: string @Prop(TypeCollaborativeDoc(), document.string.Document) - content!: MarkupBlobRef | null + content!: MarkupBlobRef | null @Prop(TypeRef(document.class.Document), document.string.ParentDocument) - parent!: Ref + parent!: Ref @Prop(TypeRef(core.class.Space), core.string.Space) @Index(IndexKind.Indexed) @@ -86,41 +86,41 @@ export class TDocument extends TDoc implements Document, Todoable { @Prop(TypeAccountUuid(), document.string.LockedBy) @Hidden() - lockedBy?: AccountUuid + lockedBy?: AccountUuid @Prop(Collection(attachment.class.Embedding), attachment.string.Embeddings) - embeddings?: number + embeddings?: number @Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: number + attachments?: number @Prop(Collection(chunter.class.ChatMessage), chunter.string.Comments) - comments?: number + comments?: number @Prop(Collection(tags.class.TagReference), document.string.Labels) - labels?: number + labels?: number @Prop(Collection(activity.class.ActivityReference), document.string.Backlinks) @Hidden() - references!: number + references!: number @Prop(TypeString(), document.string.Icon) @Hidden() @Index(IndexKind.FullText) - icon?: Asset + icon?: Asset @Prop(TypeNumber(), document.string.Color) @Hidden() @Index(IndexKind.FullText) - color?: number + color?: number @Prop(Collection(time.class.ToDo), getEmbeddedLabel('Action Items')) - todos?: CollectionSize + todos?: CollectionSize @Prop(TypeRank(), core.string.Rank) @Index(IndexKind.Indexed) @Hidden() - rank!: Rank + rank!: Rank } @Model(document.class.DocumentSnapshot, core.class.Doc, DOMAIN_DOCUMENT) @@ -133,14 +133,14 @@ export class TDocumentSnapshot extends TDoc implements DocumentSnapshot { @Prop(TypeString(), document.string.Name) @Index(IndexKind.FullText) - title!: string + title!: string @Prop(TypeCollaborativeDoc(), document.string.Document) @ReadOnly() - content!: MarkupBlobRef + content!: MarkupBlobRef @Prop(TypeRef(document.class.Document), document.string.ParentDocument) - parent!: Ref + parent!: Ref } @Model(document.class.Teamspace, core.class.TypedSpace) diff --git a/models/drive/src/index.ts b/models/drive/src/index.ts index 35b23ed18d..e7dcda3c89 100644 --- a/models/drive/src/index.ts +++ b/models/drive/src/index.ts @@ -92,23 +92,23 @@ export class TResource extends TDoc implements Resource { @Prop(TypeString(), drive.string.Name) @Index(IndexKind.FullText) - title!: string + title!: string @Prop(TypeRef(drive.class.Resource), drive.string.Parent) @Index(IndexKind.Indexed) @ReadOnly() - parent!: Ref + parent!: Ref @Prop(TypeRef(drive.class.Resource), drive.string.Path) @ReadOnly() - path!: Ref[] + path!: Ref[] @Prop(Collection(chunter.class.ChatMessage), chunter.string.Comments) - comments?: number + comments?: number @Prop(TypeRef(drive.class.FileVersion), drive.string.Version) @ReadOnly() - file?: Ref + file?: Ref } @Model(drive.class.Folder, drive.class.Resource, DOMAIN_DRIVE) @@ -144,11 +144,11 @@ export class TFile extends TResource implements File { @Prop(Collection(drive.class.FileVersion), drive.string.FileVersion) @ReadOnly() - versions!: CollectionSize + versions!: CollectionSize @Prop(TypeFileVersion(), drive.string.Version) @ReadOnly() - version!: number + version!: number } @Model(drive.class.FileVersion, core.class.AttachedDoc, DOMAIN_DRIVE) @@ -170,31 +170,31 @@ export class TFileVersion extends TAttachedDoc implements FileVersion { @Prop(TypeString(), drive.string.Name) @Index(IndexKind.FullText) - title!: string + title!: string @Prop(TypeRef(core.class.Blob), drive.string.File) @ReadOnly() - file!: Ref + file!: Ref @Prop(TypeFileSize(), drive.string.Size) @ReadOnly() - size!: number + size!: number @Prop(TypeString(), drive.string.ContentType) @ReadOnly() - type!: string + type!: string @Prop(TypeTimestamp(), drive.string.LastModified) @ReadOnly() - lastModified!: number + lastModified!: number @Prop(TypeRecord(), drive.string.Metadata) @ReadOnly() - metadata?: Record + metadata?: Record @Prop(TypeFileVersion(), drive.string.Version) @ReadOnly() - version!: number + version!: number } function defineTypes (builder: Builder): void { diff --git a/models/emoji/src/models.ts b/models/emoji/src/models.ts index 9993f2ec66..052bdc4b57 100644 --- a/models/emoji/src/models.ts +++ b/models/emoji/src/models.ts @@ -24,9 +24,9 @@ export const DOMAIN_EMOJI = 'emoji' as Domain export class TCustomEmoji extends TDoc implements CustomEmoji { @Prop(TypeString(), emojiPlugin.string.Shortcode) @ReadOnly() - shortcode!: string + shortcode!: string @Prop(TypeRef(core.class.Blob), emojiPlugin.string.Image) @ReadOnly() - image!: Ref + image!: Ref } diff --git a/models/gmail/src/index.ts b/models/gmail/src/index.ts index 9f3ad61beb..b974c34f7e 100644 --- a/models/gmail/src/index.ts +++ b/models/gmail/src/index.ts @@ -60,43 +60,43 @@ export class TMessage extends TAttachedDoc implements Message { declare attachedToClass: Ref> @Prop(TypeString(), gmail.string.MessageID) - messageId!: string + messageId!: string @Prop(TypeString(), gmail.string.ReplyTo) @Index(IndexKind.FullText) - replyTo?: string + replyTo?: string @Prop(TypeString(), gmail.string.From) @Index(IndexKind.FullText) - from!: string + from!: string @Prop(TypeString(), gmail.string.To) @Index(IndexKind.FullText) - to!: string + to!: string @Prop(TypeString(), gmail.string.Subject) @Index(IndexKind.FullText) - subject!: string + subject!: string @Prop(TypeString(), gmail.string.Message) @Index(IndexKind.FullText) - content!: string + content!: string @Prop(TypeString(), gmail.string.Message) @Index(IndexKind.FullText) - textContent!: string + textContent!: string @Prop(ArrOf(TypeString()), gmail.string.Copy) - copy?: string[] + copy?: string[] @Prop(TypeBoolean(), gmail.string.Incoming) - incoming!: boolean + incoming!: boolean @Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: number + attachments?: number @Prop(TypeTimestamp(), core.string.Modified) - sendOn!: Timestamp + sendOn!: Timestamp } @Model(gmail.class.NewMessage, core.class.Doc, DOMAIN_GMAIL) @@ -104,37 +104,37 @@ export class TMessage extends TAttachedDoc implements Message { export class TNewMessage extends TDoc implements NewMessage { @Prop(TypeString(), gmail.string.ReplyTo) @Index(IndexKind.FullText) - replyTo?: string + replyTo?: string @Prop(TypeString(), gmail.string.To) @Index(IndexKind.FullText) - to!: string + to!: string @Prop(TypeString(), gmail.string.Subject) @Index(IndexKind.FullText) - subject!: string + subject!: string @Prop(TypeString(), gmail.string.Message) @Index(IndexKind.FullText) - content!: string + content!: string @Prop(TypeString(), gmail.string.Status) - status!: 'new' | 'sent' | 'error' + status!: 'new' | 'sent' | 'error' @Prop(TypeString(), gmail.string.Status) - error?: string + error?: string @Prop(ArrOf(TypeString()), gmail.string.Copy) - copy?: string[] + copy?: string[] @Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: number + attachments?: number } @Model(gmail.class.SharedMessages, core.class.AttachedDoc, DOMAIN_GMAIL) export class TSharedMessages extends TAttachedDoc implements SharedMessages { @Prop(ArrOf(TypeSharedMessage()), gmail.string.Messages) - messages!: SharedMessage[] + messages!: SharedMessage[] } export function createModel (builder: Builder): void { diff --git a/models/gmail/src/migration.ts b/models/gmail/src/migration.ts index 90abbac9ed..c6787fa702 100644 --- a/models/gmail/src/migration.ts +++ b/models/gmail/src/migration.ts @@ -33,7 +33,7 @@ async function migrateSettings (client: MigrationClient): Promise { DOMAIN_PREFERENCE, { _class: 'notification:class:NotificationSetting' as Ref>, - attachedTo: 'notification:providers:EmailNotification' as Ref + attachedTo: 'notification:providers:EmailNotification' }, { _class: notification.class.NotificationTypeSetting, diff --git a/models/hr/src/index.ts b/models/hr/src/index.ts index b438dc44f4..7f86bed753 100644 --- a/models/hr/src/index.ts +++ b/models/hr/src/index.ts @@ -136,7 +136,7 @@ export class TTzDate extends TType { /** * @public */ -export function TypeTzDate(): Type { +export function TypeTzDate (): Type { return { _class: hr.class.TzDate, label: core.string.Timestamp } } @@ -185,7 +185,7 @@ export class TPublicHoliday extends TDoc implements PublicHoliday { department!: Ref } -export function createModel(builder: Builder): void { +export function createModel (builder: Builder): void { builder.createModel(TDepartment, TRequest, TRequestType, TPublicHoliday, TStaff, TTzDate) builder.createDoc( diff --git a/models/lead/src/types.ts b/models/lead/src/types.ts index 2709c70835..3595948148 100644 --- a/models/lead/src/types.ts +++ b/models/lead/src/types.ts @@ -57,13 +57,13 @@ export { default } from './plugin' export class TFunnel extends TProject implements Funnel { @Prop(TypeMarkup(), lead.string.FullDescription) @Index(IndexKind.FullText) - fullDescription?: string + fullDescription?: string @Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: number + attachments?: number @Prop(Collection(chunter.class.ChatMessage), chunter.string.Comments) - comments?: number + comments?: number } @Model(lead.class.Lead, task.class.Task) @@ -74,11 +74,11 @@ export class TLead extends TTask implements Lead { declare attachedTo: Ref @Prop(TypeDate(), task.string.StartDate) - startDate!: Timestamp | null + startDate!: Timestamp | null @Prop(TypeString(), lead.string.Title) @Index(IndexKind.FullText) - title!: string + title!: string @Prop(TypeRef(contact.mixin.Employee), lead.string.Assignee) declare assignee: Ref | null @@ -93,11 +93,11 @@ export class TLead extends TTask implements Lead { @UX(lead.string.Customer, lead.icon.LeadApplication, undefined, undefined, undefined, lead.string.Customers) export class TCustomer extends TContact implements Customer { @Prop(Collection(lead.class.Lead), lead.string.Leads) - leads?: number + leads?: number @Prop(TypeCollaborativeDoc(), lead.string.Description) @Index(IndexKind.FullText) - customerDescription!: MarkupBlobRef | null + customerDescription!: MarkupBlobRef | null } @Mixin(lead.mixin.DefaultFunnelTypeData, lead.class.Funnel) diff --git a/models/love/src/index.ts b/models/love/src/index.ts index 4ab0c9b10b..ee2d48932f 100644 --- a/models/love/src/index.ts +++ b/models/love/src/index.ts @@ -338,7 +338,7 @@ export class TUserMeetingInvite extends TDoc implements UserMeetingInvite { export default love -export function createModel(builder: Builder): void { +export function createModel (builder: Builder): void { builder.createModel( TRoom, TFloor, diff --git a/models/process/src/index.ts b/models/process/src/index.ts index 4017d9373e..a3e7632a41 100644 --- a/models/process/src/index.ts +++ b/models/process/src/index.ts @@ -89,31 +89,31 @@ const DOMAIN_PROCESS_LOG = 'process-log' as Domain @Model(process.class.Process, core.class.Doc, DOMAIN_MODEL) export class TProcess extends TDoc implements Process { @Prop(TypeString(), core.string.Name) - name!: string + name!: string @Prop(TypeString(), core.string.Description) - description!: string + description!: string @Prop(TypeRef(card.class.MasterTag), card.string.MasterTag) - masterTag!: Ref + masterTag!: Ref @Prop(TypeRef(process.class.State), process.string.NewState) - initState!: Ref + initState!: Ref @Prop(TypeBoolean(), process.string.ParallelExecutionForbidden) - parallelExecutionForbidden?: boolean + parallelExecutionForbidden?: boolean @Prop(TypeBoolean(), process.string.StartAutomatically) - autoStart: boolean | undefined + autoStart: boolean | undefined @Prop(TypeBoolean(), process.string.AutomationOnly) - automationOnly: boolean | undefined + automationOnly: boolean | undefined @Prop(TypeRecord(), process.string.RequiredSlots) - requiredSlots?: Record + requiredSlots?: Record @Prop(TypeRecord(), process.string.Bindings) - bindings?: Record + bindings?: Record context!: Record } @@ -140,64 +140,64 @@ export class TTrigger extends TDoc implements Trigger { @Model(process.class.Transition, core.class.Doc, DOMAIN_MODEL) export class TTransition extends TDoc implements Transition { @Prop(TypeRef(process.class.Process), process.string.Process) - process!: Ref + process!: Ref @Prop(TypeRef(process.class.State), process.string.From) - from!: Ref | null + from!: Ref | null @Prop(TypeRef(process.class.State), process.string.To) - to!: Ref + to!: Ref @Prop(TypeAny(process.component.ActionsPresenter, process.string.Actions), process.string.Actions) - actions!: Step[] + actions!: Step[] @Prop(TypeRef(process.class.Trigger), process.string.Trigger) - trigger!: Ref + trigger!: Ref triggerParams!: Record @Prop(TypeRank(), core.string.Rank) @Hidden() - rank!: Rank + rank!: Rank } @Model(process.class.ExecutionLog, core.class.Doc, DOMAIN_PROCESS_LOG) export class TExecutionLog extends TDoc implements ExecutionLog { @Prop(TypeRef(process.class.Execution), process.string.Execution) - execution!: Ref + execution!: Ref @Prop(TypeRef(process.class.Process), process.string.Process) - process!: Ref + process!: Ref @Prop(TypeRef(card.class.Card), card.string.Card) - card!: Ref + card!: Ref @Prop(TypeRef(process.class.Transition), process.string.Transition) - transition?: Ref + transition?: Ref @Prop(TypeAny(process.component.LogActionPresenter, process.string.LogAction), process.string.LogAction) - action!: ExecutionLogAction + action!: ExecutionLogAction } @Model(process.class.Execution, core.class.Doc, DOMAIN_PROCESS) export class TExecution extends TDoc implements Execution { @Prop(TypeRef(process.class.Process), process.string.Process) @ReadOnly() - process!: Ref + process!: Ref @Prop(TypeRef(process.class.State), process.string.Step) @ReadOnly() - currentState!: Ref + currentState!: Ref rollback!: Tx[][] @Prop(TypeRef(card.class.Card), card.string.Card) @ReadOnly() - card!: Ref + card!: Ref @Prop(TypeAny(process.component.ErrorPresenter, process.string.Error), process.string.Error) @ReadOnly() - error?: ExecutionError[] | null + error?: ExecutionError[] | null parentId?: Ref @@ -212,30 +212,30 @@ export class TExecution extends TDoc implements Execution { @UX(process.string.ToDo) export class TProcessToDo extends TToDo implements ProcessToDo { @Prop(TypeRef(process.class.Execution), process.string.Execution) - execution!: Ref + execution!: Ref @Prop(TypeBoolean(), process.string.Rollback) - withRollback!: boolean + withRollback!: boolean @Prop(TypeBoolean(), process.string.AskRequired) - askRequired?: boolean + askRequired?: boolean } @Model(process.class.ApproveRequest, process.class.ProcessToDo) @UX(process.string.ApproveRequest) export class TApproveRequest extends TProcessToDo implements ApproveRequest { @Prop(TypeBoolean(), process.string.IsApproved) - approved?: boolean + approved?: boolean @Prop(TypeString(), process.string.RejectionReason) - reason?: string + reason?: string group!: string card!: Ref @Prop(TypeString(), process.string.ActionType) - actionType?: 'approve' | 'review' + actionType?: 'approve' | 'review' } @Model(process.class.Method, core.class.Doc, DOMAIN_MODEL) @@ -261,14 +261,14 @@ export class TMethod extends TDoc implements Method { export class TState extends TDoc implements State { @Prop(TypeRef(process.class.Process), process.string.Process) @ReadOnly() - process!: Ref + process!: Ref @Prop(TypeString(), core.string.Name) - title!: string + title!: string @Prop(TypeRank(), core.string.Rank) @Hidden() - rank!: Rank + rank!: Rank } @Model(process.class.ProcessCustomEvent, core.class.Doc, DOMAIN_TRANSIENT) @@ -276,10 +276,10 @@ export class TProcessCustomEvent extends TDoc implements ProcessCustomEvent { eventType!: string @Prop(TypeRef(process.class.Execution), process.string.Execution) - execution!: Ref + execution!: Ref @Prop(TypeRef(card.class.Card), card.string.Card) - card!: Ref + card!: Ref } @Model(process.class.EventButton, core.class.Doc, DOMAIN_PROCESS) @@ -289,48 +289,48 @@ export class TEventButton extends TDoc implements EventButton { eventType!: string @Prop(TypeRef(process.class.Execution), process.string.Execution) - execution!: Ref + execution!: Ref @Prop(TypeRef(card.class.Card), card.string.Card) - card!: Ref + card!: Ref } @Model(process.class.ProcessFunction, core.class.Doc, DOMAIN_MODEL) export class TProcessFunction extends TDoc implements ProcessFunction { @Prop(TypeRef(core.class.Class), getEmbeddedLabel('To')) - to?: Ref> + to?: Ref> @Prop(TypeRef(core.class.Class), getEmbeddedLabel('Of')) - of!: Ref>> + of!: Ref>> @Prop(TypeString(), getEmbeddedLabel('Category')) - category: AttributeCategory | undefined + category: AttributeCategory | undefined @Prop(TypeIntlString(), getEmbeddedLabel('Label')) - label!: IntlString + label!: IntlString editor?: AnyComponent presenter?: AnyComponent @Prop(TypeBoolean(), getEmbeddedLabel('AllowMany')) - allowMany?: boolean + allowMany?: boolean @Prop(TypeString(), getEmbeddedLabel('Type')) - type!: 'transform' | 'reduce' | 'context' | 'convert' + type!: 'transform' | 'reduce' | 'context' | 'convert' } @Model(process.class.UpdateCriteriaComponent, core.class.Doc, DOMAIN_MODEL) export class TUpdateCriteriaComponent extends TDoc implements UpdateCriteriaComponent { @Prop(TypeString(), getEmbeddedLabel('Category')) - category!: AttributeCategory + category!: AttributeCategory editor!: AnyComponent @Prop(TypeRef(core.class.Class), getEmbeddedLabel('Of')) - of!: Ref>> + of!: Ref>> @Prop(TypeRecord(), getEmbeddedLabel('Props')) - props!: Record + props!: Record } export * from './migration' diff --git a/models/products/src/index.ts b/models/products/src/index.ts index bfd8efe585..9ada160deb 100644 --- a/models/products/src/index.ts +++ b/models/products/src/index.ts @@ -94,20 +94,20 @@ export class TProduct extends TExternalSpace implements Product { @Prop(TypeMarkup(), products.string.Description) @Index(IndexKind.FullText) - fullDescription?: string + fullDescription?: string @Prop(TypeString(), products.string.Icon) @Index(IndexKind.FullText) @Hidden() - icon?: Asset + icon?: Asset @Prop(TypeNumber(), products.string.Color) @Index(IndexKind.FullText) @Hidden() - color?: number + color?: number @Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: CollectionSize + attachments?: CollectionSize } @Model(products.class.ProductVersion, documents.class.Project) @@ -119,31 +119,31 @@ export class TProductVersion extends TProject implements ProductVersion { @Prop(TypeNumber(), products.string.Major) @ReadOnly() - major!: number + major!: number @Prop(TypeNumber(), products.string.Minor) @ReadOnly() - minor!: number + minor!: number @Prop(TypeNumber(), products.string.Patch) @ReadOnly() - patch!: number + patch!: number @Prop(TypeString(), products.string.Codename) - codename?: string + codename?: string @Prop(TypeMarkup(), products.string.Description) @Index(IndexKind.FullText) - description!: Markup + description!: Markup @Prop(TypeRef(products.class.ProductVersion), products.string.ProductVersionParent) @Index(IndexKind.Indexed) @ReadOnly() - parent!: Ref + parent!: Ref @Prop(TypeProductVersionState(), products.string.ProductVersionState) @ReadOnly() - state!: ProductVersionState + state!: ProductVersionState @Prop( TypeAny( @@ -154,7 +154,7 @@ export class TProductVersion extends TProject implements ProductVersion { products.string.ChangeControl ) @ReadOnly() - changeControl?: Ref + changeControl?: Ref } @Mixin(products.mixin.ProductTypeData, products.class.Product) diff --git a/models/questions/src/doc-types/base.ts b/models/questions/src/doc-types/base.ts index 071f5f0740..fe4d263ae3 100644 --- a/models/questions/src/doc-types/base.ts +++ b/models/questions/src/doc-types/base.ts @@ -47,22 +47,22 @@ export class TQuestion> extends TAttachedD @Prop(TypeRank(), questions.string.Rank) @Index(IndexKind.Indexed) @Hidden() - rank!: Rank + rank!: Rank @Prop(TypeString(), questions.string.Question) @Index(IndexKind.FullText) - title: string = '' + title: string = '' @Prop(TypeRef(contact.mixin.Employee), questions.string.Owner) @Index(IndexKind.Indexed) - owner!: Ref + owner!: Ref @Prop(TypeTimestamp(), questions.string.ReleasedDate) @Index(IndexKind.Indexed) - releasedOn: Timestamp | null = null + releasedOn: Timestamp | null = null @Prop(TypeRef(contact.mixin.Employee), questions.string.ReleasedBy) - releasedBy: Ref | null = null + releasedBy: Ref | null = null // Should be overridden and decorated in child classes questionData!: QuestionData @@ -72,7 +72,8 @@ export class TQuestion> extends TAttachedD @Model(questions.class.Assessment, questions.class.Question) export class TAssessment, AssessmentData extends NonNullable> extends TQuestion - implements Assessment { + implements Assessment +{ // Should be overridden and decorated in child classes assessmentData!: AssessmentData } @@ -81,7 +82,8 @@ export class TAssessment, AssessmentData e @Model(questions.class.Answer, core.class.AttachedDoc, DOMAIN_QUESTIONS) export class TAnswer, AnswerData extends NonNullable> extends TAttachedDoc - implements Answer { + implements Answer +{ // Should be overridden and decorated in child classes question!: Ref diff --git a/models/questions/src/doc-types/mixin.ts b/models/questions/src/doc-types/mixin.ts index 2be7aa219e..5bdeb3f51d 100644 --- a/models/questions/src/doc-types/mixin.ts +++ b/models/questions/src/doc-types/mixin.ts @@ -24,7 +24,8 @@ import questions from '../plugin' @Mixin(questions.mixin.QuestionMixin, core.class.Class) export class TQuestionMixin, A extends Answer> extends TClass - implements QuestionMixin { + implements QuestionMixin +{ questionInit!: Resource> questionDataPresenter!: Resource> questionDataEditor!: Resource> diff --git a/models/questions/src/doc-types/questions/MultipleChoice.ts b/models/questions/src/doc-types/questions/MultipleChoice.ts index 7073326d44..d5a7b5179d 100644 --- a/models/questions/src/doc-types/questions/MultipleChoice.ts +++ b/models/questions/src/doc-types/questions/MultipleChoice.ts @@ -69,7 +69,8 @@ export class TMultipleChoiceQuestion extends TQuestion - implements MultipleChoiceQuestionAnswer { + implements MultipleChoiceQuestionAnswer +{ @Prop(TypeRef(questions.class.MultipleChoiceQuestion), questions.string.Question) @Index(IndexKind.Indexed) @Hidden() @@ -84,7 +85,8 @@ export class TMultipleChoiceQuestionAnswer @UX(questions.string.MultipleChoiceAssessment) export class TMultipleChoiceAssessment extends TAssessment - implements MultipleChoiceAssessment { + implements MultipleChoiceAssessment +{ @Prop(TypeMultipleChoiceAssessmentData(), questions.string.Assessment) declare assessmentData: MultipleChoiceAssessmentData } @@ -94,7 +96,8 @@ export class TMultipleChoiceAssessment @UX(questions.string.MultipleChoice) export class TMultipleChoiceAssessmentAnswer extends TAnswer - implements MultipleChoiceAssessmentAnswer { + implements MultipleChoiceAssessmentAnswer +{ @Prop(TypeRef(questions.class.MultipleChoiceAssessment), questions.string.Question) @Index(IndexKind.Indexed) @Hidden() diff --git a/models/questions/src/doc-types/questions/Ordering.ts b/models/questions/src/doc-types/questions/Ordering.ts index 633a7c93dc..0d80fa0bc7 100644 --- a/models/questions/src/doc-types/questions/Ordering.ts +++ b/models/questions/src/doc-types/questions/Ordering.ts @@ -69,7 +69,8 @@ export class TOrderingQuestion extends TQuestion implement @UX(questions.string.Ordering) export class TOrderingQuestionAnswer extends TAnswer - implements OrderingQuestionAnswer { + implements OrderingQuestionAnswer +{ @Prop(TypeRef(questions.class.OrderingQuestion), questions.string.Question) @Index(IndexKind.Indexed) @Hidden() @@ -84,7 +85,8 @@ export class TOrderingQuestionAnswer @UX(questions.string.OrderingAssessment) export class TOrderingAssessment extends TAssessment - implements OrderingAssessment { + implements OrderingAssessment +{ @Prop(TypeOrderingAssessmentData(), questions.string.Assessment) declare assessmentData: OrderingAssessmentData } @@ -94,7 +96,8 @@ export class TOrderingAssessment @UX(questions.string.Ordering) export class TOrderingAssessmentAnswer extends TAnswer - implements OrderingAssessmentAnswer { + implements OrderingAssessmentAnswer +{ @Prop(TypeRef(questions.class.OrderingAssessment), questions.string.Question) @Index(IndexKind.Indexed) @Hidden() diff --git a/models/questions/src/doc-types/questions/SingleChoice.ts b/models/questions/src/doc-types/questions/SingleChoice.ts index 01bff3f697..bf980cbb9d 100644 --- a/models/questions/src/doc-types/questions/SingleChoice.ts +++ b/models/questions/src/doc-types/questions/SingleChoice.ts @@ -69,7 +69,8 @@ export class TSingleChoiceQuestion extends TQuestion i @UX(questions.string.SingleChoice) export class TSingleChoiceQuestionAnswer extends TAnswer - implements SingleChoiceQuestionAnswer { + implements SingleChoiceQuestionAnswer +{ @Prop(TypeRef(questions.class.SingleChoiceQuestion), questions.string.Question) @Index(IndexKind.Indexed) @Hidden() @@ -84,7 +85,8 @@ export class TSingleChoiceQuestionAnswer @UX(questions.string.SingleChoiceAssessment) export class TSingleChoiceAssessment extends TAssessment - implements SingleChoiceAssessment { + implements SingleChoiceAssessment +{ @Prop(TypeSingleChoiceAssessmentData(), questions.string.Assessment) declare assessmentData: SingleChoiceAssessmentData } @@ -94,7 +96,8 @@ export class TSingleChoiceAssessment @UX(questions.string.SingleChoice) export class TSingleChoiceAssessmentAnswer extends TAnswer - implements SingleChoiceAssessmentAnswer { + implements SingleChoiceAssessmentAnswer +{ @Prop(TypeRef(questions.class.SingleChoiceAssessment), questions.string.Question) @Index(IndexKind.Indexed) @Hidden() diff --git a/models/recruit/src/types.ts b/models/recruit/src/types.ts index dd41c9e01a..114e4e67b6 100644 --- a/models/recruit/src/types.ts +++ b/models/recruit/src/types.ts @@ -68,33 +68,33 @@ import recruit from './plugin' export class TVacancy extends TProject implements Vacancy { @Prop(TypeCollaborativeDoc(), recruit.string.FullDescription) @Index(IndexKind.FullText) - fullDescription!: MarkupBlobRef | null + fullDescription!: MarkupBlobRef | null @Prop(TypeCollection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: number + attachments?: number @Prop(TypeDate(), recruit.string.Due, recruit.icon.Calendar) - dueTo?: Timestamp + dueTo?: Timestamp @Prop(TypeString(), recruit.string.Location, recruit.icon.Location) @Index(IndexKind.FullText) - location?: string + location?: string @Prop(TypeRef(contact.class.Organization), recruit.string.Company, { icon: contact.icon.Company }) - company?: Ref + company?: Ref @Prop(TypeCollection(chunter.class.ChatMessage), chunter.string.Comments) - comments?: number + comments?: number @Prop(TypeString(), recruit.string.Vacancy) @Index(IndexKind.FullText) @Hidden() - number!: number + number!: number @Prop(TypeCollection(survey.class.Poll), survey.string.Polls) - polls?: Collection + polls?: Collection } @Mixin(recruit.mixin.Candidate, contact.class.Person) @@ -102,47 +102,47 @@ export class TVacancy extends TProject implements Vacancy { export class TCandidate extends TPerson implements Candidate { @Prop(TypeString(), recruit.string.Title) @Index(IndexKind.FullText) - title?: string + title?: string @Prop(TypeCollection(recruit.class.Applicant), recruit.string.Applications, { shortLabel: recruit.string.ApplicationsShort }) - applications?: number + applications?: number @Prop(TypeBoolean(), recruit.string.Onsite) - onsite?: boolean + onsite?: boolean @Prop(TypeBoolean(), recruit.string.Remote) - remote?: boolean + remote?: boolean @Prop(TypeString(), recruit.string.Source) @Index(IndexKind.FullText) - source?: string + source?: string @Prop(TypeCollection(tags.class.TagReference, recruit.string.SkillLabel), recruit.string.SkillsLabel, { icon: recruit.icon.Skills, schema: '3' }) - skills?: number + skills?: number @Prop(TypeCollection(recruit.class.Review, recruit.string.Review), recruit.string.Reviews) - reviews?: number + reviews?: number @Prop( TypeCollection(recruit.class.ApplicantMatch, getEmbeddedLabel('Vacancy match')), getEmbeddedLabel('Vacancy Matches') ) - vacancyMatch?: number + vacancyMatch?: number @Prop(TypeCollection(survey.class.Poll), survey.string.Polls) - polls?: Collection + polls?: Collection } @Mixin(recruit.mixin.VacancyList, contact.class.Organization) @UX(recruit.string.VacancyList, recruit.icon.RecruitApplication, 'CM', 'name') export class TVacancyList extends TOrganization implements VacancyList { @Prop(TypeCollection(recruit.class.Vacancy), recruit.string.Vacancies) - vacancies!: number + vacancies!: number } @Model(recruit.class.Applicant, task.class.Task) @@ -160,7 +160,7 @@ export class TApplicant extends TTask implements Applicant { declare space: Ref @Prop(TypeDate(), task.string.StartDate) - startDate!: Timestamp | null + startDate!: Timestamp | null @Prop(TypeRef(contact.mixin.Employee), recruit.string.AssignedRecruiter) @Index(IndexKind.Indexed) @@ -171,7 +171,7 @@ export class TApplicant extends TTask implements Applicant { declare status: Ref @Prop(TypeCollection(survey.class.Poll), survey.string.Polls) - polls?: Collection + polls?: Collection } @Model(recruit.class.ApplicantMatch, core.class.AttachedDoc, DOMAIN_TASK) @@ -184,19 +184,19 @@ export class TApplicantMatch extends TAttachedDoc implements ApplicantMatch { @Prop(TypeBoolean(), getEmbeddedLabel('Complete')) @ReadOnly() - complete!: boolean + complete!: boolean @Prop(TypeString(), getEmbeddedLabel('Vacancy')) @ReadOnly() - vacancy!: string + vacancy!: string @Prop(TypeString(), getEmbeddedLabel('Summary')) @ReadOnly() - summary!: string + summary!: string @Prop(TypeMarkup(), getEmbeddedLabel('Response')) @ReadOnly() - response!: string + response!: string } @Model(recruit.class.Review, calendar.class.Event) @@ -207,27 +207,27 @@ export class TReview extends TEvent implements Review { declare attachedTo: Ref @Prop(TypeString(), recruit.string.Review) - number!: number + number!: number @Prop(TypeString(), recruit.string.Verdict) @Index(IndexKind.FullText) - verdict!: string + verdict!: string @Prop(TypeRef(recruit.class.Applicant), recruit.string.Application, { icon: recruit.icon.Application }) - application?: Ref + application?: Ref @Prop(TypeRef(contact.class.Organization), recruit.string.Company, { icon: contact.icon.Company }) - company?: Ref + company?: Ref @Prop(TypeCollection(recruit.class.Opinion), recruit.string.Opinions) - opinions?: number + opinions?: number } @Model(recruit.class.Opinion, core.class.AttachedDoc, 'recruit' as Domain) @UX(recruit.string.Opinion, recruit.icon.Opinion, 'OPE') export class TOpinion extends TAttachedDoc implements Opinion { @Prop(TypeString(), task.string.TaskNumber) - number!: number + number!: number // We need to declare, to provide property with label @Prop(TypeRef(recruit.class.Review), recruit.string.Review) @@ -236,16 +236,16 @@ export class TOpinion extends TAttachedDoc implements Opinion { @Prop(TypeCollection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: number + attachments?: number @Prop(TypeCollection(chunter.class.ChatMessage), chunter.string.Comments) - comments?: number + comments?: number @Prop(TypeMarkup(), recruit.string.Description) - description!: Markup + description!: Markup @Prop(TypeString(), recruit.string.OpinionValue) - value!: string + value!: string } @Mixin(recruit.mixin.DefaultVacancyTypeData, recruit.class.Vacancy) diff --git a/models/survey/src/types.ts b/models/survey/src/types.ts index effa6b10ad..f8a6d18d42 100644 --- a/models/survey/src/types.ts +++ b/models/survey/src/types.ts @@ -38,31 +38,31 @@ export const DOMAIN_SURVEY = 'survey' as Domain export class TSurvey extends TDoc implements Survey { @Prop(TypeString(), survey.string.Name) @Index(IndexKind.FullText) - name!: string + name!: string @Prop(TypeString(), survey.string.Prompt) - prompt!: string + prompt!: string @Prop(ArrOf(TypeRecord()), survey.string.Questions) - questions?: Question[] + questions?: Question[] } @Model(survey.class.Poll, core.class.Doc, DOMAIN_SURVEY) @UX(survey.string.Poll, survey.icon.Poll, 'POLL', undefined, undefined, survey.string.Polls) export class TPoll extends TAttachedDoc implements Poll { @Prop(TypeRef(survey.class.Survey), survey.string.Survey) - survey!: Ref + survey!: Ref @Prop(TypeString(), survey.string.Name) - name!: string + name!: string @Prop(TypeString(), survey.string.Prompt) - prompt!: string + prompt!: string @Prop(ArrOf(TypeRecord()), getEmbeddedLabel('Questions')) @Hidden() - questions?: Question[] + questions?: Question[] @Prop(TypeBoolean(), survey.string.Completed) - isCompleted?: boolean + isCompleted?: boolean } diff --git a/models/task/src/index.ts b/models/task/src/index.ts index 9259c85798..cbff7cc8de 100644 --- a/models/task/src/index.ts +++ b/models/task/src/index.ts @@ -96,46 +96,46 @@ export const DOMAIN_TASK = 'task' as Domain export class TTask extends TAttachedDoc implements Task { @Prop(TypeRef(core.class.Status), task.string.TaskState, { _id: task.attribute.State }) @Index(IndexKind.Indexed) - status!: Ref + status!: Ref @Prop(TypeRef(task.class.TaskType), task.string.TaskType) @Index(IndexKind.Indexed) @ReadOnly() - kind!: Ref + kind!: Ref @Prop(TypeString(), task.string.TaskNumber) @Index(IndexKind.FullText) @Hidden() - number!: number + number!: number @Prop(TypeRef(contact.mixin.Employee), task.string.TaskAssignee) - assignee!: Ref | null + assignee!: Ref | null @Prop(TypeDate(), task.string.DueDate, { editor: task.component.DueDateEditor }) - dueDate!: Timestamp | null + dueDate!: Timestamp | null @Prop(TypeRank(), task.string.Rank) @Index(IndexKind.IndexedDsc) @Hidden() - rank!: Rank + rank!: Rank @Prop(Collection(tags.class.TagReference, task.string.TaskLabels), task.string.TaskLabels) - labels?: number + labels?: number @Prop(Collection(chunter.class.ChatMessage), chunter.string.Comments) - comments?: number + comments?: number @Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: number + attachments?: number @Prop(TypeBoolean(), getEmbeddedLabel('isDone')) @Hidden() - isDone?: boolean + isDone?: boolean @Prop(TypeString(), task.string.Identifier) @ReadOnly() @Index(IndexKind.Indexed) - identifier!: string + identifier!: string } @Mixin(task.mixin.KanbanCard, core.class.Class) @@ -179,52 +179,52 @@ export class TProjectType extends TSpaceType implements ProjectType { @Prop(TypeString(), task.string.Description) @Index(IndexKind.FullText) - description!: string + description!: string @Prop(ArrOf(TypeRef(task.class.TaskType)), getEmbeddedLabel('Tasks')) - tasks!: Ref[] + tasks!: Ref[] @Prop(ArrOf(TypeRecord()), getEmbeddedLabel('Project statuses')) - statuses!: ProjectStatus[] + statuses!: ProjectStatus[] @Prop(TypeRef(core.class.Class), getEmbeddedLabel('Target Class')) declare targetClass: Ref> @Prop(TypeBoolean(), getEmbeddedLabel('Classic')) - classic!: boolean + classic!: boolean } @Model(task.class.TaskType, core.class.Doc, DOMAIN_MODEL) export class TTaskType extends TDoc implements TaskType { @Prop(TypeString(), getEmbeddedLabel('Name')) - name!: string + name!: string @Prop(TypeRef(task.class.TaskTypeDescriptor), getEmbeddedLabel('Descriptor')) - descriptor!: Ref + descriptor!: Ref @Prop(TypeRef(task.class.ProjectType), getEmbeddedLabel('Task class')) - parent!: Ref // Base class for task + parent!: Ref // Base class for task @Prop(TypeString(), getEmbeddedLabel('Kind')) - kind!: TaskTypeKind + kind!: TaskTypeKind @Prop(ArrOf(TypeRef(task.class.TaskType)), getEmbeddedLabel('Parent')) - allowedAsChildOf!: Ref[] // In case of specified, task type is for sub-tasks + allowedAsChildOf!: Ref[] // In case of specified, task type is for sub-tasks @Prop(TypeRef(core.class.Class), getEmbeddedLabel('Task class')) - ofClass!: Ref> // Base class for task + ofClass!: Ref> // Base class for task @Prop(TypeRef(core.class.Class), getEmbeddedLabel('Task target class')) - targetClass!: Ref> // Class or Mixin mixin to hold all user defined attributes. + targetClass!: Ref> // Class or Mixin mixin to hold all user defined attributes. @Prop(ArrOf(TypeRef(core.class.Status)), getEmbeddedLabel('Task statuses')) - statuses!: Ref[] + statuses!: Ref[] @Prop(TypeRef(core.class.Class), getEmbeddedLabel('Task status class')) - statusClass!: Ref> + statusClass!: Ref> @Prop(TypeRef(core.class.StatusCategory), getEmbeddedLabel('Task status categories')) - statusCategories!: Ref[] + statusCategories!: Ref[] } @Model(task.class.ProjectTypeDescriptor, core.class.SpaceTypeDescriptor, DOMAIN_MODEL) diff --git a/models/telegram/src/index.ts b/models/telegram/src/index.ts index 18c09eb1d8..3d7f2c5ed6 100644 --- a/models/telegram/src/index.ts +++ b/models/telegram/src/index.ts @@ -63,16 +63,16 @@ export class TTelegramMessage extends TAttachedDoc implements TelegramMessage { @Prop(TypeString(), telegram.string.Content) @Index(IndexKind.FullText) - content!: string + content!: string @Prop(TypeBoolean(), telegram.string.Incoming) - incoming!: boolean + incoming!: boolean @Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: number + attachments?: number @Prop(TypeTimestamp(), core.string.Modified) - sendOn!: Timestamp + sendOn!: Timestamp } @Model(telegram.class.NewMessage, core.class.AttachedDoc, DOMAIN_TELEGRAM) @@ -80,20 +80,20 @@ export class TTelegramMessage extends TAttachedDoc implements TelegramMessage { export class TNewTelegramMessage extends TAttachedDoc implements NewTelegramMessage { @Prop(TypeString(), telegram.string.Content) @Index(IndexKind.FullText) - content!: string + content!: string @Prop(TypeString(), telegram.string.Status) - status!: 'new' | 'sent' + status!: 'new' | 'sent' @Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: number + attachments?: number } @Model(telegram.class.SharedMessages, core.class.AttachedDoc, DOMAIN_TELEGRAM) @UX(telegram.string.SharedMessages) export class TSharedTelegramMessages extends TAttachedDoc implements SharedTelegramMessages { @Prop(ArrOf(TypeSharedMessage()), telegram.string.Messages) - messages!: SharedTelegramMessage[] + messages!: SharedTelegramMessage[] } export function createModel (builder: Builder): void { diff --git a/models/templates/src/index.ts b/models/templates/src/index.ts index 0073a90c50..bb91d97047 100644 --- a/models/templates/src/index.ts +++ b/models/templates/src/index.ts @@ -41,11 +41,11 @@ export const DOMAIN_TEMPLATES = 'templates' as Domain export class TMessageTemplate extends TDoc implements MessageTemplate { @Prop(TypeString(), templates.string.Title) @Index(IndexKind.FullText) - title!: string + title!: string @Prop(TypeMarkup(), templates.string.Message) @Index(IndexKind.FullText) - message!: Markup + message!: Markup } @Model(templates.class.TemplateCategory, core.class.Space) diff --git a/models/test-management/src/types.ts b/models/test-management/src/types.ts index 084f2d1617..d250f46cdf 100644 --- a/models/test-management/src/types.ts +++ b/models/test-management/src/types.ts @@ -101,7 +101,7 @@ export class TTypeTestCaseStatus extends TType {} export class TTestProject extends TTypedSpace implements TestProject { @Prop(TypeMarkup(), testManagement.string.FullDescription) @Index(IndexKind.FullText) - fullDescription?: string + fullDescription?: string } @Mixin(testManagement.mixin.DefaultProjectTypeData, testManagement.class.TestProject) @@ -118,19 +118,19 @@ export class TDefaultProjectTypeData extends TTestProject implements RolesAssign export class TTestSuite extends TDoc implements TestSuite { @Prop(TypeString(), testManagement.string.SuiteName) @Index(IndexKind.FullText) - name!: string + name!: string @Prop(TypeMarkup(), testManagement.string.SuiteDescription) @Index(IndexKind.FullText) - description?: string + description?: string @Prop(TypeRef(testManagement.class.TestSuite), testManagement.string.TestSuite) - parent!: Ref + parent!: Ref @Prop(Collection(testManagement.class.TestCase), testManagement.string.TestCases, { shortLabel: testManagement.string.TestCase }) - testCases?: CollectionSize + testCases?: CollectionSize declare space: Ref } @@ -161,32 +161,32 @@ export class TTestCase extends TAttachedDoc implements TestCase { @Prop(TypeString(), testManagement.string.TestName) @Index(IndexKind.FullText) - name!: string + name!: string @Prop(TypeCollaborativeDoc(), testManagement.string.FullDescription) @Index(IndexKind.FullText) - description!: MarkupBlobRef | null + description!: MarkupBlobRef | null @Prop(TypeTestCaseType(), testManagement.string.TestType) @ReadOnly() - type!: TestCaseType + type!: TestCaseType @Prop(TypeTestCasePriority(), testManagement.string.TestPriority) @ReadOnly() - priority!: TestCasePriority + priority!: TestCasePriority @Prop(TypeTestCaseStatus(), testManagement.string.TestStatus) @ReadOnly() - status!: TestCaseStatus + status!: TestCaseStatus @Prop(TypeRef(contact.mixin.Employee), testManagement.string.TestAssignee) - assignee!: Ref + assignee!: Ref @Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: CollectionSize + attachments?: CollectionSize @Prop(Collection(chunter.class.ChatMessage), chunter.string.Comments) - comments?: number + comments?: number } @Model(testManagement.class.TestRun, core.class.Doc, DOMAIN_TEST_MANAGEMENT) @@ -194,19 +194,19 @@ export class TTestCase extends TAttachedDoc implements TestCase { export class TTestRun extends TDoc implements TestRun { @Prop(TypeString(), testManagement.string.TestRunName) @Index(IndexKind.FullText) - name!: string + name!: string @Prop(TypeCollaborativeDoc(), testManagement.string.FullDescription) @Index(IndexKind.FullText) - description!: MarkupBlobRef | null + description!: MarkupBlobRef | null @Prop(TypeDate(DateRangeMode.DATETIME), testManagement.string.DueDate) - dueDate?: Timestamp + dueDate?: Timestamp @Prop(Collection(testManagement.class.TestResult), testManagement.string.TestResult, { shortLabel: testManagement.string.TestResult }) - results?: CollectionSize + results?: CollectionSize } /** @public */ @@ -242,32 +242,32 @@ export class TTestResult extends TAttachedDoc implements TestResult { @Prop(TypeString(), testManagement.string.TestRunName) @Index(IndexKind.FullText) - name!: string + name!: string @Prop(TypeCollaborativeDoc(), testManagement.string.FullDescription) @Index(IndexKind.FullText) - description!: MarkupBlobRef | null + description!: MarkupBlobRef | null @Prop(TypeRef(testManagement.class.TestCase), testManagement.string.TestCase) - testCase!: Ref + testCase!: Ref @Prop(TypeRef(testManagement.class.TestSuite), testManagement.string.TestSuite) @Index(IndexKind.Indexed) - testSuite?: Ref + testSuite?: Ref @Prop(TypeTestRunStatus(), testManagement.string.TestRunStatus) @Index(IndexKind.Indexed) - status?: TestRunStatus + status?: TestRunStatus @Prop(TypeRef(contact.mixin.Employee), testManagement.string.TestAssignee) @Index(IndexKind.Indexed) - assignee?: Ref + assignee?: Ref @Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: CollectionSize + attachments?: CollectionSize @Prop(Collection(chunter.class.ChatMessage), chunter.string.Comments) - comments?: number + comments?: number } @Model(testManagement.class.TestPlan, core.class.Doc, DOMAIN_TEST_MANAGEMENT) @@ -275,16 +275,16 @@ export class TTestResult extends TAttachedDoc implements TestResult { export class TTestPlan extends TDoc implements TestPlan { @Prop(TypeString(), testManagement.string.Name) @Index(IndexKind.FullText) - name!: string + name!: string @Prop(TypeCollaborativeDoc(), testManagement.string.FullDescription) @Index(IndexKind.FullText) - description!: MarkupBlobRef | null + description!: MarkupBlobRef | null @Prop(Collection(testManagement.class.TestPlanItem), testManagement.string.TestCase, { shortLabel: testManagement.string.TestCase }) - results?: CollectionSize + results?: CollectionSize } @Model(testManagement.class.TestPlanItem, core.class.AttachedDoc, DOMAIN_TEST_MANAGEMENT) @@ -309,13 +309,13 @@ export class TTestPlanItem extends TAttachedDoc implements TestPlanItem { override collection: 'items' = 'items' @Prop(TypeRef(testManagement.class.TestCase), testManagement.string.TestCase) - testCase!: Ref + testCase!: Ref @Prop(TypeRef(testManagement.class.TestSuite), testManagement.string.TestSuite) @Index(IndexKind.Indexed) - testSuite?: Ref + testSuite?: Ref @Prop(TypeRef(contact.mixin.Employee), testManagement.string.TestAssignee) @Index(IndexKind.Indexed) - assignee?: Ref + assignee?: Ref } diff --git a/models/time/src/index.ts b/models/time/src/index.ts index 4e64b04b08..5f5c0c44b8 100644 --- a/models/time/src/index.ts +++ b/models/time/src/index.ts @@ -101,41 +101,41 @@ export class TTypeToDoPriority extends TType {} @UX(time.string.ToDo, time.icon.Planned) export class TToDo extends TAttachedDoc implements ToDo { @Prop(TypeDate(DateRangeMode.DATE), task.string.DueDate) - dueDate?: number | null | undefined + dueDate?: number | null | undefined @Prop(TypeToDoPriority(), time.string.Priority) @Index(IndexKind.Indexed) - priority!: ToDoPriority + priority!: ToDoPriority visibility!: Visibility @Prop(TypeRef(core.class.Space), core.string.Space) - attachedSpace?: Ref | undefined + attachedSpace?: Ref | undefined @Prop(TypeString(), calendarPlugin.string.Title) @Index(IndexKind.FullText) - title!: string + title!: string @Prop(TypeMarkup(), calendarPlugin.string.Description) @Index(IndexKind.FullText) - description!: Markup + description!: Markup doneOn!: Timestamp | null @Prop(TypeRef(contactPlugin.mixin.Employee), contactPlugin.string.Employee) @Index(IndexKind.Indexed) - user!: Ref + user!: Ref @Prop(Collection(time.class.WorkSlot, time.string.WorkSlot), time.string.WorkSlot) - workslots!: number + workslots!: number @Prop(Collection(tags.class.TagReference, tags.string.TagLabel), tags.string.Tags) - labels?: number | undefined + labels?: number | undefined @Prop(TypeRank(), core.string.Rank) @Index(IndexKind.Indexed) @Hidden() - rank!: Rank + rank!: Rank } @Model(time.class.ProjectToDo, time.class.ToDo) diff --git a/models/tracker/src/types.ts b/models/tracker/src/types.ts index 853e19450c..bc4588bf4d 100644 --- a/models/tracker/src/types.ts +++ b/models/tracker/src/types.ts @@ -126,17 +126,17 @@ export class TTypeMilestoneStatus extends TType {} export class TProject extends TTaskProject implements Project { @Prop(TypeString(), tracker.string.ProjectIdentifier) @Index(IndexKind.FullText) - identifier!: IntlString + identifier!: IntlString @Prop(TypeNumber(), tracker.string.Number) @Hidden() - sequence!: number + sequence!: number @Prop(TypeRef(tracker.class.IssueStatus), tracker.string.DefaultIssueStatus) - defaultIssueStatus?: Ref + defaultIssueStatus?: Ref @Prop(TypeRef(contact.mixin.Employee), tracker.string.DefaultAssignee) - defaultAssignee!: Ref + defaultAssignee!: Ref declare defaultTimeReportDay: TimeReportDayType @@ -154,7 +154,7 @@ export class TProject extends TTaskProject implements Project { @UX(tracker.string.RelatedIssues) export class TRelatedIssueTarget extends TDoc implements RelatedIssueTarget { @Prop(TypeRef(tracker.class.Project), tracker.string.Project) - target!: Ref + target!: Ref rule!: RelatedClassRule | RelatedSpaceRule } @@ -191,11 +191,11 @@ export class TIssue extends TTask implements Issue { @Prop(TypeString(), tracker.string.Title) @Index(IndexKind.FullText) - title!: string + title!: string @Prop(TypeCollaborativeDoc(), tracker.string.Description) @Index(IndexKind.FullText) - description!: MarkupBlobRef | null + description!: MarkupBlobRef | null @Prop(TypeRef(tracker.class.IssueStatus), tracker.string.Status, { _id: tracker.attribute.IssueStatus, @@ -208,7 +208,7 @@ export class TIssue extends TTask implements Issue { iconComponent: tracker.activity.PriorityIcon }) @Index(IndexKind.Indexed) - priority!: IssuePriority + priority!: IssuePriority @Prop(TypeNumber(), tracker.string.Number) @Index(IndexKind.FullText) @@ -221,17 +221,17 @@ export class TIssue extends TTask implements Issue { @Prop(TypeRef(tracker.class.Component), tracker.string.Component, { icon: tracker.icon.Component }) @Index(IndexKind.Indexed) - component!: Ref | null + component!: Ref | null @Prop(Collection(tracker.class.Issue), tracker.string.SubIssues) - subIssues!: number + subIssues!: number @Prop(ArrOf(TypeRef(core.class.TypeRelatedDocument)), tracker.string.BlockedBy) - blockedBy!: RelatedDocument[] + blockedBy!: RelatedDocument[] @Prop(ArrOf(TypeRef(core.class.TypeRelatedDocument)), tracker.string.RelatedTo) @Index(IndexKind.Indexed) - relations!: RelatedDocument[] + relations!: RelatedDocument[] parents!: IssueParentInfo[] @@ -261,20 +261,20 @@ export class TIssue extends TTask implements Issue { @Prop(TypeRef(tracker.class.Milestone), tracker.string.Milestone, { icon: tracker.icon.Milestone }) @Index(IndexKind.Indexed) - milestone!: Ref | null + milestone!: Ref | null @Prop(TypeEstimation(), tracker.string.Estimation) - estimation!: number + estimation!: number @Prop(TypeReportedTime(), tracker.string.ReportedTime) - reportedTime!: number + reportedTime!: number @Prop(TypeRemainingTime(), tracker.string.RemainingTime) @ReadOnly() - remainingTime!: number + remainingTime!: number @Prop(Collection(tracker.class.TimeSpendReport), tracker.string.TimeSpendReports) - reports!: number + reports!: number declare childInfo: IssueChildInfo[] @@ -310,49 +310,49 @@ export class TIssue extends TTask implements Issue { export class TIssueTemplate extends TDoc implements IssueTemplate { @Prop(TypeString(), tracker.string.Title) @Index(IndexKind.FullText) - title!: string + title!: string @Prop(TypeMarkup(), tracker.string.Description) @Index(IndexKind.FullText) - description!: Markup + description!: Markup @Prop(TypeIssuePriority(), tracker.string.Priority) - priority!: IssuePriority + priority!: IssuePriority @Prop(TypeRef(contact.class.Person), tracker.string.Assignee) - assignee!: Ref | null + assignee!: Ref | null @Prop(TypeRef(tracker.class.Component), tracker.string.Component) - component!: Ref | null + component!: Ref | null @Prop(ArrOf(TypeRef(tags.class.TagElement)), tracker.string.Labels) - labels?: Ref[] + labels?: Ref[] @Prop(TypeRef(task.class.TaskType), task.string.TaskType) - kind?: Ref + kind?: Ref declare space: Ref @Prop(TypeDate(DateRangeMode.DATETIME), tracker.string.DueDate) - dueDate!: Timestamp | null + dueDate!: Timestamp | null @Prop(TypeRef(tracker.class.Milestone), tracker.string.Milestone) - milestone!: Ref | null + milestone!: Ref | null @Prop(TypeEstimation(), tracker.string.Estimation) - estimation!: number + estimation!: number @Prop(ArrOf(TypeRef(tracker.class.IssueTemplate)), tracker.string.IssueTemplate) - children!: IssueTemplateChild[] + children!: IssueTemplateChild[] @Prop(Collection(chunter.class.ChatMessage), tracker.string.Comments) - comments!: number + comments!: number @Prop(Collection(attachment.class.Attachment), tracker.string.Attachments) - attachments!: number + attachments!: number @Prop(ArrOf(TypeRef(core.class.TypeRelatedDocument)), tracker.string.RelatedTo) - relations!: RelatedDocument[] + relations!: RelatedDocument[] } /** * @public @@ -365,16 +365,16 @@ export class TTimeSpendReport extends TAttachedDoc implements TimeSpendReport { declare attachedTo: Ref @Prop(TypeRef(contact.mixin.Employee), contact.string.Employee) - employee!: Ref + employee!: Ref @Prop(TypeDate(), tracker.string.TimeSpendReportDate) - date!: Timestamp | null + date!: Timestamp | null @Prop(TypeNumber(), tracker.string.TimeSpendReportValue) - value!: number + value!: number @Prop(TypeString(), tracker.string.TimeSpendReportDescription) - description!: string + description!: string } /** @@ -390,13 +390,13 @@ export class TIssueRelation extends TAttachedDoc implements IssueRelation { @Prop(TypeRef(tracker.class.Issue), tracker.string.Issue) @Index(IndexKind.Indexed) - target!: Ref + target!: Ref @Prop(TypeString(), tracker.string.GanttDependency) - kind!: DependencyKind + kind!: DependencyKind @Prop(TypeNumber(), tracker.string.GanttLag) - lag!: number + lag!: number } /** * @public @@ -407,19 +407,19 @@ export class TIssueRelation extends TAttachedDoc implements IssueRelation { export class TComponent extends TDoc implements Component { @Prop(TypeString(), tracker.string.Title) @Index(IndexKind.FullText) - label!: string + label!: string @Prop(TypeMarkup(), tracker.string.Description) - description?: Markup + description?: Markup @Prop(TypeRef(contact.mixin.Employee), tracker.string.ComponentLead) - lead!: Ref | null + lead!: Ref | null @Prop(Collection(chunter.class.ChatMessage), chunter.string.Comments) - comments!: number + comments!: number @Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: number + attachments?: number @Prop(TypeNumber(), tracker.string.Color) color?: number @@ -435,26 +435,26 @@ export class TComponent extends TDoc implements Component { export class TMilestone extends TDoc implements Milestone { @Prop(TypeString(), tracker.string.Title) // @Index(IndexKind.FullText) - label!: string + label!: string @Prop(TypeMarkup(), tracker.string.Description) - description?: Markup + description?: Markup @Prop(TypeMilestoneStatus(), tracker.string.Status) @Index(IndexKind.Indexed) - status!: MilestoneStatus + status!: MilestoneStatus @Prop(Collection(chunter.class.ChatMessage), chunter.string.Comments) - comments!: number + comments!: number @Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: number + attachments?: number @Prop(TypeDate(), tracker.string.StartDate) - startDate!: Timestamp | null + startDate!: Timestamp | null @Prop(TypeDate(), tracker.string.TargetDate) - targetDate!: Timestamp + targetDate!: Timestamp @Prop(TypeNumber(), tracker.string.Color) color?: number @@ -480,10 +480,10 @@ export class TProjectTargetPreference extends TPreference implements ProjectTarg declare attachedTo: Ref @Prop(TypeDate(), tracker.string.LastUpdated) - usedOn!: Timestamp + usedOn!: Timestamp @Prop(TypeRecord(), getEmbeddedLabel('Properties')) - props?: { key: string, value: any }[] + props?: { key: string, value: any }[] } @Mixin(tracker.mixin.ClassicProjectTypeData, tracker.class.Project) diff --git a/models/training/src/types.ts b/models/training/src/types.ts index b06f61bc4d..6bc50cf55e 100644 --- a/models/training/src/types.ts +++ b/models/training/src/types.ts @@ -89,55 +89,55 @@ export class TTraining extends TDoc implements Training { @Prop(TypeString(), training.string.TrainingTitle) @Index(IndexKind.FullText) - title!: string + title!: string @Prop(TypeString(), core.string.Id) @Index(IndexKind.FullText) - code!: string + code!: string @Prop(TypeNumber(), training.string.Revision) @Index(IndexKind.Indexed) - revision!: number + revision!: number @Prop(TypeRef(contact.mixin.Employee), training.string.TrainingAuthor, { editor: training.component.EmployeeEditor }) - author!: Ref + author!: Ref @Prop(TypeRef(contact.mixin.Employee), training.string.Owner, { editor: training.component.EmployeeEditor }) - owner!: Ref + owner!: Ref @Prop(TypeTrainingState(), training.string.State) - state!: TrainingState + state!: TrainingState @Prop(TypeMarkup(), core.string.Description, { defaultValue: 0 }) @Index(IndexKind.Indexed) - description: Markup = '' + description: Markup = '' @Prop(Collection(attachments.class.Attachment), attachments.string.Attachments, { defaultValue: 0 }) - attachments: CollectionSize = 0 + attachments: CollectionSize = 0 @Prop(TypePercentage(), training.string.TrainingPassingScore, { defaultValue: 100 }) @Index(IndexKind.Indexed) - passingScore: Percentage = 100 + passingScore: Percentage = 100 @Prop(TypeTimestamp(), training.string.TrainingReleasedOn, { defaultValue: null }) @Index(IndexKind.Indexed) - releasedOn: Timestamp | null = null + releasedOn: Timestamp | null = null @Prop(TypeRef(contact.mixin.Employee), training.string.TrainingReleasedBy, { defaultValue: null, editor: training.component.EmployeeEditor }) - releasedBy: Ref | null = null + releasedBy: Ref | null = null @Prop(Collection(questions.class.Question), training.string.TrainingQuestions, { defaultValue: 0 }) - questions: CollectionSize> = 0 + questions: CollectionSize> = 0 @Prop(Collection(training.class.TrainingRequest), training.string.TrainingRequests, { defaultValue: 0 }) - requests: CollectionSize = 0 + requests: CollectionSize = 0 } @Model(training.class.TrainingRequest, core.class.AttachedDoc, DOMAIN_TRAINING) @@ -166,37 +166,37 @@ export class TTrainingRequest extends TAttachedDoc implements TrainingRequest { editor: training.component.EmployeeEditor }) @Index(IndexKind.Indexed) - owner!: Ref + owner!: Ref @Prop(ArrOf(TypeRef(contact.mixin.Employee)), training.string.TrainingRequestTrainees, { editor: training.component.TrainingRequestTraineesEditor }) - trainees: Ref[] = [] + trainees: Ref[] = [] @Prop(TypeTimestamp(), training.string.TrainingRequestDueDate, { defaultValue: null, editor: training.component.TrainingRequestDueDateEditor }) @Index(IndexKind.Indexed) - dueDate: Timestamp | null = null + dueDate: Timestamp | null = null @Prop(TypeNumber(), training.string.TrainingRequestMaxAttempts, { defaultValue: null, editor: training.component.TrainingRequestMaxAttemptsEditor }) - maxAttempts: number | null = null + maxAttempts: number | null = null @Prop(Collection(training.class.TrainingAttempt), training.string.TrainingAttempts, { defaultValue: 0 }) - attempts: CollectionSize = 0 + attempts: CollectionSize = 0 @Prop(TypeTimestamp(), training.string.TrainingRequestCanceledDate, { defaultValue: null }) - canceledOn: Timestamp | null = null + canceledOn: Timestamp | null = null @Prop(TypeRef(contact.mixin.Employee), training.string.TrainingRequestCanceledBy, { defaultValue: null, editor: training.component.EmployeeEditor }) - canceledBy: Ref | null = null + canceledBy: Ref | null = null } @Model(training.class.TrainingAttempt, core.class.AttachedDoc, DOMAIN_TRAINING) @@ -225,38 +225,38 @@ export class TTrainingAttempt extends TAttachedDoc implements TrainingAttempt { editor: training.component.EmployeeEditor }) @Index(IndexKind.Indexed) - owner!: Ref + owner!: Ref @Prop(TypeNumber(), training.string.TrainingAttempt, { defaultValue: 1 }) @Index(IndexKind.Indexed) - seqNumber: number = 1 + seqNumber: number = 1 @Prop(TypeTrainingAttemptState(), training.string.State) @Index(IndexKind.Indexed) - state: TrainingAttemptState = TrainingAttemptState.Draft + state: TrainingAttemptState = TrainingAttemptState.Draft @Prop(Collection(questions.class.Answer), questions.string.Answers, { defaultValue: 0 }) - answers: CollectionSize> = 0 + answers: CollectionSize> = 0 @Prop(TypeTimestamp(), training.string.TrainingAttemptSubmittedDate, { defaultValue: null }) @Index(IndexKind.Indexed) - submittedOn: Timestamp | null = null + submittedOn: Timestamp | null = null @Prop(TypeRef(contact.mixin.Employee), training.string.TrainingAttemptSubmittedBy, { defaultValue: null, editor: training.component.EmployeeEditor }) - submittedBy: Ref | null = null + submittedBy: Ref | null = null @Prop(TypePercentage(), questions.string.Score, { defaultValue: null }) @Index(IndexKind.Indexed) - score: Percentage | null = null + score: Percentage | null = null @Prop(TypeNumber(), training.string.TrainingAttemptAssessmentsTotal, { defaultValue: null }) - assessmentsTotal: number | null = null + assessmentsTotal: number | null = null @Prop(TypeNumber(), training.string.TrainingAttemptAssessmentsPassed, { defaultValue: null }) - assessmentsPassed: number | null = null + assessmentsPassed: number | null = null } @Mixin(training.mixin.TrainingsTypeData, core.class.TypedSpace) diff --git a/plugins/ai-assistant-resources/src/components/Configure.svelte b/plugins/ai-assistant-resources/src/components/Configure.svelte index d2712cab2e..83417c5247 100644 --- a/plugins/ai-assistant-resources/src/components/Configure.svelte +++ b/plugins/ai-assistant-resources/src/components/Configure.svelte @@ -60,7 +60,7 @@ } }) - async function getSocialId (): Promise { + async function getSocialId(): Promise { const socialKey = buildSocialIdString({ type: SocialIdType.HULY_ASSISTANT, value: account.uuid diff --git a/plugins/billing-resources/src/stores/largestFiles.ts b/plugins/billing-resources/src/stores/largestFiles.ts index 2db8b6d137..8399c7b3cc 100644 --- a/plugins/billing-resources/src/stores/largestFiles.ts +++ b/plugins/billing-resources/src/stores/largestFiles.ts @@ -14,7 +14,7 @@ // import attachment, { type Attachment } from '@hcengineering/attachment' -import { type Class, type Client, type Ref, SortingOrder } from '@hcengineering/core' +import { type Client, SortingOrder } from '@hcengineering/core' import drive, { type File as DriveFile, type FileVersion } from '@hcengineering/drive' import { type LargestFileRow, type LargestFileRowRef, mergeBySizeDesc, topBySize } from './largestFilesLogic' diff --git a/plugins/billing-resources/src/utils.ts b/plugins/billing-resources/src/utils.ts index 8032696683..0a5a55eec1 100644 --- a/plugins/billing-resources/src/utils.ts +++ b/plugins/billing-resources/src/utils.ts @@ -29,7 +29,6 @@ import drive, { type File as DriveFile } from '@hcengineering/drive' import { type Account, type AttachedDoc, - type Class, type Doc, type Ref, type UsageStatus, diff --git a/plugins/card-resources/src/__tests__/cardTableFormatter.test.ts b/plugins/card-resources/src/__tests__/cardTableFormatter.test.ts index 0b4ea26a26..4b8be8dda4 100644 --- a/plugins/card-resources/src/__tests__/cardTableFormatter.test.ts +++ b/plugins/card-resources/src/__tests__/cardTableFormatter.test.ts @@ -78,7 +78,7 @@ describe('cardTableFormatter.formatCardValue (markup)', () => { buildMarkupAttr('richtext'), card, buildHierarchy(), - cardPlugin.class.Card as Ref>, + cardPlugin.class.Card, 'en' ) @@ -108,7 +108,7 @@ describe('cardTableFormatter.formatCardValue (markup)', () => { buildMarkupAttr('richtext'), card, buildHierarchy(), - cardPlugin.class.Card as Ref>, + cardPlugin.class.Card, 'en' ) @@ -125,7 +125,7 @@ describe('cardTableFormatter.formatCardValue (markup)', () => { buildMarkupAttr('richtext'), card, buildHierarchy(), - cardPlugin.class.Card as Ref>, + cardPlugin.class.Card, 'en' ) @@ -141,7 +141,7 @@ describe('cardTableFormatter.formatCardValue (markup)', () => { buildMarkupAttr('richtext'), card, buildHierarchy(), - cardPlugin.class.Card as Ref>, + cardPlugin.class.Card, 'en' ) @@ -158,7 +158,7 @@ describe('cardTableFormatter.formatCardValue (markup)', () => { buildMarkupAttr('richtext'), card, buildHierarchy(), - cardPlugin.class.Card as Ref>, + cardPlugin.class.Card, 'en' ) @@ -197,13 +197,7 @@ describe('cardTableFormatter.formatCardValue (markup)', () => { isLookup: false } as unknown as AttributeModel - const result = await formatCardValue( - attr, - castDoc, - buildHierarchy(), - cardPlugin.class.Card as Ref>, - 'en' - ) + const result = await formatCardValue(attr, castDoc, buildHierarchy(), cardPlugin.class.Card, 'en') expect(result).toBe('mixin value') }) @@ -249,7 +243,7 @@ describe('cardTableFormatter.formatCardValue (markup)', () => { buildMarkupAttr('richtext'), card, buildHierarchy(), - cardPlugin.class.Card as Ref>, + cardPlugin.class.Card, 'en' ) @@ -276,7 +270,7 @@ describe('cardTableFormatter.formatCardValue (markup)', () => { buildMarkupAttr('richtext'), card, buildHierarchy(), - cardPlugin.class.Card as Ref>, + cardPlugin.class.Card, 'en' ) @@ -342,7 +336,7 @@ describe('cardTableFormatter.formatCardValue (markup)', () => { getAllAttributes: jest.fn(() => new Map()) } as unknown as Hierarchy - const result = await formatCardValue(attr, card, hierarchy, cardPlugin.class.Card as Ref>, 'en') + const result = await formatCardValue(attr, card, hierarchy, cardPlugin.class.Card, 'en') expect(result).not.toMatch(/<[^>]+>/) expect(result).not.toContain('\n') @@ -371,7 +365,7 @@ describe('cardTableFormatter.formatCardValue (markup)', () => { getAllAttributes: jest.fn(() => new Map()) } as unknown as Hierarchy - const result = await formatCardValue(attr, card, hierarchy, cardPlugin.class.Card as Ref>, 'en') + const result = await formatCardValue(attr, card, hierarchy, cardPlugin.class.Card, 'en') expect(result).toBeUndefined() }) @@ -394,7 +388,7 @@ describe('cardTableFormatter.formatCardValue (markup)', () => { isLookup: false } as unknown as AttributeModel - const result = await formatCardValue(attr, card, buildHierarchy(), cardPlugin.class.Card as Ref>, 'en') + const result = await formatCardValue(attr, card, buildHierarchy(), cardPlugin.class.Card, 'en') expect(result).toBeUndefined() }) diff --git a/plugins/card-resources/src/__tests__/tagFormatter.test.ts b/plugins/card-resources/src/__tests__/tagFormatter.test.ts index 266a036e3a..3119bec466 100644 --- a/plugins/card-resources/src/__tests__/tagFormatter.test.ts +++ b/plugins/card-resources/src/__tests__/tagFormatter.test.ts @@ -144,7 +144,7 @@ describe('tagFormatter.formatTagValue', () => { hasMixin: jest.fn(() => true) } as unknown as Hierarchy - const result = await formatTagValue(attr, card as unknown as Doc, hierarchy, card._class as Ref>, 'en') + const result = await formatTagValue(attr, card, hierarchy, card._class, 'en') expect(result).toBe('Tag A') }) @@ -167,7 +167,7 @@ describe('tagFormatter.formatTagValue', () => { isDerived: jest.fn((cls: Ref>, target: Ref>) => cls === target) } as unknown as Hierarchy - const result = await formatTagValue(attr, tagDoc, hierarchy, tagDoc._class as any, 'en') + const result = await formatTagValue(attr, tagDoc, hierarchy, tagDoc._class, 'en') expect(result).toBe('Important') }) }) diff --git a/plugins/card-resources/src/card.ts b/plugins/card-resources/src/card.ts index a1b5aee1bb..8808d53a3c 100644 --- a/plugins/card-resources/src/card.ts +++ b/plugins/card-resources/src/card.ts @@ -18,7 +18,7 @@ import { type Heading } from '@hcengineering/text-editor' export async function getCardSections (card: Card): Promise { const client = getClient() - const sections: CardSection[] = client + const sections: CompactModeCardSection[] = client .getModel() .findAllSync(cardPlugin.class.CardSection, {}) .sort((a, b) => a.order - b.order) diff --git a/plugins/card-resources/src/components/CardArrayEditor.svelte b/plugins/card-resources/src/components/CardArrayEditor.svelte index b7c3d3d6b5..acd349d9a8 100644 --- a/plugins/card-resources/src/components/CardArrayEditor.svelte +++ b/plugins/card-resources/src/components/CardArrayEditor.svelte @@ -67,7 +67,7 @@ ) } - function toArray (value: Ref[] | Ref | undefined): Ref[] { + function toArray(value: Ref[] | Ref | undefined): Ref[] { if (Array.isArray(value)) { return value } diff --git a/plugins/card-resources/src/components/CardAttributeEditor.svelte b/plugins/card-resources/src/components/CardAttributeEditor.svelte index 47158c15a7..b16d8eec4a 100644 --- a/plugins/card-resources/src/components/CardAttributeEditor.svelte +++ b/plugins/card-resources/src/components/CardAttributeEditor.svelte @@ -51,12 +51,12 @@ let masterTagAttributes: MasterTagAttributes - function collapseAll (): void { + function collapseAll(): void { masterTagAttributes.collapse() tagAttributes.forEach((tag) => tag.collapse()) } - function expandAll (): void { + function expandAll(): void { masterTagAttributes.expand() tagAttributes.forEach((tag) => tag.expand()) } diff --git a/plugins/card-resources/src/components/CardAttributes.svelte b/plugins/card-resources/src/components/CardAttributes.svelte index eaa62c51bf..8a57f3b0fa 100644 --- a/plugins/card-resources/src/components/CardAttributes.svelte +++ b/plugins/card-resources/src/components/CardAttributes.svelte @@ -41,7 +41,7 @@ let keys: KeyedAttribute[] = [] - function updateKeys (_class: Ref>, ignoreKeys: string[], to: Ref> | undefined): void { + function updateKeys(_class: Ref>, ignoreKeys: string[], to: Ref> | undefined): void { const filtredKeys = [...hierarchy.getAllAttributes(_class, to).entries()] .filter( ([key, value]) => @@ -66,7 +66,7 @@ updateKeys(_class, ignoreKeys, to) }) - function canChange (attr: AnyAttribute, permissionsStore: PermissionsStore): boolean { + function canChange(attr: AnyAttribute, permissionsStore: PermissionsStore): boolean { return canChangeAttribute(attr, object.space as Ref, permissionsStore, _class) } diff --git a/plugins/card-resources/src/components/CardFeedView.svelte b/plugins/card-resources/src/components/CardFeedView.svelte index e292e3add9..c42705da46 100644 --- a/plugins/card-resources/src/components/CardFeedView.svelte +++ b/plugins/card-resources/src/components/CardFeedView.svelte @@ -67,7 +67,7 @@ $: hasNextPage = total > cards.length - function onScroll (): void { + function onScroll(): void { if (divScroll != null && hasNextPage && !isLoading) { const isAtBottom = divScroll.scrollTop + divScroll.clientHeight >= divScroll.scrollHeight - 400 if (isAtBottom) { @@ -77,7 +77,7 @@ } } - function getSpaceFromFilter (_query: DocumentQuery): Ref | undefined { + function getSpaceFromFilter(_query: DocumentQuery): Ref | undefined { if (_query.space != null) { if (typeof _query.space === 'object' && '$in' in _query.space && Array.isArray(_query.space.$in)) { return _query.space.$in[0] as Ref @@ -87,7 +87,7 @@ return undefined } - function getFormatDateId (timestamp: number): string { + function getFormatDateId(timestamp: number): string { const now = new Date() const date = new Date(timestamp) diff --git a/plugins/card-resources/src/components/CardIcon.svelte b/plugins/card-resources/src/components/CardIcon.svelte index 5377588f83..a04f90e7d9 100644 --- a/plugins/card-resources/src/components/CardIcon.svelte +++ b/plugins/card-resources/src/components/CardIcon.svelte @@ -44,7 +44,7 @@ query.unsubscribe() } - async function chooseIcon (): Promise { + async function chooseIcon(): Promise { if (doc === undefined) return const { icon, color } = doc const update = async (result: any): Promise => { diff --git a/plugins/card-resources/src/components/CardPresenter.svelte b/plugins/card-resources/src/components/CardPresenter.svelte index 9a9e81554e..bced936037 100644 --- a/plugins/card-resources/src/components/CardPresenter.svelte +++ b/plugins/card-resources/src/components/CardPresenter.svelte @@ -50,7 +50,7 @@ } } - async function readCard (ref: Ref): Promise { + async function readCard(ref: Ref): Promise { cardObj = await client.findOne(card.class.Card, { _id: ref }) } diff --git a/plugins/card-resources/src/components/CardTagColored.svelte b/plugins/card-resources/src/components/CardTagColored.svelte index ec90690d32..b0e7b11e47 100644 --- a/plugins/card-resources/src/components/CardTagColored.svelte +++ b/plugins/card-resources/src/components/CardTagColored.svelte @@ -31,7 +31,7 @@ const dispatch = createEventDispatcher() - function getTagStyle (color: ColorDefinition): string { + function getTagStyle(color: ColorDefinition): string { return ` background: ${color.color + '33'}; border: 1px solid ${color.color + '66'}; diff --git a/plugins/card-resources/src/components/CardTagsColored.svelte b/plugins/card-resources/src/components/CardTagsColored.svelte index 7777ef473c..c382af9bbd 100644 --- a/plugins/card-resources/src/components/CardTagsColored.svelte +++ b/plugins/card-resources/src/components/CardTagsColored.svelte @@ -46,7 +46,7 @@ $: type = hierarchy.getClass(value._class) as MasterTag - function updateVisibleTags (): void { + function updateVisibleTags(): void { if (!collapsable || containerRef == null || tags.length === 0) { visibleTags = tags hiddenTagsCount = 0 @@ -89,7 +89,7 @@ visibleTags = tags.slice(0, visible) hiddenTagsCount = tags.length - visible } - function setupResizeObserver (): void { + function setupResizeObserver(): void { if (!collapsable) { return } diff --git a/plugins/card-resources/src/components/CardTimestamp.svelte b/plugins/card-resources/src/components/CardTimestamp.svelte index ca2c5e40be..c95628d52d 100644 --- a/plugins/card-resources/src/components/CardTimestamp.svelte +++ b/plugins/card-resources/src/components/CardTimestamp.svelte @@ -29,7 +29,7 @@ year: 'numeric' }) - function getShortTime (date: Timestamp): string { + function getShortTime(date: Timestamp): string { const options: Intl.DateTimeFormatOptions = { hour: 'numeric', minute: 'numeric' } return new Date(date).toLocaleTimeString('default', options).split(' ')[0] diff --git a/plugins/card-resources/src/components/CardVersionSelector.svelte b/plugins/card-resources/src/components/CardVersionSelector.svelte index 1e7d165c5c..16d37dc832 100644 --- a/plugins/card-resources/src/components/CardVersionSelector.svelte +++ b/plugins/card-resources/src/components/CardVersionSelector.svelte @@ -56,14 +56,14 @@ } }) - function navigateTo (_id: Ref): void { + function navigateTo(_id: Ref): void { const loc = getCurrentLocation() loc.path[2] = cardId loc.path[3] = _id navigate(loc) } - function selectHandler (e: CustomEvent): void { + function selectHandler(e: CustomEvent): void { const val = e.detail if (val != null) { navigateTo(val) diff --git a/plugins/card-resources/src/components/ChangeType.svelte b/plugins/card-resources/src/components/ChangeType.svelte index 116bc8b5fc..fee6c73a94 100644 --- a/plugins/card-resources/src/components/ChangeType.svelte +++ b/plugins/card-resources/src/components/ChangeType.svelte @@ -32,7 +32,7 @@ $: mapping = buildMapping(selected, value._class) - async function changeType (): Promise { + async function changeType(): Promise { if (selected == null || selected === value._class) return const cloned = hierarchy.clone(value) applyMapping(cloned, mapping) @@ -46,7 +46,7 @@ Analytics.handleEvent(CardEvents.TypeCreated) } - function applyMapping (object: Card, mapping: Record): void { + function applyMapping(object: Card, mapping: Record): void { for (const [key, value] of Object.entries(mapping)) { if ((object as any)[key] !== undefined) { ;(object as any)[value.name] = (object as any)[key] @@ -54,7 +54,7 @@ } } - function buildMapping (selected: Ref | null, current: Ref): Record { + function buildMapping(selected: Ref | null, current: Ref): Record { if (selected == null || selected === current) return {} const selectedAttributes = hierarchy.getAllAttributes(selected, card.class.Card) const currentAttributes = hierarchy.getAllAttributes(current, card.class.Card) diff --git a/plugins/card-resources/src/components/Childs.svelte b/plugins/card-resources/src/components/Childs.svelte index d26886b544..90cc4ed2f4 100644 --- a/plugins/card-resources/src/components/Childs.svelte +++ b/plugins/card-resources/src/components/Childs.svelte @@ -95,7 +95,7 @@ let listWidth: number - async function createCard (): Promise { + async function createCard(): Promise { await createChildCard(object) } diff --git a/plugins/card-resources/src/components/ColoredCardIcon.svelte b/plugins/card-resources/src/components/ColoredCardIcon.svelte index 88def1302f..09cacb349a 100644 --- a/plugins/card-resources/src/components/ColoredCardIcon.svelte +++ b/plugins/card-resources/src/components/ColoredCardIcon.svelte @@ -33,7 +33,7 @@ $: color = clazz.background ?? 0 $: platformColor = getPlatformColorDef(color, $themeStore.dark) - function getIconStyle (platformColor: any): string { + function getIconStyle(platformColor: any): string { return ` box-shadow: 0 2px 3px 0 ${platformColor.color}; ` diff --git a/plugins/card-resources/src/components/Content.svelte b/plugins/card-resources/src/components/Content.svelte index f3b5bef01e..0c8a323fec 100644 --- a/plugins/card-resources/src/components/Content.svelte +++ b/plugins/card-resources/src/components/Content.svelte @@ -36,7 +36,7 @@ $: isFile = hierarchy.isDerived(doc._class, card.types.File) - async function showContextMenu (blob: BlobType, ev: MouseEvent) { + async function showContextMenu(blob: BlobType, ev: MouseEvent) { ev.preventDefault() ev.stopPropagation() const actions: Action[] = [ diff --git a/plugins/card-resources/src/components/ContentEditor.svelte b/plugins/card-resources/src/components/ContentEditor.svelte index 7ea8f35f78..457025eeb7 100644 --- a/plugins/card-resources/src/components/ContentEditor.svelte +++ b/plugins/card-resources/src/components/ContentEditor.svelte @@ -45,7 +45,7 @@ let collabEditor: CollaboratorEditor - export function focus (position?: FocusPosition): void { + export function focus(position?: FocusPosition): void { collabEditor.focus(position) } diff --git a/plugins/card-resources/src/components/ContentPreview.svelte b/plugins/card-resources/src/components/ContentPreview.svelte index 615ec9a9c7..468e5ffe8b 100644 --- a/plugins/card-resources/src/components/ContentPreview.svelte +++ b/plugins/card-resources/src/components/ContentPreview.svelte @@ -28,7 +28,7 @@ const remFactor = 16 // Function to safely parse maxHeight with fallback - function getMaxSize (maxHeight: string): number { + function getMaxSize(maxHeight: string): number { const remValue = parseFloat(maxHeight.replace('rem', '')) if (isNaN(remValue) || remValue <= 0) { return 30 * remFactor diff --git a/plugins/card-resources/src/components/CreateCardButton.svelte b/plugins/card-resources/src/components/CreateCardButton.svelte index ea7d313287..9f08d3e2c2 100644 --- a/plugins/card-resources/src/components/CreateCardButton.svelte +++ b/plugins/card-resources/src/components/CreateCardButton.svelte @@ -28,7 +28,7 @@ const client = getClient() const hierarchy = client.getHierarchy() - async function createCard (): Promise { + async function createCard(): Promise { if (_class === undefined) return if (isBaseTypeWithSubtypes(hierarchy, _class as Ref)) { showPopup( diff --git a/plugins/card-resources/src/components/CreateCardPopup.svelte b/plugins/card-resources/src/components/CreateCardPopup.svelte index c50b55cb94..2f5d7688b6 100644 --- a/plugins/card-resources/src/components/CreateCardPopup.svelte +++ b/plugins/card-resources/src/components/CreateCardPopup.svelte @@ -39,9 +39,9 @@ $: extension = type != null ? client - .getModel() - .findAllSync(card.mixin.CreateCardExtension, {}) - .find((it) => hierarchy.isDerived(type, it._id)) + .getModel() + .findAllSync(card.mixin.CreateCardExtension, {}) + .find((it) => hierarchy.isDerived(type, it._id)) : undefined diff --git a/plugins/card-resources/src/components/CreateCardPopupFull.svelte b/plugins/card-resources/src/components/CreateCardPopupFull.svelte index a70fd9ed26..b934acd7d2 100644 --- a/plugins/card-resources/src/components/CreateCardPopupFull.svelte +++ b/plugins/card-resources/src/components/CreateCardPopupFull.svelte @@ -48,7 +48,7 @@ const me = getCurrentEmployee() const _id = generateId() - function getCreateCardExtension (_type: Ref | null): CreateCardExtension | undefined { + function getCreateCardExtension(_type: Ref | null): CreateCardExtension | undefined { if (_type == null) return undefined return client @@ -118,7 +118,7 @@ } } - function handleCancel (): void { + function handleCancel(): void { dispatch('close') } @@ -126,7 +126,7 @@ $: void updateLabel($languageStore, type) - async function updateLabel (lang: string, _type: Ref | null): Promise { + async function updateLabel(lang: string, _type: Ref | null): Promise { const createString = await translate(presentation.string.Create, {}, lang) if (_type == null) { label = createString @@ -138,7 +138,7 @@ label = `${createString} ${typeString}` } - function openSelectUsersPopup (): void { + function openSelectUsersPopup(): void { showPopup( SelectUsersPopup, { @@ -158,7 +158,7 @@ ) } - function handleChange (event: CustomEvent<{ data: Partial>, space?: Ref }>): void { + function handleChange(event: CustomEvent<{ data: Partial>, space?: Ref }>): void { data = { ...data, ...event.detail.data diff --git a/plugins/card-resources/src/components/CreateCardPopupSimple.svelte b/plugins/card-resources/src/components/CreateCardPopupSimple.svelte index f5f4247340..004fb33250 100644 --- a/plugins/card-resources/src/components/CreateCardPopupSimple.svelte +++ b/plugins/card-resources/src/components/CreateCardPopupSimple.svelte @@ -36,7 +36,7 @@ const hierarchy = client.getHierarchy() const _id = generateId() - function getCreateCardExtension (_type: Ref | null): CreateCardExtension | undefined { + function getCreateCardExtension(_type: Ref | null): CreateCardExtension | undefined { if (_type == null) return undefined return client @@ -66,7 +66,7 @@ let creating = false - async function okAction (): Promise { + async function okAction(): Promise { if (_space === undefined || type == null) return try { @@ -92,7 +92,7 @@ } } - function handleCancel (): void { + function handleCancel(): void { dispatch('close') } @@ -100,7 +100,7 @@ $: void updateLabel($languageStore, type) - async function updateLabel (lang: string, _type: Ref | null): Promise { + async function updateLabel(lang: string, _type: Ref | null): Promise { const createString = await translate(presentation.string.Create, {}, lang) if (_type == null) { label = createString diff --git a/plugins/card-resources/src/components/Description.svelte b/plugins/card-resources/src/components/Description.svelte index 13b859076b..aa36b4a255 100644 --- a/plugins/card-resources/src/components/Description.svelte +++ b/plugins/card-resources/src/components/Description.svelte @@ -35,7 +35,7 @@ let editor: ContentEditor - async function createEmbedding (file: File): Promise<{ file: Ref, type: string } | undefined> { + async function createEmbedding(file: File): Promise<{ file: Ref, type: string } | undefined> { if (doc === undefined) { return undefined } diff --git a/plugins/card-resources/src/components/DuplicateCard.svelte b/plugins/card-resources/src/components/DuplicateCard.svelte index 205e08cac5..5ac0b4d4bf 100644 --- a/plugins/card-resources/src/components/DuplicateCard.svelte +++ b/plugins/card-resources/src/components/DuplicateCard.svelte @@ -83,7 +83,7 @@ const relationsA = associations.filter((it) => targets.has(it.classB)) const relationsB = associations.filter((it) => targets.has(it.classA)) - async function save (): Promise { + async function save(): Promise { await duplicateCard(value, { excludedProperties: [...excludedProperties], excludedRelations: [...excludedRelations], @@ -92,7 +92,7 @@ dispatch('close') } - function propertiesSelected (event: CustomEvent): void { + function propertiesSelected(event: CustomEvent): void { const selectedProperties = event.detail as string[] allProperties.forEach((it) => { if (!selectedProperties.includes(it.id)) { @@ -104,7 +104,7 @@ excludedProperties = excludedProperties } - function mixinsSelected (event: CustomEvent): void { + function mixinsSelected(event: CustomEvent): void { const selectedMixins = event.detail as string[] mixins.forEach((it) => { if (!selectedMixins.includes(it)) { diff --git a/plugins/card-resources/src/components/EditCard.svelte b/plugins/card-resources/src/components/EditCard.svelte index f063e894f0..fd44c87874 100644 --- a/plugins/card-resources/src/components/EditCard.svelte +++ b/plugins/card-resources/src/components/EditCard.svelte @@ -27,7 +27,7 @@ export let embedded: boolean = false export let allowClose: boolean = true - export function canClose (): boolean { + export function canClose(): boolean { return false } diff --git a/plugins/card-resources/src/components/EditCardNew.svelte b/plugins/card-resources/src/components/EditCardNew.svelte index 31b6a25d17..fd87a4d6a1 100644 --- a/plugins/card-resources/src/components/EditCardNew.svelte +++ b/plugins/card-resources/src/components/EditCardNew.svelte @@ -161,12 +161,12 @@ $: _readonly = (readonly || doc?.readonly || doc?.readonlyFields?.includes('title')) ?? false $: updatePermissionForbidden = doc && !canChangeDoc(doc?._class, doc?.space, $permissionsStore) - function setLayout (mode: 'auto' | '1' | '2'): void { + function setLayout(mode: 'auto' | '1' | '2'): void { if (doc === undefined) return setViewMode(doc?._class, mode) } - function showViewPopup (ev: MouseEvent): void { + function showViewPopup(ev: MouseEvent): void { if (doc === undefined) return const items: DropdownIntlItem[] = [ { diff --git a/plugins/card-resources/src/components/EditCardTableOfContents.svelte b/plugins/card-resources/src/components/EditCardTableOfContents.svelte index f35c6c3eb1..79c51c4909 100644 --- a/plugins/card-resources/src/components/EditCardTableOfContents.svelte +++ b/plugins/card-resources/src/components/EditCardTableOfContents.svelte @@ -67,7 +67,7 @@ let renderTopSections = defaults?.defaultSection !== communication.ids.CardMessagesSection - export function scrollDown (): void { + export function scrollDown(): void { if (scrollDiv == null) return const lastTocItem = toc[toc.length - 1] if (lastTocItem === undefined) return @@ -76,11 +76,11 @@ void navigate() } - export function editLastMessage (): void { + export function editLastMessage(): void { sectionRef[messagesId]?.editLastMessage?.() } - export function hideScrollBar (): void { + export function hideScrollBar(): void { hideBar = true if (timer != null) { clearTimeout(timer) @@ -90,12 +90,12 @@ }, 1000) } - function getBottomOffset (): number { + function getBottomOffset(): number { if (scrollDiv == null) return 0 return Math.max(0, Math.floor(scrollDiv.scrollHeight - scrollDiv.scrollTop - scrollDiv.clientHeight)) } - async function navigate (): Promise { + async function navigate(): Promise { if (selectedToc === undefined) return if (selectedToc.id !== messagesId && !renderTopSections) { renderTopSections = true @@ -115,7 +115,7 @@ isScrollInitialized = true } - function updateToc (sections: CardSection[], subTocBySection: Record): void { + function updateToc(sections: CardSection[], subTocBySection: Record): void { if (sections.length === 0) return toc = getCardToc(sections, subTocBySection) @@ -127,7 +127,7 @@ } } - function handleNavigationClick (heading: Heading): void { + function handleNavigationClick(heading: Heading): void { if (heading.group !== messagesId) { renderTopSections = true } @@ -135,7 +135,7 @@ void navigate() } - function handleSectionLoaded (_id: Ref): void { + function handleSectionLoaded(_id: Ref): void { const wasLoaded = sectionLoaded[_id] === true sectionLoaded[_id] = true if (!wasLoaded && selectedToc?.group === _id) { @@ -143,12 +143,12 @@ } } - function handleChangeNavigation (section: Ref, id: string): void { + function handleChangeNavigation(section: Ref, id: string): void { if (selectedToc?.group !== section) return selectedToc = toc.find((it) => it.group === section && it.id === id) } - function handleAction (section: Ref, action: CardSectionAction): void { + function handleAction(section: Ref, action: CardSectionAction): void { if (action.id === 'toc') { subTocBySection[section] = action.toc subTocBySection = subTocBySection @@ -164,7 +164,7 @@ } } - function handleScroll (): void { + function handleScroll(): void { if (scrollDiv == null || showOverlay) return const allLoaded = renderTopSections @@ -200,7 +200,7 @@ bottomOffset = getBottomOffset() } - function handleScrollDown (): void { + function handleScrollDown(): void { const ref = sectionRef[messagesId] if (ref?.scrollDown != null) { ref.scrollDown() @@ -209,7 +209,7 @@ } } - function canScrollDown (): boolean { + function canScrollDown(): boolean { const ref = sectionRef[messagesId] if (ref === undefined) return false diff --git a/plugins/card-resources/src/components/EditorActions.svelte b/plugins/card-resources/src/components/EditorActions.svelte index 21d0cbd937..8df1b9ff16 100644 --- a/plugins/card-resources/src/components/EditorActions.svelte +++ b/plugins/card-resources/src/components/EditorActions.svelte @@ -23,7 +23,7 @@ $: sortedActions = actions.slice().sort((a, b) => a.order - b.order) - function handleAction (action: RefAction, evt?: Event): void { + function handleAction(action: RefAction, evt?: Event): void { if (editorHandler === undefined) { console.error('Editor handler is not available') return diff --git a/plugins/card-resources/src/components/FilePlaceholder.svelte b/plugins/card-resources/src/components/FilePlaceholder.svelte index ad4fec41e0..ca37c35db0 100644 --- a/plugins/card-resources/src/components/FilePlaceholder.svelte +++ b/plugins/card-resources/src/components/FilePlaceholder.svelte @@ -27,7 +27,7 @@ let inputFile: HTMLInputElement let dragover = false - async function onFileUploaded ({ uuid, name, file, metadata }: FileUploadCallbackParams): Promise { + async function onFileUploaded({ uuid, name, file, metadata }: FileUploadCallbackParams): Promise { const blobs = doc.blobs ?? {} blobs[uuid] = { name, @@ -41,7 +41,7 @@ }) } - async function fileSelected (): Promise { + async function fileSelected(): Promise { const list = inputFile.files if (list === null || list.length === 0) return @@ -56,7 +56,7 @@ inputFile.value = '' } - async function fileDrop (e: DragEvent): Promise { + async function fileDrop(e: DragEvent): Promise { dragover = false e.preventDefault() e.stopPropagation() diff --git a/plugins/card-resources/src/components/Main.svelte b/plugins/card-resources/src/components/Main.svelte index 34af5882ad..c905ebc35e 100644 --- a/plugins/card-resources/src/components/Main.svelte +++ b/plugins/card-resources/src/components/Main.svelte @@ -44,7 +44,7 @@ $: label = getLabel(clazz) - function getLabel (clazz: MasterTag | undefined): IntlString | undefined { + function getLabel(clazz: MasterTag | undefined): IntlString | undefined { return clazz?.label } diff --git a/plugins/card-resources/src/components/MarkupProperties.svelte b/plugins/card-resources/src/components/MarkupProperties.svelte index 7d263e467c..8c2d280171 100644 --- a/plugins/card-resources/src/components/MarkupProperties.svelte +++ b/plugins/card-resources/src/components/MarkupProperties.svelte @@ -35,7 +35,7 @@ const client = getClient() const hierarchy = client.getHierarchy() - function updateKeys (_class: Ref>, to: Ref> | undefined): void { + function updateKeys(_class: Ref>, to: Ref> | undefined): void { const filtredKeys = [...hierarchy.getAllAttributes(_class, to).entries()] .filter(([key, value]) => value.hidden !== true && value.type._class === core.class.TypeMarkup) .map(([key, attr]) => ({ key, attr })) @@ -51,12 +51,12 @@ $: to = tag?.extends $: updateKeys(_class, to) - function getValue (doc: Card, key: string): string { + function getValue(doc: Card, key: string): string { const target = tag !== undefined ? hierarchy.as(doc, tag._id) : doc return (target as any)[key] } - function onChange (value: any, attr: KeyedAttribute): void { + function onChange(value: any, attr: KeyedAttribute): void { dispatch('update', { key: attr, value }) void updateAttribute(client, doc, doc._class, attr, value, false, { @@ -64,7 +64,7 @@ }) } - async function attachFile (file: File): Promise<{ file: Ref, type: string } | undefined> { + async function attachFile(file: File): Promise<{ file: Ref, type: string } | undefined> { try { const uploadFile = await getResource(attachment.helper.UploadFile) const { uuid } = await uploadFile(file) diff --git a/plugins/card-resources/src/components/MasterTagAttributes.svelte b/plugins/card-resources/src/components/MasterTagAttributes.svelte index 6bf62a850d..1549fa3713 100644 --- a/plugins/card-resources/src/components/MasterTagAttributes.svelte +++ b/plugins/card-resources/src/components/MasterTagAttributes.svelte @@ -48,11 +48,11 @@ let isCollapsed = false - export function collapse (): void { + export function collapse(): void { isCollapsed = true } - export function expand (): void { + export function expand(): void { isCollapsed = false } @@ -61,7 +61,7 @@ $: canLock = canLockSection(value.space, $permissionsStore) $: canUnlock = canUnlockSection(value.space, $permissionsStore) - async function toggleLock (ev: MouseEvent): Promise { + async function toggleLock(ev: MouseEvent): Promise { ev.stopPropagation() const op = isLocked ? '$pull' : '$push' const targets = isLocked diff --git a/plugins/card-resources/src/components/MasterTags.svelte b/plugins/card-resources/src/components/MasterTags.svelte index cbd66fe831..b960715496 100644 --- a/plugins/card-resources/src/components/MasterTags.svelte +++ b/plugins/card-resources/src/components/MasterTags.svelte @@ -58,7 +58,7 @@ } ) - function createMasterTag (): void { + function createMasterTag(): void { showPopup(CreateTag, { parent: undefined, _class: card.class.MasterTag diff --git a/plugins/card-resources/src/components/NewCardForm.svelte b/plugins/card-resources/src/components/NewCardForm.svelte index 708f5f57d9..4c25ddc97b 100644 --- a/plugins/card-resources/src/components/NewCardForm.svelte +++ b/plugins/card-resources/src/components/NewCardForm.svelte @@ -65,7 +65,7 @@ let description: Markup = EmptyMarkup let initialized = false - function initializeFromDraft (draft: CardDraft): void { + function initializeFromDraft(draft: CardDraft): void { title = draft.title description = draft.description if (draft.type !== undefined) { @@ -102,12 +102,12 @@ $: extension = type != null ? client - .getModel() - .findAllSync(card.mixin.CreateCardExtension, {}) - .find((it) => hierarchy.isDerived(type, it._id)) + .getModel() + .findAllSync(card.mixin.CreateCardExtension, {}) + .find((it) => hierarchy.isDerived(type, it._id)) : undefined - async function okAction (): Promise { + async function okAction(): Promise { if (space === undefined || type == null) return try { @@ -182,7 +182,7 @@ draftController.remove() } - function expand (): void { + function expand(): void { const prevExpanded = isExpanded isExpanded = true if (!prevExpanded) { diff --git a/plugins/card-resources/src/components/ParentNamesPresenter.svelte b/plugins/card-resources/src/components/ParentNamesPresenter.svelte index 0ec37dcbcd..a04edc91d1 100644 --- a/plugins/card-resources/src/components/ParentNamesPresenter.svelte +++ b/plugins/card-resources/src/components/ParentNamesPresenter.svelte @@ -26,7 +26,7 @@ const MIN_WIDTH = 2 // rem - function getHref (parentInfo: ParentInfo): string { + function getHref(parentInfo: ParentInfo): string { const loc = getCurrentLocation() loc.path[2] = cardId loc.path[3] = parentInfo._id diff --git a/plugins/card-resources/src/components/SetParentActionPopup.svelte b/plugins/card-resources/src/components/SetParentActionPopup.svelte index 4b3406215d..f20842b797 100644 --- a/plugins/card-resources/src/components/SetParentActionPopup.svelte +++ b/plugins/card-resources/src/components/SetParentActionPopup.svelte @@ -28,7 +28,7 @@ sort: { modifiedOn: SortingOrder.Descending } } - async function onClose ({ detail: parent }: CustomEvent): Promise { + async function onClose({ detail: parent }: CustomEvent): Promise { const vv = Array.isArray(value) ? value : [value] for (const docValue of vv) { if ( diff --git a/plugins/card-resources/src/components/TagAttributes.svelte b/plugins/card-resources/src/components/TagAttributes.svelte index 8995394fe3..0554c74c5b 100644 --- a/plugins/card-resources/src/components/TagAttributes.svelte +++ b/plugins/card-resources/src/components/TagAttributes.svelte @@ -49,11 +49,11 @@ let isCollapsed = false - export function collapse (): void { + export function collapse(): void { isCollapsed = true } - export function expand (): void { + export function expand(): void { isCollapsed = false } @@ -66,7 +66,7 @@ $: canUnlock = canUnlockSection(value.space, $permissionsStore) $: _readonly = readonly || isLocked - async function toggleLock (ev: MouseEvent): Promise { + async function toggleLock(ev: MouseEvent): Promise { ev.stopPropagation() const op = isLocked ? '$pull' : '$push' await client.update(value, { [op]: { readonlySections: tag._id } }) diff --git a/plugins/card-resources/src/components/TagsEditor.svelte b/plugins/card-resources/src/components/TagsEditor.svelte index e5c88a66b4..5e3c87fb65 100644 --- a/plugins/card-resources/src/components/TagsEditor.svelte +++ b/plugins/card-resources/src/components/TagsEditor.svelte @@ -42,14 +42,14 @@ $: activeTags = tags.filter((tag) => hierarchy.hasMixin(doc, tag._id)) - async function removeTag (tagId: string): Promise { + async function removeTag(tagId: string): Promise { await client.update(doc, { $unset: { [tagId]: true } }) } $: ancestors = hierarchy.getAncestors(doc._class) $: possibleMixins = getPossibleMixins(doc._class, tags) - function getPossibleMixins (_class: Ref>, tags: Tag[]): Tag[] { + function getPossibleMixins(_class: Ref>, tags: Tag[]): Tag[] { const res: Tag[] = [] for (const p of tags) { try { @@ -65,7 +65,7 @@ return res } $: dropdownItems = possibleMixins.map((mixin) => ({ id: mixin._id, label: mixin.label })) - function add (e: MouseEvent): void { + function add(e: MouseEvent): void { showPopup( SelectPopup, { @@ -80,20 +80,20 @@ ) } - function isRemoveable (mixinId: Ref>, activeTags: Tag[]): boolean { + function isRemoveable(mixinId: Ref>, activeTags: Tag[]): boolean { const desc = hierarchy.getDescendants(mixinId) return !desc.some((p) => hierarchy.hasMixin(doc, p) && p !== mixinId) } - function checkForbiddenPermission (permission: Ref, permissionsStore: PermissionsStore): boolean { + function checkForbiddenPermission(permission: Ref, permissionsStore: PermissionsStore): boolean { return checkMyPermission(permission, doc.space as Ref, permissionsStore) } - function checkRemovePermission (permissionsStore: PermissionsStore): boolean { + function checkRemovePermission(permissionsStore: PermissionsStore): boolean { return checkForbiddenPermission(card.permission.ForbidRemoveTag, permissionsStore) } - function checkAddPermission (permissionsStore: PermissionsStore): boolean { + function checkAddPermission(permissionsStore: PermissionsStore): boolean { return checkForbiddenPermission(card.permission.ForbidAddTag, permissionsStore) } diff --git a/plugins/card-resources/src/components/TypeSelector.svelte b/plugins/card-resources/src/components/TypeSelector.svelte index 586efe801b..619ccf196f 100644 --- a/plugins/card-resources/src/components/TypeSelector.svelte +++ b/plugins/card-resources/src/components/TypeSelector.svelte @@ -39,7 +39,7 @@ return roots === undefined || roots.includes(getRootType(hierarchy, type)) } - function isSelectableClass (_class: Class, roots: Ref[] | undefined, skipBaseTypes: boolean): boolean { + function isSelectableClass(_class: Class, roots: Ref[] | undefined, skipBaseTypes: boolean): boolean { if (_class.label === undefined) return false if (_class.kind !== ClassifierKind.CLASS) return false if ((_class as MasterTag).removed === true) return false @@ -48,7 +48,7 @@ return true } - function filterClasses ( + function filterClasses( root: Ref, roots: Ref[] | undefined, skipBaseTypes: boolean @@ -87,7 +87,7 @@ return result } - function getIconProps (tag: MasterTag): Pick { + function getIconProps(tag: MasterTag): Pick { return { icon: tag.icon === view.ids.IconWithEmoji ? IconWithEmoji : (tag.icon ?? card.icon.MasterTag), iconProps: tag.icon === view.ids.IconWithEmoji ? { icon: tag.color } : {} diff --git a/plugins/card-resources/src/components/navigator-next/Navigator.svelte b/plugins/card-resources/src/components/navigator-next/Navigator.svelte index 01358f8281..142be07db4 100644 --- a/plugins/card-resources/src/components/navigator-next/Navigator.svelte +++ b/plugins/card-resources/src/components/navigator-next/Navigator.svelte @@ -75,7 +75,7 @@ spaces = [] } - function selectType (event: CustomEvent): void { + function selectType(event: CustomEvent): void { selectedType = event.detail._id selectedCard = undefined selectedSpecial = undefined @@ -83,14 +83,14 @@ dispatch('selectType', event.detail) } - function selectCard (event: CustomEvent): void { + function selectCard(event: CustomEvent): void { selectedCard = event.detail._id selectedType = undefined selectedSpecial = undefined dispatch('selectCard', event.detail) } - function favorites (): void { + function favorites(): void { selectedCard = undefined selectedType = undefined selectedSpecial = 'favorites' diff --git a/plugins/card-resources/src/components/navigator-next/NavigatorCard.svelte b/plugins/card-resources/src/components/navigator-next/NavigatorCard.svelte index 52a69406c9..25af5a581c 100644 --- a/plugins/card-resources/src/components/navigator-next/NavigatorCard.svelte +++ b/plugins/card-resources/src/components/navigator-next/NavigatorCard.svelte @@ -42,7 +42,7 @@ let activeAction: string | undefined = undefined - function toggleFavoriteCard (): void { + function toggleFavoriteCard(): void { if (favorite !== undefined) { void client.remove(favorite) } else { @@ -81,7 +81,7 @@ } ] - function getCardTitle (card: Card): string { + function getCardTitle(card: Card): string { if ((card?.parentInfo?.length ?? 0) === 0) return card.title const parent = card.parentInfo[card.parentInfo.length - 1] if (parent != null) { diff --git a/plugins/card-resources/src/components/navigator-next/NavigatorCardsSection.svelte b/plugins/card-resources/src/components/navigator-next/NavigatorCardsSection.svelte index dc00b18395..71608875cf 100644 --- a/plugins/card-resources/src/components/navigator-next/NavigatorCardsSection.svelte +++ b/plugins/card-resources/src/components/navigator-next/NavigatorCardsSection.svelte @@ -127,7 +127,7 @@ $: sortedCards = filteredCards $: empty = sortedCards.length === 0 - function filterCards (cards: Card[], favorites: FavoriteCard[]): Card[] { + function filterCards(cards: Card[], favorites: FavoriteCard[]): Card[] { return cards.filter((it) => !favorites.some((fav) => fav.attachedTo === it._id)) } diff --git a/plugins/card-resources/src/components/navigator-next/NavigatorHierarchy.svelte b/plugins/card-resources/src/components/navigator-next/NavigatorHierarchy.svelte index 94eed7fc35..82fd5d54e5 100644 --- a/plugins/card-resources/src/components/navigator-next/NavigatorHierarchy.svelte +++ b/plugins/card-resources/src/components/navigator-next/NavigatorHierarchy.svelte @@ -31,7 +31,7 @@ let descendants = new Map>, MasterTag[]>() - function getDescendants (_class: Ref): MasterTag[] { + function getDescendants(_class: Ref): MasterTag[] { const hierarchy = client.getHierarchy() const result: MasterTag[] = [] const desc = hierarchy.getDescendants(_class) @@ -44,7 +44,7 @@ return result.sort((a, b) => a.label.localeCompare(b.label)) } - function fillDescendants (classes: MasterTag[]): void { + function fillDescendants(classes: MasterTag[]): void { for (const cl of classes) { descendants.set(cl._id, getDescendants(cl._id)) } diff --git a/plugins/card-resources/src/components/navigator-next/NavigatorType.svelte b/plugins/card-resources/src/components/navigator-next/NavigatorType.svelte index 5a7702c5bf..085423761f 100644 --- a/plugins/card-resources/src/components/navigator-next/NavigatorType.svelte +++ b/plugins/card-resources/src/components/navigator-next/NavigatorType.svelte @@ -39,7 +39,7 @@ const dispatch = createEventDispatcher() let activeAction: string | undefined = undefined - async function handleCreateCard (): Promise { + async function handleCreateCard(): Promise { showPopup( CreateCardPopup, { type: type._id, space: space?._id, changeType: isBaseTypeWithSubtypes(getClient().getHierarchy(), type._id) }, @@ -54,7 +54,7 @@ ) } - async function getActions (lang: string): Promise { + async function getActions(lang: string): Promise { const result: Action[] = [] const typeString = await translate(type.label, {}, lang) const createString = await translate(presentation.string.Create, {}, lang) diff --git a/plugins/card-resources/src/components/navigator/CardHeaderButton.svelte b/plugins/card-resources/src/components/navigator/CardHeaderButton.svelte index 864dc8acb6..7d197cf2a2 100644 --- a/plugins/card-resources/src/components/navigator/CardHeaderButton.svelte +++ b/plugins/card-resources/src/components/navigator/CardHeaderButton.svelte @@ -39,7 +39,7 @@ } } - async function navigateToCard (cardId: string): Promise { + async function navigateToCard(cardId: string): Promise { const loc = getCurrentLocation() loc.path[3] = cardId loc.path.length = 4 @@ -55,7 +55,7 @@ }) } - async function newTeamspace (): Promise { + async function newTeamspace(): Promise { showPopup(CreateSpace, {}, 'top') } @@ -80,7 +80,7 @@ } ] - function addButtonClicked (ev: MouseEvent): void { + function addButtonClicked(ev: MouseEvent): void { pressed = true showPopup(Menu, { actions: globalActions }, ev.target as HTMLElement, () => { pressed = false diff --git a/plugins/card-resources/src/components/navigator/CreateSpace.svelte b/plugins/card-resources/src/components/navigator/CreateSpace.svelte index 37a9d8a1f1..bfb934de95 100644 --- a/plugins/card-resources/src/components/navigator/CreateSpace.svelte +++ b/plugins/card-resources/src/components/navigator/CreateSpace.svelte @@ -66,7 +66,7 @@ let rolesAssignment = getRolesAssignment(roles) $: rolesAssignment = getRolesAssignment(roles) - function getRolesAssignment (roles: Role[]): RolesAssignment { + function getRolesAssignment(roles: Role[]): RolesAssignment { if (space === undefined || roles === undefined) { return {} } @@ -81,7 +81,7 @@ return res } - function getCurrentRolesAssignment (): RolesAssignment { + function getCurrentRolesAssignment(): RolesAssignment { if (space === undefined) { return {} } @@ -101,7 +101,7 @@ return res } - async function handleSave (): Promise { + async function handleSave(): Promise { if (isNew) { await create() } else { @@ -109,17 +109,17 @@ } } - function normalizeAutoJoinForRoles (roles: AccountRole[]): AccountRole[] | undefined { + function normalizeAutoJoinForRoles(roles: AccountRole[]): AccountRole[] | undefined { return roles.length > 0 ? [...roles] : undefined } let autoJoinForRoles: AccountRole[] = space?.autoJoinForRoles != null ? hierarchy.clone(space.autoJoinForRoles) : [] - function setGuestAutoJoin (enabled: boolean): void { + function setGuestAutoJoin(enabled: boolean): void { autoJoinForRoles = setWorkspaceGuestAutoJoinRoles(autoJoinForRoles, enabled) } - function getData (): Data { + function getData(): Data { return { name, description: '', @@ -135,7 +135,7 @@ } } - async function update (): Promise { + async function update(): Promise { if (space === undefined) { return } @@ -150,7 +150,7 @@ close() } - async function create (): Promise { + async function create(): Promise { const data = getData() const id = await client.createDoc(card.class.CardSpace, core.space.Space, data) @@ -162,18 +162,18 @@ close(id) } - function close (id?: Ref): void { + function close(id?: Ref): void { dispatch('close', id) } - function handleOwnersChanged (newOwners: AccountUuid[]): void { + function handleOwnersChanged(newOwners: AccountUuid[]): void { owners = newOwners const newMembersSet = new Set([...members, ...newOwners]) members = Array.from(newMembersSet) } - function handleMembersChanged (newMembers: AccountUuid[]): void { + function handleMembersChanged(newMembers: AccountUuid[]): void { const newMembersSet = new Set(newMembers) const removedMembersSet = new Set(members.filter((m) => !newMembersSet.has(m))) @@ -196,7 +196,7 @@ $: membersPersons = members.map((m) => $employeeRefByAccountUuidStore.get(m)).filter(notEmpty) - function handleRoleAssignmentChanged (roleId: Ref, newMembers: AccountUuid[]): void { + function handleRoleAssignmentChanged(roleId: Ref, newMembers: AccountUuid[]): void { if (rolesAssignment === undefined) { rolesAssignment = {} } diff --git a/plugins/card-resources/src/components/navigator/SpacePresenter.svelte b/plugins/card-resources/src/components/navigator/SpacePresenter.svelte index 4c70cd6eaa..927b58c171 100644 --- a/plugins/card-resources/src/components/navigator/SpacePresenter.svelte +++ b/plugins/card-resources/src/components/navigator/SpacePresenter.svelte @@ -33,7 +33,7 @@ let classes: MasterTag[] = [] let allClasses: MasterTag[] = [] - function fillClasses (tags: MasterTag[]): void { + function fillClasses(tags: MasterTag[]): void { classes = tags.filter((it) => space.types.includes(it._id)).sort((a, b) => a.label.localeCompare(b.label)) } diff --git a/plugins/card-resources/src/components/navigator/TagHierarchy.svelte b/plugins/card-resources/src/components/navigator/TagHierarchy.svelte index 39237d2e41..6bc191f6f4 100644 --- a/plugins/card-resources/src/components/navigator/TagHierarchy.svelte +++ b/plugins/card-resources/src/components/navigator/TagHierarchy.svelte @@ -34,7 +34,7 @@ const dispatch = createEventDispatcher() let descendants = new Map>, MasterTag[]>() - function getDescendants (_class: Ref): MasterTag[] { + function getDescendants(_class: Ref): MasterTag[] { const hierarchy = client.getHierarchy() const result: MasterTag[] = [] const desc = hierarchy.getDescendants(_class) @@ -52,7 +52,7 @@ return result.sort((a, b) => a.label.localeCompare(b.label)) } - function fillDescendants (classes: MasterTag[], _excludedClasses: Ref[]): void { + function fillDescendants(classes: MasterTag[], _excludedClasses: Ref[]): void { for (const cl of classes) { descendants.set(cl._id, getDescendants(cl._id)) } @@ -61,7 +61,7 @@ $: fillDescendants(allClasses, excludedClasses) - function select (clazz: Ref>, space: Ref): void { + function select(clazz: Ref>, space: Ref): void { const loc = getCurrentLocation() loc.path[3] = space loc.path[4] = clazz diff --git a/plugins/card-resources/src/components/navigator/TypesNavigator.svelte b/plugins/card-resources/src/components/navigator/TypesNavigator.svelte index 9b67a84b5d..d044979eb7 100644 --- a/plugins/card-resources/src/components/navigator/TypesNavigator.svelte +++ b/plugins/card-resources/src/components/navigator/TypesNavigator.svelte @@ -41,11 +41,11 @@ classes = res.filter((it) => it.removed !== true).sort((a, b) => a.label.localeCompare(b.label)) }) - function getRootClasses (_classes: MasterTag[]): MasterTag[] { + function getRootClasses(_classes: MasterTag[]): MasterTag[] { return _classes.filter((it) => it.extends === card.class.Card) } - function getFavoriteClasses (_classes: MasterTag[], _favoriteTypes: Ref[]): MasterTag[] { + function getFavoriteClasses(_classes: MasterTag[], _favoriteTypes: Ref[]): MasterTag[] { const hierarchy = client.getHierarchy() const rootClasses = getRootClasses(_classes) const rootFavorites = rootClasses.filter((it) => _favoriteTypes.includes(it._id)) @@ -67,11 +67,11 @@ return [...rootFavorites, ...additionalFavorites].sort((a, b) => a.label.localeCompare(b.label)) } - function buildTypePath (currentPath: any[], type: Ref): any[] { + function buildTypePath(currentPath: any[], type: Ref): any[] { return [...currentPath.slice(0, 3), 'type', type] } - function selectType (type: Ref): void { + function selectType(type: Ref): void { const loc = getCurrentLocation() loc.path = buildTypePath(loc.path, type) setFilters([]) @@ -83,7 +83,7 @@ favorites = new Map(res.map((fav) => [fav.attachedTo, fav])) }) - function toggleFavoriteType (typeId: Ref): void { + function toggleFavoriteType(typeId: Ref): void { const favorite = favorites.get(typeId) if (favorite !== undefined) { void client.remove(favorite) @@ -94,7 +94,7 @@ } } - function getItemActions (typeId: Ref): Action[] { + function getItemActions(typeId: Ref): Action[] { const favorite = favorites.get(typeId) const isFavorite = favorite !== undefined return [ diff --git a/plugins/card-resources/src/components/navigator/TypesSelector.svelte b/plugins/card-resources/src/components/navigator/TypesSelector.svelte index ab5c0cbdb4..99da196b32 100644 --- a/plugins/card-resources/src/components/navigator/TypesSelector.svelte +++ b/plugins/card-resources/src/components/navigator/TypesSelector.svelte @@ -32,7 +32,7 @@ const client = getClient() const hierarchy = client.getHierarchy() - function buildHierarchy (): NestedSelectItem[] { + function buildHierarchy(): NestedSelectItem[] { const rootTags = hierarchy.getDescendants(card.class.Card) const items: NestedSelectItem[] = [] @@ -59,7 +59,7 @@ ) } - function getChildrenNodes (parentId: Ref>): NestedSelectItem[] { + function getChildrenNodes(parentId: Ref>): NestedSelectItem[] { const descendants = hierarchy.getDescendants(parentId) const items: NestedSelectItem[] = [] @@ -80,7 +80,7 @@ ) } - function getIconProps (tag: MasterTag): { icon: any, iconProps: any } { + function getIconProps(tag: MasterTag): { icon: any, iconProps: any } { return { icon: tag.icon === view.ids.IconWithEmoji ? IconWithEmoji : (tag.icon ?? card.icon.MasterTag), iconProps: tag.icon === view.ids.IconWithEmoji ? { icon: tag.color } : {} diff --git a/plugins/card-resources/src/components/sections/ContentSection.svelte b/plugins/card-resources/src/components/sections/ContentSection.svelte index 8549eda763..18d3b16c74 100644 --- a/plugins/card-resources/src/components/sections/ContentSection.svelte +++ b/plugins/card-resources/src/components/sections/ContentSection.svelte @@ -31,12 +31,12 @@ const dispatch = createEventDispatcher() - export function navigate (id: string): void { + export function navigate(id: string): void { const element = window.document.getElementById(id) element?.scrollIntoView({ behavior: 'instant', block: 'start' }) } - function handleHeadings (ev: CustomEvent): void { + function handleHeadings(ev: CustomEvent): void { const headings = ev.detail const action: CardSectionAction = { id: 'toc', toc: headings } dispatch('action', action) diff --git a/plugins/card-resources/src/components/settings/ChildsSection.svelte b/plugins/card-resources/src/components/settings/ChildsSection.svelte index aee20b2a93..22309632e5 100644 --- a/plugins/card-resources/src/components/settings/ChildsSection.svelte +++ b/plugins/card-resources/src/components/settings/ChildsSection.svelte @@ -34,7 +34,7 @@ getDescendants(masterTag._id) }) - function getDescendants (id: Ref>): void { + function getDescendants(id: Ref>): void { const desc = hierarchy.getDescendants(id) const filtered: Ref>[] = [] for (const _id of desc) { @@ -47,7 +47,7 @@ descendants = filtered } - function open (_class: Ref>): void { + function open(_class: Ref>): void { const loc = getCurrentLocation() loc.path[4] = _class navigate(loc) diff --git a/plugins/card-resources/src/components/settings/CreateRolePopup.svelte b/plugins/card-resources/src/components/settings/CreateRolePopup.svelte index 96040dc981..ec3351a5ad 100644 --- a/plugins/card-resources/src/components/settings/CreateRolePopup.svelte +++ b/plugins/card-resources/src/components/settings/CreateRolePopup.svelte @@ -27,7 +27,7 @@ const dispatch = createEventDispatcher() const client = getClient() - async function handleSave (): Promise { + async function handleSave(): Promise { const _id = await client.addCollection( card.class.Role, core.space.Model, diff --git a/plugins/card-resources/src/components/settings/DuplicateSetting.svelte b/plugins/card-resources/src/components/settings/DuplicateSetting.svelte index a6f4b4a6bb..17295e15d6 100644 --- a/plugins/card-resources/src/components/settings/DuplicateSetting.svelte +++ b/plugins/card-resources/src/components/settings/DuplicateSetting.svelte @@ -82,7 +82,7 @@ const relationsA = associations.filter((it) => targets.has(it.classB)) const relationsB = associations.filter((it) => targets.has(it.classA)) - async function save (): Promise { + async function save(): Promise { if (current?._id === masterTag) { await client.updateMixin(masterTag, card.class.MasterTag, core.space.Model, card.mixin.DuplicateSetting, { excludedRelations: [...excludedRelations], @@ -99,7 +99,7 @@ dispatch('close') } - function propertiesSelected (event: CustomEvent): void { + function propertiesSelected(event: CustomEvent): void { const selectedProperties = event.detail as string[] allProperties.forEach((it) => { if (!selectedProperties.includes(it.id)) { @@ -111,7 +111,7 @@ excludedProperties = excludedProperties } - function mixinsSelected (event: CustomEvent): void { + function mixinsSelected(event: CustomEvent): void { const selectedMixins = event.detail as string[] mixins.forEach((it) => { if (!selectedMixins.includes(it)) { diff --git a/plugins/card-resources/src/components/settings/EditRole.svelte b/plugins/card-resources/src/components/settings/EditRole.svelte index b30dcba642..98101a5a55 100644 --- a/plugins/card-resources/src/components/settings/EditRole.svelte +++ b/plugins/card-resources/src/components/settings/EditRole.svelte @@ -85,7 +85,7 @@ $: permissions = role?.permissions !== undefined ? allPermissions.filter((p) => role?.permissions?.includes(p._id)) : [] - function handleEditPermissions (evt: Event): void { + function handleEditPermissions(evt: Event): void { if (role === undefined || readonly) { return } @@ -122,7 +122,7 @@ ) } - async function handleDeleteRole (): Promise { + async function handleDeleteRole(): Promise { showPopup( MessageBox, { @@ -138,7 +138,7 @@ const masterTag = getCurrentLocation().path[4] as Ref - async function performDeleteRole (): Promise { + async function performDeleteRole(): Promise { if (role === undefined) { return } @@ -186,15 +186,15 @@ navigate(loc) } - function isAttributePermission (permission: Permission): permission is AttributePermission { + function isAttributePermission(permission: Permission): permission is AttributePermission { return permission._class === core.class.AttributePermission } - function isClassPermission (permission: Permission): permission is ClassPermission { + function isClassPermission(permission: Permission): permission is ClassPermission { return permission._class === core.class.ClassPermission } - function getAttributePermissionLabel (permission: Permission): IntlString | undefined { + function getAttributePermissionLabel(permission: Permission): IntlString | undefined { const isAttribute = isAttributePermission(permission) if (isAttribute) { const attr = client.getModel().findObject(permission.attribute) as AnyAttribute diff --git a/plugins/card-resources/src/components/settings/GeneralSection.svelte b/plugins/card-resources/src/components/settings/GeneralSection.svelte index 24a64e2ad1..0f0b227612 100644 --- a/plugins/card-resources/src/components/settings/GeneralSection.svelte +++ b/plugins/card-resources/src/components/settings/GeneralSection.svelte @@ -73,7 +73,7 @@ }) } - function setIcon (): void { + function setIcon(): void { showPopup( IconPicker, { icon: masterTag.icon, color: masterTag.color, showEmoji: true, showColor: false }, @@ -105,7 +105,7 @@ ) } - async function handleExport (): Promise { + async function handleExport(): Promise { const str = await exportModule(masterTag._id) const blob = new Blob([str], { type: 'application/json' }) const url = URL.createObjectURL(blob) @@ -117,7 +117,7 @@ document.body.removeChild(link) } - function getTagStyle (color: ColorDefinition): string { + function getTagStyle(color: ColorDefinition): string { return ` background: ${color.color + '33'}; border: 1px solid ${color.color + '66'}; @@ -125,7 +125,7 @@ ` } - async function enableVersioning (): Promise { + async function enableVersioning(): Promise { if (h.isMixin(masterTag._id)) return showPopup(MessageBox, { label: card.string.EnableVersioning, @@ -148,13 +148,13 @@ }) } - function versioningSetting (): void { + function versioningSetting(): void { showPopup(VersioningSetting, { masterTag: masterTag._id }) } - function duplicateSetting (): void { + function duplicateSetting(): void { showPopup(DuplicateSetting, { masterTag: masterTag._id }) diff --git a/plugins/card-resources/src/components/settings/ManageMasterTags.svelte b/plugins/card-resources/src/components/settings/ManageMasterTags.svelte index 347200b2bc..8d0ed6f129 100644 --- a/plugins/card-resources/src/components/settings/ManageMasterTags.svelte +++ b/plugins/card-resources/src/components/settings/ManageMasterTags.svelte @@ -36,7 +36,7 @@ onDestroy(resolvedLocationStore.subscribe(handleLocationChanged)) - function handleLocationChanged (loc: Location): void { + function handleLocationChanged(loc: Location): void { selectedTagId = loc.path[4] as Ref } @@ -52,7 +52,7 @@ ] }) - function selectProjectType (id: string): void { + function selectProjectType(id: string): void { clearSettingsStore() const loc = getCurrentResolvedLocation() loc.path[3] = categoryName diff --git a/plugins/card-resources/src/components/settings/ManageMasterTagsContent.svelte b/plugins/card-resources/src/components/settings/ManageMasterTagsContent.svelte index 6385afa55e..754b88a4c8 100644 --- a/plugins/card-resources/src/components/settings/ManageMasterTagsContent.svelte +++ b/plugins/card-resources/src/components/settings/ManageMasterTagsContent.svelte @@ -39,7 +39,7 @@ let visibleSecondNav: boolean = true let selectedTagId: Ref | undefined - function handleLocationChanged ({ path }: Location): void { + function handleLocationChanged({ path }: Location): void { if (path[3] !== 'types' || path[4] === undefined) { selectedTagId = undefined } else { @@ -58,7 +58,7 @@ title: string } - function selectSubItem (editorId: AnyComponent | undefined, objId: Ref | undefined): void { + function selectSubItem(editorId: AnyComponent | undefined, objId: Ref | undefined): void { if (editorId !== undefined && objId !== undefined) { selectedSubObjectId = objId void getResource(editorId) @@ -83,13 +83,13 @@ masterTag = res[0] }) - function handleSubEditorOpen (event: CustomEvent): void { + function handleSubEditorOpen(event: CustomEvent): void { if (Array.isArray(event.detail)) { subEditorParamas = event.detail } } - function getBreadcrumbs (tag: Ref | undefined, subEditorParams: SubEditorParams[]): BreadcrumbItem[] { + function getBreadcrumbs(tag: Ref | undefined, subEditorParams: SubEditorParams[]): BreadcrumbItem[] { if (tag === undefined) return [] const toAncestors = hierarchy.getAncestors(card.class.Card) const ancestors = hierarchy.getAncestors(tag) @@ -115,7 +115,7 @@ }, 500) }) - function handleSelect (e: CustomEvent): void { + function handleSelect(e: CustomEvent): void { const id = items[e.detail]?.id if (id !== undefined) { const isSub = subEditorParamas.find((it) => it.id === id) diff --git a/plugins/card-resources/src/components/settings/ManageMasterTagsTools.svelte b/plugins/card-resources/src/components/settings/ManageMasterTagsTools.svelte index 7fbe158fff..0e504088a8 100644 --- a/plugins/card-resources/src/components/settings/ManageMasterTagsTools.svelte +++ b/plugins/card-resources/src/components/settings/ManageMasterTagsTools.svelte @@ -25,7 +25,7 @@ import card from '../../plugin' import CreateTag from '../CreateTag.svelte' - function handleAdd (): void { + function handleAdd(): void { showPopup( CreateTag, { @@ -46,7 +46,7 @@ ) } - async function handleImprot (): Promise { + async function handleImprot(): Promise { const { importModule } = await import('../../exporter') const input = document.createElement('input') input.type = 'file' diff --git a/plugins/card-resources/src/components/settings/ProperitiesSection.svelte b/plugins/card-resources/src/components/settings/ProperitiesSection.svelte index 426c15c88c..c78d28039d 100644 --- a/plugins/card-resources/src/components/settings/ProperitiesSection.svelte +++ b/plugins/card-resources/src/components/settings/ProperitiesSection.svelte @@ -30,11 +30,11 @@ client.getModel().findObject(getPermissionRef(false)) !== undefined || client.getModel().findObject(getPermissionRef(true)) !== undefined - function getPermissionRef (forbidden: boolean): Ref { + function getPermissionRef(forbidden: boolean): Ref { return `${masterTag._id}_${forbidden ? 'forbidden' : 'allowed'}` as Ref } - function changeRestricted (): void { + function changeRestricted(): void { showPopup( MessageBox, { diff --git a/plugins/card-resources/src/components/settings/RelationSetting.svelte b/plugins/card-resources/src/components/settings/RelationSetting.svelte index b203f1f0fc..7b85ffda7f 100644 --- a/plugins/card-resources/src/components/settings/RelationSetting.svelte +++ b/plugins/card-resources/src/components/settings/RelationSetting.svelte @@ -16,7 +16,7 @@ return true }) - function createHandler (): void { + function createHandler(): void { Analytics.handleEvent(CardEvents.RelationCreated) } diff --git a/plugins/card-resources/src/components/settings/RelationsSection.svelte b/plugins/card-resources/src/components/settings/RelationsSection.svelte index 19331b8ff3..6e0231ff44 100644 --- a/plugins/card-resources/src/components/settings/RelationsSection.svelte +++ b/plugins/card-resources/src/components/settings/RelationsSection.svelte @@ -40,7 +40,7 @@ associations = res }) - function getClassLabel (_class: Ref>): IntlString { + function getClassLabel(_class: Ref>): IntlString { try { const _classLabel = hierarchy.getClass(_class) return _classLabel.label @@ -50,7 +50,7 @@ } } - function addRelation (): void { + function addRelation(): void { showPopup( CreateRelation, { diff --git a/plugins/card-resources/src/components/settings/RolesSection.svelte b/plugins/card-resources/src/components/settings/RolesSection.svelte index a79f9e8b57..b63bbd61d7 100644 --- a/plugins/card-resources/src/components/settings/RolesSection.svelte +++ b/plugins/card-resources/src/components/settings/RolesSection.svelte @@ -34,7 +34,7 @@ roles = res }) - function addRole (): void { + function addRole(): void { showPopup( RolesPopup, { diff --git a/plugins/card-resources/src/components/settings/TagsSection.svelte b/plugins/card-resources/src/components/settings/TagsSection.svelte index 11d55529a9..d24c9d664d 100644 --- a/plugins/card-resources/src/components/settings/TagsSection.svelte +++ b/plugins/card-resources/src/components/settings/TagsSection.svelte @@ -35,7 +35,7 @@ getDescendants(masterTag._id) }) - function getDescendants (id: Ref>): void { + function getDescendants(id: Ref>): void { const desc = hierarchy.getDescendants(id) const filtered: Ref>[] = [] for (const _id of desc) { @@ -48,7 +48,7 @@ descendants = filtered } - function open (_class: Ref>): void { + function open(_class: Ref>): void { const loc = getCurrentLocation() loc.path[4] = _class navigate(loc) diff --git a/plugins/card-resources/src/components/settings/VersioningSetting.svelte b/plugins/card-resources/src/components/settings/VersioningSetting.svelte index a58231c944..6364fb109d 100644 --- a/plugins/card-resources/src/components/settings/VersioningSetting.svelte +++ b/plugins/card-resources/src/components/settings/VersioningSetting.svelte @@ -80,7 +80,7 @@ const relationsA = associations.filter((it) => targets.has(it.classB)) const relationsB = associations.filter((it) => targets.has(it.classA)) - async function save (): Promise { + async function save(): Promise { if (current?._id === masterTag) { await client.updateMixin(masterTag, card.class.MasterTag, core.space.Model, core.mixin.VersionableClass, { excludedRelations: [...excludedRelations], @@ -99,7 +99,7 @@ dispatch('close') } - function propertiesSelected (event: CustomEvent): void { + function propertiesSelected(event: CustomEvent): void { const selectedProperties = event.detail as string[] allProperties.forEach((it) => { if (!selectedProperties.includes(it.id)) { @@ -111,7 +111,7 @@ excludedProperties = excludedProperties } - function mixinsSelected (event: CustomEvent): void { + function mixinsSelected(event: CustomEvent): void { const selectedMixins = event.detail as string[] mixins.forEach((it) => { if (!selectedMixins.includes(it)) { diff --git a/plugins/card-resources/src/components/settings/view/AssociationsSelect.svelte b/plugins/card-resources/src/components/settings/view/AssociationsSelect.svelte index 541921234e..b50b9fd4f3 100644 --- a/plugins/card-resources/src/components/settings/view/AssociationsSelect.svelte +++ b/plugins/card-resources/src/components/settings/view/AssociationsSelect.svelte @@ -31,7 +31,7 @@ $: void getAssociations(tag) - async function getAssociations (_tag: MasterTag | Tag): Promise { + async function getAssociations(_tag: MasterTag | Tag): Promise { const descendants = hierarchy.getDescendants(_tag._id) const leftAssociations = await client.findAll(core.class.Association, { classA: { $in: descendants } }) const rightAssociations = await client.findAll(core.class.Association, { classB: { $in: descendants } }) @@ -41,7 +41,7 @@ .filter((value, index, self) => index === self.findIndex((obj) => obj._id === value._id)) associationIds = associations.map((value) => value._id) } - function onSelect (event: CustomEvent>): void { + function onSelect(event: CustomEvent>): void { value = associations.find((value) => value._id === event.detail) } diff --git a/plugins/card-resources/src/components/settings/view/CreateView.svelte b/plugins/card-resources/src/components/settings/view/CreateView.svelte index 4792377aee..5d6f6f9fed 100644 --- a/plugins/card-resources/src/components/settings/view/CreateView.svelte +++ b/plugins/card-resources/src/components/settings/view/CreateView.svelte @@ -65,7 +65,7 @@ viewOptions: getViewOptions(descriptor) } - function getViewOptions (descriptor: Ref | undefined): ViewOptionsModel | undefined { + function getViewOptions(descriptor: Ref | undefined): ViewOptionsModel | undefined { if (descriptor === undefined || descriptor === view.viewlet.Table) return undefined return { groupBy: ['_class', 'parent'], @@ -77,24 +77,24 @@ const client = getClient() const dispatch = createEventDispatcher() - async function save (): Promise { + async function save(): Promise { dispatch('close') if (descriptor === undefined || viewletConfig === undefined) return setMasterDetailConfig() await client.createDoc(view.class.Viewlet, core.space.Model, viewletConfig) } - function setMasterDetailConfig (): void { + function setMasterDetailConfig(): void { if (viewletConfig === undefined || descriptor !== view.viewlet.MasterDetail) return viewletConfig.masterDetailOptions = { views: viewConfigs } } - function onConfigUpdate (items: (Config | AttributeConfig)[]): void { + function onConfigUpdate(items: (Config | AttributeConfig)[]): void { if (viewletConfig === undefined) return updateViewletConfig(viewletConfig, items) } - function onMasterDetailUpdate (items: MasterDetailConfig[]): void { + function onMasterDetailUpdate(items: MasterDetailConfig[]): void { if (viewletConfig === undefined) return viewConfigs = items } diff --git a/plugins/card-resources/src/components/settings/view/EditView.svelte b/plugins/card-resources/src/components/settings/view/EditView.svelte index 4357d365bc..2e09bac7e8 100644 --- a/plugins/card-resources/src/components/settings/view/EditView.svelte +++ b/plugins/card-resources/src/components/settings/view/EditView.svelte @@ -34,7 +34,7 @@ const origin = client.getHierarchy().clone(viewlet) - async function save (): Promise { + async function save(): Promise { await client.diffUpdate(origin, { title, descriptor: type, @@ -43,7 +43,7 @@ clearSettingsStore() } - async function remove (): Promise { + async function remove(): Promise { showPopup(MessageBox, { label: view.string.DeleteObject, message: view.string.DeleteObjectConfirm, @@ -55,7 +55,7 @@ } }) } - function onSave (items: (Config | AttributeConfig)[]): void { + function onSave(items: (Config | AttributeConfig)[]): void { updateViewletConfig(viewlet, items) } diff --git a/plugins/card-resources/src/components/settings/view/RelatedTagSelect.svelte b/plugins/card-resources/src/components/settings/view/RelatedTagSelect.svelte index 7407ef4cf6..380a3ff03a 100644 --- a/plugins/card-resources/src/components/settings/view/RelatedTagSelect.svelte +++ b/plugins/card-resources/src/components/settings/view/RelatedTagSelect.svelte @@ -33,7 +33,7 @@ const client = getClient() const hierarchy = client.getHierarchy() - async function getAssociations (tagId: Ref>): Promise { + async function getAssociations(tagId: Ref>): Promise { try { const descendants = parentTag !== undefined ? hierarchy.getDescendants(parentTag) : [] const children = childTag !== undefined ? hierarchy.getDescendants(childTag) : [] diff --git a/plugins/card-resources/src/components/settings/view/ViewConfigSection.svelte b/plugins/card-resources/src/components/settings/view/ViewConfigSection.svelte index 8a1daceb65..55a55da3ff 100644 --- a/plugins/card-resources/src/components/settings/view/ViewConfigSection.svelte +++ b/plugins/card-resources/src/components/settings/view/ViewConfigSection.svelte @@ -32,7 +32,7 @@ const dispatch = createEventDispatcher() // Function to add a new view configuration - function addViewConfig (): void { + function addViewConfig(): void { // Create a new ViewConfig with default empty values and unique ID const newViewConfig: MasterDetailConfig = { class: tag._id, @@ -45,19 +45,19 @@ dispatch('change', viewConfigs) } - function updateViewClass (index: number, value: Ref>): void { + function updateViewClass(index: number, value: Ref>): void { viewConfigs[index].class = value viewConfigs = [...viewConfigs] // Trigger reactivity dispatch('change', viewConfigs) } - function updateViewConfig (index: number, value: Ref): void { + function updateViewConfig(index: number, value: Ref): void { viewConfigs[index].view = value viewConfigs = [...viewConfigs] // Trigger reactivity dispatch('change', viewConfigs) } - function removeViewConfig (index: number): void { + function removeViewConfig(index: number): void { viewConfigs = viewConfigs.filter((_, i) => i !== index) dispatch('change', viewConfigs) } diff --git a/plugins/card-resources/src/components/settings/view/ViewOptionsButton.svelte b/plugins/card-resources/src/components/settings/view/ViewOptionsButton.svelte index 648a35ff95..5648547de7 100644 --- a/plugins/card-resources/src/components/settings/view/ViewOptionsButton.svelte +++ b/plugins/card-resources/src/components/settings/view/ViewOptionsButton.svelte @@ -27,7 +27,7 @@ let btn: HTMLButtonElement let pressed: boolean = false - async function clickHandler (): Promise { + async function clickHandler(): Promise { if (viewlet === undefined) { return } diff --git a/plugins/card-resources/src/components/settings/view/ViewSetting.svelte b/plugins/card-resources/src/components/settings/view/ViewSetting.svelte index eb3ba92261..4f736a57ed 100644 --- a/plugins/card-resources/src/components/settings/view/ViewSetting.svelte +++ b/plugins/card-resources/src/components/settings/view/ViewSetting.svelte @@ -60,7 +60,7 @@ order?: number } - function getObjectConfig (_class: Ref>, param: string): AttributeConfig { + function getObjectConfig(_class: Ref>, param: string): AttributeConfig { const clazz = hierarchy.getClass(_class) return { type: 'attribute', @@ -72,11 +72,11 @@ } } - function getAssociationLabel (client: TxOperations, param: string): IntlString { + function getAssociationLabel(client: TxOperations, param: string): IntlString { return getKeyLabel(client, viewlet.attachTo, param, undefined) } - function getBaseConfig (viewlet: Viewlet): Config[] { + function getBaseConfig(viewlet: Viewlet): Config[] { const lookup = buildConfigLookup(hierarchy, viewlet.attachTo, viewlet.config, viewlet.options?.lookup) const result: Config[] = [] const clazz = hierarchy.getClass(viewlet.attachTo) @@ -139,7 +139,7 @@ return result } - function getValue (name: string, type: Type, attrClass: Ref>): string { + function getValue(name: string, type: Type, attrClass: Ref>): string { const presenter = hierarchy.classHierarchyMixin(attrClass, view.mixin.AttributePresenter)?.presenter if (presenter !== undefined) { return name @@ -150,7 +150,7 @@ return name } - function processAttribute (attribute: AnyAttribute, result: Config[], useMixinProxy = false): void { + function processAttribute(attribute: AnyAttribute, result: Config[], useMixinProxy = false): void { if (attribute.hidden === true || attribute.label === undefined) return if (viewlet.configOptions?.hiddenKeys?.includes(attribute.name)) return if (hierarchy.isDerived(attribute.type._class, core.class.Collection)) return @@ -203,15 +203,15 @@ } } - function getKey (value: string | BuildModelKey | undefined): string | undefined { + function getKey(value: string | BuildModelKey | undefined): string | undefined { return typeof value === 'string' ? value : value?.key } - function isAttribute (val: Config): val is AttributeConfig { + function isAttribute(val: Config): val is AttributeConfig { return val.type === 'attribute' } - function isExist (result: Config[], newValue: Config): boolean { + function isExist(result: Config[], newValue: Config): boolean { if (!isAttribute(newValue)) return false const newValueKey = getKey(newValue.value) if (newValueKey === undefined) return false @@ -230,7 +230,7 @@ return false } - async function getConfig (viewlet: Viewlet): Promise { + async function getConfig(viewlet: Viewlet): Promise { const result = getBaseConfig(viewlet) if (viewlet.configOptions?.strict !== true) { const allAttributes = hierarchy.getAllAttributes(viewlet.attachTo) @@ -249,7 +249,7 @@ await addAssociations(result, viewlet.attachTo) } - async function addAssociations ( + async function addAssociations( result: Config[], _class: Ref>, parents: AssociationQuery[] = [] @@ -280,11 +280,11 @@ } } - function getParentsString (parents: AssociationQuery[]): string { + function getParentsString(parents: AssociationQuery[]): string { return parents.map(([assocId, direction]) => `$associations.${assocId}_${direction === 1 ? 'a' : 'b'}`).join('.') } - async function processAssociation ( + async function processAssociation( association: Association, direction: 'a' | 'b', result: Config[], @@ -333,7 +333,7 @@ } } - async function addAssociationAttributes ( + async function addAssociationAttributes( result: Config[], targetClass: Ref>, associationKey: string, diff --git a/plugins/card-resources/src/components/settings/view/ViewSettingButton.svelte b/plugins/card-resources/src/components/settings/view/ViewSettingButton.svelte index 306d096b70..82653c8a7a 100644 --- a/plugins/card-resources/src/components/settings/view/ViewSettingButton.svelte +++ b/plugins/card-resources/src/components/settings/view/ViewSettingButton.svelte @@ -32,7 +32,7 @@ let btn: HTMLButtonElement let pressed: boolean = false - function clickHandler (): void { + function clickHandler(): void { pressed = true closeTooltip() showPopup( diff --git a/plugins/card-resources/src/components/settings/view/ViewsSection.svelte b/plugins/card-resources/src/components/settings/view/ViewsSection.svelte index 52a6e3ff08..97afb86579 100644 --- a/plugins/card-resources/src/components/settings/view/ViewsSection.svelte +++ b/plugins/card-resources/src/components/settings/view/ViewsSection.svelte @@ -45,7 +45,7 @@ } ) - function addRelation (): void { + function addRelation(): void { showPopup(CreateView, { tag: masterTag }) diff --git a/plugins/card-resources/src/exporter.ts b/plugins/card-resources/src/exporter.ts index e40d13b655..6e899fa05b 100644 --- a/plugins/card-resources/src/exporter.ts +++ b/plugins/card-resources/src/exporter.ts @@ -87,9 +87,9 @@ async function exportAttribute ( m: ModelDb, h: Hierarchy ): Promise<{ - docs: Doc[] - required: Array>> - }> { + docs: Doc[] + required: Array>> +}> { const client = getClient() const docs: Doc[] = [] const required: Array>> = [] diff --git a/plugins/card-resources/src/index.ts b/plugins/card-resources/src/index.ts index 95b4d58fa1..7815b63750 100644 --- a/plugins/card-resources/src/index.ts +++ b/plugins/card-resources/src/index.ts @@ -99,7 +99,7 @@ export { default as CardTagsColored } from './components/CardTagsColored.svelte' export { default as CardPathPresenter } from './components/CardPathPresenter.svelte' export { default as CardTimestamp } from './components/CardTimestamp.svelte' -export * from './types' +export type * from './types' export { getCardIconInfo, openCardInSidebar } from './utils' export default async (): Promise => ({ diff --git a/plugins/card-resources/src/tagFormatter.ts b/plugins/card-resources/src/tagFormatter.ts index 3cc099ac02..0ea7a85e09 100644 --- a/plugins/card-resources/src/tagFormatter.ts +++ b/plugins/card-resources/src/tagFormatter.ts @@ -51,9 +51,7 @@ export function getCardTagMixins (card: Card, hierarchy: Hierarchy): Array hierarchy.getClass(m).kind === ClassifierKind.MIXIN && hierarchy.hasMixin(card, m)) as Array< - Ref> - > + .filter((m) => hierarchy.getClass(m).kind === ClassifierKind.MIXIN && hierarchy.hasMixin(card, m)) } /** diff --git a/plugins/card-resources/src/utils.ts b/plugins/card-resources/src/utils.ts index 9167e99af1..bcf232e555 100644 --- a/plugins/card-resources/src/utils.ts +++ b/plugins/card-resources/src/utils.ts @@ -19,7 +19,6 @@ import communication from '@hcengineering/communication' import { type PermissionsStore } from '@hcengineering/contact' import core, { AccountRole, - type Class, type ClassPermission, type Client, type Data, @@ -421,7 +420,7 @@ async function generateLocation (loc: Location, id: string): Promise>, view.mixin.ObjectPanel) + const objectPanel = client.getHierarchy().classHierarchyMixin(doc._class, view.mixin.ObjectPanel) const component = objectPanel?.component ?? view.component.EditDoc return { @@ -503,7 +502,7 @@ export async function cardReferenceObjectProvider ( const baseId = object.baseId ?? object._id if (object.isLatest === true) return object - return (await client.findOne(object._class, { baseId, isLatest: true } as any)) ?? object + return (await client.findOne(object._class, { baseId, isLatest: true })) ?? object } export async function getCardLink (doc: Card): Promise { @@ -629,9 +628,9 @@ export function getFirstCreatableSubtype (hierarchy: Hierarchy, type: Ref) + !isBaseTypeWithSubtypes(hierarchy, descendant) ) - }) as Ref | undefined + }) } export async function createChildCard (object: Card): Promise { diff --git a/plugins/controlled-documents-resources/src/components/create-doc/steps/TeamStep.svelte b/plugins/controlled-documents-resources/src/components/create-doc/steps/TeamStep.svelte index 8522d841bc..3e2fe23ddf 100644 --- a/plugins/controlled-documents-resources/src/components/create-doc/steps/TeamStep.svelte +++ b/plugins/controlled-documents-resources/src/components/create-doc/steps/TeamStep.svelte @@ -26,7 +26,7 @@ async function handleUpdate({ detail }: { - detail: { type: 'reviewers' | 'approvers' | 'coAuthors' | 'externalApprovers'; users: Ref[] } + detail: { type: 'reviewers' | 'approvers' | 'coAuthors' | 'externalApprovers', users: Ref[] } }): Promise { if (docObject === undefined) { return diff --git a/plugins/controlled-documents-resources/src/components/document/EditDocContent.svelte b/plugins/controlled-documents-resources/src/components/document/EditDocContent.svelte index fe7c53912c..b08f5537a7 100644 --- a/plugins/controlled-documents-resources/src/components/document/EditDocContent.svelte +++ b/plugins/controlled-documents-resources/src/components/document/EditDocContent.svelte @@ -165,7 +165,7 @@ documentCommentsDisplayRequested({ element, nodeId }) } - async function createEmbedding(file: File): Promise<{ file: Ref; type: string } | undefined> { + async function createEmbedding(file: File): Promise<{ file: Ref, type: string } | undefined> { if ($controlledDocument === undefined || $controlledDocument === null) { return undefined } diff --git a/plugins/controlled-documents-resources/src/components/document/EditDocReasonAndImpact.svelte b/plugins/controlled-documents-resources/src/components/document/EditDocReasonAndImpact.svelte index 0671a5eb7a..7edc0ae020 100644 --- a/plugins/controlled-documents-resources/src/components/document/EditDocReasonAndImpact.svelte +++ b/plugins/controlled-documents-resources/src/components/document/EditDocReasonAndImpact.svelte @@ -54,7 +54,7 @@ await updateCCField(field, target.value) } - async function updateCCField(field: T, value: ChangeControl[T]): Promise { + async function updateCCField (field: T, value: ChangeControl[T]): Promise { if ($controlledDocument == null) { return } diff --git a/plugins/controlled-documents-resources/src/components/document/EditDocRelease.svelte b/plugins/controlled-documents-resources/src/components/document/EditDocRelease.svelte index 80f217a851..7e15b5e9ed 100644 --- a/plugins/controlled-documents-resources/src/components/document/EditDocRelease.svelte +++ b/plugins/controlled-documents-resources/src/components/document/EditDocRelease.svelte @@ -172,7 +172,7 @@ } } - function getVersionForSeverity(severity: Severity): { major: number; minor: number } | undefined { + function getVersionForSeverity(severity: Severity): { major: number, minor: number } | undefined { if ($controlledDocument == null) { return } diff --git a/plugins/controlled-documents-resources/src/components/document/EditDocTeam.svelte b/plugins/controlled-documents-resources/src/components/document/EditDocTeam.svelte index fd9522f096..c1e860e6ce 100644 --- a/plugins/controlled-documents-resources/src/components/document/EditDocTeam.svelte +++ b/plugins/controlled-documents-resources/src/components/document/EditDocTeam.svelte @@ -56,7 +56,7 @@ async function handleUpdate({ detail }: { - detail: { type: 'reviewers' | 'approvers' | 'externalApprovers'; users: Ref[] } + detail: { type: 'reviewers' | 'approvers' | 'externalApprovers', users: Ref[] } }): Promise { const { type, users } = detail diff --git a/plugins/controlled-documents-resources/src/components/hierarchy/DocumentSpacePresenter.svelte b/plugins/controlled-documents-resources/src/components/hierarchy/DocumentSpacePresenter.svelte index ae4c489881..eadb9b278c 100644 --- a/plugins/controlled-documents-resources/src/components/hierarchy/DocumentSpacePresenter.svelte +++ b/plugins/controlled-documents-resources/src/components/hierarchy/DocumentSpacePresenter.svelte @@ -232,7 +232,7 @@ closeTooltip() } - function getDropPosition(event: DragEvent): { pos: 'before' | 'after' | undefined; top: number } { + function getDropPosition(event: DragEvent): { pos: 'before' | 'after' | undefined, top: number } { const parentRect = parent.getBoundingClientRect() const targetRect = (event.target as HTMLElement).getBoundingClientRect() const dropPosition = event.clientY - targetRect.top diff --git a/plugins/controlled-documents-resources/src/docTableFormatter.ts b/plugins/controlled-documents-resources/src/docTableFormatter.ts index 9f576d4de9..a266dad568 100644 --- a/plugins/controlled-documents-resources/src/docTableFormatter.ts +++ b/plugins/controlled-documents-resources/src/docTableFormatter.ts @@ -23,7 +23,7 @@ import { isIntlString } from '@hcengineering/converter-resources' /** * Format version number from major and minor */ -function formatVersion(major: number | undefined, minor: number | undefined): string { +function formatVersion (major: number | undefined, minor: number | undefined): string { if (major === undefined || minor === undefined) { return '' } @@ -33,7 +33,7 @@ function formatVersion(major: number | undefined, minor: number | undefined): st /** * Get state value from document (handles both state and controlledState) */ -function getDocumentState(doc: Record): string | undefined { +function getDocumentState (doc: Record): string | undefined { const controlledState: unknown = doc.controlledState if (controlledState !== undefined && controlledState !== null) { return String(controlledState) @@ -50,7 +50,7 @@ const spaceCache = new Map, string>() /** * Load space name from space reference with caching support */ -async function loadSpaceName(spaceRef: Ref): Promise { +async function loadSpaceName (spaceRef: Ref): Promise { // Check cache first const cachedName = spaceCache.get(spaceRef) if (cachedName !== undefined) { @@ -78,7 +78,7 @@ async function loadSpaceName(spaceRef: Ref): Promise { * Value formatter for controlled document fields * Handles special cases where empty keys use custom presenters */ -export async function formatControlledDocumentValue( +export async function formatControlledDocumentValue ( attr: AttributeModel, card: Doc, hierarchy: Hierarchy, diff --git a/plugins/controlled-documents-resources/src/docutils.ts b/plugins/controlled-documents-resources/src/docutils.ts index 57d586ddfb..4f3781dc57 100644 --- a/plugins/controlled-documents-resources/src/docutils.ts +++ b/plugins/controlled-documents-resources/src/docutils.ts @@ -49,7 +49,7 @@ import { getCurrentEmployee } from '@hcengineering/contact' import documentsRes from './plugin' import { getDocumentVersionString } from './utils' -export async function createControlledDocFromTemplate( +export async function createControlledDocFromTemplate ( client: TxOperations, templateId: Ref | undefined, documentId: Ref, @@ -58,7 +58,7 @@ export async function createControlledDocFromTemplate( project: Ref | undefined, parent: Ref | undefined, docClass: Ref> = documents.class.ControlledDocument -): Promise<{ seqNumber: number; success: boolean }> { +): Promise<{ seqNumber: number, success: boolean }> { const result = await controlledDocFromTemplate(client, templateId, documentId, spec, space, project, parent, docClass) if (result.success && templateId !== undefined) { @@ -77,7 +77,7 @@ export async function createControlledDocFromTemplate( return result } -async function copyDocumentAttachments( +async function copyDocumentAttachments ( client: TxOperations, sourceId: Ref, targetId: Ref, @@ -118,14 +118,14 @@ async function copyDocumentAttachments( } } -export async function createNewDraftForControlledDoc( +export async function createNewDraftForControlledDoc ( client: TxOperations, document: ControlledDocument, space: Ref, - version: { major: number; minor: number }, + version: { major: number, minor: number }, project: Ref, newDraftDocId?: Ref -): Promise<{ success: boolean; id: Ref }> { +): Promise<{ success: boolean, id: Ref }> { const hierarchy = client.getHierarchy() newDraftDocId = newDraftDocId ?? generateId() @@ -265,7 +265,7 @@ export async function createNewDraftForControlledDoc( return { success: res.result, id: newDraftDocId } } -export async function createDocumentSnapshotAndEdit(client: TxOperations, document: ControlledDocument): Promise { +export async function createDocumentSnapshotAndEdit (client: TxOperations, document: ControlledDocument): Promise { const language = get(themeStore).language const namePrefix = await translate(documents.string.DraftRevision, {}, language) const name = `${namePrefix} ${(document.snapshots ?? 0) + 1}` @@ -297,17 +297,17 @@ export async function createDocumentSnapshotAndEdit(client: TxOperations, docume await copyMarkup(source, target) } -export function getDocumentTrainingClass(hierarchy: Hierarchy): Class { +export function getDocumentTrainingClass (hierarchy: Hierarchy): Class { return hierarchy.getClass(documentsRes.mixin.DocumentTraining) } -export function getDocumentTraining(hierarchy: Hierarchy, document: ControlledDocument): DocumentTraining | undefined { +export function getDocumentTraining (hierarchy: Hierarchy, document: ControlledDocument): DocumentTraining | undefined { return hierarchy.hasMixin(document, documents.mixin.DocumentTraining) ? hierarchy.as(document, documents.mixin.DocumentTraining) : undefined } -export async function createDocumentTraining( +export async function createDocumentTraining ( client: TxOperations, document: ControlledDocument, create: MixinData @@ -321,7 +321,7 @@ export async function createDocumentTraining( ) } -export async function updateDocumentTraining( +export async function updateDocumentTraining ( client: TxOperations, document: ControlledDocument, update: MixinUpdate @@ -335,7 +335,7 @@ export async function updateDocumentTraining( ) } -export function getDocReference(doc: Document | null): string { +export function getDocReference (doc: Document | null): string { if (doc == null) { return '' } diff --git a/plugins/controlled-documents-resources/src/index.ts b/plugins/controlled-documents-resources/src/index.ts index ee4f8ba0ca..327ba9bf91 100644 --- a/plugins/controlled-documents-resources/src/index.ts +++ b/plugins/controlled-documents-resources/src/index.ts @@ -129,11 +129,11 @@ const toObjectSearchResult = (e: WithLookup): ObjectSearchResult = component: DocumentItem }) -async function queryDocumentMeta( +async function queryDocumentMeta ( _class: Ref>, client: Client, search: string, - filter?: { in?: RelatedDocument[]; nin?: RelatedDocument[] } + filter?: { in?: RelatedDocument[], nin?: RelatedDocument[] } ): Promise { const q: DocumentQuery = { name: { $like: `%${search}%` } } if (filter?.in !== undefined || filter?.nin !== undefined) { @@ -152,7 +152,7 @@ async function queryDocumentMeta( ).map(toObjectSearchResult) } -async function deleteDocuments(obj: Document | Document[]): Promise { +async function deleteDocuments (obj: Document | Document[]): Promise { const docs = Array.isArray(obj) ? obj : [obj] const docNames = docs.map((d) => `${d.title} (${d.prefix}-${d.seqNumber})`).join(', ') @@ -169,7 +169,7 @@ async function deleteDocuments(obj: Document | Document[]): Promise { }) } -async function archiveDocuments(obj: Document | Document[]): Promise { +async function archiveDocuments (obj: Document | Document[]): Promise { const docs = Array.isArray(obj) ? obj : [obj] const docNames = docs.map((d) => `${d.title} (${d.prefix}-${d.seqNumber})`).join(', ') @@ -187,7 +187,7 @@ async function archiveDocuments(obj: Document | Document[]): Promise { }) } -async function makeDocumentObsolete(obj: Document | Document[]): Promise { +async function makeDocumentObsolete (obj: Document | Document[]): Promise { const docs = Array.isArray(obj) ? obj : [obj] const docNames = docs.map((d) => `${d.title} (${d.prefix}-${d.seqNumber})`).join(', ') @@ -205,7 +205,7 @@ async function makeDocumentObsolete(obj: Document | Document[]): Promise { }) } -async function canDeleteDocument(obj?: Doc | Doc[]): Promise { +async function canDeleteDocument (obj?: Doc | Doc[]): Promise { if (obj == null) { return false } @@ -221,7 +221,7 @@ async function canDeleteDocument(obj?: Doc | Doc[]): Promise { return await isDraftDoc(obj) } -async function canArchiveDocument(obj?: Doc | Doc[]): Promise { +async function canArchiveDocument (obj?: Doc | Doc[]): Promise { if (obj == null) { return false } @@ -243,7 +243,7 @@ async function canArchiveDocument(obj?: Doc | Doc[]): Promise { ).then((res) => res.every((r) => r)) } -async function canMakeDocumentObsolete(obj?: Doc | Doc[]): Promise { +async function canMakeDocumentObsolete (obj?: Doc | Doc[]): Promise { if (obj == null) { return false } @@ -265,7 +265,7 @@ async function canMakeDocumentObsolete(obj?: Doc | Doc[]): Promise { ).then((res) => res.every((r) => r)) } -async function canOpenDocument(obj?: ProjectDocument | ProjectDocument[]): Promise { +async function canOpenDocument (obj?: ProjectDocument | ProjectDocument[]): Promise { if (obj == null) { return false } @@ -276,7 +276,7 @@ async function canOpenDocument(obj?: ProjectDocument | ProjectDocument[]): Promi return !objs.some((d) => isFolder(h, d)) } -async function canPrintDocument(obj?: Document | Document[] | ProjectDocument | ProjectDocument[]): Promise { +async function canPrintDocument (obj?: Document | Document[] | ProjectDocument | ProjectDocument[]): Promise { if (obj == null) { return false } @@ -296,7 +296,7 @@ async function canPrintDocument(obj?: Document | Document[] | ProjectDocument | return printURL?.length > 0 } -async function canTransferDocument(obj?: Doc | Doc[]): Promise { +async function canTransferDocument (obj?: Doc | Doc[]): Promise { if (obj == null) { return false } @@ -311,7 +311,7 @@ async function canTransferDocument(obj?: Doc | Doc[]): Promise { ).then((res) => res.every((r) => r)) } -async function transferDocuments(selection: Document | Document[]): Promise { +async function transferDocuments (selection: Document | Document[]): Promise { const objects = Array.isArray(selection) ? selection : [selection] const client = getClient() @@ -336,7 +336,7 @@ async function transferDocuments(selection: Document | Document[]): Promise { +async function isDraftDoc (obj?: Doc | Doc[]): Promise { if (obj == null) { return false } @@ -360,7 +360,7 @@ async function isDraftDoc(obj?: Doc | Doc[]): Promise { return objs.length > 0 } -async function editDocSpace(docSpace: DocumentSpace | undefined): Promise { +async function editDocSpace (docSpace: DocumentSpace | undefined): Promise { if (docSpace !== undefined) { showPopup(CreateDocumentsSpace, { docSpace, clazz: docSpace?._class }) } @@ -411,7 +411,7 @@ export default async (): Promise => ({ DocumentMetaQuery: async ( client: Client, query: string, - filter?: { in?: RelatedDocument[]; nin?: RelatedDocument[] } + filter?: { in?: RelatedDocument[], nin?: RelatedDocument[] } ) => await queryDocumentMeta(documents.class.DocumentMeta, client, query, filter) }, function: { diff --git a/plugins/controlled-documents-resources/src/navigation.ts b/plugins/controlled-documents-resources/src/navigation.ts index d0f8e1f685..b94fc58e0a 100644 --- a/plugins/controlled-documents-resources/src/navigation.ts +++ b/plugins/controlled-documents-resources/src/navigation.ts @@ -25,14 +25,14 @@ import view, { type ObjectPanel } from '@hcengineering/view' import { accessDeniedStore } from '@hcengineering/view-resources' import slugify from 'slugify' -export function getPanelFragment(object: Pick): string { +export function getPanelFragment (object: Pick): string { const hierarchy = getClient().getHierarchy() const objectPanelMixin = hierarchy.classHierarchyMixin(object._class, view.mixin.ObjectPanel) const component = objectPanelMixin?.component ?? view.component.EditDoc return getPanelURI(component, object._id, object._class, 'content') } -async function generateDocumentLocation( +async function generateDocumentLocation ( loc: Location, document: Ref ): Promise { @@ -60,7 +60,7 @@ async function generateDocumentLocation( } } -async function generateProjectDocumentLocation( +async function generateProjectDocumentLocation ( loc: Location, document: Ref, project: Ref @@ -96,7 +96,7 @@ async function generateProjectDocumentLocation( } } -export function getProjectDocumentLink(doc: Document | Ref, project: Ref): Location { +export function getProjectDocumentLink (doc: Document | Ref, project: Ref): Location { const loc = getCurrentResolvedLocation() loc.fragment = undefined loc.query = undefined @@ -110,7 +110,7 @@ export function getProjectDocumentLink(doc: Document | Ref, project: R return loc } -export function getDocumentLink(doc: Document): Location { +export function getDocumentLink (doc: Document): Location { const loc = getCurrentResolvedLocation() loc.fragment = undefined loc.query = undefined @@ -121,12 +121,12 @@ export function getDocumentLink(doc: Document): Location { return loc } -function getDocumentLinkId(doc: Document): string { +function getDocumentLinkId (doc: Document): string { const slug = slugify(doc.title, { lower: true }) return `${slug}---${doc._id}` } -function parseDocumentId(shortLink?: string): Ref | undefined { +function parseDocumentId (shortLink?: string): Ref | undefined { if (shortLink === undefined) return undefined const parts = shortLink.split('---') if (parts.length > 1) { @@ -135,13 +135,13 @@ function parseDocumentId(shortLink?: string): Ref | undefine return shortLink as Ref } -export function getDocumentIdFromFragment(fragment: string): Ref | undefined { +export function getDocumentIdFromFragment (fragment: string): Ref | undefined { const props = decodeURIComponent(fragment).split('|') return props[1] != null ? (props[1] as Ref) : undefined } -export async function resolveLocation(loc: Location): Promise { +export async function resolveLocation (loc: Location): Promise { if (loc.path[2] !== documentsId) { return undefined } diff --git a/plugins/controlled-documents-resources/src/stores/editors/document/documentComments.ts b/plugins/controlled-documents-resources/src/stores/editors/document/documentComments.ts index a36961826b..65e761ee8f 100644 --- a/plugins/controlled-documents-resources/src/stores/editors/document/documentComments.ts +++ b/plugins/controlled-documents-resources/src/stores/editors/document/documentComments.ts @@ -91,7 +91,7 @@ export const addCommentFx = createEffect( ) export const resolveCommentFx = createEffect( - async (payload: { comment: DocumentComment | null | undefined; resolved: boolean }) => { + async (payload: { comment: DocumentComment | null | undefined, resolved: boolean }) => { const { comment, resolved } = payload if (comment === null || comment === undefined) { @@ -105,7 +105,7 @@ export const resolveCommentFx = createEffect( ) export const showDocumentCommentsPopupFx = createEffect( - (payload: { element?: PopupAlignment; nodeId?: string | null }) => { + (payload: { element?: PopupAlignment, nodeId?: string | null }) => { showPopup( documents.component.DocumentCommentsPopup, payload, @@ -117,7 +117,7 @@ export const showDocumentCommentsPopupFx = createEffect( } ) -export const showAddCommentPopupFx = createEffect((payload: { element?: PopupAlignment; nodeId?: string | null }) => { +export const showAddCommentPopupFx = createEffect((payload: { element?: PopupAlignment, nodeId?: string | null }) => { showPopup( documents.component.AddCommentPopup, { diff --git a/plugins/controlled-documents-resources/src/stores/editors/document/query.ts b/plugins/controlled-documents-resources/src/stores/editors/document/query.ts index 1c907d8c0a..351f302e84 100644 --- a/plugins/controlled-documents-resources/src/stores/editors/document/query.ts +++ b/plugins/controlled-documents-resources/src/stores/editors/document/query.ts @@ -60,7 +60,7 @@ const projectQuery = createQuery(true) const projectDocumentsQuery = createQuery(true) const queryControlledDocumentFx = createEffect( - (payload: { _id: Ref; _class: Ref> }) => { + (payload: { _id: Ref, _class: Ref> }) => { const { _class, _id } = payload if (_class == null || _id == null) { @@ -110,7 +110,7 @@ const queryDocumentVersionsFx = createEffect((payload: ControlledDocument) => { }) const queryReviewRequestFx = createEffect( - (payload: { _id: Ref; _class: Ref> }) => { + (payload: { _id: Ref, _class: Ref> }) => { const { _id, _class } = payload if (_id == null || _class == null) { reviewRequestQuery.unsubscribe() @@ -127,7 +127,7 @@ const queryReviewRequestFx = createEffect( ) const queryReviewRequestHistoryFx = createEffect( - (payload: { _id: Ref; _class: Ref> }) => { + (payload: { _id: Ref, _class: Ref> }) => { const { _id, _class } = payload if (_id == null || _class == null) { reviewRequestHistoryQuery.unsubscribe() @@ -161,7 +161,7 @@ const queryApprovalRequestFx = createEffect((payload: { _id: Ref { + (payload: { document: Document | null, filter: DocumentCommentsFilter }) => { const { filter, document } = payload if (document === null) { documentCommentsQuery.unsubscribe() diff --git a/plugins/controlled-documents-resources/src/text.ts b/plugins/controlled-documents-resources/src/text.ts index 48d712a104..33d340312a 100644 --- a/plugins/controlled-documents-resources/src/text.ts +++ b/plugins/controlled-documents-resources/src/text.ts @@ -29,7 +29,7 @@ import { getNodeElement, selectNode } from '@hcengineering/text-editor-resources import { showAddCommentPopupFx } from './stores/editors/document' import { $editorMode } from './stores/editors/document/editor' -async function getCurrentReviewRequest(doc: ControlledDocument): Promise { +async function getCurrentReviewRequest (doc: ControlledDocument): Promise { const client = getClient() return await client.findOne(documents.class.DocumentReviewRequest, { @@ -39,7 +39,7 @@ async function getCurrentReviewRequest(doc: ControlledDocument): Promise { if (doc == null) { @@ -66,7 +66,7 @@ async function getDocumentStateForCurrentUser( return doc.state } -function isDocumentOwner(doc: ControlledDocument): boolean { +function isDocumentOwner (doc: ControlledDocument): boolean { if (doc == null) { return false } @@ -76,7 +76,7 @@ function isDocumentOwner(doc: ControlledDocument): boolean { return doc.owner === employee } -function isDocumentCoAuthor(doc: ControlledDocument): boolean { +function isDocumentCoAuthor (doc: ControlledDocument): boolean { if (doc == null) { return false } @@ -90,7 +90,7 @@ function isDocumentCoAuthor(doc: ControlledDocument): boolean { return doc.coAuthors.includes(employee) } -function isDocumentReviewer(doc: ControlledDocument): boolean { +function isDocumentReviewer (doc: ControlledDocument): boolean { if (doc == null) { return false } @@ -102,14 +102,14 @@ function isDocumentReviewer(doc: ControlledDocument): boolean { return doc.reviewers?.includes(employee) ?? false } -function canViewDocumentComments(doc: ControlledDocument, mode: EditorMode): boolean { +function canViewDocumentComments (doc: ControlledDocument, mode: EditorMode): boolean { return ( (isDocumentOwner(doc) || isDocumentCoAuthor(doc) || isDocumentReviewer(doc)) && (mode === 'viewing' || mode === 'editing') ) } -async function canAddDocumentComments(doc: ControlledDocument, mode: EditorMode): Promise { +async function canAddDocumentComments (doc: ControlledDocument, mode: EditorMode): Promise { if (!canViewDocumentComments(doc, mode)) { return false } @@ -127,7 +127,7 @@ async function canAddDocumentComments(doc: ControlledDocument, mode: EditorMode) return false } -export async function comment(editor: Editor, event: MouseEvent, ctx: ActionContext): Promise { +export async function comment (editor: Editor, event: MouseEvent, ctx: ActionContext): Promise { const { objectId, objectClass } = ctx if (editor === undefined || objectId === undefined || objectClass === undefined) { @@ -143,7 +143,7 @@ export async function comment(editor: Editor, event: MouseEvent, ctx: ActionCont selectNode(editor, nodeId) } -export async function isCommentVisible(editor: Editor, ctx: ActionContext): Promise { +export async function isCommentVisible (editor: Editor, ctx: ActionContext): Promise { const { objectId, objectClass } = ctx if (objectId === undefined || objectClass === undefined) { return false diff --git a/plugins/controlled-documents-resources/src/utils.ts b/plugins/controlled-documents-resources/src/utils.ts index fa4ebed9b6..9f6883049e 100644 --- a/plugins/controlled-documents-resources/src/utils.ts +++ b/plugins/controlled-documents-resources/src/utils.ts @@ -89,7 +89,7 @@ export const isDocumentCommentAttachedTo = ( return (value.nodeId ?? null) === (location.nodeId ?? null) } -export async function getTranslatedDocumentStates(lang: string): Promise { +export async function getTranslatedDocumentStates (lang: string): Promise { return { [DocumentState.Draft]: await translate(documents.string.Draft, {}, lang), [DocumentState.Deleted]: await translate(documents.string.Deleted, {}, lang), @@ -101,7 +101,7 @@ export async function getTranslatedDocumentStates(lang: string): Promise> -export async function getTranslatedControlledDocStates(lang: string): Promise { +export async function getTranslatedControlledDocStates (lang: string): Promise { return { [ControlledDocumentState.Approved]: await translate(documentsResources.controlledDocStates.Approved, {}, lang), [ControlledDocumentState.InApproval]: await translate(documentsResources.controlledDocStates.InApproval, {}, lang), @@ -112,42 +112,42 @@ export async function getTranslatedControlledDocStates(lang: string): Promise): Promise { +export async function getVisibleFilters (filters: KeyFilter[], space?: Ref): Promise { // Removes the "Space" filter if a specific space is provided return space === undefined ? filters : filters.filter((f) => f.key !== 'space') } -export async function sortDocumentStates(_: TxOperations, states: DocumentState[]): Promise { +export async function sortDocumentStates (_: TxOperations, states: DocumentState[]): Promise { states.sort((state1, state2) => documentStatesOrder.indexOf(state2) - documentStatesOrder.indexOf(state1)) return states } -export async function getAllDocumentStates(): Promise { +export async function getAllDocumentStates (): Promise { return documentStatesOrder } -export async function getDocumentMetaLinkFragment(document: Doc): Promise { +export async function getDocumentMetaLinkFragment (document: Doc): Promise { const meta = document._id as Ref const client = getClient() const docs = await client.findAll( @@ -200,7 +200,7 @@ export async function getDocumentMetaLinkFragment(document: Doc): Promise { +export async function getControlledDocumentLinkFragment (document: ControlledDocument): Promise { const client = getClient() const targetDocument = await client.findOne(documents.class.ProjectDocument, { document: document._id }) @@ -218,7 +218,7 @@ export interface TeamPopupData { requireSignature?: boolean } -export async function sendReviewRequest( +export async function sendReviewRequest ( client: TxOperations, controlledDoc: ControlledDocument, reviewers: Array> @@ -245,7 +245,7 @@ export async function sendReviewRequest( ) } -export async function sendApprovalRequest( +export async function sendApprovalRequest ( client: TxOperations, controlledDoc: ControlledDocument, approvers: Array>, @@ -300,7 +300,7 @@ export async function sendApprovalRequest( ) } -export async function updateExternalApproversAccess( +export async function updateExternalApproversAccess ( client: TxOperations, controlledDoc: ControlledDocument, added: Array>, @@ -381,7 +381,7 @@ export async function updateExternalApproversAccess( } } -async function createRequest( +async function createRequest ( client: TxOperations, attachedTo: Ref, attachedToClass: Ref>, @@ -422,7 +422,7 @@ async function createRequest( } } -async function getActiveRequest( +async function getActiveRequest ( client: TxOperations, reqClass: Ref>, controlledDoc: ControlledDocument @@ -437,7 +437,7 @@ async function getActiveRequest( ) } -export async function completeRequest( +export async function completeRequest ( client: TxOperations, reqClass: Ref>, controlledDoc: ControlledDocument @@ -468,7 +468,7 @@ export async function completeRequest( await ops.commit() } -export async function saveComment(message: Markup | undefined, req: DocumentRequest): Promise { +export async function saveComment (message: Markup | undefined, req: DocumentRequest): Promise { if (message === undefined || message === '' || isEmptyMarkup(message)) { return } @@ -479,7 +479,7 @@ export async function saveComment(message: Markup | undefined, req: DocumentRequ await client.createMixin(id, chunter.class.ChatMessage, req.space, request.mixin.RequestDecisionComment, {}) } -export async function rejectRequest( +export async function rejectRequest ( client: TxOperations, reqClass: Ref>, controlledDoc: ControlledDocument, @@ -559,7 +559,7 @@ export const loginIntlFieldNames: Readonly<{ [K in keyof LoginInfo]: IntlString export type DocumentStateTagType = 'effective' | 'inProgress' | 'rejected' | 'draft' | 'obsolete' -export function isDocOwner(ownableDocument: { owner?: Ref }): boolean { +export function isDocOwner (ownableDocument: { owner?: Ref }): boolean { const currentPerson = getCurrentEmployee() return ownableDocument.owner === currentPerson @@ -582,7 +582,7 @@ export async function canChangeDocumentOwner (doc?: Document | Document[]): Prom return await checkPermission(getClient(), documents.permission.UpdateDocumentOwner, doc.space) } -export async function canCreateChildTemplate( +export async function canCreateChildTemplate ( doc?: Document | Document[] | DocumentSpace | DocumentSpace[] | ProjectDocument | ProjectDocument[] ): Promise { if (doc === null || doc === undefined) { @@ -599,7 +599,7 @@ export async function canCreateChildTemplate( return orgSpace !== undefined && (await checkPermission(client, documents.permission.CreateDocument, spaceId)) } -export async function canCreateChildDocument( +export async function canCreateChildDocument ( doc?: Document | Document[] | DocumentSpace | DocumentSpace[] | ProjectDocument | ProjectDocument[], includeProjects = false ): Promise { @@ -631,7 +631,7 @@ export async function canCreateChildDocument( return true } -export async function canCreateChildFolder( +export async function canCreateChildFolder ( doc?: Document | Document[] | DocumentSpace | DocumentSpace[] | ProjectDocument | ProjectDocument[], includeProjects = false ): Promise { @@ -663,7 +663,7 @@ export async function canCreateChildFolder( return true } -export async function canRenameFolder( +export async function canRenameFolder ( doc?: Document | Document[] | DocumentSpace | DocumentSpace[] | ProjectDocument | ProjectDocument[], includeProjects = false ): Promise { @@ -695,7 +695,7 @@ export async function canRenameFolder( return await isEditableProject(doc.project) } -export async function canDeleteFolder(doc: ProjectDocument): Promise { +export async function canDeleteFolder (doc: ProjectDocument): Promise { if (doc?._class === undefined) return false const client = getClient() @@ -713,7 +713,7 @@ export async function canDeleteFolder(doc: ProjectDocument): Promise { return await checkPermission(getClient(), documents.permission.ArchiveDocument, doc.space) } -export async function canDeleteDocumentCategory(doc?: Doc | Doc[]): Promise { +export async function canDeleteDocumentCategory (doc?: Doc | Doc[]): Promise { if (doc === null || doc === undefined) { return false } @@ -733,7 +733,7 @@ export async function canDeleteDocumentCategory(doc?: Doc | Doc[]): Promise, includeReadonly = false): Promise { +async function getLatestProject (space: Ref, includeReadonly = false): Promise { const client = getClient() // TODO we should use better approach on selecting the latest available project @@ -745,7 +745,7 @@ async function getLatestProject(space: Ref, includeReadonly = fal }) } -export async function getLatestProjectId( +export async function getLatestProjectId ( spaceRef: Ref, includeReadonly = false ): Promise | undefined> { @@ -772,7 +772,7 @@ export async function getLatestProjectId( } } -export async function isEditableProject(_id: Ref | undefined): Promise { +export async function isEditableProject (_id: Ref | undefined): Promise { if (_id === undefined) { return false } @@ -786,7 +786,7 @@ export async function isEditableProject(_id: Ref | undefined): Promise< return project !== undefined && !project.readonly } -export function getProjectDocsHierarchy(projectMeta: Array>): { +export function getProjectDocsHierarchy (projectMeta: Array>): { rootDocs: Array> childrenByParent: Record>, Array>> } { @@ -810,11 +810,11 @@ export function getProjectDocsHierarchy(projectMeta: Array, doc?: Document): Promise { +export async function documentIdentifierProvider (client: Client, ref: Ref, doc?: Document): Promise { const document = doc ?? (await client.findOne(documents.class.Document, { _id: ref })) if (document === undefined) { @@ -824,7 +824,7 @@ export async function documentIdentifierProvider(client: Client, ref: Ref, doc?: DocumentMeta @@ -838,7 +838,7 @@ export async function getDocumentMetaTitle( return object.title + ` (${hint})` } -export async function documentMetaReferenceVersionsProvider( +export async function documentMetaReferenceVersionsProvider ( client: Client, ref: Ref ): Promise { @@ -861,7 +861,7 @@ export async function documentMetaReferenceVersionsProvider( })) } -export async function controlledDocumentReferenceObjectProvider( +export async function controlledDocumentReferenceObjectProvider ( client: Client, ref: Ref, doc?: ControlledDocument @@ -885,7 +885,7 @@ export async function controlledDocumentReferenceObjectProvider( return docIndex >= 0 && (docIndex <= effIndex || effIndex < 0) ? meta : document } -export async function projectDocumentReferenceObjectProvider( +export async function projectDocumentReferenceObjectProvider ( client: Client, ref: Ref, doc?: ProjectDocument @@ -896,15 +896,15 @@ export async function projectDocumentReferenceObjectProvider( return await controlledDocumentReferenceObjectProvider(client, prjdoc.document as Ref) } -export function documentCompareFn(doc1: Document, doc2: Document): number { +export function documentCompareFn (doc1: Document, doc2: Document): number { return doc1.major - doc2.major !== 0 ? doc1.major - doc2.major : doc1.minor - doc2.minor } -export function getDocumentVersionString(doc: Document): string { +export function getDocumentVersionString (doc: Document): string { return `v${doc.major}.${doc.minor}` } -export async function getControlledDocumentTitle( +export async function getControlledDocumentTitle ( client: Client, ref: Ref, doc?: ControlledDocument @@ -916,17 +916,17 @@ export async function getControlledDocumentTitle( return object.title + ` (${getDocumentVersionString(object)})` } -export async function createChildDocument(doc: ProjectDocument): Promise { +export async function createChildDocument (doc: ProjectDocument): Promise { wizardOpened({ $$currentStep: 'template', location: { space: doc.space, project: doc.project, parent: doc._id } }) showPopup(documents.component.QmsDocumentWizard, {}) } -export async function createChildTemplate(doc: ProjectDocument): Promise { +export async function createChildTemplate (doc: ProjectDocument): Promise { wizardOpened({ $$currentStep: 'info', location: { space: doc.space, project: doc.project, parent: doc._id } }) showPopup(documents.component.QmsTemplateWizard, {}) } -export async function createChildFolder(doc: ProjectDocument): Promise { +export async function createChildFolder (doc: ProjectDocument): Promise { const props = { space: doc.space, project: doc.project, @@ -936,7 +936,7 @@ export async function createChildFolder(doc: ProjectDocument): Promise { showPopup(documents.component.CreateFolder, props) } -export async function renameFolder(doc: ProjectDocument): Promise { +export async function renameFolder (doc: ProjectDocument): Promise { const client = getClient() const pjmeta = await client.findOne(documents.class.ProjectMeta, { _id: doc.attachedTo }) @@ -953,7 +953,7 @@ export async function renameFolder(doc: ProjectDocument): Promise { showPopup(documents.component.CreateFolder, props) } -export async function deleteFolder(obj: ProjectDocument): Promise { +export async function deleteFolder (obj: ProjectDocument): Promise { const success = await _deleteFolder(obj) if (!success) { showPopup(MessageBox, { @@ -964,7 +964,7 @@ export async function deleteFolder(obj: ProjectDocument): Promise { } } -async function _deleteFolder(obj: ProjectDocument): Promise { +async function _deleteFolder (obj: ProjectDocument): Promise { const client = getClient() if (!(await canDeleteFolder(obj))) { @@ -1019,7 +1019,7 @@ async function _deleteFolder(obj: ProjectDocument): Promise { return true } -export async function createDocument(space: DocumentSpace): Promise { +export async function createDocument (space: DocumentSpace): Promise { const project = await getLatestProjectId(space._id) wizardOpened({ $$currentStep: 'template', @@ -1034,7 +1034,7 @@ export async function createTemplate (space: OrgSpace): Promise { showPopup(documents.component.QmsTemplateWizard, {}) } -export async function createFolder(space: DocumentSpace): Promise { +export async function createFolder (space: DocumentSpace): Promise { const project = await getLatestProjectId(space._id) const props = { space: space._id, @@ -1043,7 +1043,7 @@ export async function createFolder(space: DocumentSpace): Promise { showPopup(documents.component.CreateFolder, props) } -export function formatSignatureDate(date: number): string { +export function formatSignatureDate (date: number): string { const timeZone: string = getUserTimezone() return new Date(date).toLocaleDateString('default', { @@ -1058,7 +1058,7 @@ export function formatSignatureDate(date: number): string { }) } -export async function moveDocument(doc: ProjectMeta, space: Ref, target?: ProjectMeta): Promise { +export async function moveDocument (doc: ProjectMeta, space: Ref, target?: ProjectMeta): Promise { const client = getClient() let parent = documents.ids.NoParent @@ -1074,7 +1074,7 @@ export async function moveDocument(doc: ProjectMeta, space: Ref, target?: await client.update(doc, { parent, path, rank }) } -export async function moveDocumentBefore(doc: ProjectMeta, before: ProjectMeta): Promise { +export async function moveDocumentBefore (doc: ProjectMeta, before: ProjectMeta): Promise { const client = getClient() const { space, parent, path } = before @@ -1085,7 +1085,7 @@ export async function moveDocumentBefore(doc: ProjectMeta, before: ProjectMeta): await client.update(doc, { parent, path, rank }) } -export async function moveDocumentAfter(doc: ProjectMeta, after: ProjectMeta): Promise { +export async function moveDocumentAfter (doc: ProjectMeta, after: ProjectMeta): Promise { const client = getClient() const { space, parent, path } = after @@ -1104,12 +1104,12 @@ export class DocumentHiearchyQuery { bundle: DocumentBundle = { ...emptyBundle() } - handleUpdate(data: Partial, callback: (tree: ProjectDocumentTree) => void): void { + handleUpdate (data: Partial, callback: (tree: ProjectDocumentTree) => void): void { this.bundle = { ...this.bundle, ...data } callback(new ProjectDocumentTree(this.bundle)) } - query( + query ( space: Ref, project: Ref>, callback: (tree: ProjectDocumentTree) => void @@ -1142,11 +1142,11 @@ export class DocumentHiearchyQuery { } } -export function createDocumentHierarchyQuery(): DocumentHiearchyQuery { +export function createDocumentHierarchyQuery (): DocumentHiearchyQuery { return new DocumentHiearchyQuery() } -export async function extractValidationWorkflow( +export async function extractValidationWorkflow ( hierarchy: Hierarchy, bundle: DocumentBundle ): Promise, DocumentValidationState[]>> { @@ -1268,7 +1268,7 @@ export async function extractValidationWorkflow( return result } -export function isActivityDocumentState(state: DocumentState | ControlledDocumentState | null): boolean { +export function isActivityDocumentState (state: DocumentState | ControlledDocumentState | null): boolean { if (state == null) { return false } diff --git a/plugins/converter-resources/src/model/headerGenerator.ts b/plugins/converter-resources/src/model/headerGenerator.ts index 9f1f6aead5..23dd01e557 100644 --- a/plugins/converter-resources/src/model/headerGenerator.ts +++ b/plugins/converter-resources/src/model/headerGenerator.ts @@ -14,7 +14,7 @@ // import type { Class, Doc, Hierarchy, Ref } from '@hcengineering/core' -import { translate, type IntlString } from '@hcengineering/platform' +import { translate } from '@hcengineering/platform' import type { AttributeModel } from '@hcengineering/view' import { isIntlString } from '../formatter/utils' diff --git a/plugins/huly-mail-resources/src/components/Configure.svelte b/plugins/huly-mail-resources/src/components/Configure.svelte index 0c5b620c04..965c95ad2b 100644 --- a/plugins/huly-mail-resources/src/components/Configure.svelte +++ b/plugins/huly-mail-resources/src/components/Configure.svelte @@ -64,7 +64,7 @@ } }) - async function getSocialId (): Promise { + async function getSocialId(): Promise { if (selectedMailbox === undefined) { return undefined } @@ -75,7 +75,7 @@ return await accountClient.findSocialIdBySocialKey(socialKey) } - async function apply (): Promise { + async function apply(): Promise { if (selectedMailbox === undefined) { return } @@ -92,8 +92,8 @@ integration = isWorkspaceIntegration(integration) ? integration : await integrationClient.integrate(integration, getCurrentWorkspaceUuid(), { - email: selectedMailbox - }) + email: selectedMailbox + }) await integrationClient.updateConfig(integration, { spaceId: selectedSpace }) diff --git a/plugins/process-resources/src/components/ApproveRequestButtons.svelte b/plugins/process-resources/src/components/ApproveRequestButtons.svelte index 0a853e72c6..9deff5f89e 100644 --- a/plugins/process-resources/src/components/ApproveRequestButtons.svelte +++ b/plugins/process-resources/src/components/ApproveRequestButtons.svelte @@ -26,7 +26,7 @@ const client = getClient() - async function changeApprovalRequestState (ev: MouseEvent, isRejection: boolean): Promise { + async function changeApprovalRequestState(ev: MouseEvent, isRejection: boolean): Promise { showPopup(SignatureDialog, { isRejection }, eventToHTMLElement(ev), async (res) => { if (!res) return diff --git a/plugins/process-resources/src/components/ApproveRequestPresenter.svelte b/plugins/process-resources/src/components/ApproveRequestPresenter.svelte index 726d946190..1cd77d66e7 100644 --- a/plugins/process-resources/src/components/ApproveRequestPresenter.svelte +++ b/plugins/process-resources/src/components/ApproveRequestPresenter.svelte @@ -21,7 +21,7 @@ export let value: ApproveRequest - export function formatSignatureDate (date: number): string { + export function formatSignatureDate(date: number): string { const timeZone: string = getUserTimezone() return new Date(date).toLocaleDateString('default', { diff --git a/plugins/process-resources/src/components/ErrorTooltip.svelte b/plugins/process-resources/src/components/ErrorTooltip.svelte index f68270bc3c..dda980e38e 100644 --- a/plugins/process-resources/src/components/ErrorTooltip.svelte +++ b/plugins/process-resources/src/components/ErrorTooltip.svelte @@ -20,7 +20,7 @@ export let value: ExecutionError[] - async function fillProps (value: ExecutionError[]): Promise { + async function fillProps(value: ExecutionError[]): Promise { for (const val of value) { for (const key in val.intlProps) { try { diff --git a/plugins/process-resources/src/components/ExecutionDetails.svelte b/plugins/process-resources/src/components/ExecutionDetails.svelte index 23a9ca40ff..de69ea889d 100644 --- a/plugins/process-resources/src/components/ExecutionDetails.svelte +++ b/plugins/process-resources/src/components/ExecutionDetails.svelte @@ -45,7 +45,7 @@ } ) let docs: Doc[] = [] - function select (): void { + function select(): void { listProvider.update(docs) listProvider.updateFocus(docs[0]) list?.select(0, undefined) diff --git a/plugins/process-resources/src/components/ExecutionMyToDos.svelte b/plugins/process-resources/src/components/ExecutionMyToDos.svelte index 67b864f6b9..9df13b56ad 100644 --- a/plugins/process-resources/src/components/ExecutionMyToDos.svelte +++ b/plugins/process-resources/src/components/ExecutionMyToDos.svelte @@ -47,13 +47,13 @@ todos = [] } - async function checkTodo (todo: ProcessToDo) { + async function checkTodo(todo: ProcessToDo) { await client.update(todo, { doneOn: new Date().getTime() }) } - function isRequest (todo: ProcessToDo): todo is ApproveRequest { + function isRequest(todo: ProcessToDo): todo is ApproveRequest { return todo._class === plugin.class.ApproveRequest } diff --git a/plugins/process-resources/src/components/ExecutonPresenter.svelte b/plugins/process-resources/src/components/ExecutonPresenter.svelte index db26da87f5..6a1cbeec7b 100644 --- a/plugins/process-resources/src/components/ExecutonPresenter.svelte +++ b/plugins/process-resources/src/components/ExecutonPresenter.svelte @@ -27,7 +27,7 @@ $: process = value?.$lookup?.process ?? client.getModel().findObject(value.process) - function open (): void { + function open(): void { showPopup( ExecutionDetails, { diff --git a/plugins/process-resources/src/components/NotifierExtension.svelte b/plugins/process-resources/src/components/NotifierExtension.svelte index 21a0bef2ba..401aee8b7d 100644 --- a/plugins/process-resources/src/components/NotifierExtension.svelte +++ b/plugins/process-resources/src/components/NotifierExtension.svelte @@ -37,14 +37,14 @@ } }) - async function notifyAll (events: ExecutionLog[]): Promise { + async function notifyAll(events: ExecutionLog[]): Promise { for (const event of events) { if (processed.has(event._id)) continue await notify(event) } } - async function notify (event: ExecutionLog): Promise { + async function notify(event: ExecutionLog): Promise { processed.add(event._id) const _process = client.getModel().findObject(event.process) addNotification( diff --git a/plugins/process-resources/src/components/ProcessAttribute.svelte b/plugins/process-resources/src/components/ProcessAttribute.svelte index 7438a9166c..b276f9863c 100644 --- a/plugins/process-resources/src/components/ProcessAttribute.svelte +++ b/plugins/process-resources/src/components/ProcessAttribute.svelte @@ -49,11 +49,11 @@ $: contextValue = parseContext(value) - function onChange (value: any | undefined): void { + function onChange(value: any | undefined): void { dispatch('change', value) } - function selectContext (e: MouseEvent): void { + function selectContext(e: MouseEvent): void { showPopup( ContextSelectorPopup, { @@ -68,7 +68,7 @@ ) } - function onSelect (res: SelectedContext | null): void { + function onSelect(res: SelectedContext | null): void { if (res === null) { value = undefined } else { diff --git a/plugins/process-resources/src/components/ProcessesExtension.svelte b/plugins/process-resources/src/components/ProcessesExtension.svelte index 4d93a008b0..e298213d21 100644 --- a/plugins/process-resources/src/components/ProcessesExtension.svelte +++ b/plugins/process-resources/src/components/ProcessesExtension.svelte @@ -67,7 +67,7 @@ } } - function add (e: MouseEvent): void { + function add(e: MouseEvent): void { if (readonly) { return } @@ -85,7 +85,7 @@ } ) let docs: Execution[] = [] - function select () { + function select() { listProvider.update(docs) listProvider.updateFocus(docs[0]) list?.select(0, undefined) @@ -125,7 +125,7 @@ let docsProvided = false - function checkForbiddenPermission (permissionsStore: PermissionsStore): boolean { + function checkForbiddenPermission(permissionsStore: PermissionsStore): boolean { return checkMyPermission(process.permission.ForbidRunProcess, card.space as Ref, permissionsStore) } diff --git a/plugins/process-resources/src/components/ProcessesHeaderExtension.svelte b/plugins/process-resources/src/components/ProcessesHeaderExtension.svelte index e43273da29..9e5bde53d5 100644 --- a/plugins/process-resources/src/components/ProcessesHeaderExtension.svelte +++ b/plugins/process-resources/src/components/ProcessesHeaderExtension.svelte @@ -100,7 +100,7 @@ $: rollbacks = docs.filter((d) => d.rollback.length > 0) - function isRequest (todo: ProcessToDo): todo is ApproveRequest { + function isRequest(todo: ProcessToDo): todo is ApproveRequest { return todo._class === process.class.ApproveRequest } diff --git a/plugins/process-resources/src/components/ProcessesSection.svelte b/plugins/process-resources/src/components/ProcessesSection.svelte index ec2ede6192..b9aacac9a0 100644 --- a/plugins/process-resources/src/components/ProcessesSection.svelte +++ b/plugins/process-resources/src/components/ProcessesSection.svelte @@ -37,7 +37,7 @@ const client = getClient() - async function add (): Promise { + async function add(): Promise { const initState = generateId() const id = await client.createDoc(process.class.Process, core.space.Model, { name: await translate(process.string.NewProcess, {}), @@ -81,7 +81,7 @@ } ) - function handleSelect (id: Ref): void { + function handleSelect(id: Ref): void { const loc = getCurrentLocation() loc.path[5] = process.component.ProcessEditor loc.path[6] = id diff --git a/plugins/process-resources/src/components/RequestsExtension.svelte b/plugins/process-resources/src/components/RequestsExtension.svelte index fa9b60c3d0..af7f68f104 100644 --- a/plugins/process-resources/src/components/RequestsExtension.svelte +++ b/plugins/process-resources/src/components/RequestsExtension.svelte @@ -55,7 +55,7 @@ } ) let docs: ApproveRequest[] = [] - function select () { + function select() { listProvider.update(docs) listProvider.updateFocus(docs[0]) list?.select(0, undefined) diff --git a/plugins/process-resources/src/components/RunProcessCardPopup.svelte b/plugins/process-resources/src/components/RunProcessCardPopup.svelte index e8788b9aa5..1f74d0e46e 100644 --- a/plugins/process-resources/src/components/RunProcessCardPopup.svelte +++ b/plugins/process-resources/src/components/RunProcessCardPopup.svelte @@ -39,7 +39,7 @@ const dispatch = createEventDispatcher() - async function runProcess (): Promise { + async function runProcess(): Promise { if (process === undefined || card === undefined) return const tx = await createExecution(card._id, process, card.space, client.txFactory) if (tx) await client.tx(tx) @@ -52,7 +52,7 @@ $: void filter(process) - async function filter (process: Ref | undefined): Promise { + async function filter(process: Ref | undefined): Promise { if (process === undefined) { ignoreObjects = [] return diff --git a/plugins/process-resources/src/components/RunProcessPopup.svelte b/plugins/process-resources/src/components/RunProcessPopup.svelte index 9bfcee5e22..6dd4aebd86 100644 --- a/plugins/process-resources/src/components/RunProcessPopup.svelte +++ b/plugins/process-resources/src/components/RunProcessPopup.svelte @@ -36,7 +36,7 @@ type PossibleProcessClass = Ref - function getCardPossibleClasses (card: Card): PossibleProcessClass[] { + function getCardPossibleClasses(card: Card): PossibleProcessClass[] { const ancestors = h.getAncestors(card._class) as PossibleProcessClass[] const res = new Set(ancestors) @@ -48,7 +48,7 @@ return [...res] } - function getPossibleClasses (): PossibleProcessClass[] { + function getPossibleClasses(): PossibleProcessClass[] { if (!value) { return [] } @@ -70,7 +70,7 @@ return [...res] } - async function filterProcesses (processes: Process[]): Promise { + async function filterProcesses(processes: Process[]): Promise { if (value === undefined) return [] const res: Process[] = [] const shouldCheck: Process[] = [] @@ -99,7 +99,7 @@ const dispatch = createEventDispatcher() - async function runProcess (_id: Ref): Promise { + async function runProcess(_id: Ref): Promise { if (!value) return for (const element of values) { const tx = await createExecution(element._id, _id, element.space, client.txFactory) diff --git a/plugins/process-resources/src/components/SignatureDialog.svelte b/plugins/process-resources/src/components/SignatureDialog.svelte index 9aacd6ca99..81734dfb21 100644 --- a/plugins/process-resources/src/components/SignatureDialog.svelte +++ b/plugins/process-resources/src/components/SignatureDialog.svelte @@ -66,7 +66,7 @@ let status = OK - async function submit (): Promise { + async function submit(): Promise { if (object.email === '' || object.password === '') { return } @@ -78,7 +78,7 @@ } } - async function validateAccount (email: string, password: string): Promise { + async function validateAccount(email: string, password: string): Promise { const accountClient = getAccountClient(accountsUrl) try { @@ -104,7 +104,7 @@ password: login.string.Password } - async function validate (): Promise { + async function validate(): Promise { for (const field of Object.keys(object)) { const k = field as keyof LoginInfo if (object[k] === '') { diff --git a/plugins/process-resources/src/components/attributeEditors/ConfigurePopup.svelte b/plugins/process-resources/src/components/attributeEditors/ConfigurePopup.svelte index 563a4236bf..73ad4542aa 100644 --- a/plugins/process-resources/src/components/attributeEditors/ConfigurePopup.svelte +++ b/plugins/process-resources/src/components/attributeEditors/ConfigurePopup.svelte @@ -64,7 +64,7 @@ } } - function getReduceFunctions (): Ref[] { + function getReduceFunctions(): Ref[] { const model = client.getModel() const h = client.getHierarchy() const res: Ref[] = [] @@ -85,7 +85,7 @@ $: functionsLength = contextValue.functions?.length ?? 0 - function getAvailableFunctions ( + function getAvailableFunctions( functions: Func[] | undefined, attrClass: Ref>, category: AttributeCategory @@ -110,8 +110,8 @@ $: funcs = (contextValue.functions?.length ?? 0) > 0 ? client - .getModel() - .findAllSync(plugin.class.ProcessFunction, { _id: { $in: contextValue.functions?.map((it) => it.func) } }) + .getModel() + .findAllSync(plugin.class.ProcessFunction, { _id: { $in: contextValue.functions?.map((it) => it.func) } }) : [] $: sourceFunc = @@ -121,7 +121,7 @@ $: functionButtonIndex = functionsLength + (sourceFunc !== undefined ? 1 : 0) - function onFallback (): void { + function onFallback(): void { showPopup(FallbackEditor, { contextValue, attribute }, elements[functionButtonIndex + 1], (res) => { if (res != null) { if (res.value !== undefined) { @@ -135,27 +135,27 @@ }) } - function onFunctionSelect (e: Ref): void { + function onFunctionSelect(e: Ref): void { onFunction(e, {}, addFunction) } - function addFunction (func: Func): void { + function addFunction(func: Func): void { const arr = contextValue.functions ?? [] arr.push(func) contextValue.functions = arr onChange(contextValue) } - function onSourceFunctionSelect (e: Ref): void { + function onSourceFunctionSelect(e: Ref): void { onFunction(e, contextValue.sourceFunction?.props ?? {}, (res) => (contextValue.sourceFunction = res)) } - function onSourceFunctionChange (e: Func): void { + function onSourceFunctionChange(e: Func): void { contextValue.sourceFunction = e onChange(contextValue) } - function onFunction (_func: Ref, props: Record, cb: (res: Func) => void) { + function onFunction(_func: Ref, props: Record, cb: (res: Func) => void) { const func = client.getModel().findAllSync(plugin.class.ProcessFunction, { _id: _func })[0] if (func.editor === undefined) { const res: Func = { func: _func, props: {} } @@ -186,7 +186,7 @@ } } - function onFunctionChange (e: Ref, i: number): void { + function onFunctionChange(e: Ref, i: number): void { onFunction(e, contextValue.functions?.[i]?.props ?? {}, (res) => { if (contextValue.functions === undefined) { contextValue.functions = [] @@ -196,13 +196,13 @@ }) } - function getFunctionSelect (i: number): (e: Ref) => void { + function getFunctionSelect(i: number): (e: Ref) => void { return (e: Ref) => { onFunctionChange(e, i) } } - function getFunctionChange (i: number): (e: Func) => void { + function getFunctionChange(i: number): (e: Func) => void { return (e: Func) => { if (contextValue.functions === undefined) { contextValue.functions = [] @@ -213,7 +213,7 @@ } } - function onFunctionRemove (pos: number): void { + function onFunctionRemove(pos: number): void { const arr = contextValue.functions ?? [] if (pos !== -1) { arr.splice(pos, 1) @@ -222,7 +222,7 @@ onChange(contextValue) } - function onConfigure (e: MouseEvent, func: Func, pos: number): void { + function onConfigure(e: MouseEvent, func: Func, pos: number): void { const f = getFunction(func.func) if (contextValue.functions === undefined || f.editor === undefined) return const val = contextValue.functions[pos] @@ -252,7 +252,7 @@ ) } - function onFallbackChange (): void { + function onFallbackChange(): void { if (contextValue.fallbackValue === undefined) { contextValue.fallbackValue = null } else { @@ -261,7 +261,7 @@ onChange(contextValue) } - function getFunction (_id: Ref): ProcessFunction { + function getFunction(_id: Ref): ProcessFunction { return client.getModel().findAllSync(plugin.class.ProcessFunction, { _id })[0] } diff --git a/plugins/process-resources/src/components/attributeEditors/ConstValuePopup.svelte b/plugins/process-resources/src/components/attributeEditors/ConstValuePopup.svelte index 94807b8ac9..666b5d4ff3 100644 --- a/plugins/process-resources/src/components/attributeEditors/ConstValuePopup.svelte +++ b/plugins/process-resources/src/components/attributeEditors/ConstValuePopup.svelte @@ -25,11 +25,11 @@ const dispatch = createEventDispatcher() - function save (): void { + function save(): void { dispatch('close', value) } - function onChange (val: any): void { + function onChange(val: any): void { value = val } diff --git a/plugins/process-resources/src/components/attributeEditors/ContextSelectorPopup.svelte b/plugins/process-resources/src/components/attributeEditors/ContextSelectorPopup.svelte index 59a81d1075..ae0f25d111 100644 --- a/plugins/process-resources/src/components/attributeEditors/ContextSelectorPopup.svelte +++ b/plugins/process-resources/src/components/attributeEditors/ContextSelectorPopup.svelte @@ -40,12 +40,12 @@ const dispatch = createEventDispatcher() - function onClick (val: SelectedContext): void { + function onClick(val: SelectedContext): void { onSelect(val) dispatch('close') } - function onAttribute (val: AnyAttribute): void { + function onAttribute(val: AnyAttribute): void { const valueFunc = getValueReduceFunc(val, attribute) onClick({ type: 'attribute', @@ -60,7 +60,7 @@ $: relations = Object.entries(context.relations) $: convertible = (context as any).convertible ?? [] - function onUserRequest (): void { + function onUserRequest(): void { onSelect({ type: 'userRequest', id: generateContextId(), @@ -70,7 +70,7 @@ dispatch('close') } - function onFunc (func: Ref): void { + function onFunc(func: Ref): void { onSelect({ type: 'function', key: attribute.name, @@ -80,18 +80,18 @@ dispatch('close') } - function onProcessContext (ctx: ProcessExecutionContext): void { + function onProcessContext(ctx: ProcessExecutionContext): void { onSelect(ctx.value) dispatch('close') } - function getFunc (func: Ref): ProcessFunction { + function getFunc(func: Ref): ProcessFunction { const client = getClient() const f = client.getModel().getObject(func) return f } - function onRelation (val: RelatedContext): void { + function onRelation(val: RelatedContext): void { const client = getClient() const reduceFunc = getRelationObjectReduceFunc(client, val.association, val.direction, attribute) onSelect({ @@ -106,7 +106,7 @@ dispatch('close') } - function onConst (e: MouseEvent): void { + function onConst(e: MouseEvent): void { showPopup(ConstValuePopup, { attribute }, eventToHTMLElement(e), (res) => { if (res != null) { onSelect({ @@ -119,7 +119,7 @@ }) } - function onConvertSelect (val: SelectedContext | null, func: Ref): void { + function onConvertSelect(val: SelectedContext | null, func: Ref): void { if (val !== null) { onClick({ ...val, @@ -144,7 +144,7 @@ } } - function getOnConvertSelect (func: Ref): (val: SelectedContext | null) => void { + function getOnConvertSelect(func: Ref): (val: SelectedContext | null) => void { return (val: SelectedContext | null) => { onConvertSelect(val, func) } diff --git a/plugins/process-resources/src/components/attributeEditors/ContextValue.svelte b/plugins/process-resources/src/components/attributeEditors/ContextValue.svelte index b11788346f..b6e15cf306 100644 --- a/plugins/process-resources/src/components/attributeEditors/ContextValue.svelte +++ b/plugins/process-resources/src/components/attributeEditors/ContextValue.svelte @@ -34,7 +34,7 @@ $: configurable = contextValue.type !== 'userRequest' - function configure (e: MouseEvent): void { + function configure(e: MouseEvent): void { if (!configurable) return const onChange = (res: any): void => { if (res !== undefined) { diff --git a/plugins/process-resources/src/components/attributeEditors/ExecutionContextSelector.svelte b/plugins/process-resources/src/components/attributeEditors/ExecutionContextSelector.svelte index db796900f2..0637eb7652 100644 --- a/plugins/process-resources/src/components/attributeEditors/ExecutionContextSelector.svelte +++ b/plugins/process-resources/src/components/attributeEditors/ExecutionContextSelector.svelte @@ -41,7 +41,7 @@ } } - function onAttribute (attr: AnyAttribute): void { + function onAttribute(attr: AnyAttribute): void { const valueFunc = getValueReduceFunc(attr, target) onSelect({ type: 'context', diff --git a/plugins/process-resources/src/components/attributeEditors/NestedContextSelector.svelte b/plugins/process-resources/src/components/attributeEditors/NestedContextSelector.svelte index 210122aaff..af1117ebcb 100644 --- a/plugins/process-resources/src/components/attributeEditors/NestedContextSelector.svelte +++ b/plugins/process-resources/src/components/attributeEditors/NestedContextSelector.svelte @@ -41,7 +41,7 @@ } } - function onAttribute (attr: AnyAttribute): void { + function onAttribute(attr: AnyAttribute): void { const pathReduce = getValueReduceFunc(context.attribute, target) const valueFunc = getValueReduceFunc(attr, target) onSelect({ diff --git a/plugins/process-resources/src/components/attributeEditors/RelatedContextSelector.svelte b/plugins/process-resources/src/components/attributeEditors/RelatedContextSelector.svelte index 58a0b9d4c3..89d4908824 100644 --- a/plugins/process-resources/src/components/attributeEditors/RelatedContextSelector.svelte +++ b/plugins/process-resources/src/components/attributeEditors/RelatedContextSelector.svelte @@ -44,7 +44,7 @@ } } - function onAttribute (attr: AnyAttribute): void { + function onAttribute(attr: AnyAttribute): void { const reduceFunc = getRelationReduceFunc(client, context.association, context.direction) const valueFunc = getValueReduceFunc(attr, target) onSelect({ diff --git a/plugins/process-resources/src/components/contextEditors/ClassUserInput.svelte b/plugins/process-resources/src/components/contextEditors/ClassUserInput.svelte index 32670ad6c8..d57391d310 100644 --- a/plugins/process-resources/src/components/contextEditors/ClassUserInput.svelte +++ b/plugins/process-resources/src/components/contextEditors/ClassUserInput.svelte @@ -27,7 +27,7 @@ const attribute = hierarchy.findAttribute(_class, '_class') const dispatch = createEventDispatcher() - function onChange (val: any | undefined): void { + function onChange(val: any | undefined): void { value = val dispatch('change', val) } diff --git a/plugins/process-resources/src/components/contextEditors/FallbackEditor.svelte b/plugins/process-resources/src/components/contextEditors/FallbackEditor.svelte index 41b40856ff..427684500b 100644 --- a/plugins/process-resources/src/components/contextEditors/FallbackEditor.svelte +++ b/plugins/process-resources/src/components/contextEditors/FallbackEditor.svelte @@ -27,11 +27,11 @@ const dispatch = createEventDispatcher() const client = getClient() - function save (): void { + function save(): void { dispatch('close', { value }) } - function errorChange (e: CustomEvent): void { + function errorChange(e: CustomEvent): void { if (e.detail) { value = undefined } else { @@ -41,13 +41,13 @@ let editor: AnySvelteComponent | undefined - function getBaseEditor (_class: Ref>, key: string): void { + function getBaseEditor(_class: Ref>, key: string): void { void getAttributeEditor(client, _class, key).then((p) => { editor = p }) } - function onChange (val: any | undefined): void { + function onChange(val: any | undefined): void { value = val } diff --git a/plugins/process-resources/src/components/contextEditors/RequestUserInput.svelte b/plugins/process-resources/src/components/contextEditors/RequestUserInput.svelte index 417e9988f4..1f02fb0a02 100644 --- a/plugins/process-resources/src/components/contextEditors/RequestUserInput.svelte +++ b/plugins/process-resources/src/components/contextEditors/RequestUserInput.svelte @@ -33,13 +33,13 @@ const client = getClient() const model = client.getModel() - function save (): void { + function save(): void { dispatch('close', { value: values }) } $: canSaveValue = inputs.every((input) => values[input.id] != null) - export function canClose (): boolean { + export function canClose(): boolean { return false } diff --git a/plugins/process-resources/src/components/contextEditors/RequestUserInputAttribute.svelte b/plugins/process-resources/src/components/contextEditors/RequestUserInputAttribute.svelte index 839f37a85f..d092e3ca70 100644 --- a/plugins/process-resources/src/components/contextEditors/RequestUserInputAttribute.svelte +++ b/plugins/process-resources/src/components/contextEditors/RequestUserInputAttribute.svelte @@ -28,7 +28,7 @@ const hierarchy = client.getHierarchy() const attribute = hierarchy.findAttribute(_class, key) ?? (key === '' ? mockAttribute(_class) : undefined) - function mockAttribute (_class: Ref>): AnyAttribute { + function mockAttribute(_class: Ref>): AnyAttribute { const type: RefTo = { label: core.string.Ref, _class: core.class.RefTo, @@ -49,7 +49,7 @@ let editor: AnyComponent | undefined - function getEditor (_class: Ref>, key: string): void { + function getEditor(_class: Ref>, key: string): void { if (key === '' || key === '_id') { const mixin = hierarchy.classHierarchyMixin(_class, view.mixin.AttributeEditor) if (mixin?.inlineEditor !== undefined) { @@ -61,7 +61,7 @@ } const dispatch = createEventDispatcher() - function onChange (val: any | undefined): void { + function onChange(val: any | undefined): void { value = val dispatch('change', val) } diff --git a/plugins/process-resources/src/components/contextEditors/ResultInput.svelte b/plugins/process-resources/src/components/contextEditors/ResultInput.svelte index 83e281e7d6..2f4f1b9115 100644 --- a/plugins/process-resources/src/components/contextEditors/ResultInput.svelte +++ b/plugins/process-resources/src/components/contextEditors/ResultInput.svelte @@ -30,14 +30,14 @@ let values: Record = {} - function fillValues (): void { + function fillValues(): void { results.forEach((r) => { values[r._id] = getVal(r) }) values = values } - function getVal (res: UserResult): any { + function getVal(res: UserResult): any { if (res.key !== undefined) { return getObjectValue(res.key, doc) ?? context[res._id] } @@ -46,15 +46,15 @@ fillValues() - export function canClose (): boolean { + export function canClose(): boolean { return false } - function save (): void { + function save(): void { dispatch('close', values) } - function getOnChange (id: ContextId): (val: any) => void { + function getOnChange(id: ContextId): (val: any) => void { return (val: any) => { values[id] = val values = values diff --git a/plugins/process-resources/src/components/contextEditors/RoleEditor.svelte b/plugins/process-resources/src/components/contextEditors/RoleEditor.svelte index b59d037bb9..7364055b57 100644 --- a/plugins/process-resources/src/components/contextEditors/RoleEditor.svelte +++ b/plugins/process-resources/src/components/contextEditors/RoleEditor.svelte @@ -45,7 +45,7 @@ } } - function onValue (role: Ref): void { + function onValue(role: Ref): void { const pathReduce = getContextFunctionReduce(context, target) onSelect({ type: 'function', diff --git a/plugins/process-resources/src/components/contextEditors/ToDoContextSelector.svelte b/plugins/process-resources/src/components/contextEditors/ToDoContextSelector.svelte index 94dfd5d8be..fcf89873a6 100644 --- a/plugins/process-resources/src/components/contextEditors/ToDoContextSelector.svelte +++ b/plugins/process-resources/src/components/contextEditors/ToDoContextSelector.svelte @@ -56,20 +56,20 @@ const client = getClient() - function getContext (value: string): SelectedExecutionContext | undefined { + function getContext(value: string): SelectedExecutionContext | undefined { const context = parseContext(value) if (context !== undefined && isExecutionContext(context)) { return context } } - function isExecutionContext (context: SelectedContext): context is SelectedExecutionContext { + function isExecutionContext(context: SelectedContext): context is SelectedExecutionContext { return context.type === 'context' } const dispatch = createEventDispatcher() - async function getPossibleContext (): Promise { + async function getPossibleContext(): Promise { // todo filter to only possible todos, for now allow all... const res: SelectPopupValueType[] = [] for (const key in process.context) { @@ -106,7 +106,7 @@ return res } - async function click (ev: MouseEvent): Promise { + async function click(ev: MouseEvent): Promise { if (readonly) { return } diff --git a/plugins/process-resources/src/components/criterias/ArraySizeCriteria.svelte b/plugins/process-resources/src/components/criterias/ArraySizeCriteria.svelte index c85a464247..5bfbdefdd2 100644 --- a/plugins/process-resources/src/components/criterias/ArraySizeCriteria.svelte +++ b/plugins/process-resources/src/components/criterias/ArraySizeCriteria.svelte @@ -36,7 +36,7 @@ $: contextValue = parseContext(val) - function selectContext (e: MouseEvent): void { + function selectContext(e: MouseEvent): void { showPopup( ContextSelectorPopup, { @@ -50,12 +50,12 @@ ) } - function onSelect (res: SelectedContext | null): void { + function onSelect(res: SelectedContext | null): void { val = res === null ? undefined : createContext(res) dispatch('change', val) } - function onChange (value: any | undefined): void { + function onChange(value: any | undefined): void { val = value dispatch('change', val) } diff --git a/plugins/process-resources/src/components/criterias/AttributeCriteria.svelte b/plugins/process-resources/src/components/criterias/AttributeCriteria.svelte index b80768cd17..2f8a3aab6f 100644 --- a/plugins/process-resources/src/components/criterias/AttributeCriteria.svelte +++ b/plugins/process-resources/src/components/criterias/AttributeCriteria.svelte @@ -39,7 +39,7 @@ $: value = params[key] - function onChange (e: CustomEvent): void { + function onChange(e: CustomEvent): void { if (e.detail !== undefined) { dispatch('change', { value: e.detail }) } diff --git a/plugins/process-resources/src/components/criterias/BaseCriteria.svelte b/plugins/process-resources/src/components/criterias/BaseCriteria.svelte index 195fd3828c..13aee94660 100644 --- a/plugins/process-resources/src/components/criterias/BaseCriteria.svelte +++ b/plugins/process-resources/src/components/criterias/BaseCriteria.svelte @@ -37,13 +37,13 @@ $: [val, selectedMode] = parseValue(modesValues, value) - function changeResult (value: any): void { + function changeResult(value: any): void { const result = buildResult(selectedMode, value) value = result dispatch('change', result) } - function changeMode (e: CustomEvent): void { + function changeMode(e: CustomEvent): void { const editorChanged = e.detail if (editorChanged) { val = undefined diff --git a/plugins/process-resources/src/components/criterias/BaseCriteriaEditor.svelte b/plugins/process-resources/src/components/criterias/BaseCriteriaEditor.svelte index 635782812d..9109c69610 100644 --- a/plugins/process-resources/src/components/criterias/BaseCriteriaEditor.svelte +++ b/plugins/process-resources/src/components/criterias/BaseCriteriaEditor.svelte @@ -32,7 +32,7 @@ $: contextValue = parseContext(val) - function selectContext (e: MouseEvent): void { + function selectContext(e: MouseEvent): void { showPopup( ContextSelectorPopup, { @@ -46,12 +46,12 @@ ) } - function onSelect (res: SelectedContext | null): void { + function onSelect(res: SelectedContext | null): void { val = res === null ? undefined : createContext(res) dispatch('change', val) } - function onChange (value: any | undefined): void { + function onChange(value: any | undefined): void { val = value dispatch('change', val) } diff --git a/plugins/process-resources/src/components/criterias/ContextCriteria.svelte b/plugins/process-resources/src/components/criterias/ContextCriteria.svelte index 6c783522cb..ce0ac148b5 100644 --- a/plugins/process-resources/src/components/criterias/ContextCriteria.svelte +++ b/plugins/process-resources/src/components/criterias/ContextCriteria.svelte @@ -44,7 +44,7 @@ $: fill(contextId) - function fill (contextId: string): void { + function fill(contextId: string): void { const _ctx = process.context[contextId as ContextId] if (_ctx === undefined) { editor = undefined @@ -69,7 +69,7 @@ context = getContext(client, process, presenterClass?.attrClass, presenterClass?.category) } - function onChange (e: CustomEvent): void { + function onChange(e: CustomEvent): void { if (e.detail !== undefined) { dispatch('change', e.detail) } diff --git a/plugins/process-resources/src/components/criterias/CriteriasEditor.svelte b/plugins/process-resources/src/components/criterias/CriteriasEditor.svelte index f98445d80e..e5e4e6d462 100644 --- a/plugins/process-resources/src/components/criterias/CriteriasEditor.svelte +++ b/plugins/process-resources/src/components/criterias/CriteriasEditor.svelte @@ -27,7 +27,7 @@ const dispatch = createEventDispatcher() - function change (e: CustomEvent, key: string): void { + function change(e: CustomEvent, key: string): void { if (e.detail?.value != null && e.detail.value !== '') { ;(params as any)[key] = e.detail.value } else if (Object.hasOwn(params, key)) { diff --git a/plugins/process-resources/src/components/criterias/RangeCriteria.svelte b/plugins/process-resources/src/components/criterias/RangeCriteria.svelte index 49bff10f70..58a3c62912 100644 --- a/plugins/process-resources/src/components/criterias/RangeCriteria.svelte +++ b/plugins/process-resources/src/components/criterias/RangeCriteria.svelte @@ -35,7 +35,7 @@ $: firstContextValue = parseContext(val?.[0]) $: secondContextValue = parseContext(val?.[1]) - function selectContext (e: MouseEvent, index: number): void { + function selectContext(e: MouseEvent, index: number): void { showPopup( ContextSelectorPopup, { @@ -51,28 +51,28 @@ ) } - function onSelect (res: SelectedContext | null, index: number): void { + function onSelect(res: SelectedContext | null, index: number): void { val[index] = res === null ? undefined : createContext(res) dispatch('change', val) } - function onChange (value: any | undefined, index: number): void { + function onChange(value: any | undefined, index: number): void { val[index] = value dispatch('change', val) } - function setDefaults (value: any) { + function setDefaults(value: any) { if (!value || !Array.isArray(value)) { val = [undefined, undefined] } } $: setDefaults(val) - function changeFirst (value: any | undefined): void { + function changeFirst(value: any | undefined): void { onChange(value, 0) } - function changeSecond (value: any | undefined): void { + function changeSecond(value: any | undefined): void { onChange(value, 1) } diff --git a/plugins/process-resources/src/components/criterias/SubProcessStateCriteria.svelte b/plugins/process-resources/src/components/criterias/SubProcessStateCriteria.svelte index 3c45fcc1b1..ba709a2983 100644 --- a/plugins/process-resources/src/components/criterias/SubProcessStateCriteria.svelte +++ b/plugins/process-resources/src/components/criterias/SubProcessStateCriteria.svelte @@ -35,12 +35,12 @@ let [val, selectedMode] = parseValue(modes, value) $: [val, selectedMode] = parseValue(modes, value) - function changeMode (): void { + function changeMode(): void { value = buildResult(selectedMode, val) dispatch('change', value) } - function change (e: CustomEvent): void { + function change(e: CustomEvent): void { val = e.detail ?? [] value = buildResult(selectedMode, val) dispatch('change', value) diff --git a/plugins/process-resources/src/components/presenters/UpdateAttributePresenter.svelte b/plugins/process-resources/src/components/presenters/UpdateAttributePresenter.svelte index cc65335f51..ffd51b1b62 100644 --- a/plugins/process-resources/src/components/presenters/UpdateAttributePresenter.svelte +++ b/plugins/process-resources/src/components/presenters/UpdateAttributePresenter.svelte @@ -34,11 +34,11 @@ $: [val, selectedMode] = parseValue(Object.values(Modes), value) $: presenterClass = attribute !== undefined ? getAttributePresenterClass(hierarchy, attribute.type) : undefined - function isArraySize (category: AttributeCategory | undefined, selectedMode: Mode): boolean { + function isArraySize(category: AttributeCategory | undefined, selectedMode: Mode): boolean { return category === 'array' && selectedMode.id.startsWith('size') } - function getPresenter (key: string): AnyComponent | undefined { + function getPresenter(key: string): AnyComponent | undefined { const isArraySizeCriteria = isArraySize(presenterClass?.category, selectedMode) if (isArraySizeCriteria) { return view.component.NumberPresenter diff --git a/plugins/process-resources/src/components/settings/ActionPresenter.svelte b/plugins/process-resources/src/components/settings/ActionPresenter.svelte index 3cce35caea..14837f4f92 100644 --- a/plugins/process-resources/src/components/settings/ActionPresenter.svelte +++ b/plugins/process-resources/src/components/settings/ActionPresenter.svelte @@ -32,7 +32,7 @@ $: void validate(action.params) - async function validate (params: MethodParams): Promise { + async function validate(params: MethodParams): Promise { try { const res: string[] = [] for (const key of method.requiredParams) { diff --git a/plugins/process-resources/src/components/settings/AddRelationEditor.svelte b/plugins/process-resources/src/components/settings/AddRelationEditor.svelte index 1a74f8cbc3..ca57472a01 100644 --- a/plugins/process-resources/src/components/settings/AddRelationEditor.svelte +++ b/plugins/process-resources/src/components/settings/AddRelationEditor.svelte @@ -37,7 +37,7 @@ $: assoc = association && client.getModel().findObject(association) $: targetClass = assoc && direction ? (direction === 'A' ? assoc.classA : assoc.classB) : undefined - function changeAssociation (e: CustomEvent): void { + function changeAssociation(e: CustomEvent): void { if (e.detail !== undefined) { association = e.detail.association direction = e.detail.direction @@ -48,7 +48,7 @@ } } - function changeParam (e: CustomEvent): void { + function changeParam(e: CustomEvent): void { if (e.detail !== undefined) { params._id = e.detail ;(step.params as any)._id = e.detail diff --git a/plugins/process-resources/src/components/settings/AddTagEditor.svelte b/plugins/process-resources/src/components/settings/AddTagEditor.svelte index e2186b983b..d6cd418840 100644 --- a/plugins/process-resources/src/components/settings/AddTagEditor.svelte +++ b/plugins/process-resources/src/components/settings/AddTagEditor.svelte @@ -36,7 +36,7 @@ let keys = Object.keys(props || {}) - function changeTag (e: CustomEvent<{ tag: Ref }>): void { + function changeTag(e: CustomEvent<{ tag: Ref }>): void { if (e.detail !== undefined) { _id = e.detail.tag keys = [] @@ -61,7 +61,7 @@ } } - function removeParam (e: CustomEvent<{ key: string }>): void { + function removeParam(e: CustomEvent<{ key: string }>): void { if (e.detail !== undefined) { // eslint-disable-next-line @typescript-eslint/no-dynamic-delete delete props[e.detail.key] @@ -75,7 +75,7 @@ $: allAttrs = _id !== undefined ? Array.from(client.getHierarchy().getOwnAttributes(_id).values()) : [] $: possibleAttrs = allAttrs.filter((attr) => !keys.includes(attr.name)) - function onAdd (e: MouseEvent): void { + function onAdd(e: MouseEvent): void { showPopup( SelectPopup, { @@ -92,11 +92,11 @@ ) } - function addKey (key: string): void { + function addKey(key: string): void { keys = [...keys, key] } - function change (e: CustomEvent): void { + function change(e: CustomEvent): void { if (e.detail == null) return props = e.detail params.props = props @@ -107,7 +107,7 @@ let askRequired = params.askRequired ?? false $: askRequired = params.askRequired ?? false - function changeAskRequired (e: CustomEvent): void { + function changeAskRequired(e: CustomEvent): void { if (e.detail !== undefined) { params.askRequired = e.detail if (e.detail) { diff --git a/plugins/process-resources/src/components/settings/AddTransitionButton.svelte b/plugins/process-resources/src/components/settings/AddTransitionButton.svelte index 4f5fa56e03..3037e9904d 100644 --- a/plugins/process-resources/src/components/settings/AddTransitionButton.svelte +++ b/plugins/process-resources/src/components/settings/AddTransitionButton.svelte @@ -21,7 +21,7 @@ export let state: State export let direction: 'from' | 'to' - function add (): void { + function add(): void { showPopup(AddTransitionPopup, { state, direction }, 'top') } diff --git a/plugins/process-resources/src/components/settings/AddTransitionPopup.svelte b/plugins/process-resources/src/components/settings/AddTransitionPopup.svelte index 8cdc31e229..0029e62fa4 100644 --- a/plugins/process-resources/src/components/settings/AddTransitionPopup.svelte +++ b/plugins/process-resources/src/components/settings/AddTransitionPopup.svelte @@ -79,7 +79,7 @@ const triggersItems: DropdownIntlItem[] = triggers.map((p) => ({ label: p.label, id: p._id, icon: p.icon })) - async function save (): Promise { + async function save(): Promise { if (to === undefined || trigger === undefined) { return } @@ -100,7 +100,7 @@ dispatch('close') } - function change (e: CustomEvent>): void { + function change(e: CustomEvent>): void { if (e.detail?.params !== undefined) { params = e.detail.params } diff --git a/plugins/process-resources/src/components/settings/ApproveRequestEditor.svelte b/plugins/process-resources/src/components/settings/ApproveRequestEditor.svelte index 3f5b3d9dbd..b7ff8aefdb 100644 --- a/plugins/process-resources/src/components/settings/ApproveRequestEditor.svelte +++ b/plugins/process-resources/src/components/settings/ApproveRequestEditor.svelte @@ -33,7 +33,7 @@ const client = getClient() const hierarchy = client.getHierarchy() - function changeParams (e: CustomEvent): void { + function changeParams(e: CustomEvent): void { if (e.detail !== undefined) { params = e.detail ;(step.params as any) = params @@ -60,7 +60,7 @@ const presenterClass = getAttributePresenterClass(hierarchy, attribute.type) $: context = getContext(client, process, presenterClass.attrClass, presenterClass.category, undefined, true) - function onChange (e: CustomEvent): void { + function onChange(e: CustomEvent): void { params.user = e.detail ;(step.params as any) = params dispatch('change', step) @@ -68,7 +68,7 @@ let editor: AnySvelteComponent | undefined - function getBaseEditor (attribute: AnyAttribute): void { + function getBaseEditor(attribute: AnyAttribute): void { void getAttributeEditor(client, plugin.class.ApproveRequest, { attr: attribute, key: 'user' @@ -88,7 +88,7 @@ dispatch('change', step) } - function toggleField (e: CustomEvent): void { + function toggleField(e: CustomEvent): void { if (e.detail) { if (contextValue?.type === 'attribute') { params.field = contextValue.key @@ -100,7 +100,7 @@ dispatch('change', step) } - function toggleActionType (e: CustomEvent): void { + function toggleActionType(e: CustomEvent): void { params.actionType = e.detail ? 'review' : 'approve' step.params = params dispatch('change', step) diff --git a/plugins/process-resources/src/components/settings/ApproveRequestTriggerEditor.svelte b/plugins/process-resources/src/components/settings/ApproveRequestTriggerEditor.svelte index c2fa090c3c..b23870f67f 100644 --- a/plugins/process-resources/src/components/settings/ApproveRequestTriggerEditor.svelte +++ b/plugins/process-resources/src/components/settings/ApproveRequestTriggerEditor.svelte @@ -26,7 +26,7 @@ const dispatch = createEventDispatcher() - function change (e: CustomEvent): void { + function change(e: CustomEvent): void { if (readonly || e.detail == null) return params._id = e.detail dispatch('change', { params }) diff --git a/plugins/process-resources/src/components/settings/ApproveRequestTriggerPresenter.svelte b/plugins/process-resources/src/components/settings/ApproveRequestTriggerPresenter.svelte index 548bda7977..642c39273f 100644 --- a/plugins/process-resources/src/components/settings/ApproveRequestTriggerPresenter.svelte +++ b/plugins/process-resources/src/components/settings/ApproveRequestTriggerPresenter.svelte @@ -23,7 +23,7 @@ $: context = getContext(params._id) - function getContext (value: string | undefined): SelectedExecutionContext | undefined { + function getContext(value: string | undefined): SelectedExecutionContext | undefined { if (value === undefined) return const context = parseContext(value) if (context !== undefined && isExecutionContext(context)) { @@ -31,7 +31,7 @@ } } - function isExecutionContext (context: SelectedContext): context is SelectedExecutionContext { + function isExecutionContext(context: SelectedContext): context is SelectedExecutionContext { return context.type === 'context' } diff --git a/plugins/process-resources/src/components/settings/AsideStepEditor.svelte b/plugins/process-resources/src/components/settings/AsideStepEditor.svelte index ef8770cf11..cd05e205f3 100644 --- a/plugins/process-resources/src/components/settings/AsideStepEditor.svelte +++ b/plugins/process-resources/src/components/settings/AsideStepEditor.svelte @@ -32,7 +32,7 @@ $: method = getMethod(step.methodId) - function getMethod (_id: Ref>): Method { + function getMethod(_id: Ref>): Method { if (method?._id !== _id) { const res = client.getModel().findAllSync(plugin.class.Method, { _id })[0] return res @@ -40,7 +40,7 @@ return method } - async function save (): Promise { + async function save(): Promise { const doc = client.getModel().findObject(_id) if (doc === undefined) return const index = doc.actions.findIndex((it) => it._id === step._id) @@ -50,7 +50,7 @@ clearSettingsStore() } - async function remove (): Promise { + async function remove(): Promise { const doc = client.getModel().findObject(_id) if (doc === undefined) return const index = doc.actions.findIndex((it) => it._id === step._id) @@ -60,7 +60,7 @@ clearSettingsStore() } - function change (e: CustomEvent>): void { + function change(e: CustomEvent>): void { step = e.detail } diff --git a/plugins/process-resources/src/components/settings/AsideTransitionEditor.svelte b/plugins/process-resources/src/components/settings/AsideTransitionEditor.svelte index f276f41476..b5c7b44de6 100644 --- a/plugins/process-resources/src/components/settings/AsideTransitionEditor.svelte +++ b/plugins/process-resources/src/components/settings/AsideTransitionEditor.svelte @@ -33,17 +33,17 @@ states = res }) - async function save (): Promise { + async function save(): Promise { await client.update(transition, { triggerParams: params, trigger: selectedTrigger }) clearSettingsStore() } - async function remove (): Promise { + async function remove(): Promise { await client.remove(transition) clearSettingsStore() } - function change (e: CustomEvent>): void { + function change(e: CustomEvent>): void { if (e.detail?.params !== undefined) { params = e.detail.params } @@ -69,13 +69,13 @@ process && client.getModel().findAllSync(plugin.class.Transition, { from: null, process: process._id })[0] === undefined - async function updateFrom (e: CustomEvent): Promise { + async function updateFrom(e: CustomEvent): Promise { if (transition === undefined) return const from = (e.detail?._id as Ref) ?? null await client.update(transition, { from }) } - async function updateTo (e: CustomEvent): Promise { + async function updateTo(e: CustomEvent): Promise { if (transition === undefined) return const to = e.detail?._id as Ref if (to === undefined) return diff --git a/plugins/process-resources/src/components/settings/AssociationSelector.svelte b/plugins/process-resources/src/components/settings/AssociationSelector.svelte index 841fe97930..95010e37bf 100644 --- a/plugins/process-resources/src/components/settings/AssociationSelector.svelte +++ b/plugins/process-resources/src/components/settings/AssociationSelector.svelte @@ -28,7 +28,7 @@ const dispatch = createEventDispatcher() - function open (e: MouseEvent): void { + function open(e: MouseEvent): void { const anc = hierarchy.getAncestors(process.masterTag) const leftAssociations = client.getModel().findAllSync(core.class.Association, { classA: { $in: anc } }) const rightAssociations = client.getModel().findAllSync(core.class.Association, { classB: { $in: anc } }) diff --git a/plugins/process-resources/src/components/settings/BindingsEditor.svelte b/plugins/process-resources/src/components/settings/BindingsEditor.svelte index 8400eca08c..dc8ad44a62 100644 --- a/plugins/process-resources/src/components/settings/BindingsEditor.svelte +++ b/plugins/process-resources/src/components/settings/BindingsEditor.svelte @@ -34,12 +34,12 @@ $: allAssociations = model.findAllSync(core.class.Association, {}) $: allProcesses = model.findAllSync(processPlugin.class.Process, {}) - function isClassLike (obj: Doc | undefined): boolean { + function isClassLike(obj: Doc | undefined): boolean { if (!obj || !obj._class) return false return hierarchy.isDerived(obj._class, core.class.Class) } - function resolveMemberOf (memberOf: string | undefined): Ref> | undefined { + function resolveMemberOf(memberOf: string | undefined): Ref> | undefined { if (memberOf === undefined) return process.masterTag as any let targetId: string | undefined if (memberOf.startsWith('__SLOT_')) { @@ -57,7 +57,7 @@ return undefined } - async function setBinding (slotId: string, e: MouseEvent): Promise { + async function setBinding(slotId: string, e: MouseEvent): Promise { const slot = process.requiredSlots?.[slotId] if (slot === undefined) return @@ -125,7 +125,7 @@ ) } - function getBindingLabel ( + function getBindingLabel( allAttrs: Map, bindings: Record | undefined, id: string diff --git a/plugins/process-resources/src/components/settings/CancelSubProcessEditor.svelte b/plugins/process-resources/src/components/settings/CancelSubProcessEditor.svelte index efcfab8641..327417f1c8 100644 --- a/plugins/process-resources/src/components/settings/CancelSubProcessEditor.svelte +++ b/plugins/process-resources/src/components/settings/CancelSubProcessEditor.svelte @@ -32,7 +32,7 @@ const params = step.params let _id = params._id as Ref - function change (e: CustomEvent): void { + function change(e: CustomEvent): void { if (e.detail !== undefined) { _id = e.detail params._id = _id diff --git a/plugins/process-resources/src/components/settings/CancelToDoEditor.svelte b/plugins/process-resources/src/components/settings/CancelToDoEditor.svelte index afb5ff73bc..a263644857 100644 --- a/plugins/process-resources/src/components/settings/CancelToDoEditor.svelte +++ b/plugins/process-resources/src/components/settings/CancelToDoEditor.svelte @@ -29,7 +29,7 @@ const params = step.params let _id = params._id as Ref - function change (e: CustomEvent): void { + function change(e: CustomEvent): void { if (e.detail !== undefined) { _id = e.detail params._id = _id diff --git a/plugins/process-resources/src/components/settings/CardUpdateEditor.svelte b/plugins/process-resources/src/components/settings/CardUpdateEditor.svelte index c8f314a3b7..97808c0de1 100644 --- a/plugins/process-resources/src/components/settings/CardUpdateEditor.svelte +++ b/plugins/process-resources/src/components/settings/CardUpdateEditor.svelte @@ -32,13 +32,13 @@ const client = getClient() const hierarchy = client.getHierarchy() - function change (e: CustomEvent): void { + function change(e: CustomEvent): void { if (readonly || e.detail == null) return params = e.detail dispatch('change', { params }) } - function getKeys (_class: Ref>): AnyAttribute[] { + function getKeys(_class: Ref>): AnyAttribute[] { const ignoreKeys = ['_class', 'content', 'parent', 'attachments', 'todos'] const attributes = hierarchy.getAllAttributes(_class, core.class.Doc) const res: AnyAttribute[] = [] @@ -61,7 +61,7 @@ const allAttrs = getKeys(process.masterTag) $: possibleAttrs = allAttrs.filter((attr) => !keys.includes(attr.name)) - function onAdd (e: MouseEvent): void { + function onAdd(e: MouseEvent): void { showPopup( SelectPopup, { @@ -78,11 +78,11 @@ ) } - function addKey (key: string): void { + function addKey(key: string): void { keys = [...keys, key] } - function remove (e: CustomEvent): void { + function remove(e: CustomEvent): void { if (e.detail !== undefined) { const key = e.detail.key keys = keys.filter((k) => k !== key) diff --git a/plugins/process-resources/src/components/settings/ContextEditor.svelte b/plugins/process-resources/src/components/settings/ContextEditor.svelte index 51b7764086..8691c5de96 100644 --- a/plugins/process-resources/src/components/settings/ContextEditor.svelte +++ b/plugins/process-resources/src/components/settings/ContextEditor.svelte @@ -28,18 +28,18 @@ const client = getClient() - async function save (): Promise { + async function save(): Promise { await client.update(process, { context: process.context }) clearSettingsStore() } - function onNameChange (ev: Event, _id: string, ctx: ProcessContext): void { + function onNameChange(ev: Event, _id: string, ctx: ProcessContext): void { const value = (ev.target as HTMLInputElement).value?.trim() ctx.name = value process.context[_id as ContextId] = ctx } - async function open (val: ProcessContext): Promise { + async function open(val: ProcessContext): Promise { const transition = await client.findOne(plugin.class.Transition, { _id: val.producer }) if (transition === undefined) return const step = transition.actions.find((it) => it._id === val.action) diff --git a/plugins/process-resources/src/components/settings/ContextFooter.svelte b/plugins/process-resources/src/components/settings/ContextFooter.svelte index 82157bde90..7df7f573bb 100644 --- a/plugins/process-resources/src/components/settings/ContextFooter.svelte +++ b/plugins/process-resources/src/components/settings/ContextFooter.svelte @@ -30,13 +30,13 @@ $: resultContext = step.results != null ? step.results.map((r) => { - const exists = process.context[r._id] - if (exists != null) return exists - return { - name: r.name, - _class: r.type._class - } - }) + const exists = process.context[r._id] + if (exists != null) return exists + return { + name: r.name, + _class: r.type._class + } + }) : [] diff --git a/plugins/process-resources/src/components/settings/CreateCardEditor.svelte b/plugins/process-resources/src/components/settings/CreateCardEditor.svelte index c60d9bd886..52181b4b52 100644 --- a/plugins/process-resources/src/components/settings/CreateCardEditor.svelte +++ b/plugins/process-resources/src/components/settings/CreateCardEditor.svelte @@ -46,7 +46,7 @@ setName(res) }) - function setName (name: string): void { + function setName(name: string): void { if (params.title === undefined || params.title === '') { params.title = name ;(step.params as any) = params @@ -54,7 +54,7 @@ } } - function change (e: CustomEvent): void { + function change(e: CustomEvent): void { if (e.detail !== undefined) { params = e.detail ;(step.params as any) = e.detail @@ -62,7 +62,7 @@ } } - function getKeys (_class: Ref>): AnyAttribute[] { + function getKeys(_class: Ref>): AnyAttribute[] { const ignoreKeys = ['_class', 'targetClass', 'parent', 'attachments', 'todos'] const attributes = h.getAllAttributes(_class, core.class.Doc) const res: AnyAttribute[] = [] @@ -81,11 +81,11 @@ $: allAttrs = getKeys(targetClass) $: possibleAttrs = allAttrs.filter((attr) => !keys.includes(attr.name)) - function addKey (key: string): void { + function addKey(key: string): void { keys = [...keys, key] } - function onAdd (e: MouseEvent): void { + function onAdd(e: MouseEvent): void { showPopup( SelectPopup, { @@ -102,7 +102,7 @@ ) } - function remove (e: CustomEvent): void { + function remove(e: CustomEvent): void { if (e.detail !== undefined) { const key = e.detail.key if (key === 'title') return @@ -114,7 +114,7 @@ } } - function typeChange (_id: Ref>): void { + function typeChange(_id: Ref>): void { if (_id === undefined) return const attrKeys = ['_class', 'targetClass', 'askRequired', 'requiredFields', ...getKeys(_id).map((p) => p.name)] const oldParams = { ...params } @@ -160,7 +160,7 @@ setAskSubclass() } - function setAskSubclass (): void { + function setAskSubclass(): void { const context = createContext({ type: 'userRequest', id: generateContextId(), @@ -172,7 +172,7 @@ dispatch('change', step) } - function changeAskSubclass (e: CustomEvent): void { + function changeAskSubclass(e: CustomEvent): void { if (e.detail !== undefined) { if (!e.detail && baseTargetType) return if (e.detail) { @@ -185,7 +185,7 @@ } } - function isBaseTypeWithSubtypes (_class: Ref>): boolean { + function isBaseTypeWithSubtypes(_class: Ref>): boolean { const clazz = h.getClass(_class) as MasterTag | undefined if (clazz?.baseType !== true) return false @@ -199,7 +199,7 @@ let askRequired = params.askRequired ?? false $: askRequired = params.askRequired ?? false - function changeAskRequired (e: CustomEvent): void { + function changeAskRequired(e: CustomEvent): void { if (e.detail !== undefined) { params.askRequired = e.detail if (e.detail) { diff --git a/plugins/process-resources/src/components/settings/FieldChangesEditor.svelte b/plugins/process-resources/src/components/settings/FieldChangesEditor.svelte index 76b5331f01..a2dca484b9 100644 --- a/plugins/process-resources/src/components/settings/FieldChangesEditor.svelte +++ b/plugins/process-resources/src/components/settings/FieldChangesEditor.svelte @@ -33,13 +33,13 @@ const client = getClient() const hierarchy = client.getHierarchy() - function change (e: CustomEvent): void { + function change(e: CustomEvent): void { if (readonly || e.detail == null) return params = e.detail dispatch('change', { params }) } - function getKeys (_class: Ref>): AnyAttribute[] { + function getKeys(_class: Ref>): AnyAttribute[] { const ignoreKeys = ['_class', 'content', 'parent', 'attachments', 'todos'] const attributes = hierarchy.getAllAttributes(_class, core.class.Doc) const res: AnyAttribute[] = [] @@ -59,7 +59,7 @@ const allAttrs = getKeys(process.masterTag) - function onSelect (e: MouseEvent): void { + function onSelect(e: MouseEvent): void { const possibleAttrs = allAttrs.filter((attr) => key !== attr.name) showPopup( SelectPopup, @@ -77,7 +77,7 @@ ) } - function remove (e: CustomEvent): void { + function remove(e: CustomEvent): void { if (e.detail !== undefined) { if (key !== undefined) { // eslint-disable-next-line @typescript-eslint/no-dynamic-delete diff --git a/plugins/process-resources/src/components/settings/FunctionSubmenu.svelte b/plugins/process-resources/src/components/settings/FunctionSubmenu.svelte index 94df7c97ee..2ea0a572d6 100644 --- a/plugins/process-resources/src/components/settings/FunctionSubmenu.svelte +++ b/plugins/process-resources/src/components/settings/FunctionSubmenu.svelte @@ -27,11 +27,11 @@ const client = getClient() - function getFunction (_id: Ref): ProcessFunction { + function getFunction(_id: Ref): ProcessFunction { return client.getModel().findAllSync(plugin.class.ProcessFunction, { _id })[0] } - function onConfigure (e: MouseEvent): void { + function onConfigure(e: MouseEvent): void { const f = getFunction(func.func) if (f.editor === undefined) return showPopup( diff --git a/plugins/process-resources/src/components/settings/ImportSlotsPopup.svelte b/plugins/process-resources/src/components/settings/ImportSlotsPopup.svelte index 38cb3c4865..e89f8407c2 100644 --- a/plugins/process-resources/src/components/settings/ImportSlotsPopup.svelte +++ b/plugins/process-resources/src/components/settings/ImportSlotsPopup.svelte @@ -37,12 +37,12 @@ $: allAssociations = model.findAllSync(core.class.Association, {}) $: allProcesses = model.findAllSync(processPlugin.class.Process, {}) - function isClassLike (obj: Doc | undefined): boolean { + function isClassLike(obj: Doc | undefined): boolean { if (!obj || !obj._class) return false return obj._class === core.class.Class || hierarchy.isDerived(obj._class, core.class.Class) } - function resolveMemberOf ( + function resolveMemberOf( memberOf: string | undefined, currentBindings: Record ): Ref> | undefined { @@ -76,7 +76,7 @@ return result })() - function setBinding (slotId: string, e: MouseEvent): void { + function setBinding(slotId: string, e: MouseEvent): void { const slot = requiredSlots[slotId] as any const memberOfTag = resolvedSlots[slotId]?.resolved if (!memberOfTag) return @@ -168,13 +168,13 @@ ) } - function onSave (): void { + function onSave(): void { dispatch('close', bindings) } $: allBound = Object.keys(requiredSlots).every((id) => bindings[id] !== undefined) - function getBindingLabel (currentBindings: Record, id: string): any { + function getBindingLabel(currentBindings: Record, id: string): any { const value = currentBindings[id] if (value === undefined) return presentation.string.NotSelected diff --git a/plugins/process-resources/src/components/settings/InitParamsEditor.svelte b/plugins/process-resources/src/components/settings/InitParamsEditor.svelte index a9d04b4405..274303ffc5 100644 --- a/plugins/process-resources/src/components/settings/InitParamsEditor.svelte +++ b/plugins/process-resources/src/components/settings/InitParamsEditor.svelte @@ -34,7 +34,7 @@ let contexts: SelectedUserRequest[] = [] - function fillParams (initTransition: Transition | undefined): void { + function fillParams(initTransition: Transition | undefined): void { contexts = [] for (const action of initTransition?.actions ?? []) { for (const key in action.params) { diff --git a/plugins/process-resources/src/components/settings/LockFieldEditor.svelte b/plugins/process-resources/src/components/settings/LockFieldEditor.svelte index af6d05ffc2..1a32224e30 100644 --- a/plugins/process-resources/src/components/settings/LockFieldEditor.svelte +++ b/plugins/process-resources/src/components/settings/LockFieldEditor.svelte @@ -31,7 +31,7 @@ const dispatch = createEventDispatcher() - function getKeys (_class: Ref>): AnyAttribute[] { + function getKeys(_class: Ref>): AnyAttribute[] { const ignoreKeys = ['_class', 'content', 'parent', 'attachments', 'todos'] const attributes = hierarchy.getAllAttributes(_class, core.class.Doc) const res: AnyAttribute[] = [] @@ -43,7 +43,7 @@ return res } - function change (value: string[]): void { + function change(value: string[]): void { params.value = value step.params = params dispatch('change', step) @@ -54,12 +54,12 @@ $: allAttrs = getKeys(process.masterTag) $: possibleAttrs = allAttrs.filter((attr) => !keys.includes(attr.name)) - function addKey (key: string): void { + function addKey(key: string): void { keys = [...keys, key] change(keys) } - function onAdd (e: MouseEvent): void { + function onAdd(e: MouseEvent): void { showPopup( SelectPopup, { @@ -76,7 +76,7 @@ ) } - function remove (key: string): void { + function remove(key: string): void { keys = keys.filter((k) => k !== key) change(keys) } diff --git a/plugins/process-resources/src/components/settings/LockSectionEditor.svelte b/plugins/process-resources/src/components/settings/LockSectionEditor.svelte index 153079e17a..8854ed8dff 100644 --- a/plugins/process-resources/src/components/settings/LockSectionEditor.svelte +++ b/plugins/process-resources/src/components/settings/LockSectionEditor.svelte @@ -28,7 +28,7 @@ const dispatch = createEventDispatcher() - function changeTag (e: CustomEvent<{ tag: Ref }>): void { + function changeTag(e: CustomEvent<{ tag: Ref }>): void { if (e.detail !== undefined) { _id = e.detail.tag params._id = _id diff --git a/plugins/process-resources/src/components/settings/Navigator.svelte b/plugins/process-resources/src/components/settings/Navigator.svelte index 54cfb6d408..3ed4e3a876 100644 --- a/plugins/process-resources/src/components/settings/Navigator.svelte +++ b/plugins/process-resources/src/components/settings/Navigator.svelte @@ -23,7 +23,7 @@ export let states: State[] = [] export let transitions: Transition[] = [] - function handleSelect (id: Ref): void { + function handleSelect(id: Ref): void { const loc = getCurrentLocation() loc.path[5] = process.component.TransitionEditor loc.path[6] = id diff --git a/plugins/process-resources/src/components/settings/ParamsEditor.svelte b/plugins/process-resources/src/components/settings/ParamsEditor.svelte index 6a6b259030..ffa8a75e88 100644 --- a/plugins/process-resources/src/components/settings/ParamsEditor.svelte +++ b/plugins/process-resources/src/components/settings/ParamsEditor.svelte @@ -26,7 +26,7 @@ const dispatch = createEventDispatcher() - function change (e: CustomEvent, key: string): void { + function change(e: CustomEvent, key: string): void { if (e.detail?.value != null && e.detail.value !== '') { ;(params as any)[key] = e.detail.value } else { diff --git a/plugins/process-resources/src/components/settings/ProcessAttributeEditor.svelte b/plugins/process-resources/src/components/settings/ProcessAttributeEditor.svelte index cbd4a07d54..24976c6bfa 100644 --- a/plugins/process-resources/src/components/settings/ProcessAttributeEditor.svelte +++ b/plugins/process-resources/src/components/settings/ProcessAttributeEditor.svelte @@ -34,7 +34,7 @@ const hierarchy = client.getHierarchy() const dispatch = createEventDispatcher() - function onChange (value: any | undefined): void { + function onChange(value: any | undefined): void { if (value === undefined) { // eslint-disable-next-line @typescript-eslint/no-dynamic-delete delete (object as any)[objectKey ?? key] @@ -50,7 +50,7 @@ $: slot = process.requiredSlots?.[key] as any - function getAttr (_class: Ref>, key: string, slot: SlotModel | undefined): AnyAttribute | undefined { + function getAttr(_class: Ref>, key: string, slot: SlotModel | undefined): AnyAttribute | undefined { if (slot !== undefined) return { name: key, label: slot.label, _id: key, type: slot } as any const attr = hierarchy.findAttribute(_class, key) if (attr !== undefined) return attr @@ -58,7 +58,7 @@ return undefined } - function mockAttribute (_class: Ref>): AnyAttribute { + function mockAttribute(_class: Ref>): AnyAttribute { const type: RefTo = { label: core.string.Ref, _class: core.class.RefTo, @@ -85,7 +85,7 @@ let editor: AnySvelteComponent | undefined - function getBaseEditor (_class: Ref>, key: string): void { + function getBaseEditor(_class: Ref>, key: string): void { void getAttributeEditor(client, _class, key).then((p) => { editor = p }) diff --git a/plugins/process-resources/src/components/settings/ProcessEditor.svelte b/plugins/process-resources/src/components/settings/ProcessEditor.svelte index 3716151c9c..e24ef387e1 100644 --- a/plugins/process-resources/src/components/settings/ProcessEditor.svelte +++ b/plugins/process-resources/src/components/settings/ProcessEditor.svelte @@ -95,13 +95,13 @@ } ) - async function saveName (): Promise { + async function saveName(): Promise { if (value !== undefined) { await client.update(value, { name: value.name }) } } - async function deleteProcess (): Promise { + async function deleteProcess(): Promise { if (value === undefined) return // to do handle on server trigger await client.remove(value) @@ -111,7 +111,7 @@ navigate(loc) } - async function handleDelete (): Promise { + async function handleDelete(): Promise { if (value === undefined) return const execution = await client.findOne(process.class.Execution, { process: value?._id }) if (execution !== undefined) { @@ -129,7 +129,7 @@ defineSeparators('spaceTypeEditor', secondNavSeparators) - function handleContext (): void { + function handleContext(): void { $settingsStore = { id: value?._id, component: ContextEditor, @@ -137,11 +137,11 @@ } } - function handleSettings (): void { + function handleSettings(): void { showPopup(ProcesssSetting, { value }) } - function handleBindings (): void { + function handleBindings(): void { showPopup(BindingsEditor, { process: value }) } @@ -160,7 +160,7 @@ } ] - function onExportSelected (event: CustomEvent): void { + function onExportSelected(event: CustomEvent): void { if (event.detail === EXPORT_WITH_SLOTS) { handleExport(true) } else if (event.detail === EXPORT_WITHOUT_SLOTS) { @@ -168,7 +168,7 @@ } } - function handleExport (withSlots: boolean): void { + function handleExport(withSlots: boolean): void { if (value === undefined) return const str = JSON.stringify( exportProcess(value, withSlots).docs.map((doc) => { diff --git a/plugins/process-resources/src/components/settings/ProcesssSetting.svelte b/plugins/process-resources/src/components/settings/ProcesssSetting.svelte index 845e2053b9..9061150762 100644 --- a/plugins/process-resources/src/components/settings/ProcesssSetting.svelte +++ b/plugins/process-resources/src/components/settings/ProcesssSetting.svelte @@ -24,13 +24,13 @@ const client = getClient() const dispatch = createEventDispatcher() - async function saveRestriction (e: CustomEvent): Promise { + async function saveRestriction(e: CustomEvent): Promise { if (value !== undefined) { await client.update(value, { parallelExecutionForbidden: e.detail }) } } - async function saveAutoStart (e: CustomEvent): Promise { + async function saveAutoStart(e: CustomEvent): Promise { if (value !== undefined) { await client.update(value, { autoStart: e.detail }) } diff --git a/plugins/process-resources/src/components/settings/ResultCriteriaEditor.svelte b/plugins/process-resources/src/components/settings/ResultCriteriaEditor.svelte index 43115fad22..e928fc1e9b 100644 --- a/plugins/process-resources/src/components/settings/ResultCriteriaEditor.svelte +++ b/plugins/process-resources/src/components/settings/ResultCriteriaEditor.svelte @@ -32,7 +32,7 @@ let keys = Object.keys(result) as ContextId[] - function getResults (_id: string | undefined): void { + function getResults(_id: string | undefined): void { results = [] if (_id == null) return const ctx = parseContext(_id) @@ -48,11 +48,11 @@ $: availableResults = results.filter((r) => !keys.includes(r._id)) - function addKey (key: ContextId): void { + function addKey(key: ContextId): void { keys = [...keys, key] } - function onAdd (e: MouseEvent): void { + function onAdd(e: MouseEvent): void { showPopup( SelectPopup, { @@ -69,14 +69,14 @@ ) } - function change (e: CustomEvent, key: string): void { + function change(e: CustomEvent, key: string): void { if (e.detail !== undefined) { ;(result as any)[key] = e.detail dispatch('change', result) } } - function remove (key: string): void { + function remove(key: string): void { // eslint-disable-next-line @typescript-eslint/no-dynamic-delete delete (result as any)[key] keys = keys.filter((k) => k !== key) diff --git a/plugins/process-resources/src/components/settings/ResultEditor.svelte b/plugins/process-resources/src/components/settings/ResultEditor.svelte index 35ea436716..7c655c55c1 100644 --- a/plugins/process-resources/src/components/settings/ResultEditor.svelte +++ b/plugins/process-resources/src/components/settings/ResultEditor.svelte @@ -33,7 +33,7 @@ const client = getClient() - async function update (): Promise { + async function update(): Promise { if (type == null) { result = null } else { @@ -54,7 +54,7 @@ dispatch('change', result) } - function handleNameChange (): void { + function handleNameChange(): void { if (result != null) { result.name = name dispatch('change', result) diff --git a/plugins/process-resources/src/components/settings/ResultFieldTypeEditor.svelte b/plugins/process-resources/src/components/settings/ResultFieldTypeEditor.svelte index 5ed7d6beb3..bdc86ac88c 100644 --- a/plugins/process-resources/src/components/settings/ResultFieldTypeEditor.svelte +++ b/plugins/process-resources/src/components/settings/ResultFieldTypeEditor.svelte @@ -31,7 +31,7 @@ const dispatch = createEventDispatcher() $: setType(key) - function setType (key: string | undefined): void { + function setType(key: string | undefined): void { const attr = key != null ? hierarchy.findAttribute(process.masterTag, key) : undefined if (attr != null) { type = attr.type @@ -41,7 +41,7 @@ dispatch('change') } - function getKeys (_class: Ref>): AnyAttribute[] { + function getKeys(_class: Ref>): AnyAttribute[] { const ignoreKeys = ['_class', 'content', 'parent', 'attachments', 'todos'] const attributes = hierarchy.getAllAttributes(_class, core.class.Doc) const res: AnyAttribute[] = [] diff --git a/plugins/process-resources/src/components/settings/ResultTypeEditor.svelte b/plugins/process-resources/src/components/settings/ResultTypeEditor.svelte index beb2b1ac38..701257cbd5 100644 --- a/plugins/process-resources/src/components/settings/ResultTypeEditor.svelte +++ b/plugins/process-resources/src/components/settings/ResultTypeEditor.svelte @@ -28,7 +28,7 @@ const hierarchy = client.getHierarchy() const dispatch = createEventDispatcher() - function getTypes (): DropdownIntlItem[] { + function getTypes(): DropdownIntlItem[] { const descendants = hierarchy.getDescendants(core.class.Type) const res: DropdownIntlItem[] = [] for (const descendant of descendants) { @@ -46,7 +46,7 @@ let selectedType: Ref>> | undefined = type?._class $: selectType(selectedType) - function selectType (type: Ref>> | undefined): void { + function selectType(type: Ref>> | undefined): void { if (type == null) return const _class = hierarchy.getClass(type) const editor = hierarchy.as(_class, view.mixin.ObjectEditor) diff --git a/plugins/process-resources/src/components/settings/ResultsEditor.svelte b/plugins/process-resources/src/components/settings/ResultsEditor.svelte index cb1b0ac285..f1ce9ab3ca 100644 --- a/plugins/process-resources/src/components/settings/ResultsEditor.svelte +++ b/plugins/process-resources/src/components/settings/ResultsEditor.svelte @@ -26,7 +26,7 @@ let items: (UserResult | null)[] = result ?? [] - function handleChange (e: CustomEvent, index: number) { + function handleChange(e: CustomEvent, index: number) { if (e.detail !== undefined) { items[index === -1 ? items.length : index] = e.detail result = items.filter((r) => r != null) @@ -34,12 +34,12 @@ } } - function onAdd (): void { + function onAdd(): void { items.push(null) items = items } - function remove (index: number): void { + function remove(index: number): void { items.splice(index, 1) items = items result = items.filter((r) => r != null) diff --git a/plugins/process-resources/src/components/settings/StateInlineEditor.svelte b/plugins/process-resources/src/components/settings/StateInlineEditor.svelte index 0853987937..d6bd249ac5 100644 --- a/plugins/process-resources/src/components/settings/StateInlineEditor.svelte +++ b/plugins/process-resources/src/components/settings/StateInlineEditor.svelte @@ -21,11 +21,11 @@ export let value: State const client = getClient() - async function saveTitle (): Promise { + async function saveTitle(): Promise { await client.update(value, { title: value.title }) } - async function handleDelete (): Promise { + async function handleDelete(): Promise { await client.remove(value) } diff --git a/plugins/process-resources/src/components/settings/StatesInlineEditor.svelte b/plugins/process-resources/src/components/settings/StatesInlineEditor.svelte index 73c81fe5c4..61ea0ab9ca 100644 --- a/plugins/process-resources/src/components/settings/StatesInlineEditor.svelte +++ b/plugins/process-resources/src/components/settings/StatesInlineEditor.svelte @@ -29,7 +29,7 @@ const client = getClient() - async function addState (): Promise { + async function addState(): Promise { const rank = makeRank(states.length > 0 ? states[states.length - 1].rank : undefined, undefined) await client.createDoc(plugin.class.State, core.space.Model, { process: process._id, @@ -38,7 +38,7 @@ }) } - function toState (doc: Doc): State { + function toState(doc: Doc): State { return doc as State } diff --git a/plugins/process-resources/src/components/settings/StepEditor.svelte b/plugins/process-resources/src/components/settings/StepEditor.svelte index 3f1a5eef0c..a37dc7cb1a 100644 --- a/plugins/process-resources/src/components/settings/StepEditor.svelte +++ b/plugins/process-resources/src/components/settings/StepEditor.svelte @@ -28,12 +28,12 @@ $: method = getMethod(step.methodId) - function change (e: CustomEvent): void { + function change(e: CustomEvent): void { step = e.detail dispatch('change', step) } - function getMethod (_id: Ref>): Method { + function getMethod(_id: Ref>): Method { if (method?._id !== _id) { const res = client.getModel().findAllSync(plugin.class.Method, { _id })[0] return res diff --git a/plugins/process-resources/src/components/settings/SubProcessEditor.svelte b/plugins/process-resources/src/components/settings/SubProcessEditor.svelte index 5a2f2c9ca4..462b899671 100644 --- a/plugins/process-resources/src/components/settings/SubProcessEditor.svelte +++ b/plugins/process-resources/src/components/settings/SubProcessEditor.svelte @@ -38,7 +38,7 @@ const dispatch = createEventDispatcher() - function change (e: CustomEvent): void { + function change(e: CustomEvent): void { if (e.detail !== undefined) { ;(step.params as any)._id = e.detail _id = e.detail @@ -62,16 +62,16 @@ $: processes = client.getModel().findAllSync(plugin.class.Process, { masterTag: { $in: ancestors } }) - function changeThis (): void { + function changeThis(): void { step.params = {} dispatch('change', step) } - function changeTarget (e: CustomEvent): void { + function changeTarget(e: CustomEvent): void { step.params.card = e.detail.value } - function changeContext (e: CustomEvent): void { + function changeContext(e: CustomEvent): void { if (e.detail !== undefined) { step.params.context = e.detail dispatch('change', step) diff --git a/plugins/process-resources/src/components/settings/SubProcessMatchEditor.svelte b/plugins/process-resources/src/components/settings/SubProcessMatchEditor.svelte index 1e74a0097d..672cc4f319 100644 --- a/plugins/process-resources/src/components/settings/SubProcessMatchEditor.svelte +++ b/plugins/process-resources/src/components/settings/SubProcessMatchEditor.svelte @@ -31,7 +31,7 @@ $: possibleProcesses = getPossibleProcesses(process) - function getPossibleProcesses (proc: Process): Ref[] { + function getPossibleProcesses(proc: Process): Ref[] { const res = new Set>() const transitions = client.getModel().findAllSync(plugin.class.Transition, { process: proc._id }) for (const transition of transitions) { @@ -58,7 +58,7 @@ $: selected = selectedProcessId !== undefined ? items.find((it) => it.id === selectedProcessId)?.id : undefined - function changeProcess (e: CustomEvent): void { + function changeProcess(e: CustomEvent): void { if (readonly || e.detail == null) return selectedProcessId = e.detail params = { @@ -67,7 +67,7 @@ dispatch('change', { params }) } - function changeStateCriteria (e: CustomEvent): void { + function changeStateCriteria(e: CustomEvent): void { if (readonly || e.detail == null) return params = { ...params, diff --git a/plugins/process-resources/src/components/settings/TagSelector.svelte b/plugins/process-resources/src/components/settings/TagSelector.svelte index 0c9e8fcc9b..d4b158c18a 100644 --- a/plugins/process-resources/src/components/settings/TagSelector.svelte +++ b/plugins/process-resources/src/components/settings/TagSelector.svelte @@ -29,7 +29,7 @@ const dispatch = createEventDispatcher() - function open (e: MouseEvent): void { + function open(e: MouseEvent): void { const res = new Set>() if (includeBase) res.add(h.getBaseClass(process.masterTag)) const ancestors = h.getAncestors(process.masterTag) diff --git a/plugins/process-resources/src/components/settings/TimeEditor.svelte b/plugins/process-resources/src/components/settings/TimeEditor.svelte index f4d924f07f..b6c8a9c89e 100644 --- a/plugins/process-resources/src/components/settings/TimeEditor.svelte +++ b/plugins/process-resources/src/components/settings/TimeEditor.svelte @@ -41,7 +41,7 @@ let editor: AnySvelteComponent | undefined - function getEditor (): void { + function getEditor(): void { try { const inlineEditor = h.as(h.getClass(core.class.TypeDate), view.mixin.AttributeEditor).inlineEditor void getResource(inlineEditor) diff --git a/plugins/process-resources/src/components/settings/ToDoEditor.svelte b/plugins/process-resources/src/components/settings/ToDoEditor.svelte index 8fdb3712a6..25fa9b30b7 100644 --- a/plugins/process-resources/src/components/settings/ToDoEditor.svelte +++ b/plugins/process-resources/src/components/settings/ToDoEditor.svelte @@ -27,7 +27,7 @@ const dispatch = createEventDispatcher() - function changeParams (e: CustomEvent): void { + function changeParams(e: CustomEvent): void { if (e.detail !== undefined) { params = e.detail ;(step.params as any) = params @@ -35,7 +35,7 @@ } } - function changeResults (e: CustomEvent): void { + function changeResults(e: CustomEvent): void { if (e.detail !== undefined) { step.results = e.detail dispatch('change', step) @@ -53,7 +53,7 @@ dispatch('change', step) } - function toggleField (e: CustomEvent): void { + function toggleField(e: CustomEvent): void { if (e.detail) { if (contextValue?.type === 'attribute') { params.field = contextValue.key @@ -67,7 +67,7 @@ let askRequired = params.askRequired ?? false $: askRequired = params.askRequired ?? false - function changeAskRequired (e: CustomEvent): void { + function changeAskRequired(e: CustomEvent): void { if (e.detail !== undefined) { params.askRequired = e.detail step.params = params diff --git a/plugins/process-resources/src/components/settings/ToDoParamsEditor.svelte b/plugins/process-resources/src/components/settings/ToDoParamsEditor.svelte index b865e047ee..540f8ccf8c 100644 --- a/plugins/process-resources/src/components/settings/ToDoParamsEditor.svelte +++ b/plugins/process-resources/src/components/settings/ToDoParamsEditor.svelte @@ -28,14 +28,14 @@ const dispatch = createEventDispatcher() - function change (e: CustomEvent): void { + function change(e: CustomEvent): void { if (readonly || e.detail == null) return params._id = e.detail params.result = {} dispatch('change', { params }) } - function changeResult (e: CustomEvent): void { + function changeResult(e: CustomEvent): void { if (readonly) return params.result = e.detail dispatch('change', { params }) diff --git a/plugins/process-resources/src/components/settings/ToDoPresenter.svelte b/plugins/process-resources/src/components/settings/ToDoPresenter.svelte index 548bda7977..642c39273f 100644 --- a/plugins/process-resources/src/components/settings/ToDoPresenter.svelte +++ b/plugins/process-resources/src/components/settings/ToDoPresenter.svelte @@ -23,7 +23,7 @@ $: context = getContext(params._id) - function getContext (value: string | undefined): SelectedExecutionContext | undefined { + function getContext(value: string | undefined): SelectedExecutionContext | undefined { if (value === undefined) return const context = parseContext(value) if (context !== undefined && isExecutionContext(context)) { @@ -31,7 +31,7 @@ } } - function isExecutionContext (context: SelectedContext): context is SelectedExecutionContext { + function isExecutionContext(context: SelectedContext): context is SelectedExecutionContext { return context.type === 'context' } diff --git a/plugins/process-resources/src/components/settings/ToDoValuePresenter.svelte b/plugins/process-resources/src/components/settings/ToDoValuePresenter.svelte index 54dc4c6917..7720bf94d2 100644 --- a/plugins/process-resources/src/components/settings/ToDoValuePresenter.svelte +++ b/plugins/process-resources/src/components/settings/ToDoValuePresenter.svelte @@ -34,7 +34,7 @@ $: context = getContext(step.params._id as string) - function getContext (value: string | undefined): SelectedExecutionContext | undefined { + function getContext(value: string | undefined): SelectedExecutionContext | undefined { if (value === undefined) return const context = parseContext(value) if (context !== undefined && isExecutionContext(context)) { @@ -42,7 +42,7 @@ } } - function isExecutionContext (context: SelectedContext): context is SelectedExecutionContext { + function isExecutionContext(context: SelectedContext): context is SelectedExecutionContext { return context.type === 'context' } diff --git a/plugins/process-resources/src/components/settings/TransitionEditor.svelte b/plugins/process-resources/src/components/settings/TransitionEditor.svelte index 465956d097..93b1942ccf 100644 --- a/plugins/process-resources/src/components/settings/TransitionEditor.svelte +++ b/plugins/process-resources/src/components/settings/TransitionEditor.svelte @@ -72,7 +72,7 @@ ]) }) - function getTitle (transition: Transition): string { + function getTitle(transition: Transition): string { const to = client.getModel().findAllSync(plugin.class.State, { _id: transition.to })[0] if (transition.from == null) { return `⦳ → ${to.title}` @@ -83,7 +83,7 @@ const client = getClient() - function addAction (e: MouseEvent): void { + function addAction(e: MouseEvent): void { const items: DropdownIntlItem[] = client .getModel() .findAllSync(plugin.class.Method, {}) @@ -103,7 +103,7 @@ }) } - function editAction (step: Step): void { + function editAction(step: Step): void { if (value === undefined) return $settingsStore = { id: value._id, component: AsideStepEditor, props: { process, step, _id: value._id } } } @@ -123,7 +123,7 @@ transitions = res }) - async function handleDelete (): Promise { + async function handleDelete(): Promise { if (value === undefined) return // to do handle on server trigger await client.remove(value) @@ -134,11 +134,11 @@ navigate(loc) } - function edit (): void { + function edit(): void { $settingsStore = { id: _id, component: AsideTransitionEditor, props: { process, transition: value } } } - async function moveHadler (): Promise { + async function moveHadler(): Promise { if (value === undefined) return await client.update(value, { actions: value.actions }) } diff --git a/plugins/process-resources/src/components/settings/TransitionsInlineEditor.svelte b/plugins/process-resources/src/components/settings/TransitionsInlineEditor.svelte index 24b6a963bd..b52316e4fc 100644 --- a/plugins/process-resources/src/components/settings/TransitionsInlineEditor.svelte +++ b/plugins/process-resources/src/components/settings/TransitionsInlineEditor.svelte @@ -25,18 +25,18 @@ export let process: Process export let readonly: boolean - function addTransition (): void { + function addTransition(): void { showPopup(AddTransitionPopup, { process }, 'top') } - function handleSelect (id: Ref): void { + function handleSelect(id: Ref): void { const loc = getCurrentLocation() loc.path[5] = plugin.component.TransitionEditor loc.path[6] = id navigate(loc, true) } - function toTransition (doc: Doc): Transition { + function toTransition(doc: Doc): Transition { return doc as Transition } diff --git a/plugins/process-resources/src/components/settings/TriggerPresenter.svelte b/plugins/process-resources/src/components/settings/TriggerPresenter.svelte index 2d3bedf440..30c98912fc 100644 --- a/plugins/process-resources/src/components/settings/TriggerPresenter.svelte +++ b/plugins/process-resources/src/components/settings/TriggerPresenter.svelte @@ -30,7 +30,7 @@ $: validate(params) - function validate (params: Record): void { + function validate(params: Record): void { if (trigger === undefined) { error = false } diff --git a/plugins/process-resources/src/components/settings/UpdateCardEditor.svelte b/plugins/process-resources/src/components/settings/UpdateCardEditor.svelte index 759d67c5db..27e0fa004b 100644 --- a/plugins/process-resources/src/components/settings/UpdateCardEditor.svelte +++ b/plugins/process-resources/src/components/settings/UpdateCardEditor.svelte @@ -31,7 +31,7 @@ const dispatch = createEventDispatcher() - function change (e: CustomEvent): void { + function change(e: CustomEvent): void { if (e.detail !== undefined) { params = e.detail ;(step.params as any) = e.detail @@ -39,7 +39,7 @@ } } - function getKeys (_class: Ref>): AnyAttribute[] { + function getKeys(_class: Ref>): AnyAttribute[] { const ignoreKeys = ['_class', 'content', 'parent', 'attachments', 'todos'] const attributes = hierarchy.getAllAttributes(_class, core.class.Doc) const res: AnyAttribute[] = [] @@ -61,11 +61,11 @@ })) $: possibleAttrs = [...allAttrs, ...slots].filter((attr) => !keys.includes(attr.name)) - function addKey (key: string): void { + function addKey(key: string): void { keys = [...keys, key] } - function onAdd (e: MouseEvent): void { + function onAdd(e: MouseEvent): void { showPopup( SelectPopup, { @@ -82,7 +82,7 @@ ) } - function remove (e: CustomEvent): void { + function remove(e: CustomEvent): void { if (e.detail !== undefined) { const key = e.detail.key keys = keys.filter((k) => k !== key) diff --git a/plugins/process-resources/src/components/transformEditors/AppendEditor.svelte b/plugins/process-resources/src/components/transformEditors/AppendEditor.svelte index 05905ea923..6f28a25c86 100644 --- a/plugins/process-resources/src/components/transformEditors/AppendEditor.svelte +++ b/plugins/process-resources/src/components/transformEditors/AppendEditor.svelte @@ -37,13 +37,13 @@ const client = getClient() const h = client.getHierarchy() - function save (): void { + function save(): void { dispatch('close', { value }) } let editor: AnySvelteComponent | undefined - function getEditor (): void { + function getEditor(): void { try { const inlineEditor = h.as(h.getClass(core.class.TypeString), view.mixin.AttributeEditor).inlineEditor void getResource(inlineEditor) diff --git a/plugins/process-resources/src/components/transformEditors/ArrayElementEditor.svelte b/plugins/process-resources/src/components/transformEditors/ArrayElementEditor.svelte index 6290ae56ba..4082224424 100644 --- a/plugins/process-resources/src/components/transformEditors/ArrayElementEditor.svelte +++ b/plugins/process-resources/src/components/transformEditors/ArrayElementEditor.svelte @@ -34,7 +34,7 @@ const client = getClient() const h = client.getHierarchy() - function save (): void { + function save(): void { dispatch('close', { value }) } diff --git a/plugins/process-resources/src/components/transformEditors/CutEditor.svelte b/plugins/process-resources/src/components/transformEditors/CutEditor.svelte index fc795844a7..50f3b9d66e 100644 --- a/plugins/process-resources/src/components/transformEditors/CutEditor.svelte +++ b/plugins/process-resources/src/components/transformEditors/CutEditor.svelte @@ -28,7 +28,7 @@ const dispatch = createEventDispatcher() - function save (): void { + function save(): void { dispatch('close', { start, end }) } diff --git a/plugins/process-resources/src/components/transformEditors/DateDifferenceEditor.svelte b/plugins/process-resources/src/components/transformEditors/DateDifferenceEditor.svelte index 9cd1e3cebc..fe3c4c3e1d 100644 --- a/plugins/process-resources/src/components/transformEditors/DateDifferenceEditor.svelte +++ b/plugins/process-resources/src/components/transformEditors/DateDifferenceEditor.svelte @@ -46,13 +46,13 @@ const client = getClient() const h = client.getHierarchy() - function save (): void { + function save(): void { dispatch('close', { otherDate, unit }) } let editor: AnySvelteComponent | undefined - function getEditor (): void { + function getEditor(): void { try { const inlineEditor = h.as(h.getClass(core.class.TypeDate), view.mixin.AttributeEditor).inlineEditor void getResource(inlineEditor) diff --git a/plugins/process-resources/src/components/transformEditors/DateOffsetEditor.svelte b/plugins/process-resources/src/components/transformEditors/DateOffsetEditor.svelte index 8f2e8941e8..05f40f17e5 100644 --- a/plugins/process-resources/src/components/transformEditors/DateOffsetEditor.svelte +++ b/plugins/process-resources/src/components/transformEditors/DateOffsetEditor.svelte @@ -37,7 +37,7 @@ const dispatch = createEventDispatcher() - function save (): void { + function save(): void { dispatch('close', { offset, offsetType, diff --git a/plugins/process-resources/src/components/transformEditors/FilterEditor.svelte b/plugins/process-resources/src/components/transformEditors/FilterEditor.svelte index 8c4b5dbc05..239c77bf3d 100644 --- a/plugins/process-resources/src/components/transformEditors/FilterEditor.svelte +++ b/plugins/process-resources/src/components/transformEditors/FilterEditor.svelte @@ -31,14 +31,14 @@ const hierarchy = client.getHierarchy() const presenterClass = getAttributePresenterClass(hierarchy, attribute.type) - function save (): void { + function save(): void { dispatch('close', { ...props, _class: presenterClass.attrClass }) } - function getKeys (): AnyAttribute[] { + function getKeys(): AnyAttribute[] { const attributes = hierarchy.getAllAttributes(presenterClass.attrClass, core.class.Doc) const res: AnyAttribute[] = [] for (const [key, attr] of attributes) { @@ -58,7 +58,7 @@ const allAttrs = getKeys() $: possibleAttrs = allAttrs.filter((attr) => !keys.includes(attr.name)) - function onAdd (e: MouseEvent): void { + function onAdd(e: MouseEvent): void { showPopup( SelectPopup, { @@ -75,11 +75,11 @@ ) } - function addKey (key: string): void { + function addKey(key: string): void { keys = [...keys, key] } - function remove (e: CustomEvent): void { + function remove(e: CustomEvent): void { if (e.detail !== undefined) { const key = e.detail.key keys = keys.filter((k) => k !== key) @@ -88,7 +88,7 @@ } } - function change (e: CustomEvent): void { + function change(e: CustomEvent): void { if (e.detail == null) return props = e.detail } diff --git a/plugins/process-resources/src/components/transformEditors/NumberEditor.svelte b/plugins/process-resources/src/components/transformEditors/NumberEditor.svelte index b364ee3070..2c5d62ef3a 100644 --- a/plugins/process-resources/src/components/transformEditors/NumberEditor.svelte +++ b/plugins/process-resources/src/components/transformEditors/NumberEditor.svelte @@ -37,13 +37,13 @@ const client = getClient() const h = client.getHierarchy() - function save (): void { + function save(): void { dispatch('close', { value }) } let editor: AnySvelteComponent | undefined - function getEditor (): void { + function getEditor(): void { try { const inlineEditor = h.as(h.getClass(core.class.TypeNumber), view.mixin.AttributeEditor).inlineEditor void getResource(inlineEditor) diff --git a/plugins/process-resources/src/components/transformEditors/ReplaceEditor.svelte b/plugins/process-resources/src/components/transformEditors/ReplaceEditor.svelte index 62058de615..a0776d3cc5 100644 --- a/plugins/process-resources/src/components/transformEditors/ReplaceEditor.svelte +++ b/plugins/process-resources/src/components/transformEditors/ReplaceEditor.svelte @@ -28,7 +28,7 @@ const dispatch = createEventDispatcher() - function save (): void { + function save(): void { dispatch('close', { search, replacement }) } diff --git a/plugins/process-resources/src/components/transformEditors/SplitEditor.svelte b/plugins/process-resources/src/components/transformEditors/SplitEditor.svelte index 6f461ab463..a9491cd601 100644 --- a/plugins/process-resources/src/components/transformEditors/SplitEditor.svelte +++ b/plugins/process-resources/src/components/transformEditors/SplitEditor.svelte @@ -27,7 +27,7 @@ const dispatch = createEventDispatcher() - function save (): void { + function save(): void { dispatch('close', { separator }) } diff --git a/plugins/process-resources/src/exporter.ts b/plugins/process-resources/src/exporter.ts index 2cce2783f8..f9f9a9f0b5 100644 --- a/plugins/process-resources/src/exporter.ts +++ b/plugins/process-resources/src/exporter.ts @@ -95,7 +95,7 @@ function processToSlot (proc: Process, memberOf?: string): SlotModel { function unknownToSlot (id: string, memberOf?: string): SlotModel { return { slotKind: 'unknown', - _class: core.class.Obj as any, + _class: core.class.Obj, label: id as any, name: id, memberOf @@ -148,7 +148,7 @@ function processParams ( } continue } - const attr = h.findAttribute(masterTag as any, key) + const attr = h.findAttribute(masterTag, key) if (attr !== undefined) { processType(attr.type, docs, required, m, h) } @@ -171,12 +171,12 @@ function scanDSL ( ): void { // Detect @attr references for (const m of dsl.matchAll(/\$\{@([a-zA-Z0-9_]+)/g)) { - const attr = h.findAttribute(masterTag as any, m[1]) + const attr = h.findAttribute(masterTag, m[1]) if (attr !== undefined) processType(attr.type, docs, required, model, h) } // Detect inline 24-char hex IDs for (const match of dsl.matchAll(/[0-9a-fA-F]{24}/g)) { - const obj = h.findAttribute(masterTag as any, match[0]) ?? model.findObject(match[0] as any) + const obj = h.findAttribute(masterTag, match[0]) ?? model.findObject(match[0] as any) if ((obj as any)?.type !== undefined) { processType((obj as any).type, docs, required, model, h) } @@ -437,7 +437,7 @@ function replaceIdInJson (json: string, id: string, replacement: string): string export function denormalizeIds (docs: Doc[], masterTag: Ref, bindings?: Record): Doc[] { const idMap: Record = { __PROCESS__: generateId(), - __MASTER_TAG__: masterTag as string + __MASTER_TAG__: masterTag } // Map slot placeholders to bound IDs @@ -738,7 +738,7 @@ function mergeAttributeSlotMeta (meta: SlotModel, model: AttributeSlotModel): vo ;(meta as any).type = model.type meta._class = model.type._class } else if (typeof model.type === 'string') { - meta._class = model.type as any + meta._class = model.type } if (model.label !== undefined) meta.label = model.label } diff --git a/plugins/process-resources/src/utils.ts b/plugins/process-resources/src/utils.ts index bbbea56c54..d3e3ce9961 100644 --- a/plugins/process-resources/src/utils.ts +++ b/plugins/process-resources/src/utils.ts @@ -122,7 +122,7 @@ export function getContextMasterTag ( const assoc = model.findObject(context.association) if (assoc === undefined) return const targetClass = context.direction === 'A' ? assoc.classA : assoc.classB - if (context.key === '_id') return targetClass as Ref + if (context.key === '_id') return targetClass const nested = h.findAttribute(targetClass, context.key) return (nested?.type as RefTo)?.to } @@ -304,7 +304,7 @@ export function getContext ( if (includeConvertible) { const funcs = client.getModel().findAllSync(process.class.ProcessFunction, { type: 'convert', to: target }) for (const func of funcs) { - const convContext = getContext(client, _process, func.of as Ref>>, category, attr, false) + const convContext = getContext(client, _process, func.of, category, attr, false) if ( convContext.attributes.length > 0 || Object.keys(convContext.executionContext).length > 0 || diff --git a/plugins/recruit-resources/src/components/ApplicantNamePresenter.svelte b/plugins/recruit-resources/src/components/ApplicantNamePresenter.svelte index 0df157c867..3cf3d2ee9d 100644 --- a/plugins/recruit-resources/src/components/ApplicantNamePresenter.svelte +++ b/plugins/recruit-resources/src/components/ApplicantNamePresenter.svelte @@ -20,7 +20,7 @@ export let parentName: string | null | undefined = undefined export let spaceName: string | null | undefined = undefined - function getDisplayName (name: string | null | undefined): string { + function getDisplayName(name: string | null | undefined): string { if (name == null) { return '' } diff --git a/plugins/recruit-resources/src/components/CreateApplication.svelte b/plugins/recruit-resources/src/components/CreateApplication.svelte index 3127325582..7d95bc2844 100644 --- a/plugins/recruit-resources/src/components/CreateApplication.svelte +++ b/plugins/recruit-resources/src/components/CreateApplication.svelte @@ -110,11 +110,11 @@ const hierarchy = client.getHierarchy() fillDefaults(hierarchy, doc, recruit.class.Applicant) - export function canClose (): boolean { + export function canClose(): boolean { return (preserveCandidate || _candidate === undefined) && assignee === undefined } - async function createApplication (): Promise { + async function createApplication(): Promise { if (selectedState === undefined) { throw new Error(`Please select initial state:${_space}`) } @@ -180,14 +180,14 @@ }) } - async function invokeValidate ( + async function invokeValidate( action: Resource<(doc: T, client: Client) => Promise> ): Promise { const impl = await getResource(action) return await impl({ ...doc, space: _space }, client) } - async function validate ( + async function validate( doc: Applicant, space: Ref, _class: Ref>, diff --git a/plugins/recruit-resources/src/components/CreateCandidate.svelte b/plugins/recruit-resources/src/components/CreateCandidate.svelte index f29a47a20a..59ffc667da 100644 --- a/plugins/recruit-resources/src/components/CreateCandidate.svelte +++ b/plugins/recruit-resources/src/components/CreateCandidate.svelte @@ -86,7 +86,7 @@ recruit.mixin.Candidate ) - function getEmptyCandidate (id: Ref | undefined = undefined): CandidateDraft { + function getEmptyCandidate(id: Ref | undefined = undefined): CandidateDraft { return { _id: id ?? generateId(), firstName: '', @@ -110,7 +110,7 @@ }) ) - function objectChange (object: CandidateDraft, empty: any) { + function objectChange(object: CandidateDraft, empty: any) { if (shouldSaveDraft) { draftController.save(object, empty) } @@ -126,7 +126,7 @@ lastModified: number } - export function canClose (): boolean { + export function canClose(): boolean { return true } @@ -135,7 +135,7 @@ fillDefaults(hierarchy, empty, recruit.mixin.Candidate) fillDefaults(hierarchy, object, recruit.mixin.Candidate) - function resumeDraft () { + function resumeDraft() { return { uuid: object?.resumeUuid, name: object?.resumeName, @@ -189,7 +189,7 @@ ) }) - async function createCandidate (): Promise { + async function createCandidate(): Promise { const _id: Ref = generateId() const candidate: Data = { name: combineName(object.firstName ?? '', object.lastName ?? ''), @@ -301,11 +301,11 @@ resetObject() } - function isUndef (value?: string): boolean { + function isUndef(value?: string): boolean { return value === undefined || value === '' } - function addChannel (channels: AttachedData[], type: Ref, value?: string): void { + function addChannel(channels: AttachedData[], type: Ref, value?: string): void { if (value !== undefined) { const provider = channels.find((e) => e.provider === type) if (provider === undefined) { @@ -321,7 +321,7 @@ } } - async function recognize (file: File): Promise { + async function recognize(file: File): Promise { const token = getMetadata(presentation.metadata.Token) ?? '' try { @@ -460,7 +460,7 @@ } } - async function deleteResume (): Promise { + async function deleteResume(): Promise { if (object.resumeUuid) { try { await deleteFile(object.resumeUuid) @@ -470,7 +470,7 @@ } } - async function createAttachment (file: File) { + async function createAttachment(file: File) { loading = true try { const uploadFile = await getResource(attachment.helper.UploadFile) @@ -490,7 +490,7 @@ } } - function drop (event: DragEvent) { + function drop(event: DragEvent) { dragover = false const droppedFile = event.dataTransfer?.files[0] if (droppedFile !== undefined) { @@ -498,7 +498,7 @@ } } - function fileSelected () { + function fileSelected() { const file = inputFile.files?.[0] if (file !== undefined) { createAttachment(file) @@ -506,7 +506,7 @@ manager.setFocusPos(102) } - function addTagRef (tag: TagElement): void { + function addTagRef(tag: TagElement): void { object.skills = [ ...object.skills, { @@ -539,18 +539,18 @@ const manager = createFocusManager() - function resetObject (): void { + function resetObject(): void { object = getEmptyCandidate() fillDefaults(hierarchy, object, recruit.mixin.Candidate) } - export async function onOutsideClick (): Promise { + export async function onOutsideClick(): Promise { if (shouldSaveDraft) { draftController.save(object, empty) } } - async function showConfirmationDialog (): Promise { + async function showConfirmationDialog(): Promise { draftController.save(object, empty) const isFormEmpty = draft === undefined diff --git a/plugins/recruit-resources/src/components/CreateOrganization.svelte b/plugins/recruit-resources/src/components/CreateOrganization.svelte index 37d58515e5..2764d0a44e 100644 --- a/plugins/recruit-resources/src/components/CreateOrganization.svelte +++ b/plugins/recruit-resources/src/components/CreateOrganization.svelte @@ -23,11 +23,11 @@ let createOrg: CreateOrganization - export function canClose (): boolean { + export function canClose(): boolean { return createOrg.canClose() } - async function onCreate (org: Ref, client: TxOperations): Promise { + async function onCreate(org: Ref, client: TxOperations): Promise { await client.createMixin(org, contact.class.Organization, contact.space.Contacts, recruit.mixin.VacancyList, { vacancies: 0 }) diff --git a/plugins/recruit-resources/src/components/CreateVacancy.svelte b/plugins/recruit-resources/src/components/CreateVacancy.svelte index c9e3c46580..ccc954a909 100644 --- a/plugins/recruit-resources/src/components/CreateVacancy.svelte +++ b/plugins/recruit-resources/src/components/CreateVacancy.svelte @@ -78,7 +78,7 @@ $: setDefaultMembers(typeType) - function setDefaultMembers (typeType: ProjectType | undefined): void { + function setDefaultMembers(typeType: ProjectType | undefined): void { if (typeType === undefined) return if (membersChanged) return if (typeType.members === undefined || typeType.members.length === 0) return @@ -102,7 +102,7 @@ location: '', type: typeId as Ref } - export function canClose (): boolean { + export function canClose(): boolean { return name.trim() === '' && typeId !== undefined } @@ -154,7 +154,7 @@ rolesQuery.unsubscribe() } - async function saveIssue ( + async function saveIssue( id: Ref, space: Ref, template: IssueTemplateData, @@ -221,7 +221,7 @@ return resId } - async function createVacancy (): Promise { + async function createVacancy(): Promise { if (typeId === undefined || typeType === undefined) { throw Error(`Failed to find target project type: ${typeId}`) } @@ -295,7 +295,7 @@ let descriptionBox: AttachmentStyledBox - function handleTypeChange (evt: CustomEvent>): void { + function handleTypeChange(evt: CustomEvent>): void { if (typeId == null) { typeId = evt.detail return @@ -317,7 +317,7 @@ ) } - function handleRoleAssignmentChanged (roleId: Ref, newMembers: AccountUuid[]): void { + function handleRoleAssignmentChanged(roleId: Ref, newMembers: AccountUuid[]): void { if (rolesAssignment === undefined) { rolesAssignment = {} } diff --git a/plugins/recruit-resources/src/components/EditVacancy.svelte b/plugins/recruit-resources/src/components/EditVacancy.svelte index ca2d51a537..4ee7851280 100644 --- a/plugins/recruit-resources/src/components/EditVacancy.svelte +++ b/plugins/recruit-resources/src/components/EditVacancy.svelte @@ -54,7 +54,7 @@ const query = createQuery() // const clazz = client.getHierarchy().getClass(recruit.class.Vacancy) - function updateObject (_id: Ref): void { + function updateObject(_id: Ref): void { if (lastId !== _id) { const prev = lastId lastId = _id @@ -80,7 +80,7 @@ let descriptionBox: AttachmentStyleBoxCollabEditor $: descriptionKey = client.getHierarchy().getAttribute(recruit.class.Vacancy, 'fullDescription') let saved = false - async function save (): Promise { + async function save(): Promise { if (object === undefined) { return } diff --git a/plugins/recruit-resources/src/components/MoveApplication.svelte b/plugins/recruit-resources/src/components/MoveApplication.svelte index 2a64e4ef7a..eb3dae1f63 100644 --- a/plugins/recruit-resources/src/components/MoveApplication.svelte +++ b/plugins/recruit-resources/src/components/MoveApplication.svelte @@ -53,11 +53,11 @@ const dispatch = createEventDispatcher() const client = getClient() - export function canClose (): boolean { + export function canClose(): boolean { return true } - async function updateApplication () { + async function updateApplication() { if (selectedState === undefined) { throw new Error(`Please select initial state:${_space}`) } diff --git a/plugins/recruit-resources/src/components/NewCandidateHeader.svelte b/plugins/recruit-resources/src/components/NewCandidateHeader.svelte index 65baa2ed28..c9371cdb35 100644 --- a/plugins/recruit-resources/src/components/NewCandidateHeader.svelte +++ b/plugins/recruit-resources/src/components/NewCandidateHeader.svelte @@ -37,14 +37,14 @@ }) ) - async function newCandidate (): Promise { + async function newCandidate(): Promise { showPopup(CreateCandidate, { shouldSaveDraft: true }, 'top') Analytics.handleEvent(RecruitEvents.NewTalentButtonClicked) } let mainActionId: string | undefined = undefined let visibleActions: string[] = [] - function updateActions (draft: boolean): void { + function updateActions(draft: boolean): void { mainActionId = draft ? recruit.string.ResumeDraft : recruit.string.CreateTalent visibleActions = [mainActionId] } diff --git a/plugins/recruit-resources/src/components/OptimizeSkills.svelte b/plugins/recruit-resources/src/components/OptimizeSkills.svelte index b781a484bc..54a289c608 100644 --- a/plugins/recruit-resources/src/components/OptimizeSkills.svelte +++ b/plugins/recruit-resources/src/components/OptimizeSkills.svelte @@ -24,7 +24,7 @@ export let targetClass: Ref> - export function canClose (): boolean { + export function canClose(): boolean { return true } @@ -78,7 +78,7 @@ move: number } - function prepareTitle (title: string): string { + function prepareTitle(title: string): string { // Replace all non letter or digit characters with spaces let result = '' let last = '' @@ -107,14 +107,14 @@ return result.trim() } - function isLetter (c?: string): boolean { + function isLetter(c?: string): boolean { if (c == null) { return false } return c.toLowerCase() !== c.toUpperCase() } - function isDigit (c?: string): boolean { + function isDigit(c?: string): boolean { return ( c === '0' || c === '1' || @@ -129,7 +129,7 @@ ) } - function isLetterOrDigit (c?: string): boolean { + function isLetterOrDigit(c?: string): boolean { if (c == null) { return false } @@ -139,7 +139,7 @@ return c.toLowerCase() !== c.toUpperCase() } - function isForRemove (cc: string): boolean { + function isForRemove(cc: string): boolean { for (const c of cc) { if (isLetter(c)) { return false @@ -197,7 +197,7 @@ $: titles = Array.from(new Set(expertRefs.map((it) => prepareTitle(it.title.toLocaleLowerCase())))) // Will return a set of operations over tag elements - async function updateTagsList ( + async function updateTagsList( tagElements: TagElement[], expertRefs: Pick[] ): Promise { @@ -425,7 +425,7 @@ let doProcessing = false - function doAnalyse (): void { + function doAnalyse(): void { doProcessing = true if (elements.length > 0 && expertRefs.length > 0) { setTimeout(() => { @@ -454,7 +454,7 @@ let processed: number = 0 - async function applyPlan (): Promise { + async function applyPlan(): Promise { processed = 0 const updateClasses = new Set>>() const client = getClient() @@ -549,7 +549,7 @@ console.log('Apply:done') processed = 0 } - function toColor (el: TagUpdatePlan['elements'][0]): string | undefined { + function toColor(el: TagUpdatePlan['elements'][0]): string | undefined { if (el.total === -1) { return 'blue' } @@ -563,7 +563,7 @@ return undefined } - function exportCSV (name: string, data: string): void { + function exportCSV(name: string, data: string): void { const filename = name + new Date().toLocaleDateString() + '.csv' const link = document.createElement('a') link.style.display = 'none' @@ -575,7 +575,7 @@ document.body.removeChild(link) } - function exportExpertSkills (): string { + function exportExpertSkills(): string { // Construct csv const csv: string[] = [] csv.push('title;enabled;references') @@ -589,7 +589,7 @@ return csv.join('\n') } - function exportPlan (): string { + function exportPlan(): string { // Construct csv const csv: string[] = [] csv.push('number; title;total; new refs; new title;to delete;will add tags ') diff --git a/plugins/recruit-resources/src/components/Organizations.svelte b/plugins/recruit-resources/src/components/Organizations.svelte index 2301adc12f..c94fe0e2ce 100644 --- a/plugins/recruit-resources/src/components/Organizations.svelte +++ b/plugins/recruit-resources/src/components/Organizations.svelte @@ -105,7 +105,7 @@ applications = _applications } - function showCreateDialog () { + function showCreateDialog() { showPopup(CreateOrganization, {}, 'top') } const applicationSorting = (a: Doc, b: Doc) => @@ -173,7 +173,7 @@ let preference: ViewletPreference | undefined let viewOptions: ViewOptions | undefined - function createConfig ( + function createConfig( descr: Viewlet | undefined, preference: ViewletPreference | undefined, replacedKeys: Map diff --git a/plugins/recruit-resources/src/components/SkillsView.svelte b/plugins/recruit-resources/src/components/SkillsView.svelte index e7d410c88e..63b232c45f 100644 --- a/plugins/recruit-resources/src/components/SkillsView.svelte +++ b/plugins/recruit-resources/src/components/SkillsView.svelte @@ -9,7 +9,7 @@ import OptimizeSkills from './OptimizeSkills.svelte' import { selectedTagElements } from '@hcengineering/tags-resources' - function setFilterTag (tag: TagElement) { + function setFilterTag(tag: TagElement) { const client = getClient() const hierarchy = client.getHierarchy() const attribute = hierarchy.getAttribute(recruit.mixin.Candidate, 'skills') @@ -24,7 +24,7 @@ } as unknown as Filter setFilters([filter]) } - async function onTag (tag: TagElement): Promise { + async function onTag(tag: TagElement): Promise { selectedTagElements.set([tag._id]) const loc = getCurrentResolvedLocation() loc.path[2] = 'recruit' diff --git a/plugins/recruit-resources/src/components/Vacancies.svelte b/plugins/recruit-resources/src/components/Vacancies.svelte index 30429005b6..9549d1cff9 100644 --- a/plugins/recruit-resources/src/components/Vacancies.svelte +++ b/plugins/recruit-resources/src/components/Vacancies.svelte @@ -78,7 +78,7 @@ } ) - function showCreateDialog () { + function showCreateDialog() { showPopup(CreateVacancy, {}, 'top') } const applicationSorting = (a: Doc, b: Doc) => @@ -118,7 +118,7 @@ let preference: ViewletPreference | undefined let viewOptions: ViewOptions | undefined - function createConfig ( + function createConfig( descr: Viewlet, preference: ViewletPreference | undefined, applications: Map, ApplicationInfo>, diff --git a/plugins/recruit-resources/src/components/VacancyCard.svelte b/plugins/recruit-resources/src/components/VacancyCard.svelte index 18153a8170..0c540e14ee 100644 --- a/plugins/recruit-resources/src/components/VacancyCard.svelte +++ b/plugins/recruit-resources/src/components/VacancyCard.svelte @@ -33,7 +33,7 @@ $: getOrganization(vacancy, vacancy?.company) const client = getClient() - async function getOrganization ( + async function getOrganization( vacancy: WithLookup | undefined, _id: Ref | undefined ): Promise { diff --git a/plugins/recruit-resources/src/components/VacancyCountPresenter.svelte b/plugins/recruit-resources/src/components/VacancyCountPresenter.svelte index fcc4c4d8e1..8383042e9e 100644 --- a/plugins/recruit-resources/src/components/VacancyCountPresenter.svelte +++ b/plugins/recruit-resources/src/components/VacancyCountPresenter.svelte @@ -22,7 +22,7 @@ export let value: Vacancy export let applications: Map, { count: number, modifiedOn: number }> | undefined - function click () { + function click() { closeTooltip() const loc = getCurrentResolvedLocation() loc.fragment = undefined diff --git a/plugins/recruit-resources/src/components/VacancyItemPresenter.svelte b/plugins/recruit-resources/src/components/VacancyItemPresenter.svelte index ad08b49cda..4570bfecf0 100644 --- a/plugins/recruit-resources/src/components/VacancyItemPresenter.svelte +++ b/plugins/recruit-resources/src/components/VacancyItemPresenter.svelte @@ -24,7 +24,7 @@ export let inline: boolean = false export let action: ((item: Ref) => void) | undefined = undefined - function editVacancy (): void { + function editVacancy(): void { openDoc(getClient().getHierarchy(), value) } diff --git a/plugins/recruit-resources/src/components/VacancyTemplateEditor.svelte b/plugins/recruit-resources/src/components/VacancyTemplateEditor.svelte index 55c7de498d..a5bbf9f86a 100644 --- a/plugins/recruit-resources/src/components/VacancyTemplateEditor.svelte +++ b/plugins/recruit-resources/src/components/VacancyTemplateEditor.svelte @@ -29,7 +29,7 @@ const hierarchy = client.getHierarchy() const customKeys = getFiltredKeys(hierarchy, type._class, []).filter((key) => key.attr.isCustom) - async function onDescriptionChange (value: string) { + async function onDescriptionChange(value: string) { if (disabled) { return } diff --git a/plugins/recruit-resources/src/components/organizations/VacancyListCountPresenter.svelte b/plugins/recruit-resources/src/components/organizations/VacancyListCountPresenter.svelte index d38b50eb72..0377e78c73 100644 --- a/plugins/recruit-resources/src/components/organizations/VacancyListCountPresenter.svelte +++ b/plugins/recruit-resources/src/components/organizations/VacancyListCountPresenter.svelte @@ -21,8 +21,8 @@ export let value: VacancyList export let values: - | Map, { count: number, modifiedOn: number, vacancies: Ref[] }> - | undefined + | Map, { count: number, modifiedOn: number, vacancies: Ref[] }> + | undefined export let resultQuery: DocumentQuery export let label: IntlString diff --git a/plugins/recruit-resources/src/components/review/CreateOpinion.svelte b/plugins/recruit-resources/src/components/review/CreateOpinion.svelte index f8e3f335d4..3cc7fa1266 100644 --- a/plugins/recruit-resources/src/components/review/CreateOpinion.svelte +++ b/plugins/recruit-resources/src/components/review/CreateOpinion.svelte @@ -47,11 +47,11 @@ const dispatch = createEventDispatcher() const client = getClient() - export function canClose (): boolean { + export function canClose(): boolean { return review === undefined && assignee === undefined } - async function createOpinion () { + async function createOpinion() { const sequence = await client.findOne(core.class.Sequence, { attachedTo: recruit.class.Review }) if (sequence === undefined) { throw new Error('sequence object not found') diff --git a/plugins/recruit-resources/src/components/review/CreateReview.svelte b/plugins/recruit-resources/src/components/review/CreateReview.svelte index e6a6fb54af..64f7d2be44 100644 --- a/plugins/recruit-resources/src/components/review/CreateReview.svelte +++ b/plugins/recruit-resources/src/components/review/CreateReview.svelte @@ -82,11 +82,11 @@ const client = getClient() const hierarchy = client.getHierarchy() - export function canClose (): boolean { + export function canClose(): boolean { return (preserveCandidate || candidate === undefined) && title.length === 0 } - async function createReview () { + async function createReview() { const sequence = await client.findOne(core.class.Sequence, { attachedTo: recruit.class.Review }) if (sequence === undefined) { throw new Error('sequence object not found') @@ -135,14 +135,14 @@ Analytics.handleEvent(RecruitEvents.ReviewCreated, { id: ref }) } - async function invokeValidate ( + async function invokeValidate( action: Resource<(doc: T, client: Client) => Promise> ): Promise { const impl = await getResource(action) return await impl(doc, client) } - async function validate (doc: Review, _class: Ref>): Promise { + async function validate(doc: Review, _class: Ref>): Promise { const clazz = hierarchy.getClass(_class) const validatorMixin = hierarchy.as(clazz, view.mixin.ObjectValidator) if (validatorMixin?.validator != null) { diff --git a/plugins/recruit-resources/src/components/review/EditOpinion.svelte b/plugins/recruit-resources/src/components/review/EditOpinion.svelte index f9c5f20397..355cbec4e8 100644 --- a/plugins/recruit-resources/src/components/review/EditOpinion.svelte +++ b/plugins/recruit-resources/src/components/review/EditOpinion.svelte @@ -37,11 +37,11 @@ const dispatch = createEventDispatcher() const client = getClient() - export function canClose (): boolean { + export function canClose(): boolean { return true } - async function editOpinion () { + async function editOpinion() { const ops: DocumentUpdate = {} if (item.value !== value) { ops.value = value diff --git a/plugins/recruit-resources/src/components/review/EditReview.svelte b/plugins/recruit-resources/src/components/review/EditReview.svelte index 16bec8be71..a848ea941d 100644 --- a/plugins/recruit-resources/src/components/review/EditReview.svelte +++ b/plugins/recruit-resources/src/components/review/EditReview.svelte @@ -45,7 +45,7 @@ let candidate: Contact | undefined = undefined - async function updateSelected (object: Review) { + async function updateSelected(object: Review) { candidate = object?.attachedTo !== undefined ? await client.findOne(object.attachedToClass, { _id: object.attachedTo }) diff --git a/plugins/recruit-resources/src/components/review/OpinionPresenter.svelte b/plugins/recruit-resources/src/components/review/OpinionPresenter.svelte index 3899496d9c..b0f9d9c78a 100644 --- a/plugins/recruit-resources/src/components/review/OpinionPresenter.svelte +++ b/plugins/recruit-resources/src/components/review/OpinionPresenter.svelte @@ -22,7 +22,7 @@ export let value: Opinion - function show () { + function show() { closeTooltip() showPopup(EditOpinion, { item: value }, element) } diff --git a/plugins/survey-resources/src/utils.ts b/plugins/survey-resources/src/utils.ts index 78e631f2a0..60c870051d 100644 --- a/plugins/survey-resources/src/utils.ts +++ b/plugins/survey-resources/src/utils.ts @@ -13,7 +13,7 @@ // limitations under the License. // -import { clone, type Class, type Client, type Doc, type Ref } from '@hcengineering/core' +import { clone, type Client, type Doc, type Ref } from '@hcengineering/core' import survey, { surveyId, type Poll, type PollData, type Survey } from '@hcengineering/survey' import { getClient, MessageBox } from '@hcengineering/presentation' import { diff --git a/plugins/time-resources/src/components/CreateToDo.svelte b/plugins/time-resources/src/components/CreateToDo.svelte index 82ccca3e36..780134a736 100644 --- a/plugins/time-resources/src/components/CreateToDo.svelte +++ b/plugins/time-resources/src/components/CreateToDo.svelte @@ -16,7 +16,7 @@ const client = getClient() const me = getCurrentEmployee() - async function save (): Promise { + async function save(): Promise { let [name, description] = value.split('//') name = name.trim() if (name.length === 0) return @@ -54,11 +54,11 @@ clear() } - function clear (): void { + function clear(): void { value = '' } - function openPopup (): void { + function openPopup(): void { showPopup(CreateToDoPopup, { value }, 'top') } diff --git a/plugins/time-resources/src/components/CreateToDoPopup.svelte b/plugins/time-resources/src/components/CreateToDoPopup.svelte index 76f664893b..9cb888ee34 100644 --- a/plugins/time-resources/src/components/CreateToDoPopup.svelte +++ b/plugins/time-resources/src/components/CreateToDoPopup.svelte @@ -52,13 +52,13 @@ const dispatch = createEventDispatcher() const client = getClient() - export function canClose (): boolean { + export function canClose(): boolean { return true } let loading = false - async function saveToDo (): Promise { + async function saveToDo(): Promise { loading = true const ops = client.apply(undefined, 'create-todo') const latestTodo = await ops.findOne( @@ -128,7 +128,7 @@ let slots: WorkSlot[] = [] let reminders: number[] = [] - function removeSlot (e: CustomEvent<{ _id: Ref }>): void { + function removeSlot(e: CustomEvent<{ _id: Ref }>): void { const index = slots.findIndex((p) => p._id === e.detail._id) if (index !== -1) { slots.splice(index, 1) @@ -136,7 +136,7 @@ } } - function createSlot (): void { + function createSlot(): void { const defaultDuration = 30 * 60 * 1000 const now = Date.now() const date = Math.ceil(now / (30 * 60 * 1000)) * (30 * 60 * 1000) @@ -167,7 +167,7 @@ slots = slots } - function changeSlot (e: CustomEvent<{ startDate: number, dueDate: number, slot: Ref }>): void { + function changeSlot(e: CustomEvent<{ startDate: number, dueDate: number, slot: Ref }>): void { const { startDate, dueDate, slot } = e.detail const workslot = slots.find((s) => s._id === slot) if (workslot !== undefined) { @@ -177,7 +177,7 @@ } } - function changeDueSlot (e: CustomEvent<{ dueDate: number, slot: Ref }>): void { + function changeDueSlot(e: CustomEvent<{ dueDate: number, slot: Ref }>): void { const { dueDate, slot } = e.detail const workslot = slots.find((s) => s._id === slot) if (workslot !== undefined) { diff --git a/plugins/time-resources/src/components/DueDateEditor.svelte b/plugins/time-resources/src/components/DueDateEditor.svelte index 0dbe5e3bb0..0390f5f3bc 100644 --- a/plugins/time-resources/src/components/DueDateEditor.svelte +++ b/plugins/time-resources/src/components/DueDateEditor.svelte @@ -26,7 +26,7 @@ $: buttonTitle = value ? new Date(value).toLocaleDateString() : undefined $: buttonLabel = buttonTitle === undefined ? ui.string.DueDate : undefined - function handleClick (e: MouseEvent) { + function handleClick(e: MouseEvent) { if (!opened) { opened = true showPopup( diff --git a/plugins/time-resources/src/components/EditToDo.svelte b/plugins/time-resources/src/components/EditToDo.svelte index 2ce063e18c..702dfa0b1c 100644 --- a/plugins/time-resources/src/components/EditToDo.svelte +++ b/plugins/time-resources/src/components/EditToDo.svelte @@ -53,44 +53,44 @@ } }) - export function canClose (): boolean { + export function canClose(): boolean { return true } - async function updateName () { + async function updateName() { if (object.title !== title) { await client.update(object, { title }) } } - async function updateDescription () { + async function updateDescription() { if (object.description !== description) { await client.update(object, { description }) } } - async function markDone () { + async function markDone() { object.doneOn = object.doneOn == null ? Date.now() : null await client.update(object, { doneOn: object.doneOn }) } - async function dueDateChange (value: Date | null) { + async function dueDateChange(value: Date | null) { const dueDate = value != null ? value.getTime() : null await client.update(object, { dueDate }) object.dueDate = dueDate } - async function priorityChange (priority: ToDoPriority) { + async function priorityChange(priority: ToDoPriority) { await client.update(object, { priority }) object.priority = priority } - async function visibilityChange (visibility: Visibility) { + async function visibilityChange(visibility: Visibility) { await client.update(object, { visibility }) object.visibility = visibility } - async function spaceChange (space: Space | null) { + async function spaceChange(space: Space | null) { const oldSpace = object.attachedSpace ?? undefined const newSpace = space?._id ?? undefined if (newSpace !== oldSpace) { diff --git a/plugins/time-resources/src/components/EditWorkSlot.svelte b/plugins/time-resources/src/components/EditWorkSlot.svelte index 620b34aed7..7a8ee2d32d 100644 --- a/plugins/time-resources/src/components/EditWorkSlot.svelte +++ b/plugins/time-resources/src/components/EditWorkSlot.svelte @@ -62,11 +62,11 @@ const dispatch = createEventDispatcher() const client = getClient() - export function canClose (): boolean { + export function canClose(): boolean { return true } - async function saveEvent () { + async function saveEvent() { if (readOnly) { return } diff --git a/plugins/time-resources/src/components/Header.svelte b/plugins/time-resources/src/components/Header.svelte index 743df59ef9..d8a718de26 100644 --- a/plugins/time-resources/src/components/Header.svelte +++ b/plugins/time-resources/src/components/Header.svelte @@ -17,7 +17,7 @@ export let currentDate: Date = new Date() - function inc (val: number): void { + function inc(val: number): void { if (val === 0) { currentDate = new Date() return @@ -26,7 +26,7 @@ currentDate = currentDate } - function getTitle (day: Date, now: Timestamp): IntlString { + function getTitle(day: Date, now: Timestamp): IntlString { // const today = new Date(now) // const tomorrow = new Date(new Date(now).setDate(new Date(now).getDate() + 1)) // const yesterday = new Date(new Date(now).setDate(new Date(now).getDate() - 1)) diff --git a/plugins/time-resources/src/components/PlanView.svelte b/plugins/time-resources/src/components/PlanView.svelte index a05cebee74..0de8cff9c8 100644 --- a/plugins/time-resources/src/components/PlanView.svelte +++ b/plugins/time-resources/src/components/PlanView.svelte @@ -44,7 +44,7 @@ const client = getClient() - async function drop (e: CustomEvent) { + async function drop(e: CustomEvent) { if (dragItem === null) return const doc = dragItem const date = e.detail.date.getTime() diff --git a/plugins/time-resources/src/components/PlanningCalendar.svelte b/plugins/time-resources/src/components/PlanningCalendar.svelte index e64cd4f690..716e995079 100644 --- a/plugins/time-resources/src/components/PlanningCalendar.svelte +++ b/plugins/time-resources/src/components/PlanningCalendar.svelte @@ -32,11 +32,11 @@ const q = createQuery() - function getFrom (date: Date): Timestamp { + function getFrom(date: Date): Timestamp { return new Date(date).setHours(0, 0, 0, 0) } - function getTo (date: Date, days: number = 3): Timestamp { + function getTo(date: Date, days: number = 3): Timestamp { return new Date(date).setDate(date.getDate() + days) } @@ -63,7 +63,7 @@ $: from = getFrom(currentDate) $: to = getTo(currentDate, displayedDaysCount) - function update (calendars: Calendar[]): void { + function update(calendars: Calendar[]): void { q.query( calendar.class.Event, { calendar: { $in: [personalCalendar, ...calendars.map((p) => p._id)] } }, @@ -78,7 +78,7 @@ $: all = getAllEvents(raw, from, to) $: objects = hidePrivateEvents(all, $calendarByIdStore) - function inc (val: number): void { + function inc(val: number): void { if (val === 0) { currentDate = new Date() dayCalendar.scrollToTime(currentDate) @@ -88,7 +88,7 @@ currentDate = currentDate } - function getTitle (day: Date, now: Timestamp): IntlString { + function getTitle(day: Date, now: Timestamp): IntlString { const today = new Date(now) const tomorrow = new Date(new Date(now).setDate(new Date(now).getDate() + 1)) const yesterday = new Date(new Date(now).setDate(new Date(now).getDate() - 1)) @@ -106,7 +106,7 @@ } const dragItemId = 'drag_item' as Ref - function dragEnter (e: CustomEvent) { + function dragEnter(e: CustomEvent) { if (dragItem != null) { const current = raw.find((p) => p._id === dragItemId) if (current !== undefined) { @@ -144,20 +144,20 @@ objects = hidePrivateEvents(all, $calendarByIdStore) } } - function dragLeave (event: DragEvent) { + function dragLeave(event: DragEvent) { const rect = dayCalendar.getCalendarRect() if (!rect) return if (event.x < rect.left || event.x > rect.right || event.y < rect.top || event.y > rect.bottom) { raw = raw.filter((r) => r._id !== dragItemId) } } - function dragOut () { + function dragOut() { if (dragItemId != null) { raw = raw.filter((r) => r._id !== dragItemId) } } - function clear (dragItem: ToDo | null) { + function clear(dragItem: ToDo | null) { if (dragItem === null) { raw = raw.filter((p) => p._id !== dragItemId) all = getAllEvents(raw, from, to) @@ -166,7 +166,7 @@ } $: clear(dragItem) - function showCreateDialog (date: Date, withTime: boolean) { + function showCreateDialog(date: Date, withTime: boolean) { if (createComponent === undefined) { return } diff --git a/plugins/time-resources/src/components/PriorityEditor.svelte b/plugins/time-resources/src/components/PriorityEditor.svelte index fc617904f0..0eb7c3a206 100644 --- a/plugins/time-resources/src/components/PriorityEditor.svelte +++ b/plugins/time-resources/src/components/PriorityEditor.svelte @@ -61,7 +61,7 @@ onChange(newPriority) } - function handleClick (event: MouseEvent) { + function handleClick(event: MouseEvent) { event.stopPropagation() showPopup( diff --git a/plugins/time-resources/src/components/TaskSelector.svelte b/plugins/time-resources/src/components/TaskSelector.svelte index 48b4e0b1a8..761e1cae7c 100644 --- a/plugins/time-resources/src/components/TaskSelector.svelte +++ b/plugins/time-resources/src/components/TaskSelector.svelte @@ -14,7 +14,7 @@ const client = getClient() const hierarchy = client.getHierarchy() - function click (e: MouseEvent) { + function click(e: MouseEvent) { if (value && value.attachedTo !== time.ids.NotAttached) { const panelComponent = hierarchy.classHierarchyMixin, ObjectPanel>( value.attachedToClass, diff --git a/plugins/time-resources/src/components/ToDoDraggable.svelte b/plugins/time-resources/src/components/ToDoDraggable.svelte index 2305f7e23c..802b5e5951 100644 --- a/plugins/time-resources/src/components/ToDoDraggable.svelte +++ b/plugins/time-resources/src/components/ToDoDraggable.svelte @@ -56,7 +56,7 @@ } } - function handleDragStart (event: DragEvent): void { + function handleDragStart(event: DragEvent): void { if (event.dataTransfer) { event.dataTransfer.effectAllowed = 'move' } @@ -70,7 +70,7 @@ })) } - function handleDragEnd (): void { + function handleDragEnd(): void { isDragging = false dragging.set({ item: null, @@ -83,7 +83,7 @@ }) } - function handleDragOver (): void { + function handleDragOver(): void { if (!isDraggable) return dragging.update((state) => ({ ...state, @@ -93,7 +93,7 @@ })) } - function handleDrop (event: DragEvent): void { + function handleDrop(event: DragEvent): void { if (!isDraggable) return dispatch('drop', { event, index }) } diff --git a/plugins/time-resources/src/components/ToDoElement.svelte b/plugins/time-resources/src/components/ToDoElement.svelte index ea10c0b178..90b64941b1 100644 --- a/plugins/time-resources/src/components/ToDoElement.svelte +++ b/plugins/time-resources/src/components/ToDoElement.svelte @@ -32,7 +32,7 @@ const client = getClient() let updating: Promise | undefined = undefined - async function markDone (): Promise { + async function markDone(): Promise { await updating updating = client.update(todo, { doneOn: todo.doneOn == null ? Date.now() : null }) await updating @@ -53,14 +53,14 @@ ) let hovered = false - async function onMenuClick (ev: MouseEvent): Promise { + async function onMenuClick(ev: MouseEvent): Promise { hovered = true showMenu(ev, { object: todo }, () => { hovered = false }) } - function open (e: MouseEvent): void { + function open(e: MouseEvent): void { showPanel(time.component.EditToDo, todo._id, todo._class, 'content') } diff --git a/plugins/time-resources/src/components/ToDoGroup.svelte b/plugins/time-resources/src/components/ToDoGroup.svelte index 07d0ce59ad..37ddf6cba1 100644 --- a/plugins/time-resources/src/components/ToDoGroup.svelte +++ b/plugins/time-resources/src/components/ToDoGroup.svelte @@ -35,7 +35,7 @@ export let showDuration: boolean export let projects: IdMap - function getAllWorkslots (todos: WithLookup[]): WorkSlot[] { + function getAllWorkslots(todos: WithLookup[]): WorkSlot[] { const workslots: WorkSlot[] = [] for (const todo of todos) { for (const workslot of (todo.$lookup?.workslots ?? []) as WorkSlot[]) { @@ -76,7 +76,7 @@ $: draggingItem = $dragging.item $: draggingItemIndex = $dragging.itemIndex - async function handleDrop (event: CustomEvent<{ event: DragEvent, index: number }>): Promise { + async function handleDrop(event: CustomEvent<{ event: DragEvent, index: number }>): Promise { if (draggingItem === null || draggingItemIndex === null) return const droppingIndex = event.detail.index diff --git a/plugins/time-resources/src/components/ToDoPresenter.svelte b/plugins/time-resources/src/components/ToDoPresenter.svelte index 092be7615f..60a235d62c 100644 --- a/plugins/time-resources/src/components/ToDoPresenter.svelte +++ b/plugins/time-resources/src/components/ToDoPresenter.svelte @@ -27,7 +27,7 @@ export let withouthWorkItem: boolean = false export let showCheck = false - function isVisible (value: ToDo): boolean { + function isVisible(value: ToDo): boolean { if (value.createdBy !== undefined && getCurrentAccount().socialIds.includes(value.createdBy)) return true if (value.visibility === 'public') { return true @@ -45,7 +45,7 @@ let updating: Promise | undefined = undefined - async function markDone (): Promise { + async function markDone(): Promise { await updating updating = client.update(value, { doneOn: value.doneOn == null ? Date.now() : null }) await updating diff --git a/plugins/time-resources/src/components/ToDoProjectGroup.svelte b/plugins/time-resources/src/components/ToDoProjectGroup.svelte index c8bf709527..444f785dbb 100644 --- a/plugins/time-resources/src/components/ToDoProjectGroup.svelte +++ b/plugins/time-resources/src/components/ToDoProjectGroup.svelte @@ -60,7 +60,7 @@ $: draggingItem = $dragging.item $: draggingItemIndex = $dragging.itemIndex - async function handleDrop (event: CustomEvent<{ event: DragEvent, index: number }>): Promise { + async function handleDrop(event: CustomEvent<{ event: DragEvent, index: number }>): Promise { if (draggingItem === null || draggingItemIndex === null) return const droppingIndex = event.detail.index diff --git a/plugins/time-resources/src/components/ToDos.svelte b/plugins/time-resources/src/components/ToDos.svelte index c4ef3bca43..925f3a851b 100644 --- a/plugins/time-resources/src/components/ToDos.svelte +++ b/plugins/time-resources/src/components/ToDos.svelte @@ -64,11 +64,11 @@ $: updateTags(mode, tag) - function togglePlannerNav (): void { + function togglePlannerNav(): void { $deviceInfo.navigator.visible = !$deviceInfo.navigator.visible } - function updateTags (mode: ToDosMode, tag: Ref | undefined): void { + function updateTags(mode: ToDosMode, tag: Ref | undefined): void { if (mode !== 'tag' || tag === undefined) { tagsQuery.unsubscribe() ids = [] @@ -85,7 +85,7 @@ ) } - function update (mode: ToDosMode, currentDate: Date, ids: Ref[]): void { + function update(mode: ToDosMode, currentDate: Date, ids: Ref[]): void { let activeQ: DocumentQuery | undefined = undefined let doneQ: DocumentQuery | undefined = undefined let inboxQ: DocumentQuery | undefined = undefined @@ -203,7 +203,7 @@ $: groups = group(inbox, done, active, todoValue) - function filterActive (mode: ToDosMode, raw: WithLookup[], currentDate: Date): WithLookup[] { + function filterActive(mode: ToDosMode, raw: WithLookup[], currentDate: Date): WithLookup[] { if (mode === 'planned') { const today = areDatesEqual(new Date(), currentDate) const res: WithLookup[] = [] @@ -228,11 +228,11 @@ } } - function getWorkslots (todo: WithLookup): WorkSlot[] { + function getWorkslots(todo: WithLookup): WorkSlot[] { return (todo.$lookup?.workslots ?? []) as WorkSlot[] } - function group ( + function group( unplanned: WithLookup[], done: WithLookup[], active: WithLookup[], diff --git a/plugins/time-resources/src/components/ToDosNavigator.svelte b/plugins/time-resources/src/components/ToDosNavigator.svelte index 782ba3d224..218631eb09 100644 --- a/plugins/time-resources/src/components/ToDosNavigator.svelte +++ b/plugins/time-resources/src/components/ToDosNavigator.svelte @@ -114,7 +114,7 @@ $: actions = getHeaderMenuActions() - function getHeaderMenuActions (): Action[] { + function getHeaderMenuActions(): Action[] { const actions: Action[] = [] if (getMetadata(calendar.metadata.CalDavServerURL)) { actions.push({ @@ -130,7 +130,7 @@ return actions } - function menuButtonClicked (ev: MouseEvent): void { + function menuButtonClicked(ev: MouseEvent): void { pressed = true showPopup(Menu, { actions }, ev.target as HTMLElement, () => { pressed = false diff --git a/plugins/time-resources/src/components/TodoWorkslots.svelte b/plugins/time-resources/src/components/TodoWorkslots.svelte index e578347498..4b6583a84b 100644 --- a/plugins/time-resources/src/components/TodoWorkslots.svelte +++ b/plugins/time-resources/src/components/TodoWorkslots.svelte @@ -65,7 +65,7 @@ } } - async function change (e: CustomEvent<{ startDate: number, dueDate: number, slot: Ref }>): Promise { + async function change(e: CustomEvent<{ startDate: number, dueDate: number, slot: Ref }>): Promise { const { startDate, dueDate, slot } = e.detail const workslot = slots.find((s) => s._id === slot) if (workslot !== undefined) { @@ -73,7 +73,7 @@ } } - async function dueChange (e: CustomEvent<{ dueDate: number, slot: Ref }>): Promise { + async function dueChange(e: CustomEvent<{ dueDate: number, slot: Ref }>): Promise { const { dueDate, slot } = e.detail const workslot = slots.find((s) => s._id === slot) if (workslot !== undefined) { @@ -81,7 +81,7 @@ } } - async function create (): Promise { + async function create(): Promise { const defaultDuration = 30 * 60 * 1000 const now = Date.now() const date = Math.ceil(now / (30 * 60 * 1000)) * (30 * 60 * 1000) @@ -106,7 +106,7 @@ Analytics.handleEvent(TimeEvents.ToDoScheduled, { id: todo._id }) } - async function syncRemindersForSlots (): Promise { + async function syncRemindersForSlots(): Promise { await Promise.all( slots.map(async (slot) => { await client.update(slot, { reminders }) @@ -114,7 +114,7 @@ ) } - async function remove (e: CustomEvent<{ _id: Ref }>): Promise { + async function remove(e: CustomEvent<{ _id: Ref }>): Promise { const object = slots.find((p) => p._id === e.detail._id) if (object !== undefined) { showPopup( diff --git a/plugins/time-resources/src/components/WorkItemPresenter.svelte b/plugins/time-resources/src/components/WorkItemPresenter.svelte index 77606c42c5..ea59e9ed27 100644 --- a/plugins/time-resources/src/components/WorkItemPresenter.svelte +++ b/plugins/time-resources/src/components/WorkItemPresenter.svelte @@ -39,7 +39,7 @@ doc = res[0] }) - async function click (event: MouseEvent): Promise { + async function click(event: MouseEvent): Promise { event.stopPropagation() if (!doc) return const panelComponent = hierarchy.classHierarchyMixin, ObjectPanel>(doc._class, view.mixin.ObjectPanel) diff --git a/plugins/time-resources/src/components/WorkSlotElement.svelte b/plugins/time-resources/src/components/WorkSlotElement.svelte index 975adcde1a..fda2239587 100644 --- a/plugins/time-resources/src/components/WorkSlotElement.svelte +++ b/plugins/time-resources/src/components/WorkSlotElement.svelte @@ -28,8 +28,8 @@ const query = createQuery() $: !hideDetails ? query.query(event.attachedToClass, { _id: event.attachedTo }, (res) => { - todo = res[0] - }) + todo = res[0] + }) : query.unsubscribe() diff --git a/plugins/time-resources/src/components/Workslots.svelte b/plugins/time-resources/src/components/Workslots.svelte index 01e67ff92a..3074be8c74 100644 --- a/plugins/time-resources/src/components/Workslots.svelte +++ b/plugins/time-resources/src/components/Workslots.svelte @@ -41,19 +41,19 @@ duration = res }) - function handleKeyDown (event: KeyboardEvent): void { + function handleKeyDown(event: KeyboardEvent): void { if (!shortcuts) return if (event.shiftKey && event.key === 'Enter') { dispatch('create') } } - async function change (e: CustomEvent<{ startDate: number, dueDate: number }>, slot: WorkSlot): Promise { + async function change(e: CustomEvent<{ startDate: number, dueDate: number }>, slot: WorkSlot): Promise { const { startDate, dueDate } = e.detail dispatch('change', { startDate, dueDate, slot: slot._id }) } - async function dueChange (e: CustomEvent<{ dueDate: number }>, slot: WorkSlot): Promise { + async function dueChange(e: CustomEvent<{ dueDate: number }>, slot: WorkSlot): Promise { const { dueDate } = e.detail dispatch('dueChange', { dueDate, slot: slot._id }) } diff --git a/plugins/time-resources/src/components/team/Team.svelte b/plugins/time-resources/src/components/team/Team.svelte index 92362b2b58..55cef97c9d 100644 --- a/plugins/time-resources/src/components/team/Team.svelte +++ b/plugins/time-resources/src/components/team/Team.svelte @@ -49,7 +49,7 @@ let items: BreadcrumbItem[] let replacedPanel: HTMLElement - async function updateSpace (space?: Ref): Promise { + async function updateSpace(space?: Ref): Promise { if (space === undefined) { items = [teamBreadcrumb] return @@ -72,7 +72,7 @@ } $: updateSpace(space) - function changeMode (_mode: string): void { + function changeMode(_mode: string): void { mode = _mode Analytics.handleEvent(TimeEvents.TeamOpenTab, { tab: _mode }) diff --git a/plugins/time-resources/src/components/team/agenda/DayPlan.svelte b/plugins/time-resources/src/components/team/agenda/DayPlan.svelte index 0eb5e5faec..f9b56fa163 100644 --- a/plugins/time-resources/src/components/team/agenda/DayPlan.svelte +++ b/plugins/time-resources/src/components/team/agenda/DayPlan.svelte @@ -13,7 +13,7 @@ export let showAssignee: boolean = false export let todos: IdMap - function getTitle (day: Date, now: Timestamp): IntlString { + function getTitle(day: Date, now: Timestamp): IntlString { const today = new Date(now) const tomorrow = new Date(new Date(now).setDate(new Date(now).getDate() + 1)) const yesterday = new Date(new Date(now).setDate(new Date(now).getDate() - 1)) diff --git a/plugins/time-resources/src/components/team/calendar/EventElement.svelte b/plugins/time-resources/src/components/team/calendar/EventElement.svelte index 5a16e32900..5276d509cf 100644 --- a/plugins/time-resources/src/components/team/calendar/EventElement.svelte +++ b/plugins/time-resources/src/components/team/calendar/EventElement.svelte @@ -29,7 +29,7 @@ $: left = (hour / 60) * new Date(event.date).getMinutes() $: empty = false - function click (): void { + function click(): void { if (visible) { const editor = hierarchy.classHierarchyMixin(event._class, view.mixin.ObjectEditor) if (editor?.editor !== undefined) { @@ -49,7 +49,7 @@ $: visible = isVisible(event, $calendarByIdStore) - function onContext (e: MouseEvent): void { + function onContext(e: MouseEvent): void { showMenu(e, { object: event }) } diff --git a/plugins/time-resources/src/components/team/calendar/PersonCalendar.svelte b/plugins/time-resources/src/components/team/calendar/PersonCalendar.svelte index e251214cbc..61298a1ccb 100644 --- a/plugins/time-resources/src/components/team/calendar/PersonCalendar.svelte +++ b/plugins/time-resources/src/components/team/calendar/PersonCalendar.svelte @@ -41,20 +41,20 @@ const todayDate = new Date() - function getColumnWidth (gridWidth: number, currentDate: Date, maxDays: number): number { + function getColumnWidth(gridWidth: number, currentDate: Date, maxDays: number): number { const width = gridWidth / Math.min(daysInMonth(currentDate), maxDays) return Math.max(width, minColWidthRem) } - export function getCellStyle (): string { + export function getCellStyle(): string { return `width: ${columnWidthRem}rem;` } - export function getRowStyle (): string { + export function getRowStyle(): string { return `height: ${rowHeightRem}rem;` } - export function getHeaderStyle (): string { + export function getHeaderStyle(): string { return `height: ${headerHeightRem}rem;` } diff --git a/plugins/time-resources/src/components/team/calendar/TeamCalendar.svelte b/plugins/time-resources/src/components/team/calendar/TeamCalendar.svelte index cc8e70507a..0d4627335f 100644 --- a/plugins/time-resources/src/components/team/calendar/TeamCalendar.svelte +++ b/plugins/time-resources/src/components/team/calendar/TeamCalendar.svelte @@ -94,7 +94,7 @@ const client = getClient() - function group ( + function group( txes: Tx[], from: Timestamp, to: Timestamp diff --git a/plugins/time-resources/src/components/team/calendar/TeamCalendarDay.svelte b/plugins/time-resources/src/components/team/calendar/TeamCalendarDay.svelte index 6f2d4dcc51..289d6206eb 100644 --- a/plugins/time-resources/src/components/team/calendar/TeamCalendarDay.svelte +++ b/plugins/time-resources/src/components/team/calendar/TeamCalendarDay.svelte @@ -43,7 +43,7 @@ .map((it) => $employeeRefByAccountUuidStore.get(it)) .filter((it) => it !== undefined) - function calcHourWidth (events: Event[], totalWidth: number): number[] { + function calcHourWidth(events: Event[], totalWidth: number): number[] { const hours = new Map() for (const e of events) { const h1 = new Date(e.date).getHours() @@ -67,7 +67,7 @@ '1hour': 1, '30mins': 2 } - function calcTop (event: Event, prevEvent?: Event): number { + function calcTop(event: Event, prevEvent?: Event): number { if (prevEvent === undefined) { return 0 } diff --git a/plugins/time-resources/src/components/team/calendar/TxPanel.svelte b/plugins/time-resources/src/components/team/calendar/TxPanel.svelte index 8aa19d0f84..6680cf5252 100644 --- a/plugins/time-resources/src/components/team/calendar/TxPanel.svelte +++ b/plugins/time-resources/src/components/team/calendar/TxPanel.svelte @@ -32,7 +32,7 @@ } let objects: ObjData[] = [] - async function group (txes: TxCUD[]): Promise { + async function group(txes: TxCUD[]): Promise { const h = client.getHierarchy() const objs = new Map, ObjData>() diff --git a/plugins/tracker-resources/src/component.ts b/plugins/tracker-resources/src/component.ts index 5bea1a4645..027cfec7f7 100644 --- a/plugins/tracker-resources/src/component.ts +++ b/plugins/tracker-resources/src/component.ts @@ -140,7 +140,7 @@ export function groupComponentValuesWithEmpty ( resQuery._id = st } componentsList = matchQuery(componentsList, resQuery, _class, hierarchy) as unknown as Array< - WithLookup + WithLookup > } return componentsList.map((it) => it._id) diff --git a/plugins/tracker-resources/src/components/CreateIssue.svelte b/plugins/tracker-resources/src/components/CreateIssue.svelte index e724a2a38c..57933573ea 100644 --- a/plugins/tracker-resources/src/components/CreateIssue.svelte +++ b/plugins/tracker-resources/src/components/CreateIssue.svelte @@ -144,7 +144,7 @@ let template: IssueTemplate | undefined = undefined const templateQuery = createQuery() - function objectChange (object: IssueDraft, empty: any): void { + function objectChange(object: IssueDraft, empty: any): void { if (shouldSaveDraft) { draftController.save(object, empty) } @@ -165,7 +165,7 @@ parentIssue = undefined } - function getDefaultObjectFromDraft (): IssueDraft | undefined { + function getDefaultObjectFromDraft(): IssueDraft | undefined { if (draft == null) { return } @@ -182,7 +182,7 @@ } } - function getDefaultObject (id: Ref | undefined = undefined, ignoreOriginal = false): IssueDraft { + function getDefaultObject(id: Ref | undefined = undefined, ignoreOriginal = false): IssueDraft { const base: IssueDraft = { _id: id ?? generateId(), title: '', @@ -262,7 +262,7 @@ object.space = _space } - function resetObject (): void { + function resetObject(): void { templateId = undefined template = undefined object = getDefaultObject(undefined, true) @@ -278,7 +278,7 @@ templateQuery.unsubscribe() } - function tagAsRef (tag: TagElement): TagReference { + function tagAsRef(tag: TagElement): TagReference { return { _class: tags.class.TagReference, _id: generateId(), @@ -294,7 +294,7 @@ } } - async function updateTemplate (template: IssueTemplate): Promise { + async function updateTemplate(template: IssueTemplate): Promise { if (object.template?.template === template._id) { return } @@ -323,11 +323,11 @@ labels: p.labels !== undefined ? p.labels - .map((p) => { - const val = tagElements.get(p) - return val !== undefined ? tagAsRef(val) : undefined - }) - .filter((p) => p !== undefined) + .map((p) => { + const val = tagElements.get(p) + return val !== undefined ? tagAsRef(val) : undefined + }) + .filter((p) => p !== undefined) : [], status: currentProject?.defaultIssueStatus } @@ -345,11 +345,11 @@ object.labels = labels !== undefined ? labels - .map((p) => { - const val = tagElements.get(p) - return val !== undefined ? tagAsRef(val) : undefined - }) - .filter((p) => p !== undefined) + .map((p) => { + const val = tagElements.get(p) + return val !== undefined ? tagAsRef(val) : undefined + }) + .filter((p) => p !== undefined) : [] if (object.kind !== undefined) { @@ -381,19 +381,19 @@ const docCreateManager = DocCreateExtensionManager.create(tracker.class.Issue) - function updateIssueStatusId (object: IssueDraft, currentProject: Project | undefined): void { + function updateIssueStatusId(object: IssueDraft, currentProject: Project | undefined): void { if (currentProject?.defaultIssueStatus !== undefined && object.status === undefined) { object.status = currentProject.defaultIssueStatus } } - function resetDefaultAssigneeId (): void { + function resetDefaultAssigneeId(): void { if (!isAssigneeTouched && !(object.assignee == null) && object.assignee === currentProject?.defaultAssignee) { object = { ...object, assignee: assignee ?? null } } } - function updateAssigneeId (object: IssueDraft, currentProject: Project | undefined): void { + function updateAssigneeId(object: IssueDraft, currentProject: Project | undefined): void { if (!isAssigneeTouched && object.assignee == null && currentProject !== undefined) { if (currentProject.defaultAssignee !== undefined) { object.assignee = currentProject.defaultAssignee @@ -402,23 +402,23 @@ } } } - function clearParentIssue (): void { + function clearParentIssue(): void { object.parentIssue = undefined parentQuery.unsubscribe() parentIssue = undefined } - function getTitle (value: string): string { + function getTitle(value: string): string { return value.trim() } let subIssuesComponent: SubIssues - export function canClose (): boolean { + export function canClose(): boolean { return true } - export function onOutsideClick (): void { + export function onOutsideClick(): void { if (shouldSaveDraft) { draftController.save(object, empty) } @@ -430,7 +430,7 @@ preferences = res }) - async function updateCurrentProjectPref (currentProject: Ref): Promise { + async function updateCurrentProjectPref(currentProject: Ref): Promise { if (me?.role === AccountRole.ReadOnlyGuest || me?.role === AccountRole.Guest) return const spacePreferences = await client.findOne(tracker.class.ProjectTargetPreference, { attachedTo: currentProject }) if (spacePreferences === undefined) { @@ -452,7 +452,7 @@ void updateCurrentProjectPref(_space) } - async function createIssue (): Promise { + async function createIssue(): Promise { const _id: Ref = generateId() if ( !canSave || @@ -612,7 +612,7 @@ } } - async function setParentIssue (): Promise { + async function setParentIssue(): Promise { showPopup( SetParentIssueActionPopup, { value: { ...object, space: _space, attachedTo: parentIssue?._id } }, @@ -642,10 +642,10 @@ object.milestone = milestoneId } - function addTagRef (tag: TagElement): void { + function addTagRef(tag: TagElement): void { object.labels = [...object.labels, tagAsRef(tag)] } - function handleTemplateChange (evt: CustomEvent>): void { + function handleTemplateChange(evt: CustomEvent>): void { if (templateId == null) { templateId = evt.detail return @@ -672,7 +672,7 @@ ) } - async function showConfirmationDialog (): Promise { + async function showConfirmationDialog(): Promise { draftController.save(object, empty) const isFormEmpty = draft === undefined @@ -703,14 +703,14 @@ let attachments: Map, Attachment> = new Map, Attachment>() - function isMemberOfProject (project: Project | undefined): boolean { + function isMemberOfProject(project: Project | undefined): boolean { if (project == null) return false const members = project.members if (!Array.isArray(members)) return true return members.includes(me.uuid) } - async function findDefaultSpace (): Promise { + async function findDefaultSpace(): Promise { let targetRef: Ref | undefined if (relatedTo !== undefined) { const targets = await client.findAll(tracker.class.RelatedIssueTarget, {}) diff --git a/plugins/tracker-resources/src/components/LabelsView.svelte b/plugins/tracker-resources/src/components/LabelsView.svelte index a6bceda534..d961d8980e 100644 --- a/plugins/tracker-resources/src/components/LabelsView.svelte +++ b/plugins/tracker-resources/src/components/LabelsView.svelte @@ -7,7 +7,7 @@ import { buildFilterKey, setFilters } from '@hcengineering/view-resources' import tracker from '../plugin' - function setFilterTag (tag: TagElement) { + function setFilterTag(tag: TagElement) { const client = getClient() const hierarchy = client.getHierarchy() const attribute = hierarchy.getAttribute(tracker.class.Issue, 'labels') @@ -22,7 +22,7 @@ } as unknown as Filter setFilters([filter]) } - async function onTag (tag: TagElement): Promise { + async function onTag(tag: TagElement): Promise { selectedTagElements.set([tag._id]) const loc = getCurrentResolvedLocation() loc.path[2] = 'tracker' diff --git a/plugins/tracker-resources/src/components/NewIssueHeader.svelte b/plugins/tracker-resources/src/components/NewIssueHeader.svelte index 3078a2168d..2bb4779d7f 100644 --- a/plugins/tracker-resources/src/components/NewIssueHeader.svelte +++ b/plugins/tracker-resources/src/components/NewIssueHeader.svelte @@ -49,14 +49,14 @@ loading = false }) - function newProject (): void { + function newProject(): void { closed = false showPopup(tracker.component.CreateProject, {}, 'top', () => { closed = true }) } - function newIssue (): void { + function newIssue(): void { closed = false Analytics.handleEvent(TrackerEvents.NewIssueButtonClicked) showPopup(CreateIssue, { space: currentSpace, shouldSaveDraft: true }, 'top', () => { @@ -66,7 +66,7 @@ let mainActionId: string | undefined = undefined let visibleActions: string[] = [] - function updateActions (draft: boolean, project: boolean, closed: boolean): void { + function updateActions(draft: boolean, project: boolean, closed: boolean): void { mainActionId = draft || !closed ? tracker.string.ResumeDraft : tracker.string.NewIssue if (project) { visibleActions = [tracker.string.CreateProject, mainActionId, tracker.string.Import] diff --git a/plugins/tracker-resources/src/components/RelationsPopup.svelte b/plugins/tracker-resources/src/components/RelationsPopup.svelte index 2e897d08a2..56f1410ad0 100644 --- a/plugins/tracker-resources/src/components/RelationsPopup.svelte +++ b/plugins/tracker-resources/src/components/RelationsPopup.svelte @@ -24,7 +24,7 @@ }) $: hasRelation = Object.values(relations).some(({ length }) => length) - async function updateRelation ( + async function updateRelation( refDocument: Doc, type: keyof typeof relations, operation: '$push' | '$pull', @@ -82,7 +82,7 @@ } ) } - async function removeRelation () { + async function removeRelation() { closePopup('popup') showPopup( ObjectSearchPopup, diff --git a/plugins/tracker-resources/src/components/SetDueDateActionPopup.svelte b/plugins/tracker-resources/src/components/SetDueDateActionPopup.svelte index 449acb7591..bff5058921 100644 --- a/plugins/tracker-resources/src/components/SetDueDateActionPopup.svelte +++ b/plugins/tracker-resources/src/components/SetDueDateActionPopup.svelte @@ -24,7 +24,7 @@ const dispatch = createEventDispatcher() - async function onUpdate ({ detail }: CustomEvent) { + async function onUpdate({ detail }: CustomEvent) { const newDueDate = detail?.getTime() const vv = Array.isArray(value) ? value : [value] diff --git a/plugins/tracker-resources/src/components/SetParentIssueActionPopup.svelte b/plugins/tracker-resources/src/components/SetParentIssueActionPopup.svelte index be8a0bbb33..dc0a083964 100644 --- a/plugins/tracker-resources/src/components/SetParentIssueActionPopup.svelte +++ b/plugins/tracker-resources/src/components/SetParentIssueActionPopup.svelte @@ -36,7 +36,7 @@ sort: { modifiedOn: SortingOrder.Descending } } - async function onClose ({ detail: parentIssue }: CustomEvent): Promise { + async function onClose({ detail: parentIssue }: CustomEvent): Promise { const vv = Array.isArray(value) ? value : [value] for (const docValue of vv) { if ( @@ -70,7 +70,7 @@ $: selected = !Array.isArray(value) ? ('attachedTo' in value ? value.attachedTo : undefined) : undefined $: ignoreObjects = getIgnoreObjects(value) - function getIgnoreObjects (issues: Issue | AttachedData | Issue[] | IssueDraft): Ref[] { + function getIgnoreObjects(issues: Issue | AttachedData | Issue[] | IssueDraft): Ref[] { if (!Array.isArray(issues)) { const own = '_id' in issues ? issues._id : undefined const childs = 'childInfo' in issues ? issues.childInfo.map((c) => c.childId) : [] diff --git a/plugins/tracker-resources/src/components/SubIssues.svelte b/plugins/tracker-resources/src/components/SubIssues.svelte index 86b8b2264e..3d63314fc0 100644 --- a/plugins/tracker-resources/src/components/SubIssues.svelte +++ b/plugins/tracker-resources/src/components/SubIssues.svelte @@ -36,7 +36,7 @@ export let subIssues: IssueDraft[] = [] let lastProject = project let isCollapsed = false - async function handleIssueSwap (ev: CustomEvent<{ fromIndex: number, toIndex: number }>) { + async function handleIssueSwap(ev: CustomEvent<{ fromIndex: number, toIndex: number }>) { if (subIssues) { const { fromIndex, toIndex } = ev.detail const [fromIssue] = subIssues.splice(fromIndex, 1) @@ -47,7 +47,7 @@ } $: onProjectChange(project) - function onProjectChange (project: Project | undefined) { + function onProjectChange(project: Project | undefined) { if (lastProject?._id === project?._id) return lastProject = project if (project === undefined) return @@ -58,7 +58,7 @@ } const client = getClient() // TODO: move to utils - export async function save (parents: IssueParentInfo[], _id: Ref) { + export async function save(parents: IssueParentInfo[], _id: Ref) { if (project === undefined) return saved = true const statuses = subIssues.length > 0 ? getTaskTypeStates(subIssues[0].kind, $taskTypeStore, $statusStore.byId) : [] @@ -125,7 +125,7 @@ saveAttachments(childId) } } - async function saveAttachments (issue: Ref) { + async function saveAttachments(issue: Ref) { const draftAttachments = $draftsStore[`${issue}_attachments`] if (draftAttachments) { for (const key in draftAttachments) { @@ -134,7 +134,7 @@ } removeDraft(issue) } - async function saveAttachment (doc: Attachment, issue: Ref): Promise { + async function saveAttachment(doc: Attachment, issue: Ref): Promise { await client.addCollection( attachment.class.Attachment, projectId, @@ -145,7 +145,7 @@ doc._id ) } - export function load (value: IssueDraft[]) { + export function load(value: IssueDraft[]) { subIssues = value } let saved = false @@ -157,7 +157,7 @@ } }) // TODO: move to utils - export async function removeDraft (_id: string, removeFiles: boolean = false): Promise { + export async function removeDraft(_id: string, removeFiles: boolean = false): Promise { const draftAttachments = $draftsStore[`${_id}_attachments`] DraftController.remove(`${_id}_attachments`) if (removeFiles && draftAttachments) { diff --git a/plugins/tracker-resources/src/components/components/ComponentBrowser.svelte b/plugins/tracker-resources/src/components/components/ComponentBrowser.svelte index 3ab3fbd7e5..4c064a96e3 100644 --- a/plugins/tracker-resources/src/components/components/ComponentBrowser.svelte +++ b/plugins/tracker-resources/src/components/components/ComponentBrowser.svelte @@ -40,7 +40,7 @@ let searchQuery: DocumentQuery = { ...query } let resultQuery: DocumentQuery = { ...searchQuery } - function showCreateDialog (): void { + function showCreateDialog(): void { showPopup(NewComponent, { space, targetElement: null }, 'top') } diff --git a/plugins/tracker-resources/src/components/components/ComponentSelector.svelte b/plugins/tracker-resources/src/components/components/ComponentSelector.svelte index d8e941f8e3..66bd167827 100644 --- a/plugins/tracker-resources/src/components/components/ComponentSelector.svelte +++ b/plugins/tracker-resources/src/components/components/ComponentSelector.svelte @@ -72,7 +72,7 @@ $: handleSelectedComponentIdUpdated(value, rawComponents) - function getComponentInfo (rawComponents: Component[], sp: Component | undefined): SelectPopupValueType[] { + function getComponentInfo(rawComponents: Component[], sp: Component | undefined): SelectPopupValueType[] { return [ ...(isAllowUnset ? [ diff --git a/plugins/tracker-resources/src/components/components/DeleteComponentPresenter.svelte b/plugins/tracker-resources/src/components/components/DeleteComponentPresenter.svelte index e46ccf490e..1d9a21404f 100644 --- a/plugins/tracker-resources/src/components/components/DeleteComponentPresenter.svelte +++ b/plugins/tracker-resources/src/components/components/DeleteComponentPresenter.svelte @@ -30,7 +30,7 @@ const client = getClient() const dispatch = createEventDispatcher() - async function showConfirmationDialog (): Promise { + async function showConfirmationDialog(): Promise { showPopup( MessageBox, { @@ -49,7 +49,7 @@ ) } - async function removeComponent (): Promise { + async function removeComponent(): Promise { await client.remove(value) } diff --git a/plugins/tracker-resources/src/components/components/NewComponent.svelte b/plugins/tracker-resources/src/components/components/NewComponent.svelte index d717ab64d4..6b9b3f95b0 100644 --- a/plugins/tracker-resources/src/components/components/NewComponent.svelte +++ b/plugins/tracker-resources/src/components/components/NewComponent.svelte @@ -38,7 +38,7 @@ let _space = space - async function onSave () { + async function onSave() { await client.createDoc(tracker.class.Component, _space, object) } diff --git a/plugins/tracker-resources/src/components/issues/AssigneeEditor.svelte b/plugins/tracker-resources/src/components/issues/AssigneeEditor.svelte index 4ad078a955..bd3a28f674 100644 --- a/plugins/tracker-resources/src/components/issues/AssigneeEditor.svelte +++ b/plugins/tracker-resources/src/components/issues/AssigneeEditor.svelte @@ -83,7 +83,7 @@ let categories: AssigneeCategory[] = [] - function getCategories (object: AssigneeObject | AssigneeObject[]): void { + function getCategories(object: AssigneeObject | AssigneeObject[]): void { categories = [] if (cdocs.length > 0) { categories.push({ diff --git a/plugins/tracker-resources/src/components/issues/Duration.svelte b/plugins/tracker-resources/src/components/issues/Duration.svelte index dd453d746a..510f86bf5c 100644 --- a/plugins/tracker-resources/src/components/issues/Duration.svelte +++ b/plugins/tracker-resources/src/components/issues/Duration.svelte @@ -20,7 +20,7 @@ let time: string = '' - function formatTime (passed: number): void { + function formatTime(passed: number): void { if (passed < 0) passed = 0 if (passed < HOUR) { translateCB(ui.string.Minutes, { minutes: Math.floor(passed / MINUTE) }, $themeStore.language, (res) => { diff --git a/plugins/tracker-resources/src/components/issues/IssueNotification.svelte b/plugins/tracker-resources/src/components/issues/IssueNotification.svelte index f83ed3a3ff..a39bda0ede 100644 --- a/plugins/tracker-resources/src/components/issues/IssueNotification.svelte +++ b/plugins/tracker-resources/src/components/issues/IssueNotification.svelte @@ -33,7 +33,7 @@ status = $statusStore.byId.get(issue.status) } - function handleIssueOpened (): void { + function handleIssueOpened(): void { if (params?.issueUrl) { const url = new URL(params?.issueUrl) const frontUrl = getMetadata(presentation.metadata.FrontUrl) ?? window.location.origin @@ -46,7 +46,7 @@ onRemove() } - function handleCopyUrl (): void { + function handleCopyUrl(): void { if (issue !== undefined) { void copyTextToClipboard(params?.issueUrl) } diff --git a/plugins/tracker-resources/src/components/issues/IssuePreview.svelte b/plugins/tracker-resources/src/components/issues/IssuePreview.svelte index 70798f4f15..98acf6c6ab 100644 --- a/plugins/tracker-resources/src/components/issues/IssuePreview.svelte +++ b/plugins/tracker-resources/src/components/issues/IssuePreview.svelte @@ -52,7 +52,7 @@ let parent: Issue | undefined - async function getParent (attachedTo: Ref | undefined): Promise { + async function getParent(attachedTo: Ref | undefined): Promise { if (attachedTo === undefined || attachedTo === tracker.ids.NoParent) { parent = undefined } else { diff --git a/plugins/tracker-resources/src/components/issues/IssueStatusActivity.svelte b/plugins/tracker-resources/src/components/issues/IssueStatusActivity.svelte index 4316db17f1..b7b27db211 100644 --- a/plugins/tracker-resources/src/components/issues/IssueStatusActivity.svelte +++ b/plugins/tracker-resources/src/components/issues/IssueStatusActivity.svelte @@ -30,7 +30,7 @@ ) let displaySt: WithTime[] = [] - function updateStatus (txes: Tx[], statuses: IdMap, _: number): void { + function updateStatus(txes: Tx[], statuses: IdMap, _: number): void { const result: WithTime[] = [] let current: Ref | undefined diff --git a/plugins/tracker-resources/src/components/issues/KanbanView.svelte b/plugins/tracker-resources/src/components/issues/KanbanView.svelte index e999b92db5..83db1781a5 100644 --- a/plugins/tracker-resources/src/components/issues/KanbanView.svelte +++ b/plugins/tracker-resources/src/components/issues/KanbanView.svelte @@ -119,7 +119,7 @@ $: queryNoLookup = getCategoryQueryNoLookup(resultQuery) - function toIssue (object: any): WithLookup { + function toIssue(object: any): WithLookup { return object as WithLookup } @@ -208,7 +208,7 @@ const queryId = generateId() - function update (): void { + function update(): void { void updateTaskKanbanCategories( client, viewlet, @@ -244,7 +244,7 @@ const fullFilled: Record = {} - function getHeader (_class: Ref>, groupByKey: string): void { + function getHeader(_class: Ref>, groupByKey: string): void { if (groupByKey === noCategory) { headerComponent = undefined } else { @@ -269,7 +269,7 @@ } } - async function shouldShowFooter ( + async function shouldShowFooter( config: (string | BuildModelKey)[], reports: number, estimations: number, diff --git a/plugins/tracker-resources/src/components/issues/Move.svelte b/plugins/tracker-resources/src/components/issues/Move.svelte index 9b67742772..0fd377f06c 100644 --- a/plugins/tracker-resources/src/components/issues/Move.svelte +++ b/plugins/tracker-resources/src/components/issues/Move.svelte @@ -50,7 +50,7 @@ let processing = false - async function createMissingComponent (c: Ref): Promise { + async function createMissingComponent(c: Ref): Promise { const cur = $componentStore.get(c) const components = $componentStore.filter((it) => it.space === targetProject?._id) if ( @@ -144,7 +144,7 @@ let showManageAttributes: boolean = false $: isManageAttributesAvailable = issueToUpdate.size > 0 && docs[0]?.space !== targetProject?._id - function setOriginalAttributes () { + function setOriginalAttributes() { for (const issue of toMove) { const upd = issueToUpdate.get(issue._id) ?? {} upd.createComponent = false @@ -168,7 +168,7 @@ } } - function setReplacementAttributres (currentSpace: Project) { + function setReplacementAttributres(currentSpace: Project) { for (const issue of toMove) { const upd = issueToUpdate.get(issue._id) ?? {} diff --git a/plugins/tracker-resources/src/components/issues/ParentNamesPresenter.svelte b/plugins/tracker-resources/src/components/issues/ParentNamesPresenter.svelte index b894381643..35dbbba896 100644 --- a/plugins/tracker-resources/src/components/issues/ParentNamesPresenter.svelte +++ b/plugins/tracker-resources/src/components/issues/ParentNamesPresenter.svelte @@ -23,7 +23,7 @@ export let maxWidth = '' - function getHref (parentInfo: IssueParentInfo) { + function getHref(parentInfo: IssueParentInfo) { const loc = getCurrentLocation() loc.path[2] = trackerId loc.path[3] = parentInfo.identifier diff --git a/plugins/tracker-resources/src/components/issues/RelationEditor.svelte b/plugins/tracker-resources/src/components/issues/RelationEditor.svelte index fa13f6fb84..43423d884d 100644 --- a/plugins/tracker-resources/src/components/issues/RelationEditor.svelte +++ b/plugins/tracker-resources/src/components/issues/RelationEditor.svelte @@ -10,7 +10,7 @@ export let readonly: boolean = false $: valueGroup = (type === 'isBlocking' ? (blockedBy ?? []) : (value[type] ?? [])).reduce< - Map>, Ref[]> + Map>, Ref[]> >((rv, x) => { if (rv.has(x._class)) { rv.get(x._class)?.push(x._id) diff --git a/plugins/tracker-resources/src/components/issues/RelationEditorPart.svelte b/plugins/tracker-resources/src/components/issues/RelationEditorPart.svelte index 20e12547ae..4d1247e42d 100644 --- a/plugins/tracker-resources/src/components/issues/RelationEditorPart.svelte +++ b/plugins/tracker-resources/src/components/issues/RelationEditorPart.svelte @@ -32,7 +32,7 @@ documents = result }) - async function handleClick (issue: RelatedDocument) { + async function handleClick(issue: RelatedDocument) { if (readonly || disabled) return const prop = type === 'isBlocking' ? 'blockedBy' : type const isBlockingValue = await client.findAll(value._class, { 'blockedBy._id': value._id }) @@ -71,7 +71,7 @@ await update(value, type, docs, label) } - async function handleRedirect (issue: Issue) { + async function handleRedirect(issue: Issue) { if (disabled) return const loc = await issueLinkFragmentProvider(issue) navigate(loc) diff --git a/plugins/tracker-resources/src/components/issues/StatusEditor.svelte b/plugins/tracker-resources/src/components/issues/StatusEditor.svelte index d164656e31..443d1d9cbe 100644 --- a/plugins/tracker-resources/src/components/issues/StatusEditor.svelte +++ b/plugins/tracker-resources/src/components/issues/StatusEditor.svelte @@ -92,7 +92,7 @@ $: statuses = getTaskTypeStates(value.kind, $taskTypeStore, $statusStore.byId) - function getSelectedStatus ( + function getSelectedStatus( statuses: WithLookup[] | undefined, value: ValueType, defaultStatus: Ref | undefined diff --git a/plugins/tracker-resources/src/components/issues/StatusFilterValuePresenter.svelte b/plugins/tracker-resources/src/components/issues/StatusFilterValuePresenter.svelte index 296364fe69..7f37d0ae1f 100644 --- a/plugins/tracker-resources/src/components/issues/StatusFilterValuePresenter.svelte +++ b/plugins/tracker-resources/src/components/issues/StatusFilterValuePresenter.svelte @@ -30,7 +30,7 @@ categories = toIdMap(res) }) - function sort (value: Ref[], store: IdMap, categories: IdMap): IssueStatus[] { + function sort(value: Ref[], store: IdMap, categories: IdMap): IssueStatus[] { const result: IssueStatus[] = [] for (const val of new Set(value)) { const res = store.get(val) diff --git a/plugins/tracker-resources/src/components/issues/StatusSelector.svelte b/plugins/tracker-resources/src/components/issues/StatusSelector.svelte index df13cce3b4..d4ac064e8d 100644 --- a/plugins/tracker-resources/src/components/issues/StatusSelector.svelte +++ b/plugins/tracker-resources/src/components/issues/StatusSelector.svelte @@ -63,7 +63,7 @@ $: statuses = getStatuses($statusStore.byId, $typeStore, type) - function getStatuses ( + function getStatuses( statuses: IdMap, types: IdMap, typeId: Ref | undefined @@ -81,7 +81,7 @@ .filter((p) => p !== undefined) as IssueStatus[] } - function getSelectedStatus ( + function getSelectedStatus( statuses: WithLookup[] | undefined, val: Ref | undefined ): WithLookup | undefined { diff --git a/plugins/tracker-resources/src/components/issues/edit/ControlPanel.svelte b/plugins/tracker-resources/src/components/issues/edit/ControlPanel.svelte index 8bbfad89d2..7a8d60a61d 100644 --- a/plugins/tracker-resources/src/components/issues/edit/ControlPanel.svelte +++ b/plugins/tracker-resources/src/components/issues/edit/ControlPanel.svelte @@ -76,7 +76,7 @@ let keys: KeyedAttribute[] = [] - function updateKeys (_class: Ref>, ignoreKeys: string[]): void { + function updateKeys(_class: Ref>, ignoreKeys: string[]): void { const filtredKeys = getFiltredKeys(hierarchy, _class, ignoreKeys) keys = filtredKeys.filter((key) => !isCollectionAttr(hierarchy, key)) } @@ -91,7 +91,7 @@ const allowedCollections = ['collaborators'] - function getMixinKeys (mixin: Ref>): KeyedAttribute[] { + function getMixinKeys(mixin: Ref>): KeyedAttribute[] { const mixinClass = hierarchy.getClass(mixin) const filtredKeys = getFiltredKeys( hierarchy, diff --git a/plugins/tracker-resources/src/components/issues/edit/EditIssue.svelte b/plugins/tracker-resources/src/components/issues/edit/EditIssue.svelte index ce3d4bfa1d..5d057838ae 100644 --- a/plugins/tracker-resources/src/components/issues/edit/EditIssue.svelte +++ b/plugins/tracker-resources/src/components/issues/edit/EditIssue.svelte @@ -103,7 +103,7 @@ $: read(issueId) - function read (_id?: Ref): void { + function read(_id?: Ref): void { if (_id && lastId && lastId !== _id) { const prev = lastId lastId = _id @@ -139,7 +139,7 @@ $: hasParentIssue = issue?.attachedTo !== tracker.ids.NoParent let saved = false - async function save (): Promise { + async function save(): Promise { if (issue === undefined || !canSave) { return } @@ -152,14 +152,14 @@ } } - function showContextMenu (ev: MouseEvent): void { + function showContextMenu(ev: MouseEvent): void { if (issue !== undefined) { showMenu(ev, { object: issue, excludedActions: [view.action.Open] }) } } const manager = createFocusManager() - export function canClose (): boolean { + export function canClose(): boolean { if (descriptionBox.isFocused()) { return false } @@ -172,7 +172,7 @@ $: descriptionKey = hierarchy.getAttribute(tracker.class.Issue, 'description') - function getEditorFooter ( + function getEditorFooter( _class?: Ref> ): { footer: AnyComponent, props?: Record } | undefined { if (_class === undefined) { @@ -194,7 +194,7 @@ $: projectType = taskType?.parent !== undefined ? $typeStore.get(taskType.parent) : undefined - async function unsetParentIssue (): Promise { + async function unsetParentIssue(): Promise { if (issue === undefined || readonly) return await client.update(issue, { attachedTo: tracker.ids.NoParent }) diff --git a/plugins/tracker-resources/src/components/issues/edit/QueryIssuesList.svelte b/plugins/tracker-resources/src/components/issues/edit/QueryIssuesList.svelte index 2104c7b3fd..fa3b1a41f0 100644 --- a/plugins/tracker-resources/src/components/issues/edit/QueryIssuesList.svelte +++ b/plugins/tracker-resources/src/components/issues/edit/QueryIssuesList.svelte @@ -48,7 +48,7 @@ let viewOptions: ViewOptions | undefined export let focusIndex = -1 - function openNewIssueDialog (): void { + function openNewIssueDialog(): void { showPopup(tracker.component.CreateIssue, { space: object.space, ...createParams, shouldSaveDraft }, 'top') } @@ -93,7 +93,7 @@ } ) - function updateConfiguration (configurationRaw: Viewlet[], preference: ViewletPreference[]): void { + function updateConfiguration(configurationRaw: Viewlet[], preference: ViewletPreference[]): void { const newConfigurations: Record>, Viewlet['config']> = {} for (const v of configurationRaw) { diff --git a/plugins/tracker-resources/src/components/issues/edit/SubIssueList.svelte b/plugins/tracker-resources/src/components/issues/edit/SubIssueList.svelte index 412ca4cf40..5340618c5a 100644 --- a/plugins/tracker-resources/src/components/issues/edit/SubIssueList.svelte +++ b/plugins/tracker-resources/src/components/issues/edit/SubIssueList.svelte @@ -45,7 +45,7 @@ } ) let docs: Doc[] = [] - function select () { + function select() { listProvider.update(docs) listProvider.updateFocus(docs[0]) list?.select(0, undefined) diff --git a/plugins/tracker-resources/src/components/issues/edit/SubIssueSelector.svelte b/plugins/tracker-resources/src/components/issues/edit/SubIssueSelector.svelte index 53a3c22b0b..c54c6d84a0 100644 --- a/plugins/tracker-resources/src/components/issues/edit/SubIssueSelector.svelte +++ b/plugins/tracker-resources/src/components/issues/edit/SubIssueSelector.svelte @@ -45,21 +45,21 @@ let subIssues: WithLookup[] | undefined let subIssuesElement: Element - async function openIssue (target: Issue) { + async function openIssue(target: Issue) { if (target._id !== issue._id) { const loc = await issueLinkFragmentProvider(target) navigate(loc) } } - function openSubIssue (target: Ref) { + function openSubIssue(target: Ref) { const subIssue = subIssues?.find((p) => p._id === target) if (subIssue !== undefined) { openIssue(subIssue) } } - function openParentIssue () { + function openParentIssue() { if (parentIssue) { closeTooltip() openIssue(parentIssue) diff --git a/plugins/tracker-resources/src/components/issues/edit/SubIssuesSelector.svelte b/plugins/tracker-resources/src/components/issues/edit/SubIssuesSelector.svelte index f650fbf08b..e58a486c3a 100644 --- a/plugins/tracker-resources/src/components/issues/edit/SubIssuesSelector.svelte +++ b/plugins/tracker-resources/src/components/issues/edit/SubIssuesSelector.svelte @@ -67,7 +67,7 @@ categories = toIdMap(res) }) - function update (value: WithLookup): void { + function update(value: WithLookup): void { if (value.$lookup?.subIssues !== undefined) { query.unsubscribe() subIssues = value.$lookup.subIssues as Issue[] @@ -96,7 +96,7 @@ } $: hasSubIssues = (subIssues?.length ?? 0) > 0 - function openIssue (target: Ref): void { + function openIssue(target: Ref): void { if (target !== value._id) { showPanel(tracker.component.EditIssue, target, value._class, 'content') } diff --git a/plugins/tracker-resources/src/components/issues/related/RelatedIssuePopup.svelte b/plugins/tracker-resources/src/components/issues/related/RelatedIssuePopup.svelte index cf02b255c2..f6b9ce0d78 100644 --- a/plugins/tracker-resources/src/components/issues/related/RelatedIssuePopup.svelte +++ b/plugins/tracker-resources/src/components/issues/related/RelatedIssuePopup.svelte @@ -102,17 +102,17 @@ $: hasSelected = value.some((v) => v.isSelected) - function openIssue (target: Ref): void { + function openIssue(target: Ref): void { subIssueListProvider(subIssues, target) showPanel(tracker.component.EditIssue, target, tracker.class.Issue, 'content') } - function sendSelect (id: SelectPopupValueType['id']): void { + function sendSelect(id: SelectPopupValueType['id']): void { selected = id openIssue(id as Ref) } - export function onKeydown (key: KeyboardEvent): boolean { + export function onKeydown(key: KeyboardEvent): boolean { if (key.code === 'Tab') { dispatch('close') key.preventDefault() diff --git a/plugins/tracker-resources/src/components/issues/related/RelatedIssueSelector.svelte b/plugins/tracker-resources/src/components/issues/related/RelatedIssueSelector.svelte index 7d12c757fb..f9c6053eba 100644 --- a/plugins/tracker-resources/src/components/issues/related/RelatedIssueSelector.svelte +++ b/plugins/tracker-resources/src/components/issues/related/RelatedIssueSelector.svelte @@ -36,7 +36,7 @@ $: subIssues = sortStatuses(_object?._id !== undefined ? [...($relatedIssues.get(_object?._id) ?? [])] : []) let countComplete: number = 0 - function sortStatuses (statuses: IssueRef[]): { _id: Ref, status: Ref }[] { + function sortStatuses(statuses: IssueRef[]): { _id: Ref, status: Ref }[] { statuses.sort((a, b) => { const aStatus = $statusStore.byId.get(a.status) const bStatus = $statusStore.byId.get(b.status) diff --git a/plugins/tracker-resources/src/components/issues/timereport/EstimationValueEditor.svelte b/plugins/tracker-resources/src/components/issues/timereport/EstimationValueEditor.svelte index 67a126034b..4c2c8e5e9c 100644 --- a/plugins/tracker-resources/src/components/issues/timereport/EstimationValueEditor.svelte +++ b/plugins/tracker-resources/src/components/issues/timereport/EstimationValueEditor.svelte @@ -34,7 +34,7 @@ let shown: boolean = false - function _onchange (ev: Event) { + function _onchange(ev: Event) { const value = (ev.target as HTMLInputElement).valueAsNumber if (Number.isFinite(value)) { onChange(value) diff --git a/plugins/tracker-resources/src/components/issues/timereport/ReportedTimeEditor.svelte b/plugins/tracker-resources/src/components/issues/timereport/ReportedTimeEditor.svelte index a9ed21fcbb..6cff242cb0 100644 --- a/plugins/tracker-resources/src/components/issues/timereport/ReportedTimeEditor.svelte +++ b/plugins/tracker-resources/src/components/issues/timereport/ReportedTimeEditor.svelte @@ -37,7 +37,7 @@ $: defaultTimeReportDay = currentProject?.defaultTimeReportDay - function addTimeReport (event: MouseEvent): void { + function addTimeReport(event: MouseEvent): void { if (readonly) return showPopup( TimeSpendReportPopup, @@ -53,7 +53,7 @@ eventToHTMLElement(event) ) } - function showReports (event: MouseEvent): void { + function showReports(event: MouseEvent): void { if (readonly) return showPopup(ReportsPopup, { issue: object }, eventToHTMLElement(event)) } diff --git a/plugins/tracker-resources/src/components/issues/timereport/ReportsPopup.svelte b/plugins/tracker-resources/src/components/issues/timereport/ReportsPopup.svelte index bc1cba9162..ce58a136e6 100644 --- a/plugins/tracker-resources/src/components/issues/timereport/ReportsPopup.svelte +++ b/plugins/tracker-resources/src/components/issues/timereport/ReportsPopup.svelte @@ -28,7 +28,7 @@ $: defaultTimeReportDay = currentProject?.defaultTimeReportDay - export function canClose (): boolean { + export function canClose(): boolean { return true } const options: FindOptions = { @@ -37,7 +37,7 @@ employee: contact.mixin.Employee } } - function addReport (event: MouseEvent): void { + function addReport(event: MouseEvent): void { showPopup( TimeSpendReportPopup, { diff --git a/plugins/tracker-resources/src/components/issues/timereport/TimePresenter.svelte b/plugins/tracker-resources/src/components/issues/timereport/TimePresenter.svelte index 9364b42829..37d003f55e 100644 --- a/plugins/tracker-resources/src/components/issues/timereport/TimePresenter.svelte +++ b/plugins/tracker-resources/src/components/issues/timereport/TimePresenter.svelte @@ -33,7 +33,7 @@ $: void getLabel(days, hours, minutes, $themeStore.language) - async function getLabel (days: number, hours: number, minutes: number, language: string): Promise { + async function getLabel(days: number, hours: number, minutes: number, language: string): Promise { try { const res: string[] = [] if (days > 0) { diff --git a/plugins/tracker-resources/src/components/issues/timereport/TimeSpendReport.svelte b/plugins/tracker-resources/src/components/issues/timereport/TimeSpendReport.svelte index 1ce87d1d81..7ecd28bf6d 100644 --- a/plugins/tracker-resources/src/components/issues/timereport/TimeSpendReport.svelte +++ b/plugins/tracker-resources/src/components/issues/timereport/TimeSpendReport.svelte @@ -34,7 +34,7 @@ } $: defaultTimeReportDay = currentProject?.defaultTimeReportDay - function editSpendReport (event: MouseEvent): void { + function editSpendReport(event: MouseEvent): void { if (!issue) { return } diff --git a/plugins/tracker-resources/src/components/issues/timereport/TimeSpendReportPopup.svelte b/plugins/tracker-resources/src/components/issues/timereport/TimeSpendReportPopup.svelte index b159d9f75c..af39fed900 100644 --- a/plugins/tracker-resources/src/components/issues/timereport/TimeSpendReportPopup.svelte +++ b/plugins/tracker-resources/src/components/issues/timereport/TimeSpendReportPopup.svelte @@ -45,13 +45,13 @@ let selectedTimeReportDay = getTimeReportDayType(data.date) - export function canClose (): boolean { + export function canClose(): boolean { return true } const client = getClient() - async function create (): Promise { + async function create(): Promise { if (value === undefined) { if (space && issueId) { await client.addCollection( diff --git a/plugins/tracker-resources/src/components/issues/timereport/TimeSpendReportsList.svelte b/plugins/tracker-resources/src/components/issues/timereport/TimeSpendReportsList.svelte index e5542d7e13..674279ab39 100644 --- a/plugins/tracker-resources/src/components/issues/timereport/TimeSpendReportsList.svelte +++ b/plugins/tracker-resources/src/components/issues/timereport/TimeSpendReportsList.svelte @@ -36,7 +36,7 @@ const toProjectId = (ref: Ref) => ref as Ref - function editSpendReport ( + function editSpendReport( event: MouseEvent, value: TimeSpendReport, defaultTimeReportDay: TimeReportDayType | undefined diff --git a/plugins/tracker-resources/src/components/milestones/EditMilestone.svelte b/plugins/tracker-resources/src/components/milestones/EditMilestone.svelte index 55cd7fb56c..15b0959544 100644 --- a/plugins/tracker-resources/src/components/milestones/EditMilestone.svelte +++ b/plugins/tracker-resources/src/components/milestones/EditMilestone.svelte @@ -53,7 +53,7 @@ } await client.update(object, { startDate }) } - async function changeTargetDate (value: number | null | undefined): Promise { + async function changeTargetDate(value: number | null | undefined): Promise { if (value === null || value === undefined) return // Keep the range non-inverted — clamp the start back if it now sits // after the target. diff --git a/plugins/tracker-resources/src/components/milestones/MilestoneBrowser.svelte b/plugins/tracker-resources/src/components/milestones/MilestoneBrowser.svelte index f6acc29a60..7fc5f0f42e 100644 --- a/plugins/tracker-resources/src/components/milestones/MilestoneBrowser.svelte +++ b/plugins/tracker-resources/src/components/milestones/MilestoneBrowser.svelte @@ -40,7 +40,7 @@ let viewOptions: ViewOptions | undefined let searchQuery: DocumentQuery = { ...query } - function updateSearchQuery (search: string): void { + function updateSearchQuery(search: string): void { searchQuery = search === '' ? { ...query } : { ...query, $search: search } } $: if (query) updateSearchQuery(search) diff --git a/plugins/tracker-resources/src/components/milestones/MilestoneFilter.svelte b/plugins/tracker-resources/src/components/milestones/MilestoneFilter.svelte index 2858308224..0f241df6df 100644 --- a/plugins/tracker-resources/src/components/milestones/MilestoneFilter.svelte +++ b/plugins/tracker-resources/src/components/milestones/MilestoneFilter.svelte @@ -50,7 +50,7 @@ let filterUpdateTimeout: any | undefined const client = getClient() - async function getValues (search: string): Promise { + async function getValues(search: string): Promise { if (objectsPromise) { await objectsPromise } @@ -80,11 +80,11 @@ objectsPromise = undefined } - function isSelected (value: Ref | undefined, values: Set | undefined | null>): boolean { + function isSelected(value: Ref | undefined, values: Set | undefined | null>): boolean { return values.has(value) } - function handleFilterToggle (value: Ref | undefined): void { + function handleFilterToggle(value: Ref | undefined): void { if (isSelected(value, selectedValues)) { selectedValues.delete(value) } else { @@ -95,7 +95,7 @@ updateFilter(selectedValues) } - function updateFilter (newValues: Set | null | undefined>) { + function updateFilter(newValues: Set | null | undefined>) { clearTimeout(filterUpdateTimeout) filterUpdateTimeout = setTimeout(() => { @@ -104,13 +104,13 @@ }, FILTER_DEBOUNCE_MS) } - function getStatusItem (status: MilestoneStatus, docs: Milestone[]): Milestone[] { + function getStatusItem(status: MilestoneStatus, docs: Milestone[]): Milestone[] { let vals = docs.filter((p) => p.status === status) vals = sortFilterValues(vals, (v) => isSelected(v._id, selectedValues)) return vals } - function getStatuses (): MilestoneStatus[] { + function getStatuses(): MilestoneStatus[] { const res = Array.from(Object.values(MilestoneStatus).filter((v) => !isNaN(Number(v)))) as MilestoneStatus[] return res } diff --git a/plugins/tracker-resources/src/components/milestones/MilestoneStatusEditor.svelte b/plugins/tracker-resources/src/components/milestones/MilestoneStatusEditor.svelte index 83f2f1b6af..d5f42f7034 100644 --- a/plugins/tracker-resources/src/components/milestones/MilestoneStatusEditor.svelte +++ b/plugins/tracker-resources/src/components/milestones/MilestoneStatusEditor.svelte @@ -43,7 +43,7 @@ const dispatch = createEventDispatcher() const client = getClient() - function handlePopupOpen (event: MouseEvent) { + function handlePopupOpen(event: MouseEvent) { showPopup( SelectPopup, { value: itemsInfo, placeholder: tracker.string.SetStatus }, @@ -52,7 +52,7 @@ ) } - async function changeStatus (newStatus: Milestone['status'] | null | undefined) { + async function changeStatus(newStatus: Milestone['status'] | null | undefined) { if (disabled || newStatus == null || value === newStatus) { return } diff --git a/plugins/tracker-resources/src/components/milestones/NewMilestone.svelte b/plugins/tracker-resources/src/components/milestones/NewMilestone.svelte index a74c93fa50..e0cd43f2cf 100644 --- a/plugins/tracker-resources/src/components/milestones/NewMilestone.svelte +++ b/plugins/tracker-resources/src/components/milestones/NewMilestone.svelte @@ -38,7 +38,7 @@ targetDate: Date.now() + 14 * 24 * 60 * 60 * 1000 } - async function onSave () { + async function onSave() { await client.createDoc(tracker.class.Milestone, space, object) } diff --git a/plugins/tracker-resources/src/components/projects/CreateProject.svelte b/plugins/tracker-resources/src/components/projects/CreateProject.svelte index 3fc689fd3c..0122faaef0 100644 --- a/plugins/tracker-resources/src/components/projects/CreateProject.svelte +++ b/plugins/tracker-resources/src/components/projects/CreateProject.svelte @@ -101,21 +101,21 @@ const dispatch = createEventDispatcher() - function normalizeAutoJoinForRoles (roles: AccountRole[]): AccountRole[] | undefined { + function normalizeAutoJoinForRoles(roles: AccountRole[]): AccountRole[] | undefined { return roles.length > 0 ? [...roles] : undefined } - function autoJoinRolesEqual (a: AccountRole[] | undefined, b: AccountRole[] | undefined): boolean { + function autoJoinRolesEqual(a: AccountRole[] | undefined, b: AccountRole[] | undefined): boolean { return deepEqual([...(a ?? [])].sort(), [...(b ?? [])].sort()) } - function setGuestAutoJoin (enabled: boolean): void { + function setGuestAutoJoin(enabled: boolean): void { autoJoinForRoles = setWorkspaceGuestAutoJoinRoles(autoJoinForRoles, enabled) } $: isNew = project == null - async function handleSave (): Promise { + async function handleSave(): Promise { if (isNew) { await createProject() } else { @@ -125,7 +125,7 @@ let identifier: string = project?.identifier ?? 'TSK' - function getProjectData (): Omit, 'type'> { + function getProjectData(): Omit, 'type'> { return { name, description, @@ -146,7 +146,7 @@ } } - function getRolesAssignment (): RolesAssignment { + function getRolesAssignment(): RolesAssignment { if (project === undefined || typeType?.targetClass === undefined || roles === undefined) { return {} } @@ -160,7 +160,7 @@ }, {}) } - async function updateProject (): Promise { + async function updateProject(): Promise { if (!project || typeType?.targetClass === undefined) { return } @@ -250,7 +250,7 @@ $: setDefaultMembers(typeType) - function setDefaultMembers (typeType: ProjectType | undefined): void { + function setDefaultMembers(typeType: ProjectType | undefined): void { if (typeType === undefined) return if (membersChanged) return if (project !== undefined) return @@ -259,7 +259,7 @@ members = typeType.members } - function findTaskTypes (typeId: Ref): TaskType[] { + function findTaskTypes(typeId: Ref): TaskType[] { return Array.from($taskTypeStore.values()).filter( (it) => it.parent === typeId && it.ofClass === tracker.class.Issue ) @@ -270,7 +270,7 @@ defaultStatus = sts?.[0] } - async function createProject (): Promise { + async function createProject(): Promise { const projectId = generateId() const projectData = getProjectData() if (typeId !== undefined && typeType !== undefined) { @@ -302,7 +302,7 @@ } } - function chooseIcon (ev: MouseEvent): void { + function chooseIcon(ev: MouseEvent): void { const update = (result: any) => { if (result !== undefined && result !== null) { icon = result.icon @@ -313,7 +313,7 @@ showPopup(IconPicker, { icon, color }, 'top', update, update) } - function close (id?: Ref): void { + function close(id?: Ref): void { dispatch('close', id) } @@ -323,7 +323,7 @@ projectsIdentifiers = new Set(res.map(({ identifier }) => identifier)) }) - function handleTypeChange (evt: CustomEvent>): void { + function handleTypeChange(evt: CustomEvent>): void { typeId = evt.detail defaultStatus = undefined } @@ -353,14 +353,14 @@ rolesQuery.unsubscribe() } - function handleOwnersChanged (newOwners: AccountUuid[]): void { + function handleOwnersChanged(newOwners: AccountUuid[]): void { owners = newOwners const newMembersSet = new Set([...members, ...newOwners]) members = Array.from(newMembersSet) } - function handleMembersChanged (newMembers: AccountUuid[]): void { + function handleMembersChanged(newMembers: AccountUuid[]): void { membersChanged = true // If a member was removed we need to remove it from any roles assignments as well const newMembersSet = new Set(newMembers) @@ -375,7 +375,7 @@ members = newMembers } - function handleRoleAssignmentChanged (roleId: Ref, newMembers: AccountUuid[]): void { + function handleRoleAssignmentChanged(roleId: Ref, newMembers: AccountUuid[]): void { if (rolesAssignment === undefined) { rolesAssignment = {} } diff --git a/plugins/tracker-resources/src/components/projects/ProjectSpacePresenter.svelte b/plugins/tracker-resources/src/components/projects/ProjectSpacePresenter.svelte index 17f004068b..4503213abc 100644 --- a/plugins/tracker-resources/src/components/projects/ProjectSpacePresenter.svelte +++ b/plugins/tracker-resources/src/components/projects/ProjectSpacePresenter.svelte @@ -33,7 +33,7 @@ let specials: SpecialNavModel[] = [] - async function updateSpecials (model: SpacesNavModel, space: Project): Promise { + async function updateSpecials(model: SpacesNavModel, space: Project): Promise { const newSpecials: SpecialNavModel[] = [] for (const sp of model.specials ?? []) { let shouldAdd = true diff --git a/plugins/tracker-resources/src/components/templates/CreateIssueTemplate.svelte b/plugins/tracker-resources/src/components/templates/CreateIssueTemplate.svelte index 302ddc50fb..1d1767c190 100644 --- a/plugins/tracker-resources/src/components/templates/CreateIssueTemplate.svelte +++ b/plugins/tracker-resources/src/components/templates/CreateIssueTemplate.svelte @@ -71,15 +71,15 @@ $: canSave = getTitle(object.title ?? '').length > 0 - function getTitle (value: string) { + function getTitle(value: string) { return value.trim() } - export function canClose (): boolean { + export function canClose(): boolean { return !canSave } - async function createIssueTemplate () { + async function createIssueTemplate() { if (!canSave) { return } @@ -120,7 +120,7 @@ object = { ...object, milestone: milestoneId } } - function addTagRef (tag: TagElement): void { + function addTagRef(tag: TagElement): void { labels = [...labels, tag] } diff --git a/plugins/tracker-resources/src/components/templates/DraftIssueChildEditor.svelte b/plugins/tracker-resources/src/components/templates/DraftIssueChildEditor.svelte index 64fc96254a..a491391c49 100644 --- a/plugins/tracker-resources/src/components/templates/DraftIssueChildEditor.svelte +++ b/plugins/tracker-resources/src/components/templates/DraftIssueChildEditor.svelte @@ -62,7 +62,7 @@ let descriptionBox: AttachmentStyledBox - function getIssueDefaults (): IssueDraft { + function getIssueDefaults(): IssueDraft { return { _id: generateId(), title: '', @@ -92,7 +92,7 @@ milestone } - function objectChange (object: IssueDraft, empty: any) { + function objectChange(object: IssueDraft, empty: any) { if (shouldSaveDraft) { draftController.save(object, empty) } @@ -100,25 +100,25 @@ $: objectChange(object, empty) - function resetToDefaults () { + function resetToDefaults() { object = getIssueDefaults() focusIssueTitle?.() } - function getTitle (value: string) { + function getTitle(value: string) { return value.trim() } - export function removeDraft () { + export function removeDraft() { draftController.remove() } - function close () { + function close() { removeDraft() dispatch('close') } - async function createIssue () { + async function createIssue() { if (!canSave) { return } @@ -129,7 +129,7 @@ resetToDefaults() } - function tagAsRef (tag: TagElement): TagReference { + function tagAsRef(tag: TagElement): TagReference { return { _class: tags.class.TagReference, _id: generateId(), @@ -145,7 +145,7 @@ } } - function addTagRef (tag: TagElement): void { + function addTagRef(tag: TagElement): void { object.labels = [...object.labels, tagAsRef(tag)] } diff --git a/plugins/tracker-resources/src/components/templates/DraftIssueChildList.svelte b/plugins/tracker-resources/src/components/templates/DraftIssueChildList.svelte index 6cd2b66b98..12fabae47b 100644 --- a/plugins/tracker-resources/src/components/templates/DraftIssueChildList.svelte +++ b/plugins/tracker-resources/src/components/templates/DraftIssueChildList.svelte @@ -36,7 +36,7 @@ let draggingIndex: number | null = null let hoveringIndex: number | null = null - function openIssue (evt: MouseEvent, target: IssueDraft) { + function openIssue(evt: MouseEvent, target: IssueDraft) { showPopup( DraftIssueChildEditor, { @@ -59,12 +59,12 @@ ) } - function resetDrag () { + function resetDrag() { draggingIndex = null hoveringIndex = null } - function handleDragStart (ev: DragEvent, index: number) { + function handleDragStart(ev: DragEvent, index: number) { if (ev.dataTransfer) { ev.dataTransfer.effectAllowed = 'move' ev.dataTransfer.dropEffect = 'move' @@ -72,7 +72,7 @@ } } - function handleDrop (ev: DragEvent, toIndex: number) { + function handleDrop(ev: DragEvent, toIndex: number) { if (ev.dataTransfer && draggingIndex !== null && toIndex !== draggingIndex) { ev.dataTransfer.dropEffect = 'move' @@ -94,7 +94,7 @@ ) let currentProject: Project | undefined = undefined - function getIssueTemplateId (currentProject: Project | undefined, issue: IssueDraft): string { + function getIssueTemplateId(currentProject: Project | undefined, issue: IssueDraft): string { return currentProject ? `${currentProject.identifier}-${issues.findIndex((it) => it._id === issue._id)}` : `${issues.findIndex((it) => it._id === issue._id)}}` diff --git a/plugins/tracker-resources/src/components/templates/EditIssueTemplate.svelte b/plugins/tracker-resources/src/components/templates/EditIssueTemplate.svelte index 9aac5a5316..be8bfc4b90 100644 --- a/plugins/tracker-resources/src/components/templates/EditIssueTemplate.svelte +++ b/plugins/tracker-resources/src/components/templates/EditIssueTemplate.svelte @@ -50,7 +50,7 @@ const inboxClient = getResource(notification.function.GetInboxNotificationsClient).then((res) => res()) $: read(_id) - function read (_id: Ref): void { + function read(_id: Ref): void { if (lastId !== _id) { const prev = lastId lastId = _id @@ -91,7 +91,7 @@ let saved = false - async function save (): Promise { + async function save(): Promise { if (template === undefined || !canSave) { return } @@ -103,7 +103,7 @@ } } - function showContextMenu (ev: MouseEvent): void { + function showContextMenu(ev: MouseEvent): void { if (template !== undefined) { showMenu(ev, { object: template, excludedActions: [view.action.Open] }) } diff --git a/plugins/tracker-resources/src/components/templates/IssueTemplateChildEditor.svelte b/plugins/tracker-resources/src/components/templates/IssueTemplateChildEditor.svelte index b1405be5d0..b7de24143f 100644 --- a/plugins/tracker-resources/src/components/templates/IssueTemplateChildEditor.svelte +++ b/plugins/tracker-resources/src/components/templates/IssueTemplateChildEditor.svelte @@ -61,7 +61,7 @@ attr: client.getHierarchy().getAttribute(tracker.class.IssueTemplate, 'labels') } - function getIssueDefaults (): IssueTemplateChild { + function getIssueDefaults(): IssueTemplateChild { return { id: generateId(), title: '', @@ -74,25 +74,25 @@ } } - function resetToDefaults (): void { + function resetToDefaults(): void { newIssue = getIssueDefaults() labels = [] focusIssueTitle?.() } - function getTitle (value: string): string { + function getTitle(value: string): string { return value.trim() } - function close (): void { + function close(): void { dispatch('close') } - function onDelete (): void { + function onDelete(): void { dispatch('close', ['delete', newIssue]) } - function createIssue (): void { + function createIssue(): void { if (!canSave) { return } @@ -112,7 +112,7 @@ resetToDefaults() } - function addTagRef (tag: TagElement): void { + function addTagRef(tag: TagElement): void { labels = [...labels, tag] } diff --git a/plugins/tracker-resources/src/components/templates/IssueTemplateChildList.svelte b/plugins/tracker-resources/src/components/templates/IssueTemplateChildList.svelte index e64781aa5b..c0492942a3 100644 --- a/plugins/tracker-resources/src/components/templates/IssueTemplateChildList.svelte +++ b/plugins/tracker-resources/src/components/templates/IssueTemplateChildList.svelte @@ -37,7 +37,7 @@ let dragIndex: number | null = null let hoveringIndex: number | null = null - function openIssue (evt: MouseEvent, target: IssueTemplateChild): void { + function openIssue(evt: MouseEvent, target: IssueTemplateChild): void { showPopup( IssueTemplateChildEditor, { @@ -66,13 +66,13 @@ ) } - function resetDrag (): void { + function resetDrag(): void { dragId = null dragIndex = null hoveringIndex = null } - function handleDragStart (ev: DragEvent, index: number, item: IssueTemplateChild): void { + function handleDragStart(ev: DragEvent, index: number, item: IssueTemplateChild): void { if (ev.dataTransfer != null) { ev.dataTransfer.effectAllowed = 'move' ev.dataTransfer.dropEffect = 'move' @@ -81,7 +81,7 @@ } } - function handleDrop (ev: DragEvent, toIndex: number): void { + function handleDrop(ev: DragEvent, toIndex: number): void { if (ev.dataTransfer != null && dragIndex !== null && toIndex !== dragIndex) { ev.dataTransfer.dropEffect = 'move' @@ -103,7 +103,7 @@ ) let currentProject: Project | undefined = undefined - function getIssueTemplateId (currentProject: Project | undefined, issue: IssueTemplateChild): string { + function getIssueTemplateId(currentProject: Project | undefined, issue: IssueTemplateChild): string { return currentProject !== undefined ? `${currentProject.identifier}-${issues.findIndex((it) => it.id === issue.id)}` : `${issues.findIndex((it) => it.id === issue.id)}}` diff --git a/plugins/tracker-resources/src/components/templates/IssueTemplateChilds.svelte b/plugins/tracker-resources/src/components/templates/IssueTemplateChilds.svelte index 36ad96da1c..587fcec654 100644 --- a/plugins/tracker-resources/src/components/templates/IssueTemplateChilds.svelte +++ b/plugins/tracker-resources/src/components/templates/IssueTemplateChilds.svelte @@ -35,7 +35,7 @@ let isCollapsed = false let isCreating = false - function handleIssueSwap (ev: CustomEvent<{ id: Ref, toIndex: number }>): void { + function handleIssueSwap(ev: CustomEvent<{ id: Ref, toIndex: number }>): void { const { id, toIndex } = ev.detail const index = children.findIndex((p) => p.id === id) if (index !== -1 && index !== toIndex) { diff --git a/plugins/tracker-resources/src/components/templates/IssueTemplatePresenter.svelte b/plugins/tracker-resources/src/components/templates/IssueTemplatePresenter.svelte index 3852f8bec9..840860bc40 100644 --- a/plugins/tracker-resources/src/components/templates/IssueTemplatePresenter.svelte +++ b/plugins/tracker-resources/src/components/templates/IssueTemplatePresenter.svelte @@ -24,7 +24,7 @@ export let shouldShowAvatar: boolean = true export let inline: boolean = false - function handleIssueEditorOpened () { + function handleIssueEditorOpened() { if (disabled) { return } diff --git a/plugins/tracker-resources/src/components/templates/IssueTemplatesView.svelte b/plugins/tracker-resources/src/components/templates/IssueTemplatesView.svelte index 310d09b307..78d5bf31b7 100644 --- a/plugins/tracker-resources/src/components/templates/IssueTemplatesView.svelte +++ b/plugins/tracker-resources/src/components/templates/IssueTemplatesView.svelte @@ -20,7 +20,7 @@ let search = '' let searchQuery: DocumentQuery = { ...query } - function updateSearchQuery (search: string): void { + function updateSearchQuery(search: string): void { searchQuery = search === '' ? { ...query } : { ...query, $search: search } } $: updateSearchQuery(search) diff --git a/plugins/tracker-resources/src/components/templates/TemplateControlPanel.svelte b/plugins/tracker-resources/src/components/templates/TemplateControlPanel.svelte index faf3175312..18dbaaf483 100644 --- a/plugins/tracker-resources/src/components/templates/TemplateControlPanel.svelte +++ b/plugins/tracker-resources/src/components/templates/TemplateControlPanel.svelte @@ -35,7 +35,7 @@ let keys: KeyedAttribute[] = [] - function updateKeys (ignoreKeys: string[]): void { + function updateKeys(ignoreKeys: string[]): void { const filtredKeys = getFiltredKeys(hierarchy, issue._class, ignoreKeys) keys = filtredKeys.filter((key) => !isCollectionAttr(hierarchy, key)) } diff --git a/plugins/tracker-resources/src/index.ts b/plugins/tracker-resources/src/index.ts index 0dc6d9d682..8857c551d3 100644 --- a/plugins/tracker-resources/src/index.ts +++ b/plugins/tracker-resources/src/index.ts @@ -280,7 +280,7 @@ async function deleteIssue (issue: Issue | Issue[]): Promise { const deletingFromTargetIssuePage = objs.some((obj) => obj._id === target?._id) try { - await deleteObjects(getClient(), objs as unknown as Doc[]) + await deleteObjects(getClient(), objs) } catch (err: any) { Analytics.handleError(err) } diff --git a/plugins/tracker-resources/src/utils.ts b/plugins/tracker-resources/src/utils.ts index 74ee44e922..a4a7337185 100644 --- a/plugins/tracker-resources/src/utils.ts +++ b/plugins/tracker-resources/src/utils.ts @@ -132,7 +132,7 @@ export const listIssueKanbanStatusOrder = [ task.statusCategory.Lost ] as const -function getTaskTypesStatusIndex(joinedTaskTypes: TaskType[], status: Ref): number { +function getTaskTypesStatusIndex (joinedTaskTypes: TaskType[], status: Ref): number { for (const taskType of joinedTaskTypes) { const indexx = taskType.statuses.indexOf(status) if (indexx >= 0) { @@ -142,7 +142,7 @@ function getTaskTypesStatusIndex(joinedTaskTypes: TaskType[], status: Ref>, space: Ref | undefined, @@ -224,7 +224,7 @@ export async function issueStatusSort( return value } -export async function issuePrioritySort(client: TxOperations, value: IssuePriority[]): Promise { +export async function issuePrioritySort (client: TxOperations, value: IssuePriority[]): Promise { value.sort((a, b) => { const i1 = defaultPriorities.indexOf(a) const i2 = defaultPriorities.indexOf(b) @@ -234,7 +234,7 @@ export async function issuePrioritySort(client: TxOperations, value: IssuePriori return value } -export async function milestoneSort( +export async function milestoneSort ( client: TxOperations, value: Array> ): Promise>> { @@ -248,7 +248,7 @@ export async function milestoneSort( }) }) } -export async function moveIssuesToAnotherMilestone( +export async function moveIssuesToAnotherMilestone ( client: TxOperations, oldMilestone: Milestone, newMilestone: Milestone | undefined @@ -277,7 +277,7 @@ export async function moveIssuesToAnotherMilestone( } } -export async function canEditIssue(issue?: Issue | WithLookup): Promise { +export async function canEditIssue (issue?: Issue | WithLookup): Promise { const client = getClient() if (issue === undefined) return false @@ -382,7 +382,7 @@ export function getTimeReportDate (type: TimeReportDayType): number { return date.valueOf() } -export function getTimeReportDayType(timestamp: number): TimeReportDayType | undefined { +export function getTimeReportDayType (timestamp: number): TimeReportDayType | undefined { const date = new Date(timestamp) const currentWorkDate = new Date(getTimeReportDate(TimeReportDayType.CurrentWorkDay)) const previousWorkDate = new Date(getTimeReportDate(TimeReportDayType.PreviousWorkDay)) @@ -394,11 +394,11 @@ export function getTimeReportDayType(timestamp: number): TimeReportDayType | und } } -export function subIssueQuery(value: boolean, query: DocumentQuery): DocumentQuery { +export function subIssueQuery (value: boolean, query: DocumentQuery): DocumentQuery { return value ? query : { ...query, attachedTo: tracker.ids.NoParent } } -async function getAllSomething( +async function getAllSomething ( _class: Ref>, query: DocumentQuery | undefined, onUpdate: () => void, @@ -421,7 +421,7 @@ async function getAllSomething( return await promise } -export async function getAllPriority( +export async function getAllPriority ( query: DocumentQuery | undefined, onUpdate: () => void, queryId: Ref @@ -429,7 +429,7 @@ export async function getAllPriority( return defaultPriorities } -export async function getAllComponents( +export async function getAllComponents ( query: DocumentQuery | undefined, onUpdate: () => void, queryId: Ref @@ -437,7 +437,7 @@ export async function getAllComponents( return await getAllSomething(tracker.class.Component, query, onUpdate, queryId) } -export async function getAllMilestones( +export async function getAllMilestones ( query: DocumentQuery | undefined, onUpdate: () => void, queryId: Ref @@ -445,7 +445,7 @@ export async function getAllMilestones( return await getAllSomething(tracker.class.Milestone, query, onUpdate, queryId) } -export function subIssueListProvider(subIssues: Issue[], target: Ref): void { +export function subIssueListProvider (subIssues: Issue[], target: Ref): void { const listProvider = new ListSelectionProvider((offset: 1 | -1 | 0, of?: Doc, dir?: SelectDirection) => { if (dir === 'vertical') { let pos = subIssues.findIndex((p) => p._id === of?._id) @@ -466,7 +466,7 @@ export function subIssueListProvider(subIssues: Issue[], target: Ref): vo } } -export async function getPreviousAssignees(objectId: Ref | undefined): Promise>> { +export async function getPreviousAssignees (objectId: Ref | undefined): Promise>> { if (objectId === undefined) { return [] } @@ -494,7 +494,7 @@ export async function getPreviousAssignees(objectId: Ref | undefined): Pr return Array.from(set) } -async function updateIssuesOnMove( +async function updateIssuesOnMove ( client: TxOperations, applyOps: ApplyOperations, doc: Doc, @@ -549,7 +549,7 @@ async function updateIssuesOnMove( /** * @public */ -export async function moveIssueToSpace( +export async function moveIssueToSpace ( client: TxOperations, docs: Issue[], space: Project, @@ -590,7 +590,7 @@ export async function moveIssueToSpace( * * Will collect all issues to be moved. */ -export async function collectIssues(client: TxOperations, docs: Doc[]): Promise { +export async function collectIssues (client: TxOperations, docs: Doc[]): Promise { const result: Issue[] = [] const hierarchy = client.getHierarchy() for (const doc of docs) { @@ -628,7 +628,7 @@ export async function collectIssues(client: TxOperations, docs: Doc[]): Promise< /** * @public */ -export function issueToAttachedData(issue: Issue): AttachedData { +export function issueToAttachedData (issue: Issue): AttachedData { const { _id, _class, space, ...data } = issue return { ...data } } @@ -644,16 +644,16 @@ export const IssuePriorityColor = { [IssuePriority.Low]: PaletteColorIndexes.Cloud } -export async function getVisibleFilters(filters: KeyFilter[], space?: Ref): Promise { +export async function getVisibleFilters (filters: KeyFilter[], space?: Ref): Promise { // Removes the "Project" filter if a specific space is provided return space === undefined ? filters : filters.filter((f) => f.key !== 'space') } -export function getIssueChatTitle(object: Issue): string { +export function getIssueChatTitle (object: Issue): string { return object.title } -export function getIssueStatusCategories(project: ProjectType): Array> { +export function getIssueStatusCategories (project: ProjectType): Array> { if (project.classic) { return [ task.statusCategory.UnStarted, @@ -685,13 +685,13 @@ export interface ComponentToUpdate { create?: boolean } -export async function getComponentTitle(client: TxOperations, ref: Ref): Promise { +export async function getComponentTitle (client: TxOperations, ref: Ref): Promise { const object = await client.findOne(tracker.class.Component, { _id: ref }) return object?.label ?? '' } -export async function getMilestoneTitle(client: TxOperations, ref: Ref): Promise { +export async function getMilestoneTitle (client: TxOperations, ref: Ref): Promise { const object = await client.findOne(tracker.class.Milestone, { _id: ref }) return object?.label ?? '' diff --git a/pods/authProviders/src/utils.ts b/pods/authProviders/src/utils.ts index 32f86c812c..896da631c1 100644 --- a/pods/authProviders/src/utils.ts +++ b/pods/authProviders/src/utils.ts @@ -87,7 +87,7 @@ export async function handleProviderAuth ( email, first, last, - state.inviteId as any, + state.inviteId, socialKey, signUpDisabled ) diff --git a/pods/media/src/client.ts b/pods/media/src/client.ts index ccd9df02f8..cf1a0dcf43 100644 --- a/pods/media/src/client.ts +++ b/pods/media/src/client.ts @@ -166,7 +166,7 @@ class RestClientAdapter implements Client { private readonly model: ModelDb | undefined ) {} - async domainRequest( + async domainRequest ( domain: OperationDomain, params: DomainParams, options?: DomainRequestOptions @@ -174,7 +174,7 @@ class RestClientAdapter implements Client { return await this.client.domainRequest(domain, params, options) } - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -202,7 +202,7 @@ class RestClientAdapter implements Client { return await this.client.tx(tx) } - async findOne( + async findOne ( _class: Ref>, query: DocumentQuery, options?: FindOptions diff --git a/pods/server/src/__tests__/server.test.ts b/pods/server/src/__tests__/server.test.ts index a508002f91..049f66f7b3 100644 --- a/pods/server/src/__tests__/server.test.ts +++ b/pods/server/src/__tests__/server.test.ts @@ -70,7 +70,7 @@ describe('server', () => { modelDb, context: {} as any, handleBroadcast: async (ctx) => {}, - findAll: async ( + findAll: async ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -177,7 +177,7 @@ describe('server', () => { modelDb, context: {} as any, handleBroadcast: async (ctx) => {}, - findAll: async ( + findAll: async ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, diff --git a/pods/server/src/server_http.ts b/pods/server/src/server_http.ts index 8c0b66bd47..33c5ded0fb 100644 --- a/pods/server/src/server_http.ts +++ b/pods/server/src/server_http.ts @@ -445,7 +445,7 @@ export function startHttpServer ( if (Array.isArray(data)) { sessions.broadcastAll(ctx, ws, data as Tx[]) } else { - sessions.broadcastAll(ctx, ws, [data as unknown as Tx]) + sessions.broadcastAll(ctx, ws, [data]) } res.end() }) @@ -535,7 +535,7 @@ export function startHttpServer ( if (msg instanceof Buffer) { buff = msg } else if (Array.isArray(msg)) { - buff = Buffer.concat(msg as any) + buff = Buffer.concat(msg) } if (buff !== undefined) { doSessionOp( diff --git a/server-plugins/calendar-resources/src/index.ts b/server-plugins/calendar-resources/src/index.ts index 512a420391..1fc94b0901 100644 --- a/server-plugins/calendar-resources/src/index.ts +++ b/server-plugins/calendar-resources/src/index.ts @@ -57,16 +57,16 @@ interface ScheduledNotificationMessage { type TimeMachineMessage = | { - type: 'schedule' - id: string - targetDate: number - topic: string - data: ScheduledNotificationMessage - } + type: 'schedule' + id: string + targetDate: number + topic: string + data: ScheduledNotificationMessage + } | { - type: 'cancel' - id: string - } + type: 'cancel' + id: string + } type TimeMachineScheduleMessage = Extract @@ -294,7 +294,7 @@ async function OnEvent (txes: Tx[], control: TriggerControl): Promise { } else if (ctx._class === core.class.TxUpdateDoc) { result.push(...(await onEventUpdate(ctx as TxUpdateDoc, control))) } else if (ctx._class === core.class.TxRemoveDoc) { - result.push(...(await onRemoveEvent(ctx as TxRemoveDoc, control))) + result.push(...(await onRemoveEvent(ctx, control))) } else if (ctx._class === core.class.TxMixin) { result.push(...(await onEventMixin(ctx as TxMixin, control))) } @@ -499,7 +499,7 @@ async function onEventCreate (ctx: TxCreateDoc, control: TriggerControl): const events = await control.findAll(control.ctx, calendar.class.Event, { eventId: event.eventId }) const access = AccessLevel.Reader for (const part of event.participants) { - const socialIds = await getSocialIds(control, part as Ref) + const socialIds = await getSocialIds(control, part) if (socialIds.length === 0) continue const socialStrings = socialIds.map((si) => si._id) if (socialStrings.includes(event.user ?? event.createdBy ?? event.modifiedBy)) continue diff --git a/server/account-service/src/index.ts b/server/account-service/src/index.ts index d8fafce9d6..c02d79e311 100644 --- a/server/account-service/src/index.ts +++ b/server/account-service/src/index.ts @@ -33,7 +33,7 @@ import { migrateFromOldAccounts } from './migration/migration' import { startWorkspaceMemberUnreadConsumer } from './unread' export * from './migration/utils' -export * from './migration/types' +export type * from './migration/types' const AUTH_TOKEN_COOKIE = 'account-metadata-Token' diff --git a/server/account-service/src/migration/collections/mongo.ts b/server/account-service/src/migration/collections/mongo.ts index c3c4110b9a..a3c419d2d8 100644 --- a/server/account-service/src/migration/collections/mongo.ts +++ b/server/account-service/src/migration/collections/mongo.ts @@ -115,7 +115,7 @@ export class MongoDbCollection> implements DbColle return await this.collection.findOne(query as Filter) } - async insertOne(data: Partial, idKey?: K): Promise { + async insertOne (data: Partial, idKey?: K): Promise { const res = await this.collection.insertOne(data as OptionalUnlessRequiredId) return res.insertedId @@ -179,7 +179,7 @@ export class WorkspaceMongoDbCollection extends MongoDbCollection imp super('workspace', db) } - async insertOne(data: Partial, idKey?: K): Promise { + async insertOne (data: Partial, idKey?: K): Promise { if (data.uuid === undefined) { data.uuid = new UUID().toJSON() as WorkspaceUuid } diff --git a/server/account-service/src/unread.ts b/server/account-service/src/unread.ts index 4837a8ac13..d9f367f606 100644 --- a/server/account-service/src/unread.ts +++ b/server/account-service/src/unread.ts @@ -37,10 +37,10 @@ export const WORKSPACE_MEMBER_UNREAD_GROUP = 'account-service-workspace-member-u export function createWorkspaceMemberUnreadHandler ( db: AccountDB ): ( - ctx: MeasureContext, - msg: ConsumerMessage, - control: ConsumerControl - ) => Promise { + ctx: MeasureContext, + msg: ConsumerMessage, + control: ConsumerControl +) => Promise { return async (ctx, msg, _control) => { const accounts = msg.value?.accounts if (accounts === undefined || accounts.length === 0) return diff --git a/server/account/src/__tests__/operations.test.ts b/server/account/src/__tests__/operations.test.ts index a5a5676b2b..866560219d 100644 --- a/server/account/src/__tests__/operations.test.ts +++ b/server/account/src/__tests__/operations.test.ts @@ -122,7 +122,7 @@ describe('account operations', () => { socialId: { findOne: jest.fn() }, - generatePersonUuid: jest.fn().mockResolvedValue('generated-person-uuid' as PersonUuid) + generatePersonUuid: jest.fn().mockResolvedValue('generated-person-uuid') } as unknown as AccountDB const mockToken = 'test-token' @@ -1133,7 +1133,7 @@ describe('account operations', () => { return undefined }) // Reset the mock for each test - ;(mockDb.generatePersonUuid as jest.Mock).mockResolvedValue('generated-person-uuid' as PersonUuid) + ;(mockDb.generatePersonUuid as jest.Mock).mockResolvedValue('generated-person-uuid') }) test('should create basic access link', async () => { @@ -2064,8 +2064,8 @@ describe('account operations', () => { email: mockEmail, invite: mockInvite, workspace: mockWorkspace - } as any) - jest.spyOn(utils, 'doJoinByInvite').mockResolvedValue(joinResult as any) + }) + jest.spyOn(utils, 'doJoinByInvite').mockResolvedValue(joinResult) ;(mockDb.person.findOne as jest.Mock).mockResolvedValue(mockPerson) const result = await confirm(mockCtx, mockDb, mockBranding, mockToken) @@ -2544,7 +2544,7 @@ describe('account operations', () => { email: mockEmail, invite: mockInvite, workspace: mockWorkspace - } as any) + }) jest.spyOn(utils, 'signUpByEmail').mockResolvedValue({ account: mockAccountId, socialId: mockSocialId._id @@ -2606,13 +2606,13 @@ describe('account operations', () => { email: mockEmail, invite: mockInvite, workspace: mockWorkspace - } as any) + }) jest.spyOn(utils, 'signUpByEmail').mockResolvedValue({ account: mockAccountId, socialId: mockSocialId._id }) jest.spyOn(utils, 'sendEmailConfirmation').mockResolvedValue() - jest.spyOn(utils, 'doJoinByInvite').mockResolvedValue(joinResult as any) + jest.spyOn(utils, 'doJoinByInvite').mockResolvedValue(joinResult) ;(getMetadata as jest.Mock).mockReturnValue('') // No mail service configured const result = await signUpJoin(mockCtx, mockDb, mockBranding, mockToken, baseParams) @@ -3166,7 +3166,7 @@ describe('account operations', () => { const mockEmail = 'user@example.com' ;(mockDb.socialId.findOne as jest.Mock).mockResolvedValue({ value: mockEmail }) - jest.spyOn(utils, 'getWorkspaceInvite').mockResolvedValue(mockInvite as any) + jest.spyOn(utils, 'getWorkspaceInvite').mockResolvedValue(mockInvite) jest.spyOn(utils, 'checkInvite').mockResolvedValue(mockInvite.workspaceUuid) jest.spyOn(utils, 'getWorkspaceById').mockResolvedValue(mockWorkspace as any) ;(mockDb.getWorkspaceRole as jest.Mock).mockResolvedValue(AccountRole.User) @@ -3193,7 +3193,7 @@ describe('account operations', () => { const mockEmail = 'user@example.com' ;(mockDb.socialId.findOne as jest.Mock).mockResolvedValue({ value: mockEmail }) - jest.spyOn(utils, 'getWorkspaceInvite').mockResolvedValue(mockInvite as any) + jest.spyOn(utils, 'getWorkspaceInvite').mockResolvedValue(mockInvite) jest.spyOn(utils, 'checkInvite').mockResolvedValue(mockInvite.workspaceUuid) jest.spyOn(utils, 'getWorkspaceById').mockResolvedValue(mockWorkspace as any) ;(mockDb.getWorkspaceRole as jest.Mock).mockResolvedValue(null) @@ -3534,7 +3534,7 @@ describe('merge specified persons', () => { await expect( mergeSpecifiedPersons(mockCtx, mockDb, mockBranding, 'test-token', { - primaryPerson: readOnlyGuestAccountUuid as PersonUuid, + primaryPerson: readOnlyGuestAccountUuid, secondaryPerson }) ).rejects.toThrow(PlatformError) diff --git a/server/account/src/__tests__/utils.test.ts b/server/account/src/__tests__/utils.test.ts index 0d1243f02c..0bd1a0561b 100644 --- a/server/account/src/__tests__/utils.test.ts +++ b/server/account/src/__tests__/utils.test.ts @@ -70,7 +70,6 @@ import { isPasswordChangedSince, setWorkspaceMemberUnread } from '../utils' -// eslint-disable-next-line import/no-named-default import platform, { getMetadata, PlatformError, Severity, Status } from '@hcengineering/platform' import { decodeTokenVerbose, generateToken, TokenError } from '@hcengineering/server-token' import { randomBytes } from 'crypto' @@ -1959,7 +1958,7 @@ describe('account utils', () => { const mockSocialId = { key: 'email:test@example.com' as PersonId } ;(mockDb.socialId.findOne as jest.Mock).mockResolvedValue(mockSocialId) - const result = await getSocialIdByKey(mockDb, 'email:test@example.com' as PersonId) + const result = await getSocialIdByKey(mockDb, 'email:test@example.com') expect(result).toEqual(mockSocialId) expect(mockDb.socialId.findOne).toHaveBeenCalledWith({ key: 'email:test@example.com' }) }) @@ -1967,7 +1966,7 @@ describe('account utils', () => { test('should return null when social id not found', async () => { ;(mockDb.socialId.findOne as jest.Mock).mockResolvedValue(null) - const result = await getSocialIdByKey(mockDb, 'nonexistent' as PersonId) + const result = await getSocialIdByKey(mockDb, 'nonexistent') expect(result).toBeNull() }) }) diff --git a/server/account/src/collections/mongo.ts b/server/account/src/collections/mongo.ts index be150168f0..d70588b22e 100644 --- a/server/account/src/collections/mongo.ts +++ b/server/account/src/collections/mongo.ts @@ -78,7 +78,8 @@ function getFilteredQuery (query: Query): Query { } export class MongoDbCollection, K extends keyof T | undefined = undefined> -implements DbCollection { + implements DbCollection +{ constructor ( readonly name: string, readonly db: Db, diff --git a/server/account/src/collections/postgres/postgres.ts b/server/account/src/collections/postgres/postgres.ts index 8819b3184a..4e06533f89 100644 --- a/server/account/src/collections/postgres/postgres.ts +++ b/server/account/src/collections/postgres/postgres.ts @@ -115,7 +115,8 @@ export interface PostgresDbCollectionOptions, K ex } export class PostgresDbCollection, K extends keyof T | undefined = undefined> -implements DbCollection { + implements DbCollection +{ constructor ( readonly name: string, readonly client: Sql, @@ -425,7 +426,8 @@ implements DbCollection { export class AccountPostgresDbCollection extends PostgresDbCollection - implements DbCollection { + implements DbCollection +{ private readonly passwordKeys = ['hash', 'salt'] constructor ( @@ -650,8 +652,8 @@ export class PostgresAccountDB implements AccountDB { SET last_processed_at = NOW() WHERE identifier = ${name} AND applied_at IS NULL `.catch((err) => { - console.error(`Failed to update last_processed_at for migration ${name}:`, err) - }) + console.error(`Failed to update last_processed_at for migration ${name}:`, err) + }) }, 5000) await client.unsafe(ddl) diff --git a/server/account/src/operations.ts b/server/account/src/operations.ts index 494459b229..ba3c04d9aa 100644 --- a/server/account/src/operations.ts +++ b/server/account/src/operations.ts @@ -285,10 +285,10 @@ export async function login ( account: existingAccount.uuid, token: isConfirmed ? generateToken( - existingAccount.tfaSecret != null ? NIL_UUID : existingAccount.uuid, - undefined, - existingAccount.tfaSecret != null ? { ...extraToken, tfaAccount: existingAccount.uuid } : extraToken - ) + existingAccount.tfaSecret != null ? NIL_UUID : existingAccount.uuid, + undefined, + existingAccount.tfaSecret != null ? { ...extraToken, tfaAccount: existingAccount.uuid } : extraToken + ) : undefined, name: getPersonName(person), socialId: emailSocialId._id, @@ -583,10 +583,10 @@ export async function validateOtp ( const _token = isConfirmed ? generateToken( - targetAccount?.tfaSecret != null ? NIL_UUID : emailSocialId.personUuid, - undefined, - targetAccount?.tfaSecret != null ? { ...extraToken, tfaAccount: emailSocialId.personUuid } : extraToken - ) + targetAccount?.tfaSecret != null ? NIL_UUID : emailSocialId.personUuid, + undefined, + targetAccount?.tfaSecret != null ? { ...extraToken, tfaAccount: emailSocialId.personUuid } : extraToken + ) : undefined return { @@ -740,11 +740,11 @@ export async function createInvite ( // TODO: Temporary solution to prevent spam using sendInvite const invitesSend = new Map< -string, -{ - lastSend: number - totalSend: number -} + string, + { + lastSend: number + totalSend: number + } >() export async function sendInvite ( @@ -2370,23 +2370,23 @@ export async function getLoginWithWorkspaceInfo ( isSystem || isDocGuest ? [] : userWorkspaces.map((it, idx) => [ - it.uuid, - { - url: it.url, - dataId: it.dataId, - mode: it.status.mode, - endpoint: getWorkspaceEndpoint(info, it.uuid, it.region), - role: roles.get(it.uuid) ?? null, - version: { - versionMajor: it.status.versionMajor, - versionMinor: it.status.versionMinor, - versionPatch: it.status.versionPatch - }, - progress: it.status.processingProgress, - branding: it.branding, - passwordAgingRule: it.passwordAgingRule - } - ]) + it.uuid, + { + url: it.url, + dataId: it.dataId, + mode: it.status.mode, + endpoint: getWorkspaceEndpoint(info, it.uuid, it.region), + role: roles.get(it.uuid) ?? null, + version: { + versionMajor: it.status.versionMajor, + versionMinor: it.status.versionMinor, + versionPatch: it.status.versionPatch + }, + progress: it.status.processingProgress, + branding: it.branding, + passwordAgingRule: it.passwordAgingRule + } + ]) ), socialIds } diff --git a/server/account/src/serviceOperations.ts b/server/account/src/serviceOperations.ts index f13af03345..f2c201212b 100644 --- a/server/account/src/serviceOperations.ts +++ b/server/account/src/serviceOperations.ts @@ -240,7 +240,7 @@ export async function updateWorkspaceRoleBySocialKey ( const { extra } = decodeTokenVerbose(ctx, token) verifyAllowedServices(['workspace', 'tool'], extra) - const socialId = await getSocialIdByKey(db, socialKey.toLowerCase() as PersonId) + const socialId = await getSocialIdByKey(db, socialKey.toLowerCase()) if (socialId == null) { throw new PlatformError(new Status(Severity.ERROR, platform.status.AccountNotFound, {})) } diff --git a/server/account/src/utils.ts b/server/account/src/utils.ts index 6020df3aab..f77d7de207 100644 --- a/server/account/src/utils.ts +++ b/server/account/src/utils.ts @@ -393,7 +393,7 @@ export function getAllTransactors (kind: EndpointKind): string[] { export function hashWithSalt (password: string, salt: Buffer): Buffer { // remove "as any" when types in node will be fixed - return pbkdf2Sync(password, salt as any, 1000, 32, 'sha256') + return pbkdf2Sync(password, salt, 1000, 32, 'sha256') } export function verifyPassword (password: string, hash?: Buffer | null, salt?: Buffer | null): boolean { @@ -402,7 +402,7 @@ export function verifyPassword (password: string, hash?: Buffer | null, salt?: B } // remove "as any" when types in node will be fixed - return Buffer.compare(hash as any, hashWithSalt(password, salt) as any) === 0 + return Buffer.compare(hash, hashWithSalt(password, salt)) === 0 } // 0 or negative value means no limit @@ -945,15 +945,15 @@ export async function updateAllowReadOnlyGuests ( return undefined } - let guestPerson = await db.person.findOne({ uuid: readOnlyGuestAccountUuid as PersonUuid }) + let guestPerson = await db.person.findOne({ uuid: readOnlyGuestAccountUuid }) if (guestPerson == null) { await db.person.insertOne({ - uuid: readOnlyGuestAccountUuid as PersonUuid, + uuid: readOnlyGuestAccountUuid, firstName: 'Anonymous', lastName: 'Guest' }) - await createAccount(db, readOnlyGuestAccountUuid as PersonUuid, true) - guestPerson = await db.person.findOne({ uuid: readOnlyGuestAccountUuid as PersonUuid }) + await createAccount(db, readOnlyGuestAccountUuid, true) + guestPerson = await db.person.findOne({ uuid: readOnlyGuestAccountUuid }) } const roleInWorkspace = await db.getWorkspaceRole(readOnlyGuestAccountUuid, workspace) if (roleInWorkspace == null) { @@ -965,7 +965,7 @@ export async function updateAllowReadOnlyGuests ( throw new PlatformError(new Status(Severity.ERROR, platform.status.InternalServerError, {})) } const guestSocialIds = await db.socialId.find({ - personUuid: readOnlyGuestAccountUuid as PersonUuid, + personUuid: readOnlyGuestAccountUuid, verifiedOn: { $gt: 0 } }) diff --git a/server/backup/src/backup.ts b/server/backup/src/backup.ts index 59542f2cd4..66c2080be0 100644 --- a/server/backup/src/backup.ts +++ b/server/backup/src/backup.ts @@ -399,34 +399,34 @@ export async function backup ( st = Date.now() } const serverDocHash = doTrimHash(hash) as string - const currentHash = doTrimHash(digest.get(id as Ref) ?? oldHash.get(id as Ref)) + const currentHash = doTrimHash(digest.get(id) ?? oldHash.get(id as Ref)) if (currentHash !== undefined) { - const oldD = digest.get(id as Ref) - if (digest.delete(id as Ref)) { + const oldD = digest.get(id) + if (digest.delete(id)) { if (oldD !== undefined) { same.set(id as Ref, oldD) } oldHash.set(id as Ref, currentHash) } if (currentHash !== serverDocHash) { - if (changes.updated.has(id as Ref)) { + if (changes.updated.has(id)) { removeFromNeedRetrieve(needRetrieve, id as Ref) } - changes.updated.set(id as Ref, serverDocHash) + changes.updated.set(id, serverDocHash) needRetrieve.set(id as Ref, { size, contentType, hash }) changed++ - } else if (changes.updated.has(id as Ref)) { + } else if (changes.updated.has(id)) { // We have same - changes.updated.delete(id as Ref) + changes.updated.delete(id) removeFromNeedRetrieve(needRetrieve, id as Ref) processed -= 1 } } else { - if (domain === DOMAIN_BLOB && changes.added.has(id as Ref)) { + if (domain === DOMAIN_BLOB && changes.added.has(id)) { // We need to clean old need retrieve in case of duplicates. removeFromNeedRetrieve(needRetrieve, id as Ref) } - changes.added.set(id as Ref, serverDocHash) + changes.added.set(id, serverDocHash) needRetrieve.set(id as Ref, { size, contentType, hash }) changed++ } @@ -838,7 +838,7 @@ export async function backup ( } }) - const finalBuffer = Buffer.concat(buffers as any) + const finalBuffer = Buffer.concat(buffers) if (finalBuffer.length !== blob.size) { ctx.error('download blob size mismatch', { _id: blob._id, diff --git a/server/backup/src/restore.ts b/server/backup/src/restore.ts index 7a8d96f67d..824d3248b6 100644 --- a/server/backup/src/restore.ts +++ b/server/backup/src/restore.ts @@ -218,10 +218,10 @@ export async function restore ( opt.recheck === true // If recheck we check all documents. ? Array.from(changeset.entries()) : Array.from(changeset.entries()).filter( - ([it]) => - !serverChangeset.has(it) || + ([it]) => + !serverChangeset.has(it) || (serverChangeset.has(it) && doTrimHash(serverChangeset.get(it)) !== doTrimHash(changeset.get(it))) - ) + ) ) const docsToRemove = Array.from(serverChangeset.keys()).filter((it) => !changeset.has(it)) @@ -370,7 +370,7 @@ export async function restore ( chunks.push(chunk) }) stream.on('end', () => { - const bf = Buffer.concat(chunks as any) + const bf = Buffer.concat(chunks) const d = blobs.get(name) if (d === undefined) { blobs.set(name, { doc: undefined, buffer: bf }) @@ -395,7 +395,7 @@ export async function restore ( chunks.push(chunk) }) stream.on('end', () => { - const bf = Buffer.concat(chunks as any) + const bf = Buffer.concat(chunks) let doc: Doc try { doc = JSON.parse(bf.toString()) as Doc @@ -531,7 +531,7 @@ export async function restore ( }) stream.on('end', () => { try { - const obj = JSON.parse(Buffer.concat(chunks as any).toString()) + const obj = JSON.parse(Buffer.concat(chunks).toString()) processed.add(objKey) collectedObjects.push(obj) } catch (err) { diff --git a/server/backup/src/service.ts b/server/backup/src/service.ts index 70f5ca659c..4c686c3baf 100644 --- a/server/backup/src/service.ts +++ b/server/backup/src/service.ts @@ -212,11 +212,11 @@ class BackupWorker { } failedWorkspaces = new Map< - WorkspaceUuid, - { - info: WorkspaceInfoWithStatus - counter: number - } + WorkspaceUuid, + { + info: WorkspaceInfoWithStatus + counter: number + } >() processed = 0 diff --git a/server/backup/src/storage.ts b/server/backup/src/storage.ts index 4dd706d1a5..da58527dd7 100644 --- a/server/backup/src/storage.ts +++ b/server/backup/src/storage.ts @@ -99,7 +99,7 @@ class AdapterStorage implements BackupStorage { async loadFile (name: string): Promise { const data = await this.client.read(this.ctx, this.wsIds, join(this.root, name)) - return Buffer.concat(data as any) + return Buffer.concat(data) } async write (name: string): Promise { diff --git a/server/backup/src/utils.ts b/server/backup/src/utils.ts index 149c5136cc..96b8adc453 100644 --- a/server/backup/src/utils.ts +++ b/server/backup/src/utils.ts @@ -22,7 +22,6 @@ import core, { MeasureContext, MeasureMetricsContext, Ref, - type Space, type Blob } from '@hcengineering/core' import { @@ -295,7 +294,7 @@ export async function backupFind ( chunks.push(chunk) }) stream.on('end', () => { - const bf = Buffer.concat(chunks as any) + const bf = Buffer.concat(chunks) console.log('>>>>>>>>>>>') console.log(JSON.stringify(JSON.parse(bf.toString()), undefined, 2)) console.log('>>>>>>>>>>>') @@ -653,13 +652,13 @@ export async function compactBackup ( const name = headers.name ?? '' processed++ // We found blob data - if (requiredDocs.has(name as Ref)) { + if (requiredDocs.has(name)) { const chunks: Buffer[] = [] stream.on('data', (chunk) => { chunks.push(chunk) }) stream.on('end', () => { - const bf = Buffer.concat(chunks as any) + const bf = Buffer.concat(chunks) const d = blobs.get(name) if (d === undefined) { blobs.set(name, { doc: undefined, buffer: bf }) @@ -683,17 +682,14 @@ export async function compactBackup ( }) } }) - } else if ( - name.endsWith('.json') && - requiredDocs.has(name.substring(0, name.length - 5) as Ref) - ) { + } else if (name.endsWith('.json') && requiredDocs.has(name.substring(0, name.length - 5))) { const chunks: Buffer[] = [] const bname = name.substring(0, name.length - 5) stream.on('data', (chunk) => { chunks.push(chunk) }) stream.on('end', () => { - const bf = Buffer.concat(chunks as any) + const bf = Buffer.concat(chunks) let doc: Doc try { doc = JSON.parse(bf.toString()) as Doc @@ -1005,13 +1001,13 @@ export async function loadDigest ( gunzipSync(new Uint8Array(await storage.loadFile(d.snapshot))).toString() ) for (const [k, v] of Object.entries(dChanges.added)) { - result.set(k as Ref, v) + result.set(k, v) } for (const [k, v] of Object.entries(dChanges.updated)) { - result.set(k as Ref, v) + result.set(k, v) } for (const d of dChanges.removed) { - result.delete(d as Ref>) + result.delete(d) } } catch (err: any) { ctx.warn('failed to load digest', { snapshot: d.snapshot, ...(msg ?? {}) }) @@ -1026,20 +1022,20 @@ export async function loadDigest ( const added = dataBlob.splice(0, addedCount) for (const it of added) { const [k, v] = it.split(';') - result.set(k as Ref, v) + result.set(k, v) } const updatedCount = parseInt(dataBlob.shift() ?? '0') const updated = dataBlob.splice(0, updatedCount) for (const it of updated) { const [k, v] = it.split(';') - result.set(k as Ref, v) + result.set(k, v) } const removedCount = parseInt(dataBlob.shift() ?? '0') const removed = dataBlob.splice(0, removedCount) for (const k of removed) { - result.delete(k as Ref) + result.delete(k) } } catch (err: any) { ctx.warn('digest is broken', { domain, err: err.message, snapshot, ...(msg ?? {}) }) @@ -1094,7 +1090,7 @@ export async function verifyDigest ( }) stream.on('end', () => { try { - const bf = Buffer.concat(chunks as any) + const bf = Buffer.concat(chunks) const doc = JSON.parse(bf.toString()) as Doc if (doc._class === core.class.Blob || doc._class === 'core:class:BlobData') { const data = migradeBlobData(doc as Blob, '') @@ -1201,7 +1197,7 @@ export async function updateDigest ( for (const it of added) { const [k, v] = it.split(';') if (validDocs.has(k as any)) { - changes.added.set(k as Ref, v) + changes.added.set(k, v) } else { lmodified = true } @@ -1212,7 +1208,7 @@ export async function updateDigest ( for (const it of updated) { const [k, v] = it.split(';') if (validDocs.has(k as any)) { - changes.updated.set(k as Ref, v) + changes.updated.set(k, v) } else { lmodified = true } @@ -1220,7 +1216,7 @@ export async function updateDigest ( const removedCount = parseInt(dataBlob.shift() ?? '0') const removed = dataBlob.splice(0, removedCount) - changes.removed = removed as Ref[] + changes.removed = removed if (addedCount === 0 && removedCount === 0 && updatedCount === 0) { // Empty digest, need to clean digestToRemove.add(snapshot) @@ -1334,7 +1330,7 @@ export async function verifyDocsFromSnapshot ( chunks.push(chunk) }) stream.on('end', () => { - const bf = Buffer.concat(chunks as any) + const bf = Buffer.concat(chunks) let doc: Doc try { doc = JSON.parse(bf.toString()) as Doc diff --git a/server/collaborator/src/rpc/index.ts b/server/collaborator/src/rpc/index.ts index d034bc4896..f6ae7c3024 100644 --- a/server/collaborator/src/rpc/index.ts +++ b/server/collaborator/src/rpc/index.ts @@ -14,4 +14,4 @@ // export * from './methods' -export * from './rpc' +export type * from './rpc' diff --git a/server/server-pipeline/src/blobStorage.ts b/server/server-pipeline/src/blobStorage.ts index efbb09b1df..e72da2a400 100644 --- a/server/server-pipeline/src/blobStorage.ts +++ b/server/server-pipeline/src/blobStorage.ts @@ -51,7 +51,7 @@ class StorageBlobAdapter implements DbAdapter { readonly ctx: MeasureContext ) {} - async traverse( + async traverse ( domain: Domain, query: DocumentQuery, options?: Pick, 'sort' | 'limit' | 'projection'> @@ -65,17 +65,17 @@ class StorageBlobAdapter implements DbAdapter { } init?: - | (( - ctx: MeasureContext, - contextVars: Record, - domains?: string[], - excludeDomains?: string[] - ) => Promise) - | undefined + | (( + ctx: MeasureContext, + contextVars: Record, + domains?: string[], + excludeDomains?: string[] + ) => Promise) + | undefined on?: ((handler: DbAdapterHandler) => void) | undefined - async rawFindAll(domain: Domain, query: DocumentQuery, options?: FindOptions): Promise { + async rawFindAll (domain: Domain, query: DocumentQuery, options?: FindOptions): Promise { return [] } @@ -86,15 +86,15 @@ class StorageBlobAdapter implements DbAdapter { } } - async rawUpdate( + async rawUpdate ( domain: Domain, query: DocumentQuery, operations: DocumentUpdate ): Promise {} - async rawDeleteMany(domain: Domain, query: DocumentQuery): Promise {} + async rawDeleteMany (domain: Domain, query: DocumentQuery): Promise {} - async findAll( + async findAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -103,7 +103,7 @@ class StorageBlobAdapter implements DbAdapter { return toFindResult([]) } - async groupBy(ctx: MeasureContext, domain: Domain, field: string): Promise> { + async groupBy (ctx: MeasureContext, domain: Domain, field: string): Promise> { return new Map() } diff --git a/services/datalake/pod-datalake/src/datalake/db.ts b/services/datalake/pod-datalake/src/datalake/db.ts index 683d6de101..91e0f0c73e 100644 --- a/services/datalake/pod-datalake/src/datalake/db.ts +++ b/services/datalake/pod-datalake/src/datalake/db.ts @@ -132,7 +132,7 @@ export class PostgresDB implements BlobDB { return db } - async execute)[]>(query: string, params?: any[]): Promise { + async execute)[]> (query: string, params?: any[]): Promise { query = params !== undefined && params.length > 0 ? injectVars(query, params) : query return await this.sql.unsafe(query) } diff --git a/services/datalake/pod-datalake/src/datalake/index.ts b/services/datalake/pod-datalake/src/datalake/index.ts index ea762b80ad..ba6d8d5944 100644 --- a/services/datalake/pod-datalake/src/datalake/index.ts +++ b/services/datalake/pod-datalake/src/datalake/index.ts @@ -15,5 +15,5 @@ export * from './cache' export * from './datalake' -export * from './types' +export type * from './types' export * from './utils' diff --git a/services/datalake/pod-datalake/src/s3/index.ts b/services/datalake/pod-datalake/src/s3/index.ts index 93babf74e2..7dd85cdf02 100644 --- a/services/datalake/pod-datalake/src/s3/index.ts +++ b/services/datalake/pod-datalake/src/s3/index.ts @@ -15,4 +15,4 @@ export * from './bucket' export * from './client' -export * from './types' +export type * from './types' diff --git a/services/datalake/pod-datalake/src/server.ts b/services/datalake/pod-datalake/src/server.ts index 3a3826fd41..d02a2dc7d2 100644 --- a/services/datalake/pod-datalake/src/server.ts +++ b/services/datalake/pod-datalake/src/server.ts @@ -169,10 +169,10 @@ export async function createServer ( const wrapRequest = (ctx: MeasureContext, name: string, fn: AsyncRequestHandler) => - (req: RequestWithAuth, res: Response, next: NextFunction) => { + (req: RequestWithAuth, res: Response, next: NextFunction) => { // eslint-disable-next-line @typescript-eslint/no-floating-promises - handleRequest(ctx, name, datalake, tempDir, fn, req, res, next) - } + handleRequest(ctx, name, datalake, tempDir, fn, req, res, next) + } app.use(morgan('short', { stream: new LogStream() })) diff --git a/services/export/pod-export/src/__tests__/data-mapper.test.ts b/services/export/pod-export/src/__tests__/data-mapper.test.ts index b3ce874c1a..b9ccc6feb5 100644 --- a/services/export/pod-export/src/__tests__/data-mapper.test.ts +++ b/services/export/pod-export/src/__tests__/data-mapper.test.ts @@ -58,7 +58,7 @@ function createMockTxOperations (existingDocs: Array> = []): } return { - findAll: jest.fn(async (classRef: Ref>, query: any, options?: any): Promise => { + findAll: jest.fn(async (classRef: Ref>, query: any, options?: any): Promise => { const results: T[] = [] for (const doc of docsMap.values()) { if (doc._class !== classRef) continue @@ -119,7 +119,7 @@ function createMockTxOperations (existingDocs: Array> = []): } return results }), - findOne: jest.fn(async function ( + findOne: jest.fn(async function ( this: any, classRef: Ref>, query: any, diff --git a/services/export/pod-export/src/__tests__/product-version-handler.test.ts b/services/export/pod-export/src/__tests__/product-version-handler.test.ts index ac5e1703ab..93c54353ab 100644 --- a/services/export/pod-export/src/__tests__/product-version-handler.test.ts +++ b/services/export/pod-export/src/__tests__/product-version-handler.test.ts @@ -88,7 +88,7 @@ function makeTargetClient (existing: ProductVersion[] = []): { const created: ProductVersion[] = [] const client = { - findOne: jest.fn(async (classRef: Ref>, query: any): Promise => { + findOne: jest.fn(async (classRef: Ref>, query: any): Promise => { for (const d of docs) { if (d._class !== classRef) continue let ok = true @@ -144,9 +144,9 @@ function makeHandlerCtx ( targetClient: TxOperations, spaceMap: Record> ): { - ctx: CustomExportHandlerContext - spaceExporter: { getOrCreateTargetSpace: jest.Mock } - } { + ctx: CustomExportHandlerContext + spaceExporter: { getOrCreateTargetSpace: jest.Mock } +} { const spaceExporter = { getOrCreateTargetSpace: jest.fn(async (sourceSpaceId: Ref) => { const target = spaceMap[sourceSpaceId as unknown as string] diff --git a/services/export/pod-export/src/__tests__/relation-exporter.test.ts b/services/export/pod-export/src/__tests__/relation-exporter.test.ts index fa2e8ed339..e748bdb692 100644 --- a/services/export/pod-export/src/__tests__/relation-exporter.test.ts +++ b/services/export/pod-export/src/__tests__/relation-exporter.test.ts @@ -67,7 +67,7 @@ function lowLevelForDocs (...docs: Doc[]): LowLevelStorage { byDomain.set(domain, list) } return { - rawFindAll: jest.fn(async (_domain: string, query: any): Promise => { + rawFindAll: jest.fn(async (_domain: string, query: any): Promise => { const domainDocs = byDomain.get(_domain) ?? [] return domainDocs.filter((d) => { if (query._id !== undefined && d._id !== query._id) return false diff --git a/services/export/pod-export/src/__tests__/workspace-exporter.test.ts b/services/export/pod-export/src/__tests__/workspace-exporter.test.ts index 7873797622..5614477cb9 100644 --- a/services/export/pod-export/src/__tests__/workspace-exporter.test.ts +++ b/services/export/pod-export/src/__tests__/workspace-exporter.test.ts @@ -114,7 +114,7 @@ function createMockHierarchy (config: { function createMockLowLevelStorage (documents: Map): LowLevelStorage { return { - rawFindAll: jest.fn(async (domain: string, query: any): Promise => { + rawFindAll: jest.fn(async (domain: string, query: any): Promise => { const allDocs = documents.get(domain) ?? [] return allDocs.filter((doc) => { @@ -155,7 +155,7 @@ function createMockLowLevelStorage (documents: Map): LowLevelStor return true }) as T[] }), - traverse: jest.fn(async (domain: string, query: any) => { + traverse: jest.fn(async (domain: string, query: any) => { const docs = documents.get(domain) ?? [] let returned = false return { @@ -183,7 +183,7 @@ function createMockTxOperations ( const createdDocs: Doc[] = [] return { - findAll: jest.fn(async (classRef: Ref>, query: any): Promise => { + findAll: jest.fn(async (classRef: Ref>, query: any): Promise => { if (classRef === core.class.Space || query._class !== undefined) { return existingSpaces.filter((s) => { if (query.name !== undefined && s.name !== query.name) return false @@ -200,14 +200,14 @@ function createMockTxOperations ( return existingDocs.filter((d) => d._class === classRef) as unknown as T[] }), createDoc: jest.fn( - async (classRef: Ref>, space: Ref, data: any, id?: Ref): Promise> => { + async (classRef: Ref>, space: Ref, data: any, id?: Ref): Promise> => { const docId = id ?? generateId() - createdDocs.push({ _id: docId, _class: classRef, space, ...data } as unknown as Doc) + createdDocs.push({ _id: docId, _class: classRef, space, ...data }) return docId } ), addCollection: jest.fn( - async ( + async ( classRef: Ref>, space: Ref, attachedTo: Ref, @@ -225,7 +225,7 @@ function createMockTxOperations ( attachedToClass, collection, ...data - } as unknown as Doc) + }) return docId } ), @@ -602,7 +602,7 @@ describe('CrossWorkspaceExporter', () => { const result = await exporter.export({ sourceWorkspace: createWorkspaceIds('source-ws'), targetWorkspace: createWorkspaceIds('target-ws'), - sourceQuery: { _id: SOURCE_DOC_1 } as any, + sourceQuery: { _id: SOURCE_DOC_1 }, _class: mockDocClass, includeChildren: false }) @@ -674,7 +674,7 @@ describe('CrossWorkspaceExporter', () => { const result = await exporter.export({ sourceWorkspace: createWorkspaceIds('source-ws'), targetWorkspace: createWorkspaceIds('target-ws'), - sourceQuery: { _id: SOURCE_DOC_1 } as any, + sourceQuery: { _id: SOURCE_DOC_1 }, _class: mockDocClass, includeChildren: true }) @@ -738,7 +738,7 @@ describe('CrossWorkspaceExporter', () => { const result = await exporter.export({ sourceWorkspace: createWorkspaceIds('source-ws'), targetWorkspace: createWorkspaceIds('target-ws'), - sourceQuery: { _id: SOURCE_DOC_2 as any }, + sourceQuery: { _id: SOURCE_DOC_2 }, _class: mockDocClass, relations }) diff --git a/services/export/pod-export/src/converter.ts b/services/export/pod-export/src/converter.ts index e1b439b050..c96833ebec 100644 --- a/services/export/pod-export/src/converter.ts +++ b/services/export/pod-export/src/converter.ts @@ -362,7 +362,7 @@ export class UnifiedConverter { return '' } - const markup = Buffer.concat(buffer as any).toString() + const markup = Buffer.concat(buffer).toString() // const markdown = await markupToMarkdown(markup, '', '') return markup // todo: test it is a markdown } catch (err) { @@ -420,7 +420,7 @@ export class UnifiedConverter { return Buffer.from([]) } - return Buffer.concat(buffer as any) + return Buffer.concat(buffer) } catch (err) { this.context.warn(`Failed to read attachment: ${att._id}`, { error: err instanceof Error ? err.message : String(err) diff --git a/services/export/pod-export/src/index.ts b/services/export/pod-export/src/index.ts index 9353cda211..eeb1b86043 100644 --- a/services/export/pod-export/src/index.ts +++ b/services/export/pod-export/src/index.ts @@ -16,7 +16,7 @@ import { config } from 'dotenv' import { main } from './main' -export * from './types' +export type * from './types' export * from './exporter' config() diff --git a/services/export/pod-export/src/server.ts b/services/export/pod-export/src/server.ts index b0dae8fc4c..30f0b9133e 100644 --- a/services/export/pod-export/src/server.ts +++ b/services/export/pod-export/src/server.ts @@ -15,7 +15,7 @@ // import { getClient, isWorkspaceLoginInfo } from '@hcengineering/account-client' -import client, { ClientSocket } from '@hcengineering/client' +import client from '@hcengineering/client' import core, { AccountRole, AccountUuid, @@ -174,7 +174,7 @@ const normalizeRelations = (input: unknown): RelationDefinition[] | undefined => } if (typeof value === 'string') { - result.push({ field: key, class: value as Ref>, direction: 'forward' }) + result.push({ field: key, class: value, direction: 'forward' }) continue } @@ -662,7 +662,7 @@ async function createPlatformClient (token: string): Promise { headers: { 'User-Agent': process.env.SERVICE_ID } - }) as never as ClientSocket + }) as never }) const endpoint = await getTransactorEndpoint(token) diff --git a/services/export/pod-export/src/workspace/attachment-exporter.ts b/services/export/pod-export/src/workspace/attachment-exporter.ts index eaa6c1e02e..52ddf94026 100644 --- a/services/export/pod-export/src/workspace/attachment-exporter.ts +++ b/services/export/pod-export/src/workspace/attachment-exporter.ts @@ -107,9 +107,9 @@ export class AttachmentExporter { } try { - const blobBuffers = await this.storage.read(this.context, this.sourceWorkspace, blobRef as string) + const blobBuffers = await this.storage.read(this.context, this.sourceWorkspace, blobRef) if (blobBuffers !== undefined && blobBuffers.length > 0) { - const sourceBlob = await this.storage.stat(this.context, this.sourceWorkspace, blobRef as string) + const sourceBlob = await this.storage.stat(this.context, this.sourceWorkspace, blobRef) if (sourceBlob !== undefined) { const totalSize = blobBuffers.reduce((sum, buf) => sum + buf.length, 0) const combinedBuffer = Buffer.concat(blobBuffers) @@ -117,7 +117,7 @@ export class AttachmentExporter { await this.storage.put( this.context, this.targetWorkspace, - blobRef as string, + blobRef, combinedBuffer, sourceBlob.contentType ?? 'application/json', totalSize @@ -165,9 +165,9 @@ export class AttachmentExporter { } try { - const blobBuffers = await this.storage.read(this.context, this.sourceWorkspace, blobRef as string) + const blobBuffers = await this.storage.read(this.context, this.sourceWorkspace, blobRef) if (blobBuffers !== undefined && blobBuffers.length > 0) { - const sourceBlob = await this.storage.stat(this.context, this.sourceWorkspace, blobRef as string) + const sourceBlob = await this.storage.stat(this.context, this.sourceWorkspace, blobRef) if (sourceBlob !== undefined) { const totalSize = blobBuffers.reduce((sum, buf) => sum + buf.length, 0) const combinedBuffer = Buffer.concat(blobBuffers) @@ -175,7 +175,7 @@ export class AttachmentExporter { await this.storage.put( this.context, this.targetWorkspace, - blobRef as string, + blobRef, combinedBuffer, sourceBlob.contentType ?? 'application/json', totalSize @@ -275,7 +275,7 @@ export class AttachmentExporter { await this.targetClient.addCollection( attachment._class, (attachment as any).space, - targetDocId as any, + targetDocId, targetDocClass, 'attachments', data, diff --git a/services/export/pod-export/src/workspace/document-exporter.ts b/services/export/pod-export/src/workspace/document-exporter.ts index 86344d1fe7..c1891143ef 100644 --- a/services/export/pod-export/src/workspace/document-exporter.ts +++ b/services/export/pod-export/src/workspace/document-exporter.ts @@ -300,7 +300,7 @@ export class DocumentExporter { await this.targetClient.addCollection( attachedDoc._class, targetSpace, - attachedTo as any, + attachedTo, attachedToClass, collection, attachedData, diff --git a/services/export/pod-export/src/workspace/index.ts b/services/export/pod-export/src/workspace/index.ts index 996bd36dde..5bc6ef8a3e 100644 --- a/services/export/pod-export/src/workspace/index.ts +++ b/services/export/pod-export/src/workspace/index.ts @@ -13,7 +13,7 @@ // limitations under the License. // -export * from './types' +export type * from './types' export { CrossWorkspaceExporter } from './workspace-exporter' export { DataMapper } from './data-mapper' export { SpaceExporter } from './space-exporter' diff --git a/services/export/pod-export/src/workspace/relation-exporter.ts b/services/export/pod-export/src/workspace/relation-exporter.ts index cfebb471e7..cde2ee2ec2 100644 --- a/services/export/pod-export/src/workspace/relation-exporter.ts +++ b/services/export/pod-export/src/workspace/relation-exporter.ts @@ -188,7 +188,7 @@ export class RelationExporter { } await this.exportRelatedDocument( - ref as Ref, + ref, relation.class, conflictStrategy, includeAttachments, diff --git a/services/export/pod-export/src/workspace/workspace-exporter.ts b/services/export/pod-export/src/workspace/workspace-exporter.ts index ddf6d606fe..aa8db9c182 100644 --- a/services/export/pod-export/src/workspace/workspace-exporter.ts +++ b/services/export/pod-export/src/workspace/workspace-exporter.ts @@ -193,7 +193,7 @@ export class CrossWorkspaceExporter { sourceClass: doc.sourceClass, field: doc.field, class: doc.targetClass, - direction: (doc.direction ?? 'forward') as 'forward' | 'inverse' + direction: doc.direction ?? 'forward' })) } } catch (err: any) { diff --git a/services/github/github-resources/src/components/Connect.svelte b/services/github/github-resources/src/components/Connect.svelte index e4f1053b3a..c45c2b1e5e 100644 --- a/services/github/github-resources/src/components/Connect.svelte +++ b/services/github/github-resources/src/components/Connect.svelte @@ -57,10 +57,10 @@ projects = res }) - function save (): void { + function save(): void { void updateGithubAccountIntegrationLogin(auth?.login ?? '', integration) } - function onConnect (): void { + function onConnect(): void { const state = btoa( JSON.stringify({ accountId: getCurrentAccount().primarySocialId, @@ -124,7 +124,7 @@ {#if integrations.length === 0}

- {#await translate(github.string.NoIntegrationsConfigured, { appName: getMetadata(github.metadata.GithubApplication), title: getMetadata(ui.metadata.PlatformTitle) }) then msg} + {#await translate( github.string.NoIntegrationsConfigured, { appName: getMetadata(github.metadata.GithubApplication), title: getMetadata(ui.metadata.PlatformTitle) } ) then msg} {/await}
diff --git a/services/github/github-resources/src/components/ConnectApp.svelte b/services/github/github-resources/src/components/ConnectApp.svelte index 37a71e62ad..96d50e9201 100644 --- a/services/github/github-resources/src/components/ConnectApp.svelte +++ b/services/github/github-resources/src/components/ConnectApp.svelte @@ -20,7 +20,7 @@ let installationId: number | undefined let showSelector = false - async function createIntegration (loc: Location): Promise { + async function createIntegration(loc: Location): Promise { if (loc.query?.error != null) { window.close() return @@ -39,7 +39,7 @@ return } - function doAutoClose (): void { + function doAutoClose(): void { autoClose = 3 clearInterval(interval) interval = setInterval(() => { diff --git a/services/github/github-resources/src/components/ConnectProject.svelte b/services/github/github-resources/src/components/ConnectProject.svelte index c76c633e0a..7b29635658 100644 --- a/services/github/github-resources/src/components/ConnectProject.svelte +++ b/services/github/github-resources/src/components/ConnectProject.svelte @@ -50,7 +50,7 @@ const client = getClient() - async function assignRepository (project: Ref): Promise { + async function assignRepository(project: Ref): Promise { if (project === undefined) { return } @@ -126,7 +126,7 @@ (client.getHierarchy().asIf(it, github.mixin.GithubProject)?.integration ?? integration._id) === integration._id ) .concat(orphanProjects) - async function selectProject (event: MouseEvent): Promise { + async function selectProject(event: MouseEvent): Promise { showPopup( DropdownLabelsPopup, { diff --git a/services/github/github-resources/src/components/GithubIssueHeader.svelte b/services/github/github-resources/src/components/GithubIssueHeader.svelte index 979d900852..d74f082aa7 100644 --- a/services/github/github-resources/src/components/GithubIssueHeader.svelte +++ b/services/github/github-resources/src/components/GithubIssueHeader.svelte @@ -21,7 +21,7 @@ $: repository = ghIssue?.repository !== undefined ? $integrationRepositories.get(ghIssue.repository) : undefined - async function assignRepository (repository: Ref): Promise { + async function assignRepository(repository: Ref): Promise { if (ghIssue !== undefined) { // We just need to assign the repository to the issue await getClient().update(ghIssue, { repository }) diff --git a/services/github/github-resources/src/components/GithubIssueInfoHeader.svelte b/services/github/github-resources/src/components/GithubIssueInfoHeader.svelte index 1b90823f8b..4c7c7f3440 100644 --- a/services/github/github-resources/src/components/GithubIssueInfoHeader.svelte +++ b/services/github/github-resources/src/components/GithubIssueInfoHeader.svelte @@ -57,14 +57,14 @@ selectedRepository = components.find((it) => it._id === newRepositoryId) } - function performOK (repository: Ref | undefined): void { + function performOK(repository: Ref | undefined): void { $state.repository = repository ?? undefined handleOkClick() } $: void handleSelectedRepositoryIdUpdated(repository, rawRepositories) - function getRepositoryInfo (rawComponents: GithubIntegrationRepository[]): SelectPopupValueType[] { + function getRepositoryInfo(rawComponents: GithubIntegrationRepository[]): SelectPopupValueType[] { return [ ...rawComponents.map((p) => ({ id: p._id, @@ -84,7 +84,7 @@ let repositories: SelectPopupValueType[] = [] $: repositories = getRepositoryInfo(rawRepositories) - function updateProjectPreferences ( + function updateProjectPreferences( space: Ref, spacePreferences: ProjectTargetPreference | undefined, repository: Ref | undefined diff --git a/services/github/github-resources/src/components/GithubRepositories.svelte b/services/github/github-resources/src/components/GithubRepositories.svelte index 12552f3f81..28a250e97a 100644 --- a/services/github/github-resources/src/components/GithubRepositories.svelte +++ b/services/github/github-resources/src/components/GithubRepositories.svelte @@ -38,7 +38,7 @@ let limit = 5 - async function disconnect (prj: GithubProject, repository: GithubIntegrationRepository): Promise { + async function disconnect(prj: GithubProject, repository: GithubIntegrationRepository): Promise { // We need to disable repository first await client.update(repository, { enabled: false, @@ -78,7 +78,7 @@ // await ops.commit() } - async function onDisconnect ( + async function onDisconnect( event: MouseEvent, prj: GithubProject, repository: GithubIntegrationRepository @@ -118,7 +118,7 @@ return (b.updatedAt ?? 0) - (a.updatedAt ?? 0) }) - async function showMenu (evt: MouseEvent, prj: GithubProject, repository: GithubIntegrationRepository): Promise { + async function showMenu(evt: MouseEvent, prj: GithubProject, repository: GithubIntegrationRepository): Promise { if (isAdminUser()) { const actions: Action[] = [ { diff --git a/services/github/github-resources/src/components/IntegrationState.svelte b/services/github/github-resources/src/components/IntegrationState.svelte index 06f4a65dd7..3b1c4e765b 100644 --- a/services/github/github-resources/src/components/IntegrationState.svelte +++ b/services/github/github-resources/src/components/IntegrationState.svelte @@ -34,7 +34,7 @@ const client = getClient() $: loadIntegration(integration) - async function loadIntegration (integration: Integration): Promise { + async function loadIntegration(integration: Integration): Promise { try { const installationId = integration?.data?.installationId ?? [] const installations = Array.isArray(installationId) ? installationId : [installationId] diff --git a/services/github/github-resources/src/components/MarkdownDescriptionDiff.svelte b/services/github/github-resources/src/components/MarkdownDescriptionDiff.svelte index 509a58abbb..67ff75dea2 100644 --- a/services/github/github-resources/src/components/MarkdownDescriptionDiff.svelte +++ b/services/github/github-resources/src/components/MarkdownDescriptionDiff.svelte @@ -4,7 +4,7 @@ import { DocSyncInfo } from '@hcengineering/github' export let issue: DocSyncInfo - function allowEdit (): void { + function allowEdit(): void { void getClient().update(issue, { isDescriptionLocked: false, needSync: '' diff --git a/services/github/github-resources/src/components/PullRequestDiff.svelte b/services/github/github-resources/src/components/PullRequestDiff.svelte index dd58d2c568..c2a34d1e5d 100644 --- a/services/github/github-resources/src/components/PullRequestDiff.svelte +++ b/services/github/github-resources/src/components/PullRequestDiff.svelte @@ -57,7 +57,7 @@ const client = getClient() - async function handleFileViewed (fileName: string, sha: string, viewed: boolean): Promise { + async function handleFileViewed(fileName: string, sha: string, viewed: boolean): Promise { const current = await client.findOne(github.class.GithubPullRequestReview, { attachedTo: pullRequest._id, author: me diff --git a/services/github/github-resources/src/components/PullRequestsView.svelte b/services/github/github-resources/src/components/PullRequestsView.svelte index ca8143dfed..c829cf97dd 100644 --- a/services/github/github-resources/src/components/PullRequestsView.svelte +++ b/services/github/github-resources/src/components/PullRequestsView.svelte @@ -18,7 +18,7 @@ let viewOptions: ViewOptions | undefined let search = '' let searchQuery: DocumentQuery = { ...query } - function updateSearchQuery (search: string): void { + function updateSearchQuery(search: string): void { searchQuery = search === '' ? { ...query } : { ...query, $search: search } } $: if (query) updateSearchQuery(search) diff --git a/services/github/github-resources/src/components/RepositoryPresenterRefEditor.svelte b/services/github/github-resources/src/components/RepositoryPresenterRefEditor.svelte index 70aae9248c..013aab1c5e 100644 --- a/services/github/github-resources/src/components/RepositoryPresenterRefEditor.svelte +++ b/services/github/github-resources/src/components/RepositoryPresenterRefEditor.svelte @@ -57,7 +57,7 @@ $: void handleSelectedRepositoryIdUpdated(value, rawComponents) - function getRepositoryInfo ( + function getRepositoryInfo( rawComponents: GithubIntegrationRepository[], sp: GithubIntegrationRepository | undefined ): SelectPopupValueType[] { diff --git a/services/github/github-resources/src/components/RepositorySelector.svelte b/services/github/github-resources/src/components/RepositorySelector.svelte index d4d7561d44..5323e7b0d1 100644 --- a/services/github/github-resources/src/components/RepositorySelector.svelte +++ b/services/github/github-resources/src/components/RepositorySelector.svelte @@ -45,7 +45,7 @@ $: void handleSelectedRepositoryIdUpdated(value, rawComponents) - function getRepositoryInfo ( + function getRepositoryInfo( rawComponents: GithubIntegrationRepository[], sp: GithubIntegrationRepository | undefined ): SelectPopupValueType[] { diff --git a/services/github/github-resources/src/components/presenters/GithubReviewPresenter.svelte b/services/github/github-resources/src/components/presenters/GithubReviewPresenter.svelte index d1ee736e80..c513728c74 100644 --- a/services/github/github-resources/src/components/presenters/GithubReviewPresenter.svelte +++ b/services/github/github-resources/src/components/presenters/GithubReviewPresenter.svelte @@ -33,7 +33,7 @@ person = undefined } - function getCommentFromState (value?: GithubPullRequestReviewState): { + function getCommentFromState(value?: GithubPullRequestReviewState): { label: IntlString color?: number } { diff --git a/services/github/github-resources/src/components/presenters/GithubReviewThreadPresenter.svelte b/services/github/github-resources/src/components/presenters/GithubReviewThreadPresenter.svelte index 8e57c10ec1..2086826c06 100644 --- a/services/github/github-resources/src/components/presenters/GithubReviewThreadPresenter.svelte +++ b/services/github/github-resources/src/components/presenters/GithubReviewThreadPresenter.svelte @@ -49,7 +49,7 @@ ) let expanded = !value.isResolved - async function onMessage (event: CustomEvent): Promise { + async function onMessage(event: CustomEvent): Promise { await getClient().addCollection( github.class.GithubReviewComment, value.space, @@ -74,7 +74,7 @@ } ) } - async function changeResolution (): Promise { + async function changeResolution(): Promise { if (value.isResolved) { await getClient().update(value, { isResolved: false, resolvedBy: null }) } else { @@ -82,7 +82,7 @@ } } - function onDiffExpand (nextExpanded: boolean): void { + function onDiffExpand(nextExpanded: boolean): void { expanded = nextExpanded } diff --git a/services/github/github-resources/src/components/presenters/PullRequestReviewDecisionValuePresenter.svelte b/services/github/github-resources/src/components/presenters/PullRequestReviewDecisionValuePresenter.svelte index 17e6cdab38..66bb295889 100644 --- a/services/github/github-resources/src/components/presenters/PullRequestReviewDecisionValuePresenter.svelte +++ b/services/github/github-resources/src/components/presenters/PullRequestReviewDecisionValuePresenter.svelte @@ -9,8 +9,8 @@ export let small = false const labels: Record< - GithubReviewDecisionState, - { label: IntlString, color: number, icon: Asset | AnySvelteComponent | ComponentType } + GithubReviewDecisionState, + { label: IntlString, color: number, icon: Asset | AnySvelteComponent | ComponentType } > = { [GithubReviewDecisionState.Approved]: { icon: github.icon.PullRequest, diff --git a/services/github/model-github/src/index.ts b/services/github/model-github/src/index.ts index 8497814144..e6d0ed3b10 100644 --- a/services/github/model-github/src/index.ts +++ b/services/github/model-github/src/index.ts @@ -106,78 +106,78 @@ export class TDocSyncInfo extends TDoc implements DocSyncInfo { @Prop(TypeNumber(), getEmbeddedLabel('Github number')) @ReadOnly() @Index(IndexKind.Indexed) - githubNumber!: number + githubNumber!: number @Prop(TypeString(), getEmbeddedLabel('URL')) @ReadOnly() @Index(IndexKind.Indexed) - url!: string + url!: string @Prop(TypeString(), getEmbeddedLabel('Parent URL')) @ReadOnly() @Index(IndexKind.Indexed) - parent!: string + parent!: string @Prop(TypeNumber(), getEmbeddedLabel('ID')) @ReadOnly() - id!: number + id!: number @Prop(TypeString(), getEmbeddedLabel('ObjectClass')) @ReadOnly() @Index(IndexKind.Indexed) - objectClass!: Ref> + objectClass!: Ref> external!: Record @Prop(TypeString(), getEmbeddedLabel('Sync request')) @ReadOnly() @Index(IndexKind.Indexed) - needSync!: string + needSync!: string @Prop(TypeString(), getEmbeddedLabel('External Sync request')) @ReadOnly() @Index(IndexKind.Indexed) - externalVersion!: string + externalVersion!: string @Prop(TypeString(), getEmbeddedLabel('Derived request')) @ReadOnly() @Index(IndexKind.Indexed) - derivedVersion!: string + derivedVersion!: string @Prop(TypeRef(github.class.GithubIntegrationRepository), getEmbeddedLabel('Repository')) @ReadOnly() @Index(IndexKind.Indexed) - repository!: Ref | null + repository!: Ref | null @Prop(TypeString(), getEmbeddedLabel('Deleted flag')) @ReadOnly() @Index(IndexKind.Indexed) - deleted!: boolean + deleted!: boolean } @Model(github.class.GithubUserInfo, core.class.Doc, DOMAIN_GITHUB_USER) export class TGithubUserInfo extends TDoc implements GithubUserInfo { @Prop(TypeString(), getEmbeddedLabel('ID')) @ReadOnly() - id!: string + id!: string @Prop(TypeString(), getEmbeddedLabel('login')) @ReadOnly() @Index(IndexKind.Indexed) - login!: string + login!: string @Prop(TypeString(), getEmbeddedLabel('email')) @ReadOnly() @Index(IndexKind.Indexed) - email!: string + email!: string @Prop(TypeString(), getEmbeddedLabel('name')) @ReadOnly() - name!: string + name!: string @Prop(TypeString(), getEmbeddedLabel('avatarUrl')) @ReadOnly() - avatarUrl!: string + avatarUrl!: string } @Model(github.class.GithubIntegration, core.class.Doc, DOMAIN_GITHUB) @@ -190,127 +190,127 @@ export class TGithubIntegration extends TDoc implements GithubIntegration { // Technical details, will be filled by github integration service. @Prop(TypeString(), getEmbeddedLabel('Name')) @ReadOnly() - name!: string // Organization or individual user name + name!: string // Organization or individual user name nodeId!: string @Prop(TypeBoolean(), getEmbeddedLabel('Alive')) @ReadOnly() - alive!: boolean + alive!: boolean @Prop(Collection(github.class.GithubIntegrationRepository), getEmbeddedLabel('Repositories')) @ReadOnly() - repositories!: number + repositories!: number @Prop(TypeBoolean(), getEmbeddedLabel('User Project')) - useProject!: boolean + useProject!: boolean } @Model(github.class.GithubIntegrationRepository, core.class.AttachedDoc, DOMAIN_GITHUB) export class TGithubIntegrationRepository extends TAttachedDoc implements GithubIntegrationRepository { @Prop(TypeString(), getEmbeddedLabel('Name')) @ReadOnly() - name!: string + name!: string @Prop(TypeNumber(), getEmbeddedLabel('Repository ID')) @ReadOnly() - repositoryId!: number + repositoryId!: number @Prop(TypeBoolean(), getEmbeddedLabel('Alive')) @ReadOnly() - enabled!: boolean + enabled!: boolean @Prop(TypeRef(github.mixin.GithubProject), getEmbeddedLabel('Repository')) @ReadOnly() - githubProject!: Ref | null + githubProject!: Ref | null @Prop(TypeNumber(), getEmbeddedLabel('ID')) @ReadOnly() - id?: number + id?: number @Prop(TypeRecord(), getEmbeddedLabel('Owner')) @ReadOnly() - owner?: Data + owner?: Data @Prop(TypeString(), getEmbeddedLabel('URL')) @ReadOnly() - url?: string + url?: string @Prop(TypeString(), getEmbeddedLabel('HTMLURL')) @ReadOnly() - htmlURL?: string + htmlURL?: string @Prop(TypeString(), getEmbeddedLabel('NodeID')) @ReadOnly() - nodeId?: string + nodeId?: string @Prop(TypeString(), getEmbeddedLabel('Description')) @ReadOnly() - description?: string + description?: string @Prop(TypeBoolean(), getEmbeddedLabel('Is Fork')) @ReadOnly() - fork!: boolean + fork!: boolean @Prop(TypeNumber(), getEmbeddedLabel('Forks')) @ReadOnly() - forks!: number + forks!: number @Prop(TypeBoolean(), getEmbeddedLabel('Private')) @ReadOnly() - private!: boolean + private!: boolean @Prop(TypeNumber(), getEmbeddedLabel('Stars')) @ReadOnly() - stargazers!: number + stargazers!: number @Prop(TypeBoolean(), getEmbeddedLabel('Has Issues')) @ReadOnly() - hasIssues!: boolean + hasIssues!: boolean @Prop(TypeBoolean(), getEmbeddedLabel('Has Projects')) @ReadOnly() - hasProjects!: boolean + hasProjects!: boolean @Prop(TypeBoolean(), getEmbeddedLabel('Has Downloads')) @ReadOnly() - hasDownloads!: boolean + hasDownloads!: boolean @Prop(TypeBoolean(), getEmbeddedLabel('Has Pages')) @ReadOnly() - hasPages!: boolean + hasPages!: boolean @Prop(TypeBoolean(), getEmbeddedLabel('Has Wiki')) @ReadOnly() - hasWiki!: boolean + hasWiki!: boolean @Prop(TypeBoolean(), getEmbeddedLabel('Has Discussions')) @ReadOnly() - hasDiscussions!: boolean + hasDiscussions!: boolean @Prop(TypeNumber(), getEmbeddedLabel('Open Issues')) @ReadOnly() - openIssues!: number + openIssues!: number @Prop(TypeNumber(), getEmbeddedLabel('Watchers')) @ReadOnly() - watchers!: number + watchers!: number @Prop(TypeBoolean(), getEmbeddedLabel('Archived')) @ReadOnly() - archived!: boolean + archived!: boolean @Prop(TypeNumber(), getEmbeddedLabel('Size')) @ReadOnly() - size!: number + size!: number @Prop(TypeString(), getEmbeddedLabel('Language')) @ReadOnly() - language?: string + language?: string @Prop(TypeString(), getEmbeddedLabel('Visibility')) @ReadOnly() - visibility?: string + visibility?: string } @Model(github.class.GithubAuthentication, core.class.Doc, DOMAIN_PREFERENCE) @@ -359,22 +359,22 @@ export class TGithubProject extends TProject implements GithubProject { @Prop(TypeRef(github.class.GithubIntegration), getEmbeddedLabel('Integration')) @ReadOnly() @Hidden() - integration!: Ref + integration!: Ref @Prop(ArrOf(TypeRef(github.class.GithubIntegrationRepository)), getEmbeddedLabel('Repositories')) @ReadOnly() @Hidden() - repositories!: Ref[] + repositories!: Ref[] @Prop(TypeString(), getEmbeddedLabel('NodeID')) @ReadOnly() @Hidden() - projectNodeId!: string + projectNodeId!: string @Prop(TypeNumber(), getEmbeddedLabel('Number')) @ReadOnly() @Hidden() - projectNumber!: number + projectNumber!: number } @Mixin(github.mixin.GithubIssue, tracker.class.Issue) @@ -384,16 +384,16 @@ export class TGithubIssue extends TIssue implements GithubIssue { @Index(IndexKind.FullText) @ReadOnly() @Hidden() - url!: Hyperlink + url!: Hyperlink @Prop(TypeNumber(), tracker.string.Number) @Index(IndexKind.FullText) @ReadOnly() @Hidden() - githubNumber!: number + githubNumber!: number @Prop(TypeRef(github.class.GithubIntegrationRepository), getEmbeddedLabel('Repository')) - repository!: Ref + repository!: Ref } @Mixin(github.mixin.GithubTodo, time.class.ToDo) @@ -407,7 +407,7 @@ export class TGithubUser extends TPerson implements GithubUser { @Prop(TypeHyperlink(), getEmbeddedLabel('Github URL')) @Index(IndexKind.FullText) @ReadOnly() - url!: Hyperlink + url!: Hyperlink } @Mixin(github.mixin.GithubComponent, tracker.class.Component) @@ -416,19 +416,19 @@ export class TGithubComponent extends TComponent implements GithubComponent { @Prop(TypeRef(github.class.GithubIntegrationRepository), getEmbeddedLabel('Repository')) @ReadOnly() @Hidden() - repository!: Ref + repository!: Ref @Prop(TypeBoolean(), getEmbeddedLabel('Represent')) @ReadOnly() @Hidden() - represent!: boolean + represent!: boolean } @Model(github.class.GithubPullRequest, tracker.class.Issue) @UX(github.string.PullRequest, github.icon.PullRequest, undefined, undefined, undefined, github.string.PullRequests) export class TGithubPullRequest extends TIssue implements GithubPullRequest { @Prop(ArrOf(TypeRef(contact.class.Person)), getEmbeddedLabel('Reviewers')) - reviewers!: Ref[] | null + reviewers!: Ref[] | null @Prop(TypeRef(tracker.class.Project), tracker.string.Project, { icon: tracker.icon.Issues }) @Index(IndexKind.Indexed) @@ -440,35 +440,35 @@ export class TGithubPullRequest extends TIssue implements GithubPullRequest { @Prop(TypeBoolean(), github.string.PRDraft) @ReadOnly() - draft!: boolean + draft!: boolean @Prop(TypeDate(DateRangeMode.DATETIME), github.string.PRMergedAt) @ReadOnly() - mergedAt!: Timestamp | null + mergedAt!: Timestamp | null @Prop(TypeDate(DateRangeMode.DATETIME), github.string.PRClosedAt) @ReadOnly() - closedAt!: Timestamp | null + closedAt!: Timestamp | null @Prop(TypeNumber(), github.string.PRFile) @ReadOnly() @Hidden() - files!: number + files!: number @Prop(TypeNumber(), github.string.PRCommit) @ReadOnly() - commits!: number + commits!: number @Prop(TypeAny(github.component.MergeableValuePresenter, github.string.Mergeable), github.string.Mergeable) @ReadOnly() - mergeable!: PullRequestMergeable + mergeable!: PullRequestMergeable @Prop( TypeAny(github.component.PullRequestStateValuePresenter, github.string.PullRequestMergeState), github.string.PullRequestMergeState ) @ReadOnly() - state!: GithubPullRequestState + state!: GithubPullRequestState @Prop( TypeAny(github.component.PullRequestReviewDecisionValuePresenter, github.string.PullRequestReviewDecision), @@ -476,17 +476,17 @@ export class TGithubPullRequest extends TIssue implements GithubPullRequest { ) @ReadOnly() @Hidden() - reviewDecision!: GithubReviewDecisionState + reviewDecision!: GithubReviewDecisionState latestReviews!: LastReviewState[] @Prop(Collection(github.class.GithubPullRequestReview), github.string.PRReview) @Hidden() - reviews!: number + reviews!: number @Prop(Collection(github.class.GithubReviewComment), getEmbeddedLabel('Review Comments')) @Hidden() - reviewComments!: number + reviewComments!: number } @Model(github.class.GithubPullRequestReview, core.class.AttachedDoc, DOMAIN_GITHUB) @@ -500,14 +500,14 @@ export class TGithubPullRequestReview extends TAttachedDoc implements GithubPull @Model(github.class.GithubReview, activity.class.ActivityMessage) export class TGithubReview extends TActivityMessage implements GithubReview { @Prop(TypeString(), getEmbeddedLabel('State')) - state!: GithubPullRequestReviewState + state!: GithubPullRequestReviewState @Prop(TypeMarkup(), getEmbeddedLabel('Body')) - body!: Markup + body!: Markup @Prop(ArrOf(TypeString()), getEmbeddedLabel('Comment refs')) // Urls of comments - comments!: string[] + comments!: string[] } @Model(github.class.GithubReviewThread, activity.class.ActivityMessage) @@ -535,7 +535,7 @@ export class TGithubReviewComment extends TAttachedDoc implements GithubReviewCo reviewUrl!: string // A review url. @Prop(TypeMarkup(), getEmbeddedLabel('Body')) - body!: Markup + body!: Markup outdated!: boolean diff --git a/services/github/pod-github/src/client.ts b/services/github/pod-github/src/client.ts index 184ac89290..2e5ffe7c7d 100644 --- a/services/github/pod-github/src/client.ts +++ b/services/github/pod-github/src/client.ts @@ -3,7 +3,7 @@ // // -import client, { ClientSocket } from '@hcengineering/client' +import client from '@hcengineering/client' import clientResources from '@hcengineering/client-resources' import { Client, ClientConnectEvent, systemAccountUuid, WorkspaceUuid, type MeasureContext } from '@hcengineering/core' import { setMetadata } from '@hcengineering/platform' @@ -26,7 +26,7 @@ export async function createPlatformClient ( headers: { 'User-Agent': config.ServiceID } - }) as never as ClientSocket + }) as never }) const token = generateToken(systemAccountUuid, workspace, { service: 'github', mode: 'github' }) diff --git a/services/github/pod-github/src/markdown/__tests__/markup.test.ts b/services/github/pod-github/src/markdown/__tests__/markup.test.ts index 39d162cb99..68ce317f38 100644 --- a/services/github/pod-github/src/markdown/__tests__/markup.test.ts +++ b/services/github/pod-github/src/markdown/__tests__/markup.test.ts @@ -13,7 +13,7 @@ // limitations under the License. // -/* eslint-env jest */ +/* global describe, expect, it */ import { setMetadata } from '@hcengineering/platform' import serverCore from '@hcengineering/server-core' import { jsonToHTML, htmlToJSON } from '@hcengineering/text' diff --git a/services/github/pod-github/src/markdown/__tests__/textmodel.test.ts b/services/github/pod-github/src/markdown/__tests__/textmodel.test.ts index 5f87b733c3..009c82a29d 100644 --- a/services/github/pod-github/src/markdown/__tests__/textmodel.test.ts +++ b/services/github/pod-github/src/markdown/__tests__/textmodel.test.ts @@ -13,7 +13,7 @@ // limitations under the License. // -/* eslint-env jest */ +/* global describe, expect, it */ import { MarkupMarkType, MarkupNode, diff --git a/services/github/pod-github/src/platform.ts b/services/github/pod-github/src/platform.ts index 97455c5eb0..40758ebd0e 100644 --- a/services/github/pod-github/src/platform.ts +++ b/services/github/pod-github/src/platform.ts @@ -996,11 +996,11 @@ export class PlatformWorker { const rechecks: string[] = [] let idx = 0 const connecting = new Map< - string, - { - time: number - version: string - } + string, + { + time: number + version: string + } >() const st = Date.now() const connectingInfo = setInterval(() => { diff --git a/services/github/pod-github/src/server.ts b/services/github/pod-github/src/server.ts index 05a0b123bb..ca8d9543e6 100644 --- a/services/github/pod-github/src/server.ts +++ b/services/github/pod-github/src/server.ts @@ -52,7 +52,7 @@ export async function start (ctx: MeasureContext, brandingMap: BrandingMap): Pro const localWebhookUrl = `http://localhost:${port}${path}` // See https://github.com/octokit/webhooks.js/#createnodemiddleware for all options - const middleware = createNodeMiddleware(octokitApp.webhooks as any, { path }) + const middleware = createNodeMiddleware(octokitApp.webhooks, { path }) const app = express() diff --git a/services/github/pod-github/src/sync/__tests__/pullrequests.test.ts b/services/github/pod-github/src/sync/__tests__/pullrequests.test.ts index 25f5ccf3c0..f6fa19896e 100644 --- a/services/github/pod-github/src/sync/__tests__/pullrequests.test.ts +++ b/services/github/pod-github/src/sync/__tests__/pullrequests.test.ts @@ -1,4 +1,3 @@ -/* eslint-disable import/first */ import { PersonId } from '@hcengineering/core' import { PullRequestExternalData } from '../githubTypes' import type { UserInfo } from '../../types' @@ -20,7 +19,6 @@ jest.mock('../../config', () => ({ })) import { PullRequestSyncManager } from '../pullrequests' -/* eslint-enable import/first */ describe('PullRequestSyncManager', () => { describe('getReviewers', () => { @@ -49,7 +47,7 @@ describe('PullRequestSyncManager', () => { it('should handle undefined reviewRequests gracefully', async () => { const prData: Partial = { - reviewRequests: undefined as any, + reviewRequests: undefined, latestReviews: { nodes: [], totalCount: 0 } } @@ -140,7 +138,7 @@ describe('PullRequestSyncManager', () => { it('should handle undefined latestReviews', async () => { const prData: Partial = { reviewRequests: { nodes: [], totalCount: 0 }, - latestReviews: undefined as any + latestReviews: undefined } const result = await manager.getReviewers(prData as PullRequestExternalData) diff --git a/services/github/pod-github/src/sync/comments.ts b/services/github/pod-github/src/sync/comments.ts index 10e8f506dd..3bac1fa230 100644 --- a/services/github/pod-github/src/sync/comments.ts +++ b/services/github/pod-github/src/sync/comments.ts @@ -63,7 +63,7 @@ export class CommentSyncManager implements DocSyncManager { eventSync = new Map>() @withContext('comments-handle-event') - async handleEvent( + async handleEvent ( ctx: MeasureContext, integration: IntegrationContainer, derivedClient: TxOperations, @@ -459,7 +459,7 @@ export class CommentSyncManager implements DocSyncManager { const upd: DocumentUpdate = { parent: (result?.data.html_url?.split('#')?.[0] ?? '').toLowerCase(), url: (result?.data.url ?? '').toLowerCase(), - external: result?.data as CommentExternalData, + external: result?.data, current: result?.data, repository: repo._id, needSync: githubSyncVersion diff --git a/services/github/pod-github/src/sync/issueBase.ts b/services/github/pod-github/src/sync/issueBase.ts index ff181599b6..878b1b06f1 100644 --- a/services/github/pod-github/src/sync/issueBase.ts +++ b/services/github/pod-github/src/sync/issueBase.ts @@ -51,33 +51,33 @@ export type WithMarkup = Omit & { * @public */ export type GithubIssueData = Omit< -WithMarkup, -| 'commits' -| 'attachments' -| 'commits' -| 'number' -| 'files' -| 'space' -| 'identifier' -| 'rank' -| 'status' -| 'priority' -| 'subIssues' -| 'parents' -| 'estimation' -| 'reportedTime' -| 'reports' -| 'childInfo' -| 'dueDate' -| 'startDate' -| 'kind' -| 'reviews' -| 'reviewThreads' -| 'reviewComments' -| 'component' -| keyof AttachedDoc + WithMarkup, + | 'commits' + | 'attachments' + | 'commits' + | 'number' + | 'files' + | 'space' + | 'identifier' + | 'rank' + | 'status' + | 'priority' + | 'subIssues' + | 'parents' + | 'estimation' + | 'reportedTime' + | 'reports' + | 'childInfo' + | 'dueDate' + | 'startDate' + | 'kind' + | 'reviews' + | 'reviewThreads' + | 'reviewComments' + | 'component' + | keyof AttachedDoc > & -Record + Record /** * @public @@ -233,7 +233,7 @@ export abstract class IssueSyncManagerBase { } } - abstract fillBackChanges (update: DocumentUpdate, existing: GithubIssue, external: any): Promise + abstract fillBackChanges(update: DocumentUpdate, existing: GithubIssue, external: any): Promise async addConnectToMessage ( msg: IntlString, @@ -259,7 +259,7 @@ export abstract class IssueSyncManagerBase { await stripGuestLink(data) } - abstract performIssueFieldsUpdate ( + abstract performIssueFieldsUpdate( ctx: MeasureContext, info: DocSyncInfo, existing: WithMarkup, @@ -271,7 +271,7 @@ export abstract class IssueSyncManagerBase { account: PersonId ): Promise - abstract afterSync ( + abstract afterSync( ctx: MeasureContext, existing: Issue, account: PersonId, @@ -297,7 +297,7 @@ export abstract class IssueSyncManagerBase { {}, async (ctx) => { await this.client.createMixin( - existing._id as Ref, + existing._id, existing._class, existing.space, github.mixin.GithubIssue, @@ -687,7 +687,7 @@ export abstract class IssueSyncManagerBase { this.provider.sync() } - abstract deleteGithubDocument ( + abstract deleteGithubDocument( ctx: MeasureContext, container: ContainerFocus, account: PersonId, diff --git a/services/github/pod-github/src/sync/issues.ts b/services/github/pod-github/src/sync/issues.ts index 07d7b2cea9..4a05bbe342 100644 --- a/services/github/pod-github/src/sync/issues.ts +++ b/services/github/pod-github/src/sync/issues.ts @@ -66,7 +66,7 @@ export class IssueSyncManager extends IssueSyncManagerBase implements DocSyncMan } @withContext('issues-handleEvent') - async handleEvent( + async handleEvent ( ctx: MeasureContext, integration: IntegrationContainer, derivedClient: TxOperations, @@ -777,12 +777,12 @@ export class IssueSyncManager extends IssueSyncManagerBase implements DocSyncMan const body = (await this.provider.getMarkdown(existingIssue.description)) ?? '' if (isGHWriteAllowed()) { const response: - | { - createIssue: { - issue: IssueExternalData - } - } - | undefined = await okit.graphql(q, { + | { + createIssue: { + issue: IssueExternalData + } + } + | undefined = await okit.graphql(q, { repo: repoId, title: existingIssue.title, body, diff --git a/services/github/pod-github/src/sync/pullrequests.ts b/services/github/pod-github/src/sync/pullrequests.ts index ebc6e9054d..94bf2349d6 100644 --- a/services/github/pod-github/src/sync/pullrequests.ts +++ b/services/github/pod-github/src/sync/pullrequests.ts @@ -73,7 +73,7 @@ import { } from './utils' type GithubPullRequestData = GithubIssueData & -Omit + Omit type GithubPullRequestUpdate = DocumentUpdate> @@ -81,7 +81,7 @@ export class PullRequestSyncManager extends IssueSyncManagerBase implements DocS externalDerivedSync = true @withContext('pullrequests-handleEvent') - async handleEvent( + async handleEvent ( ctx: MeasureContext, integration: IntegrationContainer, derivedClient: TxOperations, @@ -479,7 +479,7 @@ export class PullRequestSyncManager extends IssueSyncManagerBase implements DocS accountGH, { ...pullRequestData, - status: (await guessStatus(pullRequestExternal, statuses))._id as Ref + status: (await guessStatus(pullRequestExternal, statuses))._id }, pullRequestExternal, info.repository as Ref, @@ -611,8 +611,8 @@ export class PullRequestSyncManager extends IssueSyncManagerBase implements DocS ctx: MeasureContext, client: TxOperations, pullRequest: Pick< - GithubPullRequest, - '_id' | 'identifier' | 'reviewers' | 'title' | 'state' | 'space' | '_class' | 'modifiedBy' + GithubPullRequest, + '_id' | 'identifier' | 'reviewers' | 'title' | 'state' | 'space' | '_class' | 'modifiedBy' >, external: PullRequestExternalData, info: DocSyncInfo, @@ -849,8 +849,8 @@ export class PullRequestSyncManager extends IssueSyncManagerBase implements DocS private async requestFix ( client: TxOperations, pullRequest: Pick< - GithubPullRequest, - '_id' | 'identifier' | 'reviewers' | 'title' | 'space' | 'state' | 'space' | '_class' + GithubPullRequest, + '_id' | 'identifier' | 'reviewers' | 'title' | 'space' | 'state' | 'space' | '_class' >, external: PullRequestExternalData, todoUser: Ref, @@ -917,8 +917,7 @@ export class PullRequestSyncManager extends IssueSyncManagerBase implements DocS // We need to update status in case category are different const stInstance = - statuses.find((it) => it._id === status) ?? - ((await this.client.findOne(core.class.Status, { _id: status })) as Status) + statuses.find((it) => it._id === status) ?? (await this.client.findOne(core.class.Status, { _id: status })) let gs: IssueStatus | undefined if (pullRequestExternal.merged) { diff --git a/services/github/pod-github/src/sync/repository.ts b/services/github/pod-github/src/sync/repository.ts index 352ebbe071..1b472f136b 100644 --- a/services/github/pod-github/src/sync/repository.ts +++ b/services/github/pod-github/src/sync/repository.ts @@ -117,7 +117,7 @@ export class RepositorySyncMapper implements DocSyncManager { } @withContext('repository-handleEvent') - async handleEvent( + async handleEvent ( ctx: MeasureContext, integration: IntegrationContainer, derivedClient: TxOperations, @@ -291,8 +291,8 @@ export class RepositorySyncMapper implements DocSyncManager { let allRepos: GithubIntegrationRepository[] = [...allRepositories] const githubRepos: - | Repository - | Endpoints['GET /installation/repositories']['response']['data']['repositories'][0][] = [] + | Repository + | Endpoints['GET /installation/repositories']['response']['data']['repositories'][0][] = [] for await (const { repository } of iterable) { githubRepos.push(repository) } diff --git a/services/github/pod-github/src/sync/reviewComments.ts b/services/github/pod-github/src/sync/reviewComments.ts index d4214d6cf6..56afcd03b5 100644 --- a/services/github/pod-github/src/sync/reviewComments.ts +++ b/services/github/pod-github/src/sync/reviewComments.ts @@ -56,7 +56,7 @@ export class ReviewCommentSyncManager implements DocSyncManager { eventSync = new Map>() @withContext('review-comments-handleEvent') - async handleEvent( + async handleEvent ( ctx: MeasureContext, integration: IntegrationContainer, derivedClient: TxOperations, @@ -536,12 +536,12 @@ export class ReviewCommentSyncManager implements DocSyncManager { if (isGHWriteAllowed()) { const response: - | { - addPullRequestReviewThreadReply: { - comment: ReviewCommentExternalData - } - } - | undefined = await okit.graphql(q, { + | { + addPullRequestReviewThreadReply: { + comment: ReviewCommentExternalData + } + } + | undefined = await okit.graphql(q, { prID: existingReview.reviewThreadId, body: (await this.provider.getMarkdown(existingReview.body)) ?? '' }) diff --git a/services/github/pod-github/src/sync/reviewThreads.ts b/services/github/pod-github/src/sync/reviewThreads.ts index bd65b0ec32..07a73e0929 100644 --- a/services/github/pod-github/src/sync/reviewThreads.ts +++ b/services/github/pod-github/src/sync/reviewThreads.ts @@ -51,20 +51,20 @@ import config from '../config' import { githubConfiguration } from './configuration' export type ReviewThreadData = Pick< -GithubReviewThread, -| 'threadId' -| 'line' -| 'diffSide' -| 'startLine' -| 'isCollapsed' -| 'isPinned' -| 'isResolved' -| 'isOutdated' -| 'path' -| 'originalLine' -| 'originalStartLine' -| 'resolvedBy' -| 'startDiffSide' + GithubReviewThread, + | 'threadId' + | 'line' + | 'diffSide' + | 'startLine' + | 'isCollapsed' + | 'isPinned' + | 'isResolved' + | 'isOutdated' + | 'path' + | 'originalLine' + | 'originalStartLine' + | 'resolvedBy' + | 'startDiffSide' > export class ReviewThreadSyncManager implements DocSyncManager { @@ -86,7 +86,7 @@ export class ReviewThreadSyncManager implements DocSyncManager { eventSync = new Map>() @withContext('review-threads-handleEvent') - async handleEvent( + async handleEvent ( ctx: MeasureContext, integration: IntegrationContainer, derivedClient: TxOperations, @@ -483,12 +483,12 @@ export class ReviewThreadSyncManager implements DocSyncManager { if (isGHWriteAllowed()) { const response: - | { - addPullRequestReviewThread: { - thread: ReviewThreadExternalData - } - } - | undefined = await okit.graphql(q, { + | { + addPullRequestReviewThread: { + thread: ReviewThreadExternalData + } + } + | undefined = await okit.graphql(q, { prID: (parent.external as PullRequestExternalData).id, body: EmptyMarkup // TODO: Need to replace with first comment on comment sync. }) diff --git a/services/github/pod-github/src/sync/reviews.ts b/services/github/pod-github/src/sync/reviews.ts index 0519d46145..6a7f74da4e 100644 --- a/services/github/pod-github/src/sync/reviews.ts +++ b/services/github/pod-github/src/sync/reviews.ts @@ -56,7 +56,7 @@ export class ReviewSyncManager implements DocSyncManager { eventSync = new Map>() @withContext('reviews-handleEvent') - async handleEvent( + async handleEvent ( ctx: MeasureContext, integration: IntegrationContainer, derivedClient: TxOperations, @@ -457,12 +457,12 @@ export class ReviewSyncManager implements DocSyncManager { if (isGHWriteAllowed()) { const response: - | { - addPullRequestReview: { - pullRequestReview: ReviewExternalData - } - } - | undefined = await okit.graphql(q, { + | { + addPullRequestReview: { + pullRequestReview: ReviewExternalData + } + } + | undefined = await okit.graphql(q, { prID: (parent.external as PullRequestExternalData).id, body: (await this.provider.getMarkdown(existingReview.body)) ?? '', state: existingReview.state diff --git a/services/github/pod-github/src/sync/users.ts b/services/github/pod-github/src/sync/users.ts index f49f18e0e3..bf9b4346b9 100644 --- a/services/github/pod-github/src/sync/users.ts +++ b/services/github/pod-github/src/sync/users.ts @@ -40,7 +40,7 @@ export class UsersSyncManager implements DocSyncManager { return false } - async handleEvent( + async handleEvent ( ctx: MeasureContext, integration: IntegrationContainer, derivedClient: TxOperations, diff --git a/services/github/pod-github/src/sync/utils.ts b/services/github/pod-github/src/sync/utils.ts index 5667a6c9d9..f5ce57d827 100644 --- a/services/github/pod-github/src/sync/utils.ts +++ b/services/github/pod-github/src/sync/utils.ts @@ -215,7 +215,7 @@ export async function guessStatus ( export class SyncRunner { eventSync = new Map>() - async exec(id: string, op: () => Promise): Promise { + async exec (id: string, op: () => Promise): Promise { await this.eventSync.get(id) const promise = op() this.eventSync.set( diff --git a/services/github/pod-github/src/worker.ts b/services/github/pod-github/src/worker.ts index 530f0d35b0..6ce8bb7690 100644 --- a/services/github/pod-github/src/worker.ts +++ b/services/github/pod-github/src/worker.ts @@ -146,7 +146,7 @@ export class GithubWorker implements IntegrationManager { this.closing = true this.ctx.warn('Closing', { workspace: this.workspace }) this.triggerSync() - await Promise.all([await this.syncPromise, new Promise((resolve) => setTimeout(resolve, 5000))]) + await Promise.all([this.syncPromise, new Promise((resolve) => setTimeout(resolve, 5000))]) this.ctx.warn('Closing Done', { workspace: this.workspace }) await this.client.close() @@ -202,19 +202,19 @@ export class GithubWorker implements IntegrationManager { return compatible ? markup : jsonToMarkup({ - type: MarkupNodeType.doc, - content: [ - { - type: MarkupNodeType.markdown, - content: [ - { - type: MarkupNodeType.text, - text - } - ] - } - ] - }) + type: MarkupNodeType.doc, + content: [ + { + type: MarkupNodeType.markdown, + content: [ + { + type: MarkupNodeType.text, + text + } + ] + } + ] + }) } async getMarkup ( @@ -1434,8 +1434,8 @@ export class GithubWorker implements IntegrationManager { const docsMap = new Map, Doc>(externalDocs.map((it) => [it._id as Ref, it])) const orderedSyncInfo = [...syncInfo] orderedSyncInfo.sort((a, b) => { - const adoc = docsMap.get(a._id as Ref) - const bdoc = docsMap.get(a._id as Ref) + const adoc = docsMap.get(a._id) + const bdoc = docsMap.get(a._id) return (bdoc?.createdOn ?? 0) - (adoc?.createdOn ?? 0) }) @@ -1724,7 +1724,7 @@ export class GithubWorker implements IntegrationManager { } } - async handleEvent( + async handleEvent ( ctx: MeasureContext, requestClass: Ref>, integrationId: number | undefined, diff --git a/services/gmail/pod-gmail/src/__tests__/sync.test.ts b/services/gmail/pod-gmail/src/__tests__/sync.test.ts index a4c75532d0..9adc7497db 100644 --- a/services/gmail/pod-gmail/src/__tests__/sync.test.ts +++ b/services/gmail/pod-gmail/src/__tests__/sync.test.ts @@ -114,7 +114,7 @@ describe('SyncManager', () => { mockMessageManager, mockGmail, workspace, - mockKeyValueClient as any, + mockKeyValueClient, new RateLimiter(100, 100) ) }) diff --git a/services/gmail/pod-gmail/src/config.ts b/services/gmail/pod-gmail/src/config.ts index ebdf9ff17f..94f1a55d5c 100644 --- a/services/gmail/pod-gmail/src/config.ts +++ b/services/gmail/pod-gmail/src/config.ts @@ -61,7 +61,7 @@ const config: Config = (() => { const versionStr = process.env[envMap.Version] ?? 'v1' let version: IntegrationVersion if (versionStr === IntegrationVersion.V1 || versionStr === IntegrationVersion.V2) { - version = versionStr as IntegrationVersion + version = versionStr } else { throw new Error(`Invalid version: ${versionStr}. Must be 'v1' or 'v2'.`) } diff --git a/services/gmail/pod-gmail/src/gmail.ts b/services/gmail/pod-gmail/src/gmail.ts index 2c9a9e8313..3d6e795044 100644 --- a/services/gmail/pod-gmail/src/gmail.ts +++ b/services/gmail/pod-gmail/src/gmail.ts @@ -335,7 +335,7 @@ export class GmailClient { }) await this.workspace.subscribeMessages() for (const message of newMessages) { - await this.createMessage(message as NewMessage) + await this.createMessage(message) } } diff --git a/services/gmail/pod-gmail/src/gmailController.ts b/services/gmail/pod-gmail/src/gmailController.ts index 30457bdbdc..234f189ea7 100644 --- a/services/gmail/pod-gmail/src/gmailController.ts +++ b/services/gmail/pod-gmail/src/gmailController.ts @@ -56,8 +56,8 @@ export class GmailController { private readonly credentials: ProjectCredentials private readonly clients: Map> = new Map< - PersonId, - Map + PersonId, + Map >() private readonly personIdByEmail = new Map() diff --git a/services/gmail/pod-gmail/src/main.ts b/services/gmail/pod-gmail/src/main.ts index 8bff7a73de..34418fca93 100644 --- a/services/gmail/pod-gmail/src/main.ts +++ b/services/gmail/pod-gmail/src/main.ts @@ -112,7 +112,7 @@ export const main = async (): Promise => { try { ctx.info('Signin code request received') const code = req.query.code as string - state = JSON.parse(decode64(req.query.state as string)) as unknown as State + state = JSON.parse(decode64(req.query.state as string)) await gmailController.createClient(state, code) res.redirect(state.redirectURL) } catch (err: any) { diff --git a/services/love/src/workspaceClient.ts b/services/love/src/workspaceClient.ts index a8ce68395e..d4cf530806 100644 --- a/services/love/src/workspaceClient.ts +++ b/services/love/src/workspaceClient.ts @@ -436,9 +436,9 @@ export class WorkspaceClient { const place = roomDoc !== undefined ? getFreeRoomPlace(roomDoc, participants, person, { - x: participantMetadata.x ?? 0, - y: participantMetadata.y ?? 0 - }) + x: participantMetadata.x ?? 0, + y: participantMetadata.y ?? 0 + }) : { x: 0, y: 0 } const oid = generateId() @@ -527,7 +527,7 @@ export class WorkspaceClient { try { const socialIds = await this.client.findAll(contact.class.SocialIdentity, { attachedTo: personRef }, { limit: 1 }) if (socialIds.length > 0) { - return socialIds[0]._id as PersonId + return socialIds[0]._id } } catch (err: any) { this.ctx.error('[WorkspaceClient.getPersonIdByPersonRef] Failed', { diff --git a/services/mail/mail-common/src/__tests__/thread.test.ts b/services/mail/mail-common/src/__tests__/thread.test.ts index 70374e0f21..15c45c8183 100644 --- a/services/mail/mail-common/src/__tests__/thread.test.ts +++ b/services/mail/mail-common/src/__tests__/thread.test.ts @@ -48,7 +48,7 @@ describe('ThreadLookupService', () => { setValue: jest.fn(), deleteKey: jest.fn(), listKeys: jest.fn() - } as unknown as jest.Mocked + } }) afterEach(() => { diff --git a/services/mail/pod-mail-worker/src/__tests__/utils.test.ts b/services/mail/pod-mail-worker/src/__tests__/utils.test.ts index deacb9fc83..42e3e38636 100644 --- a/services/mail/pod-mail-worker/src/__tests__/utils.test.ts +++ b/services/mail/pod-mail-worker/src/__tests__/utils.test.ts @@ -92,7 +92,7 @@ describe('utils.ts', () => { headers: [['Content-Type', 'text/html; charset=utf-8']], contents: '

This is an HTML email

' } - } as any + } // Mock readEml to return HTML content ;(readEml as jest.Mock).mockImplementation((content, callback) => { @@ -125,7 +125,7 @@ describe('utils.ts', () => { contents: '--boundary\r\nContent-Type: text/plain\r\n\r\nText part\r\n--boundary\r\nContent-Type: text/html\r\n\r\n

HTML part

\r\n--boundary--' } - } as any + } // Mock readEml to return both text and HTML content ;(readEml as jest.Mock).mockImplementation((content, callback) => { diff --git a/services/notification/pod-events-processor/src/__tests__/worker.test.ts b/services/notification/pod-events-processor/src/__tests__/worker.test.ts index 79a32c7fd6..f6da3970d7 100644 --- a/services/notification/pod-events-processor/src/__tests__/worker.test.ts +++ b/services/notification/pod-events-processor/src/__tests__/worker.test.ts @@ -70,7 +70,7 @@ describe('handleScheduledNotification', () => { kind: 'eventReminder', id: 'timer-workslot-1', eventId: 'workslot-1' as any, - eventClass: time.class.WorkSlot as any, + eventClass: time.class.WorkSlot, shiftMs: 1000, targetDate: 1_000_000 } @@ -88,7 +88,7 @@ describe('handleScheduledNotification', () => { // -------------------------------------------------------------------------------- it('returns early for non-eventReminder messages (e.g. legacy todoReminder messages)', async () => { const legacy = { ...workSlotMessage, kind: 'todoReminder' as any } - await handleScheduledNotification(ctx, workspaceUuid, legacy as any, control) + await handleScheduledNotification(ctx, workspaceUuid, legacy, control) expect(getClient).not.toHaveBeenCalled() expect(control.heartbeat).not.toHaveBeenCalled() diff --git a/services/notification/pod-events-processor/src/worker.ts b/services/notification/pod-events-processor/src/worker.ts index 4658b96925..b4ff61867e 100644 --- a/services/notification/pod-events-processor/src/worker.ts +++ b/services/notification/pod-events-processor/src/worker.ts @@ -14,7 +14,7 @@ // import calendar from '@hcengineering/calendar' -import contact, { type Person, type PersonSpace } from '@hcengineering/contact' +import contact, { type PersonSpace } from '@hcengineering/contact' import core, { type AccountUuid, type Class, @@ -29,7 +29,7 @@ import core, { import type { ConsumerControl } from '@hcengineering/server-core' import notification, { type CommonInboxNotification, type DocNotifyContext } from '@hcengineering/notification' import { jsonToMarkup, nodeDoc, nodeParagraph, nodeText } from '@hcengineering/text-core' -import time, { type ToDo } from '@hcengineering/time' +import time from '@hcengineering/time' import { getClient, type ClientBundle } from './client' import type { ScheduledNotificationMessage } from './types' @@ -66,7 +66,7 @@ export async function handleScheduledNotification ( const { client } = bundle await control.heartbeat() - const event = (await client.findOne(msg.eventClass, { _id: msg.eventId })) as MinimalEvent | undefined + const event = await client.findOne(msg.eventClass, { _id: msg.eventId }) if (event === undefined) return await control.heartbeat() @@ -183,9 +183,9 @@ async function resolveReminderTarget ( const isToDoBacked = event.attachedToClass != null && hierarchy.isDerived(event.attachedToClass, time.class.ToDo) if (isToDoBacked && event.attachedTo != null && event.attachedToClass != null) { - const todo = (await client.findOne(event.attachedToClass as Ref>, { - _id: event.attachedTo as Ref - })) as ToDo | undefined + const todo = await client.findOne(event.attachedToClass, { + _id: event.attachedTo + }) if (todo === undefined) return undefined if (todo.doneOn != null) return undefined diff --git a/services/rating/src/calculator.ts b/services/rating/src/calculator.ts index 85e29840bb..40e2ea5a0c 100644 --- a/services/rating/src/calculator.ts +++ b/services/rating/src/calculator.ts @@ -237,7 +237,7 @@ export class RatingCalculator { const newState: MigrationState = { _id: generateId(), _class: core.class.MigrationState, - plugin: ratingId as string, + plugin: ratingId, state: 'v1', modifiedOn: Date.now(), modifiedBy: systemAccount.primarySocialId, @@ -595,7 +595,7 @@ export class RatingCalculator { } ) for (const p of parents) { - parentCache.set(p._id as Ref, p) + parentCache.set(p._id, p) if (p.createdBy != null) { personIds.add(p.createdBy) } @@ -623,7 +623,7 @@ export class RatingCalculator { } case core.class.TxRemoveDoc: { this.updatePersonStats(sysRating, tx.createdOn ?? tx.modifiedOn, 'delete', tx.objectClass) - await this.handleRatingDelete(ctx, tx as TxRemoveDoc, txAuthors) + await this.handleRatingDelete(ctx, tx, txAuthors) break } } @@ -675,12 +675,12 @@ export class RatingCalculator { } notifications = new Map< - AccountUuid, - { - oldRating: number - newRating: number - person: PersonRating - } + AccountUuid, + { + oldRating: number + newRating: number + person: PersonRating + } >() private async flushUpdates ( diff --git a/services/telegram-bot/pod-telegram-bot/src/limiter.ts b/services/telegram-bot/pod-telegram-bot/src/limiter.ts index ad48077e52..41dc14ce2c 100644 --- a/services/telegram-bot/pod-telegram-bot/src/limiter.ts +++ b/services/telegram-bot/pod-telegram-bot/src/limiter.ts @@ -42,7 +42,7 @@ export class Limiter { }, this.chatTimeLimit) } - async exec(op: () => Promise): Promise { + async exec (op: () => Promise): Promise { while (this.sentMsg >= this.maxMsgPerTime) { await new Promise((resolve) => setTimeout(resolve, Math.max(Date.now() - this.clearTimeLimitOn), 10)) } @@ -56,7 +56,7 @@ export class Limiter { } } - async add(telegramId: number, op: () => Promise): Promise { + async add (telegramId: number, op: () => Promise): Promise { await this.updateChatLimits(telegramId) if (this.sentMsg >= this.maxMsgPerTime) { diff --git a/services/telegram-bot/pod-telegram-bot/src/start.ts b/services/telegram-bot/pod-telegram-bot/src/start.ts index 7f312aab1b..b5dc522497 100644 --- a/services/telegram-bot/pod-telegram-bot/src/start.ts +++ b/services/telegram-bot/pod-telegram-bot/src/start.ts @@ -106,7 +106,8 @@ export const start = async (): Promise => { ) const onClose = (): void => { - void Promise.all([consumer.close(), worker.close(), server.close()]).then(() => { + server.close() + void Promise.all([consumer.close(), worker.close()]).then(() => { process.exit() }) } diff --git a/services/telegram-bot/pod-telegram-bot/src/telegraf/types.ts b/services/telegram-bot/pod-telegram-bot/src/telegraf/types.ts index adb0416364..fd90cd099f 100644 --- a/services/telegram-bot/pod-telegram-bot/src/telegraf/types.ts +++ b/services/telegram-bot/pod-telegram-bot/src/telegraf/types.ts @@ -17,9 +17,9 @@ import { Message, Update } from 'telegraf/typings/core/types/typegram' import { Context, Scenes } from 'telegraf' export type ReplyMessage = Update.New & -Update.NonChannel & -Message.TextMessage & -(Message.PhotoMessage | Message.VoiceMessage | Message.VideoMessage | Message.VideoNoteMessage) + Update.NonChannel & + Message.TextMessage & + (Message.PhotoMessage | Message.VoiceMessage | Message.VideoMessage | Message.VideoNoteMessage) export interface TgContext extends Context { processingKeyboards: Set diff --git a/services/telegram-bot/pod-telegram-bot/src/utils.ts b/services/telegram-bot/pod-telegram-bot/src/utils.ts index 550deca5d4..ccbd12a8cf 100644 --- a/services/telegram-bot/pod-telegram-bot/src/utils.ts +++ b/services/telegram-bot/pod-telegram-bot/src/utils.ts @@ -79,12 +79,12 @@ export function platformToTelegram (message: string, limit: number): string { let textLength = 0 let newMessage = '' const openedTags = new Map< - string, - { - count: number - hasContent: boolean - defaultText: string - } + string, + { + count: number + hasContent: boolean + defaultText: string + } >() const parser = new Parser({ @@ -254,12 +254,12 @@ export function toMediaGroups (files: PlatformFileInfo[], fullMessage: string, s export async function toTelegramFileInfo ( ctx: Context, message: - | Message.CommonMessage - | Message.PhotoMessage - | Message.VideoMessage - | Message.VoiceMessage - | Message.VideoNoteMessage - | Message.DocumentMessage + | Message.CommonMessage + | Message.PhotoMessage + | Message.VideoMessage + | Message.VoiceMessage + | Message.VideoNoteMessage + | Message.DocumentMessage ): Promise { try { if ('photo' in message) { diff --git a/services/telegram-bot/pod-telegram-bot/src/workspace.ts b/services/telegram-bot/pod-telegram-bot/src/workspace.ts index d7893f7454..7685369170 100644 --- a/services/telegram-bot/pod-telegram-bot/src/workspace.ts +++ b/services/telegram-bot/pod-telegram-bot/src/workspace.ts @@ -119,7 +119,7 @@ export class WorkspaceClient { } if (hierarchy.isDerived(objectClass, core.class.Space)) { - const space = await this.client.findOne(objectClass, { _id: objectId as Ref, members: account }) + const space = await this.client.findOne(objectClass, { _id: objectId, members: account }) return space !== undefined } @@ -282,7 +282,7 @@ export class WorkspaceClient { } async getPersons (_ids: AccountUuid[]): Promise { - return (await this.client.findAll(contact.class.Person, { personUuid: { $in: _ids } })) as Person[] + return await this.client.findAll(contact.class.Person, { personUuid: { $in: _ids } }) } async sendMessage ( diff --git a/services/worker/src/activities.ts b/services/worker/src/activities.ts index fef9aad9a4..735a5cd35c 100644 --- a/services/worker/src/activities.ts +++ b/services/worker/src/activities.ts @@ -11,7 +11,7 @@ export async function SendTimeEvent ( const SERVICE_NAME = 'time-machine' const queue = getPlatformQueue(SERVICE_NAME, config.QueueRegion) - const producer = queue.getProducer(ctx, topic as any) + const producer = queue.getProducer(ctx, topic) await producer.send(ctx, ws, [data]) } diff --git a/tests/sanity/tests/index.ts b/tests/sanity/tests/index.ts index 2bc696f229..0da3f56def 100644 --- a/tests/sanity/tests/index.ts +++ b/tests/sanity/tests/index.ts @@ -1,14 +1,14 @@ export * from './model/login-page' export * from './model/signin-page' export * from './model/common-page' -export * from './model/common-types' +export type * from './model/common-types' export * from './model/left-side-menu-page' export * from './model/signup-page' export * from './model/select-workspace-page' export * from './utils' export * from './model/tracker/issues-page' export * from './model/tracker/issues-details-page' -export * from './model/tracker/types' +export type * from './model/tracker/types' export * from './model/tracker/common-tracker-page' export * from './model/tracker/tracker-navigation-menu-page' export * from './model/profile/user-profile-page' diff --git a/tests/sanity/tests/tracker/layout.spec.ts b/tests/sanity/tests/tracker/layout.spec.ts index c8add228e5..242e656c76 100644 --- a/tests/sanity/tests/tracker/layout.spec.ts +++ b/tests/sanity/tests/tracker/layout.spec.ts @@ -107,7 +107,7 @@ test.describe('tracker layout tests', () => { // const orders = ['Status', 'Modified', 'Priority'] as const const orders = ['Modified', 'Priority'] as const const groups = ['Status', 'Assignee', 'Priority', 'Component', 'Milestone', 'No grouping'] as const - const groupsLabels: { [key in (typeof groups)[number]]?: string[] } = { + const groupsLabels: Partial> = { Status: DEFAULT_STATUSES, Assignee: [DEFAULT_USER, 'Chen Rosamund'], Priority: PRIORITIES, diff --git a/tests/sanity/tests/utils.ts b/tests/sanity/tests/utils.ts index 391d41d846..ab02d7f66f 100644 --- a/tests/sanity/tests/utils.ts +++ b/tests/sanity/tests/utils.ts @@ -175,7 +175,7 @@ export function expectToContainsOrdered (val: Locator, text: string[], timeout?: return expect(val).toHaveText(origIssuesExp, { timeout }) } -export async function * iterateLocator (locator: Locator): AsyncGenerator { +export async function* iterateLocator (locator: Locator): AsyncGenerator { for (let index = 0; index < (await locator.count()); index++) { yield locator.nth(index) } From 7a789f2def75bbd7a07c191018a6f483de64dff8 Mon Sep 17 00:00:00 2001 From: Artem Savchenko Date: Thu, 20 Aug 2026 08:25:33 +0700 Subject: [PATCH 24/55] Fix warnings Signed-off-by: Artem Savchenko (ported from TraceX c5f97eda5e) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- foundations/core/packages/query/src/index.ts | 9 +++++++-- plugins/bitrix/src/sync.ts | 11 ++++++++++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/foundations/core/packages/query/src/index.ts b/foundations/core/packages/query/src/index.ts index 8e052eaf5a..25dca37790 100644 --- a/foundations/core/packages/query/src/index.ts +++ b/foundations/core/packages/query/src/index.ts @@ -1084,12 +1084,17 @@ export class LiveQuery implements WithTx, Client { lookup: ReverseLookups, result: LookupData ): Promise { - for (const key of Object.keys(lookup._id)) { + const reverseLookup = lookup._id + if (reverseLookup === undefined) { + return + } + + for (const key of Object.keys(reverseLookup)) { if ((doc as any)[key] === undefined || (doc as any)[key] === 0) { continue } - const value = lookup._id[key] + const value = reverseLookup[key] let _class: Ref> let attr = 'attachedTo' diff --git a/plugins/bitrix/src/sync.ts b/plugins/bitrix/src/sync.ts index 22f40c7b8e..effc1c97b1 100644 --- a/plugins/bitrix/src/sync.ts +++ b/plugins/bitrix/src/sync.ts @@ -13,6 +13,7 @@ import core, { generateId, Hierarchy, Mixin, + MixinData, MixinUpdate, Ref, Space, @@ -71,7 +72,15 @@ async function updateMixin ( // We need to update fields if they are different. if (!client.getHierarchy().hasMixin(doc, mixin)) { - await client.createMixin(doc._id, doc._class, doc.space, mixin, raw, modifiedOn, modifiedBy) + await client.createMixin( + doc._id, + doc._class, + doc.space, + mixin, + raw as MixinData>, + modifiedOn, + modifiedBy + ) return doc } From 1c848be77b4e32391f99813b3915af890bdea48e Mon Sep 17 00:00:00 2001 From: Artem Savchenko Date: Thu, 20 Aug 2026 08:53:27 +0700 Subject: [PATCH 25/55] Fix warnings and Jest Signed-off-by: Artem Savchenko (ported from TraceX 0023e9eb05) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- desktop/package.json | 2 +- foundations/core/packages/text-core/package.json | 2 +- foundations/core/packages/text-ydoc/package.json | 2 +- .../server/packages/server-storage/src/fallback.ts | 7 +++++-- packages/presentation/package.json | 2 +- .../src/components/extension/reference.ts | 12 +++++++++--- .../pod-analytics-collector/src/server.ts | 2 +- .../notification/pod-events-processor/src/worker.ts | 6 +++--- 8 files changed, 22 insertions(+), 13 deletions(-) diff --git a/desktop/package.json b/desktop/package.json index 9aaaa3b446..ade7e0e4f8 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -76,7 +76,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "@testing-library/jest-dom": "^6.6.3", - "jest-environment-jsdom": "^30.2.0", + "jest-environment-jsdom": "^30.4.1", "eslint-plugin-svelte": "^3.23.0", "eslint-config-love": "^155.0.0" }, diff --git a/foundations/core/packages/text-core/package.json b/foundations/core/packages/text-core/package.json index 58f29e808b..1ea792f03b 100644 --- a/foundations/core/packages/text-core/package.json +++ b/foundations/core/packages/text-core/package.json @@ -36,7 +36,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "@types/markdown-it": "~13.0.0", - "jest-environment-jsdom": "^30.2.0", + "jest-environment-jsdom": "^30.4.1", "eslint-plugin-svelte": "^3.23.0", "eslint-config-love": "^155.0.0" }, diff --git a/foundations/core/packages/text-ydoc/package.json b/foundations/core/packages/text-ydoc/package.json index 0b475edc2c..3bc99683e2 100644 --- a/foundations/core/packages/text-ydoc/package.json +++ b/foundations/core/packages/text-ydoc/package.json @@ -35,7 +35,7 @@ "jest": "^30.4.2", "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", - "jest-environment-jsdom": "^30.2.0", + "jest-environment-jsdom": "^30.4.1", "fast-equals": "^5.2.2", "y-prosemirror": "^1.3.7", "eslint-plugin-svelte": "^3.23.0", diff --git a/foundations/server/packages/server-storage/src/fallback.ts b/foundations/server/packages/server-storage/src/fallback.ts index e4b60ff416..7d6f22f4a9 100644 --- a/foundations/server/packages/server-storage/src/fallback.ts +++ b/foundations/server/packages/server-storage/src/fallback.ts @@ -77,8 +77,11 @@ export class FallbackStorageAdapter implements StorageAdapter, StorageAdapterEx next: async () => { while (true) { if (iterator === undefined && adapters.length > 0) { - provider = adapters.shift() - iterator = await provider.adapter.listStream(ctx, wsIds) + const nextProvider = adapters.shift() + if (nextProvider !== undefined) { + provider = nextProvider + iterator = await provider.adapter.listStream(ctx, wsIds) + } } if (iterator === undefined) { return [] diff --git a/packages/presentation/package.json b/packages/presentation/package.json index 9249bafdb2..e3d51ed59a 100644 --- a/packages/presentation/package.json +++ b/packages/presentation/package.json @@ -36,7 +36,7 @@ "@types/jest": "^30.0.0", "@types/node": "^24.13.3", "@testing-library/jest-dom": "^6.6.3", - "jest-environment-jsdom": "^30.2.0", + "jest-environment-jsdom": "^30.4.1", "svelte-eslint-parser": "^1.8.1", "@types/png-chunks-extract": "^1.0.2" }, diff --git a/plugins/text-editor-resources/src/components/extension/reference.ts b/plugins/text-editor-resources/src/components/extension/reference.ts index 5ef6545b61..53cf7dbbdf 100644 --- a/plugins/text-editor-resources/src/components/extension/reference.ts +++ b/plugins/text-editor-resources/src/components/extension/reference.ts @@ -24,7 +24,7 @@ import Suggestion, { type SuggestionKeyDownProps, type SuggestionOptions, type S import { type Blob, type Class, type Doc, type Ref } from '@hcengineering/core' import { getMetadata, getResource, translate } from '@hcengineering/platform' import presentation, { createQuery, getBlobRef, getClient, MessageBox } from '@hcengineering/presentation' -import view from '@hcengineering/view' +import view, { type ObjectTooltip, type ReferenceObjectProvider } from '@hcengineering/view' import activity, { type ActivityMessage } from '@hcengineering/activity' import contact from '@hcengineering/contact' import { parseLocation, showPopup, tooltip, type LabelAndProps, type Location, fromCodePoint } from '@hcengineering/ui' @@ -418,7 +418,10 @@ async function getReferenceTooltip ( const client = getClient() const hierarchy = client.getHierarchy() - const mixin = hierarchy.classHierarchyMixin(objectclass, view.mixin.ObjectTooltip) + const mixin = hierarchy.classHierarchyMixin( + objectclass, + view.mixin.ObjectTooltip + ) if (mixin?.provider !== undefined) { const providerFn = await getResource(mixin.provider) @@ -489,7 +492,10 @@ export async function getReferenceObject ( return message } - const referenceObjectProvider = hierarchy.classHierarchyMixin(objectclass, view.mixin.ReferenceObjectProvider) + const referenceObjectProvider = hierarchy.classHierarchyMixin( + objectclass, + view.mixin.ReferenceObjectProvider + ) const referenceObjectProviderFn = referenceObjectProvider !== undefined ? await getResource(referenceObjectProvider.provider) : undefined diff --git a/services/analytics-collector/pod-analytics-collector/src/server.ts b/services/analytics-collector/pod-analytics-collector/src/server.ts index f87d7e5d7c..2b5e9d010b 100644 --- a/services/analytics-collector/pod-analytics-collector/src/server.ts +++ b/services/analytics-collector/pod-analytics-collector/src/server.ts @@ -108,7 +108,7 @@ function getRecordsByType (event: AnalyticEvent): Record { } default: return { - event: typeof event.event === 'string' && event.event.length > 0 ? event.event : 'unknown_event' + event: 'unknown_event' } } } diff --git a/services/notification/pod-events-processor/src/worker.ts b/services/notification/pod-events-processor/src/worker.ts index b4ff61867e..01896ff6cf 100644 --- a/services/notification/pod-events-processor/src/worker.ts +++ b/services/notification/pod-events-processor/src/worker.ts @@ -29,7 +29,7 @@ import core, { import type { ConsumerControl } from '@hcengineering/server-core' import notification, { type CommonInboxNotification, type DocNotifyContext } from '@hcengineering/notification' import { jsonToMarkup, nodeDoc, nodeParagraph, nodeText } from '@hcengineering/text-core' -import time from '@hcengineering/time' +import time, { type ToDo } from '@hcengineering/time' import { getClient, type ClientBundle } from './client' import type { ScheduledNotificationMessage } from './types' @@ -183,8 +183,8 @@ async function resolveReminderTarget ( const isToDoBacked = event.attachedToClass != null && hierarchy.isDerived(event.attachedToClass, time.class.ToDo) if (isToDoBacked && event.attachedTo != null && event.attachedToClass != null) { - const todo = await client.findOne(event.attachedToClass, { - _id: event.attachedTo + const todo = await client.findOne(event.attachedToClass, { + _id: event.attachedTo as Ref }) if (todo === undefined) return undefined if (todo.doneOn != null) return undefined From dab85226181d0a9d73071e1190005b79cb7b9ff4 Mon Sep 17 00:00:00 2001 From: Artem Savchenko Date: Thu, 20 Aug 2026 09:26:45 +0700 Subject: [PATCH 26/55] Fix warnings Signed-off-by: Artem Savchenko (ported from TraceX 94a8492f4a) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- .../src/components/extension/todo/todo.ts | 8 ++++---- services/github/pod-github/src/sync/pullrequests.ts | 2 +- services/gmail/pod-gmail/src/main.ts | 7 ++++--- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/plugins/text-editor-resources/src/components/extension/todo/todo.ts b/plugins/text-editor-resources/src/components/extension/todo/todo.ts index 3a0d3e0966..4f5c5946ad 100644 --- a/plugins/text-editor-resources/src/components/extension/todo/todo.ts +++ b/plugins/text-editor-resources/src/components/extension/todo/todo.ts @@ -29,6 +29,7 @@ import { type DOMOutputSpec, DOMParser, type Attrs, + type ParseRule, type TagParseRule } from '@tiptap/pm/model' import { @@ -236,13 +237,12 @@ export function TodoItemPastePlugin (editor: Editor): Plugin editor.view.someProp('clipboardParser') ?? editor.view.someProp('domParser') ?? DOMParser.fromSchema(editor.view.state.schema) + const isTagParseRule = (rule: ParseRule): rule is TagParseRule => rule.tag !== undefined const parseRules = prevClipboardParser.rules.map((rule) => { - if (rule.tag === undefined) { + if (!isTagParseRule(rule)) { return rule } - // Strange conversion to be ok for both typescript and eslint - // Is ok because rule with 'tag' property is already TagParseRule - const tagRule: TagParseRule = rule + const tagRule = rule if (tagRule.node !== 'todoItem') { return rule } diff --git a/services/github/pod-github/src/sync/pullrequests.ts b/services/github/pod-github/src/sync/pullrequests.ts index 94bf2349d6..3062dea185 100644 --- a/services/github/pod-github/src/sync/pullrequests.ts +++ b/services/github/pod-github/src/sync/pullrequests.ts @@ -925,7 +925,7 @@ export class PullRequestSyncManager extends IssueSyncManagerBase implements DocS } // If PR is merged or closed, we need to update platform issue status - if (gs !== undefined && stInstance.category !== gs.category) { + if (gs !== undefined && stInstance?.category !== gs.category) { update.status = gs._id } } diff --git a/services/gmail/pod-gmail/src/main.ts b/services/gmail/pod-gmail/src/main.ts index 34418fca93..2f228086f6 100644 --- a/services/gmail/pod-gmail/src/main.ts +++ b/services/gmail/pod-gmail/src/main.ts @@ -112,9 +112,10 @@ export const main = async (): Promise => { try { ctx.info('Signin code request received') const code = req.query.code as string - state = JSON.parse(decode64(req.query.state as string)) - await gmailController.createClient(state, code) - res.redirect(state.redirectURL) + const parsedState = JSON.parse(decode64(req.query.state as string)) as State + state = parsedState + await gmailController.createClient(parsedState, code) + res.redirect(parsedState.redirectURL) } catch (err: any) { ctx.error('Failed to process signin code', { message: err.message }) if (state !== undefined) { From d12ae0061c028f9eee55d0e3741a105b91c59aab Mon Sep 17 00:00:00 2001 From: Artem Savchenko Date: Sat, 22 Aug 2026 22:20:51 +0700 Subject: [PATCH 27/55] Disable type export rule Signed-off-by: Artem Savchenko (ported from TraceX 905e8fa18b) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- .../packages/platform-rig/profiles/assets/eslint.config.json | 1 + .../packages/platform-rig/profiles/default/eslint.config.json | 1 + .../packages/platform-rig/profiles/model/eslint.config.json | 1 + .../utils/packages/platform-rig/profiles/node/eslint.config.json | 1 + .../packages/platform-rig/profiles/package/eslint.config.json | 1 + .../utils/packages/platform-rig/profiles/ui/eslint.config.json | 1 + 6 files changed, 6 insertions(+) diff --git a/foundations/utils/packages/platform-rig/profiles/assets/eslint.config.json b/foundations/utils/packages/platform-rig/profiles/assets/eslint.config.json index 51c13994f1..1ef88ecd41 100644 --- a/foundations/utils/packages/platform-rig/profiles/assets/eslint.config.json +++ b/foundations/utils/packages/platform-rig/profiles/assets/eslint.config.json @@ -4,6 +4,7 @@ ], "ignorePatterns": ["*.json", "node_modules/*", ".eslintrc.js"], "rules": { + "@typescript-eslint/consistent-type-exports": "off", "@typescript-eslint/array-type": "off", "@typescript-eslint/promise-function-async": "off" } diff --git a/foundations/utils/packages/platform-rig/profiles/default/eslint.config.json b/foundations/utils/packages/platform-rig/profiles/default/eslint.config.json index f91dabca82..28f819efce 100644 --- a/foundations/utils/packages/platform-rig/profiles/default/eslint.config.json +++ b/foundations/utils/packages/platform-rig/profiles/default/eslint.config.json @@ -4,6 +4,7 @@ ], "ignorePatterns": ["*.json", "node_modules/*", ".eslintrc.js"], "rules": { + "@typescript-eslint/consistent-type-exports": "off", "@typescript-eslint/array-type": "off", "@typescript-eslint/promise-function-async": "off", "@typescript-eslint/consistent-type-imports": "off" diff --git a/foundations/utils/packages/platform-rig/profiles/model/eslint.config.json b/foundations/utils/packages/platform-rig/profiles/model/eslint.config.json index 51c13994f1..1ef88ecd41 100644 --- a/foundations/utils/packages/platform-rig/profiles/model/eslint.config.json +++ b/foundations/utils/packages/platform-rig/profiles/model/eslint.config.json @@ -4,6 +4,7 @@ ], "ignorePatterns": ["*.json", "node_modules/*", ".eslintrc.js"], "rules": { + "@typescript-eslint/consistent-type-exports": "off", "@typescript-eslint/array-type": "off", "@typescript-eslint/promise-function-async": "off" } diff --git a/foundations/utils/packages/platform-rig/profiles/node/eslint.config.json b/foundations/utils/packages/platform-rig/profiles/node/eslint.config.json index eccad255ce..8618aa30f6 100644 --- a/foundations/utils/packages/platform-rig/profiles/node/eslint.config.json +++ b/foundations/utils/packages/platform-rig/profiles/node/eslint.config.json @@ -4,6 +4,7 @@ ], "ignorePatterns": ["*.json", "node_modules/*", ".eslintrc.js"], "rules": { + "@typescript-eslint/consistent-type-exports": "off", "@typescript-eslint/array-type": "off", "@typescript-eslint/promise-function-async": "off" } diff --git a/foundations/utils/packages/platform-rig/profiles/package/eslint.config.json b/foundations/utils/packages/platform-rig/profiles/package/eslint.config.json index 5fc789658b..18ecca5d60 100644 --- a/foundations/utils/packages/platform-rig/profiles/package/eslint.config.json +++ b/foundations/utils/packages/platform-rig/profiles/package/eslint.config.json @@ -4,6 +4,7 @@ ], "ignorePatterns": ["*.json", "node_modules/*", ".eslintrc.js"], "rules": { + "@typescript-eslint/consistent-type-exports": "off", "@typescript-eslint/array-type": "off", "@typescript-eslint/promise-function-async": "off", "@typescript-eslint/consistent-type-imports": "off" diff --git a/foundations/utils/packages/platform-rig/profiles/ui/eslint.config.json b/foundations/utils/packages/platform-rig/profiles/ui/eslint.config.json index 538de3db4d..9b901ef5b6 100644 --- a/foundations/utils/packages/platform-rig/profiles/ui/eslint.config.json +++ b/foundations/utils/packages/platform-rig/profiles/ui/eslint.config.json @@ -60,6 +60,7 @@ } ], "rules": { + "@typescript-eslint/consistent-type-exports": "off", "svelte/no-at-html-tags": "error" } } From 1ea7839257c0293c7d78b8894709a1c31abcb03c Mon Sep 17 00:00:00 2001 From: Artem Savchenko Date: Mon, 24 Aug 2026 22:15:27 +0700 Subject: [PATCH 28/55] Remove custom rule Signed-off-by: Artem Savchenko (ported from TraceX 284e905a8f) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- dev/doc-import-tool/src/extract/container.ts | 2 +- .../packages/account-client/src/client.ts | 2 +- .../core/packages/api-client/src/client.ts | 22 ++++---- .../packages/api-client/src/rest/adapter.ts | 6 +-- .../core/packages/api-client/src/rest/rest.ts | 20 +++---- .../core/packages/api-client/src/rest/tx.ts | 4 +- .../src/__tests__/integration.test.ts | 2 +- .../client-resources/src/connection.ts | 2 +- .../client/src/__tests__/client.test.ts | 2 +- .../collaborator-client/src/client.ts | 2 +- .../packages/core/src/__tests__/memdb.test.ts | 4 +- foundations/core/packages/core/src/client.ts | 4 +- .../core/packages/core/src/hierarchy.ts | 42 +++++++-------- foundations/core/packages/core/src/memdb.ts | 22 ++++---- .../core/packages/core/src/operations.ts | 30 +++++------ foundations/core/packages/core/src/tx.ts | 32 ++++++------ foundations/core/packages/core/src/utils.ts | 8 +-- .../packages/hulylake-client/src/client.ts | 4 +- .../measurements-otlp/src/telemetry.ts | 4 +- .../core/packages/measurements/src/context.ts | 10 ++-- foundations/core/packages/model/src/dsl.ts | 4 +- .../query/src/__tests__/connection.ts | 4 +- foundations/core/packages/query/src/index.ts | 22 ++++---- foundations/core/packages/query/src/refs.ts | 2 +- .../core/packages/query/src/results.ts | 4 +- foundations/core/packages/rpc/src/rpc.ts | 4 +- foundations/server/packages/core/src/base.ts | 8 +-- .../packages/core/src/benchmark/index.ts | 2 +- foundations/server/packages/core/src/mem.ts | 14 ++--- .../server/packages/core/src/pipeline.ts | 6 +-- .../packages/core/src/queue/dummyQueue.ts | 4 +- foundations/server/packages/core/src/utils.ts | 4 +- .../server/packages/datalake/src/index.ts | 2 +- .../server/packages/kafka/src/index.ts | 4 +- .../packages/middleware/src/domainFind.ts | 4 +- .../packages/middleware/src/findSecurity.ts | 2 +- .../packages/middleware/src/fulltext.ts | 8 +-- .../server/packages/middleware/src/lookup.ts | 4 +- .../packages/middleware/src/lowLevel.ts | 8 +-- .../server/packages/middleware/src/model.ts | 2 +- .../server/packages/middleware/src/private.ts | 4 +- .../packages/middleware/src/queryJoin.ts | 6 +-- .../packages/middleware/src/spaceSecurity.ts | 6 +-- .../packages/middleware/src/triggers.ts | 2 +- .../packages/middleware/src/versioning.ts | 2 +- .../server/packages/mongo/src/storage.ts | 52 +++++++++---------- .../server/packages/mongo/src/utils.ts | 2 +- .../server/packages/postgres/src/storage.ts | 52 +++++++++---------- .../server/packages/server/src/client.ts | 4 +- .../packages/server/src/sessionManager.ts | 6 +-- .../server/packages/server/src/workspace.ts | 2 +- packages/importer/src/importer/builder.ts | 2 +- .../importer/src/importer/preprocessor.ts | 2 +- packages/integration-client/src/client.ts | 4 +- packages/integration-client/src/events.ts | 4 +- packages/kvs-client/src/client.ts | 6 +-- .../src/__mocks__/svelte-store.ts | 8 +-- packages/presentation/src/__mocks__/svelte.ts | 4 +- packages/presentation/src/configuration.ts | 2 +- packages/presentation/src/drafts.ts | 2 +- packages/presentation/src/pipeline.ts | 34 ++++++------ packages/presentation/src/utils.ts | 14 ++--- packages/ui/src/colors.ts | 4 +- plugins/devmodel-resources/src/index.ts | 4 +- plugins/emoji/src/utils.ts | 4 +- plugins/view-resources/src/middleware.ts | 6 +-- plugins/view-resources/src/utils.ts | 2 +- pods/media/src/client.ts | 6 +-- pods/server/src/__tests__/server.test.ts | 4 +- .../src/migration/collections/mongo.ts | 4 +- server/server-pipeline/src/blobStorage.ts | 12 ++--- server/tool/src/initializer.ts | 18 +++---- server/tool/src/upgrade.ts | 18 +++---- .../billing/pod-billing/src/db/postgres.ts | 2 +- services/calendar/pod-calendar/src/sync.ts | 2 +- .../datalake/pod-datalake/src/datalake/db.ts | 2 +- .../src/__tests__/data-mapper.test.ts | 4 +- .../__tests__/product-version-handler.test.ts | 2 +- .../src/__tests__/relation-exporter.test.ts | 2 +- .../src/__tests__/workspace-exporter.test.ts | 10 ++-- .../github/pod-github/src/sync/comments.ts | 2 +- .../github/pod-github/src/sync/issueBase.ts | 8 +-- services/github/pod-github/src/sync/issues.ts | 2 +- .../pod-github/src/sync/pullrequests.ts | 2 +- .../github/pod-github/src/sync/repository.ts | 2 +- .../pod-github/src/sync/reviewComments.ts | 2 +- .../pod-github/src/sync/reviewThreads.ts | 2 +- .../github/pod-github/src/sync/reviews.ts | 2 +- services/github/pod-github/src/sync/users.ts | 2 +- services/github/pod-github/src/sync/utils.ts | 2 +- services/github/pod-github/src/worker.ts | 2 +- services/rekoni/src/server.ts | 2 +- .../pod-telegram-bot/src/limiter.ts | 4 +- services/telegram/pod-telegram/src/config.ts | 2 +- 94 files changed, 349 insertions(+), 349 deletions(-) diff --git a/dev/doc-import-tool/src/extract/container.ts b/dev/doc-import-tool/src/extract/container.ts index de6546923b..cee34bfeb0 100644 --- a/dev/doc-import-tool/src/extract/container.ts +++ b/dev/doc-import-tool/src/extract/container.ts @@ -25,7 +25,7 @@ export abstract class Container { return this.title } - abstract getArray(): Container[] + abstract getArray (): Container[] } export class TableContainer extends Container { diff --git a/foundations/core/packages/account-client/src/client.ts b/foundations/core/packages/account-client/src/client.ts index 21d8ab109d..bc3aac4aec 100644 --- a/foundations/core/packages/account-client/src/client.ts +++ b/foundations/core/packages/account-client/src/client.ts @@ -327,7 +327,7 @@ class AccountClientImpl implements AccountClient { })() } - private async _rpc (request: Request): Promise { + private async _rpc(request: Request): Promise { const timezone = getClientTimezone() const meta: Record = timezone !== undefined ? { 'x-timezone': timezone } : {} const response = await fetch(this.url, { diff --git a/foundations/core/packages/api-client/src/client.ts b/foundations/core/packages/api-client/src/client.ts index 1e9b32b975..cc52f7035c 100644 --- a/foundations/core/packages/api-client/src/client.ts +++ b/foundations/core/packages/api-client/src/client.ts @@ -143,7 +143,7 @@ class PlatformClientImpl implements PlatformClient { return this.account } - async findOne ( + async findOne( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -151,7 +151,7 @@ class PlatformClientImpl implements PlatformClient { return await this.client.findOne(_class, query, options) } - async findAll ( + async findAll( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -179,7 +179,7 @@ class PlatformClientImpl implements PlatformClient { await this.connection.close() } - private async processMarkup (_class: Ref>, id: Ref, data: WithMarkup): Promise { + private async processMarkup(_class: Ref>, id: Ref, data: WithMarkup): Promise { const result: any = {} for (const [key, value] of Object.entries(data)) { @@ -195,7 +195,7 @@ class PlatformClientImpl implements PlatformClient { // DocOperations - async createDoc ( + async createDoc( _class: Ref>, space: Ref, attributes: WithMarkup>, @@ -206,7 +206,7 @@ class PlatformClientImpl implements PlatformClient { return await this.client.createDoc(_class, space, data, id) } - async updateDoc ( + async updateDoc( _class: Ref>, space: Ref, objectId: Ref, @@ -217,13 +217,13 @@ class PlatformClientImpl implements PlatformClient { return await this.client.updateDoc(_class, space, objectId, update, retrieve) } - async removeDoc (_class: Ref>, space: Ref, objectId: Ref): Promise { + async removeDoc(_class: Ref>, space: Ref, objectId: Ref): Promise { return await this.client.removeDoc(_class, space, objectId) } // CollectionOperations - async addCollection ( + async addCollection( _class: Ref>, space: Ref, attachedTo: Ref, @@ -237,7 +237,7 @@ class PlatformClientImpl implements PlatformClient { return await this.client.addCollection(_class, space, attachedTo, attachedToClass, collection, data, id) } - async updateCollection ( + async updateCollection( _class: Ref>, space: Ref, objectId: Ref

, @@ -260,7 +260,7 @@ class PlatformClientImpl implements PlatformClient { ) } - async removeCollection ( + async removeCollection( _class: Ref>, space: Ref, objectId: Ref

, @@ -273,7 +273,7 @@ class PlatformClientImpl implements PlatformClient { // MixinOperations - async createMixin ( + async createMixin( objectId: Ref, objectClass: Ref>, objectSpace: Ref, @@ -284,7 +284,7 @@ class PlatformClientImpl implements PlatformClient { return await this.client.createMixin(objectId, objectClass, objectSpace, mixin, data) } - async updateMixin ( + async updateMixin( objectId: Ref, objectClass: Ref>, objectSpace: Ref, diff --git a/foundations/core/packages/api-client/src/rest/adapter.ts b/foundations/core/packages/api-client/src/rest/adapter.ts index 01e7f3ae8f..ea0039e6e4 100644 --- a/foundations/core/packages/api-client/src/rest/adapter.ts +++ b/foundations/core/packages/api-client/src/rest/adapter.ts @@ -47,7 +47,7 @@ export class RestClientAdapter implements Client { private readonly model: ModelDb | undefined ) {} - async domainRequest ( + async domainRequest( domain: OperationDomain, params: DomainParams, options?: DomainRequestOptions @@ -55,7 +55,7 @@ export class RestClientAdapter implements Client { return await this.client.domainRequest(domain, params, options) } - async findAll ( + async findAll( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -83,7 +83,7 @@ export class RestClientAdapter implements Client { return await this.client.tx(tx) } - async findOne ( + async findOne( _class: Ref>, query: DocumentQuery, options?: FindOptions diff --git a/foundations/core/packages/api-client/src/rest/rest.ts b/foundations/core/packages/api-client/src/rest/rest.ts index 6242ed040a..a098ca9703 100644 --- a/foundations/core/packages/api-client/src/rest/rest.ts +++ b/foundations/core/packages/api-client/src/rest/rest.ts @@ -106,7 +106,7 @@ export class RestClientImpl implements RestClient { } } - async findAll ( + async findAll( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -332,7 +332,7 @@ export class RestClientImpl implements RestClient { return result } - async findOne ( + async findOne( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -395,7 +395,7 @@ export class RestClientImpl implements RestClient { return result } - async domainRequest ( + async domainRequest( domain: OperationDomain, params: DomainParams, options?: DomainRequestOptions @@ -455,7 +455,7 @@ export class RestClientImpl implements RestClient { return result } - private async v1op (op: string, data: any): Promise

{ + private async v1op(op: string, data: any): Promise

{ const requestUrl = concatLink(this.endpoint, `/api/v1/${op}/${this.workspace}`) await this.checkRate() const result = await withRetry<{ result?: Ref, error?: Status }>(async () => { @@ -478,7 +478,7 @@ export class RestClientImpl implements RestClient { return result as P } - createDoc ( + createDoc( _class: Ref>, space: Ref, attributes: Data, @@ -496,7 +496,7 @@ export class RestClientImpl implements RestClient { }) } - addCollection ( + addCollection( _class: Ref>, space: Ref, attachedTo: Ref, @@ -520,7 +520,7 @@ export class RestClientImpl implements RestClient { }) } - update ( + update( doc: T, update: DocumentUpdate, retrieve?: boolean, @@ -545,7 +545,7 @@ export class RestClientImpl implements RestClient { return this.v1op('update', req) } - remove (doc: T, modifiedOn?: Timestamp, modifiedBy?: PersonId): Promise { + remove(doc: T, modifiedOn?: Timestamp, modifiedBy?: PersonId): Promise { const req = { _class: doc._class, _id: doc._id, @@ -562,7 +562,7 @@ export class RestClientImpl implements RestClient { return this.v1op('remove', req) } - createMixin ( + createMixin( objectId: Ref, objectClass: Ref>, objectSpace: Ref, @@ -582,7 +582,7 @@ export class RestClientImpl implements RestClient { }) } - updateMixin ( + updateMixin( objectId: Ref, objectClass: Ref>, objectSpace: Ref, diff --git a/foundations/core/packages/api-client/src/rest/tx.ts b/foundations/core/packages/api-client/src/rest/tx.ts index fe91671b8b..592b16ade0 100644 --- a/foundations/core/packages/api-client/src/rest/tx.ts +++ b/foundations/core/packages/api-client/src/rest/tx.ts @@ -68,7 +68,7 @@ class RestTxClient implements Client { return Promise.resolve() } - async findAll ( + async findAll( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -119,7 +119,7 @@ class RestTxClient implements Client { return await this.client.domainRequest(domain, params, options) } - async findOne ( + async findOne( _class: Ref>, query: DocumentQuery, options?: FindOptions diff --git a/foundations/core/packages/client-resources/src/__tests__/integration.test.ts b/foundations/core/packages/client-resources/src/__tests__/integration.test.ts index f144c2e3eb..c0f6b2642e 100644 --- a/foundations/core/packages/client-resources/src/__tests__/integration.test.ts +++ b/foundations/core/packages/client-resources/src/__tests__/integration.test.ts @@ -167,7 +167,7 @@ export class MockClientConnection implements ClientConnection { this.handlers.push(handler) } - async findAll ( + async findAll( _class: Ref>, query: DocumentQuery, options?: FindOptions diff --git a/foundations/core/packages/client-resources/src/connection.ts b/foundations/core/packages/client-resources/src/connection.ts index db857400f3..d1757cff4d 100644 --- a/foundations/core/packages/client-resources/src/connection.ts +++ b/foundations/core/packages/client-resources/src/connection.ts @@ -896,7 +896,7 @@ class Connection implements ClientConnection { return this.sendRequest({ method: 'getAccount', params: [] }) } - async findAll ( + async findAll( _class: Ref>, query: DocumentQuery, options?: FindOptions diff --git a/foundations/core/packages/client/src/__tests__/client.test.ts b/foundations/core/packages/client/src/__tests__/client.test.ts index 6b2c77d0ae..8e71ac8fb6 100644 --- a/foundations/core/packages/client/src/__tests__/client.test.ts +++ b/foundations/core/packages/client/src/__tests__/client.test.ts @@ -161,7 +161,7 @@ class TestConnection implements ClientConnection { this.handlers.push(handler) } - async findAll ( + async findAll( _class: Ref>, query: DocumentQuery, options?: FindOptions diff --git a/foundations/core/packages/collaborator-client/src/client.ts b/foundations/core/packages/collaborator-client/src/client.ts index c4b77aeae3..8cabaf1285 100644 --- a/foundations/core/packages/collaborator-client/src/client.ts +++ b/foundations/core/packages/collaborator-client/src/client.ts @@ -66,7 +66,7 @@ class CollaboratorClientImpl implements CollaboratorClient { private readonly collaboratorUrl: string ) {} - private async rpc (document: CollaborativeDoc, method: string, payload: P): Promise { + private async rpc(document: CollaborativeDoc, method: string, payload: P): Promise { const workspace = this.workspace const documentId = encodeDocumentId(workspace, document) diff --git a/foundations/core/packages/core/src/__tests__/memdb.test.ts b/foundations/core/packages/core/src/__tests__/memdb.test.ts index f2396edba9..13dba37778 100644 --- a/foundations/core/packages/core/src/__tests__/memdb.test.ts +++ b/foundations/core/packages/core/src/__tests__/memdb.test.ts @@ -47,7 +47,7 @@ class ClientModel extends ModelDb implements Client { return this } - async findOne ( + async findOne( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -94,7 +94,7 @@ class ClientModel extends ModelDb implements Client { return { docs: [] } } - async domainRequest ( + async domainRequest( domain: OperationDomain, params: DomainParams, options?: DomainRequestOptions diff --git a/foundations/core/packages/core/src/client.ts b/foundations/core/packages/core/src/client.ts index d8bdb8c5f5..4b1e4a29dd 100644 --- a/foundations/core/packages/core/src/client.ts +++ b/foundations/core/packages/core/src/client.ts @@ -157,7 +157,7 @@ class ClientImpl implements Client, BackupClient { return this.model } - async findAll ( + async findAll( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -262,7 +262,7 @@ class ClientImpl implements Client, BackupClient { return await this.conn.domainRequest(ctx, params, options) } - async findOne ( + async findOne( _class: Ref>, query: DocumentQuery, options?: FindOptions diff --git a/foundations/core/packages/core/src/hierarchy.ts b/foundations/core/packages/core/src/hierarchy.ts index 409a549c07..d2bd0370e5 100644 --- a/foundations/core/packages/core/src/hierarchy.ts +++ b/foundations/core/packages/core/src/hierarchy.ts @@ -52,46 +52,46 @@ export class Hierarchy { return handler } - as (doc: D, mixin: Ref>): M { + as(doc: D, mixin: Ref>): M { if ((doc as any)[PROXY_MIXIN_CLASS_KEY] === mixin) return doc as M return new Proxy(Hierarchy.toDoc(doc), this.getMixinProxyHandler(mixin)) as M } - asIf (doc: D | undefined, mixin: Ref>): M | undefined { + asIf(doc: D | undefined, mixin: Ref>): M | undefined { if (doc === undefined) { return undefined } return this.hasMixin(doc, mixin) ? this.as(doc, mixin) : undefined } - asIfArray (docs: D[], mixin: Ref>): M[] { + asIfArray(docs: D[], mixin: Ref>): M[] { return docs.map((it) => this.asIf(it, mixin)).filter((it) => it !== undefined) } - static toDoc (doc: D): D { + static toDoc(doc: D): D { return _toDoc(doc) } - static mixinClass (doc: D): Ref> | undefined { + static mixinClass(doc: D): Ref> | undefined { return _mixinClass(doc) } - static mixinOrClass (doc: D): Ref | Class> { + static mixinOrClass(doc: D): Ref | Class> { const m = _mixinClass(doc) return m ?? doc._class } - static hasMixin (doc: D, mixin: Ref>): boolean { + static hasMixin(doc: D, mixin: Ref>): boolean { const d = Hierarchy.toDoc(doc) return typeof (d as any)[mixin] === 'object' } - hasMixin (doc: D, mixin: Ref>): boolean { + hasMixin(doc: D, mixin: Ref>): boolean { return Hierarchy.hasMixin(doc, mixin) } - classHierarchyMixin ( + classHierarchyMixin( _class: Ref>, mixin: Ref>, filter?: (value: M) => boolean @@ -109,7 +109,7 @@ export class Hierarchy { } } - findClassOrMixinMixin (doc: Doc, mixin: Ref>): M | undefined { + findClassOrMixinMixin(doc: Doc, mixin: Ref>): M | undefined { const cc = this.classHierarchyMixin(doc._class, mixin) if (cc !== undefined) { return cc @@ -127,7 +127,7 @@ export class Hierarchy { } } - findMixinMixins (doc: Doc, mixin: Ref>): M[] { + findMixinMixins(doc: Doc, mixin: Ref>): M[] { const _doc = _toDoc(doc) const result: M[] = [] const resultSet = new Set() @@ -147,7 +147,7 @@ export class Hierarchy { return result } - findAllMixins (doc: Doc): Ref>[] { + findAllMixins(doc: Doc): Ref>[] { const _doc = _toDoc(doc) const resultSet = new Set>>() for (const [k, v] of Object.entries(_doc)) { @@ -192,7 +192,7 @@ export class Hierarchy { return result } - getClass (_class: Ref>): Class { + getClass(_class: Ref>): Class { const data = this.classifiers.get(_class) if (data === undefined || this.isInterface(data)) { throw new Error(`class not found: ${_class}`) @@ -200,7 +200,7 @@ export class Hierarchy { return data } - findClass (_class: Ref>): Class | undefined { + findClass(_class: Ref>): Class | undefined { const data = this.classifiers.get(_class) if (data === undefined || this.isInterface(data)) { return undefined @@ -208,7 +208,7 @@ export class Hierarchy { return data } - hasClass (_class: Ref>): boolean { + hasClass(_class: Ref>): boolean { const data = this.classifiers.get(_class) return !(data === undefined || this.isInterface(data)) @@ -334,14 +334,14 @@ export class Hierarchy { * Check if passed _class is derived from `from` class. * It will iterate over parents. */ - isDerived (_class: Ref>, from: Ref>): boolean { + isDerived(_class: Ref>, from: Ref>): boolean { return this.ancestors.get(_class)?.includes(from) ?? false } /** * Return first non interface/mixin parent */ - getBaseClass (_class: Ref>): Ref> { + getBaseClass(_class: Ref>): Ref> { let cl: Ref> | undefined = _class while (cl !== undefined) { const clz: Class = this.getClass(cl) @@ -355,7 +355,7 @@ export class Hierarchy { * Check if passed _class implements passed interfaces `from`. * It will check for class parents and their interfaces. */ - isImplements (_class: Ref>, from: Ref>): boolean { + isImplements(_class: Ref>, from: Ref>): boolean { let cl: Ref> | undefined = _class while (cl !== undefined) { const klazz: Class = this.getClass(cl) @@ -370,7 +370,7 @@ export class Hierarchy { /** * Check if interface extends passed interface. */ - private isExtends (extendsOrImplements: Ref>[], from: Ref>): boolean { + private isExtends(extendsOrImplements: Ref>[], from: Ref>): boolean { const result: Ref>[] = [] const toVisit = [...extendsOrImplements] while (toVisit.length > 0) { @@ -384,7 +384,7 @@ export class Hierarchy { return false } - getDescendants (_class: Ref>): Ref>[] { + getDescendants(_class: Ref>): Ref>[] { const data = this.descendants.get(_class) if (data === undefined) { throw new Error(`descendants not found: ${_class}`) @@ -569,7 +569,7 @@ export class Hierarchy { } } - updateLookupMixin ( + updateLookupMixin( _class: Ref>, result: WithLookup, options?: FindOptions diff --git a/foundations/core/packages/core/src/memdb.ts b/foundations/core/packages/core/src/memdb.ts index 5d8840dde2..6df62f3bbc 100644 --- a/foundations/core/packages/core/src/memdb.ts +++ b/foundations/core/packages/core/src/memdb.ts @@ -62,7 +62,7 @@ export abstract class MemDb extends TxProcessor implements Storage { } } - private getByIdQuery (query: DocumentQuery, _class: Ref>): T[] { + private getByIdQuery(query: DocumentQuery, _class: Ref>): T[] { const result: T[] = [] if (typeof query._id === 'string') { const obj = this.objectById.get(query._id) as T @@ -77,7 +77,7 @@ export abstract class MemDb extends TxProcessor implements Storage { return result } - getObject (_id: Ref): T { + getObject(_id: Ref): T { const doc = this.objectById.get(_id) if (doc === undefined) { throw new PlatformError(new Status(Severity.ERROR, core.status.ObjectNotFound, { _id })) @@ -85,12 +85,12 @@ export abstract class MemDb extends TxProcessor implements Storage { return doc as T } - findObject (_id: Ref): T | undefined { + findObject(_id: Ref): T | undefined { const doc = this.objectById.get(_id) return doc as T } - private async getLookupValue ( + private async getLookupValue( _class: Ref>, doc: T, lookup: Lookup, @@ -120,7 +120,7 @@ export abstract class MemDb extends TxProcessor implements Storage { } } - private async getReverseLookupValue ( + private async getReverseLookupValue( doc: T, lookup: ReverseLookups, result: LookupData @@ -137,7 +137,7 @@ export abstract class MemDb extends TxProcessor implements Storage { } } - private async lookup (_class: Ref>, docs: T[], lookup: Lookup): Promise[]> { + private async lookup(_class: Ref>, docs: T[], lookup: Lookup): Promise[]> { const withLookup: WithLookup[] = [] for (const doc of docs) { const result: LookupData = {} @@ -147,7 +147,7 @@ export abstract class MemDb extends TxProcessor implements Storage { return withLookup } - private async fillAssociations (docs: T[], associations: AssociationQuery[]): Promise[]> { + private async fillAssociations(docs: T[], associations: AssociationQuery[]): Promise[]> { const withLookup: WithLookup[] = [] for (const doc of docs) { const result = await this.getAssociationValue(doc, associations) @@ -156,7 +156,7 @@ export abstract class MemDb extends TxProcessor implements Storage { return withLookup } - private async getAssociationValue ( + private async getAssociationValue( doc: T, associations: AssociationQuery[] ): Promise[]>> { @@ -179,7 +179,7 @@ export abstract class MemDb extends TxProcessor implements Storage { return result } - async findAll ( + async findAll( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -219,7 +219,7 @@ export abstract class MemDb extends TxProcessor implements Storage { return toFindResult(res, total) } - async findOne ( + async findOne( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -231,7 +231,7 @@ export abstract class MemDb extends TxProcessor implements Storage { * Only in model find without lookups and sorting. * Do not clone results, so be aware modifications are not allowed. */ - findAllSync (_class: Ref>, query: DocumentQuery, options?: FindOptions): FindResult { + findAllSync(_class: Ref>, query: DocumentQuery, options?: FindOptions): FindResult { let result: WithLookup[] const baseClass = this.hierarchy.getBaseClass(_class) if ( diff --git a/foundations/core/packages/core/src/operations.ts b/foundations/core/packages/core/src/operations.ts index a85564e316..778c5111a7 100644 --- a/foundations/core/packages/core/src/operations.ts +++ b/foundations/core/packages/core/src/operations.ts @@ -73,7 +73,7 @@ export class TxOperations implements Omit { await this.client.close() } - findAll ( + findAll( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -105,7 +105,7 @@ export class TxOperations implements Omit { return this.client.findOne(_class, query, options) } - domainRequest (domain: OperationDomain, params: DomainParams): Promise> { + domainRequest(domain: OperationDomain, params: DomainParams): Promise> { return this.client.domainRequest(domain, params) } @@ -117,7 +117,7 @@ export class TxOperations implements Omit { return this.client.tx(tx) } - async createDoc ( + async createDoc( _class: Ref>, space: Ref, attributes: Data, @@ -137,7 +137,7 @@ export class TxOperations implements Omit { return tx.objectId } - async addCollection ( + async addCollection( _class: Ref>, space: Ref, attachedTo: Ref, @@ -161,7 +161,7 @@ export class TxOperations implements Omit { return tx.objectId } - async updateCollection ( + async updateCollection( _class: Ref>, space: Ref, objectId: Ref

, @@ -186,7 +186,7 @@ export class TxOperations implements Omit { return attachedTo } - async removeCollection ( + async removeCollection( _class: Ref>, space: Ref, objectId: Ref

, @@ -209,7 +209,7 @@ export class TxOperations implements Omit { return attachedTo } - updateDoc ( + updateDoc( _class: Ref>, space: Ref, objectId: Ref, @@ -222,7 +222,7 @@ export class TxOperations implements Omit { return this.tx(tx) } - removeDoc ( + removeDoc( _class: Ref>, space: Ref, objectId: Ref, @@ -233,7 +233,7 @@ export class TxOperations implements Omit { return this.tx(tx) } - createMixin ( + createMixin( objectId: Ref, objectClass: Ref>, objectSpace: Ref, @@ -254,7 +254,7 @@ export class TxOperations implements Omit { return this.tx(tx) } - updateMixin ( + updateMixin( objectId: Ref, objectClass: Ref>, objectSpace: Ref, @@ -275,7 +275,7 @@ export class TxOperations implements Omit { return this.tx(tx) } - async update ( + async update( doc: T, update: DocumentUpdate, retrieve?: boolean, @@ -331,7 +331,7 @@ export class TxOperations implements Omit { return await this.updateDoc(doc._class, doc.space, doc._id, update, retrieve, modifiedOn, modifiedBy) } - remove (doc: T, modifiedOn?: Timestamp, modifiedBy?: PersonId): Promise { + remove(doc: T, modifiedOn?: Timestamp, modifiedBy?: PersonId): Promise { if (this.client.getHierarchy().isDerived(doc._class, core.class.AttachedDoc)) { const adoc = doc as unknown as AttachedDoc return this.removeCollection( @@ -352,7 +352,7 @@ export class TxOperations implements Omit { return new ApplyOperations(this, scope, measure, derived ?? this.isDerived) } - async diffUpdate ( + async diffUpdate( doc: T, update: T | Data | DocumentUpdate, date?: Timestamp, @@ -507,12 +507,12 @@ export class ApplyOperations extends TxOperations { super(txClient, ops.user, isDerived ?? false) } - match (_class: Ref>, query: DocumentQuery): this { + match(_class: Ref>, query: DocumentQuery): this { this.matches.push({ _class, query }) return this } - notMatch (_class: Ref>, query: DocumentQuery): this { + notMatch(_class: Ref>, query: DocumentQuery): this { this.notMatches.push({ _class, query }) return this } diff --git a/foundations/core/packages/core/src/tx.ts b/foundations/core/packages/core/src/tx.ts index 126c4157b6..32bd47e0de 100644 --- a/foundations/core/packages/core/src/tx.ts +++ b/foundations/core/packages/core/src/tx.ts @@ -343,7 +343,7 @@ export abstract class TxProcessor implements WithTx { return result } - static createDoc2Doc (tx: TxCreateDoc, doClone = true): T { + static createDoc2Doc(tx: TxCreateDoc, doClone = true): T { const attached = tx.attachedTo !== undefined ? { @@ -367,7 +367,7 @@ export abstract class TxProcessor implements WithTx { } as T } - static updateDoc2Doc (rawDoc: T, tx: TxUpdateDoc): T { + static updateDoc2Doc(rawDoc: T, tx: TxUpdateDoc): T { const doc = _toDoc(rawDoc) TxProcessor.applyUpdate(doc, tx.operations as any) doc.modifiedBy = tx.modifiedBy @@ -375,7 +375,7 @@ export abstract class TxProcessor implements WithTx { return rawDoc } - static applyUpdate (doc: T, ops: any): void { + static applyUpdate(doc: T, ops: any): void { for (const key in ops) { if (key.startsWith('$')) { const operator = _getOperator(key) @@ -386,7 +386,7 @@ export abstract class TxProcessor implements WithTx { } } - static updateMixin4Doc (rawDoc: D, tx: TxMixin): D { + static updateMixin4Doc(rawDoc: D, tx: TxMixin): D { const ops = tx.attributes as any const doc = _toDoc(rawDoc) const mixin = (doc as any)[tx.mixin] ?? {} @@ -404,7 +404,7 @@ export abstract class TxProcessor implements WithTx { return rawDoc } - static buildDoc2Doc (txes: Tx[]): D | undefined | null { + static buildDoc2Doc(txes: Tx[]): D | undefined | null { let doc: Doc const deleteTx = txes.find((tx) => tx._class === core.class.TxRemoveDoc) if (deleteTx !== undefined) { @@ -435,11 +435,11 @@ export abstract class TxProcessor implements WithTx { ) } - static txHasUpdate (tx: TxUpdateDoc, attribute: string): boolean { + static txHasUpdate(tx: TxUpdateDoc, attribute: string): boolean { return TxProcessor.hasUpdate(tx.operations, attribute) } - static hasUpdate (ops: DocumentUpdate, attribute: string): boolean { + static hasUpdate(ops: DocumentUpdate, attribute: string): boolean { if ((ops as any)[attribute] !== undefined) return true for (const op in ops) { if (op.startsWith('$')) { @@ -454,10 +454,10 @@ export abstract class TxProcessor implements WithTx { return false } - protected abstract txCreateDoc(tx: TxCreateDoc): Promise - protected abstract txUpdateDoc(tx: TxUpdateDoc): Promise - protected abstract txRemoveDoc(tx: TxRemoveDoc): Promise - protected abstract txMixin(tx: TxMixin): Promise + protected abstract txCreateDoc (tx: TxCreateDoc): Promise + protected abstract txUpdateDoc (tx: TxUpdateDoc): Promise + protected abstract txRemoveDoc (tx: TxRemoveDoc): Promise + protected abstract txMixin (tx: TxMixin): Promise } /** @@ -472,7 +472,7 @@ export class TxFactory { this.txSpace = isDerived ? core.space.DerivedTx : core.space.Tx } - createTxCreateDoc ( + createTxCreateDoc( _class: Ref>, space: Ref, attributes: Data, @@ -494,7 +494,7 @@ export class TxFactory { } } - createTxCollectionCUD ( + createTxCollectionCUD( _class: Ref>, objectId: Ref, space: Ref, @@ -513,7 +513,7 @@ export class TxFactory { } } - createTxUpdateDoc ( + createTxUpdateDoc( _class: Ref>, space: Ref, objectId: Ref, @@ -536,7 +536,7 @@ export class TxFactory { } } - createTxRemoveDoc ( + createTxRemoveDoc( _class: Ref>, space: Ref, objectId: Ref, @@ -555,7 +555,7 @@ export class TxFactory { } } - createTxMixin ( + createTxMixin( objectId: Ref, objectClass: Ref>, objectSpace: Ref, diff --git a/foundations/core/packages/core/src/utils.ts b/foundations/core/packages/core/src/utils.ts index 566b95ccdb..d71d7807e6 100644 --- a/foundations/core/packages/core/src/utils.ts +++ b/foundations/core/packages/core/src/utils.ts @@ -305,7 +305,7 @@ export class RateLimiter { notify: (() => void)[] = [] - async exec = any> (op: (args?: B) => Promise, args?: B): Promise { + async exec = any>(op: (args?: B) => Promise, args?: B): Promise { const processingId = this.idCounter++ while (this.processingQueue.size >= this.rate) { @@ -326,7 +326,7 @@ export class RateLimiter { } } - async add = any> ( + async add = any>( op: (args?: B) => Promise, args?: B, errHandler?: (err: any) => void @@ -556,7 +556,7 @@ export function includesAny (arr1: string[] | null | undefined, arr2: string[] | } export const isEnum = - (e: T) => + (e: T) => (token: any): token is T[keyof T] => typeof token === 'string' && Object.values(e as Record).includes(token) @@ -892,7 +892,7 @@ export class TimeRateLimiter { this.executions = this.executions.filter((time) => time.running || now - time.time < this.period) } - async exec = any> (op: (args?: B) => Promise, args?: B): Promise { + async exec = any>(op: (args?: B) => Promise, args?: B): Promise { while (this.active >= this.rate || this.executions.length >= this.rate) { this.cleanupExecutions() if (this.executions.length < this.rate) { diff --git a/foundations/core/packages/hulylake-client/src/client.ts b/foundations/core/packages/hulylake-client/src/client.ts index 8445b55448..af88ca5199 100644 --- a/foundations/core/packages/hulylake-client/src/client.ts +++ b/foundations/core/packages/hulylake-client/src/client.ts @@ -64,13 +64,13 @@ class WorkspaceClient implements HulylakeWorkspaceClient { return this.client.delete(this.workspace, key, retryOptions) } - public async getJson (key: string, retryOptions?: RetryOptions): Promise> { + public async getJson(key: string, retryOptions?: RetryOptions): Promise> { const res = await this.client.get(this.workspace, key, retryOptions) const body = res.ok && res.body != null ? ((await new Response(res.body).json()) as T) : undefined return { ...res, body } } - public async putJson ( + public async putJson( key: string, json: T, options?: Omit, diff --git a/foundations/core/packages/measurements-otlp/src/telemetry.ts b/foundations/core/packages/measurements-otlp/src/telemetry.ts index 55adf342b4..d8c7e71733 100644 --- a/foundations/core/packages/measurements-otlp/src/telemetry.ts +++ b/foundations/core/packages/measurements-otlp/src/telemetry.ts @@ -189,7 +189,7 @@ export class OpenTelemetryMetricsContext implements MeasureContext { return headers } - with ( + with( name: string, params: ParamsType, op: (ctx: MeasureContext) => T | Promise, @@ -249,7 +249,7 @@ export class OpenTelemetryMetricsContext implements MeasureContext { } } - withSync ( + withSync( name: string, params: ParamsType, op: (ctx: MeasureContext) => T, diff --git a/foundations/core/packages/measurements/src/context.ts b/foundations/core/packages/measurements/src/context.ts index 6a2da671a8..9a8688635c 100644 --- a/foundations/core/packages/measurements/src/context.ts +++ b/foundations/core/packages/measurements/src/context.ts @@ -147,7 +147,7 @@ export class MeasureMetricsContext implements MeasureContext { return result } - with ( + with( name: string, params: ParamsType, op: (ctx: MeasureContext) => T | Promise, @@ -186,7 +186,7 @@ export class MeasureMetricsContext implements MeasureContext { return {} } - withSync ( + withSync( name: string, params: ParamsType, op: (ctx: MeasureContext) => T, @@ -258,7 +258,7 @@ export class NoMetricsContext implements MeasureContext { return result } - with ( + with( name: string, params: ParamsType, op: (ctx: MeasureContext) => T | Promise, @@ -272,7 +272,7 @@ export class NoMetricsContext implements MeasureContext { return {} } - withSync ( + withSync( name: string, params: ParamsType, op: (ctx: MeasureContext) => T, @@ -282,7 +282,7 @@ export class NoMetricsContext implements MeasureContext { return op(c) } - withLog ( + withLog( name: string, params: ParamsType, op: (ctx: MeasureContext) => T | Promise, diff --git a/foundations/core/packages/model/src/dsl.ts b/foundations/core/packages/model/src/dsl.ts index 20d4957307..d8e086d15d 100644 --- a/foundations/core/packages/model/src/dsl.ts +++ b/foundations/core/packages/model/src/dsl.ts @@ -349,7 +349,7 @@ export class Builder { } // do we need this? - createDoc ( + createDoc( _class: Ref>, space: Ref, attributes: Data, @@ -366,7 +366,7 @@ export class Builder { return TxProcessor.createDoc2Doc(tx) } - mixin ( + mixin( objectId: Ref, objectClass: Ref>, mixin: Ref>, diff --git a/foundations/core/packages/query/src/__tests__/connection.ts b/foundations/core/packages/query/src/__tests__/connection.ts index a9763ba582..e97e3da683 100644 --- a/foundations/core/packages/query/src/__tests__/connection.ts +++ b/foundations/core/packages/query/src/__tests__/connection.ts @@ -89,7 +89,7 @@ export async function connect (handler: (tx: Tx) => void): Promise< pushHandler (): void {} - async findAll ( + async findAll( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -99,7 +99,7 @@ export async function connect (handler: (tx: Tx) => void): Promise< return await this.model.findAll(_class, query, options) } - async findOne ( + async findOne( _class: Ref>, query: DocumentQuery, options?: FindOptions diff --git a/foundations/core/packages/query/src/index.ts b/foundations/core/packages/query/src/index.ts index 25dca37790..9433028b15 100644 --- a/foundations/core/packages/query/src/index.ts +++ b/foundations/core/packages/query/src/index.ts @@ -248,7 +248,7 @@ export class LiveQuery implements WithTx, Client { return true } - private createDumpQuery ( + private createDumpQuery( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -261,7 +261,7 @@ export class LiveQuery implements WithTx, Client { return q } - async findAll ( + async findAll( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -324,7 +324,7 @@ export class LiveQuery implements WithTx, Client { return this.client.searchFulltext(query, options) } - async findOne ( + async findOne( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -375,7 +375,7 @@ export class LiveQuery implements WithTx, Client { return deepEqual(q1, q2) } - private findQuery ( + private findQuery( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -422,7 +422,7 @@ export class LiveQuery implements WithTx, Client { }, 0) } - private getQuery ( + private getQuery( _class: Ref>, query: DocumentQuery, callback: { @@ -449,7 +449,7 @@ export class LiveQuery implements WithTx, Client { return cq } - private createQuery ( + private createQuery( _class: Ref>, query: DocumentQuery, callback: { callback: (result: FindResult) => void, callbackId: string } | undefined, @@ -513,7 +513,7 @@ export class LiveQuery implements WithTx, Client { } } - query ( + query( _class: Ref>, query: DocumentQuery, callback: (result: FindResult) => void, @@ -547,7 +547,7 @@ export class LiveQuery implements WithTx, Client { } } - async queryFind ( + async queryFind( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -1049,7 +1049,7 @@ export class LiveQuery implements WithTx, Client { return false } - private async getLookupValue ( + private async getLookupValue( _class: Ref>, doc: T, lookup: Lookup, @@ -1079,7 +1079,7 @@ export class LiveQuery implements WithTx, Client { } } - private async getReverseLookupValue ( + private async getReverseLookupValue( doc: T, lookup: ReverseLookups, result: LookupData @@ -1109,7 +1109,7 @@ export class LiveQuery implements WithTx, Client { } } - private async lookup (_class: Ref>, doc: T, lookup: Lookup): Promise { + private async lookup(_class: Ref>, doc: T, lookup: Lookup): Promise { const result: LookupData = {} await this.getLookupValue(_class, doc, lookup, result) ;(doc as WithLookup).$lookup = result diff --git a/foundations/core/packages/query/src/refs.ts b/foundations/core/packages/query/src/refs.ts index 49d26c51c5..a044270328 100644 --- a/foundations/core/packages/query/src/refs.ts +++ b/foundations/core/packages/query/src/refs.ts @@ -55,7 +55,7 @@ export class Refs { } } - public findFromDocs ( + public findFromDocs( _class: Ref>, query: DocumentQuery, options?: FindOptions diff --git a/foundations/core/packages/query/src/results.ts b/foundations/core/packages/query/src/results.ts index a669b58ffb..bc10576de8 100644 --- a/foundations/core/packages/query/src/results.ts +++ b/foundations/core/packages/query/src/results.ts @@ -37,7 +37,7 @@ export class ResultArray { return this.docs.get(_id) } - getClone (): T[] { + getClone(): T[] { return this.hierarchy.clone(this.getDocs()) } @@ -89,7 +89,7 @@ export class ResultArray { return undefined } - sort (_class: Ref>, sort: SortingQuery, hierarchy: Hierarchy, memdb: MemDb): void { + sort(_class: Ref>, sort: SortingQuery, hierarchy: Hierarchy, memdb: MemDb): void { const docs = Array.from(this.docs.values()) resultSort(docs, sort, _class, hierarchy, memdb) this.docs = new Map(docs.map((it) => [it._id, it])) diff --git a/foundations/core/packages/rpc/src/rpc.ts b/foundations/core/packages/rpc/src/rpc.ts index 08dc996873..cab4593d11 100644 --- a/foundations/core/packages/rpc/src/rpc.ts +++ b/foundations/core/packages/rpc/src/rpc.ts @@ -182,7 +182,7 @@ export class RPCHandler { * @param response - * @returns */ - readResponse (response: any, binary: boolean): Response { + readResponse(response: any, binary: boolean): Response { const data = this.protoDeserialize(response, binary) if (data.result !== undefined) { data.result = rpcJSONReceiver('result', data.result) @@ -195,7 +195,7 @@ export class RPCHandler { * @param request - * @returns */ - readRequest

(request: any, binary: boolean): Request

{ + readRequest

(request: any, binary: boolean): Request

{ const result: Request

= this.protoDeserialize(request, binary) if (typeof result.method !== 'string') { throw new PlatformError(new Status(Severity.ERROR, platform.status.BadRequest, {})) diff --git a/foundations/server/packages/core/src/base.ts b/foundations/server/packages/core/src/base.ts index 8e5a84389f..36d3faa507 100644 --- a/foundations/server/packages/core/src/base.ts +++ b/foundations/server/packages/core/src/base.ts @@ -50,7 +50,7 @@ export abstract class BaseMiddleware implements Middleware { protected readonly next?: Middleware ) {} - findAll ( + findAll( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -75,7 +75,7 @@ export abstract class BaseMiddleware implements Middleware { return this.provideLoadModel(ctx, lastModelTx, hash) } - provideGroupBy ( + provideGroupBy( ctx: MeasureContext, domain: Domain, field: string, @@ -89,7 +89,7 @@ export abstract class BaseMiddleware implements Middleware { async close (): Promise {} - groupBy ( + groupBy( ctx: MeasureContext, domain: Domain, field: string, @@ -121,7 +121,7 @@ export abstract class BaseMiddleware implements Middleware { return this.provideTx(ctx, tx) } - protected provideFindAll ( + protected provideFindAll( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, diff --git a/foundations/server/packages/core/src/benchmark/index.ts b/foundations/server/packages/core/src/benchmark/index.ts index ba93882acc..6468b9a80a 100644 --- a/foundations/server/packages/core/src/benchmark/index.ts +++ b/foundations/server/packages/core/src/benchmark/index.ts @@ -50,7 +50,7 @@ function genData (dataSize: number): string { let benchData = '' class BenchmarkDbAdapter extends DummyDbAdapter { - async findAll> ( + async findAll>( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, diff --git a/foundations/server/packages/core/src/mem.ts b/foundations/server/packages/core/src/mem.ts index 929bd9e61e..511dd92009 100644 --- a/foundations/server/packages/core/src/mem.ts +++ b/foundations/server/packages/core/src/mem.ts @@ -44,7 +44,7 @@ import type { ServerFindOptions } from './types' export class DummyDbAdapter implements DbAdapter { on?: ((handler: DbAdapterHandler) => void) | undefined - async traverse ( + async traverse( domain: Domain, query: DocumentQuery, options?: Pick, 'sort' | 'limit' | 'projection'> @@ -55,7 +55,7 @@ export class DummyDbAdapter implements DbAdapter { } } - async findAll ( + async findAll( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -114,7 +114,7 @@ export class DummyDbAdapter implements DbAdapter { return Promise.resolve('') } - async groupBy ( + async groupBy( ctx: MeasureContext, domain: Domain, field: string, @@ -123,17 +123,17 @@ export class DummyDbAdapter implements DbAdapter { return new Map() } - async rawFindAll (domain: Domain, query: DocumentQuery, options?: FindOptions): Promise { + async rawFindAll(domain: Domain, query: DocumentQuery, options?: FindOptions): Promise { return [] } - async rawUpdate ( + async rawUpdate( domain: Domain, query: DocumentQuery, operations: DocumentUpdate ): Promise {} - async rawDeleteMany (domain: Domain, query: DocumentQuery): Promise {} + async rawDeleteMany(domain: Domain, query: DocumentQuery): Promise {} } class InMemoryAdapter extends DummyDbAdapter implements DbAdapter { @@ -144,7 +144,7 @@ class InMemoryAdapter extends DummyDbAdapter implements DbAdapter { this.modeldb = new ModelDb(hierarchy) } - findAll ( + findAll( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, diff --git a/foundations/server/packages/core/src/pipeline.ts b/foundations/server/packages/core/src/pipeline.ts index c59912ef85..31763f75b1 100644 --- a/foundations/server/packages/core/src/pipeline.ts +++ b/foundations/server/packages/core/src/pipeline.ts @@ -102,7 +102,7 @@ class PipelineImpl implements Pipeline { return current } - findAll ( + findAll( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -115,7 +115,7 @@ class PipelineImpl implements Pipeline { return this.head?.loadModel(ctx, lastModelTx, hash) ?? Promise.resolve([]) } - groupBy ( + groupBy( ctx: MeasureContext, domain: Domain, field: string, @@ -136,7 +136,7 @@ class PipelineImpl implements Pipeline { return this.head?.handleBroadcast(ctx) ?? emptyBroadcastResult } - domainRequest ( + domainRequest( ctx: MeasureContext, domain: OperationDomain, params: DomainParams diff --git a/foundations/server/packages/core/src/queue/dummyQueue.ts b/foundations/server/packages/core/src/queue/dummyQueue.ts index e3c7a17120..b4c1d9e9ce 100644 --- a/foundations/server/packages/core/src/queue/dummyQueue.ts +++ b/foundations/server/packages/core/src/queue/dummyQueue.ts @@ -22,7 +22,7 @@ class DummyQueueProducer implements PlatformQueueProducer { * A dummy implementation of PlatformQueue for testing and development */ export class DummyQueue implements PlatformQueue { - getProducer (ctx: MeasureContext, topic: QueueTopic | string): PlatformQueueProducer { + getProducer(ctx: MeasureContext, topic: QueueTopic | string): PlatformQueueProducer { return new DummyQueueProducer() } @@ -34,7 +34,7 @@ export class DummyQueue implements PlatformQueue { async createTopic (topics: string | string[], partitions: number): Promise {} - createConsumer ( + createConsumer( ctx: MeasureContext, topic: QueueTopic | string, groupId: string, diff --git a/foundations/server/packages/core/src/utils.ts b/foundations/server/packages/core/src/utils.ts index 5f8347cf34..dcdbeadcc0 100644 --- a/foundations/server/packages/core/src/utils.ts +++ b/foundations/server/packages/core/src/utils.ts @@ -388,7 +388,7 @@ export function wrapAdapterToClient (ctx: MeasureContext, storageAdapter: DbAdap pushHandler (): void {} - async findAll ( + async findAll( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -497,7 +497,7 @@ export class OneSecondCountersImpl implements OneSecondCounters { this.counters.set(counter, (this.counters.get(counter) ?? 0) + count) } - async withCounter (counter: string, count: number, op: () => Promise): Promise { + async withCounter(counter: string, count: number, op: () => Promise): Promise { this.add(counter, count) const id = ++this.ids const vv: TimerOp = [platformNow(), counter, count, false] diff --git a/foundations/server/packages/datalake/src/index.ts b/foundations/server/packages/datalake/src/index.ts index c2e5c6fef1..1884e6b09a 100644 --- a/foundations/server/packages/datalake/src/index.ts +++ b/foundations/server/packages/datalake/src/index.ts @@ -246,7 +246,7 @@ export class DatalakeService implements StorageAdapter { return this.client.getObjectUrl(ctx, wsIds.uuid, objectName) } - async retry (ctx: MeasureContext, op: () => Promise): Promise { + async retry(ctx: MeasureContext, op: () => Promise): Promise { return await withRetry(ctx, this.retryCount, op, this.retryInterval) } } diff --git a/foundations/server/packages/kafka/src/index.ts b/foundations/server/packages/kafka/src/index.ts index 9e28fff069..4e241e757d 100644 --- a/foundations/server/packages/kafka/src/index.ts +++ b/foundations/server/packages/kafka/src/index.ts @@ -95,7 +95,7 @@ class PlatformQueueImpl implements PlatformQueue { } } - getProducer (ctx: MeasureContext, topic: QueueTopic | string): PlatformQueueProducer { + getProducer(ctx: MeasureContext, topic: QueueTopic | string): PlatformQueueProducer { const producer = this.producers.get(topic) if (producer !== undefined && !producer.isClosed()) return producer @@ -105,7 +105,7 @@ class PlatformQueueImpl implements PlatformQueue { return created } - createConsumer ( + createConsumer( ctx: MeasureContext, topic: QueueTopic | string, groupId: string, diff --git a/foundations/server/packages/middleware/src/domainFind.ts b/foundations/server/packages/middleware/src/domainFind.ts index 685ae07656..d5b1b996bf 100644 --- a/foundations/server/packages/middleware/src/domainFind.ts +++ b/foundations/server/packages/middleware/src/domainFind.ts @@ -50,7 +50,7 @@ export class DomainFindMiddleware extends BaseMiddleware implements Middleware { return opt } - findAll ( + findAll( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -79,7 +79,7 @@ export class DomainFindMiddleware extends BaseMiddleware implements Middleware { ) } - groupBy ( + groupBy( ctx: MeasureContext, domain: Domain, field: string, diff --git a/foundations/server/packages/middleware/src/findSecurity.ts b/foundations/server/packages/middleware/src/findSecurity.ts index 334d54b567..e2d1e818bc 100644 --- a/foundations/server/packages/middleware/src/findSecurity.ts +++ b/foundations/server/packages/middleware/src/findSecurity.ts @@ -44,7 +44,7 @@ export class FindSecurityMiddleware extends BaseMiddleware implements Middleware return new FindSecurityMiddleware(context, next) } - findAll ( + findAll( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, diff --git a/foundations/server/packages/middleware/src/fulltext.ts b/foundations/server/packages/middleware/src/fulltext.ts index 46147d1ac1..08ca12eb64 100644 --- a/foundations/server/packages/middleware/src/fulltext.ts +++ b/foundations/server/packages/middleware/src/fulltext.ts @@ -74,7 +74,7 @@ export class FullTextMiddleware extends BaseMiddleware implements Middleware { ) } - async search ( + async search( _classes: Ref>[], query: DocumentQuery, fullTextLimit: number @@ -108,7 +108,7 @@ export class FullTextMiddleware extends BaseMiddleware implements Middleware { addExtraFind?: (_class: Ref>, childs: Set>>) => void - async findAll ( + async findAll( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -245,7 +245,7 @@ export class FullTextMiddleware extends BaseMiddleware implements Middleware { return result } - private async findDocuments ( + private async findDocuments( classes: Ref>[], findQuery: DocumentQuery, fullTextLimit: number, @@ -277,7 +277,7 @@ export class FullTextMiddleware extends BaseMiddleware implements Middleware { return { docs, indexedDocMap } } - private async findChildDocuments ( + private async findChildDocuments( classes: Ref>[], findQuery: DocumentQuery, fullTextLimit: number, diff --git a/foundations/server/packages/middleware/src/lookup.ts b/foundations/server/packages/middleware/src/lookup.ts index f7b600ecb9..7a1128dc61 100644 --- a/foundations/server/packages/middleware/src/lookup.ts +++ b/foundations/server/packages/middleware/src/lookup.ts @@ -45,7 +45,7 @@ export class LookupMiddleware extends BaseMiddleware implements Middleware { return new LookupMiddleware(context, next) } - override async findAll ( + override async findAll( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -99,7 +99,7 @@ export class LookupMiddleware extends BaseMiddleware implements Middleware { return this.cleanQuery(result, query, undefined, new Set(options?.pagination?.fields.map(({ field }) => field))) } - private cleanQuery ( + private cleanQuery( result: FindResult, query: DocumentQuery, lookupMap?: Record, diff --git a/foundations/server/packages/middleware/src/lowLevel.ts b/foundations/server/packages/middleware/src/lowLevel.ts index ad2a7b2b98..51ac86472b 100644 --- a/foundations/server/packages/middleware/src/lowLevel.ts +++ b/foundations/server/packages/middleware/src/lowLevel.ts @@ -58,7 +58,7 @@ export class LowLevelMiddleware extends BaseMiddleware implements Middleware { clean (ctx: MeasureContext, domain: Domain, docs: Ref[]): Promise { return adapterManager.getAdapter(domain, true).clean(ctx, domain, docs) }, - groupBy ( + groupBy( ctx: MeasureContext, domain: Domain, field: string, @@ -66,10 +66,10 @@ export class LowLevelMiddleware extends BaseMiddleware implements Middleware { ): Promise> { return adapterManager.getAdapter(domain, false).groupBy(ctx, domain, field, query) }, - rawFindAll (domain: Domain, query: DocumentQuery, options?: FindOptions): Promise { + rawFindAll(domain: Domain, query: DocumentQuery, options?: FindOptions): Promise { return adapterManager.getAdapter(domain, false).rawFindAll(domain, query, options) }, - rawUpdate (domain: Domain, query: DocumentQuery, operations: DocumentUpdate): Promise { + rawUpdate(domain: Domain, query: DocumentQuery, operations: DocumentUpdate): Promise { return adapterManager.getAdapter(domain, true).rawUpdate(domain, query, operations) }, rawDeleteMany (domain, query) { @@ -78,7 +78,7 @@ export class LowLevelMiddleware extends BaseMiddleware implements Middleware { getDomainHash (ctx: MeasureContext, domain: Domain): Promise { return adapterManager.getAdapter(domain, false).getDomainHash(ctx, domain) }, - traverse ( + traverse( domain: Domain, query: DocumentQuery, options?: Pick, 'sort' | 'limit' | 'projection'> diff --git a/foundations/server/packages/middleware/src/model.ts b/foundations/server/packages/middleware/src/model.ts index c028d5e34f..2388afd385 100644 --- a/foundations/server/packages/middleware/src/model.ts +++ b/foundations/server/packages/middleware/src/model.ts @@ -86,7 +86,7 @@ export class ModelMiddleware extends BaseMiddleware implements Middleware { return allUserTxes.filter((it) => !isAccountTx(it as TxCUD)) } - findAll ( + findAll( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, diff --git a/foundations/server/packages/middleware/src/private.ts b/foundations/server/packages/middleware/src/private.ts index f785355e6e..a0489657fd 100644 --- a/foundations/server/packages/middleware/src/private.ts +++ b/foundations/server/packages/middleware/src/private.ts @@ -96,7 +96,7 @@ export class PrivateMiddleware extends BaseMiddleware implements Middleware { return this.provideTx(ctx, txes) } - override async findAll ( + override async findAll( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -151,7 +151,7 @@ export class PrivateMiddleware extends BaseMiddleware implements Middleware { return (doc.createdBy !== undefined && socialStrings.includes(doc.createdBy)) || account.uuid === systemAccountUuid } - filterLookup (ctx: MeasureContext, lookup: LookupData): void { + filterLookup(ctx: MeasureContext, lookup: LookupData): void { for (const key in lookup) { const val = lookup[key] if (Array.isArray(val)) { diff --git a/foundations/server/packages/middleware/src/queryJoin.ts b/foundations/server/packages/middleware/src/queryJoin.ts index 52c8527d39..64df144fc0 100644 --- a/foundations/server/packages/middleware/src/queryJoin.ts +++ b/foundations/server/packages/middleware/src/queryJoin.ts @@ -48,7 +48,7 @@ interface Query { export class QueryJoiner { private readonly queries: Map = new Map() - async query (ctx: MeasureContext, key: string, retrieve: (ctx: MeasureContext) => Promise): Promise { + async query(ctx: MeasureContext, key: string, retrieve: (ctx: MeasureContext) => Promise): Promise { // Will find a query or add + 1 to callbacks const q = this.getQuery(key) try { @@ -121,7 +121,7 @@ export class QueryJoinMiddleware extends BaseMiddleware implements Middleware { return new QueryJoinMiddleware(context, next) } - override findAll ( + override findAll( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -138,7 +138,7 @@ export class QueryJoinMiddleware extends BaseMiddleware implements Middleware { ) } - groupBy ( + groupBy( ctx: MeasureContext, domain: Domain, field: string, diff --git a/foundations/server/packages/middleware/src/spaceSecurity.ts b/foundations/server/packages/middleware/src/spaceSecurity.ts index 2b4f29aa9c..eead4288f2 100644 --- a/foundations/server/packages/middleware/src/spaceSecurity.ts +++ b/foundations/server/packages/middleware/src/spaceSecurity.ts @@ -570,7 +570,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } } - private async mergeQuery ( + private async mergeQuery( ctx: MeasureContext, account: Account, query: ObjQueryType, @@ -612,7 +612,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar return domain === 'tx' ? 'objectSpace' : domain === 'space' ? '_id' : 'space' } - override async findAll ( + override async findAll( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -732,7 +732,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar return result } - filterLookup (ctx: MeasureContext, lookup: LookupData, showArchived: boolean): void { + filterLookup(ctx: MeasureContext, lookup: LookupData, showArchived: boolean): void { if (Object.keys(lookup).length === 0) return const account = ctx.contextData.account if (isSystem(account, ctx)) return diff --git a/foundations/server/packages/middleware/src/triggers.ts b/foundations/server/packages/middleware/src/triggers.ts index 4e2d2aa292..51fb2b95f2 100644 --- a/foundations/server/packages/middleware/src/triggers.ts +++ b/foundations/server/packages/middleware/src/triggers.ts @@ -271,7 +271,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { } } - private getCollectionUpdateTx ( + private getCollectionUpdateTx( _id: Ref, _class: Ref>, modifiedBy: PersonId, diff --git a/foundations/server/packages/middleware/src/versioning.ts b/foundations/server/packages/middleware/src/versioning.ts index a612767b77..48b45bf2ae 100644 --- a/foundations/server/packages/middleware/src/versioning.ts +++ b/foundations/server/packages/middleware/src/versioning.ts @@ -54,7 +54,7 @@ export class VersioningMiddleware extends BaseMiddleware implements Middleware { return new VersioningMiddleware(context, next) } - override async findAll ( + override async findAll( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, diff --git a/foundations/server/packages/mongo/src/storage.ts b/foundations/server/packages/mongo/src/storage.ts index 6b5c73d8c3..26fac8e03e 100644 --- a/foundations/server/packages/mongo/src/storage.ts +++ b/foundations/server/packages/mongo/src/storage.ts @@ -165,7 +165,7 @@ abstract class MongoAdapterBase implements DbAdapter { this._db = new DBCollectionHelper(db) } - async traverse ( + async traverse( domain: Domain, query: DocumentQuery, options?: Pick, 'sort' | 'limit' | 'projection'> @@ -206,7 +206,7 @@ abstract class MongoAdapterBase implements DbAdapter { } } - private translateRawQuery (query: DocumentQuery): Filter { + private translateRawQuery(query: DocumentQuery): Filter { const translated: any = {} for (const key in query) { const value = (query as any)[key] @@ -226,7 +226,7 @@ abstract class MongoAdapterBase implements DbAdapter { return translated } - async rawFindAll (domain: Domain, query: DocumentQuery, options?: FindOptions): Promise { + async rawFindAll(domain: Domain, query: DocumentQuery, options?: FindOptions): Promise { let cursor = this.db.collection(domain).find(this.translateRawQuery(query)) if (options?.limit !== undefined) { cursor = cursor.limit(options.limit) @@ -251,7 +251,7 @@ abstract class MongoAdapterBase implements DbAdapter { return await cursor.toArray() } - async rawUpdate ( + async rawUpdate( domain: Domain, query: DocumentQuery, operations: DocumentUpdate @@ -268,13 +268,13 @@ abstract class MongoAdapterBase implements DbAdapter { } } - rawDeleteMany (domain: Domain, query: DocumentQuery): Promise { + rawDeleteMany(domain: Domain, query: DocumentQuery): Promise { return this.db.collection(domain).deleteMany(this.translateRawQuery(query)).then() } - abstract init(ctx: MeasureContext): Promise + abstract init (ctx: MeasureContext): Promise - collection (domain: Domain): Collection { + collection(domain: Domain): Collection { return this._db.collection(domain) } @@ -291,7 +291,7 @@ abstract class MongoAdapterBase implements DbAdapter { return Promise.resolve() } - private translateQuery ( + private translateQuery( clazz: Ref>, query: DocumentQuery, options?: ServerFindOptions @@ -373,7 +373,7 @@ abstract class MongoAdapterBase implements DbAdapter { return { base: translatedBase, lookup: translatedLookup } } - private getLookupValue ( + private getLookupValue( clazz: Ref>, lookup: Lookup, result: LookupStep[], @@ -456,7 +456,7 @@ abstract class MongoAdapterBase implements DbAdapter { } } - private getLookups ( + private getLookups( _class: Ref>, lookup: Lookup | undefined, parent?: string @@ -498,7 +498,7 @@ abstract class MongoAdapterBase implements DbAdapter { return res } - private fillLookup ( + private fillLookup( _class: Ref>, object: any, key: string, @@ -559,7 +559,7 @@ abstract class MongoAdapterBase implements DbAdapter { return res } - private fillLookupValue ( + private fillLookupValue( ctx: MeasureContext, clazz: Ref>, lookup: Lookup | undefined, @@ -587,7 +587,7 @@ abstract class MongoAdapterBase implements DbAdapter { } } - private fillReverseLookup ( + private fillReverseLookup( clazz: Ref>, lookup: ReverseLookups, object: any, @@ -622,7 +622,7 @@ abstract class MongoAdapterBase implements DbAdapter { } } - private fillSortPipeline ( + private fillSortPipeline( clazz: Ref>, options: FindOptions | undefined, pipeline: any[] @@ -652,7 +652,7 @@ abstract class MongoAdapterBase implements DbAdapter { } } - private async findWithPipeline ( + private async findWithPipeline( ctx: MeasureContext, domain: Domain, clazz: Ref>, @@ -779,7 +779,7 @@ abstract class MongoAdapterBase implements DbAdapter { return toFindResult(this.stripHash(result) as T[], total) } - private fillAssociations ( + private fillAssociations( obj: WithLookup, associations: AssociationQuery[], parentId: string = '', @@ -792,7 +792,7 @@ abstract class MongoAdapterBase implements DbAdapter { return obj } - private translateKey ( + private translateKey( key: string, clazz: Ref>, mixins?: Set>> @@ -831,7 +831,7 @@ abstract class MongoAdapterBase implements DbAdapter { } } - private checkMixinKey (key: string, clazz: Ref>, mixins?: Set>>): string { + private checkMixinKey(key: string, clazz: Ref>, mixins?: Set>>): string { if (!key.includes('.')) { try { const attr = this.hierarchy.findAttribute(clazz, key) @@ -847,7 +847,7 @@ abstract class MongoAdapterBase implements DbAdapter { return key } - private getEnumById (_class: Ref>, key: string): Enum | undefined { + private getEnumById(_class: Ref>, key: string): Enum | undefined { const attr = this.hierarchy.findAttribute(_class, key) if (attr !== undefined) { if (attr.type._class === core.class.EnumOf) { @@ -858,14 +858,14 @@ abstract class MongoAdapterBase implements DbAdapter { return undefined } - private isEnumSort (_class: Ref>, options?: FindOptions): boolean { + private isEnumSort(_class: Ref>, options?: FindOptions): boolean { if (options?.sort === undefined) return false return Object.keys(options.sort).some( (key) => this.hierarchy.findAttribute(_class, key)?.type?._class === core.class.EnumOf ) } - private isDate (_class: Ref>, key: string): boolean { + private isDate(_class: Ref>, key: string): boolean { const attr = this.hierarchy.findAttribute(_class, key) if (attr !== undefined) { return attr.type._class === core.class.TypeDate @@ -873,7 +873,7 @@ abstract class MongoAdapterBase implements DbAdapter { return false } - private isRulesSort (options?: FindOptions): boolean { + private isRulesSort(options?: FindOptions): boolean { if (options?.sort !== undefined) { return Object.values(options.sort).some((it) => typeof it === 'object') } @@ -881,7 +881,7 @@ abstract class MongoAdapterBase implements DbAdapter { } @withContext('groupBy') - groupBy ( + groupBy( ctx: MeasureContext, domain: Domain, field: string, @@ -904,7 +904,7 @@ abstract class MongoAdapterBase implements DbAdapter { }) } - findAll ( + findAll( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -1028,7 +1028,7 @@ abstract class MongoAdapterBase implements DbAdapter { }) } - private collectSort ( + private collectSort( options: | (FindOptions & { domain?: Domain | undefined // Allow to find for Doc's in specified domain only. @@ -1118,7 +1118,7 @@ abstract class MongoAdapterBase implements DbAdapter { return projection } - stripHash (docs: T | T[]): T | T[] { + stripHash(docs: T | T[]): T | T[] { if (Array.isArray(docs)) { docs.forEach((it) => { if ('%hash%' in it) { diff --git a/foundations/server/packages/mongo/src/utils.ts b/foundations/server/packages/mongo/src/utils.ts index 4716485500..59944a500d 100644 --- a/foundations/server/packages/mongo/src/utils.ts +++ b/foundations/server/packages/mongo/src/utils.ts @@ -166,7 +166,7 @@ export class DBCollectionHelper implements DomainHelperOperations { } } - collection (domain: Domain): Collection { + collection(domain: Domain): Collection { let info = this.collections.get(domain) if (info === undefined) { info = this.db.collection(domain) diff --git a/foundations/server/packages/postgres/src/storage.ts b/foundations/server/packages/postgres/src/storage.ts index e222b9e67d..0e0966112c 100644 --- a/foundations/server/packages/postgres/src/storage.ts +++ b/foundations/server/packages/postgres/src/storage.ts @@ -236,7 +236,7 @@ abstract class PostgresAdapterBase implements DbAdapter { } } - async traverse ( + async traverse( _domain: Domain, query: DocumentQuery, options?: Pick, 'sort' | 'limit' | 'projection'> @@ -281,7 +281,7 @@ abstract class PostgresAdapterBase implements DbAdapter { on?: ((handler: DbAdapterHandler) => void) | undefined - abstract init( + abstract init ( ctx: MeasureContext, contextVars: Record, domains?: string[], @@ -293,7 +293,7 @@ abstract class PostgresAdapterBase implements DbAdapter { this.refClient.close() } - async rawFindAll (_domain: Domain, query: DocumentQuery, options?: FindOptions): Promise { + async rawFindAll(_domain: Domain, query: DocumentQuery, options?: FindOptions): Promise { const domain = translateDomain(_domain) const vars = new ValuesVariables() const select = `SELECT ${this.getProjection(vars, domain, options?.projection, [])} FROM ${domain}` @@ -312,7 +312,7 @@ abstract class PostgresAdapterBase implements DbAdapter { return result.map((p) => parseDocWithProjection(p, domain, options?.projection)) } - buildRawOrder (domain: string, sort: SortingQuery): string { + buildRawOrder(domain: string, sort: SortingQuery): string { const res: string[] = [] for (const key in sort) { const val = sort[key] @@ -332,7 +332,7 @@ abstract class PostgresAdapterBase implements DbAdapter { } } - buildRawQuery ( + buildRawQuery( vars: ValuesVariables, domain: string, query: DocumentQuery, @@ -351,7 +351,7 @@ abstract class PostgresAdapterBase implements DbAdapter { return res.join(' AND ') } - async rawUpdate ( + async rawUpdate( domain: Domain, query: DocumentQuery, operations: DocumentUpdate @@ -410,7 +410,7 @@ abstract class PostgresAdapterBase implements DbAdapter { } } - private async rawUpdateDoc ( + private async rawUpdateDoc( domain: Domain, query: DocumentQuery, operations: DocumentUpdate, @@ -443,7 +443,7 @@ abstract class PostgresAdapterBase implements DbAdapter { }) } - async rawDeleteMany (domain: Domain, query: DocumentQuery): Promise { + async rawDeleteMany(domain: Domain, query: DocumentQuery): Promise { const vars = new ValuesVariables() const translatedQuery = this.buildRawQuery(vars, domain, query) await this.mgr.retry(undefined, this.mgrId, async (client) => { @@ -451,7 +451,7 @@ abstract class PostgresAdapterBase implements DbAdapter { }) } - findAll ( + findAll( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -577,7 +577,7 @@ abstract class PostgresAdapterBase implements DbAdapter { ) } - private localizeProjection ( + private localizeProjection( _class: Ref>, projection: Projection | undefined ): Projection | undefined { @@ -612,12 +612,12 @@ abstract class PostgresAdapterBase implements DbAdapter { return res } - private buildJoins (_class: Ref>, options: ServerFindOptions | undefined): JoinProps[] { + private buildJoins(_class: Ref>, options: ServerFindOptions | undefined): JoinProps[] { const joins = this.buildJoin(_class, options?.lookup) return joins } - addSecurity ( + addSecurity( _class: Ref>, vars: ValuesVariables, query: DocumentQuery, @@ -654,7 +654,7 @@ abstract class PostgresAdapterBase implements DbAdapter { } } - private async parseLookup ( + private async parseLookup( ctx: MeasureContext, rows: any[], joins: JoinProps[], @@ -878,7 +878,7 @@ abstract class PostgresAdapterBase implements DbAdapter { } } - private getModelLookupValue (doc: WithLookup, join: JoinProps, otherJoins: JoinProps[]): any { + private getModelLookupValue(doc: WithLookup, join: JoinProps, otherJoins: JoinProps[]): any { if (join.fromAlias.startsWith('lookup_')) { const other = otherJoins.find((j) => j.toAlias === join.fromAlias) if (other !== undefined) { @@ -913,7 +913,7 @@ abstract class PostgresAdapterBase implements DbAdapter { return res.join(' ') } - private buildJoin (clazz: Ref>, lookup: Lookup | undefined): JoinProps[] { + private buildJoin(clazz: Ref>, lookup: Lookup | undefined): JoinProps[] { const res: JoinProps[] = [] if (lookup !== undefined) { this.buildJoinValue(clazz, lookup, res) @@ -928,7 +928,7 @@ abstract class PostgresAdapterBase implements DbAdapter { return false } - private buildJoinValue ( + private buildJoinValue( clazz: Ref>, lookup: Lookup, res: JoinProps[], @@ -1041,7 +1041,7 @@ abstract class PostgresAdapterBase implements DbAdapter { } catch {} } - private buildOrder ( + private buildOrder( _class: Ref>, baseDomain: string, sort: SortingQuery, @@ -1213,7 +1213,7 @@ abstract class PostgresAdapterBase implements DbAdapter { return res.join(' AND ') } - private getValueType (_class: Ref>, key: string): ValueType { + private getValueType(_class: Ref>, key: string): ValueType { const splitted = key.split('.') const mixinOrKey = splitted[0] const domain = this.hierarchy.getDomain(_class) @@ -1233,7 +1233,7 @@ abstract class PostgresAdapterBase implements DbAdapter { } } - private fillClass ( + private fillClass( _class: Ref>, query: DocumentQuery ): ObjQueryType | undefined { @@ -1284,7 +1284,7 @@ abstract class PostgresAdapterBase implements DbAdapter { return value } - private getKey ( + private getKey( _class: Ref>, baseDomain: string, key: string, @@ -1317,7 +1317,7 @@ abstract class PostgresAdapterBase implements DbAdapter { return `${join.toAlias}."${tKey}"` } - private transformKey ( + private transformKey( domain: string, _class: Ref>, key: string, @@ -1351,7 +1351,7 @@ abstract class PostgresAdapterBase implements DbAdapter { return isDataArray || isNestedField ? `data->'${tKey}'` : `data#>>'{${tKey}}'` } - private checkMixinKey (key: string, _class: Ref>, isDataArray: boolean): string { + private checkMixinKey(key: string, _class: Ref>, isDataArray: boolean): string { if (!key.includes('.')) { try { const attr = this.hierarchy.findAttribute(_class, key) @@ -1556,7 +1556,7 @@ abstract class PostgresAdapterBase implements DbAdapter { return Date.now().toString(16) // Current hash value } - private getProjection ( + private getProjection( vars: ValuesVariables, baseDomain: string, projection: Projection | undefined, @@ -1596,7 +1596,7 @@ abstract class PostgresAdapterBase implements DbAdapter { return [] } - stripHash (docs: T | T[]): T | T[] { + stripHash(docs: T | T[]): T | T[] { if (Array.isArray(docs)) { docs.forEach((it) => { if ('%hash%' in it) { @@ -1802,7 +1802,7 @@ abstract class PostgresAdapterBase implements DbAdapter { } } - groupBy ( + groupBy( ctx: MeasureContext, domain: Domain, field: string, @@ -2060,7 +2060,7 @@ export class PostgresAdapter extends PostgresAdapterBase { return result } - private updateDoc ( + private updateDoc( ctx: MeasureContext, domain: Domain, txes: TxUpdateDoc[], diff --git a/foundations/server/packages/server/src/client.ts b/foundations/server/packages/server/src/client.ts index 3918f0195a..10eff3be1e 100644 --- a/foundations/server/packages/server/src/client.ts +++ b/foundations/server/packages/server/src/client.ts @@ -191,7 +191,7 @@ export class ClientSession implements Session { ctx.ctx.contextData = contextData } - findAllRaw ( + findAllRaw( ctx: ClientSessionCtx, _class: Ref>, query: DocumentQuery, @@ -208,7 +208,7 @@ export class ClientSession implements Session { return Math.round((estimateDocSize(doc) * 10) / (1024 * 1024)) / 10 } - async findAll ( + async findAll( ctx: ClientSessionCtx, _class: Ref>, query: DocumentQuery, diff --git a/foundations/server/packages/server/src/sessionManager.ts b/foundations/server/packages/server/src/sessionManager.ts index 0bc863c824..066fa06223 100644 --- a/foundations/server/packages/server/src/sessionManager.ts +++ b/foundations/server/packages/server/src/sessionManager.ts @@ -1392,7 +1392,7 @@ export class TSessionManager implements SessionManager { return this.limitter.checkRateLimit(service.getUser() + (service.token.extra?.service ?? '')) } - async handleRequest ( + async handleRequest( requestCtx: MeasureContext, service: S, ws: ConnectionSocket, @@ -1528,7 +1528,7 @@ export class TSessionManager implements SessionManager { } } - async handleRPC ( + async handleRPC( requestCtx: MeasureContext, service: S, method: string, @@ -1626,7 +1626,7 @@ export class TSessionManager implements SessionManager { return Array.from(this.workspaces.values()).map((it) => this.workspaceToWorkspaceStats(it)) } - private async handleHello ( + private async handleHello( request: Request, service: S, ctx: MeasureContext, diff --git a/foundations/server/packages/server/src/workspace.ts b/foundations/server/packages/server/src/workspace.ts index eab082306f..120b49b55f 100644 --- a/foundations/server/packages/server/src/workspace.ts +++ b/foundations/server/packages/server/src/workspace.ts @@ -63,7 +63,7 @@ export class Workspace { return this.pipeline } - async with (op: (pipeline: Pipeline) => Promise): Promise { + async with(op: (pipeline: Pipeline) => Promise): Promise { this.operations++ let pipeline = this.getPipeline() if (pipeline instanceof Promise) { diff --git a/packages/importer/src/importer/builder.ts b/packages/importer/src/importer/builder.ts index 52b4642477..d53ec7bf01 100644 --- a/packages/importer/src/importer/builder.ts +++ b/packages/importer/src/importer/builder.ts @@ -313,7 +313,7 @@ export class ImportWorkspaceBuilder { } } - private validateAndAdd ( + private validateAndAdd( type: string, path: string, item: T, diff --git a/packages/importer/src/importer/preprocessor.ts b/packages/importer/src/importer/preprocessor.ts index 475abc3ae0..7275a7ca9f 100644 --- a/packages/importer/src/importer/preprocessor.ts +++ b/packages/importer/src/importer/preprocessor.ts @@ -31,7 +31,7 @@ export abstract class BaseMarkdownPreprocessor implements MarkdownPreprocessor { constructor (protected readonly personsByName: Map>) {} - abstract process(json: MarkupNode, id: Ref, spaceId: Ref): MarkupNode + abstract process (json: MarkupNode, id: Ref, spaceId: Ref): MarkupNode protected processMentions (node: MarkupNode): void { if (node.type !== MarkupNodeType.paragraph || node.content === undefined) return diff --git a/packages/integration-client/src/client.ts b/packages/integration-client/src/client.ts index 403e97be6f..a4e32ab8b6 100644 --- a/packages/integration-client/src/client.ts +++ b/packages/integration-client/src/client.ts @@ -48,7 +48,7 @@ export class IntegrationClientImpl implements IntegrationClient { ) {} // Event methods - on (event: string, callback: EventCallback): () => void { + on(event: string, callback: EventCallback): () => void { return this.events.on(event, callback) } @@ -56,7 +56,7 @@ export class IntegrationClientImpl implements IntegrationClient { this.events.off(event, callback) } - private emit (event: string, data: T): void { + private emit(event: string, data: T): void { this.events.emit(event, data) } diff --git a/packages/integration-client/src/events.ts b/packages/integration-client/src/events.ts index 3290199770..e95efe92af 100644 --- a/packages/integration-client/src/events.ts +++ b/packages/integration-client/src/events.ts @@ -25,7 +25,7 @@ export interface EventEmitter { export class IntegrationEventEmitter implements EventEmitter { private readonly listeners = new Map>() - on (event: string, callback: EventCallback): () => void { + on(event: string, callback: EventCallback): () => void { if (!this.listeners.has(event)) { this.listeners.set(event, new Set()) } @@ -46,7 +46,7 @@ export class IntegrationEventEmitter implements EventEmitter { } } - emit (event: string, data: T): void { + emit(event: string, data: T): void { const eventListeners = this.listeners.get(event) if (eventListeners === undefined) return diff --git a/packages/kvs-client/src/client.ts b/packages/kvs-client/src/client.ts index 71c4c8ac28..f209ab689b 100644 --- a/packages/kvs-client/src/client.ts +++ b/packages/kvs-client/src/client.ts @@ -65,7 +65,7 @@ class KeyValueClientImpl implements KeyValueClient { } } - async setValue (key: string, value: T): Promise { + async setValue(key: string, value: T): Promise { const url = this.buildUrl(key) await this.sendRequest(url, { method: 'POST', @@ -75,7 +75,7 @@ class KeyValueClientImpl implements KeyValueClient { }) } - async getValue (key: string): Promise { + async getValue(key: string): Promise { const url = this.buildUrl(key) return await this.sendRequest(url, { method: 'GET', @@ -108,7 +108,7 @@ class KeyValueClientImpl implements KeyValueClient { return key !== undefined ? concatLink(baseApiUrl, encodeURIComponent(key)) : baseApiUrl } - private async sendRequest ( + private async sendRequest( url: string, options: { method: string diff --git a/packages/presentation/src/__mocks__/svelte-store.ts b/packages/presentation/src/__mocks__/svelte-store.ts index ac190d5567..e00680b945 100644 --- a/packages/presentation/src/__mocks__/svelte-store.ts +++ b/packages/presentation/src/__mocks__/svelte-store.ts @@ -36,7 +36,7 @@ export interface Derived extends Readable { _getValue?: () => T } -export const writable = (initialValue: T): Writable => { +export const writable = (initialValue: T): Writable => { let value = initialValue const subscribers = new Set>() @@ -65,7 +65,7 @@ export const writable = (initialValue: T): Writable => { return store } -export const derived = ( +export const derived = ( stores: Readable | Array>, fn: (values: any) => T, initialValue?: T @@ -98,7 +98,7 @@ export const derived = ( return store } -export const readable = (initialValue: T, startStopNotifier?: StartStopNotifier): Readable => { +export const readable = (initialValue: T, startStopNotifier?: StartStopNotifier): Readable => { const store: Readable = { subscribe: (callback: Subscriber) => { callback(initialValue) @@ -123,7 +123,7 @@ export const readable = (initialValue: T, startStopNotifier?: StartStopNotif return store } -export const get = (store: Readable): T => { +export const get = (store: Readable): T => { if (store?._getValue != null) { return store._getValue() } diff --git a/packages/presentation/src/__mocks__/svelte.ts b/packages/presentation/src/__mocks__/svelte.ts index 94ccfd9110..836e28d3d6 100644 --- a/packages/presentation/src/__mocks__/svelte.ts +++ b/packages/presentation/src/__mocks__/svelte.ts @@ -36,8 +36,8 @@ export const tick = async (): Promise => { await Promise.resolve() } -export const createEventDispatcher = = any> (): EventDispatcher => { - return (eventType: K, detail?: T[K]): boolean => { +export const createEventDispatcher = = any>(): EventDispatcher => { + return (eventType: K, detail?: T[K]): boolean => { return true } } diff --git a/packages/presentation/src/configuration.ts b/packages/presentation/src/configuration.ts index 63cd701bd4..eb9fde031d 100644 --- a/packages/presentation/src/configuration.ts +++ b/packages/presentation/src/configuration.ts @@ -40,7 +40,7 @@ export class ConfigurationManager { return configuration !== undefined && configuration.enabled } - hasResource (resource?: Resource | null): boolean | undefined { + hasResource(resource?: Resource | null): boolean | undefined { if (resource == null) { return false } diff --git a/packages/presentation/src/drafts.ts b/packages/presentation/src/drafts.ts index 6d58804181..1cd3964430 100644 --- a/packages/presentation/src/drafts.ts +++ b/packages/presentation/src/drafts.ts @@ -166,7 +166,7 @@ export class DraftController { removeDraft(id) } - static save (id: string, object: T, emptyObj: Partial | undefined = undefined): void { + static save(id: string, object: T, emptyObj: Partial | undefined = undefined): void { if (emptyObj !== undefined && isEmptyDraft(object, emptyObj)) { DraftController.remove(id) return diff --git a/packages/presentation/src/pipeline.ts b/packages/presentation/src/pipeline.ts index 2864756d3b..d363ae9357 100644 --- a/packages/presentation/src/pipeline.ts +++ b/packages/presentation/src/pipeline.ts @@ -115,7 +115,7 @@ export class PresentationPipelineImpl implements PresentationPipeline { return current } - async domainRequest ( + async domainRequest( domain: OperationDomain, params: DomainParams, options?: DomainRequestOptions @@ -136,7 +136,7 @@ export class PresentationPipelineImpl implements PresentationPipeline { } } - async findAll ( + async findAll( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -177,7 +177,7 @@ export class PresentationPipelineImpl implements PresentationPipeline { return await this.client.searchFulltext(query, options) } - async findOne ( + async findOne( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -197,7 +197,7 @@ export class PresentationPipelineImpl implements PresentationPipeline { } } - async subscribe ( + async subscribe( _class: Ref>, query: DocumentQuery, options: FindOptions | undefined, @@ -261,7 +261,7 @@ export abstract class BasePresentationMiddleware { await this.client.close() } - async findAll ( + async findAll( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -269,7 +269,7 @@ export abstract class BasePresentationMiddleware { return await this.provideFindAll(_class, query, options) } - async findOne ( + async findOne( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -277,7 +277,7 @@ export abstract class BasePresentationMiddleware { return await this.provideFindOne(_class, query, options) } - async subscribe ( + async subscribe( _class: Ref>, query: DocumentQuery, options: FindOptions | undefined, @@ -297,7 +297,7 @@ export abstract class BasePresentationMiddleware { return await this.client.tx(tx) } - protected async provideFindAll ( + protected async provideFindAll( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -308,7 +308,7 @@ export abstract class BasePresentationMiddleware { return await this.client.findAll(_class, query, options) } - protected async provideFindOne ( + protected async provideFindOne( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -319,7 +319,7 @@ export abstract class BasePresentationMiddleware { return await this.client.findOne(_class, query, options) } - async domainRequest ( + async domainRequest( domain: OperationDomain, params: DomainParams, options?: DomainRequestOptions @@ -327,7 +327,7 @@ export abstract class BasePresentationMiddleware { return await this.provideDomainRequest(domain, params, options) } - protected async provideDomainRequest ( + protected async provideDomainRequest( domain: OperationDomain, params: DomainParams, options?: DomainRequestOptions @@ -338,7 +338,7 @@ export abstract class BasePresentationMiddleware { return await this.client.domainRequest(domain, params, options) } - protected async provideSubscribe ( + protected async provideSubscribe( _class: Ref>, query: DocumentQuery, options: FindOptions | undefined, @@ -386,7 +386,7 @@ export class OptimizeQueryMiddleware extends BasePresentationMiddleware implemen return await this.provideTx(tx) } - async domainRequest ( + async domainRequest( domain: OperationDomain, params: DomainParams, options?: DomainRequestOptions @@ -394,7 +394,7 @@ export class OptimizeQueryMiddleware extends BasePresentationMiddleware implemen return await this.provideDomainRequest(domain, params, options) } - async subscribe ( + async subscribe( _class: Ref>, query: DocumentQuery, options: FindOptions | undefined, @@ -407,7 +407,7 @@ export class OptimizeQueryMiddleware extends BasePresentationMiddleware implemen return await this.provideSubscribe(_class, query, options, refresh) } - async findAll ( + async findAll( _class: Ref>, query: DocumentQuery, options?: FindOptions | undefined @@ -438,7 +438,7 @@ export class OptimizeQueryMiddleware extends BasePresentationMiddleware implemen return await this.provideFindAll(_class, fQuery, fOptions) } - private optimizeQuery (fQuery: DocumentQuery, fOptions: FindOptions): void { + private optimizeQuery(fQuery: DocumentQuery, fOptions: FindOptions): void { if (typeof fQuery._id === 'string' && fOptions.sort !== undefined) { delete fOptions.sort } @@ -447,7 +447,7 @@ export class OptimizeQueryMiddleware extends BasePresentationMiddleware implemen } } - async findOne ( + async findOne( _class: Ref>, query: DocumentQuery, options?: FindOptions | undefined diff --git a/packages/presentation/src/utils.ts b/packages/presentation/src/utils.ts index af67c33564..395ac538c7 100644 --- a/packages/presentation/src/utils.ts +++ b/packages/presentation/src/utils.ts @@ -162,7 +162,7 @@ class UIClient extends TxOperations implements Client { } } - override async findAll ( + override async findAll( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -170,7 +170,7 @@ class UIClient extends TxOperations implements Client { return await this.liveQuery.findAll(_class, query, options) } - override async findOne ( + override async findOne( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -309,7 +309,7 @@ class ClientHookImpl implements Client { return this.client.getModel() } - async findOne ( + async findOne( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -324,7 +324,7 @@ class ClientHookImpl implements Client { await this.client.close() } - async findAll ( + async findAll( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -505,7 +505,7 @@ export class LiveQuery { } } - query ( + query( _class: Ref>, query: DocumentQuery, callback: (result: FindResult) => void | Promise, @@ -533,7 +533,7 @@ export class LiveQuery { } ) - private doQuery ( + private doQuery( id: number, _class: Ref>, query: DocumentQuery, @@ -602,7 +602,7 @@ export class LiveQuery { } } - private needUpdate ( + private needUpdate( _class: Ref>, query: DocumentQuery, callback: (result: FindResult) => void | Promise, diff --git a/packages/ui/src/colors.ts b/packages/ui/src/colors.ts index 863a29bbda..cd3ffd7899 100644 --- a/packages/ui/src/colors.ts +++ b/packages/ui/src/colors.ts @@ -284,14 +284,14 @@ export function getPlatformColorByName (name: string, darkTheme: boolean): Color return getColorByName(name, darkTheme, whitePalette, darkPalette, defaultIndex) } -function getColorByName( +function getColorByName ( name: string, darkTheme: boolean, paletteLight: readonly ColorDefinition[], paletteDark: readonly ColorDefinition[], defaultIndex: number ): ColorDefinition -function getColorByName( +function getColorByName ( name: string, darkTheme: boolean, paletteLight: readonly ColorDefinition[], diff --git a/plugins/devmodel-resources/src/index.ts b/plugins/devmodel-resources/src/index.ts index 4c1c5b33a6..90ff300fb8 100644 --- a/plugins/devmodel-resources/src/index.ts +++ b/plugins/devmodel-resources/src/index.ts @@ -86,7 +86,7 @@ export class PresentationClientHook implements ClientHook { return candidate } - async findOne ( + async findOne( client: Client, _class: Ref>, query: DocumentQuery, @@ -113,7 +113,7 @@ export class PresentationClientHook implements ClientHook { return result } - async findAll ( + async findAll( client: Client, _class: Ref>, query: DocumentQuery, diff --git a/plugins/emoji/src/utils.ts b/plugins/emoji/src/utils.ts index 4b297c16d6..24fd921d96 100644 --- a/plugins/emoji/src/utils.ts +++ b/plugins/emoji/src/utils.ts @@ -40,9 +40,9 @@ export const emoticonGlobalRegex = new RegExp(EMOTICON_REGEX.source, EMOTICON_RE export const shortcodeRegex = new RegExp(`(?:^|\\s)(${SHORTCODE_REGEX.source})$`) export const shortcodeGlobalRegex = new RegExp(SHORTCODE_REGEX.source, SHORTCODE_REGEX.flags + 'g') -async function fetchEmojis(locale: Locale, options: FetchEmojisOptions & { compact: true }): Promise +async function fetchEmojis (locale: Locale, options: FetchEmojisOptions & { compact: true }): Promise -async function fetchEmojis(locale: Locale, options?: FetchEmojisOptions & { compact?: false }): Promise +async function fetchEmojis (locale: Locale, options?: FetchEmojisOptions & { compact?: false }): Promise async function fetchEmojis (locale: Locale, options: FetchEmojisExpandedOptions = {}): Promise { const { compact = false, shortcodes: presets = [] } = options diff --git a/plugins/view-resources/src/middleware.ts b/plugins/view-resources/src/middleware.ts index 4c486fe7b1..cda175106f 100644 --- a/plugins/view-resources/src/middleware.ts +++ b/plugins/view-resources/src/middleware.ts @@ -85,7 +85,7 @@ export class AggregationMiddleware extends BasePresentationMiddleware implements } } - async subscribe ( + async subscribe( _class: Ref>, query: DocumentQuery, options: FindOptions | undefined, @@ -188,7 +188,7 @@ export class AggregationMiddleware extends BasePresentationMiddleware implements return mgr } - async findAll ( + async findAll( _class: Ref>, query: DocumentQuery, options?: FindOptions | undefined @@ -205,7 +205,7 @@ export class AggregationMiddleware extends BasePresentationMiddleware implements return await this.provideFindAll(_class, fquery, finalOptions) } - private async updateQueryOptions ( + private async updateQueryOptions( allAttrs: Map, h: Hierarchy, docFields: Array>, diff --git a/plugins/view-resources/src/utils.ts b/plugins/view-resources/src/utils.ts index 771567aca2..afc787fafd 100644 --- a/plugins/view-resources/src/utils.ts +++ b/plugins/view-resources/src/utils.ts @@ -145,7 +145,7 @@ export class AggregationManager implements IAggregationManager void this.getManager() } - static create ( + static create( client: Client, lqCallback: () => void, setStore: (manager: DocManager) => void, diff --git a/pods/media/src/client.ts b/pods/media/src/client.ts index cf1a0dcf43..ccd9df02f8 100644 --- a/pods/media/src/client.ts +++ b/pods/media/src/client.ts @@ -166,7 +166,7 @@ class RestClientAdapter implements Client { private readonly model: ModelDb | undefined ) {} - async domainRequest ( + async domainRequest( domain: OperationDomain, params: DomainParams, options?: DomainRequestOptions @@ -174,7 +174,7 @@ class RestClientAdapter implements Client { return await this.client.domainRequest(domain, params, options) } - async findAll ( + async findAll( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -202,7 +202,7 @@ class RestClientAdapter implements Client { return await this.client.tx(tx) } - async findOne ( + async findOne( _class: Ref>, query: DocumentQuery, options?: FindOptions diff --git a/pods/server/src/__tests__/server.test.ts b/pods/server/src/__tests__/server.test.ts index 049f66f7b3..a508002f91 100644 --- a/pods/server/src/__tests__/server.test.ts +++ b/pods/server/src/__tests__/server.test.ts @@ -70,7 +70,7 @@ describe('server', () => { modelDb, context: {} as any, handleBroadcast: async (ctx) => {}, - findAll: async ( + findAll: async ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -177,7 +177,7 @@ describe('server', () => { modelDb, context: {} as any, handleBroadcast: async (ctx) => {}, - findAll: async ( + findAll: async ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, diff --git a/server/account-service/src/migration/collections/mongo.ts b/server/account-service/src/migration/collections/mongo.ts index a3c419d2d8..c3c4110b9a 100644 --- a/server/account-service/src/migration/collections/mongo.ts +++ b/server/account-service/src/migration/collections/mongo.ts @@ -115,7 +115,7 @@ export class MongoDbCollection> implements DbColle return await this.collection.findOne(query as Filter) } - async insertOne (data: Partial, idKey?: K): Promise { + async insertOne(data: Partial, idKey?: K): Promise { const res = await this.collection.insertOne(data as OptionalUnlessRequiredId) return res.insertedId @@ -179,7 +179,7 @@ export class WorkspaceMongoDbCollection extends MongoDbCollection imp super('workspace', db) } - async insertOne (data: Partial, idKey?: K): Promise { + async insertOne(data: Partial, idKey?: K): Promise { if (data.uuid === undefined) { data.uuid = new UUID().toJSON() as WorkspaceUuid } diff --git a/server/server-pipeline/src/blobStorage.ts b/server/server-pipeline/src/blobStorage.ts index e72da2a400..71ef4b092c 100644 --- a/server/server-pipeline/src/blobStorage.ts +++ b/server/server-pipeline/src/blobStorage.ts @@ -51,7 +51,7 @@ class StorageBlobAdapter implements DbAdapter { readonly ctx: MeasureContext ) {} - async traverse ( + async traverse( domain: Domain, query: DocumentQuery, options?: Pick, 'sort' | 'limit' | 'projection'> @@ -75,7 +75,7 @@ class StorageBlobAdapter implements DbAdapter { on?: ((handler: DbAdapterHandler) => void) | undefined - async rawFindAll (domain: Domain, query: DocumentQuery, options?: FindOptions): Promise { + async rawFindAll(domain: Domain, query: DocumentQuery, options?: FindOptions): Promise { return [] } @@ -86,15 +86,15 @@ class StorageBlobAdapter implements DbAdapter { } } - async rawUpdate ( + async rawUpdate( domain: Domain, query: DocumentQuery, operations: DocumentUpdate ): Promise {} - async rawDeleteMany (domain: Domain, query: DocumentQuery): Promise {} + async rawDeleteMany(domain: Domain, query: DocumentQuery): Promise {} - async findAll ( + async findAll( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -103,7 +103,7 @@ class StorageBlobAdapter implements DbAdapter { return toFindResult([]) } - async groupBy (ctx: MeasureContext, domain: Domain, field: string): Promise> { + async groupBy(ctx: MeasureContext, domain: Domain, field: string): Promise> { return new Map() } diff --git a/server/tool/src/initializer.ts b/server/tool/src/initializer.ts index 406c1520d7..ee73d1fe64 100644 --- a/server/tool/src/initializer.ts +++ b/server/tool/src/initializer.ts @@ -176,7 +176,7 @@ export class WorkspaceInitializer { } } - private async processDefault ( + private async processDefault( step: DefaultStep, defaults: Map>, Props> ): Promise { @@ -213,7 +213,7 @@ export class WorkspaceInitializer { } } - private async processFind (step: FindStep, vars: Record): Promise { + private async processFind(step: FindStep, vars: Record): Promise { const query = this.fillProps(step.query, vars) const res = await this.client.findOne(step._class, { ...(query as any) }) if (res === undefined) { @@ -224,7 +224,7 @@ export class WorkspaceInitializer { } } - private async processMixin (step: MixinStep, vars: Record): Promise { + private async processMixin(step: MixinStep, vars: Record): Promise { const data = await this.fillPropsWithMarkdown(step.data, vars, step.markdownFields) const { _id, space, ...props } = data if (_id === undefined || space === undefined) { @@ -233,7 +233,7 @@ export class WorkspaceInitializer { await this.client.createMixin(_id, step._class, space, step.mixin, props) } - private async processUpdate (step: UpdateStep, vars: Record): Promise { + private async processUpdate(step: UpdateStep, vars: Record): Promise { const data = await this.fillPropsWithMarkdown(step.data, vars, step.markdownFields) const { _id, space, ...props } = data if (_id === undefined || space === undefined) { @@ -242,7 +242,7 @@ export class WorkspaceInitializer { await this.client.updateDoc(step._class, space, _id, props) } - private async processBulkUpdate (step: BulkUpdateStep, vars: Record): Promise { + private async processBulkUpdate(step: BulkUpdateStep, vars: Record): Promise { const ops = this.client.apply() const docs = await this.client.findAll(step._class, { ...(step.query as any) }) const data = await this.fillPropsWithMarkdown(step.data, vars, step.markdownFields) @@ -252,7 +252,7 @@ export class WorkspaceInitializer { await ops.commit() } - private async processCreate ( + private async processCreate( step: CreateStep, vars: Record, defaults: Map>, Props> @@ -286,7 +286,7 @@ export class WorkspaceInitializer { return JSON.stringify(json) } - private async create (_class: Ref>, data: Props, _id?: Ref): Promise> { + private async create(_class: Ref>, data: Props, _id?: Ref): Promise> { const hierarchy = this.client.getHierarchy() if (hierarchy.isDerived(_class, core.class.AttachedDoc)) { @@ -317,7 +317,7 @@ export class WorkspaceInitializer { } } - private async fillPropsWithMarkdown | Props> ( + private async fillPropsWithMarkdown | Props>( data: P, vars: Record, markdownFields?: string[] @@ -352,7 +352,7 @@ export class WorkspaceInitializer { return await saveCollabJson(this.ctx, this.storageAdapter, this.wsIds, doc, markup) } - private async fillProps | Props> ( + private async fillProps | Props>( data: P, vars: Record ): Promise

{ diff --git a/server/tool/src/upgrade.ts b/server/tool/src/upgrade.ts index 48849ef074..21a8942e82 100644 --- a/server/tool/src/upgrade.ts +++ b/server/tool/src/upgrade.ts @@ -53,7 +53,7 @@ export class MigrateClientImpl implements MigrationClient { migrateState = new Map>() - async find ( + async find( domain: Domain, query: DocumentQuery, options?: FindOptions | undefined @@ -61,11 +61,11 @@ export class MigrateClientImpl implements MigrationClient { return await this.lowLevel.rawFindAll(domain, query, options) } - async groupBy (domain: Domain, field: string, query?: DocumentQuery

): Promise> { + async groupBy(domain: Domain, field: string, query?: DocumentQuery

): Promise> { return await this.lowLevel.groupBy(this.ctx, domain, field, query) } - async traverse ( + async traverse( domain: Domain, query: DocumentQuery, options?: FindOptions | undefined @@ -73,7 +73,7 @@ export class MigrateClientImpl implements MigrationClient { return await this.lowLevel.traverse(domain, query, options) } - async update (domain: Domain, query: DocumentQuery, operations: MigrateUpdate): Promise { + async update(domain: Domain, query: DocumentQuery, operations: MigrateUpdate): Promise { const t = Date.now() try { await this.lowLevel.rawUpdate(domain, query, operations) @@ -84,7 +84,7 @@ export class MigrateClientImpl implements MigrationClient { } } - async bulk ( + async bulk( domain: Domain, operations: { filter: DocumentQuery, update: MigrateUpdate }[] ): Promise { @@ -93,7 +93,7 @@ export class MigrateClientImpl implements MigrationClient { } } - async move ( + async move( sourceDomain: Domain, query: DocumentQuery, targetDomain: Domain, @@ -113,17 +113,17 @@ export class MigrateClientImpl implements MigrationClient { } } - async create (domain: Domain, doc: T | T[]): Promise { + async create(domain: Domain, doc: T | T[]): Promise { const ctx = new MeasureMetricsContext('create', {}) await this.lowLevel.upload(ctx, domain, Array.isArray(doc) ? doc : [doc]) } - async delete (domain: Domain, _id: Ref): Promise { + async delete(domain: Domain, _id: Ref): Promise { const ctx = new MeasureMetricsContext('delete', {}) await this.lowLevel.clean(ctx, domain, [_id]) } - async deleteMany (domain: Domain, query: DocumentQuery): Promise { + async deleteMany(domain: Domain, query: DocumentQuery): Promise { await this.lowLevel.rawDeleteMany(domain, query) } diff --git a/services/billing/pod-billing/src/db/postgres.ts b/services/billing/pod-billing/src/db/postgres.ts index 841d0ee86a..bf0b13ebaa 100644 --- a/services/billing/pod-billing/src/db/postgres.ts +++ b/services/billing/pod-billing/src/db/postgres.ts @@ -65,7 +65,7 @@ class PostgresDB implements BillingDB { return db } - async execute)[]> (query: string, params?: any[]): Promise { + async execute)[]>(query: string, params?: any[]): Promise { query = params !== undefined && params.length > 0 ? injectVars(query, params) : query return await this.sql.unsafe(query) } diff --git a/services/calendar/pod-calendar/src/sync.ts b/services/calendar/pod-calendar/src/sync.ts index e232dfa123..619acff0d5 100644 --- a/services/calendar/pod-calendar/src/sync.ts +++ b/services/calendar/pod-calendar/src/sync.ts @@ -467,7 +467,7 @@ export class IncomingSyncManager { return [Array.from(contacts), Array.from(extra)] } - private getDiff (data: Partial>, current: T): Partial> { + private getDiff(data: Partial>, current: T): Partial> { const res = {} for (const key in data) { if (!deepEqual((data as any)[key], (current as any)[key])) { diff --git a/services/datalake/pod-datalake/src/datalake/db.ts b/services/datalake/pod-datalake/src/datalake/db.ts index 91e0f0c73e..683d6de101 100644 --- a/services/datalake/pod-datalake/src/datalake/db.ts +++ b/services/datalake/pod-datalake/src/datalake/db.ts @@ -132,7 +132,7 @@ export class PostgresDB implements BlobDB { return db } - async execute)[]> (query: string, params?: any[]): Promise { + async execute)[]>(query: string, params?: any[]): Promise { query = params !== undefined && params.length > 0 ? injectVars(query, params) : query return await this.sql.unsafe(query) } diff --git a/services/export/pod-export/src/__tests__/data-mapper.test.ts b/services/export/pod-export/src/__tests__/data-mapper.test.ts index b9ccc6feb5..b3ce874c1a 100644 --- a/services/export/pod-export/src/__tests__/data-mapper.test.ts +++ b/services/export/pod-export/src/__tests__/data-mapper.test.ts @@ -58,7 +58,7 @@ function createMockTxOperations (existingDocs: Array> = []): } return { - findAll: jest.fn(async (classRef: Ref>, query: any, options?: any): Promise => { + findAll: jest.fn(async (classRef: Ref>, query: any, options?: any): Promise => { const results: T[] = [] for (const doc of docsMap.values()) { if (doc._class !== classRef) continue @@ -119,7 +119,7 @@ function createMockTxOperations (existingDocs: Array> = []): } return results }), - findOne: jest.fn(async function ( + findOne: jest.fn(async function ( this: any, classRef: Ref>, query: any, diff --git a/services/export/pod-export/src/__tests__/product-version-handler.test.ts b/services/export/pod-export/src/__tests__/product-version-handler.test.ts index 93c54353ab..3156911944 100644 --- a/services/export/pod-export/src/__tests__/product-version-handler.test.ts +++ b/services/export/pod-export/src/__tests__/product-version-handler.test.ts @@ -88,7 +88,7 @@ function makeTargetClient (existing: ProductVersion[] = []): { const created: ProductVersion[] = [] const client = { - findOne: jest.fn(async (classRef: Ref>, query: any): Promise => { + findOne: jest.fn(async (classRef: Ref>, query: any): Promise => { for (const d of docs) { if (d._class !== classRef) continue let ok = true diff --git a/services/export/pod-export/src/__tests__/relation-exporter.test.ts b/services/export/pod-export/src/__tests__/relation-exporter.test.ts index e748bdb692..fa2e8ed339 100644 --- a/services/export/pod-export/src/__tests__/relation-exporter.test.ts +++ b/services/export/pod-export/src/__tests__/relation-exporter.test.ts @@ -67,7 +67,7 @@ function lowLevelForDocs (...docs: Doc[]): LowLevelStorage { byDomain.set(domain, list) } return { - rawFindAll: jest.fn(async (_domain: string, query: any): Promise => { + rawFindAll: jest.fn(async (_domain: string, query: any): Promise => { const domainDocs = byDomain.get(_domain) ?? [] return domainDocs.filter((d) => { if (query._id !== undefined && d._id !== query._id) return false diff --git a/services/export/pod-export/src/__tests__/workspace-exporter.test.ts b/services/export/pod-export/src/__tests__/workspace-exporter.test.ts index 5614477cb9..ca9a77a736 100644 --- a/services/export/pod-export/src/__tests__/workspace-exporter.test.ts +++ b/services/export/pod-export/src/__tests__/workspace-exporter.test.ts @@ -114,7 +114,7 @@ function createMockHierarchy (config: { function createMockLowLevelStorage (documents: Map): LowLevelStorage { return { - rawFindAll: jest.fn(async (domain: string, query: any): Promise => { + rawFindAll: jest.fn(async (domain: string, query: any): Promise => { const allDocs = documents.get(domain) ?? [] return allDocs.filter((doc) => { @@ -155,7 +155,7 @@ function createMockLowLevelStorage (documents: Map): LowLevelStor return true }) as T[] }), - traverse: jest.fn(async (domain: string, query: any) => { + traverse: jest.fn(async (domain: string, query: any) => { const docs = documents.get(domain) ?? [] let returned = false return { @@ -183,7 +183,7 @@ function createMockTxOperations ( const createdDocs: Doc[] = [] return { - findAll: jest.fn(async (classRef: Ref>, query: any): Promise => { + findAll: jest.fn(async (classRef: Ref>, query: any): Promise => { if (classRef === core.class.Space || query._class !== undefined) { return existingSpaces.filter((s) => { if (query.name !== undefined && s.name !== query.name) return false @@ -200,14 +200,14 @@ function createMockTxOperations ( return existingDocs.filter((d) => d._class === classRef) as unknown as T[] }), createDoc: jest.fn( - async (classRef: Ref>, space: Ref, data: any, id?: Ref): Promise> => { + async (classRef: Ref>, space: Ref, data: any, id?: Ref): Promise> => { const docId = id ?? generateId() createdDocs.push({ _id: docId, _class: classRef, space, ...data }) return docId } ), addCollection: jest.fn( - async ( + async ( classRef: Ref>, space: Ref, attachedTo: Ref, diff --git a/services/github/pod-github/src/sync/comments.ts b/services/github/pod-github/src/sync/comments.ts index 3bac1fa230..7fdee5bdad 100644 --- a/services/github/pod-github/src/sync/comments.ts +++ b/services/github/pod-github/src/sync/comments.ts @@ -63,7 +63,7 @@ export class CommentSyncManager implements DocSyncManager { eventSync = new Map>() @withContext('comments-handle-event') - async handleEvent ( + async handleEvent( ctx: MeasureContext, integration: IntegrationContainer, derivedClient: TxOperations, diff --git a/services/github/pod-github/src/sync/issueBase.ts b/services/github/pod-github/src/sync/issueBase.ts index 878b1b06f1..c57856ce19 100644 --- a/services/github/pod-github/src/sync/issueBase.ts +++ b/services/github/pod-github/src/sync/issueBase.ts @@ -233,7 +233,7 @@ export abstract class IssueSyncManagerBase { } } - abstract fillBackChanges(update: DocumentUpdate, existing: GithubIssue, external: any): Promise + abstract fillBackChanges (update: DocumentUpdate, existing: GithubIssue, external: any): Promise async addConnectToMessage ( msg: IntlString, @@ -259,7 +259,7 @@ export abstract class IssueSyncManagerBase { await stripGuestLink(data) } - abstract performIssueFieldsUpdate( + abstract performIssueFieldsUpdate ( ctx: MeasureContext, info: DocSyncInfo, existing: WithMarkup, @@ -271,7 +271,7 @@ export abstract class IssueSyncManagerBase { account: PersonId ): Promise - abstract afterSync( + abstract afterSync ( ctx: MeasureContext, existing: Issue, account: PersonId, @@ -687,7 +687,7 @@ export abstract class IssueSyncManagerBase { this.provider.sync() } - abstract deleteGithubDocument( + abstract deleteGithubDocument ( ctx: MeasureContext, container: ContainerFocus, account: PersonId, diff --git a/services/github/pod-github/src/sync/issues.ts b/services/github/pod-github/src/sync/issues.ts index 4a05bbe342..3205f01e4a 100644 --- a/services/github/pod-github/src/sync/issues.ts +++ b/services/github/pod-github/src/sync/issues.ts @@ -66,7 +66,7 @@ export class IssueSyncManager extends IssueSyncManagerBase implements DocSyncMan } @withContext('issues-handleEvent') - async handleEvent ( + async handleEvent( ctx: MeasureContext, integration: IntegrationContainer, derivedClient: TxOperations, diff --git a/services/github/pod-github/src/sync/pullrequests.ts b/services/github/pod-github/src/sync/pullrequests.ts index 3062dea185..fc56adfb74 100644 --- a/services/github/pod-github/src/sync/pullrequests.ts +++ b/services/github/pod-github/src/sync/pullrequests.ts @@ -81,7 +81,7 @@ export class PullRequestSyncManager extends IssueSyncManagerBase implements DocS externalDerivedSync = true @withContext('pullrequests-handleEvent') - async handleEvent ( + async handleEvent( ctx: MeasureContext, integration: IntegrationContainer, derivedClient: TxOperations, diff --git a/services/github/pod-github/src/sync/repository.ts b/services/github/pod-github/src/sync/repository.ts index 1b472f136b..04ada5b80a 100644 --- a/services/github/pod-github/src/sync/repository.ts +++ b/services/github/pod-github/src/sync/repository.ts @@ -117,7 +117,7 @@ export class RepositorySyncMapper implements DocSyncManager { } @withContext('repository-handleEvent') - async handleEvent ( + async handleEvent( ctx: MeasureContext, integration: IntegrationContainer, derivedClient: TxOperations, diff --git a/services/github/pod-github/src/sync/reviewComments.ts b/services/github/pod-github/src/sync/reviewComments.ts index 56afcd03b5..053d714bed 100644 --- a/services/github/pod-github/src/sync/reviewComments.ts +++ b/services/github/pod-github/src/sync/reviewComments.ts @@ -56,7 +56,7 @@ export class ReviewCommentSyncManager implements DocSyncManager { eventSync = new Map>() @withContext('review-comments-handleEvent') - async handleEvent ( + async handleEvent( ctx: MeasureContext, integration: IntegrationContainer, derivedClient: TxOperations, diff --git a/services/github/pod-github/src/sync/reviewThreads.ts b/services/github/pod-github/src/sync/reviewThreads.ts index 07a73e0929..dd8310352a 100644 --- a/services/github/pod-github/src/sync/reviewThreads.ts +++ b/services/github/pod-github/src/sync/reviewThreads.ts @@ -86,7 +86,7 @@ export class ReviewThreadSyncManager implements DocSyncManager { eventSync = new Map>() @withContext('review-threads-handleEvent') - async handleEvent ( + async handleEvent( ctx: MeasureContext, integration: IntegrationContainer, derivedClient: TxOperations, diff --git a/services/github/pod-github/src/sync/reviews.ts b/services/github/pod-github/src/sync/reviews.ts index 6a7f74da4e..5d953dc860 100644 --- a/services/github/pod-github/src/sync/reviews.ts +++ b/services/github/pod-github/src/sync/reviews.ts @@ -56,7 +56,7 @@ export class ReviewSyncManager implements DocSyncManager { eventSync = new Map>() @withContext('reviews-handleEvent') - async handleEvent ( + async handleEvent( ctx: MeasureContext, integration: IntegrationContainer, derivedClient: TxOperations, diff --git a/services/github/pod-github/src/sync/users.ts b/services/github/pod-github/src/sync/users.ts index bf9b4346b9..f49f18e0e3 100644 --- a/services/github/pod-github/src/sync/users.ts +++ b/services/github/pod-github/src/sync/users.ts @@ -40,7 +40,7 @@ export class UsersSyncManager implements DocSyncManager { return false } - async handleEvent ( + async handleEvent( ctx: MeasureContext, integration: IntegrationContainer, derivedClient: TxOperations, diff --git a/services/github/pod-github/src/sync/utils.ts b/services/github/pod-github/src/sync/utils.ts index f5ce57d827..5667a6c9d9 100644 --- a/services/github/pod-github/src/sync/utils.ts +++ b/services/github/pod-github/src/sync/utils.ts @@ -215,7 +215,7 @@ export async function guessStatus ( export class SyncRunner { eventSync = new Map>() - async exec (id: string, op: () => Promise): Promise { + async exec(id: string, op: () => Promise): Promise { await this.eventSync.get(id) const promise = op() this.eventSync.set( diff --git a/services/github/pod-github/src/worker.ts b/services/github/pod-github/src/worker.ts index 6ce8bb7690..ce7165338c 100644 --- a/services/github/pod-github/src/worker.ts +++ b/services/github/pod-github/src/worker.ts @@ -1724,7 +1724,7 @@ export class GithubWorker implements IntegrationManager { } } - async handleEvent ( + async handleEvent( ctx: MeasureContext, requestClass: Ref>, integrationId: number | undefined, diff --git a/services/rekoni/src/server.ts b/services/rekoni/src/server.ts index c5dd060538..57fe45fd76 100644 --- a/services/rekoni/src/server.ts +++ b/services/rekoni/src/server.ts @@ -100,7 +100,7 @@ export const startServer = async (): Promise => { let idx = 0 // Allow to execute 30 per second. const extractQueue = { - add: async (exec: () => Promise): Promise => { + add: async (exec: () => Promise): Promise => { if (ops.size > 100) { await Promise.any(ops.values()) } diff --git a/services/telegram-bot/pod-telegram-bot/src/limiter.ts b/services/telegram-bot/pod-telegram-bot/src/limiter.ts index 41dc14ce2c..ad48077e52 100644 --- a/services/telegram-bot/pod-telegram-bot/src/limiter.ts +++ b/services/telegram-bot/pod-telegram-bot/src/limiter.ts @@ -42,7 +42,7 @@ export class Limiter { }, this.chatTimeLimit) } - async exec (op: () => Promise): Promise { + async exec(op: () => Promise): Promise { while (this.sentMsg >= this.maxMsgPerTime) { await new Promise((resolve) => setTimeout(resolve, Math.max(Date.now() - this.clearTimeLimitOn), 10)) } @@ -56,7 +56,7 @@ export class Limiter { } } - async add (telegramId: number, op: () => Promise): Promise { + async add(telegramId: number, op: () => Promise): Promise { await this.updateChatLimits(telegramId) if (this.sentMsg >= this.maxMsgPerTime) { diff --git a/services/telegram/pod-telegram/src/config.ts b/services/telegram/pod-telegram/src/config.ts index 809fac181d..b4687813e3 100644 --- a/services/telegram/pod-telegram/src/config.ts +++ b/services/telegram/pod-telegram/src/config.ts @@ -49,7 +49,7 @@ const defaults: Partial = { const required: Array = ['TelegramApiID', 'TelegramApiHash', 'MongoURI', 'AccountsURL', 'Secret'] -const mergeConfigs = (defaults: Partial, params: Partial): T => { +const mergeConfigs = (defaults: Partial, params: Partial): T => { const result = { ...defaults } for (const key in params) { if (params[key] !== undefined) { From c6c032b85c648c0ea27eeb6a425152a4cc4bfd7d Mon Sep 17 00:00:00 2001 From: Alexander Onnikov Date: Thu, 10 Sep 2026 18:57:16 +0700 Subject: [PATCH 29/55] chore: update faker to 10.6.0 Signed-off-by: Alexander Onnikov (ported from TraceX a0fd323316) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- dev/tool/package.json | 2 +- qms-tests/sanity/package.json | 2 +- tests/sanity/package.json | 2 +- tests/sanity/tests/utils.ts | 4 ++-- ws-tests/sanity/package.json | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/dev/tool/package.json b/dev/tool/package.json index 12e8c10317..2c8a7a896a 100644 --- a/dev/tool/package.json +++ b/dev/tool/package.json @@ -192,7 +192,7 @@ "msgpackr-extract": "^3.0.3", "@hcengineering/kafka": "workspace:^0.7.18", "@hcengineering/api-client": "workspace:^0.7.25", - "@faker-js/faker": "^8.4.1", + "@faker-js/faker": "^10.6.0", "@hcengineering/hulylake-client": "workspace:^0.7.18", "@hcengineering/communication-types": "workspace:^0.7.12", "@hcengineering/pod-rating": "workspace:^0.7.0" diff --git a/qms-tests/sanity/package.json b/qms-tests/sanity/package.json index 064f9c68f3..025eafd6c9 100644 --- a/qms-tests/sanity/package.json +++ b/qms-tests/sanity/package.json @@ -43,7 +43,7 @@ "@playwright/test": "^1.48.2", "allure-playwright": "^3.0.6", "allure-js-commons": "^3.0.6", - "@faker-js/faker": "^8.4.1", + "@faker-js/faker": "^10.6.0", "eslint-plugin-svelte": "^3.23.0", "eslint-config-love": "^155.0.0" }, diff --git a/tests/sanity/package.json b/tests/sanity/package.json index 792934a926..e29c766833 100644 --- a/tests/sanity/package.json +++ b/tests/sanity/package.json @@ -42,7 +42,7 @@ "@playwright/test": "^1.48.2", "allure-playwright": "^3.0.6", "allure-js-commons": "^3.0.6", - "@faker-js/faker": "^8.4.1", + "@faker-js/faker": "^10.6.0", "eslint-plugin-svelte": "^3.23.0", "eslint-config-love": "^155.0.0" }, diff --git a/tests/sanity/tests/utils.ts b/tests/sanity/tests/utils.ts index ab02d7f66f..ef60993a48 100644 --- a/tests/sanity/tests/utils.ts +++ b/tests/sanity/tests/utils.ts @@ -33,7 +33,7 @@ export function generateTestData (): TestData { return { workspaceName: faker.lorem.word(), - userName: faker.internet.userName(), + userName: faker.internet.username(), firstName: faker.person.firstName(), lastName: faker.person.lastName(), channelName: generateWordStartingWithA() @@ -60,7 +60,7 @@ export function getNextHourTimeForPlanner (): string { // Consistent data export const workspaceName = faker.lorem.word() -export const userName = faker.internet.userName() +export const userName = faker.internet.username() export const firstName = faker.person.firstName() export const lastName = faker.person.lastName() export const channelName = faker.lorem.word() diff --git a/ws-tests/sanity/package.json b/ws-tests/sanity/package.json index de508f777c..50e1cf5cba 100644 --- a/ws-tests/sanity/package.json +++ b/ws-tests/sanity/package.json @@ -43,7 +43,7 @@ "@playwright/test": "^1.48.2", "allure-playwright": "^3.0.6", "allure-js-commons": "^3.0.6", - "@faker-js/faker": "^8.4.1", + "@faker-js/faker": "^10.6.0", "@hcengineering/tests-sanity": "workspace:^0.7.0", "eslint-plugin-svelte": "^3.23.0", "eslint-config-love": "^155.0.0" From 192d4bd68f44b289741bc44c7893f223302a55c2 Mon Sep 17 00:00:00 2001 From: Alexander Onnikov Date: Fri, 11 Sep 2026 11:18:31 +0700 Subject: [PATCH 30/55] chore: update postcss and webpack Signed-off-by: Alexander Onnikov (ported from TraceX ed6ec004d3) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- desktop/package.json | 4 ++-- dev/prod/package.json | 4 ++-- plugins/achievement-resources/package.json | 2 +- templates/package/package.json | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/desktop/package.json b/desktop/package.json index ade7e0e4f8..a7560e845e 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -34,7 +34,7 @@ "node-loader": "~2.0.0", "cross-env": "~7.0.3", "webpack-cli": "^5.1.4", - "webpack": "^5.97.1", + "webpack": "^5.110.3", "mini-css-extract-plugin": "^2.2.0", "dotenv-webpack": "^8.0.1", "ts-loader": "^9.2.5", @@ -49,7 +49,7 @@ "webpack-bundle-analyzer": "^4.10.2", "svgo-loader": "^3.0.0", "autoprefixer": "^10.4.14", - "postcss": "8.5.16", + "postcss": "8.5.28", "postcss-loader": "^7.0.2", "postcss-load-config": "^4.0.1", "compression-webpack-plugin": "^10.0.0", diff --git a/dev/prod/package.json b/dev/prod/package.json index 1288ad49f7..b09f838a00 100644 --- a/dev/prod/package.json +++ b/dev/prod/package.json @@ -50,7 +50,7 @@ "fork-ts-checker-webpack-plugin": "^9.0.2", "html-webpack-plugin": "^5.5.0", "mini-css-extract-plugin": "^2.2.0", - "postcss": "8.5.16", + "postcss": "8.5.28", "postcss-load-config": "^4.0.1", "postcss-loader": "^7.0.2", "sass": "^1.80.0", @@ -62,7 +62,7 @@ "ts-loader": "^9.2.5", "typescript": "^5.9.3", "update-browserslist-db": "^1.2.3", - "webpack": "^5.97.1", + "webpack": "^5.110.3", "webpack-bundle-analyzer": "^4.10.2", "webpack-cli": "^5.1.4", "webpack-dev-server": "^6.0.0" diff --git a/plugins/achievement-resources/package.json b/plugins/achievement-resources/package.json index 6e970efb56..a88932a1a1 100644 --- a/plugins/achievement-resources/package.json +++ b/plugins/achievement-resources/package.json @@ -32,7 +32,7 @@ "svelte-check": "^3.6.9", "svelte-preprocess": "^5.1.4", "svelte-loader": "^3.2.0", - "postcss": "8.5.16", + "postcss": "8.5.28", "autoprefixer": "^10.4.14", "tailwindcss": "^3.3.5", "sass": "^1.80.0", diff --git a/templates/package/package.json b/templates/package/package.json index 8f34e08ab7..add06a4d6b 100644 --- a/templates/package/package.json +++ b/templates/package/package.json @@ -6,7 +6,7 @@ "@hcengineering/platform-rig": "workspace:^0.7.21", "cross-env": "~7.0.3", "webpack-cli": "^5.1.4", - "webpack": "^5.97.1", + "webpack": "^5.110.3", "mini-css-extract-plugin": "^2.2.0", "dotenv-webpack": "^8.0.1", "ts-loader": "^9.2.5", @@ -20,7 +20,7 @@ "webpack-bundle-analyzer": "^4.10.2", "svgo-loader": "^3.0.0", "autoprefixer": "^10.4.14", - "postcss": "8.5.16", + "postcss": "8.5.28", "postcss-loader": "^7.0.2", "postcss-load-config": "^4.0.1", "compression-webpack-plugin": "^10.0.0", From 48be04ee6311ab44e63b0a01cfdfe1f5e3f3cf79 Mon Sep 17 00:00:00 2001 From: Alexander Onnikov Date: Fri, 11 Sep 2026 12:38:10 +0700 Subject: [PATCH 31/55] chore: refactor lang usage to make webpack happy Signed-off-by: Alexander Onnikov (ported from TraceX 1920c8e640) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- desktop/src/ui/platform.ts | 84 ++++++++++++------ desktop/tsconfig.json | 2 +- dev/prod/src/platform.ts | 85 +++++++++++++------ dev/prod/tsconfig.json | 2 +- foundations/core/packages/core/package.json | 4 +- foundations/core/packages/core/src/lang.ts | 18 ++++ .../core/packages/platform/package.json | 4 +- .../core/packages/platform/src/lang.ts | 18 ++++ plugins/achievement-assets/package.json | 4 +- plugins/achievement-assets/src/index.ts | 4 +- plugins/achievement-assets/src/lang.ts | 18 ++++ plugins/activity-assets/package.json | 4 +- plugins/activity-assets/src/lang.ts | 18 ++++ plugins/ai-assistant-assets/package.json | 4 +- plugins/ai-assistant-assets/src/lang.ts | 18 ++++ .../analytics-collector-assets/package.json | 4 +- .../analytics-collector-assets/src/lang.ts | 18 ++++ plugins/attachment-assets/package.json | 4 +- plugins/attachment-assets/src/lang.ts | 18 ++++ plugins/billing-assets/package.json | 4 +- plugins/billing-assets/src/lang.ts | 18 ++++ plugins/bitrix-assets/package.json | 4 +- plugins/bitrix-assets/src/lang.ts | 18 ++++ plugins/board-assets/package.json | 4 +- plugins/board-assets/src/lang.ts | 18 ++++ plugins/calendar-assets/package.json | 4 +- plugins/calendar-assets/src/lang.ts | 18 ++++ plugins/card-assets/package.json | 4 +- plugins/card-assets/src/lang.ts | 18 ++++ plugins/chat-assets/package.json | 4 +- plugins/chunter-assets/package.json | 4 +- plugins/chunter-assets/src/lang.ts | 18 ++++ plugins/contact-assets/package.json | 4 +- plugins/contact-assets/src/index.ts | 4 +- plugins/contact-assets/src/lang.ts | 18 ++++ .../controlled-documents-assets/package.json | 4 +- .../controlled-documents-assets/src/lang.ts | 18 ++++ plugins/desktop-downloads-assets/package.json | 4 +- plugins/desktop-downloads-assets/src/lang.ts | 18 ++++ .../desktop-preferences-assets/package.json | 4 +- .../desktop-preferences-assets/src/lang.ts | 18 ++++ plugins/diffview-assets/package.json | 4 +- plugins/diffview-assets/src/lang.ts | 18 ++++ plugins/document-assets/package.json | 4 +- plugins/document-assets/src/lang.ts | 18 ++++ plugins/drive-assets/package.json | 4 +- plugins/drive-assets/src/lang.ts | 18 ++++ plugins/emoji-assets/package.json | 4 +- plugins/emoji-assets/src/lang.ts | 18 ++++ plugins/export-assets/package.json | 4 +- plugins/export-assets/src/lang.ts | 18 ++++ plugins/global-profile-assets/package.json | 4 +- plugins/global-profile-assets/src/index.ts | 4 +- plugins/global-profile-assets/src/lang.ts | 18 ++++ plugins/gmail-assets/package.json | 4 +- plugins/gmail-assets/src/lang.ts | 18 ++++ plugins/guest-assets/package.json | 4 +- plugins/guest-assets/src/index.ts | 4 +- plugins/guest-assets/src/lang.ts | 18 ++++ plugins/hr-assets/package.json | 4 +- plugins/hr-assets/src/lang.ts | 18 ++++ plugins/huly-mail-assets/package.json | 4 +- plugins/huly-mail-assets/src/lang.ts | 18 ++++ plugins/inventory-assets/package.json | 4 +- plugins/inventory-assets/src/lang.ts | 18 ++++ plugins/lead-assets/package.json | 4 +- plugins/lead-assets/src/lang.ts | 18 ++++ plugins/login-assets/package.json | 4 +- plugins/login-assets/src/lang.ts | 18 ++++ plugins/love-assets/package.json | 4 +- plugins/love-assets/src/lang.ts | 18 ++++ plugins/mail-assets/package.json | 4 +- plugins/mail-assets/src/lang.ts | 18 ++++ plugins/media-assets/package.json | 4 +- plugins/media-assets/src/lang.ts | 18 ++++ plugins/notification-assets/package.json | 4 +- plugins/notification-assets/src/lang.ts | 18 ++++ plugins/onboard-assets/package.json | 4 +- plugins/onboard-assets/src/lang.ts | 18 ++++ plugins/preference-assets/package.json | 4 +- plugins/preference-assets/src/lang.ts | 18 ++++ plugins/print-assets/package.json | 4 +- plugins/print-assets/src/lang.ts | 18 ++++ plugins/process-assets/package.json | 4 +- plugins/process-assets/src/lang.ts | 18 ++++ plugins/process-resources/src/middleware.ts | 16 +++- plugins/products-assets/package.json | 4 +- plugins/products-assets/src/lang.ts | 18 ++++ plugins/qalico-assets/src/lang.ts | 18 ++++ plugins/questions-assets/package.json | 4 +- plugins/questions-assets/src/lang.ts | 18 ++++ plugins/rating-assets/package.json | 4 +- plugins/rating-assets/src/lang.ts | 18 ++++ plugins/recorder-assets/package.json | 4 +- plugins/recorder-assets/src/lang.ts | 18 ++++ plugins/recruit-assets/package.json | 4 +- plugins/recruit-assets/src/lang.ts | 18 ++++ plugins/request-assets/package.json | 4 +- plugins/request-assets/src/lang.ts | 18 ++++ plugins/setting-assets/package.json | 4 +- plugins/setting-assets/src/lang.ts | 18 ++++ plugins/support-assets/package.json | 4 +- plugins/support-assets/src/lang.ts | 18 ++++ plugins/survey-assets/package.json | 4 +- plugins/survey-assets/src/index.ts | 4 +- plugins/survey-assets/src/lang.ts | 18 ++++ plugins/tags-assets/package.json | 4 +- plugins/tags-assets/src/lang.ts | 18 ++++ plugins/task-assets/package.json | 4 +- plugins/task-assets/src/lang.ts | 18 ++++ plugins/telegram-assets/package.json | 4 +- plugins/telegram-assets/src/lang.ts | 18 ++++ plugins/templates-assets/package.json | 4 +- plugins/templates-assets/src/lang.ts | 18 ++++ plugins/test-management-assets/package.json | 4 +- plugins/test-management-assets/src/lang.ts | 18 ++++ plugins/text-editor-assets/package.json | 4 +- plugins/text-editor-assets/src/lang.ts | 18 ++++ plugins/time-assets/package.json | 4 +- plugins/time-assets/src/lang.ts | 18 ++++ plugins/tracker-assets/package.json | 4 +- plugins/tracker-assets/src/lang.ts | 18 ++++ plugins/training-assets/package.json | 4 +- plugins/training-assets/src/lang.ts | 18 ++++ plugins/uploader-assets/package.json | 4 +- plugins/uploader-assets/src/lang.ts | 18 ++++ plugins/view-assets/package.json | 4 +- plugins/view-assets/src/lang.ts | 18 ++++ plugins/workbench-assets/package.json | 4 +- plugins/workbench-assets/src/lang.ts | 18 ++++ services/github/github-assets/package.json | 4 +- services/github/github-assets/src/lang.ts | 18 ++++ 132 files changed, 1369 insertions(+), 182 deletions(-) create mode 100644 foundations/core/packages/core/src/lang.ts create mode 100644 foundations/core/packages/platform/src/lang.ts create mode 100644 plugins/achievement-assets/src/lang.ts create mode 100644 plugins/activity-assets/src/lang.ts create mode 100644 plugins/ai-assistant-assets/src/lang.ts create mode 100644 plugins/analytics-collector-assets/src/lang.ts create mode 100644 plugins/attachment-assets/src/lang.ts create mode 100644 plugins/billing-assets/src/lang.ts create mode 100644 plugins/bitrix-assets/src/lang.ts create mode 100644 plugins/board-assets/src/lang.ts create mode 100644 plugins/calendar-assets/src/lang.ts create mode 100644 plugins/card-assets/src/lang.ts create mode 100644 plugins/chunter-assets/src/lang.ts create mode 100644 plugins/contact-assets/src/lang.ts create mode 100644 plugins/controlled-documents-assets/src/lang.ts create mode 100644 plugins/desktop-downloads-assets/src/lang.ts create mode 100644 plugins/desktop-preferences-assets/src/lang.ts create mode 100644 plugins/diffview-assets/src/lang.ts create mode 100644 plugins/document-assets/src/lang.ts create mode 100644 plugins/drive-assets/src/lang.ts create mode 100644 plugins/emoji-assets/src/lang.ts create mode 100644 plugins/export-assets/src/lang.ts create mode 100644 plugins/global-profile-assets/src/lang.ts create mode 100644 plugins/gmail-assets/src/lang.ts create mode 100644 plugins/guest-assets/src/lang.ts create mode 100644 plugins/hr-assets/src/lang.ts create mode 100644 plugins/huly-mail-assets/src/lang.ts create mode 100644 plugins/inventory-assets/src/lang.ts create mode 100644 plugins/lead-assets/src/lang.ts create mode 100644 plugins/login-assets/src/lang.ts create mode 100644 plugins/love-assets/src/lang.ts create mode 100644 plugins/mail-assets/src/lang.ts create mode 100644 plugins/media-assets/src/lang.ts create mode 100644 plugins/notification-assets/src/lang.ts create mode 100644 plugins/onboard-assets/src/lang.ts create mode 100644 plugins/preference-assets/src/lang.ts create mode 100644 plugins/print-assets/src/lang.ts create mode 100644 plugins/process-assets/src/lang.ts create mode 100644 plugins/products-assets/src/lang.ts create mode 100644 plugins/qalico-assets/src/lang.ts create mode 100644 plugins/questions-assets/src/lang.ts create mode 100644 plugins/rating-assets/src/lang.ts create mode 100644 plugins/recorder-assets/src/lang.ts create mode 100644 plugins/recruit-assets/src/lang.ts create mode 100644 plugins/request-assets/src/lang.ts create mode 100644 plugins/setting-assets/src/lang.ts create mode 100644 plugins/support-assets/src/lang.ts create mode 100644 plugins/survey-assets/src/lang.ts create mode 100644 plugins/tags-assets/src/lang.ts create mode 100644 plugins/task-assets/src/lang.ts create mode 100644 plugins/telegram-assets/src/lang.ts create mode 100644 plugins/templates-assets/src/lang.ts create mode 100644 plugins/test-management-assets/src/lang.ts create mode 100644 plugins/text-editor-assets/src/lang.ts create mode 100644 plugins/time-assets/src/lang.ts create mode 100644 plugins/tracker-assets/src/lang.ts create mode 100644 plugins/training-assets/src/lang.ts create mode 100644 plugins/uploader-assets/src/lang.ts create mode 100644 plugins/view-assets/src/lang.ts create mode 100644 plugins/workbench-assets/src/lang.ts create mode 100644 services/github/github-assets/src/lang.ts diff --git a/desktop/src/ui/platform.ts b/desktop/src/ui/platform.ts index 3250b8607c..0b4d1fd19a 100644 --- a/desktop/src/ui/platform.ts +++ b/desktop/src/ui/platform.ts @@ -88,67 +88,123 @@ import { ratingId } from '@hcengineering/rating' import billingPlugin, { billingId } from '@hcengineering/billing' import '@hcengineering/activity-assets' +import * as ActivityLang from '@hcengineering/activity-assets/lang' import '@hcengineering/analytics-collector-assets' import '@hcengineering/attachment-assets' +import * as AttachmentLang from '@hcengineering/attachment-assets/lang' import '@hcengineering/bitrix-assets' +import * as BitrixLang from '@hcengineering/bitrix-assets/lang' import '@hcengineering/board-assets' +import * as BoardLang from '@hcengineering/board-assets/lang' import '@hcengineering/calendar-assets' +import * as CalendarLang from '@hcengineering/calendar-assets/lang' import '@hcengineering/card-assets' +import * as CardLang from '@hcengineering/card-assets/lang' import '@hcengineering/chunter-assets' +import * as ChunterLang from '@hcengineering/chunter-assets/lang' import '@hcengineering/contact-assets' +import * as ContactLang from '@hcengineering/contact-assets/lang' import '@hcengineering/controlled-documents-assets' +import * as ControlledDocumentsLang from '@hcengineering/controlled-documents-assets/lang' import '@hcengineering/desktop-preferences-assets' +import * as DesktopPreferencesLang from '@hcengineering/desktop-preferences-assets/lang' import '@hcengineering/desktop-downloads-assets' +import * as DesktopDownloadsLang from '@hcengineering/desktop-downloads-assets/lang' import '@hcengineering/diffview-assets' +import * as DiffviewLang from '@hcengineering/diffview-assets/lang' import '@hcengineering/document-assets' +import * as DocumentLang from '@hcengineering/document-assets/lang' import '@hcengineering/drive-assets' +import * as DriveLang from '@hcengineering/drive-assets/lang' import '@hcengineering/export-assets' +import * as ExportLang from '@hcengineering/export-assets/lang' import '@hcengineering/gmail-assets' +import * as GmailLang from '@hcengineering/gmail-assets/lang' import '@hcengineering/guest-assets' +import * as GuestLang from '@hcengineering/guest-assets/lang' import '@hcengineering/global-profile-assets' +import * as GlobalProfileLang from '@hcengineering/global-profile-assets/lang' import '@hcengineering/hr-assets' +import * as HrLang from '@hcengineering/hr-assets/lang' import '@hcengineering/inventory-assets' +import * as InventoryLang from '@hcengineering/inventory-assets/lang' import '@hcengineering/lead-assets' +import * as LeadLang from '@hcengineering/lead-assets/lang' import '@hcengineering/login-assets' +import * as LoginLang from '@hcengineering/login-assets/lang' import '@hcengineering/love-assets' +import * as LoveLang from '@hcengineering/love-assets/lang' import '@hcengineering/notification-assets' +import * as NotificationLang from '@hcengineering/notification-assets/lang' +import '@hcengineering/onboard-assets' +import * as OnboardLang from '@hcengineering/onboard-assets/lang' import '@hcengineering/preference-assets' +import * as PreferenceLang from '@hcengineering/preference-assets/lang' import '@hcengineering/print-assets' +import * as PrintLang from '@hcengineering/print-assets/lang' import '@hcengineering/process-assets' +import * as ProcessLang from '@hcengineering/process-assets/lang' import '@hcengineering/products-assets' +import * as ProductsLang from '@hcengineering/products-assets/lang' import '@hcengineering/questions-assets' +import * as QuestionsLang from '@hcengineering/questions-assets/lang' import '@hcengineering/recruit-assets' +import * as RecruitLang from '@hcengineering/recruit-assets/lang' import '@hcengineering/request-assets' +import * as RequestLang from '@hcengineering/request-assets/lang' import '@hcengineering/setting-assets' +import * as SettingLang from '@hcengineering/setting-assets/lang' import '@hcengineering/support-assets' +import * as SupportLang from '@hcengineering/support-assets/lang' import '@hcengineering/survey-assets' +import * as SurveyLang from '@hcengineering/survey-assets/lang' import '@hcengineering/tags-assets' +import * as TagsLang from '@hcengineering/tags-assets/lang' import '@hcengineering/task-assets' +import * as TaskLang from '@hcengineering/task-assets/lang' import '@hcengineering/telegram-assets' +import * as TelegramLang from '@hcengineering/telegram-assets/lang' import '@hcengineering/templates-assets' +import * as TemplatesLang from '@hcengineering/templates-assets/lang' import '@hcengineering/test-management-assets' +import * as TestManagementLang from '@hcengineering/test-management-assets/lang' import '@hcengineering/text-editor-assets' +import * as TextEditorLang from '@hcengineering/text-editor-assets/lang' import '@hcengineering/time-assets' +import * as TimeLang from '@hcengineering/time-assets/lang' import '@hcengineering/tracker-assets' +import * as TrackerLang from '@hcengineering/tracker-assets/lang' import '@hcengineering/training-assets' +import * as TrainingLang from '@hcengineering/training-assets/lang' import '@hcengineering/uploader-assets' +import * as UploaderLang from '@hcengineering/uploader-assets/lang' import '@hcengineering/recorder-assets' +import * as RecorderLang from '@hcengineering/recorder-assets/lang' import '@hcengineering/view-assets' +import * as ViewLang from '@hcengineering/view-assets/lang' import '@hcengineering/workbench-assets' +import * as WorkbenchLang from '@hcengineering/workbench-assets/lang' import '@hcengineering/mail-assets' import '@hcengineering/chat-assets' import '@hcengineering/inbox-assets' import '@hcengineering/achievement-assets' +import * as AchievementLang from '@hcengineering/achievement-assets/lang' import '@hcengineering/emoji-assets' +import * as EmojiLang from '@hcengineering/emoji-assets/lang' import '@hcengineering/media-assets' import '@hcengineering/communication-assets' import '@hcengineering/billing-assets' +import * as BillingLang from '@hcengineering/billing-assets/lang' import '@hcengineering/huly-mail-assets' +import * as HulyMailLang from '@hcengineering/huly-mail-assets/lang' import '@hcengineering/ai-assistant-assets' +import * as AiAssistantLang from '@hcengineering/ai-assistant-assets/lang' import '@hcengineering/rating-assets' import analyticsCollector, { analyticsCollectorId } from '@hcengineering/analytics-collector' import { coreId } from '@hcengineering/core' +import * as CoreLang from '@hcengineering/core/lang' +import * as PlatformLang from '@hcengineering/platform/lang' import love, { loveId } from '@hcengineering/love' import presentation, { createFileStorage, presentationId } from '@hcengineering/presentation' import print, { printId } from '@hcengineering/print' @@ -163,39 +219,19 @@ import { ipcMainExposed } from './typesUtils' import github, { githubId } from '@hcengineering/github' import '@hcengineering/github-assets' +import * as GithubLang from '@hcengineering/github-assets/lang' import { preferenceId } from '@hcengineering/preference' import { uiId } from '@hcengineering/ui/src/plugin' function configureI18n (): void { // Add localization - addStringsLoader( - platformId, - async (lang: string) => - await import( - /* webpackInclude: /\.json$/ */ - /* webpackMode: "lazy" */ - /* webpackChunkName: "lang-[request]" */ - `@hcengineering/platform/lang/${lang}.json` - ) - ) - addStringsLoader( - coreId, - async (lang: string) => - await import( - /* webpackInclude: /\.json$/ */ - /* webpackMode: "lazy" */ - /* webpackChunkName: "lang-[request]" */ - `@hcengineering/core/lang/${lang}.json` - ) - ) + addStringsLoader(platformId, PlatformLang.loadLang) + addStringsLoader(coreId, CoreLang.loadLang) addStringsLoader( presentationId, async (lang: string) => await import(`@hcengineering/presentation/lang/${lang}.json`) ) - addStringsLoader( - textEditorId, - async (lang: string) => await import(`@hcengineering/text-editor-assets/lang/${lang}.json`) - ) + addStringsLoader(textEditorId, TextEditorLang.loadLang) addStringsLoader(uiId, async (lang: string) => await import(`@hcengineering/ui/lang/${lang}.json`)) addStringsLoader(mediaId, async (lang: string) => await import(`@hcengineering/media-assets/lang/${lang}.json`)) addStringsLoader(uploaderId, async (lang: string) => await import(`@hcengineering/uploader-assets/lang/${lang}.json`)) diff --git a/desktop/tsconfig.json b/desktop/tsconfig.json index d0b34862c1..6c0c1cf75c 100644 --- a/desktop/tsconfig.json +++ b/desktop/tsconfig.json @@ -9,7 +9,7 @@ "strictNullChecks": true, "sourceMap": true, "skipLibCheck": true, - "moduleResolution": "node", + "moduleResolution": "bundler", "allowSyntheticDefaultImports": true, "lib": ["es2023", "dom", "ES2021.String", "ESNext.Array"] }, diff --git a/dev/prod/src/platform.ts b/dev/prod/src/platform.ts index 8844cc7104..be2fc86466 100644 --- a/dev/prod/src/platform.ts +++ b/dev/prod/src/platform.ts @@ -14,6 +14,7 @@ // import platform, { type Plugin, addLocation, addStringsLoader, platformId } from '@hcengineering/platform' +import * as PlatformLang from '@hcengineering/platform/lang' import { activityId } from '@hcengineering/activity' import aiBot, { aiBotId } from '@hcengineering/ai-bot' @@ -85,66 +86,121 @@ import { aiAssistantId } from '@hcengineering/ai-assistant' import { ratingId } from '@hcengineering/rating' import '@hcengineering/activity-assets' +import * as ActivityLang from '@hcengineering/activity-assets/lang' import '@hcengineering/analytics-collector-assets' import '@hcengineering/attachment-assets' +import * as AttachmentLang from '@hcengineering/attachment-assets/lang' import '@hcengineering/bitrix-assets' +import * as BitrixLang from '@hcengineering/bitrix-assets/lang' import '@hcengineering/board-assets' +import * as BoardLang from '@hcengineering/board-assets/lang' import '@hcengineering/calendar-assets' +import * as CalendarLang from '@hcengineering/calendar-assets/lang' import '@hcengineering/card-assets' +import * as CardLang from '@hcengineering/card-assets/lang' import '@hcengineering/chunter-assets' +import * as ChunterLang from '@hcengineering/chunter-assets/lang' import '@hcengineering/contact-assets' +import * as ContactLang from '@hcengineering/contact-assets/lang' import '@hcengineering/controlled-documents-assets' +import * as ControlledDocumentsLang from '@hcengineering/controlled-documents-assets/lang' import '@hcengineering/desktop-preferences-assets' +import * as DesktopPreferencesLang from '@hcengineering/desktop-preferences-assets/lang' import '@hcengineering/diffview-assets' +import * as DiffviewLang from '@hcengineering/diffview-assets/lang' import '@hcengineering/document-assets' +import * as DocumentLang from '@hcengineering/document-assets/lang' import '@hcengineering/drive-assets' +import * as DriveLang from '@hcengineering/drive-assets/lang' import '@hcengineering/export-assets' +import * as ExportLang from '@hcengineering/export-assets/lang' import '@hcengineering/gmail-assets' +import * as GmailLang from '@hcengineering/gmail-assets/lang' import '@hcengineering/guest-assets' +import * as GuestLang from '@hcengineering/guest-assets/lang' import '@hcengineering/global-profile-assets' +import * as GlobalProfileLang from '@hcengineering/global-profile-assets/lang' import '@hcengineering/hr-assets' +import * as HrLang from '@hcengineering/hr-assets/lang' import '@hcengineering/inventory-assets' +import * as InventoryLang from '@hcengineering/inventory-assets/lang' import '@hcengineering/lead-assets' +import * as LeadLang from '@hcengineering/lead-assets/lang' import '@hcengineering/login-assets' +import * as LoginLang from '@hcengineering/login-assets/lang' import '@hcengineering/love-assets' +import * as LoveLang from '@hcengineering/love-assets/lang' import '@hcengineering/notification-assets' -import '@hcengineering/preference-assets' +import * as OnboardLang from '@hcengineering/onboard-assets/lang' +import '@hcengineering/notification-assets' +import * as NotificationLang from '@hcengineering/notification-assets/lang' +import '@hcengineering/onboard-assets' +import * as PreferenceLang from '@hcengineering/preference-assets/lang' import '@hcengineering/print-assets' +import * as PrintLang from '@hcengineering/print-assets/lang' import '@hcengineering/process-assets' +import * as ProcessLang from '@hcengineering/process-assets/lang' import '@hcengineering/products-assets' +import * as ProductsLang from '@hcengineering/products-assets/lang' import '@hcengineering/questions-assets' +import * as QuestionsLang from '@hcengineering/questions-assets/lang' import '@hcengineering/recruit-assets' +import * as RecruitLang from '@hcengineering/recruit-assets/lang' import '@hcengineering/request-assets' +import * as RequestLang from '@hcengineering/request-assets/lang' import '@hcengineering/setting-assets' +import * as SettingLang from '@hcengineering/setting-assets/lang' import '@hcengineering/support-assets' +import * as SupportLang from '@hcengineering/support-assets/lang' import '@hcengineering/survey-assets' +import * as SurveyLang from '@hcengineering/survey-assets/lang' import '@hcengineering/tags-assets' +import * as TagsLang from '@hcengineering/tags-assets/lang' import '@hcengineering/task-assets' +import * as TaskLang from '@hcengineering/task-assets/lang' import '@hcengineering/telegram-assets' +import * as TelegramLang from '@hcengineering/telegram-assets/lang' import '@hcengineering/templates-assets' +import * as TemplatesLang from '@hcengineering/templates-assets/lang' import '@hcengineering/test-management-assets' +import * as TestManagementLang from '@hcengineering/test-management-assets/lang' import '@hcengineering/text-editor-assets' +import * as TextEditorLang from '@hcengineering/text-editor-assets/lang' import '@hcengineering/time-assets' +import * as TimeLang from '@hcengineering/time-assets/lang' import '@hcengineering/tracker-assets' +import * as TrackerLang from '@hcengineering/tracker-assets/lang' import '@hcengineering/training-assets' +import * as TrainingLang from '@hcengineering/training-assets/lang' import '@hcengineering/uploader-assets' +import * as UploaderLang from '@hcengineering/uploader-assets/lang' import '@hcengineering/recorder-assets' +import * as RecorderLang from '@hcengineering/recorder-assets/lang' import '@hcengineering/media-assets' +import * as MediaLang from '@hcengineering/media-assets/lang' import '@hcengineering/view-assets' +import * as ViewLang from '@hcengineering/view-assets/lang' import '@hcengineering/workbench-assets' import '@hcengineering/chat-assets' import '@hcengineering/inbox-assets' import '@hcengineering/mail-assets' +import * as MailLang from '@hcengineering/mail-assets/lang' import '@hcengineering/github-assets' +import * as GithubLang from '@hcengineering/github-assets/lang' import '@hcengineering/achievement-assets' import '@hcengineering/communication-assets' import '@hcengineering/emoji-assets' +import * as EmojiLang from '@hcengineering/emoji-assets/lang' import '@hcengineering/billing-assets' +import * as BillingLang from '@hcengineering/billing-assets/lang' import '@hcengineering/huly-mail-assets' +import * as HulyMailLang from '@hcengineering/huly-mail-assets/lang' import '@hcengineering/ai-assistant-assets' +import * as AiAssistantLang from '@hcengineering/ai-assistant-assets/lang' import '@hcengineering/rating-assets' import { coreId } from '@hcengineering/core' +import * as CoreLang from '@hcengineering/core/lang' import presentation, { loadServerConfig, createFileStorage, presentationId } from '@hcengineering/presentation' import { setMetadata } from '@hcengineering/platform' @@ -278,34 +334,13 @@ const PASSWORD_REQUIREMENTS: Record, function configureI18n(): void { // Add localization - addStringsLoader( - platformId, - async (lang: string) => - await import( - /* webpackInclude: /\.json$/ */ - /* webpackMode: "lazy" */ - /* webpackChunkName: "lang-[request]" */ - `@hcengineering/platform/lang/${lang}.json` - ) - ) - addStringsLoader( - coreId, - async (lang: string) => - await import( - /* webpackInclude: /\.json$/ */ - /* webpackMode: "lazy" */ - /* webpackChunkName: "lang-[request]" */ - `@hcengineering/core/lang/${lang}.json` - ) - ) + addStringsLoader(platformId, PlatformLang.loadLang) + addStringsLoader(coreId, CoreLang.loadLang) addStringsLoader( presentationId, async (lang: string) => await import(`@hcengineering/presentation/lang/${lang}.json`) ) - addStringsLoader( - textEditorId, - async (lang: string) => await import(`@hcengineering/text-editor-assets/lang/${lang}.json`) - ) + addStringsLoader(textEditorId, TextEditorLang.loadLang) addStringsLoader(uiId, async (lang: string) => await import(`@hcengineering/ui/lang/${lang}.json`)) addStringsLoader(uploaderId, async (lang: string) => await import(`@hcengineering/uploader-assets/lang/${lang}.json`)) addStringsLoader(recorderId, async (lang: string) => await import(`@hcengineering/recorder-assets/lang/${lang}.json`)) diff --git a/dev/prod/tsconfig.json b/dev/prod/tsconfig.json index 88ea8fe1cc..63500116e0 100644 --- a/dev/prod/tsconfig.json +++ b/dev/prod/tsconfig.json @@ -8,7 +8,7 @@ "declaration": true, "sourceMap": true, "skipLibCheck": true, - "moduleResolution": "node", + "moduleResolution": "bundler", "declarationDir": "./types", "verbatimModuleSyntax": true, "allowSyntheticDefaultImports": true, diff --git a/foundations/core/packages/core/package.json b/foundations/core/packages/core/package.json index e1d136ef49..eb4b318578 100644 --- a/foundations/core/packages/core/package.json +++ b/foundations/core/packages/core/package.json @@ -67,8 +67,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" } } } diff --git a/foundations/core/packages/core/src/lang.ts b/foundations/core/packages/core/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/foundations/core/packages/core/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/foundations/core/packages/platform/package.json b/foundations/core/packages/platform/package.json index 7261c1036a..c897cab613 100644 --- a/foundations/core/packages/platform/package.json +++ b/foundations/core/packages/platform/package.json @@ -60,8 +60,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" } } } diff --git a/foundations/core/packages/platform/src/lang.ts b/foundations/core/packages/platform/src/lang.ts new file mode 100644 index 0000000000..ba3f17b9f1 --- /dev/null +++ b/foundations/core/packages/platform/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from './i18n' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/achievement-assets/package.json b/plugins/achievement-assets/package.json index 0b6039dacb..540fb636a9 100644 --- a/plugins/achievement-assets/package.json +++ b/plugins/achievement-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/achievement-assets/src/index.ts b/plugins/achievement-assets/src/index.ts index 4962dec9d0..6eddc74b5a 100644 --- a/plugins/achievement-assets/src/index.ts +++ b/plugins/achievement-assets/src/index.ts @@ -1,5 +1,6 @@ // // Copyright © 2025 Hardcore Engineering Inc. +// Copyright © 2026 TraceX SAS. // // 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 @@ -14,6 +15,7 @@ // import { addStringsLoader, loadMetadata } from '@hcengineering/platform' +import { loadLang } from './lang' import achievement, { achievementId } from '@hcengineering/achievement' const EarliestAdopter = require('../assets/EarliestAdopter.png') as string // eslint-disable-line @@ -25,4 +27,4 @@ loadMetadata(achievement.image, { Epic, Legendary }) -addStringsLoader(achievementId, async (lang: string) => await import(`../lang/${lang}.json`)) +addStringsLoader(achievementId, loadLang) diff --git a/plugins/achievement-assets/src/lang.ts b/plugins/achievement-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/achievement-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/activity-assets/package.json b/plugins/activity-assets/package.json index 0a872b34e1..e9ca709b92 100644 --- a/plugins/activity-assets/package.json +++ b/plugins/activity-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/activity-assets/src/lang.ts b/plugins/activity-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/activity-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/ai-assistant-assets/package.json b/plugins/ai-assistant-assets/package.json index 767755d157..2f68844231 100644 --- a/plugins/ai-assistant-assets/package.json +++ b/plugins/ai-assistant-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/ai-assistant-assets/src/lang.ts b/plugins/ai-assistant-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/ai-assistant-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/analytics-collector-assets/package.json b/plugins/analytics-collector-assets/package.json index fdbdc20d83..5cd327f994 100644 --- a/plugins/analytics-collector-assets/package.json +++ b/plugins/analytics-collector-assets/package.json @@ -55,8 +55,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/analytics-collector-assets/src/lang.ts b/plugins/analytics-collector-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/analytics-collector-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/attachment-assets/package.json b/plugins/attachment-assets/package.json index c84697f4c0..270236df64 100644 --- a/plugins/attachment-assets/package.json +++ b/plugins/attachment-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/attachment-assets/src/lang.ts b/plugins/attachment-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/attachment-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/billing-assets/package.json b/plugins/billing-assets/package.json index c9f33f1c79..7306666bb9 100644 --- a/plugins/billing-assets/package.json +++ b/plugins/billing-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/billing-assets/src/lang.ts b/plugins/billing-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/billing-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/bitrix-assets/package.json b/plugins/bitrix-assets/package.json index 34b67bf3ba..7d3de5f837 100644 --- a/plugins/bitrix-assets/package.json +++ b/plugins/bitrix-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/bitrix-assets/src/lang.ts b/plugins/bitrix-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/bitrix-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/board-assets/package.json b/plugins/board-assets/package.json index aa4cc2057a..1f2f85ebd1 100644 --- a/plugins/board-assets/package.json +++ b/plugins/board-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/board-assets/src/lang.ts b/plugins/board-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/board-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/calendar-assets/package.json b/plugins/calendar-assets/package.json index 64b7ed025c..a228fae275 100644 --- a/plugins/calendar-assets/package.json +++ b/plugins/calendar-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/calendar-assets/src/lang.ts b/plugins/calendar-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/calendar-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/card-assets/package.json b/plugins/card-assets/package.json index f0e9a1e93f..46bc687ace 100644 --- a/plugins/card-assets/package.json +++ b/plugins/card-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/card-assets/src/lang.ts b/plugins/card-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/card-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/chat-assets/package.json b/plugins/chat-assets/package.json index 55932ef89b..305c262fef 100644 --- a/plugins/chat-assets/package.json +++ b/plugins/chat-assets/package.json @@ -61,8 +61,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/chunter-assets/package.json b/plugins/chunter-assets/package.json index d9cfe7bdab..e5cddf18a5 100644 --- a/plugins/chunter-assets/package.json +++ b/plugins/chunter-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/chunter-assets/src/lang.ts b/plugins/chunter-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/chunter-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/contact-assets/package.json b/plugins/contact-assets/package.json index 707bcbd222..7165bb199a 100644 --- a/plugins/contact-assets/package.json +++ b/plugins/contact-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/contact-assets/src/index.ts b/plugins/contact-assets/src/index.ts index e6b21fd4af..58014886b4 100644 --- a/plugins/contact-assets/src/index.ts +++ b/plugins/contact-assets/src/index.ts @@ -1,5 +1,6 @@ // // Copyright © 2020 Anticrm Platform Contributors. +// Copyright © 2026 TraceX SAS. // // 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 @@ -14,6 +15,7 @@ // import { addStringsLoader, loadMetadata } from '@hcengineering/platform' +import { loadLang } from './lang' import contact, { contactId } from '@hcengineering/contact' const icons = require('../assets/icons.svg') as string // eslint-disable-line @@ -50,7 +52,7 @@ loadMetadata(contact.icon, { Chat: `${icons}#chat`, User: `${icons}#user` }) -addStringsLoader(contactId, async (lang: string) => await import(`../lang/${lang}.json`)) +addStringsLoader(contactId, loadLang) const ProfileBackground = require('../assets/profile-background.png') as string // eslint-disable-line const ProfileBackgroundLight = require('../assets/profile-background-light.png') as string // eslint-disable-line diff --git a/plugins/contact-assets/src/lang.ts b/plugins/contact-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/contact-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/controlled-documents-assets/package.json b/plugins/controlled-documents-assets/package.json index c64e101368..e23718087c 100644 --- a/plugins/controlled-documents-assets/package.json +++ b/plugins/controlled-documents-assets/package.json @@ -53,8 +53,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/controlled-documents-assets/src/lang.ts b/plugins/controlled-documents-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/controlled-documents-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/desktop-downloads-assets/package.json b/plugins/desktop-downloads-assets/package.json index f5af839d49..c368994b64 100644 --- a/plugins/desktop-downloads-assets/package.json +++ b/plugins/desktop-downloads-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/desktop-downloads-assets/src/lang.ts b/plugins/desktop-downloads-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/desktop-downloads-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/desktop-preferences-assets/package.json b/plugins/desktop-preferences-assets/package.json index 0c96565bd7..a530c0620f 100644 --- a/plugins/desktop-preferences-assets/package.json +++ b/plugins/desktop-preferences-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/desktop-preferences-assets/src/lang.ts b/plugins/desktop-preferences-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/desktop-preferences-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/diffview-assets/package.json b/plugins/diffview-assets/package.json index 9a585fec52..2cec3ea16b 100644 --- a/plugins/diffview-assets/package.json +++ b/plugins/diffview-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/diffview-assets/src/lang.ts b/plugins/diffview-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/diffview-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/document-assets/package.json b/plugins/document-assets/package.json index c79e542e0d..531f8181d1 100644 --- a/plugins/document-assets/package.json +++ b/plugins/document-assets/package.json @@ -53,8 +53,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/document-assets/src/lang.ts b/plugins/document-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/document-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/drive-assets/package.json b/plugins/drive-assets/package.json index b8479615dd..cbe97ffb1c 100644 --- a/plugins/drive-assets/package.json +++ b/plugins/drive-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/drive-assets/src/lang.ts b/plugins/drive-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/drive-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/emoji-assets/package.json b/plugins/emoji-assets/package.json index b614f94b1a..6a450954e8 100644 --- a/plugins/emoji-assets/package.json +++ b/plugins/emoji-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/emoji-assets/src/lang.ts b/plugins/emoji-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/emoji-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/export-assets/package.json b/plugins/export-assets/package.json index 11ffd5cc5c..a15996baeb 100644 --- a/plugins/export-assets/package.json +++ b/plugins/export-assets/package.json @@ -55,8 +55,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/export-assets/src/lang.ts b/plugins/export-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/export-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/global-profile-assets/package.json b/plugins/global-profile-assets/package.json index 1b7d879647..90dfdbff28 100644 --- a/plugins/global-profile-assets/package.json +++ b/plugins/global-profile-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/global-profile-assets/src/index.ts b/plugins/global-profile-assets/src/index.ts index b691d21413..7b04e83ffd 100644 --- a/plugins/global-profile-assets/src/index.ts +++ b/plugins/global-profile-assets/src/index.ts @@ -1,5 +1,6 @@ // // Copyright © 2024 Hardcore Engineering Inc. +// Copyright © 2026 TraceX SAS. // // 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 @@ -14,9 +15,10 @@ // import { addStringsLoader, loadMetadata } from '@hcengineering/platform' +import { loadLang } from './lang' import globalProfile, { globalProfileId } from '@hcengineering/global-profile' -addStringsLoader(globalProfileId, async (lang: string) => await import(`../lang/${lang}.json`)) +addStringsLoader(globalProfileId, loadLang) const icons = require('../assets/icons.svg') as string // eslint-disable-line const ProfileBackground = require('../assets/hero-dark.png') as string // eslint-disable-line diff --git a/plugins/global-profile-assets/src/lang.ts b/plugins/global-profile-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/global-profile-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/gmail-assets/package.json b/plugins/gmail-assets/package.json index 159a03cc2d..9df841f6d1 100644 --- a/plugins/gmail-assets/package.json +++ b/plugins/gmail-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/gmail-assets/src/lang.ts b/plugins/gmail-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/gmail-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/guest-assets/package.json b/plugins/guest-assets/package.json index 083c4d4444..1ea26b247f 100644 --- a/plugins/guest-assets/package.json +++ b/plugins/guest-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/guest-assets/src/index.ts b/plugins/guest-assets/src/index.ts index 383ec0a31f..cd14dd0410 100644 --- a/plugins/guest-assets/src/index.ts +++ b/plugins/guest-assets/src/index.ts @@ -1,5 +1,6 @@ // // Copyright © 2024 Hardcore Engineering Inc. +// Copyright © 2026 TraceX SAS. // // 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 @@ -14,10 +15,11 @@ // import { addStringsLoader, loadMetadata } from '@hcengineering/platform' +import { loadLang } from './lang' import guest, { guestId } from '@hcengineering/guest' const icons = require('../assets/icons.svg') as string // eslint-disable-line loadMetadata(guest.icon, { Link: `${icons}#link` }) -addStringsLoader(guestId, async (lang: string) => await import(`../lang/${lang}.json`)) +addStringsLoader(guestId, loadLang) diff --git a/plugins/guest-assets/src/lang.ts b/plugins/guest-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/guest-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/hr-assets/package.json b/plugins/hr-assets/package.json index 6ea6b674d9..a060b7d3d2 100644 --- a/plugins/hr-assets/package.json +++ b/plugins/hr-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/hr-assets/src/lang.ts b/plugins/hr-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/hr-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/huly-mail-assets/package.json b/plugins/huly-mail-assets/package.json index df6a54a573..097dd3b6c0 100644 --- a/plugins/huly-mail-assets/package.json +++ b/plugins/huly-mail-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/huly-mail-assets/src/lang.ts b/plugins/huly-mail-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/huly-mail-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/inventory-assets/package.json b/plugins/inventory-assets/package.json index 08544f6b26..a90305254f 100644 --- a/plugins/inventory-assets/package.json +++ b/plugins/inventory-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/inventory-assets/src/lang.ts b/plugins/inventory-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/inventory-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/lead-assets/package.json b/plugins/lead-assets/package.json index a22039b02f..41baf09ea4 100644 --- a/plugins/lead-assets/package.json +++ b/plugins/lead-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/lead-assets/src/lang.ts b/plugins/lead-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/lead-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/login-assets/package.json b/plugins/login-assets/package.json index 4fe0d4ca38..e47c3f598c 100644 --- a/plugins/login-assets/package.json +++ b/plugins/login-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/login-assets/src/lang.ts b/plugins/login-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/login-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/love-assets/package.json b/plugins/love-assets/package.json index 04febce0d5..479d5e0f1e 100644 --- a/plugins/love-assets/package.json +++ b/plugins/love-assets/package.json @@ -55,8 +55,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/love-assets/src/lang.ts b/plugins/love-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/love-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/mail-assets/package.json b/plugins/mail-assets/package.json index c7fe6c1bb5..ed2c5f7cdf 100644 --- a/plugins/mail-assets/package.json +++ b/plugins/mail-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/mail-assets/src/lang.ts b/plugins/mail-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/mail-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/media-assets/package.json b/plugins/media-assets/package.json index d1562a33a3..293a7de5b5 100644 --- a/plugins/media-assets/package.json +++ b/plugins/media-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/media-assets/src/lang.ts b/plugins/media-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/media-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/notification-assets/package.json b/plugins/notification-assets/package.json index 50711ad404..ac0458162c 100644 --- a/plugins/notification-assets/package.json +++ b/plugins/notification-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/notification-assets/src/lang.ts b/plugins/notification-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/notification-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/onboard-assets/package.json b/plugins/onboard-assets/package.json index 9af7379c0a..420fe91b39 100644 --- a/plugins/onboard-assets/package.json +++ b/plugins/onboard-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/onboard-assets/src/lang.ts b/plugins/onboard-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/onboard-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/preference-assets/package.json b/plugins/preference-assets/package.json index ed4ffbd9be..a81f5cdd84 100644 --- a/plugins/preference-assets/package.json +++ b/plugins/preference-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/preference-assets/src/lang.ts b/plugins/preference-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/preference-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/print-assets/package.json b/plugins/print-assets/package.json index 11c2272d1d..a11d3c04c3 100644 --- a/plugins/print-assets/package.json +++ b/plugins/print-assets/package.json @@ -55,8 +55,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/print-assets/src/lang.ts b/plugins/print-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/print-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/process-assets/package.json b/plugins/process-assets/package.json index ccd42186d0..849620ec70 100644 --- a/plugins/process-assets/package.json +++ b/plugins/process-assets/package.json @@ -55,8 +55,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/process-assets/src/lang.ts b/plugins/process-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/process-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/process-resources/src/middleware.ts b/plugins/process-resources/src/middleware.ts index dcc1497bd3..598c59504c 100644 --- a/plugins/process-resources/src/middleware.ts +++ b/plugins/process-resources/src/middleware.ts @@ -108,9 +108,17 @@ export class ProcessMiddleware extends BasePresentationMiddleware implements Pre _id: updateTx.objectId }) if (card === undefined) return - const updated = isUpdateTx(updateTx) - ? TxProcessor.updateDoc2Doc(hierarchy.clone(card), updateTx) - : TxProcessor.updateMixin4Doc(hierarchy.clone(card), updateTx) + let updated: Card + let operations: TxUpdateDoc['operations'] | TxMixin['attributes'] + if (etx._class === core.class.TxUpdateDoc) { + const documentUpdateTx = etx as TxUpdateDoc + updated = TxProcessor.updateDoc2Doc(hierarchy.clone(card), documentUpdateTx) + operations = documentUpdateTx.operations + } else { + const mixinUpdateTx = etx as TxMixin + updated = TxProcessor.updateMixin4Doc(hierarchy.clone(card), mixinUpdateTx) + operations = mixinUpdateTx.attributes + } for (const execution of executions) { const transitions = this.client.getModel().findAllSync( process.class.Transition, @@ -125,7 +133,7 @@ export class ProcessMiddleware extends BasePresentationMiddleware implements Pre const inputContext = { ...execution.context, card: updated, - operations: isUpdateTx(updateTx) ? updateTx.operations : updateTx.attributes + operations } const transition = await pickTransition(this.client, execution, transitions, inputContext) if (transition === undefined) continue diff --git a/plugins/products-assets/package.json b/plugins/products-assets/package.json index 1d01775e13..101f8d0d31 100644 --- a/plugins/products-assets/package.json +++ b/plugins/products-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/products-assets/src/lang.ts b/plugins/products-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/products-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/qalico-assets/src/lang.ts b/plugins/qalico-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/qalico-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/questions-assets/package.json b/plugins/questions-assets/package.json index 7294692db8..784412145f 100644 --- a/plugins/questions-assets/package.json +++ b/plugins/questions-assets/package.json @@ -53,8 +53,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/questions-assets/src/lang.ts b/plugins/questions-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/questions-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/rating-assets/package.json b/plugins/rating-assets/package.json index b2db840224..5012d68c09 100644 --- a/plugins/rating-assets/package.json +++ b/plugins/rating-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/rating-assets/src/lang.ts b/plugins/rating-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/rating-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/recorder-assets/package.json b/plugins/recorder-assets/package.json index 7f1133f624..cd376dbd68 100644 --- a/plugins/recorder-assets/package.json +++ b/plugins/recorder-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/recorder-assets/src/lang.ts b/plugins/recorder-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/recorder-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/recruit-assets/package.json b/plugins/recruit-assets/package.json index fa8e46dd3a..9a226eca2b 100644 --- a/plugins/recruit-assets/package.json +++ b/plugins/recruit-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/recruit-assets/src/lang.ts b/plugins/recruit-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/recruit-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/request-assets/package.json b/plugins/request-assets/package.json index e5a917e348..6881e6cbe9 100644 --- a/plugins/request-assets/package.json +++ b/plugins/request-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/request-assets/src/lang.ts b/plugins/request-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/request-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/setting-assets/package.json b/plugins/setting-assets/package.json index e5b3724994..6b3ddf608e 100644 --- a/plugins/setting-assets/package.json +++ b/plugins/setting-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/setting-assets/src/lang.ts b/plugins/setting-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/setting-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/support-assets/package.json b/plugins/support-assets/package.json index f2c4d43526..612d00b5f4 100644 --- a/plugins/support-assets/package.json +++ b/plugins/support-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/support-assets/src/lang.ts b/plugins/support-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/support-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/survey-assets/package.json b/plugins/survey-assets/package.json index 93a8234466..2b9e98ec92 100644 --- a/plugins/survey-assets/package.json +++ b/plugins/survey-assets/package.json @@ -61,8 +61,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/survey-assets/src/index.ts b/plugins/survey-assets/src/index.ts index 53f41ec1ed..94a133a0e7 100644 --- a/plugins/survey-assets/src/index.ts +++ b/plugins/survey-assets/src/index.ts @@ -1,5 +1,6 @@ // // Copyright © 2020 Anticrm Platform Contributors. +// Copyright © 2026 TraceX SAS. // // 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 @@ -14,6 +15,7 @@ // import { addStringsLoader, loadMetadata } from '@hcengineering/platform' +import { loadLang } from './lang' import survey, { surveyId } from '@hcengineering/survey' const icons = require('../assets/icons.svg') as string // eslint-disable-line @@ -32,4 +34,4 @@ loadMetadata(survey.icon, { ValidateFail: `${icons}#validate-fail`, ValidateOk: `${icons}#validate-ok` }) -addStringsLoader(surveyId, async (lang: string) => await import(`../lang/${lang}.json`)) +addStringsLoader(surveyId, loadLang) diff --git a/plugins/survey-assets/src/lang.ts b/plugins/survey-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/survey-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/tags-assets/package.json b/plugins/tags-assets/package.json index a6679b1e9f..cb365860d6 100644 --- a/plugins/tags-assets/package.json +++ b/plugins/tags-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/tags-assets/src/lang.ts b/plugins/tags-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/tags-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/task-assets/package.json b/plugins/task-assets/package.json index 103cde738a..27cdf6ed7c 100644 --- a/plugins/task-assets/package.json +++ b/plugins/task-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/task-assets/src/lang.ts b/plugins/task-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/task-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/telegram-assets/package.json b/plugins/telegram-assets/package.json index 8d6d9a830f..88f6cde731 100644 --- a/plugins/telegram-assets/package.json +++ b/plugins/telegram-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/telegram-assets/src/lang.ts b/plugins/telegram-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/telegram-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/templates-assets/package.json b/plugins/templates-assets/package.json index 0d5c640bb1..cab53a52bd 100644 --- a/plugins/templates-assets/package.json +++ b/plugins/templates-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/templates-assets/src/lang.ts b/plugins/templates-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/templates-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/test-management-assets/package.json b/plugins/test-management-assets/package.json index 634ec64f76..76486608b3 100644 --- a/plugins/test-management-assets/package.json +++ b/plugins/test-management-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/test-management-assets/src/lang.ts b/plugins/test-management-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/test-management-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/text-editor-assets/package.json b/plugins/text-editor-assets/package.json index c9a1b97d29..d3884743ee 100644 --- a/plugins/text-editor-assets/package.json +++ b/plugins/text-editor-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/text-editor-assets/src/lang.ts b/plugins/text-editor-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/text-editor-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/time-assets/package.json b/plugins/time-assets/package.json index 67e4b07f5c..0c1da06815 100644 --- a/plugins/time-assets/package.json +++ b/plugins/time-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/time-assets/src/lang.ts b/plugins/time-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/time-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/tracker-assets/package.json b/plugins/tracker-assets/package.json index 86d535538d..13b93bd6e8 100644 --- a/plugins/tracker-assets/package.json +++ b/plugins/tracker-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/tracker-assets/src/lang.ts b/plugins/tracker-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/tracker-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/training-assets/package.json b/plugins/training-assets/package.json index 4869add54a..e7ed86a491 100644 --- a/plugins/training-assets/package.json +++ b/plugins/training-assets/package.json @@ -53,8 +53,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/training-assets/src/lang.ts b/plugins/training-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/training-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/uploader-assets/package.json b/plugins/uploader-assets/package.json index 6f292e1c9a..4f73937841 100644 --- a/plugins/uploader-assets/package.json +++ b/plugins/uploader-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/uploader-assets/src/lang.ts b/plugins/uploader-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/uploader-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/view-assets/package.json b/plugins/view-assets/package.json index 9c0b707a83..aaf5fd6dc0 100644 --- a/plugins/view-assets/package.json +++ b/plugins/view-assets/package.json @@ -55,8 +55,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/view-assets/src/lang.ts b/plugins/view-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/view-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/plugins/workbench-assets/package.json b/plugins/workbench-assets/package.json index 4f364a8790..f197ec5ed7 100644 --- a/plugins/workbench-assets/package.json +++ b/plugins/workbench-assets/package.json @@ -54,8 +54,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/plugins/workbench-assets/src/lang.ts b/plugins/workbench-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/plugins/workbench-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) diff --git a/services/github/github-assets/package.json b/services/github/github-assets/package.json index 0b45d31c14..e12e9fc2c4 100644 --- a/services/github/github-assets/package.json +++ b/services/github/github-assets/package.json @@ -53,8 +53,8 @@ "import": "./lang/*.json" }, "./lang": { - "require": "./lang", - "import": "./lang" + "types": "./types/lang.d.ts", + "default": "./lib/lang.js" }, "./assets": { "require": "./assets", diff --git a/services/github/github-assets/src/lang.ts b/services/github/github-assets/src/lang.ts new file mode 100644 index 0000000000..e656e3b4ad --- /dev/null +++ b/services/github/github-assets/src/lang.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 type { Loader } from '@hcengineering/platform' + +export const loadLang: Loader = async (lang) => await import(`../lang/${lang}.json`) From c6a60db45b85485157f6e4ce7b35b3bad97359bc Mon Sep 17 00:00:00 2001 From: Alexander Onnikov Date: Wed, 16 Sep 2026 13:44:30 +0700 Subject: [PATCH 32/55] chore: update dependencies (#308) (ported from TraceX 726b38893a) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- desktop/package.json | 2 +- dev/doc-import-tool/package.json | 2 +- dev/doc-import-tool/src/extract/meta.ts | 4 +- dev/doc-import-tool/src/extract/nodes.ts | 5 +- dev/import-tool/package.json | 2 +- dev/tool/package.json | 6 +- dev/tool/src/contact.test.ts | 84 +- .../core/src/__tests__/client.test.ts | 3 +- foundations/core/packages/core/src/client.ts | 3 +- .../core/packages/postgres-base/package.json | 2 +- .../core/packages/text-html/package.json | 2 +- foundations/server/packages/core/src/types.ts | 3 +- .../middleware/src/guestPermissions.ts | 3 +- .../server/packages/postgres/package.json | 2 +- .../utils/common/config/rush/pnpm-lock.yaml | 2538 ++++++++++++----- packages/hls/package.json | 1 - packages/importer/package.json | 2 +- packages/presentation/package.json | 2 +- packages/presentation/src/drawingUtils.ts | 11 +- packages/ui/package.json | 3 +- plugins/contact/src/types.ts | 9 +- plugins/questions/src/doc-types/base.ts | 6 +- .../src/components/extensions.ts | 8 +- qms-tests/sanity/package.json | 6 +- server/account/package.json | 2 +- server/account/src/collections/mongo.ts | 7 +- .../src/collections/postgres/postgres.ts | 37 +- server/backup/src/restore.ts | 12 +- server/backup/src/utils.ts | 20 +- server/backup/tsconfig.json | 2 +- server/tool/package.json | 2 +- services/ai-bot/pod-ai-bot/package.json | 2 +- services/backup/backup-api-pod/package.json | 2 +- services/billing/pod-billing/package.json | 2 +- services/datalake/pod-datalake/package.json | 2 +- services/export/pod-export/package.json | 2 +- services/export/pod-export/src/converter.ts | 42 +- .../github/pod-github/src/sync/githubTypes.ts | 9 +- .../github/pod-github/src/sync/repository.ts | 3 +- services/gmail/pod-gmail/package.json | 4 +- services/mail/mail-common/package.json | 4 +- services/mail/pod-mail-worker/package.json | 4 +- services/mail/pod-mail-worker/src/types.ts | 3 +- services/payment/pod-payment/package.json | 2 +- .../pod-telegram-bot/package.json | 4 +- services/telegram/pod-telegram/package.json | 2 +- services/worker/package.json | 2 +- tests/sanity/package.json | 6 +- .../tests/model/planning/planning-page.ts | 7 +- ws-tests/sanity/package.json | 6 +- 50 files changed, 1991 insertions(+), 908 deletions(-) diff --git a/desktop/package.json b/desktop/package.json index a7560e845e..c50112cbf5 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -75,7 +75,7 @@ "jest": "^30.4.2", "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", - "@testing-library/jest-dom": "^6.6.3", + "@testing-library/jest-dom": "6.9.1", "jest-environment-jsdom": "^30.4.1", "eslint-plugin-svelte": "^3.23.0", "eslint-config-love": "^155.0.0" diff --git a/dev/doc-import-tool/package.json b/dev/doc-import-tool/package.json index aca54596a2..f41906babf 100644 --- a/dev/doc-import-tool/package.json +++ b/dev/doc-import-tool/package.json @@ -58,7 +58,7 @@ "commander": "^14.0.0", "domhandler": "^5.0.3", "domutils": "^3.1.0", - "htmlparser2": "^9.0.0", + "htmlparser2": "~10.1.0", "mammoth": "^1.9.0", "docx4js": "^3.3.0", "zod": "^3.22.4" diff --git a/dev/doc-import-tool/src/extract/meta.ts b/dev/doc-import-tool/src/extract/meta.ts index 67d4d7031d..cb7aba5295 100644 --- a/dev/doc-import-tool/src/extract/meta.ts +++ b/dev/doc-import-tool/src/extract/meta.ts @@ -108,9 +108,7 @@ export class PageHeaderTableRowDocMetadataExtractor implements DocMetadataExtrac } type AnyDocMetadataExtractor = - | MetaTagsDocMetadataExtractor - | TableRowDocMetadataExtractor - | PageHeaderTableRowDocMetadataExtractor + MetaTagsDocMetadataExtractor | TableRowDocMetadataExtractor | PageHeaderTableRowDocMetadataExtractor export function createMetadataExtractor (metadata: DocMetadataSpec): AnyDocMetadataExtractor { switch (metadata.in) { diff --git a/dev/doc-import-tool/src/extract/nodes.ts b/dev/doc-import-tool/src/extract/nodes.ts index ed58296bf7..0be8c4dbd0 100644 --- a/dev/doc-import-tool/src/extract/nodes.ts +++ b/dev/doc-import-tool/src/extract/nodes.ts @@ -264,10 +264,7 @@ function setTextMatchingParams (params: ListParams | GenericParams | TocParaSeqP type NodeParams = ListParams | TableParams | GenericParams | TocParaSeqParams type AnyNodeExtractor = - | TableNodeExtractor - | ListNodeExtractor - | GenericNodeExtractor - | TocParagraphSequenceNodeExtractor + TableNodeExtractor | ListNodeExtractor | GenericNodeExtractor | TocParagraphSequenceNodeExtractor export type AnyContainer = TableContainer | ListContainer | GenericContainer diff --git a/dev/import-tool/package.json b/dev/import-tool/package.json index af12464368..5fb4acd376 100644 --- a/dev/import-tool/package.json +++ b/dev/import-tool/package.json @@ -61,7 +61,7 @@ "@hcengineering/server-client": "workspace:^0.7.16", "@hcengineering/importer": "workspace:^0.7.0", "commander": "^14.0.0", - "js-yaml": "^4.3.1", + "js-yaml": "^4.3.2", "mammoth": "^1.9.0" } } diff --git a/dev/tool/package.json b/dev/tool/package.json index 2c8a7a896a..f188903d82 100644 --- a/dev/tool/package.json +++ b/dev/tool/package.json @@ -56,7 +56,7 @@ "typescript": "^5.9.3", "@types/ws": "^8.18.1", "@types/mime-types": "~2.1.1", - "@types/request": "~2.48.8", + "@types/request": "~2.48.13", "jest": "^30.4.2", "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", @@ -178,13 +178,13 @@ "@hcengineering/s3": "workspace:^0.7.18", "@hcengineering/kvs-client": "workspace:^0.7.0", "commander": "^14.0.0", - "csv-parse": "~5.1.0", + "csv-parse": "~7.0.2", "email-addresses": "^5.0.0", "fast-equals": "^5.2.2", "libphonenumber-js": "^1.9.46", "mime-types": "~2.1.34", "mongodb": "^6.16.0", - "postgres": "^3.4.7", + "postgres": "^3.4.9", "ws": "^8.21.0", "bufferutil": "^4.0.8", "utf-8-validate": "^6.0.4", diff --git a/dev/tool/src/contact.test.ts b/dev/tool/src/contact.test.ts index 9957ddf842..3dafae2419 100644 --- a/dev/tool/src/contact.test.ts +++ b/dev/tool/src/contact.test.ts @@ -89,19 +89,17 @@ describe('ensureMissingSocialIdentities', () => { const { ops, addCollection } = createMockOps({ persons: [person] }) const socialId = 'social-id-1' as PersonId const accountClient = { - getPersonInfo: jest.fn( - async (): Promise => ({ - name: 'n', - socialIds: [ - { - _id: socialId, - type: SocialIdType.EMAIL, - value: 'u@v.com', - key: 'email:u@v.com' - } - ] - }) - ) + getPersonInfo: jest.fn(async (): Promise => ({ + name: 'n', + socialIds: [ + { + _id: socialId, + type: SocialIdType.EMAIL, + value: 'u@v.com', + key: 'email:u@v.com' + } + ] + })) } const logSpy = jest.spyOn(console, 'log').mockImplementation(() => {}) @@ -119,20 +117,18 @@ describe('ensureMissingSocialIdentities', () => { const { ops, addCollection } = createMockOps({ persons: [person] }) const socialId = 'social-id-2' as PersonId const accountClient = { - getPersonInfo: jest.fn( - async (): Promise => ({ - name: 'n', - socialIds: [ - { - _id: socialId, - type: SocialIdType.EMAIL, - value: 'a@b.com', - key: 'email:a@b.com', - verifiedOn: 1 - } - ] - }) - ) + getPersonInfo: jest.fn(async (): Promise => ({ + name: 'n', + socialIds: [ + { + _id: socialId, + type: SocialIdType.EMAIL, + value: 'a@b.com', + key: 'email:a@b.com', + verifiedOn: 1 + } + ] + })) } const result = await ensureMissingSocialIdentities(toolCtx, ops, accountClient, false) @@ -167,19 +163,17 @@ describe('ensureMissingSocialIdentities', () => { }) const { ops, addCollection } = createMockOps({ persons: [person], findOne }) const accountClient = { - getPersonInfo: jest.fn( - async (): Promise => ({ - name: 'n', - socialIds: [ - { - _id: socialId, - type: SocialIdType.EMAIL, - value: 'x@y.com', - key: 'email:x@y.com' - } - ] - }) - ) + getPersonInfo: jest.fn(async (): Promise => ({ + name: 'n', + socialIds: [ + { + _id: socialId, + type: SocialIdType.EMAIL, + value: 'x@y.com', + key: 'email:x@y.com' + } + ] + })) } const result = await ensureMissingSocialIdentities(toolCtx, ops, accountClient, false) @@ -193,12 +187,10 @@ describe('ensureMissingSocialIdentities', () => { const person = personFixture({ personUuid: undefined }) const { ops } = createMockOps({ persons: [person], employeePersonUuid: empUuid }) const accountClient = { - getPersonInfo: jest.fn( - async (): Promise => ({ - name: 'n', - socialIds: [] - }) - ) + getPersonInfo: jest.fn(async (): Promise => ({ + name: 'n', + socialIds: [] + })) } await ensureMissingSocialIdentities(toolCtx, ops, accountClient, false) diff --git a/foundations/core/packages/core/src/__tests__/client.test.ts b/foundations/core/packages/core/src/__tests__/client.test.ts index 2a063625df..b7a7874f59 100644 --- a/foundations/core/packages/core/src/__tests__/client.test.ts +++ b/foundations/core/packages/core/src/__tests__/client.test.ts @@ -122,8 +122,7 @@ describe('client', () => { } get onConnect (): - | ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) - | undefined { + ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) | undefined { return this.handler } diff --git a/foundations/core/packages/core/src/client.ts b/foundations/core/packages/core/src/client.ts index 4b1e4a29dd..8afc676e28 100644 --- a/foundations/core/packages/core/src/client.ts +++ b/foundations/core/packages/core/src/client.ts @@ -407,8 +407,7 @@ export async function createClient ( txBuffer = undefined const oldOnConnect: - | ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) - | undefined = conn.onConnect + ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) | undefined = conn.onConnect conn.onConnect = async (event, _lastTx, data) => { console.log('Client: onConnect', event) if (event === ClientConnectEvent.Maintenance) { diff --git a/foundations/core/packages/postgres-base/package.json b/foundations/core/packages/postgres-base/package.json index 453c6f55e0..8bf1c1687b 100644 --- a/foundations/core/packages/postgres-base/package.json +++ b/foundations/core/packages/postgres-base/package.json @@ -42,7 +42,7 @@ "eslint-config-love": "^155.0.0" }, "dependencies": { - "postgres": "^3.4.7" + "postgres": "^3.4.9" }, "repository": { "type": "git", diff --git a/foundations/core/packages/text-html/package.json b/foundations/core/packages/text-html/package.json index 0ed340aaf5..6f83624300 100644 --- a/foundations/core/packages/text-html/package.json +++ b/foundations/core/packages/text-html/package.json @@ -40,7 +40,7 @@ }, "dependencies": { "@hcengineering/text-core": "workspace:^0.7.19", - "htmlparser2": "^9.0.0" + "htmlparser2": "~10.1.0" }, "repository": { "type": "git", diff --git a/foundations/server/packages/core/src/types.ts b/foundations/server/packages/core/src/types.ts index dedcc4420e..9f8f1d5ba9 100644 --- a/foundations/server/packages/core/src/types.ts +++ b/foundations/server/packages/core/src/types.ts @@ -734,8 +734,7 @@ export interface AddSessionActive { } export type GetWorkspaceResponse = - | { upgrade: true, progress?: number } - | { error: any, terminate?: boolean, specialError?: 'archived' | 'migration' } + { upgrade: true, progress?: number } | { error: any, terminate?: boolean, specialError?: 'archived' | 'migration' } export type AddSessionResponse = AddSessionActive | GetWorkspaceResponse diff --git a/foundations/server/packages/middleware/src/guestPermissions.ts b/foundations/server/packages/middleware/src/guestPermissions.ts index e414dd7c1a..916a901746 100644 --- a/foundations/server/packages/middleware/src/guestPermissions.ts +++ b/foundations/server/packages/middleware/src/guestPermissions.ts @@ -353,8 +353,7 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle } if (accessLevelMixin.isIdentity === true && h.isDerived(tx.objectClass, contact.class.Person)) { const person = (await this.findAll(ctx, tx.objectClass, { _id: tx.objectId }, { limit: 1 }))[0] as - | Person - | undefined + Person | undefined return person?.personUuid === account.uuid } return accessLevelMixin.updateAccessLevel === AccountRole.Guest diff --git a/foundations/server/packages/postgres/package.json b/foundations/server/packages/postgres/package.json index d4ee553d6a..4b424c051d 100644 --- a/foundations/server/packages/postgres/package.json +++ b/foundations/server/packages/postgres/package.json @@ -34,7 +34,7 @@ "eslint-config-love": "^155.0.0" }, "dependencies": { - "postgres": "^3.4.7", + "postgres": "^3.4.9", "@hcengineering/core": "workspace:^0.7.26", "@hcengineering/platform": "workspace:^0.7.20", "@hcengineering/server-core": "workspace:^0.7.19", diff --git a/foundations/utils/common/config/rush/pnpm-lock.yaml b/foundations/utils/common/config/rush/pnpm-lock.yaml index 0f34961854..623372431b 100644 --- a/foundations/utils/common/config/rush/pnpm-lock.yaml +++ b/foundations/utils/common/config/rush/pnpm-lock.yaml @@ -12,12 +12,15 @@ importers: ../../packages/platform-rig: dependencies: + '@stylistic/eslint-plugin': + specifier: ^5.10.0 + version: 5.10.0(eslint@9.39.5) '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.70.0(@typescript-eslint/parser@8.70.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.70.0(eslint@9.39.5)(typescript@5.9.3) esbuild: specifier: ^0.25.10 version: 0.25.10 @@ -28,23 +31,20 @@ importers: specifier: ^0.9.3 version: 0.9.3(esbuild@0.25.10)(svelte@4.2.20) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5 + eslint-config-love: + specifier: ^155.0.0 + version: 155.0.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.3.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5)(svelte@4.2.20) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -55,8 +55,8 @@ importers: specifier: ^4.2.20 version: 4.2.20 svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 version: 5.1.4(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6))(postcss@8.5.6)(sass@1.93.2)(svelte@4.2.20)(typescript@5.9.3) @@ -77,38 +77,35 @@ importers: specifier: workspace:^0.7.21 version: link:../platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.3 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.70.0(@typescript-eslint/parser@8.70.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.70.0(eslint@9.39.5)(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5 + eslint-config-love: + specifier: ^155.0.0 + version: 155.0.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.3.0(eslint@9.39.5)(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5)(svelte@4.2.20) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.3) + specifier: ^30.4.2 + version: 30.5.1(@types/node@24.13.3) sass: specifier: ^1.80.0 version: 1.93.2 @@ -119,8 +116,8 @@ importers: specifier: ^5.1.4 version: 5.1.4(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6))(postcss@8.5.6)(sass@1.93.2)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.1(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0(@types/node@24.13.3))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.12(@babel/core@7.28.4)(@jest/transform@30.5.1)(@jest/types@30.5.1)(babel-jest@30.5.1(@babel/core@7.28.4))(jest-util@30.5.1)(jest@30.5.1(@types/node@24.13.3))(typescript@5.9.3) ../scripts: devDependencies: @@ -320,6 +317,15 @@ packages: '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + '@emnapi/core@1.10.0': + resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} + + '@emnapi/runtime@1.10.0': + resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} + + '@emnapi/wasi-threads@1.2.1': + resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} + '@esbuild/aix-ppc64@0.25.10': resolution: {integrity: sha512-0NFWnA+7l41irNuaSVlLfgNT12caWJVLzp5eAVhZ0z1qpxbockccEt3s+149rE64VUI3Ml2zt8Nv5JVc4QXTsw==} engines: {node: '>=18'} @@ -476,6 +482,18 @@ packages: cpu: [x64] os: [win32] + '@eslint-community/eslint-plugin-eslint-comments@4.8.1': + resolution: {integrity: sha512-vafrdi15JHBFh1qWOAucyJwlEEuhdoMof28jOdKdgnwZ7bXwd6v4wzHYSmAVLwnx0yc7bqAtfJ0EZQV1WAzV/Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 + + '@eslint-community/eslint-utils@4.10.1': + resolution: {integrity: sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/eslint-utils@4.9.0': resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -486,14 +504,58 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + '@eslint-community/regexpp@4.12.2': + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/config-array@0.21.2': + resolution: {integrity: sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/config-helpers@0.4.2': + resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.17.0': + resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/eslintrc@2.1.4': resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/eslintrc@3.3.7': + resolution: {integrity: sha512-F42g89Qd5oAWtp0k0nnSrjziAKza7w8SVT4mStc18LZMaRb4J1HQAHLCalEtDCxrTuksx7NU9qsmeLwpOfPqWw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/js@8.57.1': resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/js@9.39.5': + resolution: {integrity: sha512-QywQuszQh77pIXCsq998c8hbhSTI/azTty1Z6N53dmAudKHhy573j3yvRLsX2BSp8YpLtoCEG8E9DJe+8zUh4A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.7': + resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.4.1': + resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@humanfs/core@0.19.2': + resolution: {integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.8': + resolution: {integrity: sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==} + engines: {node: '>=18.18.0'} + + '@humanfs/types@0.15.0': + resolution: {integrity: sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==} + engines: {node: '>=18.18.0'} + '@humanwhocodes/config-array@0.13.0': resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} engines: {node: '>=10.10.0'} @@ -507,6 +569,14 @@ packages: resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} deprecated: Use @eslint/object-schema instead + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + engines: {node: '>=18.18'} + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + '@istanbuljs/load-nyc-config@1.1.0': resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} engines: {node: '>=8'} @@ -515,71 +585,87 @@ packages: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} - '@jest/console@29.7.0': - resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/console@30.5.1': + resolution: {integrity: sha512-u5Ncuc+gXVUwjNMFQOnphHo2Qx2DxyC8Dvpmf4HCx4y0kvSkRRNiQYRixrvOP4V7y52JcSuNxqochCt0PpdHVg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/core@29.7.0': - resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/core@30.5.1': + resolution: {integrity: sha512-BL9g6CJUUhIbdoAflz/Va658erSSXUIvU8XUYiWNTbZljJjZ5yaC9EJ9/dQ19rpbYV3ZOK4sBACqhPaTyhoUIA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: node-notifier: optional: true - '@jest/environment@29.7.0': - resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/diff-sequences@30.5.0': + resolution: {integrity: sha512-OsqBjHXCn8cadasoAZBP6nWYvMsRhpMzGXTpxJ5aO04NlbdhIz+FVe3q49l0AwVhsz/cEmIpBes6gAFl1/dWQg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/environment@30.5.1': + resolution: {integrity: sha512-eYJAkOsrpwDXPcoLNEG6lN9Zo3Cy35pxnVQD74vyIfsi/Q8wB/lZFsEjU4wrecOgT4ZviQDZaX/cFIJyMdMxTw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/expect-utils@30.5.1': + resolution: {integrity: sha512-WcRWhHQdTMRDpyWKZ/6MINBmovI7zeD+bL8wFjCncRV3NQOwKy1X45IfyblfHR4k/XciIlNEdFL9QjFO+HNKOg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/expect-utils@29.7.0': - resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/expect@30.5.1': + resolution: {integrity: sha512-uOGd40P/COyUp9xHf5jeGiGJC2/ANg+2+Tk9/xN5/LxmlY/r/gxsPrx3DTEtaRZsLAX4wgNSLEDELZ5bmVs2bA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/expect@29.7.0': - resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/fake-timers@30.5.1': + resolution: {integrity: sha512-rEkV6YzpBXo/L9cnj2ibyuYZuyGiNWaPUsyCu3HYJbqCV4jnEiKmf7hId20z8eKjZ0JQ9jtIYKxRSmYB/OYSsA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/fake-timers@29.7.0': - resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/get-type@30.5.0': + resolution: {integrity: sha512-9/2VUPitAjmBzbvDvqrxmvB7BzWsBW0WmkkojX1ODuxX1NLGxx9gfaZpHB0z8DtJ9uhGNmZG/VXBhf8uO0OV8Q==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/globals@29.7.0': - resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/globals@30.5.1': + resolution: {integrity: sha512-VhqvQ251XIC7pk46YymI3HCeBLOdvriDw9zibekodAHEwoVvbVVgpU5H13GvmyOAzxtZCfsm1uvzqkaqJf2I+g==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/reporters@29.7.0': - resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/pattern@30.5.0': + resolution: {integrity: sha512-HdNQYSdRTEBNrginaqzQtTjG0HRMfrra/z6Ok7uL3S87vSlarIVohEsJsSj5edu3MiHoHjAkvPROz5ZjoKai+w==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/reporters@30.5.1': + resolution: {integrity: sha512-RbUXIfv85KxitJn4l3MpAoMilkvXe2QCO5lXxHWftywo/VdZ5vkEoHRDgphcxP6qmoIkUaN8/UZj6NhdkIFdJg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: node-notifier: optional: true - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/schemas@30.5.0': + resolution: {integrity: sha512-/hunigyNpc4RCjC0VaW3f5RCUZVM2+WQ65qP7z083Gmvac7or2LI50XVNOtE4YPgBpV0yxYiAgorAPGniCoJmg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/snapshot-utils@30.5.1': + resolution: {integrity: sha512-V3wnxNtiVmw5PPVg433Cn3VdXnsOeu/ofLw3KC04Bn2y1wIlU5kozXQn48rhrgj/02LrCVtntTEF1yBha0XSUw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/source-map@29.6.3': - resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/source-map@30.5.0': + resolution: {integrity: sha512-xWpTJP9D0bDFGbPGT8XuWSwwha/iHADyyKzUnMx4UbdgnHugxrDaQFO4RZ8x4ZsFzRP6pNii8uvlgKCDxCIuDg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/test-result@29.7.0': - resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/test-result@30.5.1': + resolution: {integrity: sha512-A/1S6ZBdpic50E0pxLgvaB9XNPL4k7AksmG69OO2oiotxciWZwHkbOec+qbIi+uUtIIByOVlXJUl97oZUsz+Jw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/test-sequencer@29.7.0': - resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/test-sequencer@30.5.1': + resolution: {integrity: sha512-SHcPnrjdVRYJv6y6l4JUTy4Jccu7zmO6BmiOfOA34UiVBto22s19WiDC0A/2qfM7MWB/qdcoqfSIRMitpjTT4A==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/transform@29.7.0': - resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/transform@30.5.1': + resolution: {integrity: sha512-EDnDhn0jleU9ZhpVoA4gvqw+Ev0iw/r5upNT2b79RiwiaTiYAMMhvNJP3lmocjIe5J2ZkoNr0B3K/J6O5GIm4Q==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/types@29.6.3': - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/types@30.5.1': + resolution: {integrity: sha512-LvVYn83nnXPl+Rg98nvcFgjx6nRMTArhSn6RAX/w3ELn54S8A42TYZvsCMdGUqTM8S0wyXbtlQdU6Hi6dykj9g==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jridgewell/gen-mapping@0.3.13': resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} @@ -597,6 +683,16 @@ packages: '@jridgewell/trace-mapping@0.3.30': resolution: {integrity: sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==} + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + + '@napi-rs/wasm-runtime@1.2.4': + resolution: {integrity: sha512-AJxoUD2/15ESHbvpcyjU274nsAPLuOtPHCk0vKJM5pj//Fg/B1FXNWjPnXTT9PymCYYiHo4zPj0ZomXBKhoy7g==} + engines: {node: ^20.19.0 || ^22.13.0 || >=23.5.0} + peerDependencies: + '@emnapi/core': ^1.7.1 || ^2.0.0-alpha.4 + '@emnapi/runtime': ^1.7.1 || ^2.0.0-alpha.4 + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -615,66 +711,132 @@ packages: cpu: [arm64] os: [android] + '@parcel/watcher-android-arm64@2.6.0': + resolution: {integrity: sha512-trgpLSCKRC/huFjXX/Smh+0sWe4+YtKfktIToiMl59ghz7z+qkH6kMvNnUbLyRs9N11t8l4svSCs1+5B3rOAhA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] + '@parcel/watcher-darwin-arm64@2.5.1': resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [darwin] + '@parcel/watcher-darwin-arm64@2.6.0': + resolution: {integrity: sha512-Y3QV0gl7Q1zbfueunkWIERICbEojQFCgpyG7YqOGNFLsckXyI1xu9mAIUpKY9QBYzBtSkN8dBPwd3yiAO9ovMw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] + '@parcel/watcher-darwin-x64@2.5.1': resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [darwin] + '@parcel/watcher-darwin-x64@2.6.0': + resolution: {integrity: sha512-Ohv6OpzhUfKYD7Beb8kDvG0jbIxORCYY1JRdZnaBtnjjkJxgD7ZVL0nw2sCYd0yTMKTvz3nnTnOF3cDifK+kvw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] + '@parcel/watcher-freebsd-x64@2.5.1': resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [freebsd] + '@parcel/watcher-freebsd-x64@2.6.0': + resolution: {integrity: sha512-5HmXvDgs8VK+74jF9y9/2FE3/OnlcKmc56tjmSrEuZjpSZOGL+fvAu+HKJBdPs9uwoP2hE6TlSUpXZ/C5jUFmQ==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + '@parcel/watcher-linux-arm-glibc@2.5.1': resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==} engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] + '@parcel/watcher-linux-arm-glibc@2.6.0': + resolution: {integrity: sha512-Ps/hui3A+vMbjdqlqAowK2ZL8+BO8dBjxeWXj6npTBs3jx4wWmbPpaLuqwrQrSqIVMCnpWo238bJ1U37GhQOYg==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + '@parcel/watcher-linux-arm-musl@2.5.1': resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] + '@parcel/watcher-linux-arm-musl@2.6.0': + resolution: {integrity: sha512-9c6AUHgHoG+IY88MRIHupztQiQnrbqHYQjkM2btA+Bf/wQnQMuiD0Wfk1EVv3TlNT3x41uU71rn6E4xh/+zvkw==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + '@parcel/watcher-linux-arm64-glibc@2.5.1': resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] + '@parcel/watcher-linux-arm64-glibc@2.6.0': + resolution: {integrity: sha512-yHRqS2owEXe6Hic9z6Mh1ECsCd+ODVOGvZDyciqRd21+v+o+DnXMOrw50DSpIG2sb8GPEaPPmfeCAWKPJdq46g==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + '@parcel/watcher-linux-arm64-musl@2.5.1': resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] + '@parcel/watcher-linux-arm64-musl@2.6.0': + resolution: {integrity: sha512-WhB2e/V7rqdHHWZusBSPuy5Ei8S6lSz6FE5TKKQz5h3a0O+C+mhY7vxU9b/stqvMb8beLnPY82ZrFTLKs+SrKA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + '@parcel/watcher-linux-x64-glibc@2.5.1': resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] + '@parcel/watcher-linux-x64-glibc@2.6.0': + resolution: {integrity: sha512-ulGE6x6Oz6iAwg75T8YQSoguBWasniIbX+QWpaYPcCnDOpdWX3k+4xbEYPZVLxOuoJI+svJJPD3sEj8G7lrQ3A==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + '@parcel/watcher-linux-x64-musl@2.5.1': resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] + '@parcel/watcher-linux-x64-musl@2.6.0': + resolution: {integrity: sha512-tkBYKt7YQrjIJWYDnto2YgO8MRkjlMTSNoRHzsXinBqbLdeOM3L32wPZJvIZxqaLMfSlS/4sUjH/6STVP/XDLw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + '@parcel/watcher-win32-arm64@2.5.1': resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [win32] + '@parcel/watcher-win32-arm64@2.6.0': + resolution: {integrity: sha512-gIZAP23jaHjGWasY/TY6yL7NHFClf0Ga7FN+iINvk+KN94rhm94lYZhFsbYFNcA04/onvGD9kKmiJLJB2HbNwQ==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] + '@parcel/watcher-win32-ia32@2.5.1': resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==} engines: {node: '>= 10.0.0'} @@ -687,21 +849,48 @@ packages: cpu: [x64] os: [win32] + '@parcel/watcher-win32-x64@2.6.0': + resolution: {integrity: sha512-cA+/pXV2YkfxlIcXOQ5fSWqAzzPyD78/x5qbK/I0vUkrlYHA8TIz+MXjAbGouguKVSI4bOmkTSJ1/poVSsgt+A==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] + '@parcel/watcher@2.5.1': resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} engines: {node: '>= 10.0.0'} + '@parcel/watcher@2.6.0': + resolution: {integrity: sha512-7FNeNl8NCE7aINx7WXiKQrPYZWC/hvrTsmk6zmxbI7LTXE7hVek/n8AfVgpe2y82zl3w0HvCHN0bVKMBoJcC0w==} + engines: {node: '>= 10.0.0'} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@pkgr/core@0.3.6': + resolution: {integrity: sha512-SEeaJLb3qBNF/OaXnaR1NmmBbFYk1zC0ZH/52fATcRPLFg/p791YrcyFFy44Bo9sLaGuSuLp5Q6axbb/O+v/RA==} + engines: {node: ^14.18.0 || >=16.0.0} + '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@sinclair/typebox@0.34.52': + resolution: {integrity: sha512-XiMQh7qqVlxZzcVD+kkGMNGMzcTrDMLWI7S4x7z1MkCkbDPrekpZXEUK0eZqZFMuHQg2a2DZOcDIh9o5v3Gonw==} '@sinonjs/commons@3.0.1': resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} - '@sinonjs/fake-timers@10.3.0': - resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + '@sinonjs/fake-timers@15.4.0': + resolution: {integrity: sha512-DsG+8/LscQIQg68J6Ef3dv10u6nVyetYn923s3/sus5eaGfTo1of5WMZSLf0UJc9KDuKPilPH0UDJCjvNbDNCA==} + + '@stylistic/eslint-plugin@5.10.0': + resolution: {integrity: sha512-nPK52ZHvot8Ju/0A4ucSX1dcPV2/1clx0kLcH5wDmrE4naKso7TUC/voUyU1O9OTKTrR6MYip6LP0ogEMQ9jPQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^9.0.0 || ^10.0.0 + + '@tybys/wasm-util@0.10.4': + resolution: {integrity: sha512-W3c4gRigFS0T/Ma4qIYF3GDAc5AQdHb1yL5znJT1Zv1YaD9Kitx656wBjvr19qbiosmZT8lWDM5BEMynUqX65A==} '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} @@ -718,9 +907,6 @@ packages: '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - '@types/graceful-fs@4.1.9': - resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} - '@types/istanbul-lib-coverage@2.0.6': resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} @@ -730,8 +916,8 @@ packages: '@types/istanbul-reports@3.0.4': resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - '@types/jest@29.5.14': - resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==} + '@types/jest@30.0.0': + resolution: {integrity: sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA==} '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -768,6 +954,14 @@ packages: typescript: optional: true + '@typescript-eslint/eslint-plugin@8.70.0': + resolution: {integrity: sha512-/v8HZt6RlyIZxB3ntehELOcUcfxKPVGWXnQdJuHRmzrqgF8nQypcC/oxGW+Ot4VGKDq81XugPKxx0n5PBtf9PA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.70.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/parser@6.21.0': resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} engines: {node: ^16.0.0 || >=18.0.0} @@ -778,10 +972,33 @@ packages: typescript: optional: true + '@typescript-eslint/parser@8.70.0': + resolution: {integrity: sha512-zYvrmj9Yxd63UGaXw+kdt6A0F0s0qveJyuatIM77bYC2DE4pgmg7a50u8LR7PRtXd0x+h+Tl3eXabGm06SWd3Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/project-service@8.70.0': + resolution: {integrity: sha512-hFHbTNqhU9G+2eKFXCBVb1tjFT/LceiJ4+HfLO4pTpDI0KHi6iajpcFFkaSQ9gXmCh7n82A0PthaayEdN6mspQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/scope-manager@6.21.0': resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/scope-manager@8.70.0': + resolution: {integrity: sha512-8nP3Kwh5hlgZ4FicGvmznAmJe8UL4sdU8tLukrPaMuQmDuk4Y8xYfzu/aYZW4xT2JCgc7H/TpDI5cGlxcWJSqQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/tsconfig-utils@8.70.0': + resolution: {integrity: sha512-adnkeeNq9Sq1sUf4+FRVc0KdgYghzsgFpZSQVZVvY0LCuUuN0FnQgyGzCJeC4fW1cdXseBAjU2EOqUIjbNcZUw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/type-utils@6.21.0': resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} engines: {node: ^16.0.0 || >=18.0.0} @@ -792,10 +1009,21 @@ packages: typescript: optional: true + '@typescript-eslint/type-utils@8.70.0': + resolution: {integrity: sha512-NUMKIhYVaVIVLnRL9CRt+VVcuLgSHUCpXn4/+K8wql+vdInUzvx8BjUO1oJ7cG9shjFJKtF8F8Hh2kCh3/KBVw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/types@6.21.0': resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/types@8.70.0': + resolution: {integrity: sha512-asTOIYhDg4zdzOScCyaytrsV3cR6B4ecPQlXw/dJIm7J/MZTtCtfVII9JD8Geh4jTCrK/Xe6cg5UevoleMcoJQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@6.21.0': resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} engines: {node: ^16.0.0 || >=18.0.0} @@ -805,19 +1033,146 @@ packages: typescript: optional: true + '@typescript-eslint/typescript-estree@8.70.0': + resolution: {integrity: sha512-d9NmHMPEKQ7QCLLm1jI3zmoQBwT5KwFYjXBJ9ymZfKCUU+5rmTRykKAFvH5Qn/ZCds3CEAFS9OC9M/jkl0X2bA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/utils@6.21.0': resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 + '@typescript-eslint/utils@8.70.0': + resolution: {integrity: sha512-oZmtKJz/4fufZ2p3+Cn3ijEojcdfR+1zYDH2xKYrEly0dR/Q/1xUPRCOlKGxod78nWlU2UnDe09GZ3TaknBFGA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/visitor-keys@6.21.0': resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/visitor-keys@8.70.0': + resolution: {integrity: sha512-BoC8PiO4Hkdo0TVJh9Ntxr5MxPDI7/oFsrygN5ADelFSeXG/qgNuucIGA+L5Z6JpPTE/uRfcTWtscjbUaufepQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + '@unrs/resolver-binding-android-arm-eabi@1.12.2': + resolution: {integrity: sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w==} + cpu: [arm] + os: [android] + + '@unrs/resolver-binding-android-arm64@1.12.2': + resolution: {integrity: sha512-YGCRZv/9GLhwmz6mYDeTsm/92BAyR28l6c2ReweVW5pWgfsitWLY8upvfRlGdoyD8HjeTHSYJWyZGD4KJA/nFQ==} + cpu: [arm64] + os: [android] + + '@unrs/resolver-binding-darwin-arm64@1.12.2': + resolution: {integrity: sha512-u9DiNT1auQMO20A9SyTuG3wUgQWB9Z7KjAg0uFuCDR1FsAY8A0CG2S6JpHS1xwm/w1G08bjXZDcyOCjv1WAm2w==} + cpu: [arm64] + os: [darwin] + + '@unrs/resolver-binding-darwin-x64@1.12.2': + resolution: {integrity: sha512-f7rPLi/T1HVKZu/u6t87lroib16n8vrSzcyxI7lg4BGO9UF26KhQL44sd9eOUgrTYhvRXtWOIZT5PejdPyJfUA==} + cpu: [x64] + os: [darwin] + + '@unrs/resolver-binding-freebsd-x64@1.12.2': + resolution: {integrity: sha512-BpcOjWCJub6nRZUS2zA20pmLvjtqAtGejETaIyRLiZiQf++cbrjltLA5NN/xaXfqeOBOSlMFbemIl5/S5tljmg==} + cpu: [x64] + os: [freebsd] + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2': + resolution: {integrity: sha512-vZTDvdSISZjJx66OzJqtsOhzifbqRjbmI1Mnu49fQDwog5GtDI4QidRiEAYbZCRj9C8YZEW+3ZjqsyS9GR4k2A==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm-musleabihf@1.12.2': + resolution: {integrity: sha512-BiPI+IrIlwcW4nLLMM21+B1dFPzd55yAVgVGrdgDjNef+ch03GdxrcyaIz8X9SsQirh/kCQ7mviyWlMxdh2D7g==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-gnu@1.12.2': + resolution: {integrity: sha512-zJc0H99FEPoFfSrNpa91HYfxzfAJCr502oxNK1cfdC9hlaFI43RT+JFCann9JUgZmLzzntChHyn13Sgn9ljHNg==} + cpu: [arm64] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-musl@1.12.2': + resolution: {integrity: sha512-KQ3Lki6l+Pz1k/eBipN41ES+YUK30beLGb9YqcB1O542cyLCNE6GaxrfcY3T6EezmGGk84wb5XyO9loTM9tkcA==} + cpu: [arm64] + os: [linux] + + '@unrs/resolver-binding-linux-loong64-gnu@1.12.2': + resolution: {integrity: sha512-3SJGEh1DborhG6pyxvhPzCT4bbSIVihsvgJc13P1bHG7KLdNDaF9T3gsTwFc7Jw/5Y5/iWOjkEx7Zy0NvCGX3Q==} + cpu: [loong64] + os: [linux] + + '@unrs/resolver-binding-linux-loong64-musl@1.12.2': + resolution: {integrity: sha512-jiuG/Obbel7uw1PwHNFfrkiKhLAF6mnyZ6aWlOAVN9WqKm8v0OFGnciJIHu8+CMvXLQ8AD51LPzAoUfT21D5Ew==} + cpu: [loong64] + os: [linux] + + '@unrs/resolver-binding-linux-ppc64-gnu@1.12.2': + resolution: {integrity: sha512-q7xRvVpmcfeL+LlZg8Pbbo6QaTZwDU5BaGZbwfhkEsXJn3Was8xYfE0RBH266xZt0rM6B7i8xAYIvjthuUIWHg==} + cpu: [ppc64] + os: [linux] + + '@unrs/resolver-binding-linux-riscv64-gnu@1.12.2': + resolution: {integrity: sha512-0CVdx6lcnT3Q9inOH8tsMIOJ6ImndllMjqJHg8RLVdB7Vq4SfkEXl9mCSsVNuNA4MCYycRicCUxPCabVHJRr6A==} + cpu: [riscv64] + os: [linux] + + '@unrs/resolver-binding-linux-riscv64-musl@1.12.2': + resolution: {integrity: sha512-iOwlRo9vnp6R6ohHQS11n0NnfdXx/omhkocmIfaPRpQhKZ+3BDMkkdRVh53qjkFkpPddf+FETA28NwGN7l5l+w==} + cpu: [riscv64] + os: [linux] + + '@unrs/resolver-binding-linux-s390x-gnu@1.12.2': + resolution: {integrity: sha512-HYJtLfXq94q8iZNFT1lknx258wlkkWhZeUXJRqzKBBUJ00CvZ+N33zgbCqimLjsyw5Va6uUxhVa12mI+kaveEw==} + cpu: [s390x] + os: [linux] + + '@unrs/resolver-binding-linux-x64-gnu@1.12.2': + resolution: {integrity: sha512-mPsUhunKKDih5O96Y6enDQyHc1SqBPlY1E/SfMWDM3EdJ95Z9CArPeCVwCCqbP45ljvivdEk8Fxn+SIb1rDAJQ==} + cpu: [x64] + os: [linux] + + '@unrs/resolver-binding-linux-x64-musl@1.12.2': + resolution: {integrity: sha512-azrt6+5ydLd8Vt210AAFis/lZevSfPw93EJRIJG+xPu4WCJ8K0kppCTpMyLPcKT7H15M4Jnt2tMp5bOvCkRC6A==} + cpu: [x64] + os: [linux] + + '@unrs/resolver-binding-openharmony-arm64@1.12.2': + resolution: {integrity: sha512-YZ9hP4O0X9PQb8eO980qmLNGH4zT3I9+SZTdt0Pr0YyuGQhYKoOZkV02VzrzyOZJ5xIJ3UFIenKkUkGg8GjgWQ==} + cpu: [arm64] + os: [openharmony] + + '@unrs/resolver-binding-wasm32-wasi@1.12.2': + resolution: {integrity: sha512-tYFDIkMxSflfEc/h92ZWNsZlHSwgimbNHSO3PL2JWQHfCuC2q316jMyYU9TIWZsFK2bQwyK5VAdYgn8ygPj69A==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@unrs/resolver-binding-win32-arm64-msvc@1.12.2': + resolution: {integrity: sha512-qzNyg3xL0VPQmCaUh+N5jSitce6k+uCBfMDesWRnlULOZaqUkaJ0ybdT+UqlAWJoQjuqfIU/0Ptx9bteN4D82g==} + cpu: [arm64] + os: [win32] + + '@unrs/resolver-binding-win32-ia32-msvc@1.12.2': + resolution: {integrity: sha512-WD9sY00OfpHVGfsnHZoA8jVT+esS/Bg8z8jzxp5BnDCjjwsuKsPQrzswwpFy4J1AUJbXPRfkpcX0mXrzeXW79g==} + cpu: [ia32] + os: [win32] + + '@unrs/resolver-binding-win32-x64-msvc@1.12.2': + resolution: {integrity: sha512-nAB74NfSNKknqQ1RrYj6uz8FcXEomu/MATJZxh/x+BArzN2U3JbOYC0APYzUIGhVY3m5hRxA8VPNdPBoG8txlA==} + cpu: [x64] + os: [win32] + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -831,6 +1186,9 @@ packages: ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ajv@6.15.0: + resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==} + ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} @@ -839,6 +1197,10 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} + ansi-regex@6.3.0: + resolution: {integrity: sha512-WpDfL7NO6j7tH88IDBNVdUJxDh9nmCteAVW9dsep846XdwF4naCBK+/tGLX3KJgcpgMRXCFlTM2hKGoK9FsdrQ==} + engines: {node: '>=12'} + ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} @@ -847,6 +1209,10 @@ packages: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} engines: {node: '>=10'} + ansi-styles@6.2.3: + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} + engines: {node: '>=12'} + anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -901,34 +1267,38 @@ packages: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} - babel-jest@29.7.0: - resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + babel-jest@30.5.1: + resolution: {integrity: sha512-ge1xUVZS91ml09YRMgRGgeKJ4YJpcOiuwteAxFBYLugQyp7cRw+hHej6Ho0vPjvLrjq60bb7JPHH9LAMA1/krA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: - '@babel/core': ^7.8.0 + '@babel/core': ^7.11.0 || ^8.0.0-0 - babel-plugin-istanbul@6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} + babel-plugin-istanbul@8.0.0: + resolution: {integrity: sha512-18wCskrN3DgbuBmp1gr7LBGT8xdz5xhQQqFvFhVxbkl8VBCrMKQ2YtqBWtUal1Zrc1HTuX0011+Brjw78TCFkg==} + engines: {node: '>=18'} - babel-plugin-jest-hoist@29.6.3: - resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + babel-plugin-jest-hoist@30.5.0: + resolution: {integrity: sha512-gtGo1B+u14jrZQv6TdSWIWkTqclboo7Qn+dFAGUOIuXLFuJKAdg3U5MIWzZnW4vfUb4dX9skmAMiby86e/SF4A==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} babel-preset-current-node-syntax@1.2.0: resolution: {integrity: sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==} peerDependencies: '@babel/core': ^7.0.0 || ^8.0.0-0 - babel-preset-jest@29.6.3: - resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + babel-preset-jest@30.5.0: + resolution: {integrity: sha512-ZGPn5ClP4lBDpuOK8W1yQIOy359HmbnZv3suucAlIe+SEE9yDsxV4S2PjSbH2Vc97U+WmzYD7vw3kr8NsQ/i6w==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: - '@babel/core': ^7.0.0 + '@babel/core': ^7.11.0 || ^8.0.0-beta.1 || ^8.0.0 balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + big.js@5.2.2: resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} @@ -942,6 +1312,10 @@ packages: brace-expansion@2.0.2: resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + brace-expansion@5.0.12: + resolution: {integrity: sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==} + engines: {node: 20 || >=22} + braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -962,9 +1336,6 @@ packages: resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} engines: {node: '>=8.0.0'} - buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - builtins@5.1.0: resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} @@ -1011,12 +1382,12 @@ packages: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} - ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + ci-info@4.4.0: + resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==} engines: {node: '>=8'} - cjs-module-lexer@1.4.3: - resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + cjs-module-lexer@2.2.1: + resolution: {integrity: sha512-Ca8swihM+/4yKecYHY52kgJd300hi2lADU/a1RxNTRe+RJ9jvqQlESpbz9DnG9mowez8qwXHB8qYdIUw9e+F5Q==} cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} @@ -1045,11 +1416,6 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - create-jest@29.7.0: - resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} @@ -1087,6 +1453,15 @@ packages: supports-color: optional: true + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dedent-js@1.0.1: resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==} @@ -1122,14 +1497,14 @@ packages: engines: {node: '>=0.10'} hasBin: true + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + detect-newline@3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} - diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -1146,6 +1521,9 @@ packages: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + electron-to-chromium@1.5.214: resolution: {integrity: sha512-TpvUNdha+X3ybfU78NoQatKvQEm1oq3lf2QbnmCEdw+Bd9RuIAY+hJTvq1avzHM0f7EJfnH3vbCnbzKzisc/9Q==} @@ -1156,10 +1534,17 @@ packages: emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + emojis-list@3.0.0: resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} engines: {node: '>= 4'} + enhanced-resolve@5.25.1: + resolution: {integrity: sha512-nGXts5znJzmWPu+mIE9izCOzdg63oJca2mDzGWWTth7sr4aCToKcoyFVBQwN75Ij5Pf6p510EwkTqViTRzDV+w==} + engines: {node: '>=10.13.0'} + error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -1175,6 +1560,9 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} + es-module-lexer@2.3.2: + resolution: {integrity: sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==} + es-object-atoms@1.1.1: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} @@ -1229,6 +1617,12 @@ packages: peerDependencies: eslint: '>=6.0.0' + eslint-config-love@155.0.0: + resolution: {integrity: sha512-3FNiSSfnR5ypBNALxcVXVMQIrEJV4KouUxdeV/8fMT74wCuMa/DL9vgDOneM7LQMn05U8DsqfKQ0uO0MCigxLw==} + peerDependencies: + eslint: ^9.35.0 + typescript: '*' + eslint-config-standard-with-typescript@40.0.0: resolution: {integrity: sha512-GXUJcwIXiTQaS3H4etv8a1lejVVdZYaxZNz3g7vt6GoJosQqMTurbmSC4FVGyHiGT/d1TjFr3+47A3xsHhsG+Q==} deprecated: Please use eslint-config-love, instead. @@ -1261,11 +1655,11 @@ packages: eslint: optional: true - eslint-plugin-es@3.0.1: - resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} - engines: {node: '>=8.10.0'} + eslint-plugin-es-x@7.8.0: + resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - eslint: '>=4.19.1' + eslint: '>=8' eslint-plugin-es@4.1.0: resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} @@ -1285,11 +1679,18 @@ packages: peerDependencies: eslint: '>=7.0.0' - eslint-plugin-node@11.1.0: - resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} - engines: {node: '>=8.10.0'} + eslint-plugin-n@18.3.0: + resolution: {integrity: sha512-cPVguuDe6DrIPb/qUXHf8P89MaVTUmiYWwpt5gX5AILsvRIiZAxMFXcFR6QHYBksqKJpjfUBlL/RleCJUWcD7w==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} peerDependencies: - eslint: '>=5.16.0' + eslint: '>=8.57.1' + ts-declaration-location: ^1.0.6 + typescript: '>=5.0.0' + peerDependenciesMeta: + ts-declaration-location: + optional: true + typescript: + optional: true eslint-plugin-promise@6.6.0: resolution: {integrity: sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ==} @@ -1297,11 +1698,17 @@ packages: peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - eslint-plugin-svelte@2.46.1: - resolution: {integrity: sha512-7xYr2o4NID/f9OEYMqxsEQsCsj4KaMy4q5sANaKkAb6/QeCjYFxRmDm2S3YC3A3pl1kyPZ/syOx/i7LcWYSbIw==} - engines: {node: ^14.17.0 || >=16.0.0} + eslint-plugin-promise@7.3.0: + resolution: {integrity: sha512-6uGiOR0INuujr6PEQmeSSP7GbIMJ/ebEXXiEzb/nOj68LknH5Pxzb/AbZivmr6VE6TkTE8rTjRK9zhKpK6HsRA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 + + eslint-plugin-svelte@3.23.0: + resolution: {integrity: sha512-n9jRklDqy0+W834568a4ZIZTK7DHXxvvHHxxGP8nNq7N//pOZMubttskHOquyGgfTR4Z05q2NdGNlsTpIEA48w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0-0 || ^9.0.0-0 + eslint: ^8.57.1 || ^9.0.0 || ^10.0.0 svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 peerDependenciesMeta: svelte: @@ -1311,6 +1718,10 @@ packages: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-scope@8.4.0: + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-utils@2.1.0: resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} engines: {node: '>=6'} @@ -1333,12 +1744,35 @@ packages: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@5.0.1: + resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + eslint@8.57.1: resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true + eslint@9.39.5: + resolution: {integrity: sha512-DgZS62aPLXKlnxILS/AYCoRvHaZeXceIzlXPkkGGzJWSow1aEk0lbTlxUSlyjC8jcaKxAdOnTDz+o1JFSBsyjw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + espree@10.4.0: + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1371,13 +1805,13 @@ packages: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} - exit@0.1.2: - resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + exit-x@0.2.2: + resolution: {integrity: sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==} engines: {node: '>= 0.8.0'} - expect@29.7.0: - resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + expect@30.5.1: + resolution: {integrity: sha512-m8YrYgvKe9+9gEnWEuKz+qCGfHqkrff7PPfyDnOFkjsfYRKqiYyOxDFMFieCGAuhtk/VNm63tvNgKZVzVy+Hvg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -1398,10 +1832,23 @@ packages: fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -1418,6 +1865,10 @@ packages: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + flatted@3.3.3: resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} @@ -1425,6 +1876,10 @@ packages: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + fs-extra@10.1.0: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} @@ -1479,6 +1934,9 @@ packages: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} + get-tsconfig@4.14.3: + resolution: {integrity: sha512-++QEw4DIY7WGoukz+/+A/8dGYPT9l9yIadnmSgZ8Rjr3YVSVDipQSO9CdnJo9ePqFqUUqh+wk9uIaoiAwsiPkA==} + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -1487,6 +1945,15 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} + glob@10.5.0: + resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + hasBin: true + + glob@13.0.6: + resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} + engines: {node: 18 || 20 || >=22} + glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported @@ -1495,6 +1962,18 @@ packages: resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + globals@15.15.0: + resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} + engines: {node: '>=18'} + + globals@16.5.0: + resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==} + engines: {node: '>=18'} + globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} @@ -1503,6 +1982,9 @@ packages: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} + globrex@0.1.2: + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + gopd@1.2.0: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} @@ -1556,6 +2038,10 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} + ignore@7.0.9: + resolution: {integrity: sha512-brTTsvFRt5C1gGHtPst/281UjPD5t9fBqbgoMPlVWy11ZLTPfu7HxK4ZYqO9H7o/yC9rSTCI85EaQ4OoY12qYw==} + engines: {node: '>= 4'} + immutable@5.1.3: resolution: {integrity: sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==} @@ -1719,10 +2205,6 @@ packages: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} - istanbul-lib-instrument@5.2.1: - resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} - engines: {node: '>=8'} - istanbul-lib-instrument@6.0.3: resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} engines: {node: '>=10'} @@ -1731,25 +2213,28 @@ packages: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} - istanbul-lib-source-maps@4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + istanbul-lib-source-maps@5.0.6: + resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} engines: {node: '>=10'} istanbul-reports@3.2.0: resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} engines: {node: '>=8'} - jest-changed-files@29.7.0: - resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + jest-changed-files@30.5.1: + resolution: {integrity: sha512-0+bvMM/ENhDI29Z8q1r4HxiDIi4G5tnBmSw4esfPQoj9q8Nik7KIyuxHkTVnnniJQf05SxpGaKDQ+4h28ynGPg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-circus@29.7.0: - resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-circus@30.5.1: + resolution: {integrity: sha512-NgliezXQ6yznqR4W5Gqw++0cZSbBZlF0NknNIAE5VmSJKWOtmWJmWnBq3TSkUOVBTPrT7FGGhVdA8DLWnxo2Sw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-cli@29.7.0: - resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-cli@30.5.1: + resolution: {integrity: sha512-uwNYepWgaNBCplm42fCIUZTf/tIEHIy5AYvx7eL1BrwIgyjPt+2poouR23UO2yopIP+kV8oZFHfv+l4pg/8prQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -1757,110 +2242,100 @@ packages: node-notifier: optional: true - jest-config@29.7.0: - resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-config@30.5.1: + resolution: {integrity: sha512-L8PKM2X/ngG8PxfLMqglKGZjylPgw84bVPUlMY9W/o76TnLqPWrmQgsaT0HrheGdRtpGE5FbmREA0Kvb+Qx5gQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: '@types/node': '*' + esbuild-register: '>=3.4.0' ts-node: '>=9.0.0' peerDependenciesMeta: '@types/node': optional: true + esbuild-register: + optional: true ts-node: optional: true - jest-diff@29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-docblock@29.7.0: - resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-diff@30.5.1: + resolution: {integrity: sha512-e3cNNMpv8Kh20MjjphTXs+3Vz7DQyLM1nft7KJhnh46atFhjVJRa+0Hq0beywuwsACtMQUBihQkFl8zxb7gt1Q==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-each@29.7.0: - resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-docblock@30.5.0: + resolution: {integrity: sha512-NwDqcxtoZi33RhuW+zJS/RVA3rmheQ8BnwpYZuc/Eruaz6seQb7+aoCeDZu/3X7W2XmD8DbSo9Pn72DbKsBFYw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-environment-node@29.7.0: - resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-each@30.5.1: + resolution: {integrity: sha512-S1af0TU4v1EZ/AUlkFs/sxf/5KGsbAT9kRgdyoMX/x72y7C8ZEgETE5o1TPnbKRnrbprc5FR/moYLfdRmqEjsQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-get-type@29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-environment-node@30.5.1: + resolution: {integrity: sha512-LrPj3sPMjsQoOB3jrb8p/sa+XkSFNKo60TTsyc+EB2kxQJHgbwElpXnx1yX25fdFn5958FIObRtcLSHyV8VIAw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-haste-map@29.7.0: - resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-haste-map@30.5.1: + resolution: {integrity: sha512-VIFgt67jW480YDxKfEv9IYQKrFpYt7bOCMn3VsnjK7AK9qo7p6acpnA1DHwsVOULE3dTaYew/6JaTD/d0VDHoQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-leak-detector@29.7.0: - resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-leak-detector@30.5.1: + resolution: {integrity: sha512-gt4GT2aWgEoCNTcBe4rqS74xTIUJxi+UD9SNSu9aOk5LmTEd6fS5KSTmAKAfitCCktQHNN+upUuL6EkBfFbMDQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-matcher-utils@29.7.0: - resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-matcher-utils@30.5.1: + resolution: {integrity: sha512-aroZVqwOz/wC2y6pC+obgFWKV9viaQWQTTSB6W5H55+egtUczIfXR/rxExTv92xD/ADYwpqaYfVWx1aqwKg7FA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-message-util@29.7.0: - resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-message-util@30.5.1: + resolution: {integrity: sha512-UdQlLdd9wL/Ys7xRErckqwD6wPlSZYueosSWuHc1r2ztGLwlgPvtSJq2+BPEgaEY13WLvfFbmhTj8pba0Sd1jg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-mock@29.7.0: - resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-mock@30.5.1: + resolution: {integrity: sha512-9fVjc3leUpGID2/by/LU4Dvdcp7PFh9LlxS3QRWK3ABm+KtvEVsG/AEGeLY3gKOZsjkBxyfwGltoAVlW7dygHg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-pnp-resolver@1.2.3: - resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true - - jest-regex-util@29.6.3: - resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-regex-util@30.5.0: + resolution: {integrity: sha512-Mg0WK7A6xRHLSA1udJ8y9f3lM0uUhFTBnLKzwPmqB9AylvpleJ6BLemR8K9dK27DY+cesDryoA7yLZCAHsPG1A==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-resolve-dependencies@29.7.0: - resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-resolve-dependencies@30.5.1: + resolution: {integrity: sha512-JKpXGONDcTaunrNVn8KCl6qAnwl06jIkvv70lhq0Ze47lsPx9sH5HoeEUiXX6iFGnliHN/qpIbQ0l38wrVmXaw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-resolve@29.7.0: - resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-resolve@30.5.1: + resolution: {integrity: sha512-wprhLejRtwN6h8ZgaqC0eYjGJ1uMdGPT/+b3eFncbG4NWuuP9QL+vWwRinu9waw7hkOLcpMJGVJAMgBwsPssMQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-runner@29.7.0: - resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-runner@30.5.1: + resolution: {integrity: sha512-FPlQE4+mwnFxXmpPrSi836KV2ZzvK1g6/nPCT8o5BcoDUUNJQeHo1/Qdkoe/QeoL4M7OeJpbnGUhYKhC1VMdaQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-runtime@29.7.0: - resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-runtime@30.5.1: + resolution: {integrity: sha512-UB88+NRkK2Tw/OqV7dofYcyiUGrVZtD41k/N0xQOs9fG//57XHK7JLWG52HD1UYpUAhjK4xm6DBvFX3yWudsMA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-snapshot@29.7.0: - resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-snapshot@30.5.1: + resolution: {integrity: sha512-cNWFdSb5xuDGl8hKkAZJ3YtI/PzHpAPFV+HUXWIOG8rMhpDTLVbvAc2d2wRicoYw2wGsJGLaurJT6BLC97bLXQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-util@29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-util@30.5.1: + resolution: {integrity: sha512-yKuxmNy2rSbTXw+3SIPanJo+nV4/BS1p26v44IYBFMsswSQySfMMcPHErnOncda7i9HEz0q605rIhSTBVgrZTg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-validate@29.7.0: - resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-validate@30.5.1: + resolution: {integrity: sha512-i/buJ56wTpxihE93hQYNMfdOThS87+HGvLZzZJmU4xggPcdTYQq051iwALLCHp3q+SkCGH+EFejQZz5EbBSkkg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-watcher@29.7.0: - resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-watcher@30.5.1: + resolution: {integrity: sha512-+FHJ7C+S7b3ySfhA1aFmoa6TztsnwZVv84ycPRn0tVN93np2EU4b8C/KadqA3l6igdjgLBTnUotab9ER0HLG8A==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-worker@29.7.0: - resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-worker@30.5.1: + resolution: {integrity: sha512-Cbxh5v7AoLuFRmFJSM4/aHdQ68rjXvUWr716EE0Dh3I7T+T/3FgFKhOERGXHcU2Meftq9+9zxPM3TSNyI9D+HA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest@29.7.0: - resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest@30.5.1: + resolution: {integrity: sha512-3qrR8+ZXFnn7y0H2yjWQNkGGBLBY4zTRoTMAq9zJcgwLLtlyonfsCLviIXK9xuE2KgIyM+M36AFcoK2DgFR36w==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -1879,6 +2354,10 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true + js-yaml@4.3.2: + resolution: {integrity: sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==} + hasBin: true + jsesc@3.1.0: resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} engines: {node: '>=6'} @@ -1911,12 +2390,8 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - - known-css-properties@0.35.0: - resolution: {integrity: sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==} + known-css-properties@0.37.0: + resolution: {integrity: sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==} leven@3.1.0: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} @@ -1954,6 +2429,13 @@ packages: lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + lru-cache@11.5.2: + resolution: {integrity: sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==} + engines: {node: 20 || >=22} + lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -1967,9 +2449,6 @@ packages: make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - makeerror@1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} - math-intrinsics@1.1.0: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} @@ -1996,16 +2475,31 @@ packages: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} + minimatch@10.2.6: + resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==} + engines: {node: 18 || 20 || >=22} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@3.1.5: + resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} + minimatch@9.0.3: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} engines: {node: '>=16 || 14 >=14.17'} + minimatch@9.0.9: + resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} + engines: {node: '>=16 || 14 >=14.17'} + minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} + engines: {node: '>=16 || 14 >=14.17'} + mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true @@ -2018,6 +2512,11 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + napi-postinstall@0.3.4: + resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + hasBin: true + natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -2100,6 +2599,9 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -2123,6 +2625,14 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-scurry@2.0.2: + resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} + engines: {node: 18 || 20 || >=22} + path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -2137,6 +2647,10 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + picomatch@4.0.7: + resolution: {integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==} + engines: {node: '>=12'} + pirates@4.0.7: resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} engines: {node: '>= 6'} @@ -2161,11 +2675,11 @@ packages: ts-node: optional: true - postcss-safe-parser@6.0.0: - resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} - engines: {node: '>=12.0'} + postcss-safe-parser@7.1.0: + resolution: {integrity: sha512-1WzZxRLaAFwEh6Do+zyGpjWV3nGJNxxhuh7Ubu/q1ICImMgZJnLwhoaEpRbG4pJppp2Y1ncL9ffA2f+LhrefQg==} + engines: {node: '>=18.0'} peerDependencies: - postcss: ^8.3.3 + postcss: ^8.4.31 postcss-scss@4.0.9: resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} @@ -2173,8 +2687,8 @@ packages: peerDependencies: postcss: ^8.4.29 - postcss-selector-parser@6.1.2: - resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + postcss-selector-parser@7.1.6: + resolution: {integrity: sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw==} engines: {node: '>=4'} postcss@8.5.6: @@ -2196,20 +2710,16 @@ packages: engines: {node: '>=14'} hasBin: true - pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} + pretty-format@30.5.1: + resolution: {integrity: sha512-byhRAPguVKMQIj4kjJwJ5lAskVhfuiSdiYl/aLTWpgkGEmic2jYhJh1yE9ih8Ox44Xg9ccCT11/S6QrzSJuNrg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - pure-rand@6.1.0: - resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} + pure-rand@7.0.1: + resolution: {integrity: sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==} queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -2217,6 +2727,9 @@ packages: react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + react-is@19.3.0: + resolution: {integrity: sha512-UpMYezM4v5/18F28aC66AEsjXIgE02kyEMH6yLdgLXu/UTfa1Ntwck/nNLrbqJsEXW7gPb0coNO9FQse9WTovA==} + readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} @@ -2253,9 +2766,8 @@ packages: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} - resolve.exports@2.0.3: - resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} - engines: {node: '>=10'} + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} resolve@1.22.10: resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} @@ -2311,6 +2823,11 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.8.5: + resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} + engines: {node: '>=10'} + hasBin: true + set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} @@ -2350,8 +2867,9 @@ packages: signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} @@ -2365,9 +2883,6 @@ packages: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} - source-map-support@0.5.13: - resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} - source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} @@ -2391,6 +2906,10 @@ packages: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + string.prototype.trim@1.2.10: resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} engines: {node: '>= 0.4'} @@ -2407,6 +2926,10 @@ packages: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} + strip-ansi@7.2.0: + resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==} + engines: {node: '>=12'} + strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} @@ -2442,18 +2965,9 @@ packages: svelte-dev-helper@1.1.9: resolution: {integrity: sha512-oU+Xv7Dl4kRU2kdFjsoPLfJfnt5hUhsFUZtuzI3Ku/f2iAFZqBoEuXOqK3N9ngD4dxQOmN4OKWPHVi3NeAeAfQ==} - svelte-eslint-parser@0.33.1: - resolution: {integrity: sha512-vo7xPGTlKBGdLH8T5L64FipvTrqv3OQRx9d2z5X05KKZDlF4rQk8KViZO4flKERY+5BiVdOh7zZ7JGJWo5P0uA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - svelte: ^3.37.0 || ^4.0.0 - peerDependenciesMeta: - svelte: - optional: true - - svelte-eslint-parser@0.43.0: - resolution: {integrity: sha512-GpU52uPKKcVnh8tKN5P4UZpJ/fUDndmq7wfsvoVXsyP+aY0anol7Yqo01fyrlaWGMFfm4av5DyrjlaXdLRJvGA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + svelte-eslint-parser@1.8.1: + resolution: {integrity: sha512-5zgKBqAf6V8Jyrmr1jViksyG4NKT8NheYwkdxRaMRDAqpGWi9wR8ktcGrAZbfMn/PHUp1BWzAp0cYQECkWuAMA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0, pnpm: 10.34.5} peerDependencies: svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 peerDependenciesMeta: @@ -2518,15 +3032,24 @@ packages: resolution: {integrity: sha512-eeEgGc2DtiUil5ANdtd8vPwt9AgaMdnuUFnPft9F5oMvU/FHu5IHFic+p1dR/UOB7XU2mX2yHW+NcTch4DCh5Q==} engines: {node: '>=16'} - test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} + synckit@0.11.13: + resolution: {integrity: sha512-eNRKgb3z66Yp3D2CixVujOUvXLFUTij/zVnV8KRyvFdQwpz7I5DS8UfRkTeLzb64u+dkzDSdelE24izu+zSSUg==} + engines: {node: ^14.18.0 || >=16.0.0} + + tapable@2.3.3: + resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} + engines: {node: '>=6'} + + test-exclude@7.0.2: + resolution: {integrity: sha512-u9E6A+ZDYdp7a4WnarkXPZOx8Ilz46+kby6p1yZ8zsGTz9gYa6FIS7lj2oezzNKmtdyyJNNmmXDppga5GB7kSw==} + engines: {node: '>=18'} text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - tmpl@1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + tinyglobby@0.2.17: + resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} + engines: {node: '>=12.0.0'} to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} @@ -2538,8 +3061,14 @@ packages: peerDependencies: typescript: '>=4.2.0' - ts-jest@29.4.1: - resolution: {integrity: sha512-SaeUtjfpg9Uqu8IbeDKtdaS0g8lS6FT6OzM3ezrDfErPJPHNDo/Ey+VFGP1bQIDfagYDLyRpd7O15XpG1Es2Uw==} + ts-api-utils@2.5.0: + resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + + ts-jest@29.4.12: + resolution: {integrity: sha512-Ov6ClY53Fflh6BGAnY2DlTq1hYDrTycz2PVTXBWFW2CU+9zrEqAp9fWdGXl42EXO5RLSFAcAZ2JFKbP+zBTFfw==} engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -2550,7 +3079,7 @@ packages: esbuild: '*' jest: ^29.0.0 || ^30.0.0 jest-util: ^29.0.0 || ^30.0.0 - typescript: '>=4.3 <6' + typescript: '>=4.3 <7' peerDependenciesMeta: '@babel/core': optional: true @@ -2568,6 +3097,9 @@ packages: tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -2604,6 +3136,13 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} + typescript-eslint@8.70.0: + resolution: {integrity: sha512-P/W5cz70/cQAuKfY3xwQMWWTV7BvJ0mAQmi+9mBcsVPaBUpd6Ohpa+fECv9rBFrQcig86jAiNBFNWUqnTjr4pw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + typescript@5.9.3: resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} @@ -2625,6 +3164,9 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} + unrs-resolver@1.12.2: + resolution: {integrity: sha512-dmlRxBJJayXjqTwC+JtF1HhJmgf3ftQ3YejFcZrf4+KKtJv0qDsK1pjqaaVjG7wJ5NJ6UVP1OqRMQ71Z4C3rxQ==} + update-browserslist-db@1.1.3: resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} hasBin: true @@ -2641,9 +3183,6 @@ packages: resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} engines: {node: '>=10.12.0'} - walker@1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - which-boxed-primitive@1.1.1: resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} engines: {node: '>= 0.4'} @@ -2676,12 +3215,16 @@ packages: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - write-file-atomic@4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} @@ -2902,6 +3445,22 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} + '@emnapi/core@1.10.0': + dependencies: + '@emnapi/wasi-threads': 1.2.1 + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.10.0': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/wasi-threads@1.2.1': + dependencies: + tslib: 2.8.1 + optional: true + '@esbuild/aix-ppc64@0.25.10': optional: true @@ -2980,13 +3539,47 @@ snapshots: '@esbuild/win32-x64@0.25.10': optional: true + '@eslint-community/eslint-plugin-eslint-comments@4.8.1(eslint@9.39.5)': + dependencies: + escape-string-regexp: 4.0.0 + eslint: 9.39.5 + ignore: 7.0.9 + + '@eslint-community/eslint-utils@4.10.1(eslint@9.39.5)': + dependencies: + eslint: 9.39.5 + eslint-visitor-keys: 3.4.3 + '@eslint-community/eslint-utils@4.9.0(eslint@8.57.1)': dependencies: eslint: 8.57.1 eslint-visitor-keys: 3.4.3 + '@eslint-community/eslint-utils@4.9.0(eslint@9.39.5)': + dependencies: + eslint: 9.39.5 + eslint-visitor-keys: 3.4.3 + '@eslint-community/regexpp@4.12.1': {} + '@eslint-community/regexpp@4.12.2': {} + + '@eslint/config-array@0.21.2': + dependencies: + '@eslint/object-schema': 2.1.7 + debug: 4.4.1 + minimatch: 3.1.5 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.4.2': + dependencies: + '@eslint/core': 0.17.0 + + '@eslint/core@0.17.0': + dependencies: + '@types/json-schema': 7.0.15 + '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 @@ -3001,8 +3594,43 @@ snapshots: transitivePeerDependencies: - supports-color + '@eslint/eslintrc@3.3.7': + dependencies: + ajv: 6.15.0 + debug: 4.4.1 + espree: 10.4.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.3.2 + minimatch: 3.1.5 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + '@eslint/js@8.57.1': {} + '@eslint/js@9.39.5': {} + + '@eslint/object-schema@2.1.7': {} + + '@eslint/plugin-kit@0.4.1': + dependencies: + '@eslint/core': 0.17.0 + levn: 0.4.1 + + '@humanfs/core@0.19.2': + dependencies: + '@humanfs/types': 0.15.0 + + '@humanfs/node@0.16.8': + dependencies: + '@humanfs/core': 0.19.2 + '@humanfs/types': 0.15.0 + '@humanwhocodes/retry': 0.4.3 + + '@humanfs/types@0.15.0': {} + '@humanwhocodes/config-array@0.13.0': dependencies: '@humanwhocodes/object-schema': 2.0.3 @@ -3015,6 +3643,17 @@ snapshots: '@humanwhocodes/object-schema@2.0.3': {} + '@humanwhocodes/retry@0.4.3': {} + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.2.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + '@istanbuljs/load-nyc-config@1.1.0': dependencies: camelcase: 5.3.1 @@ -3025,162 +3664,179 @@ snapshots: '@istanbuljs/schema@0.1.3': {} - '@jest/console@29.7.0': + '@jest/console@30.5.1': dependencies: - '@jest/types': 29.6.3 + '@jest/types': 30.5.1 '@types/node': 24.13.3 chalk: 4.1.2 - jest-message-util: 29.7.0 - jest-util: 29.7.0 + jest-message-util: 30.5.1 + jest-util: 30.5.1 slash: 3.0.0 - '@jest/core@29.7.0': + '@jest/core@30.5.1': dependencies: - '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 + '@jest/console': 30.5.1 + '@jest/pattern': 30.5.0 + '@jest/reporters': 30.5.1 + '@jest/test-result': 30.5.1 + '@jest/transform': 30.5.1 + '@jest/types': 30.5.1 '@types/node': 24.13.3 ansi-escapes: 4.3.2 chalk: 4.1.2 - ci-info: 3.9.0 - exit: 0.1.2 + ci-info: 4.4.0 + exit-x: 0.2.2 + fast-json-stable-stringify: 2.1.0 graceful-fs: 4.2.11 - jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@24.13.3) - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-resolve-dependencies: 29.7.0 - jest-runner: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - jest-watcher: 29.7.0 - micromatch: 4.0.8 - pretty-format: 29.7.0 + jest-changed-files: 30.5.1 + jest-config: 30.5.1(@types/node@24.13.3) + jest-haste-map: 30.5.1 + jest-message-util: 30.5.1 + jest-regex-util: 30.5.0 + jest-resolve: 30.5.1 + jest-resolve-dependencies: 30.5.1 + jest-runner: 30.5.1 + jest-runtime: 30.5.1 + jest-snapshot: 30.5.1 + jest-util: 30.5.1 + jest-validate: 30.5.1 + jest-watcher: 30.5.1 + pretty-format: 30.5.1 slash: 3.0.0 - strip-ansi: 6.0.1 transitivePeerDependencies: - babel-plugin-macros + - esbuild-register - supports-color - ts-node - '@jest/environment@29.7.0': + '@jest/diff-sequences@30.5.0': {} + + '@jest/environment@30.5.1': dependencies: - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 + '@jest/fake-timers': 30.5.1 + '@jest/types': 30.5.1 '@types/node': 24.13.3 - jest-mock: 29.7.0 + jest-mock: 30.5.1 - '@jest/expect-utils@29.7.0': + '@jest/expect-utils@30.5.1': dependencies: - jest-get-type: 29.6.3 + '@jest/get-type': 30.5.0 - '@jest/expect@29.7.0': + '@jest/expect@30.5.1': dependencies: - expect: 29.7.0 - jest-snapshot: 29.7.0 + expect: 30.5.1 + jest-snapshot: 30.5.1 transitivePeerDependencies: - supports-color - '@jest/fake-timers@29.7.0': + '@jest/fake-timers@30.5.1': dependencies: - '@jest/types': 29.6.3 - '@sinonjs/fake-timers': 10.3.0 + '@jest/types': 30.5.1 + '@sinonjs/fake-timers': 15.4.0 '@types/node': 24.13.3 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-util: 29.7.0 + jest-message-util: 30.5.1 + jest-mock: 30.5.1 + jest-util: 30.5.1 + + '@jest/get-type@30.5.0': {} - '@jest/globals@29.7.0': + '@jest/globals@30.5.1': dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/types': 29.6.3 - jest-mock: 29.7.0 + '@jest/environment': 30.5.1 + '@jest/expect': 30.5.1 + '@jest/types': 30.5.1 + jest-mock: 30.5.1 transitivePeerDependencies: - supports-color - '@jest/reporters@29.7.0': + '@jest/pattern@30.5.0': + dependencies: + '@types/node': 24.13.3 + jest-regex-util: 30.5.0 + + '@jest/reporters@30.5.1': dependencies: '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.30 + '@jest/console': 30.5.1 + '@jest/test-result': 30.5.1 + '@jest/transform': 30.5.1 + '@jest/types': 30.5.1 + '@jridgewell/trace-mapping': 0.3.31 '@types/node': 24.13.3 chalk: 4.1.2 collect-v8-coverage: 1.0.2 - exit: 0.1.2 - glob: 7.2.3 + exit-x: 0.2.2 + glob: 13.0.6 graceful-fs: 4.2.11 istanbul-lib-coverage: 3.2.2 istanbul-lib-instrument: 6.0.3 istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 4.0.1 + istanbul-lib-source-maps: 5.0.6 istanbul-reports: 3.2.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - jest-worker: 29.7.0 + jest-message-util: 30.5.1 + jest-util: 30.5.1 + jest-worker: 30.5.1 slash: 3.0.0 string-length: 4.0.2 - strip-ansi: 6.0.1 v8-to-istanbul: 9.3.0 transitivePeerDependencies: - supports-color - '@jest/schemas@29.6.3': + '@jest/schemas@30.5.0': dependencies: - '@sinclair/typebox': 0.27.8 + '@sinclair/typebox': 0.34.52 - '@jest/source-map@29.6.3': + '@jest/snapshot-utils@30.5.1': dependencies: - '@jridgewell/trace-mapping': 0.3.30 + '@jest/types': 30.5.1 + chalk: 4.1.2 + graceful-fs: 4.2.11 + natural-compare: 1.4.0 + + '@jest/source-map@30.5.0': + dependencies: + '@jridgewell/trace-mapping': 0.3.31 callsites: 3.1.0 + convert-source-map: 2.0.0 graceful-fs: 4.2.11 - '@jest/test-result@29.7.0': + '@jest/test-result@30.5.1': dependencies: - '@jest/console': 29.7.0 - '@jest/types': 29.6.3 + '@jest/console': 30.5.1 + '@jest/types': 30.5.1 '@types/istanbul-lib-coverage': 2.0.6 collect-v8-coverage: 1.0.2 - '@jest/test-sequencer@29.7.0': + '@jest/test-sequencer@30.5.1': dependencies: - '@jest/test-result': 29.7.0 + '@jest/test-result': 30.5.1 graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 + jest-haste-map: 30.5.1 slash: 3.0.0 - '@jest/transform@29.7.0': + '@jest/transform@30.5.1': dependencies: '@babel/core': 7.28.4 - '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.30 - babel-plugin-istanbul: 6.1.1 + '@jest/types': 30.5.1 + '@jridgewell/trace-mapping': 0.3.31 + babel-plugin-istanbul: 8.0.0 chalk: 4.1.2 convert-source-map: 2.0.0 fast-json-stable-stringify: 2.1.0 graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 - micromatch: 4.0.8 + jest-haste-map: 30.5.1 + jest-regex-util: 30.5.0 + jest-util: 30.5.1 pirates: 4.0.7 slash: 3.0.0 - write-file-atomic: 4.0.2 + write-file-atomic: 5.0.1 transitivePeerDependencies: - supports-color - '@jest/types@29.6.3': + '@jest/types@30.5.1': dependencies: - '@jest/schemas': 29.6.3 + '@jest/pattern': 30.5.0 + '@jest/schemas': 30.5.0 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 '@types/node': 24.13.3 @@ -3206,6 +3862,18 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@napi-rs/wasm-runtime@1.2.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': + dependencies: + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@tybys/wasm-util': 0.10.4 + optional: true + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -3221,42 +3889,78 @@ snapshots: '@parcel/watcher-android-arm64@2.5.1': optional: true + '@parcel/watcher-android-arm64@2.6.0': + optional: true + '@parcel/watcher-darwin-arm64@2.5.1': optional: true + '@parcel/watcher-darwin-arm64@2.6.0': + optional: true + '@parcel/watcher-darwin-x64@2.5.1': optional: true + '@parcel/watcher-darwin-x64@2.6.0': + optional: true + '@parcel/watcher-freebsd-x64@2.5.1': optional: true + '@parcel/watcher-freebsd-x64@2.6.0': + optional: true + '@parcel/watcher-linux-arm-glibc@2.5.1': optional: true + '@parcel/watcher-linux-arm-glibc@2.6.0': + optional: true + '@parcel/watcher-linux-arm-musl@2.5.1': optional: true + '@parcel/watcher-linux-arm-musl@2.6.0': + optional: true + '@parcel/watcher-linux-arm64-glibc@2.5.1': optional: true + '@parcel/watcher-linux-arm64-glibc@2.6.0': + optional: true + '@parcel/watcher-linux-arm64-musl@2.5.1': optional: true + '@parcel/watcher-linux-arm64-musl@2.6.0': + optional: true + '@parcel/watcher-linux-x64-glibc@2.5.1': optional: true + '@parcel/watcher-linux-x64-glibc@2.6.0': + optional: true + '@parcel/watcher-linux-x64-musl@2.5.1': optional: true + '@parcel/watcher-linux-x64-musl@2.6.0': + optional: true + '@parcel/watcher-win32-arm64@2.5.1': optional: true + '@parcel/watcher-win32-arm64@2.6.0': + optional: true + '@parcel/watcher-win32-ia32@2.5.1': optional: true '@parcel/watcher-win32-x64@2.5.1': optional: true + '@parcel/watcher-win32-x64@2.6.0': + optional: true + '@parcel/watcher@2.5.1': dependencies: detect-libc: 1.0.3 @@ -3279,18 +3983,58 @@ snapshots: '@parcel/watcher-win32-x64': 2.5.1 optional: true + '@parcel/watcher@2.6.0': + dependencies: + detect-libc: 2.1.2 + is-glob: 4.0.3 + node-addon-api: 7.1.1 + picomatch: 4.0.7 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.6.0 + '@parcel/watcher-darwin-arm64': 2.6.0 + '@parcel/watcher-darwin-x64': 2.6.0 + '@parcel/watcher-freebsd-x64': 2.6.0 + '@parcel/watcher-linux-arm-glibc': 2.6.0 + '@parcel/watcher-linux-arm-musl': 2.6.0 + '@parcel/watcher-linux-arm64-glibc': 2.6.0 + '@parcel/watcher-linux-arm64-musl': 2.6.0 + '@parcel/watcher-linux-x64-glibc': 2.6.0 + '@parcel/watcher-linux-x64-musl': 2.6.0 + '@parcel/watcher-win32-arm64': 2.6.0 + '@parcel/watcher-win32-x64': 2.6.0 + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@pkgr/core@0.3.6': {} + '@rtsao/scc@1.1.0': {} - '@sinclair/typebox@0.27.8': {} + '@sinclair/typebox@0.34.52': {} '@sinonjs/commons@3.0.1': dependencies: type-detect: 4.0.8 - '@sinonjs/fake-timers@10.3.0': + '@sinonjs/fake-timers@15.4.0': dependencies: '@sinonjs/commons': 3.0.1 + '@stylistic/eslint-plugin@5.10.0(eslint@9.39.5)': + dependencies: + '@eslint-community/eslint-utils': 4.10.1(eslint@9.39.5) + '@typescript-eslint/types': 8.70.0 + eslint: 9.39.5 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + estraverse: 5.3.0 + picomatch: 4.0.7 + + '@tybys/wasm-util@0.10.4': + dependencies: + tslib: 2.8.1 + optional: true + '@types/babel__core@7.20.5': dependencies: '@babel/parser': 7.28.4 @@ -3314,10 +4058,6 @@ snapshots: '@types/estree@1.0.8': {} - '@types/graceful-fs@4.1.9': - dependencies: - '@types/node': 24.13.3 - '@types/istanbul-lib-coverage@2.0.6': {} '@types/istanbul-lib-report@3.0.3': @@ -3328,10 +4068,10 @@ snapshots: dependencies: '@types/istanbul-lib-report': 3.0.3 - '@types/jest@29.5.14': + '@types/jest@30.0.0': dependencies: - expect: 29.7.0 - pretty-format: 29.7.0 + expect: 30.5.1 + pretty-format: 30.5.1 '@types/json-schema@7.0.15': {} @@ -3373,6 +4113,22 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/eslint-plugin@8.70.0(@typescript-eslint/parser@8.70.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3)': + dependencies: + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.70.0(eslint@9.39.5)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.70.0 + '@typescript-eslint/type-utils': 8.70.0(eslint@9.39.5)(typescript@5.9.3) + '@typescript-eslint/utils': 8.70.0(eslint@9.39.5)(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.70.0 + eslint: 9.39.5 + ignore: 7.0.9 + natural-compare: 1.4.0 + ts-api-utils: 2.5.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3)': dependencies: '@typescript-eslint/scope-manager': 6.21.0 @@ -3386,11 +4142,41 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/parser@8.70.0(eslint@9.39.5)(typescript@5.9.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.70.0 + '@typescript-eslint/types': 8.70.0 + '@typescript-eslint/typescript-estree': 8.70.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.70.0 + debug: 4.4.3 + eslint: 9.39.5 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.70.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.70.0(typescript@5.9.3) + '@typescript-eslint/types': 8.70.0 + debug: 4.4.3 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/scope-manager@6.21.0': dependencies: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 + '@typescript-eslint/scope-manager@8.70.0': + dependencies: + '@typescript-eslint/types': 8.70.0 + '@typescript-eslint/visitor-keys': 8.70.0 + + '@typescript-eslint/tsconfig-utils@8.70.0(typescript@5.9.3)': + dependencies: + typescript: 5.9.3 + '@typescript-eslint/type-utils@6.21.0(eslint@8.57.1)(typescript@5.9.3)': dependencies: '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.9.3) @@ -3403,43 +4189,158 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@6.21.0': {} + '@typescript-eslint/type-utils@8.70.0(eslint@9.39.5)(typescript@5.9.3)': + dependencies: + '@typescript-eslint/types': 8.70.0 + '@typescript-eslint/typescript-estree': 8.70.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.70.0(eslint@9.39.5)(typescript@5.9.3) + debug: 4.4.3 + eslint: 9.39.5 + ts-api-utils: 2.5.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@6.21.0': {} + + '@typescript-eslint/types@8.70.0': {} + + '@typescript-eslint/typescript-estree@6.21.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.4.1 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.7.2 + ts-api-utils: 1.4.3(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/typescript-estree@8.70.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/project-service': 8.70.0(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.70.0(typescript@5.9.3) + '@typescript-eslint/types': 8.70.0 + '@typescript-eslint/visitor-keys': 8.70.0 + debug: 4.4.3 + minimatch: 10.2.6 + semver: 7.8.5 + tinyglobby: 0.2.17 + ts-api-utils: 2.5.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@6.21.0(eslint@8.57.1)(typescript@5.9.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.1) + '@types/json-schema': 7.0.15 + '@types/semver': 7.7.1 + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.9.3) + eslint: 8.57.1 + semver: 7.7.2 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/utils@8.70.0(eslint@9.39.5)(typescript@5.9.3)': + dependencies: + '@eslint-community/eslint-utils': 4.10.1(eslint@9.39.5) + '@typescript-eslint/scope-manager': 8.70.0 + '@typescript-eslint/types': 8.70.0 + '@typescript-eslint/typescript-estree': 8.70.0(typescript@5.9.3) + eslint: 9.39.5 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@6.21.0': + dependencies: + '@typescript-eslint/types': 6.21.0 + eslint-visitor-keys: 3.4.3 + + '@typescript-eslint/visitor-keys@8.70.0': + dependencies: + '@typescript-eslint/types': 8.70.0 + eslint-visitor-keys: 5.0.1 + + '@ungap/structured-clone@1.3.0': {} + + '@unrs/resolver-binding-android-arm-eabi@1.12.2': + optional: true + + '@unrs/resolver-binding-android-arm64@1.12.2': + optional: true + + '@unrs/resolver-binding-darwin-arm64@1.12.2': + optional: true + + '@unrs/resolver-binding-darwin-x64@1.12.2': + optional: true + + '@unrs/resolver-binding-freebsd-x64@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-arm-musleabihf@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-arm64-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-arm64-musl@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-loong64-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-loong64-musl@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-ppc64-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-riscv64-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-riscv64-musl@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-s390x-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-x64-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-x64-musl@1.12.2': + optional: true - '@typescript-eslint/typescript-estree@6.21.0(typescript@5.9.3)': - dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.4.1 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.7.2 - ts-api-utils: 1.4.3(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color + '@unrs/resolver-binding-openharmony-arm64@1.12.2': + optional: true - '@typescript-eslint/utils@6.21.0(eslint@8.57.1)(typescript@5.9.3)': + '@unrs/resolver-binding-wasm32-wasi@1.12.2': dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.1) - '@types/json-schema': 7.0.15 - '@types/semver': 7.7.1 - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.9.3) - eslint: 8.57.1 - semver: 7.7.2 - transitivePeerDependencies: - - supports-color - - typescript + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@napi-rs/wasm-runtime': 1.2.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + optional: true - '@typescript-eslint/visitor-keys@6.21.0': - dependencies: - '@typescript-eslint/types': 6.21.0 - eslint-visitor-keys: 3.4.3 + '@unrs/resolver-binding-win32-arm64-msvc@1.12.2': + optional: true - '@ungap/structured-clone@1.3.0': {} + '@unrs/resolver-binding-win32-ia32-msvc@1.12.2': + optional: true + + '@unrs/resolver-binding-win32-x64-msvc@1.12.2': + optional: true acorn-jsx@5.3.2(acorn@8.15.0): dependencies: @@ -3454,18 +4355,29 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 + ajv@6.15.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + ansi-escapes@4.3.2: dependencies: type-fest: 0.21.3 ansi-regex@5.0.1: {} + ansi-regex@6.3.0: {} + ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 ansi-styles@5.2.0: {} + ansi-styles@6.2.3: {} + anymatch@3.1.3: dependencies: normalize-path: 3.0.0 @@ -3539,35 +4451,32 @@ snapshots: axobject-query@4.1.0: {} - babel-jest@29.7.0(@babel/core@7.28.4): + babel-jest@30.5.1(@babel/core@7.28.4): dependencies: '@babel/core': 7.28.4 - '@jest/transform': 29.7.0 + '@jest/transform': 30.5.1 '@types/babel__core': 7.20.5 - babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.28.4) + babel-plugin-istanbul: 8.0.0 + babel-preset-jest: 30.5.0(@babel/core@7.28.4) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 transitivePeerDependencies: - supports-color - babel-plugin-istanbul@6.1.1: + babel-plugin-istanbul@8.0.0: dependencies: '@babel/helper-plugin-utils': 7.27.1 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: 5.2.1 - test-exclude: 6.0.0 + istanbul-lib-instrument: 6.0.3 + test-exclude: 7.0.2 transitivePeerDependencies: - supports-color - babel-plugin-jest-hoist@29.6.3: + babel-plugin-jest-hoist@30.5.0: dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.28.4 '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.28.0 babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.4): dependencies: @@ -3588,14 +4497,16 @@ snapshots: '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.4) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.4) - babel-preset-jest@29.6.3(@babel/core@7.28.4): + babel-preset-jest@30.5.0(@babel/core@7.28.4): dependencies: '@babel/core': 7.28.4 - babel-plugin-jest-hoist: 29.6.3 + babel-plugin-jest-hoist: 30.5.0 babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.4) balanced-match@1.0.2: {} + balanced-match@4.0.4: {} + big.js@5.2.2: {} binary-extensions@2.3.0: {} @@ -3609,6 +4520,10 @@ snapshots: dependencies: balanced-match: 1.0.2 + brace-expansion@5.0.12: + dependencies: + balanced-match: 4.0.4 + braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -3630,8 +4545,6 @@ snapshots: buffer-crc32@1.0.0: {} - buffer-from@1.1.2: {} - builtins@5.1.0: dependencies: semver: 7.7.2 @@ -3684,9 +4597,9 @@ snapshots: dependencies: readdirp: 4.1.2 - ci-info@3.9.0: {} + ci-info@4.4.0: {} - cjs-module-lexer@1.4.3: {} + cjs-module-lexer@2.2.1: {} cliui@8.0.1: dependencies: @@ -3716,21 +4629,6 @@ snapshots: convert-source-map@2.0.0: {} - create-jest@29.7.0(@types/node@24.13.3): - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@24.13.3) - jest-util: 29.7.0 - prompts: 2.4.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - cross-spawn@7.0.6: dependencies: path-key: 3.1.1 @@ -3770,6 +4668,10 @@ snapshots: dependencies: ms: 2.1.3 + debug@4.4.3: + dependencies: + ms: 2.1.3 + dedent-js@1.0.1: {} dedent@1.7.0: {} @@ -3795,9 +4697,9 @@ snapshots: detect-libc@1.0.3: optional: true - detect-newline@3.1.0: {} + detect-libc@2.1.2: {} - diff-sequences@29.6.3: {} + detect-newline@3.1.0: {} dir-glob@3.0.1: dependencies: @@ -3817,14 +4719,23 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 + eastasianwidth@0.2.0: {} + electron-to-chromium@1.5.214: {} emittery@0.13.1: {} emoji-regex@8.0.0: {} + emoji-regex@9.2.2: {} + emojis-list@3.0.0: {} + enhanced-resolve@5.25.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.3.3 + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 @@ -3890,6 +4801,8 @@ snapshots: es-errors@1.3.0: {} + es-module-lexer@2.3.2: {} + es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 @@ -3962,11 +4875,24 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-compat-utils@0.5.1(eslint@8.57.1): + eslint-compat-utils@0.5.1(eslint@9.39.5): dependencies: - eslint: 8.57.1 + eslint: 9.39.5 semver: 7.7.2 + eslint-config-love@155.0.0(eslint@9.39.5)(typescript@5.9.3): + dependencies: + '@eslint-community/eslint-plugin-eslint-comments': 4.8.1(eslint@9.39.5) + '@typescript-eslint/utils': 8.70.0(eslint@9.39.5)(typescript@5.9.3) + eslint: 9.39.5 + eslint-plugin-n: 18.3.0(eslint@9.39.5)(typescript@5.9.3) + eslint-plugin-promise: 7.3.0(eslint@9.39.5) + typescript: 5.9.3 + typescript-eslint: 8.70.0(eslint@9.39.5)(typescript@5.9.3) + transitivePeerDependencies: + - supports-color + - ts-declaration-location + eslint-config-standard-with-typescript@40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3): dependencies: '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) @@ -3999,11 +4925,12 @@ snapshots: optionalDependencies: eslint: 8.57.1 - eslint-plugin-es@3.0.1(eslint@8.57.1): + eslint-plugin-es-x@7.8.0(eslint@9.39.5): dependencies: - eslint: 8.57.1 - eslint-utils: 2.1.0 - regexpp: 3.2.0 + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.5) + '@eslint-community/regexpp': 4.12.1 + eslint: 9.39.5 + eslint-compat-utils: 0.5.1(eslint@9.39.5) eslint-plugin-es@4.1.0(eslint@8.57.1): dependencies: @@ -4046,34 +4973,42 @@ snapshots: resolve: 1.22.10 semver: 7.7.2 - eslint-plugin-node@11.1.0(eslint@8.57.1): + eslint-plugin-n@18.3.0(eslint@9.39.5)(typescript@5.9.3): dependencies: - eslint: 8.57.1 - eslint-plugin-es: 3.0.1(eslint@8.57.1) - eslint-utils: 2.1.0 + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.5) + enhanced-resolve: 5.25.1 + eslint: 9.39.5 + eslint-plugin-es-x: 7.8.0(eslint@9.39.5) + get-tsconfig: 4.14.3 + globals: 15.15.0 + globrex: 0.1.2 ignore: 5.3.2 - minimatch: 3.1.2 - resolve: 1.22.10 - semver: 6.3.1 + semver: 7.7.2 + optionalDependencies: + typescript: 5.9.3 eslint-plugin-promise@6.6.0(eslint@8.57.1): dependencies: eslint: 8.57.1 - eslint-plugin-svelte@2.46.1(eslint@8.57.1)(svelte@4.2.20): + eslint-plugin-promise@7.3.0(eslint@9.39.5): dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.1) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.5) + eslint: 9.39.5 + + eslint-plugin-svelte@3.23.0(eslint@9.39.5)(svelte@4.2.20): + dependencies: + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.5) '@jridgewell/sourcemap-codec': 1.5.5 - eslint: 8.57.1 - eslint-compat-utils: 0.5.1(eslint@8.57.1) + eslint: 9.39.5 esutils: 2.0.3 - known-css-properties: 0.35.0 + globals: 16.5.0 + known-css-properties: 0.37.0 postcss: 8.5.6 postcss-load-config: 3.1.4(postcss@8.5.6) - postcss-safe-parser: 6.0.0(postcss@8.5.6) - postcss-selector-parser: 6.1.2 + postcss-safe-parser: 7.1.0(postcss@8.5.6) semver: 7.7.2 - svelte-eslint-parser: 0.43.0(svelte@4.2.20) + svelte-eslint-parser: 1.8.1(svelte@4.2.20) optionalDependencies: svelte: 4.2.20 transitivePeerDependencies: @@ -4084,6 +5019,11 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 + eslint-scope@8.4.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + eslint-utils@2.1.0: dependencies: eslint-visitor-keys: 1.3.0 @@ -4099,6 +5039,10 @@ snapshots: eslint-visitor-keys@3.4.3: {} + eslint-visitor-keys@4.2.1: {} + + eslint-visitor-keys@5.0.1: {} + eslint@8.57.1: dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.1) @@ -4142,6 +5086,51 @@ snapshots: transitivePeerDependencies: - supports-color + eslint@9.39.5: + dependencies: + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.5) + '@eslint-community/regexpp': 4.12.1 + '@eslint/config-array': 0.21.2 + '@eslint/config-helpers': 0.4.2 + '@eslint/core': 0.17.0 + '@eslint/eslintrc': 3.3.7 + '@eslint/js': 9.39.5 + '@eslint/plugin-kit': 0.4.1 + '@humanfs/node': 0.16.8 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.8 + ajv: 6.15.0 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.1 + escape-string-regexp: 4.0.0 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.5 + natural-compare: 1.4.0 + optionator: 0.9.4 + transitivePeerDependencies: + - supports-color + + espree@10.4.0: + dependencies: + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + eslint-visitor-keys: 4.2.1 + espree@9.6.1: dependencies: acorn: 8.15.0 @@ -4178,15 +5167,16 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 2.0.0 - exit@0.1.2: {} + exit-x@0.2.2: {} - expect@29.7.0: + expect@30.5.1: dependencies: - '@jest/expect-utils': 29.7.0 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 + '@jest/expect-utils': 30.5.1 + '@jest/get-type': 30.5.0 + jest-matcher-utils: 30.5.1 + jest-message-util: 30.5.1 + jest-mock: 30.5.1 + jest-util: 30.5.1 fast-deep-equal@3.1.3: {} @@ -4210,10 +5200,18 @@ snapshots: dependencies: bser: 2.1.1 + fdir@6.5.0(picomatch@4.0.7): + optionalDependencies: + picomatch: 4.0.7 + file-entry-cache@6.0.1: dependencies: flat-cache: 3.2.0 + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -4234,12 +5232,22 @@ snapshots: keyv: 4.5.4 rimraf: 3.0.2 + flat-cache@4.0.1: + dependencies: + flatted: 3.3.3 + keyv: 4.5.4 + flatted@3.3.3: {} for-each@0.3.5: dependencies: is-callable: 1.2.7 + foreground-child@3.3.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + fs-extra@10.1.0: dependencies: graceful-fs: 4.2.11 @@ -4298,6 +5306,10 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 + get-tsconfig@4.14.3: + dependencies: + resolve-pkg-maps: 1.0.0 + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -4306,6 +5318,21 @@ snapshots: dependencies: is-glob: 4.0.3 + glob@10.5.0: + dependencies: + foreground-child: 3.3.1 + jackspeak: 3.4.3 + minimatch: 9.0.9 + minipass: 7.1.3 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + + glob@13.0.6: + dependencies: + minimatch: 10.2.6 + minipass: 7.1.3 + path-scurry: 2.0.2 + glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -4319,6 +5346,12 @@ snapshots: dependencies: type-fest: 0.20.2 + globals@14.0.0: {} + + globals@15.15.0: {} + + globals@16.5.0: {} + globalthis@1.0.4: dependencies: define-properties: 1.2.1 @@ -4333,6 +5366,8 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 + globrex@0.1.2: {} + gopd@1.2.0: {} graceful-fs@4.2.11: {} @@ -4376,6 +5411,8 @@ snapshots: ignore@5.3.2: {} + ignore@7.0.9: {} + immutable@5.1.3: {} import-fresh@3.3.1: @@ -4535,16 +5572,6 @@ snapshots: istanbul-lib-coverage@3.2.2: {} - istanbul-lib-instrument@5.2.1: - dependencies: - '@babel/core': 7.28.4 - '@babel/parser': 7.28.4 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.2 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - istanbul-lib-instrument@6.0.3: dependencies: '@babel/core': 7.28.4 @@ -4561,11 +5588,11 @@ snapshots: make-dir: 4.0.0 supports-color: 7.2.0 - istanbul-lib-source-maps@4.0.1: + istanbul-lib-source-maps@5.0.6: dependencies: + '@jridgewell/trace-mapping': 0.3.31 debug: 4.4.1 istanbul-lib-coverage: 3.2.2 - source-map: 0.6.1 transitivePeerDependencies: - supports-color @@ -4574,79 +5601,86 @@ snapshots: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 - jest-changed-files@29.7.0: + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jest-changed-files@30.5.1: dependencies: execa: 5.1.1 - jest-util: 29.7.0 + jest-util: 30.5.1 p-limit: 3.1.0 - jest-circus@29.7.0: + jest-circus@30.5.1: dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 + '@jest/environment': 30.5.1 + '@jest/expect': 30.5.1 + '@jest/test-result': 30.5.1 + '@jest/types': 30.5.1 '@types/node': 24.13.3 chalk: 4.1.2 co: 4.6.0 dedent: 1.7.0 is-generator-fn: 2.1.0 - jest-each: 29.7.0 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 + jest-each: 30.5.1 + jest-matcher-utils: 30.5.1 + jest-message-util: 30.5.1 + jest-runtime: 30.5.1 + jest-snapshot: 30.5.1 + jest-util: 30.5.1 p-limit: 3.1.0 - pretty-format: 29.7.0 - pure-rand: 6.1.0 + pretty-format: 30.5.1 + pure-rand: 7.0.1 slash: 3.0.0 stack-utils: 2.0.6 transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@24.13.3): + jest-cli@30.5.1(@types/node@24.13.3): dependencies: - '@jest/core': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 + '@jest/core': 30.5.1 + '@jest/test-result': 30.5.1 + '@jest/types': 30.5.1 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@24.13.3) - exit: 0.1.2 + exit-x: 0.2.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@24.13.3) - jest-util: 29.7.0 - jest-validate: 29.7.0 + jest-config: 30.5.1(@types/node@24.13.3) + jest-util: 30.5.1 + jest-validate: 30.5.1 yargs: 17.7.2 transitivePeerDependencies: - '@types/node' - babel-plugin-macros + - esbuild-register - supports-color - ts-node - jest-config@29.7.0(@types/node@24.13.3): + jest-config@30.5.1(@types/node@24.13.3): dependencies: '@babel/core': 7.28.4 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.4) + '@jest/get-type': 30.5.0 + '@jest/pattern': 30.5.0 + '@jest/test-sequencer': 30.5.1 + '@jest/types': 30.5.1 + babel-jest: 30.5.1(@babel/core@7.28.4) chalk: 4.1.2 - ci-info: 3.9.0 + ci-info: 4.4.0 deepmerge: 4.3.1 - glob: 7.2.3 + glob: 13.0.6 graceful-fs: 4.2.11 - jest-circus: 29.7.0 - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - micromatch: 4.0.8 + jest-circus: 30.5.1 + jest-docblock: 30.5.0 + jest-environment-node: 30.5.1 + jest-regex-util: 30.5.0 + jest-resolve: 30.5.1 + jest-runner: 30.5.1 + jest-util: 30.5.1 + jest-validate: 30.5.1 parse-json: 5.2.0 - pretty-format: 29.7.0 + pretty-format: 30.5.1 slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: @@ -4655,230 +5689,228 @@ snapshots: - babel-plugin-macros - supports-color - jest-diff@29.7.0: + jest-diff@30.5.1: dependencies: + '@jest/diff-sequences': 30.5.0 + '@jest/get-type': 30.5.0 chalk: 4.1.2 - diff-sequences: 29.6.3 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 + pretty-format: 30.5.1 - jest-docblock@29.7.0: + jest-docblock@30.5.0: dependencies: detect-newline: 3.1.0 - jest-each@29.7.0: + jest-each@30.5.1: dependencies: - '@jest/types': 29.6.3 + '@jest/get-type': 30.5.0 + '@jest/types': 30.5.1 chalk: 4.1.2 - jest-get-type: 29.6.3 - jest-util: 29.7.0 - pretty-format: 29.7.0 + jest-util: 30.5.1 + pretty-format: 30.5.1 - jest-environment-node@29.7.0: + jest-environment-node@30.5.1: dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 + '@jest/environment': 30.5.1 + '@jest/fake-timers': 30.5.1 + '@jest/types': 30.5.1 '@types/node': 24.13.3 - jest-mock: 29.7.0 - jest-util: 29.7.0 + jest-mock: 30.5.1 + jest-util: 30.5.1 + jest-validate: 30.5.1 - jest-get-type@29.6.3: {} - - jest-haste-map@29.7.0: + jest-haste-map@30.5.1: dependencies: - '@jest/types': 29.6.3 - '@types/graceful-fs': 4.1.9 + '@jest/types': 30.5.1 + '@parcel/watcher': 2.6.0 '@types/node': 24.13.3 anymatch: 3.1.3 fb-watchman: 2.0.2 + fdir: 6.5.0(picomatch@4.0.7) graceful-fs: 4.2.11 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 - jest-worker: 29.7.0 - micromatch: 4.0.8 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.3 + jest-regex-util: 30.5.0 + jest-util: 30.5.1 + jest-worker: 30.5.1 + picomatch: 4.0.7 - jest-leak-detector@29.7.0: + jest-leak-detector@30.5.1: dependencies: - jest-get-type: 29.6.3 - pretty-format: 29.7.0 + '@jest/get-type': 30.5.0 + pretty-format: 30.5.1 - jest-matcher-utils@29.7.0: + jest-matcher-utils@30.5.1: dependencies: + '@jest/get-type': 30.5.0 chalk: 4.1.2 - jest-diff: 29.7.0 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 + jest-diff: 30.5.1 + pretty-format: 30.5.1 - jest-message-util@29.7.0: + jest-message-util@30.5.1: dependencies: '@babel/code-frame': 7.27.1 - '@jest/types': 29.6.3 + '@jest/types': 30.5.1 '@types/stack-utils': 2.0.3 chalk: 4.1.2 graceful-fs: 4.2.11 - micromatch: 4.0.8 - pretty-format: 29.7.0 + jest-util: 30.5.1 + picomatch: 4.0.7 + pretty-format: 30.5.1 slash: 3.0.0 stack-utils: 2.0.6 - jest-mock@29.7.0: + jest-mock@30.5.1: dependencies: - '@jest/types': 29.6.3 + '@jest/expect-utils': 30.5.1 + '@jest/types': 30.5.1 '@types/node': 24.13.3 - jest-util: 29.7.0 - - jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): - optionalDependencies: - jest-resolve: 29.7.0 + jest-util: 30.5.1 - jest-regex-util@29.6.3: {} + jest-regex-util@30.5.0: {} - jest-resolve-dependencies@29.7.0: + jest-resolve-dependencies@30.5.1: dependencies: - jest-regex-util: 29.6.3 - jest-snapshot: 29.7.0 + jest-regex-util: 30.5.0 + jest-snapshot: 30.5.1 transitivePeerDependencies: - supports-color - jest-resolve@29.7.0: + jest-resolve@30.5.1: dependencies: chalk: 4.1.2 graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) - jest-util: 29.7.0 - jest-validate: 29.7.0 - resolve: 1.22.10 - resolve.exports: 2.0.3 + jest-haste-map: 30.5.1 + jest-util: 30.5.1 + jest-validate: 30.5.1 slash: 3.0.0 + unrs-resolver: 1.12.2 - jest-runner@29.7.0: + jest-runner@30.5.1: dependencies: - '@jest/console': 29.7.0 - '@jest/environment': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 + '@jest/console': 30.5.1 + '@jest/environment': 30.5.1 + '@jest/source-map': 30.5.0 + '@jest/test-result': 30.5.1 + '@jest/transform': 30.5.1 + '@jest/types': 30.5.1 '@types/node': 24.13.3 chalk: 4.1.2 emittery: 0.13.1 + exit-x: 0.2.2 graceful-fs: 4.2.11 - jest-docblock: 29.7.0 - jest-environment-node: 29.7.0 - jest-haste-map: 29.7.0 - jest-leak-detector: 29.7.0 - jest-message-util: 29.7.0 - jest-resolve: 29.7.0 - jest-runtime: 29.7.0 - jest-util: 29.7.0 - jest-watcher: 29.7.0 - jest-worker: 29.7.0 + jest-docblock: 30.5.0 + jest-environment-node: 30.5.1 + jest-haste-map: 30.5.1 + jest-leak-detector: 30.5.1 + jest-message-util: 30.5.1 + jest-resolve: 30.5.1 + jest-runtime: 30.5.1 + jest-util: 30.5.1 + jest-watcher: 30.5.1 + jest-worker: 30.5.1 p-limit: 3.1.0 - source-map-support: 0.5.13 transitivePeerDependencies: - supports-color - jest-runtime@29.7.0: + jest-runtime@30.5.1: dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/globals': 29.7.0 - '@jest/source-map': 29.6.3 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 + '@jest/environment': 30.5.1 + '@jest/fake-timers': 30.5.1 + '@jest/globals': 30.5.1 + '@jest/source-map': 30.5.0 + '@jest/test-result': 30.5.1 + '@jest/transform': 30.5.1 + '@jest/types': 30.5.1 '@types/node': 24.13.3 chalk: 4.1.2 - cjs-module-lexer: 1.4.3 + cjs-module-lexer: 2.2.1 collect-v8-coverage: 1.0.2 - glob: 7.2.3 + es-module-lexer: 2.3.2 + glob: 13.0.6 graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 + jest-haste-map: 30.5.1 + jest-message-util: 30.5.1 + jest-mock: 30.5.1 + jest-regex-util: 30.5.0 + jest-resolve: 30.5.1 + jest-snapshot: 30.5.1 + jest-util: 30.5.1 slash: 3.0.0 strip-bom: 4.0.0 transitivePeerDependencies: - supports-color - jest-snapshot@29.7.0: + jest-snapshot@30.5.1: dependencies: '@babel/core': 7.28.4 '@babel/generator': 7.28.3 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4) '@babel/types': 7.28.4 - '@jest/expect-utils': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 + '@jest/expect-utils': 30.5.1 + '@jest/get-type': 30.5.0 + '@jest/snapshot-utils': 30.5.1 + '@jest/transform': 30.5.1 + '@jest/types': 30.5.1 babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.4) chalk: 4.1.2 - expect: 29.7.0 + expect: 30.5.1 graceful-fs: 4.2.11 - jest-diff: 29.7.0 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - natural-compare: 1.4.0 - pretty-format: 29.7.0 + jest-diff: 30.5.1 + jest-matcher-utils: 30.5.1 + jest-message-util: 30.5.1 + jest-util: 30.5.1 + pretty-format: 30.5.1 semver: 7.7.2 + synckit: 0.11.13 transitivePeerDependencies: - supports-color - jest-util@29.7.0: + jest-util@30.5.1: dependencies: - '@jest/types': 29.6.3 + '@jest/types': 30.5.1 '@types/node': 24.13.3 chalk: 4.1.2 - ci-info: 3.9.0 + ci-info: 4.4.0 graceful-fs: 4.2.11 - picomatch: 2.3.1 + picomatch: 4.0.7 - jest-validate@29.7.0: + jest-validate@30.5.1: dependencies: - '@jest/types': 29.6.3 + '@jest/get-type': 30.5.0 + '@jest/types': 30.5.1 camelcase: 6.3.0 chalk: 4.1.2 - jest-get-type: 29.6.3 leven: 3.1.0 - pretty-format: 29.7.0 + pretty-format: 30.5.1 - jest-watcher@29.7.0: + jest-watcher@30.5.1: dependencies: - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 + '@jest/test-result': 30.5.1 + '@jest/types': 30.5.1 '@types/node': 24.13.3 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 - jest-util: 29.7.0 + jest-util: 30.5.1 string-length: 4.0.2 - jest-worker@29.7.0: + jest-worker@30.5.1: dependencies: '@types/node': 24.13.3 - jest-util: 29.7.0 + '@ungap/structured-clone': 1.3.0 + jest-util: 30.5.1 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@24.13.3): + jest@30.5.1(@types/node@24.13.3): dependencies: - '@jest/core': 29.7.0 - '@jest/types': 29.6.3 + '@jest/core': 30.5.1 + '@jest/types': 30.5.1 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@24.13.3) + jest-cli: 30.5.1(@types/node@24.13.3) transitivePeerDependencies: - '@types/node' - babel-plugin-macros + - esbuild-register - supports-color - ts-node @@ -4893,6 +5925,10 @@ snapshots: dependencies: argparse: 2.0.1 + js-yaml@4.3.2: + dependencies: + argparse: 2.0.1 + jsesc@3.1.0: {} json-buffer@3.0.1: {} @@ -4919,9 +5955,7 @@ snapshots: dependencies: json-buffer: 3.0.1 - kleur@3.0.3: {} - - known-css-properties@0.35.0: {} + known-css-properties@0.37.0: {} leven@3.1.0: {} @@ -4954,6 +5988,10 @@ snapshots: lodash.merge@4.6.2: {} + lru-cache@10.4.3: {} + + lru-cache@11.5.2: {} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -4968,10 +6006,6 @@ snapshots: make-error@1.3.6: {} - makeerror@1.0.12: - dependencies: - tmpl: 1.0.5 - math-intrinsics@1.1.0: {} mdn-data@2.0.30: {} @@ -4989,16 +6023,30 @@ snapshots: min-indent@1.0.1: {} + minimatch@10.2.6: + dependencies: + brace-expansion: 5.0.12 + minimatch@3.1.2: dependencies: brace-expansion: 1.1.12 + minimatch@3.1.5: + dependencies: + brace-expansion: 1.1.12 + minimatch@9.0.3: dependencies: brace-expansion: 2.0.2 + minimatch@9.0.9: + dependencies: + brace-expansion: 2.0.2 + minimist@1.2.8: {} + minipass@7.1.3: {} + mkdirp@0.5.6: dependencies: minimist: 1.2.8 @@ -5007,12 +6055,13 @@ snapshots: nanoid@3.3.11: {} + napi-postinstall@0.3.4: {} + natural-compare@1.4.0: {} neo-async@2.6.2: {} - node-addon-api@7.1.1: - optional: true + node-addon-api@7.1.1: {} node-int64@0.4.0: {} @@ -5098,6 +6147,8 @@ snapshots: p-try@2.2.0: {} + package-json-from-dist@1.0.1: {} + parent-module@1.0.1: dependencies: callsites: 3.1.0 @@ -5117,6 +6168,16 @@ snapshots: path-parse@1.0.7: {} + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.3 + + path-scurry@2.0.2: + dependencies: + lru-cache: 11.5.2 + minipass: 7.1.3 + path-type@4.0.0: {} periscopic@3.1.0: @@ -5129,6 +6190,8 @@ snapshots: picomatch@2.3.1: {} + picomatch@4.0.7: {} + pirates@4.0.7: {} pkg-dir@4.2.0: @@ -5144,7 +6207,7 @@ snapshots: optionalDependencies: postcss: 8.5.6 - postcss-safe-parser@6.0.0(postcss@8.5.6): + postcss-safe-parser@7.1.0(postcss@8.5.6): dependencies: postcss: 8.5.6 @@ -5152,7 +6215,7 @@ snapshots: dependencies: postcss: 8.5.6 - postcss-selector-parser@6.1.2: + postcss-selector-parser@7.1.6: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 @@ -5172,25 +6235,23 @@ snapshots: prettier@3.6.2: {} - pretty-format@29.7.0: + pretty-format@30.5.1: dependencies: - '@jest/schemas': 29.6.3 + '@jest/react-is-18': react-is@18.3.1 + '@jest/react-is-19': react-is@19.3.0 + '@jest/schemas': 30.5.0 ansi-styles: 5.2.0 - react-is: 18.3.1 - - prompts@2.4.2: - dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 punycode@2.3.1: {} - pure-rand@6.1.0: {} + pure-rand@7.0.1: {} queue-microtask@1.2.3: {} react-is@18.3.1: {} + react-is@19.3.0: {} + readdirp@3.6.0: dependencies: picomatch: 2.3.1 @@ -5229,7 +6290,7 @@ snapshots: resolve-from@5.0.0: {} - resolve.exports@2.0.3: {} + resolve-pkg-maps@1.0.0: {} resolve@1.22.10: dependencies: @@ -5291,6 +6352,8 @@ snapshots: semver@7.7.2: {} + semver@7.8.5: {} + set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 @@ -5349,7 +6412,7 @@ snapshots: signal-exit@3.0.7: {} - sisteransi@1.0.5: {} + signal-exit@4.1.0: {} slash@3.0.0: {} @@ -5362,11 +6425,6 @@ snapshots: source-map-js@1.2.1: {} - source-map-support@0.5.13: - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - source-map@0.6.1: {} sprintf-js@1.0.3: {} @@ -5391,6 +6449,12 @@ snapshots: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.2.0 + string.prototype.trim@1.2.10: dependencies: call-bind: 1.0.8 @@ -5418,6 +6482,10 @@ snapshots: dependencies: ansi-regex: 5.0.1 + strip-ansi@7.2.0: + dependencies: + ansi-regex: 6.3.0 + strip-bom@3.0.0: {} strip-bom@4.0.0: {} @@ -5442,23 +6510,15 @@ snapshots: svelte-dev-helper@1.1.9: {} - svelte-eslint-parser@0.33.1(svelte@4.2.20): - dependencies: - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - postcss: 8.5.6 - postcss-scss: 4.0.9(postcss@8.5.6) - optionalDependencies: - svelte: 4.2.20 - - svelte-eslint-parser@0.43.0(svelte@4.2.20): + svelte-eslint-parser@1.8.1(svelte@4.2.20): dependencies: - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 postcss: 8.5.6 postcss-scss: 4.0.9(postcss@8.5.6) + postcss-selector-parser: 7.1.6 + semver: 7.7.2 optionalDependencies: svelte: 4.2.20 @@ -5512,15 +6572,24 @@ snapshots: magic-string: 0.30.19 periscopic: 3.1.0 - test-exclude@6.0.0: + synckit@0.11.13: + dependencies: + '@pkgr/core': 0.3.6 + + tapable@2.3.3: {} + + test-exclude@7.0.2: dependencies: '@istanbuljs/schema': 0.1.3 - glob: 7.2.3 - minimatch: 3.1.2 + glob: 10.5.0 + minimatch: 10.2.6 text-table@0.2.0: {} - tmpl@1.0.5: {} + tinyglobby@0.2.17: + dependencies: + fdir: 6.5.0(picomatch@4.0.7) + picomatch: 4.0.7 to-regex-range@5.0.1: dependencies: @@ -5530,25 +6599,29 @@ snapshots: dependencies: typescript: 5.9.3 - ts-jest@29.4.1(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0(@types/node@24.13.3))(typescript@5.9.3): + ts-api-utils@2.5.0(typescript@5.9.3): + dependencies: + typescript: 5.9.3 + + ts-jest@29.4.12(@babel/core@7.28.4)(@jest/transform@30.5.1)(@jest/types@30.5.1)(babel-jest@30.5.1(@babel/core@7.28.4))(jest-util@30.5.1)(jest@30.5.1(@types/node@24.13.3))(typescript@5.9.3): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 handlebars: 4.7.9 - jest: 29.7.0(@types/node@24.13.3) + jest: 30.5.1(@types/node@24.13.3) json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 - semver: 7.7.2 + semver: 7.8.5 type-fest: 4.41.0 typescript: 5.9.3 yargs-parser: 21.1.1 optionalDependencies: '@babel/core': 7.28.4 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.4) - jest-util: 29.7.0 + '@jest/transform': 30.5.1 + '@jest/types': 30.5.1 + babel-jest: 30.5.1(@babel/core@7.28.4) + jest-util: 30.5.1 tsconfig-paths@3.15.0: dependencies: @@ -5557,6 +6630,9 @@ snapshots: minimist: 1.2.8 strip-bom: 3.0.0 + tslib@2.8.1: + optional: true + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 @@ -5602,6 +6678,17 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 + typescript-eslint@8.70.0(eslint@9.39.5)(typescript@5.9.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.70.0(@typescript-eslint/parser@8.70.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3) + '@typescript-eslint/parser': 8.70.0(eslint@9.39.5)(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.70.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.70.0(eslint@9.39.5)(typescript@5.9.3) + eslint: 9.39.5 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + typescript@5.9.3: {} uglify-js@3.19.3: @@ -5618,6 +6705,33 @@ snapshots: universalify@2.0.1: {} + unrs-resolver@1.12.2: + dependencies: + napi-postinstall: 0.3.4 + optionalDependencies: + '@unrs/resolver-binding-android-arm-eabi': 1.12.2 + '@unrs/resolver-binding-android-arm64': 1.12.2 + '@unrs/resolver-binding-darwin-arm64': 1.12.2 + '@unrs/resolver-binding-darwin-x64': 1.12.2 + '@unrs/resolver-binding-freebsd-x64': 1.12.2 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.12.2 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.12.2 + '@unrs/resolver-binding-linux-arm64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-arm64-musl': 1.12.2 + '@unrs/resolver-binding-linux-loong64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-loong64-musl': 1.12.2 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-riscv64-musl': 1.12.2 + '@unrs/resolver-binding-linux-s390x-gnu': 1.12.2 + '@unrs/resolver-binding-linux-x64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-x64-musl': 1.12.2 + '@unrs/resolver-binding-openharmony-arm64': 1.12.2 + '@unrs/resolver-binding-wasm32-wasi': 1.12.2 + '@unrs/resolver-binding-win32-arm64-msvc': 1.12.2 + '@unrs/resolver-binding-win32-ia32-msvc': 1.12.2 + '@unrs/resolver-binding-win32-x64-msvc': 1.12.2 + update-browserslist-db@1.1.3(browserslist@4.25.4): dependencies: browserslist: 4.25.4 @@ -5632,14 +6746,10 @@ snapshots: v8-to-istanbul@9.3.0: dependencies: - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 - walker@1.0.8: - dependencies: - makeerror: 1.0.12 - which-boxed-primitive@1.1.1: dependencies: is-bigint: 1.1.0 @@ -5695,12 +6805,18 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.3 + string-width: 5.1.2 + strip-ansi: 7.2.0 + wrappy@1.0.2: {} - write-file-atomic@4.0.2: + write-file-atomic@5.0.1: dependencies: imurmurhash: 0.1.4 - signal-exit: 3.0.7 + signal-exit: 4.1.0 y18n@5.0.8: {} diff --git a/packages/hls/package.json b/packages/hls/package.json index fcbaffdfb0..488cf9717d 100644 --- a/packages/hls/package.json +++ b/packages/hls/package.json @@ -17,7 +17,6 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/dompurify": "^3.0.5", "@types/jest": "^30.0.0", "@typescript-eslint/eslint-plugin": "^8.67.0", "@typescript-eslint/parser": "^8.67.0", diff --git a/packages/importer/package.json b/packages/importer/package.json index 83e4c7f257..bf2a8d6cbe 100644 --- a/packages/importer/package.json +++ b/packages/importer/package.json @@ -57,7 +57,7 @@ "commander": "^14.0.0", "mime-types": "~2.1.34", "csvtojson": "^2.0.10", - "js-yaml": "^4.3.1", + "js-yaml": "^4.3.2", "image-size": "^1.2.1", "uuid": "^11.1.1" }, diff --git a/packages/presentation/package.json b/packages/presentation/package.json index e3d51ed59a..8aa58902d0 100644 --- a/packages/presentation/package.json +++ b/packages/presentation/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "@types/node": "^24.13.3", - "@testing-library/jest-dom": "^6.6.3", + "@testing-library/jest-dom": "6.9.1", "jest-environment-jsdom": "^30.4.1", "svelte-eslint-parser": "^1.8.1", "@types/png-chunks-extract": "^1.0.2" diff --git a/packages/presentation/src/drawingUtils.ts b/packages/presentation/src/drawingUtils.ts index 9767e980d4..fd0e8e499f 100644 --- a/packages/presentation/src/drawingUtils.ts +++ b/packages/presentation/src/drawingUtils.ts @@ -14,16 +14,7 @@ // export type ColorMetaName = - | 'alpha' - | 'beta' - | 'gamma' - | 'delta' - | 'epsilon' - | 'zeta' - | 'eta' - | 'theta' - | 'iota' - | 'kappa' + 'alpha' | 'beta' | 'gamma' | 'delta' | 'epsilon' | 'zeta' | 'eta' | 'theta' | 'iota' | 'kappa' // | 'lambda' // | 'mu' // | 'nu' diff --git a/packages/ui/package.json b/packages/ui/package.json index f2d28fa6e8..85809dce1e 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -19,7 +19,6 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/dompurify": "^3.0.5", "@types/jest": "^30.0.0", "@typescript-eslint/eslint-plugin": "^8.67.0", "@typescript-eslint/parser": "^8.67.0", @@ -47,7 +46,7 @@ "autolinker": "4.0.0", "date-fns": "^2.30.0", "date-fns-tz": "^2.0.0", - "dompurify": "^3.1.6", + "dompurify": "^3.4.15", "fast-equals": "^5.2.2", "svelte": "^4.2.20", "plyr": "3.7.8", diff --git a/plugins/contact/src/types.ts b/plugins/contact/src/types.ts index c5fa89b182..b12e989c30 100644 --- a/plugins/contact/src/types.ts +++ b/plugins/contact/src/types.ts @@ -23,14 +23,7 @@ import { Person } from './index' * @public */ export type GravatarPlaceholderType = - | '404' - | 'mp' - | 'identicon' - | 'monsterid' - | 'wavatar' - | 'retro' - | 'robohash' - | 'blank' + '404' | 'mp' | 'identicon' | 'monsterid' | 'wavatar' | 'retro' | 'robohash' | 'blank' /** * @public diff --git a/plugins/questions/src/doc-types/base.ts b/plugins/questions/src/doc-types/base.ts index c2a2313d3d..7ea62ca20e 100644 --- a/plugins/questions/src/doc-types/base.ts +++ b/plugins/questions/src/doc-types/base.ts @@ -38,8 +38,10 @@ export interface Question> extends Attache export type QuestionDataOf> = Q extends Question ? R : never /** @public */ -export interface Assessment, AssessmentData extends NonNullable> - extends Question { +export interface Assessment< + QuestionData extends NonNullable, + AssessmentData extends NonNullable +> extends Question { assessmentData: AssessmentData } diff --git a/plugins/text-editor-resources/src/components/extensions.ts b/plugins/text-editor-resources/src/components/extensions.ts index dfa6b148a3..971b209351 100644 --- a/plugins/text-editor-resources/src/components/extensions.ts +++ b/plugins/text-editor-resources/src/components/extensions.ts @@ -87,13 +87,7 @@ export const mInsertTable = [ ] export type InlineCommandId = - | 'image' - | 'table' - | 'code-block' - | 'separator-line' - | 'todo-list' - | 'drawing-board' - | 'mermaid' + 'image' | 'table' | 'code-block' | 'separator-line' | 'todo-list' | 'drawing-board' | 'mermaid' /** * @public diff --git a/qms-tests/sanity/package.json b/qms-tests/sanity/package.json index 025eafd6c9..e875b359d1 100644 --- a/qms-tests/sanity/package.json +++ b/qms-tests/sanity/package.json @@ -40,9 +40,9 @@ "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "@playwright/test": "^1.48.2", - "allure-playwright": "^3.0.6", - "allure-js-commons": "^3.0.6", + "@playwright/test": "^1.63.0", + "allure-playwright": "^3.12.1", + "allure-js-commons": "^3.12.1", "@faker-js/faker": "^10.6.0", "eslint-plugin-svelte": "^3.23.0", "eslint-config-love": "^155.0.0" diff --git a/server/account/package.json b/server/account/package.json index bf388e38ee..36f873df04 100644 --- a/server/account/package.json +++ b/server/account/package.json @@ -39,7 +39,7 @@ "@hcengineering/mongo": "workspace:^0.7.16", "@hcengineering/postgres": "workspace:^0.7.22", "mongodb": "^6.16.0", - "postgres": "^3.4.7", + "postgres": "^3.4.9", "@hcengineering/platform": "workspace:^0.7.20", "@hcengineering/core": "workspace:^0.7.26", "otp-generator": "^4.0.1", diff --git a/server/account/src/collections/mongo.ts b/server/account/src/collections/mongo.ts index d70588b22e..9ccc70f23d 100644 --- a/server/account/src/collections/mongo.ts +++ b/server/account/src/collections/mongo.ts @@ -77,9 +77,10 @@ function getFilteredQuery (query: Query): Query { }, {}) } -export class MongoDbCollection, K extends keyof T | undefined = undefined> - implements DbCollection -{ +export class MongoDbCollection< + T extends Record, + K extends keyof T | undefined = undefined +> implements DbCollection { constructor ( readonly name: string, readonly db: Db, diff --git a/server/account/src/collections/postgres/postgres.ts b/server/account/src/collections/postgres/postgres.ts index 4e06533f89..19fa2e9bbb 100644 --- a/server/account/src/collections/postgres/postgres.ts +++ b/server/account/src/collections/postgres/postgres.ts @@ -111,15 +111,16 @@ export interface PostgresDbCollectionOptions, K ex ns?: string fieldTypes?: Record timestampFields?: Array - withRetryClient?: (callback: (client: Sql) => Promise) => Promise + withRetryClient?: (callback: (client: ISql) => Promise) => Promise } -export class PostgresDbCollection, K extends keyof T | undefined = undefined> - implements DbCollection -{ +export class PostgresDbCollection< + T extends Record, + K extends keyof T | undefined = undefined +> implements DbCollection { constructor ( readonly name: string, - readonly client: Sql, + readonly client: ISql, readonly options: PostgresDbCollectionOptions = {}, readonly filterFields: string[] = [] ) {} @@ -269,7 +270,7 @@ export class PostgresDbCollection, K extends keyof return res as T } - async unsafe (sql: string, values: any[], client?: Sql): Promise { + async unsafe (sql: string, values: any[], client?: ISql): Promise { if (client !== undefined) { return await client.unsafe(sql, values) } else if (this.options.withRetryClient !== undefined) { @@ -279,7 +280,7 @@ export class PostgresDbCollection, K extends keyof } } - async exists (query: Query, client?: Sql): Promise { + async exists (query: Query, client?: ISql): Promise { const [whereClause, whereValues] = this.buildWhereClause(query) const sql = `SELECT EXISTS (SELECT 1 FROM ${this.getTableName()} ${whereClause})` @@ -310,11 +311,11 @@ export class PostgresDbCollection, K extends keyof return result.map((row) => this.convertToObj(row)) } - async findOne (query: Query, client?: Sql): Promise { + async findOne (query: Query, client?: ISql): Promise { return (await this.find(query, undefined, 1, client))[0] ?? null } - async insertOne (data: Partial, client?: Sql): Promise { + async insertOne (data: Partial, client?: ISql): Promise { const snakeData = convertKeysToSnakeCase(data) const keys: string[] = Object.keys(snakeData) const values = Object.values(snakeData) as any @@ -331,7 +332,7 @@ export class PostgresDbCollection, K extends keyof return res[0][idKey] } - async insertMany (data: Array>, client?: Sql): Promise : undefined> { + async insertMany (data: Array>, client?: ISql): Promise : undefined> { const snakeData = convertKeysToSnakeCase(data) const columns = new Set() for (const record of snakeData) { @@ -397,7 +398,7 @@ export class PostgresDbCollection, K extends keyof return [`SET ${updateChunks.join(', ')}`, values] } - async update (query: Query, ops: Operations, client?: Sql): Promise { + async update (query: Query, ops: Operations, client?: ISql): Promise { const sqlChunks: string[] = [`UPDATE ${this.getTableName()}`] const [updateClause, updateValues] = this.buildUpdateClause(ops) const [whereClause, whereValues] = this.buildWhereClause(query, updateValues.length) @@ -411,7 +412,7 @@ export class PostgresDbCollection, K extends keyof await this.unsafe(finalSql, [...updateValues, ...whereValues], client) } - async deleteMany (query: Query, client?: Sql): Promise { + async deleteMany (query: Query, client?: ISql): Promise { const sqlChunks: string[] = [`DELETE FROM ${this.getTableName()}`] const [whereClause, whereValues] = this.buildWhereClause(query) @@ -431,7 +432,7 @@ export class AccountPostgresDbCollection private readonly passwordKeys = ['hash', 'salt'] constructor ( - client: Sql, + client: ISql, ns?: string, withRetryClient?: PostgresDbCollectionOptions['withRetryClient'] ) { @@ -464,7 +465,7 @@ export class AccountPostgresDbCollection )` } - async find (query: Query, sort?: Sort, limit?: number, client?: Sql): Promise { + async find (query: Query, sort?: Sort, limit?: number, client?: ISql): Promise { if (Object.keys(query).some((k) => this.passwordKeys.includes(k))) { throw new Error('Passwords are not allowed in find query conditions') } @@ -483,7 +484,7 @@ export class AccountPostgresDbCollection return result } - async insertOne (data: Partial, client?: Sql): Promise { + async insertOne (data: Partial, client?: ISql): Promise { if (Object.keys(data).some((k) => this.passwordKeys.includes(k))) { throw new Error('Passwords are not allowed in insert query') } @@ -491,7 +492,7 @@ export class AccountPostgresDbCollection return await super.insertOne(data, client) } - async update (query: Query, ops: Operations, client?: Sql): Promise { + async update (query: Query, ops: Operations, client?: ISql): Promise { if (Object.keys({ ...ops, ...query }).some((k) => this.passwordKeys.includes(k))) { throw new Error('Passwords are not allowed in update query') } @@ -499,7 +500,7 @@ export class AccountPostgresDbCollection await super.update(query, ops, client) } - async deleteMany (query: Query, client?: Sql): Promise { + async deleteMany (query: Query, client?: ISql): Promise { if (Object.keys(query).some((k) => this.passwordKeys.includes(k))) { throw new Error('Passwords are not allowed in delete query') } @@ -645,7 +646,7 @@ export class PostgresAccountDB implements AccountDB { let updateInterval: NodeJS.Timeout | null = null let executed = false - const executeMigration = async (client: Sql): Promise => { + const executeMigration = async (client: ISql): Promise => { updateInterval = setInterval(() => { this.client` UPDATE ${this.client(this.ns)}._account_applied_migrations diff --git a/server/backup/src/restore.ts b/server/backup/src/restore.ts index 824d3248b6..c9fb1a5dcd 100644 --- a/server/backup/src/restore.ts +++ b/server/backup/src/restore.ts @@ -367,7 +367,9 @@ export async function restore ( if (requiredDocs.has(name as Ref)) { const chunks: Buffer[] = [] stream.on('data', (chunk) => { - chunks.push(chunk) + if (Buffer.isBuffer(chunk)) { + chunks.push(chunk) + } }) stream.on('end', () => { const bf = Buffer.concat(chunks) @@ -392,7 +394,9 @@ export async function restore ( const chunks: Buffer[] = [] const bname = name.substring(0, name.length - 5) stream.on('data', (chunk) => { - chunks.push(chunk) + if (Buffer.isBuffer(chunk)) { + chunks.push(chunk) + } }) stream.on('end', () => { const bf = Buffer.concat(chunks) @@ -527,7 +531,9 @@ export async function restore ( if (changeset.has(objKey) && !processed.has(objKey)) { const chunks: Buffer[] = [] stream.on('data', (chunk) => { - chunks.push(chunk) + if (Buffer.isBuffer(chunk)) { + chunks.push(chunk) + } }) stream.on('end', () => { try { diff --git a/server/backup/src/utils.ts b/server/backup/src/utils.ts index 96b8adc453..80e109a7fb 100644 --- a/server/backup/src/utils.ts +++ b/server/backup/src/utils.ts @@ -291,7 +291,9 @@ export async function backupFind ( const chunks: Buffer[] = [] stream.on('data', (chunk) => { - chunks.push(chunk) + if (Buffer.isBuffer(chunk)) { + chunks.push(chunk) + } }) stream.on('end', () => { const bf = Buffer.concat(chunks) @@ -655,7 +657,9 @@ export async function compactBackup ( if (requiredDocs.has(name)) { const chunks: Buffer[] = [] stream.on('data', (chunk) => { - chunks.push(chunk) + if (Buffer.isBuffer(chunk)) { + chunks.push(chunk) + } }) stream.on('end', () => { const bf = Buffer.concat(chunks) @@ -686,7 +690,9 @@ export async function compactBackup ( const chunks: Buffer[] = [] const bname = name.substring(0, name.length - 5) stream.on('data', (chunk) => { - chunks.push(chunk) + if (Buffer.isBuffer(chunk)) { + chunks.push(chunk) + } }) stream.on('end', () => { const bf = Buffer.concat(chunks) @@ -1086,7 +1092,9 @@ export async function verifyDigest ( const chunks: Buffer[] = [] const bname = name.substring(0, name.length - 5) stream.on('data', (chunk) => { - chunks.push(chunk) + if (Buffer.isBuffer(chunk)) { + chunks.push(chunk) + } }) stream.on('end', () => { try { @@ -1327,7 +1335,9 @@ export async function verifyDocsFromSnapshot ( const chunks: Buffer[] = [] const bname = name.substring(0, name.length - 5) stream.on('data', (chunk) => { - chunks.push(chunk) + if (Buffer.isBuffer(chunk)) { + chunks.push(chunk) + } }) stream.on('end', () => { const bf = Buffer.concat(chunks) diff --git a/server/backup/tsconfig.json b/server/backup/tsconfig.json index b5ae22f6e4..c6a877cf6c 100644 --- a/server/backup/tsconfig.json +++ b/server/backup/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "./node_modules/@hcengineering/platform-rig/profiles/default/tsconfig.json", + "extends": "./node_modules/@hcengineering/platform-rig/profiles/node/tsconfig.json", "compilerOptions": { "rootDir": "./src", diff --git a/server/tool/package.json b/server/tool/package.json index f3d5ec8327..ad7b814e2c 100644 --- a/server/tool/package.json +++ b/server/tool/package.json @@ -58,6 +58,6 @@ "fast-equals": "^5.2.2", "@hcengineering/text": "workspace:^0.7.19", "@hcengineering/text-markdown": "workspace:^0.7.21", - "js-yaml": "^4.3.1" + "js-yaml": "^4.3.2" } } diff --git a/services/ai-bot/pod-ai-bot/package.json b/services/ai-bot/pod-ai-bot/package.json index ad62dd9e31..ec17931447 100644 --- a/services/ai-bot/pod-ai-bot/package.json +++ b/services/ai-bot/pod-ai-bot/package.json @@ -88,7 +88,7 @@ "dotenv": "^16.4.5", "express": "^4.21.2", "fast-equals": "^5.2.2", - "form-data": "^4.0.0", + "form-data": "^4.0.6", "js-tiktoken": "^1.0.14", "mongodb": "^6.16.0", "openai": "^4.56.0", diff --git a/services/backup/backup-api-pod/package.json b/services/backup/backup-api-pod/package.json index 425dff5b8f..a7b7c213d3 100644 --- a/services/backup/backup-api-pod/package.json +++ b/services/backup/backup-api-pod/package.json @@ -67,7 +67,7 @@ "cors": "^2.8.6", "dotenv": "^16.4.5", "express": "^4.21.2", - "postgres": "^3.4.7", + "postgres": "^3.4.9", "sharp": "~0.35.3", "morgan": "^1.11.0" } diff --git a/services/billing/pod-billing/package.json b/services/billing/pod-billing/package.json index 5a5a194916..f7fc9a6e0a 100644 --- a/services/billing/pod-billing/package.json +++ b/services/billing/pod-billing/package.json @@ -71,7 +71,7 @@ "dotenv": "^16.4.5", "express": "^4.21.2", "morgan": "^1.11.0", - "postgres": "^3.4.7", + "postgres": "^3.4.9", "on-headers": "^1.0.2", "uuid": "^11.1.1" } diff --git a/services/datalake/pod-datalake/package.json b/services/datalake/pod-datalake/package.json index 86fa882d9a..0019933ffd 100644 --- a/services/datalake/pod-datalake/package.json +++ b/services/datalake/pod-datalake/package.json @@ -69,7 +69,7 @@ "dotenv": "^16.4.5", "express": "^4.21.2", "express-fileupload": "^1.5.1", - "postgres": "^3.4.7", + "postgres": "^3.4.9", "@aws-sdk/client-s3": "^3.1107.0", "@aws-sdk/s3-request-presigner": "^3.1107.0", "@aws-sdk/lib-storage": "^3.1107.0", diff --git a/services/export/pod-export/package.json b/services/export/pod-export/package.json index 87cfd75378..4bc0513500 100644 --- a/services/export/pod-export/package.json +++ b/services/export/pod-export/package.json @@ -87,7 +87,7 @@ "uuid": "^11.1.1", "tar": "^7.5.21", "archiver": "^7.0.1", - "js-yaml": "^4.3.1", + "js-yaml": "^4.3.2", "csv-stringify": "^6.5.2" } } diff --git a/services/export/pod-export/src/converter.ts b/services/export/pod-export/src/converter.ts index c96833ebec..32a951de6a 100644 --- a/services/export/pod-export/src/converter.ts +++ b/services/export/pod-export/src/converter.ts @@ -405,31 +405,29 @@ export class UnifiedConverter { } // Create attachments with getData callbacks - const resolved = attachments.map( - (att): UnifiedAttachment => ({ - id: att._id, - name: att.name, - size: att.size, - contentType: att.type, - getData: async () => { - try { - const buffer = await this.storage.read(this.context, this.wsIds, att.file) - - if (buffer === undefined) { - this.context.warn(`Attachment not found: ${att._id}`) - return Buffer.from([]) - } - - return Buffer.concat(buffer) - } catch (err) { - this.context.warn(`Failed to read attachment: ${att._id}`, { - error: err instanceof Error ? err.message : String(err) - }) + const resolved = attachments.map((att): UnifiedAttachment => ({ + id: att._id, + name: att.name, + size: att.size, + contentType: att.type, + getData: async () => { + try { + const buffer = await this.storage.read(this.context, this.wsIds, att.file) + + if (buffer === undefined) { + this.context.warn(`Attachment not found: ${att._id}`) return Buffer.from([]) } + + return Buffer.concat(buffer) + } catch (err) { + this.context.warn(`Failed to read attachment: ${att._id}`, { + error: err instanceof Error ? err.message : String(err) + }) + return Buffer.from([]) } - }) - ) + } + })) return resolved } diff --git a/services/github/pod-github/src/sync/githubTypes.ts b/services/github/pod-github/src/sync/githubTypes.ts index 7372fde64b..a90522bc13 100644 --- a/services/github/pod-github/src/sync/githubTypes.ts +++ b/services/github/pod-github/src/sync/githubTypes.ts @@ -204,14 +204,7 @@ export enum CommitStatus { export type PullRequestReviewState = 'PENDING' | 'COMMENTED' | 'APPROVED' | 'CHANGES_REQUESTED' | 'DISMISSED' export type AuthorAssociationType = - | 'COLLABORATOR' - | 'CONTRIBUTOR' - | 'FIRST_TIMER' - | 'FIRST_TIME_CONTRIBUTOR' - | 'MANNEQUIN' - | 'MEMBER' - | 'NONE' - | 'OWNER' + 'COLLABORATOR' | 'CONTRIBUTOR' | 'FIRST_TIMER' | 'FIRST_TIME_CONTRIBUTOR' | 'MANNEQUIN' | 'MEMBER' | 'NONE' | 'OWNER' export type MinimizeReason = 'abuse' | 'off-topic' | 'outdated' | 'resolved' | 'duplicate' | 'spam' diff --git a/services/github/pod-github/src/sync/repository.ts b/services/github/pod-github/src/sync/repository.ts index 04ada5b80a..2799357aca 100644 --- a/services/github/pod-github/src/sync/repository.ts +++ b/services/github/pod-github/src/sync/repository.ts @@ -291,8 +291,7 @@ export class RepositorySyncMapper implements DocSyncManager { let allRepos: GithubIntegrationRepository[] = [...allRepositories] const githubRepos: - | Repository - | Endpoints['GET /installation/repositories']['response']['data']['repositories'][0][] = [] + Repository | Endpoints['GET /installation/repositories']['response']['data']['repositories'][0][] = [] for await (const { repository } of iterable) { githubRepos.push(repository) } diff --git a/services/gmail/pod-gmail/package.json b/services/gmail/pod-gmail/package.json index 00bd0795e0..1255587459 100644 --- a/services/gmail/pod-gmail/package.json +++ b/services/gmail/pod-gmail/package.json @@ -35,7 +35,7 @@ "@types/cors": "^2.8.19", "@types/express": "^4.17.13", "@types/node": "^24.13.3", - "@types/sanitize-html": "^2.15.0", + "@types/sanitize-html": "^2.16.1", "@typescript-eslint/eslint-plugin": "^8.67.0", "@typescript-eslint/parser": "^8.67.0", "@types/ws": "^8.18.1", @@ -89,6 +89,6 @@ "uuid": "^11.1.1", "ws": "^8.21.0", "@hcengineering/analytics-service": "workspace:^0.7.19", - "sanitize-html": "^2.15.0" + "sanitize-html": "2.17.5" } } diff --git a/services/mail/mail-common/package.json b/services/mail/mail-common/package.json index 49819eb3a2..e9a0be2348 100644 --- a/services/mail/mail-common/package.json +++ b/services/mail/mail-common/package.json @@ -29,7 +29,7 @@ "@types/jest": "^30.0.0", "@types/markdown-it": "~13.0.0", "@types/node": "^24.13.3", - "@types/sanitize-html": "^2.15.0", + "@types/sanitize-html": "^2.16.1", "@types/turndown": "^5.0.5", "@typescript-eslint/eslint-plugin": "^8.67.0", "@typescript-eslint/parser": "^8.67.0", @@ -62,7 +62,7 @@ "image-size": "^1.2.1", "kafkajs": "^2.2.4", "markdown-it": "^14.0.0", - "sanitize-html": "^2.15.0", + "sanitize-html": "2.17.5", "turndown": "^7.2.0", "uuid": "^11.1.1", "striptags": "^3.2.0" diff --git a/services/mail/pod-mail-worker/package.json b/services/mail/pod-mail-worker/package.json index c08a923514..aadc08a9f1 100644 --- a/services/mail/pod-mail-worker/package.json +++ b/services/mail/pod-mail-worker/package.json @@ -40,7 +40,7 @@ "@types/jest": "^30.0.0", "@types/node": "^24.13.3", "@types/turndown": "^5.0.5", - "@types/sanitize-html": "^2.15.0", + "@types/sanitize-html": "^2.16.1", "@typescript-eslint/eslint-plugin": "^8.67.0", "@typescript-eslint/parser": "^8.67.0", "cross-env": "~7.0.3", @@ -78,7 +78,7 @@ "eml-parse-js": "^1.2.0-beta.0", "express": "^4.21.2", "lru-cache": "^11.1.0", - "sanitize-html": "^2.15.0", + "sanitize-html": "2.17.5", "turndown": "^7.2.0", "uuid": "^11.1.1" } diff --git a/services/mail/pod-mail-worker/src/types.ts b/services/mail/pod-mail-worker/src/types.ts index aad5a16404..52880cfff3 100644 --- a/services/mail/pod-mail-worker/src/types.ts +++ b/services/mail/pod-mail-worker/src/types.ts @@ -29,8 +29,7 @@ export interface MtaMessage { } type Headers = - | Record - | Array<{ key: string, value: string }> + Record | Array<{ key: string, value: string }> export interface MailMessage { from: string diff --git a/services/payment/pod-payment/package.json b/services/payment/pod-payment/package.json index b22a4ea60f..e7b3f32956 100644 --- a/services/payment/pod-payment/package.json +++ b/services/payment/pod-payment/package.json @@ -72,7 +72,7 @@ "express": "^4.21.2", "express-rate-limit": "^7.4.0", "morgan": "^1.11.0", - "postgres": "^3.4.7", + "postgres": "^3.4.9", "on-headers": "^1.0.2", "uuid": "^11.1.1" } diff --git a/services/telegram-bot/pod-telegram-bot/package.json b/services/telegram-bot/pod-telegram-bot/package.json index e25d97e23b..5446e9c8dd 100644 --- a/services/telegram-bot/pod-telegram-bot/package.json +++ b/services/telegram-bot/pod-telegram-bot/package.json @@ -80,10 +80,10 @@ "cors": "^2.8.6", "dotenv": "^16.4.5", "express": "^4.21.2", - "htmlparser2": "^9.0.0", + "htmlparser2": "~10.1.0", "mongodb": "^6.16.0", "otp-generator": "^4.0.1", - "postgres": "^3.4.7", + "postgres": "^3.4.9", "telegraf": "^4.16.3" } } diff --git a/services/telegram/pod-telegram/package.json b/services/telegram/pod-telegram/package.json index 44e52f933c..5b11babd79 100644 --- a/services/telegram/pod-telegram/package.json +++ b/services/telegram/pod-telegram/package.json @@ -71,7 +71,7 @@ "dotenv": "^16.4.5", "cors": "^2.8.6", "express": "^4.21.2", - "htmlparser2": "^9.0.0", + "htmlparser2": "~10.1.0", "jwt-simple": "^0.5.6", "mime": "^3.0.0", "mongodb": "^6.16.0", diff --git a/services/worker/package.json b/services/worker/package.json index a003503cbb..f1f3f8d548 100644 --- a/services/worker/package.json +++ b/services/worker/package.json @@ -59,7 +59,7 @@ "@hcengineering/process": "workspace:^0.7.0", "@hcengineering/core": "workspace:^0.7.26", "@hcengineering/server-core": "workspace:^0.7.19", - "postgres": "^3.4.7", + "postgres": "^3.4.9", "dotenv": "^16.4.5" } } diff --git a/tests/sanity/package.json b/tests/sanity/package.json index e29c766833..3ff95ab445 100644 --- a/tests/sanity/package.json +++ b/tests/sanity/package.json @@ -39,9 +39,9 @@ "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "@playwright/test": "^1.48.2", - "allure-playwright": "^3.0.6", - "allure-js-commons": "^3.0.6", + "@playwright/test": "^1.63.0", + "allure-playwright": "^3.12.1", + "allure-js-commons": "^3.12.1", "@faker-js/faker": "^10.6.0", "eslint-plugin-svelte": "^3.23.0", "eslint-config-love": "^155.0.0" diff --git a/tests/sanity/tests/model/planning/planning-page.ts b/tests/sanity/tests/model/planning/planning-page.ts index c7a52dbe76..560cfaaeb6 100644 --- a/tests/sanity/tests/model/planning/planning-page.ts +++ b/tests/sanity/tests/model/planning/planning-page.ts @@ -124,16 +124,15 @@ export class PlanningPage extends CalendarPage { } async dragToCalendar (title: string, column: number, time: string, addHalf: boolean = false): Promise { - await this.toDosContainer().getByRole('button', { name: title }).hover() - await expect(async () => { + await this.toDosContainer().getByRole('button', { name: title }).hover() await this.page.mouse.down() const boundingBox = await this.selectTimeCell(time, column).boundingBox() expect(boundingBox).toBeTruthy() if (boundingBox != null) { - await this.page.mouse.move(boundingBox.x + 10, boundingBox.y + 10) - await this.page.mouse.move(boundingBox.x + 10, boundingBox.y + (addHalf ? 40 : 20)) + await this.page.mouse.move(boundingBox.x + boundingBox.width / 2, boundingBox.y + (addHalf ? 40 : 20)) await this.page.mouse.up() + await expect(this.eventInSchedule(title)).toBeVisible({ timeout: 5000 }) } }).toPass(retryOptions) } diff --git a/ws-tests/sanity/package.json b/ws-tests/sanity/package.json index 50e1cf5cba..0de6d17908 100644 --- a/ws-tests/sanity/package.json +++ b/ws-tests/sanity/package.json @@ -40,9 +40,9 @@ "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "@playwright/test": "^1.48.2", - "allure-playwright": "^3.0.6", - "allure-js-commons": "^3.0.6", + "@playwright/test": "^1.63.0", + "allure-playwright": "^3.12.1", + "allure-js-commons": "^3.12.1", "@faker-js/faker": "^10.6.0", "@hcengineering/tests-sanity": "workspace:^0.7.0", "eslint-plugin-svelte": "^3.23.0", From 81ffc809fc78b06bf31a3d05874305f50b2fdc4b Mon Sep 17 00:00:00 2001 From: Alexander Onnikov Date: Wed, 16 Sep 2026 22:40:14 +0700 Subject: [PATCH 33/55] chore: update eslint config and add security check (ported from TraceX 67762b25a5) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- common/config/rush/pnpm-config.json | 1 - common/scripts/package.json | 1 + desktop-package/package.json | 1 + desktop/.eslintrc.js | 7 -- desktop/eslint.config.mjs | 3 + desktop/package.json | 1 + dev/doc-import-tool/.eslintrc.js | 7 -- dev/doc-import-tool/eslint.config.mjs | 3 + dev/doc-import-tool/package.json | 1 + dev/import-tool/.eslintrc.js | 7 -- dev/import-tool/eslint.config.mjs | 3 + dev/import-tool/package.json | 1 + dev/prod/.eslintrc.js | 7 -- dev/prod/eslint.config.mjs | 3 + dev/prod/package.json | 1 + dev/tool/.eslintrc.js | 7 -- dev/tool/eslint.config.mjs | 3 + dev/tool/package.json | 1 + .../packages/sdk-types/eslint.config.mjs | 3 + .../packages/shared/eslint.config.mjs | 3 + .../packages/types/eslint.config.mjs | 3 + foundations/core/common/scripts/package.json | 1 + .../core/packages/account-client/.eslintrc.js | 7 -- .../packages/account-client/eslint.config.mjs | 3 + .../core/packages/account-client/package.json | 1 + .../packages/analytics-service/.eslintrc.js | 7 -- .../analytics-service/eslint.config.mjs | 3 + .../packages/analytics-service/package.json | 1 + .../core/packages/analytics/.eslintrc.js | 7 -- .../core/packages/analytics/eslint.config.mjs | 3 + .../core/packages/analytics/package.json | 1 + .../core/packages/api-client/.eslintrc.js | 7 -- .../packages/api-client/eslint.config.mjs | 3 + .../core/packages/api-client/package.json | 1 + .../packages/client-resources/.eslintrc.js | 7 -- .../client-resources/eslint.config.mjs | 3 + .../packages/client-resources/package.json | 1 + foundations/core/packages/client/.eslintrc.js | 7 -- .../core/packages/client/eslint.config.mjs | 3 + foundations/core/packages/client/package.json | 1 + .../packages/collaborator-client/.eslintrc.js | 7 -- .../collaborator-client/eslint.config.mjs | 3 + .../packages/collaborator-client/package.json | 1 + foundations/core/packages/core/.eslintrc.js | 7 -- .../core/packages/core/eslint.config.mjs | 3 + foundations/core/packages/core/package.json | 1 + .../packages/hulylake-client/.eslintrc.js | 7 -- .../hulylake-client/eslint.config.mjs | 3 + .../packages/hulylake-client/package.json | 1 + .../packages/measurements-otlp/.eslintrc.js | 7 -- .../measurements-otlp/eslint.config.mjs | 3 + .../packages/measurements-otlp/package.json | 1 + .../core/packages/measurements/.eslintrc.js | 7 -- .../packages/measurements/eslint.config.mjs | 3 + .../core/packages/measurements/package.json | 1 + foundations/core/packages/model/.eslintrc.js | 7 -- .../core/packages/model/eslint.config.mjs | 3 + foundations/core/packages/model/package.json | 1 + .../core/packages/platform/.eslintrc.js | 7 -- .../core/packages/platform/eslint.config.mjs | 3 + .../core/packages/platform/package.json | 1 + .../core/packages/postgres-base/.eslintrc.js | 7 -- .../packages/postgres-base/eslint.config.mjs | 3 + .../core/packages/postgres-base/package.json | 1 + foundations/core/packages/query/.eslintrc.js | 7 -- .../core/packages/query/eslint.config.mjs | 3 + foundations/core/packages/query/package.json | 1 + foundations/core/packages/rank/.eslintrc.js | 7 -- .../core/packages/rank/eslint.config.mjs | 3 + foundations/core/packages/rank/package.json | 1 + foundations/core/packages/retry/.eslintrc.js | 7 -- .../core/packages/retry/eslint.config.mjs | 3 + foundations/core/packages/retry/package.json | 1 + foundations/core/packages/rpc/.eslintrc.js | 7 -- .../core/packages/rpc/eslint.config.mjs | 3 + foundations/core/packages/rpc/package.json | 1 + .../core/packages/storage-client/.eslintrc.js | 7 -- .../packages/storage-client/eslint.config.mjs | 3 + .../core/packages/storage-client/package.json | 1 + .../core/packages/storage/.eslintrc.js | 7 -- .../core/packages/storage/eslint.config.mjs | 3 + .../core/packages/storage/package.json | 1 + .../core/packages/text-core/.eslintrc.js | 7 -- .../core/packages/text-core/eslint.config.mjs | 3 + .../core/packages/text-core/package.json | 1 + .../core/packages/text-html/.eslintrc.js | 7 -- .../core/packages/text-html/eslint.config.mjs | 3 + .../core/packages/text-html/package.json | 1 + .../core/packages/text-markdown/.eslintrc.js | 7 -- .../packages/text-markdown/eslint.config.mjs | 3 + .../core/packages/text-markdown/package.json | 1 + .../core/packages/text-ydoc/.eslintrc.js | 7 -- .../core/packages/text-ydoc/eslint.config.mjs | 3 + .../core/packages/text-ydoc/package.json | 1 + foundations/core/packages/text/.eslintrc.js | 7 -- .../core/packages/text/eslint.config.mjs | 3 + foundations/core/packages/text/package.json | 1 + foundations/core/packages/token/.eslintrc.js | 7 -- .../core/packages/token/eslint.config.mjs | 3 + foundations/core/packages/token/package.json | 1 + foundations/net/packages/backrpc/.eslintrc.js | 7 -- .../net/packages/backrpc/eslint.config.mjs | 3 + foundations/net/packages/backrpc/package.json | 3 +- foundations/net/packages/client/.eslintrc.js | 7 -- .../net/packages/client/eslint.config.mjs | 3 + foundations/net/packages/client/package.json | 3 +- foundations/net/packages/core/.eslintrc.js | 7 -- .../net/packages/core/eslint.config.mjs | 3 + foundations/net/packages/core/package.json | 3 +- foundations/net/packages/server/.eslintrc.js | 7 -- .../net/packages/server/eslint.config.mjs | 3 + foundations/net/packages/server/package.json | 3 +- foundations/net/pods/network-pod/.eslintrc.js | 7 -- .../net/pods/network-pod/eslint.config.mjs | 3 + foundations/net/pods/network-pod/package.json | 3 +- .../net/pods/network-tool/.eslintrc.js | 7 -- .../net/pods/network-tool/eslint.config.mjs | 3 + .../net/pods/network-tool/package.json | 3 +- foundations/net/tests/.eslintrc.js | 7 -- foundations/net/tests/eslint.config.mjs | 3 + foundations/net/tests/package.json | 3 +- .../server/common/scripts/package-lock.json | 3 +- .../server/common/scripts/package.json | 3 +- .../server/packages/client/.eslintrc.js | 7 -- .../server/packages/client/eslint.config.mjs | 3 + .../server/packages/client/package.json | 1 + .../packages/collaboration/.eslintrc.js | 7 -- .../packages/collaboration/eslint.config.mjs | 3 + foundations/server/packages/core/.eslintrc.js | 7 -- .../server/packages/core/eslint.config.mjs | 3 + .../server/packages/datalake/.eslintrc.js | 7 -- .../packages/datalake/eslint.config.mjs | 3 + .../server/packages/elastic/.eslintrc.js | 7 -- .../server/packages/elastic/eslint.config.mjs | 3 + .../server/packages/hulylake/.eslintrc.js | 7 -- .../packages/hulylake/eslint.config.mjs | 3 + .../server/packages/kafka/.eslintrc.js | 7 -- .../server/packages/kafka/eslint.config.mjs | 3 + .../server/packages/middleware/.eslintrc.js | 7 -- .../packages/middleware/eslint.config.mjs | 3 + .../server/packages/minio/.eslintrc.js | 7 -- .../server/packages/minio/eslint.config.mjs | 3 + .../server/packages/mongo/.eslintrc.js | 7 -- .../server/packages/mongo/eslint.config.mjs | 3 + .../server/packages/postgres/.eslintrc.js | 7 -- .../packages/postgres/eslint.config.mjs | 3 + foundations/server/packages/s3/.eslintrc.js | 7 -- .../server/packages/s3/eslint.config.mjs | 3 + .../packages/server-storage/.eslintrc.js | 7 -- .../packages/server-storage/eslint.config.mjs | 3 + .../server/packages/server/.eslintrc.js | 7 -- .../server/packages/server/eslint.config.mjs | 3 + foundations/utils/common/scripts/package.json | 3 +- .../utils/packages/platform-rig/bin/format.js | 9 ++- .../utils/packages/platform-rig/package.json | 2 + .../profiles/assets/eslint.config.json | 11 ---- .../profiles/assets/eslint.config.mjs | 24 +++++++ .../profiles/default/eslint.config.json | 12 ---- .../profiles/default/eslint.config.mjs | 28 ++++++++ .../profiles/legacy-compatibility-rules.json | 1 + .../profiles/model/eslint.config.json | 11 ---- .../profiles/model/eslint.config.mjs | 24 +++++++ .../profiles/node/eslint.config.json | 11 ---- .../profiles/node/eslint.config.mjs | 24 +++++++ .../profiles/package/eslint.config.json | 12 ---- .../profiles/package/eslint.config.mjs | 25 +++++++ .../profiles/ui/eslint.config.json | 66 ------------------- .../profiles/ui/eslint.config.mjs | 61 +++++++++++++++++ .../utils/packages/ui-test/.eslintrc.js | 8 --- foundations/utils/packages/ui-test/.npmignore | 8 --- .../utils/packages/ui-test/config/rig.json | 5 -- .../utils/packages/ui-test/jest.config.js | 7 -- .../utils/packages/ui-test/package.json | 61 ----------------- .../utils/packages/ui-test/postcss.config.js | 5 -- .../ui-test/src/component/Test.svelte | 6 -- .../utils/packages/ui-test/src/index.ts | 2 - .../utils/packages/ui-test/src/svelte.d.ts_ | 4 -- .../utils/packages/ui-test/svelte.config.js | 10 --- .../utils/packages/ui-test/tsconfig.json | 12 ---- foundations/utils/rush.json | 5 -- models/achievement/.eslintrc.js | 7 -- models/achievement/eslint.config.mjs | 3 + models/activity/.eslintrc.js | 7 -- models/activity/eslint.config.mjs | 3 + models/ai-assistant/.eslintrc.js | 7 -- models/ai-assistant/eslint.config.mjs | 3 + models/ai-bot/.eslintrc.js | 7 -- models/ai-bot/eslint.config.mjs | 3 + models/all/.eslintrc.js | 7 -- models/all/eslint.config.mjs | 3 + models/analytics-collector/.eslintrc.js | 7 -- models/analytics-collector/eslint.config.mjs | 3 + models/attachment/.eslintrc.js | 7 -- models/attachment/eslint.config.mjs | 3 + models/billing/.eslintrc.js | 7 -- models/billing/eslint.config.mjs | 3 + models/bitrix/.eslintrc.js | 7 -- models/bitrix/eslint.config.mjs | 3 + models/board/.eslintrc.js | 7 -- models/board/eslint.config.mjs | 3 + models/calendar/.eslintrc.js | 7 -- models/calendar/eslint.config.mjs | 3 + models/card/.eslintrc.js | 7 -- models/card/eslint.config.mjs | 3 + models/chunter/.eslintrc.js | 7 -- models/chunter/eslint.config.mjs | 3 + models/contact/.eslintrc.js | 7 -- models/contact/eslint.config.mjs | 3 + models/controlled-documents/.eslintrc.js | 7 -- models/controlled-documents/eslint.config.mjs | 3 + models/converter/.eslintrc.js | 7 -- models/converter/eslint.config.mjs | 3 + models/core/.eslintrc.js | 7 -- models/core/eslint.config.mjs | 3 + models/desktop-downloads/.eslintrc.js | 7 -- models/desktop-downloads/eslint.config.mjs | 3 + models/desktop-preferences/.eslintrc.js | 7 -- models/desktop-preferences/eslint.config.mjs | 3 + models/document/.eslintrc.js | 7 -- models/document/eslint.config.mjs | 3 + models/drive/.eslintrc.js | 7 -- models/drive/eslint.config.mjs | 3 + models/emoji/.eslintrc.js | 7 -- models/emoji/eslint.config.mjs | 3 + models/export/.eslintrc.js | 7 -- models/export/eslint.config.mjs | 3 + models/gmail/.eslintrc.js | 7 -- models/gmail/eslint.config.mjs | 3 + models/guest/.eslintrc.js | 7 -- models/guest/eslint.config.mjs | 3 + models/hr/.eslintrc.js | 7 -- models/hr/eslint.config.mjs | 3 + models/huly-mail/.eslintrc.js | 7 -- models/huly-mail/eslint.config.mjs | 3 + models/inbox/eslint.config.mjs | 3 + models/inventory/.eslintrc.js | 7 -- models/inventory/eslint.config.mjs | 3 + models/lead/.eslintrc.js | 7 -- models/lead/eslint.config.mjs | 3 + models/love/.eslintrc.js | 7 -- models/love/eslint.config.mjs | 3 + models/mail/.eslintrc.js | 7 -- models/mail/eslint.config.mjs | 3 + models/media/.eslintrc.js | 7 -- models/media/eslint.config.mjs | 3 + models/notification/.eslintrc.js | 7 -- models/notification/eslint.config.mjs | 3 + models/preference/.eslintrc.js | 7 -- models/preference/eslint.config.mjs | 3 + models/presence/.eslintrc.js | 7 -- models/presence/eslint.config.mjs | 3 + models/presentation/.eslintrc.js | 7 -- models/presentation/eslint.config.mjs | 3 + models/print/.eslintrc.js | 7 -- models/print/eslint.config.mjs | 3 + models/process/.eslintrc.js | 7 -- models/process/eslint.config.mjs | 3 + models/products/.eslintrc.js | 7 -- models/products/eslint.config.mjs | 3 + models/pulse/.eslintrc.js | 7 -- models/pulse/eslint.config.mjs | 3 + models/questions/.eslintrc.js | 7 -- models/questions/eslint.config.mjs | 3 + models/rating/.eslintrc.js | 7 -- models/rating/eslint.config.mjs | 3 + models/recorder/.eslintrc.js | 7 -- models/recorder/eslint.config.mjs | 3 + models/recruit/.eslintrc.js | 7 -- models/recruit/eslint.config.mjs | 3 + models/request/.eslintrc.js | 7 -- models/request/eslint.config.mjs | 3 + models/server-activity/.eslintrc.js | 7 -- models/server-activity/eslint.config.mjs | 3 + models/server-ai-bot/.eslintrc.js | 7 -- models/server-ai-bot/eslint.config.mjs | 3 + models/server-attachment/.eslintrc.js | 7 -- models/server-attachment/eslint.config.mjs | 3 + models/server-calendar/.eslintrc.js | 7 -- models/server-calendar/eslint.config.mjs | 3 + models/server-card/.eslintrc.js | 7 -- models/server-card/eslint.config.mjs | 3 + models/server-chunter/.eslintrc.js | 7 -- models/server-chunter/eslint.config.mjs | 3 + models/server-collaboration/.eslintrc.js | 7 -- models/server-collaboration/eslint.config.mjs | 3 + models/server-contact/.eslintrc.js | 7 -- models/server-contact/eslint.config.mjs | 3 + .../server-controlled-documents/.eslintrc.js | 7 -- .../eslint.config.mjs | 3 + models/server-core/.eslintrc.js | 7 -- models/server-core/eslint.config.mjs | 3 + models/server-document/.eslintrc.js | 7 -- models/server-document/eslint.config.mjs | 3 + models/server-drive/.eslintrc.js | 7 -- models/server-drive/eslint.config.mjs | 3 + models/server-gmail/.eslintrc.js | 7 -- models/server-gmail/eslint.config.mjs | 3 + models/server-guest/.eslintrc.js | 7 -- models/server-guest/eslint.config.mjs | 3 + models/server-hr/.eslintrc.js | 7 -- models/server-hr/eslint.config.mjs | 3 + models/server-inventory/.eslintrc.js | 7 -- models/server-inventory/eslint.config.mjs | 3 + models/server-lead/.eslintrc.js | 7 -- models/server-lead/eslint.config.mjs | 3 + models/server-love/.eslintrc.js | 7 -- models/server-love/eslint.config.mjs | 3 + models/server-notification/.eslintrc.js | 7 -- models/server-notification/eslint.config.mjs | 3 + models/server-process/.eslintrc.js | 7 -- models/server-process/eslint.config.mjs | 3 + models/server-products/.eslintrc.js | 7 -- models/server-products/eslint.config.mjs | 3 + models/server-recruit/.eslintrc.js | 7 -- models/server-recruit/eslint.config.mjs | 3 + models/server-request/.eslintrc.js | 7 -- models/server-request/eslint.config.mjs | 3 + models/server-setting/.eslintrc.js | 7 -- models/server-setting/eslint.config.mjs | 3 + models/server-tags/.eslintrc.js | 7 -- models/server-tags/eslint.config.mjs | 3 + models/server-task/.eslintrc.js | 7 -- models/server-task/eslint.config.mjs | 3 + models/server-telegram/.eslintrc.js | 7 -- models/server-telegram/eslint.config.mjs | 3 + models/server-templates/.eslintrc.js | 7 -- models/server-templates/eslint.config.mjs | 3 + models/server-time/.eslintrc.js | 7 -- models/server-time/eslint.config.mjs | 3 + models/server-tracker/.eslintrc.js | 7 -- models/server-tracker/eslint.config.mjs | 3 + models/server-training/.eslintrc.js | 7 -- models/server-training/eslint.config.mjs | 3 + models/server-view/.eslintrc.js | 7 -- models/server-view/eslint.config.mjs | 3 + models/setting/.eslintrc.js | 7 -- models/setting/eslint.config.mjs | 3 + models/support/.eslintrc.js | 7 -- models/support/eslint.config.mjs | 3 + models/survey/.eslintrc.js | 7 -- models/survey/eslint.config.mjs | 3 + models/tags/.eslintrc.js | 7 -- models/tags/eslint.config.mjs | 3 + models/task/.eslintrc.js | 7 -- models/task/eslint.config.mjs | 3 + models/telegram/.eslintrc.js | 7 -- models/telegram/eslint.config.mjs | 3 + models/templates/.eslintrc.js | 7 -- models/templates/eslint.config.mjs | 3 + models/test-management/.eslintrc.js | 7 -- models/test-management/eslint.config.mjs | 3 + models/text-editor/.eslintrc.js | 7 -- models/text-editor/eslint.config.mjs | 3 + models/time/.eslintrc.js | 7 -- models/time/eslint.config.mjs | 3 + models/tracker/.eslintrc.js | 7 -- models/tracker/eslint.config.mjs | 3 + models/training/.eslintrc.js | 7 -- models/training/eslint.config.mjs | 3 + models/uploader/.eslintrc.js | 7 -- models/uploader/eslint.config.mjs | 3 + models/view/.eslintrc.js | 7 -- models/view/eslint.config.mjs | 3 + models/workbench/.eslintrc.js | 7 -- models/workbench/eslint.config.mjs | 3 + packages/analytics-providers/.eslintrc.js | 7 -- .../analytics-providers/eslint.config.mjs | 3 + packages/billing-client/.eslintrc.js | 7 -- packages/billing-client/eslint.config.mjs | 3 + packages/doc-convert/eslint.config.mjs | 3 + packages/highlight/.eslintrc.js | 4 -- packages/highlight/eslint.config.mjs | 3 + packages/hls/.eslintrc.js | 4 -- packages/hls/eslint.config.mjs | 3 + packages/importer/.eslintrc.js | 7 -- packages/importer/eslint.config.mjs | 3 + packages/integration-client/.eslintrc.js | 7 -- packages/integration-client/eslint.config.mjs | 3 + packages/kanban/.eslintrc.js | 4 -- packages/kanban/eslint.config.mjs | 3 + packages/kvs-client/.eslintrc.js | 7 -- packages/kvs-client/eslint.config.mjs | 3 + packages/panel/.eslintrc.js | 4 -- packages/panel/eslint.config.mjs | 3 + packages/payment-client/.eslintrc.js | 7 -- packages/payment-client/eslint.config.mjs | 3 + packages/presentation/.eslintrc.js | 4 -- packages/presentation/eslint.config.mjs | 3 + packages/rekoni/.eslintrc.js | 7 -- packages/rekoni/eslint.config.mjs | 3 + packages/theme/.eslintrc.js | 4 -- packages/theme/eslint.config.mjs | 3 + packages/ui/.eslintrc.js | 4 -- packages/ui/eslint.config.mjs | 3 + plugins/achievement-assets/.eslintrc.js | 7 -- plugins/achievement-assets/eslint.config.mjs | 3 + plugins/achievement-resources/.eslintrc.js | 4 -- .../achievement-resources/eslint.config.mjs | 3 + plugins/achievement/.eslintrc.js | 7 -- plugins/achievement/eslint.config.mjs | 3 + plugins/activity-assets/.eslintrc.js | 7 -- plugins/activity-assets/eslint.config.mjs | 3 + plugins/activity-resources/.eslintrc.js | 4 -- plugins/activity-resources/eslint.config.mjs | 3 + plugins/activity/.eslintrc.js | 7 -- plugins/activity/eslint.config.mjs | 3 + plugins/admin/eslint.config.mjs | 3 + plugins/ai-assistant-assets/.eslintrc.js | 7 -- plugins/ai-assistant-assets/eslint.config.mjs | 3 + plugins/ai-assistant-resources/.eslintrc.js | 4 -- .../ai-assistant-resources/eslint.config.mjs | 3 + plugins/ai-assistant/.eslintrc.js | 7 -- plugins/ai-assistant/eslint.config.mjs | 3 + plugins/ai-bot-assets/eslint.config.mjs | 3 + plugins/ai-bot-resources/.eslintrc.js | 4 -- plugins/ai-bot-resources/eslint.config.mjs | 3 + plugins/ai-bot/.eslintrc.js | 7 -- plugins/ai-bot/eslint.config.mjs | 3 + .../analytics-collector-assets/.eslintrc.js | 7 -- .../eslint.config.mjs | 3 + .../.eslintrc.js | 4 -- .../eslint.config.mjs | 3 + plugins/analytics-collector/.eslintrc.js | 7 -- plugins/analytics-collector/eslint.config.mjs | 3 + plugins/attachment-assets/.eslintrc.js | 7 -- plugins/attachment-assets/eslint.config.mjs | 3 + plugins/attachment-resources/.eslintrc.js | 4 -- .../attachment-resources/eslint.config.mjs | 3 + plugins/attachment/.eslintrc.js | 7 -- plugins/attachment/eslint.config.mjs | 3 + plugins/billing-assets/.eslintrc.js | 7 -- plugins/billing-assets/eslint.config.mjs | 3 + plugins/billing-resources/.eslintrc.js | 4 -- plugins/billing-resources/eslint.config.mjs | 3 + plugins/billing/.eslintrc.js | 7 -- plugins/billing/eslint.config.mjs | 3 + plugins/bitrix-assets/.eslintrc.js | 7 -- plugins/bitrix-assets/eslint.config.mjs | 3 + plugins/bitrix-resources/.eslintrc.js | 4 -- plugins/bitrix-resources/eslint.config.mjs | 3 + plugins/bitrix/.eslintrc.js | 7 -- plugins/bitrix/eslint.config.mjs | 3 + plugins/board-assets/.eslintrc.js | 7 -- plugins/board-assets/eslint.config.mjs | 3 + plugins/board-resources/.eslintrc.js | 4 -- plugins/board-resources/eslint.config.mjs | 3 + plugins/board/.eslintrc.js | 7 -- plugins/board/eslint.config.mjs | 3 + plugins/calendar-assets/.eslintrc.js | 7 -- plugins/calendar-assets/eslint.config.mjs | 3 + plugins/calendar-resources/.eslintrc.js | 4 -- plugins/calendar-resources/eslint.config.mjs | 3 + plugins/calendar/.eslintrc.js | 7 -- plugins/calendar/eslint.config.mjs | 3 + plugins/card-assets/.eslintrc.js | 7 -- plugins/card-assets/eslint.config.mjs | 3 + plugins/card-resources/.eslintrc.js | 4 -- plugins/card-resources/eslint.config.mjs | 3 + plugins/card/.eslintrc.js | 7 -- plugins/card/eslint.config.mjs | 3 + plugins/chat-resources/eslint.config.mjs | 3 + plugins/chunter-assets/.eslintrc.js | 7 -- plugins/chunter-assets/eslint.config.mjs | 3 + plugins/chunter-resources/.eslintrc.js | 4 -- plugins/chunter-resources/eslint.config.mjs | 3 + plugins/chunter/.eslintrc.js | 7 -- plugins/chunter/eslint.config.mjs | 3 + plugins/client-resources/.eslintrc.js | 7 -- plugins/client-resources/eslint.config.mjs | 3 + plugins/client-resources/package.json | 3 +- plugins/client/.eslintrc.js | 7 -- plugins/client/eslint.config.mjs | 3 + plugins/client/package.json | 3 +- plugins/contact-assets/.eslintrc.js | 7 -- plugins/contact-assets/eslint.config.mjs | 3 + plugins/contact-resources/.eslintrc.js | 4 -- plugins/contact-resources/eslint.config.mjs | 3 + plugins/contact/.eslintrc.js | 7 -- plugins/contact/eslint.config.mjs | 3 + .../controlled-documents-assets/.eslintrc.js | 7 -- .../eslint.config.mjs | 3 + .../.eslintrc.js | 4 -- .../eslint.config.mjs | 3 + plugins/controlled-documents/.eslintrc.js | 7 -- .../controlled-documents/eslint.config.mjs | 3 + plugins/converter-resources/.eslintrc.js | 4 -- plugins/converter-resources/eslint.config.mjs | 3 + plugins/converter/.eslintrc.js | 7 -- plugins/converter/eslint.config.mjs | 3 + plugins/desktop-downloads-assets/.eslintrc.js | 7 -- .../eslint.config.mjs | 3 + .../desktop-downloads-resources/.eslintrc.js | 4 -- .../eslint.config.mjs | 3 + plugins/desktop-downloads/.eslintrc.js | 7 -- plugins/desktop-downloads/eslint.config.mjs | 3 + .../desktop-preferences-assets/.eslintrc.js | 7 -- .../eslint.config.mjs | 3 + .../.eslintrc.js | 4 -- .../eslint.config.mjs | 3 + plugins/desktop-preferences/.eslintrc.js | 7 -- plugins/desktop-preferences/eslint.config.mjs | 3 + plugins/devmodel-resources/.eslintrc.js | 4 -- plugins/devmodel-resources/eslint.config.mjs | 3 + plugins/devmodel/.eslintrc.js | 7 -- plugins/devmodel/eslint.config.mjs | 3 + plugins/diffview-assets/.eslintrc.js | 7 -- plugins/diffview-assets/eslint.config.mjs | 3 + plugins/diffview-resources/.eslintrc.js | 4 -- plugins/diffview-resources/eslint.config.mjs | 3 + plugins/diffview/.eslintrc.js | 7 -- plugins/diffview/eslint.config.mjs | 3 + plugins/document-assets/.eslintrc.js | 7 -- plugins/document-assets/eslint.config.mjs | 3 + plugins/document-resources/.eslintrc.js | 4 -- plugins/document-resources/eslint.config.mjs | 3 + plugins/document/.eslintrc.js | 7 -- plugins/document/eslint.config.mjs | 3 + plugins/drive-assets/.eslintrc.js | 7 -- plugins/drive-assets/eslint.config.mjs | 3 + plugins/drive-resources/.eslintrc.js | 4 -- plugins/drive-resources/eslint.config.mjs | 3 + plugins/drive/.eslintrc.js | 7 -- plugins/drive/eslint.config.mjs | 3 + plugins/emoji-assets/.eslintrc.js | 7 -- plugins/emoji-assets/eslint.config.mjs | 3 + plugins/emoji-resources/.eslintrc.js | 4 -- plugins/emoji-resources/eslint.config.mjs | 3 + plugins/emoji/.eslintrc.js | 7 -- plugins/emoji/eslint.config.mjs | 3 + plugins/export-assets/.eslintrc.js | 7 -- plugins/export-assets/eslint.config.mjs | 3 + plugins/export-resources/.eslintrc.js | 4 -- plugins/export-resources/eslint.config.mjs | 3 + plugins/export/.eslintrc.js | 7 -- plugins/export/eslint.config.mjs | 3 + plugins/github-next/eslint.config.mjs | 3 + plugins/global-profile-assets/.eslintrc.js | 7 -- .../global-profile-assets/eslint.config.mjs | 3 + plugins/global-profile-resources/.eslintrc.js | 4 -- .../eslint.config.mjs | 3 + plugins/global-profile/.eslintrc.js | 7 -- plugins/global-profile/eslint.config.mjs | 3 + plugins/gmail-assets/.eslintrc.js | 7 -- plugins/gmail-assets/eslint.config.mjs | 3 + plugins/gmail-resources/.eslintrc.js | 4 -- plugins/gmail-resources/eslint.config.mjs | 3 + plugins/gmail/.eslintrc.js | 7 -- plugins/gmail/eslint.config.mjs | 3 + plugins/guest-assets/.eslintrc.js | 7 -- plugins/guest-assets/eslint.config.mjs | 3 + plugins/guest-resources/.eslintrc.js | 4 -- plugins/guest-resources/eslint.config.mjs | 3 + plugins/guest/.eslintrc.js | 7 -- plugins/guest/eslint.config.mjs | 3 + plugins/hr-assets/.eslintrc.js | 7 -- plugins/hr-assets/eslint.config.mjs | 3 + plugins/hr-resources/.eslintrc.js | 4 -- plugins/hr-resources/eslint.config.mjs | 3 + plugins/hr/.eslintrc.js | 7 -- plugins/hr/eslint.config.mjs | 3 + plugins/huly-mail-assets/.eslintrc.js | 7 -- plugins/huly-mail-assets/eslint.config.mjs | 3 + plugins/huly-mail-resources/.eslintrc.js | 4 -- plugins/huly-mail-resources/eslint.config.mjs | 3 + plugins/huly-mail/.eslintrc.js | 7 -- plugins/huly-mail/eslint.config.mjs | 3 + plugins/image-cropper-resources/.eslintrc.js | 4 -- .../image-cropper-resources/eslint.config.mjs | 3 + plugins/image-cropper/.eslintrc.js | 7 -- plugins/image-cropper/eslint.config.mjs | 3 + plugins/inbox-resources/eslint.config.mjs | 3 + plugins/integration/eslint.config.mjs | 3 + plugins/inventory-assets/.eslintrc.js | 7 -- plugins/inventory-assets/eslint.config.mjs | 3 + plugins/inventory-resources/.eslintrc.js | 4 -- plugins/inventory-resources/eslint.config.mjs | 3 + plugins/inventory/.eslintrc.js | 7 -- plugins/inventory/eslint.config.mjs | 3 + plugins/lead-assets/.eslintrc.js | 7 -- plugins/lead-assets/eslint.config.mjs | 3 + plugins/lead-resources/.eslintrc.js | 4 -- plugins/lead-resources/eslint.config.mjs | 3 + plugins/lead/.eslintrc.js | 7 -- plugins/lead/eslint.config.mjs | 3 + plugins/login-assets/.eslintrc.js | 7 -- plugins/login-assets/eslint.config.mjs | 3 + plugins/login-resources/.eslintrc.js | 4 -- plugins/login-resources/eslint.config.mjs | 3 + plugins/login/.eslintrc.js | 7 -- plugins/login/eslint.config.mjs | 3 + plugins/love-assets/.eslintrc.js | 7 -- plugins/love-assets/eslint.config.mjs | 3 + plugins/love-resources/.eslintrc.js | 4 -- plugins/love-resources/eslint.config.mjs | 3 + plugins/love/.eslintrc.js | 7 -- plugins/love/eslint.config.mjs | 3 + plugins/mail-assets/.eslintrc.js | 7 -- plugins/mail-assets/eslint.config.mjs | 3 + plugins/mail/.eslintrc.js | 7 -- plugins/mail/eslint.config.mjs | 3 + plugins/media-assets/.eslintrc.js | 7 -- plugins/media-assets/eslint.config.mjs | 3 + plugins/media-resources/.eslintrc.js | 4 -- plugins/media-resources/eslint.config.mjs | 3 + plugins/media/.eslintrc.js | 7 -- plugins/media/eslint.config.mjs | 3 + plugins/notification-assets/.eslintrc.js | 7 -- plugins/notification-assets/eslint.config.mjs | 3 + plugins/notification-resources/.eslintrc.js | 4 -- .../notification-resources/eslint.config.mjs | 3 + plugins/notification/.eslintrc.js | 7 -- plugins/notification/eslint.config.mjs | 3 + plugins/onboard-assets/.eslintrc.js | 7 -- plugins/onboard-assets/eslint.config.mjs | 3 + plugins/onboard-resources/.eslintrc.js | 4 -- plugins/onboard-resources/eslint.config.mjs | 3 + plugins/onboard/.eslintrc.js | 7 -- plugins/onboard/eslint.config.mjs | 3 + plugins/openai/.eslintrc.js | 7 -- plugins/openai/eslint.config.mjs | 3 + plugins/preference-assets/.eslintrc.js | 7 -- plugins/preference-assets/eslint.config.mjs | 3 + plugins/preference/.eslintrc.js | 7 -- plugins/preference/eslint.config.mjs | 3 + plugins/presence-resources/.eslintrc.js | 4 -- plugins/presence-resources/eslint.config.mjs | 3 + plugins/presence/.eslintrc.js | 7 -- plugins/presence/eslint.config.mjs | 3 + plugins/print-assets/.eslintrc.js | 7 -- plugins/print-assets/eslint.config.mjs | 3 + plugins/print-resources/.eslintrc.js | 4 -- plugins/print-resources/eslint.config.mjs | 3 + plugins/print/.eslintrc.js | 7 -- plugins/print/eslint.config.mjs | 3 + plugins/process-assets/.eslintrc.js | 7 -- plugins/process-assets/eslint.config.mjs | 3 + plugins/process-resources/.eslintrc.js | 4 -- plugins/process-resources/eslint.config.mjs | 3 + plugins/process/.eslintrc.js | 7 -- plugins/process/eslint.config.mjs | 3 + plugins/products-assets/.eslintrc.js | 7 -- plugins/products-assets/eslint.config.mjs | 3 + plugins/products-resources/.eslintrc.js | 4 -- plugins/products-resources/eslint.config.mjs | 3 + plugins/products/.eslintrc.js | 7 -- plugins/products/eslint.config.mjs | 3 + plugins/pulse/.eslintrc.js | 7 -- plugins/pulse/eslint.config.mjs | 3 + plugins/qalico-assets/eslint.config.mjs | 3 + plugins/qalico/eslint.config.mjs | 3 + plugins/questions-assets/.eslintrc.js | 7 -- plugins/questions-assets/eslint.config.mjs | 3 + plugins/questions-resources/.eslintrc.js | 4 -- plugins/questions-resources/eslint.config.mjs | 3 + plugins/questions/.eslintrc.js | 7 -- plugins/questions/eslint.config.mjs | 3 + plugins/rating-assets/.eslintrc.js | 7 -- plugins/rating-assets/eslint.config.mjs | 3 + plugins/rating-resources/.eslintrc.js | 4 -- plugins/rating-resources/eslint.config.mjs | 3 + plugins/rating/.eslintrc.js | 7 -- plugins/rating/eslint.config.mjs | 3 + plugins/recorder-assets/.eslintrc.js | 7 -- plugins/recorder-assets/eslint.config.mjs | 3 + plugins/recorder-resources/.eslintrc.js | 4 -- plugins/recorder-resources/eslint.config.mjs | 3 + plugins/recorder/.eslintrc.js | 7 -- plugins/recorder/eslint.config.mjs | 3 + plugins/recruit-assets/.eslintrc.js | 7 -- plugins/recruit-assets/eslint.config.mjs | 3 + plugins/recruit-resources/.eslintrc.js | 4 -- plugins/recruit-resources/eslint.config.mjs | 3 + plugins/recruit/.eslintrc.js | 7 -- plugins/recruit/eslint.config.mjs | 3 + plugins/request-assets/.eslintrc.js | 7 -- plugins/request-assets/eslint.config.mjs | 3 + plugins/request-resources/.eslintrc.js | 4 -- plugins/request-resources/eslint.config.mjs | 3 + plugins/request/.eslintrc.js | 7 -- plugins/request/eslint.config.mjs | 3 + plugins/setting-assets/.eslintrc.js | 7 -- plugins/setting-assets/eslint.config.mjs | 3 + plugins/setting-resources/.eslintrc.js | 4 -- plugins/setting-resources/eslint.config.mjs | 3 + plugins/setting/.eslintrc.js | 7 -- plugins/setting/eslint.config.mjs | 3 + plugins/sign/.eslintrc.js | 7 -- plugins/sign/eslint.config.mjs | 3 + plugins/support-assets/.eslintrc.js | 7 -- plugins/support-assets/eslint.config.mjs | 3 + plugins/support-resources/.eslintrc.js | 4 -- plugins/support-resources/eslint.config.mjs | 3 + plugins/support/.eslintrc.js | 7 -- plugins/support/eslint.config.mjs | 3 + plugins/survey-assets/.eslintrc.js | 7 -- plugins/survey-assets/eslint.config.mjs | 3 + plugins/survey-resources/.eslintrc.js | 4 -- plugins/survey-resources/eslint.config.mjs | 3 + plugins/survey/.eslintrc.js | 7 -- plugins/survey/eslint.config.mjs | 3 + plugins/tags-assets/.eslintrc.js | 7 -- plugins/tags-assets/eslint.config.mjs | 3 + plugins/tags-resources/.eslintrc.js | 4 -- plugins/tags-resources/eslint.config.mjs | 3 + plugins/tags/.eslintrc.js | 7 -- plugins/tags/eslint.config.mjs | 3 + plugins/task-assets/.eslintrc.js | 7 -- plugins/task-assets/eslint.config.mjs | 3 + plugins/task-resources/.eslintrc.js | 4 -- plugins/task-resources/eslint.config.mjs | 3 + plugins/task/.eslintrc.js | 7 -- plugins/task/eslint.config.mjs | 3 + plugins/telegram-assets/.eslintrc.js | 7 -- plugins/telegram-assets/eslint.config.mjs | 3 + plugins/telegram-resources/.eslintrc.js | 4 -- plugins/telegram-resources/eslint.config.mjs | 3 + plugins/telegram/.eslintrc.js | 7 -- plugins/telegram/eslint.config.mjs | 3 + plugins/templates-assets/.eslintrc.js | 7 -- plugins/templates-assets/eslint.config.mjs | 3 + plugins/templates-resources/.eslintrc.js | 4 -- plugins/templates-resources/eslint.config.mjs | 3 + plugins/templates/.eslintrc.js | 7 -- plugins/templates/eslint.config.mjs | 3 + plugins/test-management-assets/.eslintrc.js | 7 -- .../test-management-assets/eslint.config.mjs | 3 + .../test-management-resources/.eslintrc.js | 4 -- .../eslint.config.mjs | 3 + plugins/test-management/.eslintrc.js | 7 -- plugins/test-management/eslint.config.mjs | 3 + plugins/text-editor-assets/.eslintrc.js | 7 -- plugins/text-editor-assets/eslint.config.mjs | 3 + plugins/text-editor-resources/.eslintrc.js | 4 -- .../text-editor-resources/eslint.config.mjs | 3 + plugins/text-editor/.eslintrc.js | 7 -- plugins/text-editor/eslint.config.mjs | 3 + plugins/time-assets/.eslintrc.js | 7 -- plugins/time-assets/eslint.config.mjs | 3 + plugins/time-resources/.eslintrc.js | 4 -- plugins/time-resources/eslint.config.mjs | 3 + plugins/time/.eslintrc.js | 7 -- plugins/time/eslint.config.mjs | 3 + plugins/tracker-assets/.eslintrc.js | 7 -- plugins/tracker-assets/eslint.config.mjs | 3 + plugins/tracker-resources/.eslintrc.js | 4 -- plugins/tracker-resources/eslint.config.mjs | 3 + plugins/tracker/.eslintrc.js | 7 -- plugins/tracker/eslint.config.mjs | 3 + plugins/training-assets/.eslintrc.js | 7 -- plugins/training-assets/eslint.config.mjs | 3 + plugins/training-resources/.eslintrc.js | 4 -- plugins/training-resources/eslint.config.mjs | 3 + plugins/training/.eslintrc.js | 7 -- plugins/training/eslint.config.mjs | 3 + plugins/uploader-assets/.eslintrc.js | 7 -- plugins/uploader-assets/eslint.config.mjs | 3 + plugins/uploader-resources/.eslintrc.js | 4 -- plugins/uploader-resources/eslint.config.mjs | 3 + plugins/uploader/.eslintrc.js | 7 -- plugins/uploader/eslint.config.mjs | 3 + plugins/view-assets/.eslintrc.js | 7 -- plugins/view-assets/eslint.config.mjs | 3 + plugins/view-resources/.eslintrc.js | 4 -- plugins/view-resources/eslint.config.mjs | 3 + plugins/view/.eslintrc.js | 7 -- plugins/view/eslint.config.mjs | 3 + plugins/workbench-assets/.eslintrc.js | 7 -- plugins/workbench-assets/eslint.config.mjs | 3 + plugins/workbench-resources/.eslintrc.js | 4 -- plugins/workbench-resources/eslint.config.mjs | 3 + plugins/workbench/.eslintrc.js | 7 -- plugins/workbench/eslint.config.mjs | 3 + pods/account/.eslintrc.js | 7 -- pods/account/eslint.config.mjs | 3 + pods/authProviders/.eslintrc.js | 7 -- pods/authProviders/eslint.config.mjs | 3 + pods/backup/.eslintrc.js | 7 -- pods/backup/eslint.config.mjs | 3 + pods/collaborator/.eslintrc.js | 7 -- pods/collaborator/eslint.config.mjs | 3 + pods/front/.eslintrc.js | 7 -- pods/front/eslint.config.mjs | 3 + pods/fulltext/.eslintrc.js | 7 -- pods/fulltext/eslint.config.mjs | 3 + pods/link-preview/.eslintrc.js | 7 -- pods/link-preview/eslint.config.mjs | 3 + pods/media/.eslintrc.js | 7 -- pods/media/eslint.config.mjs | 3 + pods/preview/.eslintrc.js | 7 -- pods/preview/eslint.config.mjs | 3 + pods/server/.eslintrc.js | 7 -- pods/server/eslint.config.mjs | 3 + pods/stats/.eslintrc.js | 7 -- pods/stats/eslint.config.mjs | 3 + pods/workspace/.eslintrc.js | 7 -- pods/workspace/eslint.config.mjs | 3 + qms-tests/sanity/.eslintrc.js | 7 -- qms-tests/sanity/eslint.config.mjs | 3 + rush.json | 5 -- .../activity-resources/.eslintrc.js | 7 -- .../activity-resources/eslint.config.mjs | 3 + server-plugins/activity/.eslintrc.js | 7 -- server-plugins/activity/eslint.config.mjs | 3 + server-plugins/ai-bot-resources/.eslintrc.js | 7 -- .../ai-bot-resources/eslint.config.mjs | 3 + server-plugins/ai-bot/.eslintrc.js | 7 -- server-plugins/ai-bot/eslint.config.mjs | 3 + .../.eslintrc.js | 7 -- .../eslint.config.mjs | 3 + .../analytics-collector/.eslintrc.js | 7 -- .../analytics-collector/eslint.config.mjs | 3 + .../attachment-resources/.eslintrc.js | 7 -- .../attachment-resources/eslint.config.mjs | 3 + server-plugins/attachment/.eslintrc.js | 7 -- server-plugins/attachment/eslint.config.mjs | 3 + .../calendar-resources/.eslintrc.js | 7 -- .../calendar-resources/eslint.config.mjs | 3 + server-plugins/calendar/.eslintrc.js | 7 -- server-plugins/calendar/eslint.config.mjs | 3 + server-plugins/card-resources/.eslintrc.js | 7 -- .../card-resources/eslint.config.mjs | 3 + server-plugins/card/.eslintrc.js | 7 -- server-plugins/card/eslint.config.mjs | 3 + server-plugins/chunter-resources/.eslintrc.js | 7 -- .../chunter-resources/eslint.config.mjs | 3 + server-plugins/chunter/.eslintrc.js | 7 -- server-plugins/chunter/eslint.config.mjs | 3 + .../collaboration-resources/.eslintrc.js | 7 -- .../collaboration-resources/eslint.config.mjs | 3 + server-plugins/collaboration/.eslintrc.js | 7 -- .../collaboration/eslint.config.mjs | 3 + server-plugins/contact-resources/.eslintrc.js | 7 -- .../contact-resources/eslint.config.mjs | 3 + server-plugins/contact/.eslintrc.js | 7 -- server-plugins/contact/eslint.config.mjs | 3 + .../.eslintrc.js | 7 -- .../eslint.config.mjs | 3 + .../controlled-documents/.eslintrc.js | 7 -- .../controlled-documents/eslint.config.mjs | 3 + .../document-resources/.eslintrc.js | 7 -- .../document-resources/eslint.config.mjs | 3 + server-plugins/document/.eslintrc.js | 7 -- server-plugins/document/eslint.config.mjs | 3 + server-plugins/drive-resources/.eslintrc.js | 7 -- .../drive-resources/eslint.config.mjs | 3 + server-plugins/drive/.eslintrc.js | 7 -- server-plugins/drive/eslint.config.mjs | 3 + server-plugins/gmail-resources/.eslintrc.js | 7 -- .../gmail-resources/eslint.config.mjs | 3 + server-plugins/gmail/.eslintrc.js | 7 -- server-plugins/gmail/eslint.config.mjs | 3 + server-plugins/guest-resources/.eslintrc.js | 7 -- .../guest-resources/eslint.config.mjs | 3 + server-plugins/guest/.eslintrc.js | 7 -- server-plugins/guest/eslint.config.mjs | 3 + server-plugins/hr-resources/.eslintrc.js | 7 -- server-plugins/hr-resources/eslint.config.mjs | 3 + server-plugins/hr/.eslintrc.js | 7 -- server-plugins/hr/eslint.config.mjs | 3 + .../inventory-resources/.eslintrc.js | 7 -- .../inventory-resources/eslint.config.mjs | 3 + server-plugins/inventory/.eslintrc.js | 7 -- server-plugins/inventory/eslint.config.mjs | 3 + server-plugins/lead-resources/.eslintrc.js | 7 -- .../lead-resources/eslint.config.mjs | 3 + server-plugins/lead/.eslintrc.js | 7 -- server-plugins/lead/eslint.config.mjs | 3 + server-plugins/love-resources/.eslintrc.js | 7 -- .../love-resources/eslint.config.mjs | 3 + server-plugins/love/.eslintrc.js | 7 -- server-plugins/love/eslint.config.mjs | 3 + .../notification-resources/.eslintrc.js | 7 -- .../notification-resources/eslint.config.mjs | 3 + server-plugins/notification/.eslintrc.js | 7 -- server-plugins/notification/eslint.config.mjs | 3 + server-plugins/preference/.eslintrc.js | 7 -- server-plugins/preference/eslint.config.mjs | 3 + server-plugins/process-resources/.eslintrc.js | 7 -- .../process-resources/eslint.config.mjs | 3 + server-plugins/process/.eslintrc.js | 7 -- server-plugins/process/eslint.config.mjs | 3 + server-plugins/rating/.eslintrc.js | 7 -- server-plugins/rating/eslint.config.mjs | 3 + server-plugins/recruit-resources/.eslintrc.js | 7 -- .../recruit-resources/eslint.config.mjs | 3 + server-plugins/recruit/.eslintrc.js | 7 -- server-plugins/recruit/eslint.config.mjs | 3 + server-plugins/request-resources/.eslintrc.js | 7 -- .../request-resources/eslint.config.mjs | 3 + server-plugins/request/.eslintrc.js | 7 -- server-plugins/request/eslint.config.mjs | 3 + server-plugins/setting-resources/.eslintrc.js | 7 -- .../setting-resources/eslint.config.mjs | 3 + server-plugins/setting/.eslintrc.js | 7 -- server-plugins/setting/eslint.config.mjs | 3 + server-plugins/tags-resources/.eslintrc.js | 7 -- .../tags-resources/eslint.config.mjs | 3 + server-plugins/tags/.eslintrc.js | 7 -- server-plugins/tags/eslint.config.mjs | 3 + server-plugins/task-resources/.eslintrc.js | 7 -- .../task-resources/eslint.config.mjs | 3 + server-plugins/task/.eslintrc.js | 7 -- server-plugins/task/eslint.config.mjs | 3 + .../telegram-resources/.eslintrc.js | 7 -- .../telegram-resources/eslint.config.mjs | 3 + server-plugins/telegram/.eslintrc.js | 7 -- server-plugins/telegram/eslint.config.mjs | 3 + server-plugins/templates/.eslintrc.js | 7 -- server-plugins/templates/eslint.config.mjs | 3 + server-plugins/time-resources/.eslintrc.js | 7 -- .../time-resources/eslint.config.mjs | 3 + server-plugins/time/.eslintrc.js | 7 -- server-plugins/time/eslint.config.mjs | 3 + server-plugins/tracker-resources/.eslintrc.js | 7 -- .../tracker-resources/eslint.config.mjs | 3 + server-plugins/tracker/.eslintrc.js | 7 -- server-plugins/tracker/eslint.config.mjs | 3 + .../training-resources/.eslintrc.js | 7 -- .../training-resources/eslint.config.mjs | 3 + server-plugins/training/.eslintrc.js | 7 -- server-plugins/training/eslint.config.mjs | 3 + server-plugins/view-resources/.eslintrc.js | 7 -- .../view-resources/eslint.config.mjs | 3 + server-plugins/view/.eslintrc.js | 7 -- server-plugins/view/eslint.config.mjs | 3 + server/account-service/.eslintrc.js | 7 -- server/account-service/eslint.config.mjs | 3 + server/account/.eslintrc.js | 7 -- server/account/eslint.config.mjs | 3 + server/backup-service/.eslintrc.js | 7 -- server/backup-service/eslint.config.mjs | 3 + server/backup/.eslintrc.js | 7 -- server/backup/eslint.config.mjs | 3 + server/collaborator/.eslintrc.js | 7 -- server/collaborator/eslint.config.mjs | 3 + server/front/.eslintrc.js | 7 -- server/front/eslint.config.mjs | 3 + server/indexer/.eslintrc.js | 7 -- server/indexer/eslint.config.mjs | 3 + server/server-pipeline/.eslintrc.js | 7 -- server/server-pipeline/eslint.config.mjs | 3 + server/tool/.eslintrc.js | 7 -- server/tool/eslint.config.mjs | 3 + server/workspace-service/.eslintrc.js | 7 -- server/workspace-service/eslint.config.mjs | 3 + services/ai-bot/ai-core/eslint.config.mjs | 3 + services/ai-bot/love-agent/package.json | 3 +- services/ai-bot/pod-ai-bot/.eslintrc.js | 7 -- services/ai-bot/pod-ai-bot/eslint.config.mjs | 3 + .../pod-analytics-collector/.eslintrc.js | 7 -- .../pod-analytics-collector/eslint.config.mjs | 3 + services/backup/backup-api-pod/.eslintrc.js | 7 -- .../backup/backup-api-pod/eslint.config.mjs | 3 + services/billing/pod-billing/.eslintrc.js | 7 -- .../billing/pod-billing/eslint.config.mjs | 3 + .../calendar/pod-calendar-mailer/.eslintrc.js | 7 -- .../pod-calendar-mailer/eslint.config.mjs | 3 + services/calendar/pod-calendar/.eslintrc.js | 7 -- .../calendar/pod-calendar/eslint.config.mjs | 3 + services/datalake/pod-datalake/.eslintrc.js | 7 -- .../datalake/pod-datalake/eslint.config.mjs | 3 + services/export/pod-export/.eslintrc.js | 7 -- services/export/pod-export/eslint.config.mjs | 3 + .../github-next-service/eslint.config.mjs | 3 + services/github/github-assets/.eslintrc.js | 7 -- .../github/github-assets/eslint.config.mjs | 3 + services/github/github-resources/.eslintrc.js | 4 -- .../github/github-resources/eslint.config.mjs | 3 + services/github/github/.eslintrc.js | 7 -- services/github/github/eslint.config.mjs | 3 + services/github/model-github/.eslintrc.js | 7 -- .../github/model-github/eslint.config.mjs | 3 + services/github/pod-github/.eslintrc.js | 7 -- services/github/pod-github/eslint.config.mjs | 3 + .../github/server-github-model/.eslintrc.js | 7 -- .../server-github-model/eslint.config.mjs | 3 + .../server-github-resources/.eslintrc.js | 7 -- .../server-github-resources/eslint.config.mjs | 3 + services/github/server-github/.eslintrc.js | 7 -- .../github/server-github/eslint.config.mjs | 3 + services/gmail/pod-gmail/.eslintrc.js | 7 -- services/gmail/pod-gmail/eslint.config.mjs | 3 + services/love/.eslintrc.js | 7 -- services/love/eslint.config.mjs | 3 + services/mail/mail-common/.eslintrc.js | 7 -- services/mail/mail-common/eslint.config.mjs | 3 + services/mail/pod-mail-worker/.eslintrc.js | 7 -- .../mail/pod-mail-worker/eslint.config.mjs | 3 + services/mail/pod-mail/.eslintrc.js | 7 -- services/mail/pod-mail/eslint.config.mjs | 3 + services/mcp/pod-mcp/eslint.config.mjs | 3 + .../pod-events-processor/.eslintrc.js | 8 --- .../pod-events-processor/eslint.config.mjs | 3 + .../pod-notification/.eslintrc.js | 7 -- .../pod-notification/eslint.config.mjs | 3 + services/payment/pod-payment/.eslintrc.js | 7 -- .../payment/pod-payment/eslint.config.mjs | 3 + services/print/pod-print/.eslintrc.js | 7 -- services/print/pod-print/eslint.config.mjs | 3 + services/process/.eslintrc.js | 7 -- services/process/eslint.config.mjs | 3 + services/rating/.eslintrc.js | 7 -- services/rating/eslint.config.mjs | 3 + services/rekoni/.eslintrc.js | 7 -- services/rekoni/eslint.config.mjs | 3 + services/sign/pod-sign/.eslintrc.js | 7 -- services/sign/pod-sign/eslint.config.mjs | 3 + .../pod-telegram-bot/.eslintrc.js | 7 -- .../pod-telegram-bot/eslint.config.mjs | 3 + services/telegram/pod-telegram/.eslintrc.js | 7 -- .../telegram/pod-telegram/eslint.config.mjs | 3 + services/worker/.eslintrc.js | 7 -- services/worker/eslint.config.mjs | 3 + templates/assets/.eslintrc.js | 7 -- templates/assets/eslint.config.mjs | 3 + templates/assets/package.json | 3 +- templates/cloud/.eslintrc.js | 7 -- templates/cloud/eslint.config.mjs | 3 + templates/cloud/package.json | 3 +- templates/model/.eslintrc.js | 7 -- templates/model/eslint.config.mjs | 3 + templates/model/package.json | 3 +- templates/node/.eslintrc.js | 7 -- templates/node/eslint.config.mjs | 3 + templates/node/package.json | 3 +- templates/platform/.eslintrc.js | 7 -- templates/platform/eslint.config.mjs | 3 + templates/platform/package.json | 3 +- templates/ui/.eslintrc.js | 4 -- templates/ui/eslint.config.mjs | 3 + templates/ui/package.json | 3 +- tests/sanity/.eslintrc.js | 7 -- tests/sanity/eslint.config.mjs | 3 + ws-tests/api-tests/.eslintrc.js | 7 -- ws-tests/api-tests/eslint.config.mjs | 3 + ws-tests/sanity/.eslintrc.js | 7 -- ws-tests/sanity/eslint.config.mjs | 3 + 1037 files changed, 1723 insertions(+), 3361 deletions(-) delete mode 100644 desktop/.eslintrc.js create mode 100644 desktop/eslint.config.mjs delete mode 100644 dev/doc-import-tool/.eslintrc.js create mode 100644 dev/doc-import-tool/eslint.config.mjs delete mode 100644 dev/import-tool/.eslintrc.js create mode 100644 dev/import-tool/eslint.config.mjs delete mode 100644 dev/prod/.eslintrc.js create mode 100644 dev/prod/eslint.config.mjs delete mode 100644 dev/tool/.eslintrc.js create mode 100644 dev/tool/eslint.config.mjs create mode 100644 foundations/communication/packages/sdk-types/eslint.config.mjs create mode 100644 foundations/communication/packages/shared/eslint.config.mjs create mode 100644 foundations/communication/packages/types/eslint.config.mjs delete mode 100644 foundations/core/packages/account-client/.eslintrc.js create mode 100644 foundations/core/packages/account-client/eslint.config.mjs delete mode 100644 foundations/core/packages/analytics-service/.eslintrc.js create mode 100644 foundations/core/packages/analytics-service/eslint.config.mjs delete mode 100644 foundations/core/packages/analytics/.eslintrc.js create mode 100644 foundations/core/packages/analytics/eslint.config.mjs delete mode 100644 foundations/core/packages/api-client/.eslintrc.js create mode 100644 foundations/core/packages/api-client/eslint.config.mjs delete mode 100644 foundations/core/packages/client-resources/.eslintrc.js create mode 100644 foundations/core/packages/client-resources/eslint.config.mjs delete mode 100644 foundations/core/packages/client/.eslintrc.js create mode 100644 foundations/core/packages/client/eslint.config.mjs delete mode 100644 foundations/core/packages/collaborator-client/.eslintrc.js create mode 100644 foundations/core/packages/collaborator-client/eslint.config.mjs delete mode 100644 foundations/core/packages/core/.eslintrc.js create mode 100644 foundations/core/packages/core/eslint.config.mjs delete mode 100644 foundations/core/packages/hulylake-client/.eslintrc.js create mode 100644 foundations/core/packages/hulylake-client/eslint.config.mjs delete mode 100644 foundations/core/packages/measurements-otlp/.eslintrc.js create mode 100644 foundations/core/packages/measurements-otlp/eslint.config.mjs delete mode 100644 foundations/core/packages/measurements/.eslintrc.js create mode 100644 foundations/core/packages/measurements/eslint.config.mjs delete mode 100644 foundations/core/packages/model/.eslintrc.js create mode 100644 foundations/core/packages/model/eslint.config.mjs delete mode 100644 foundations/core/packages/platform/.eslintrc.js create mode 100644 foundations/core/packages/platform/eslint.config.mjs delete mode 100644 foundations/core/packages/postgres-base/.eslintrc.js create mode 100644 foundations/core/packages/postgres-base/eslint.config.mjs delete mode 100644 foundations/core/packages/query/.eslintrc.js create mode 100644 foundations/core/packages/query/eslint.config.mjs delete mode 100644 foundations/core/packages/rank/.eslintrc.js create mode 100644 foundations/core/packages/rank/eslint.config.mjs delete mode 100644 foundations/core/packages/retry/.eslintrc.js create mode 100644 foundations/core/packages/retry/eslint.config.mjs delete mode 100644 foundations/core/packages/rpc/.eslintrc.js create mode 100644 foundations/core/packages/rpc/eslint.config.mjs delete mode 100644 foundations/core/packages/storage-client/.eslintrc.js create mode 100644 foundations/core/packages/storage-client/eslint.config.mjs delete mode 100644 foundations/core/packages/storage/.eslintrc.js create mode 100644 foundations/core/packages/storage/eslint.config.mjs delete mode 100644 foundations/core/packages/text-core/.eslintrc.js create mode 100644 foundations/core/packages/text-core/eslint.config.mjs delete mode 100644 foundations/core/packages/text-html/.eslintrc.js create mode 100644 foundations/core/packages/text-html/eslint.config.mjs delete mode 100644 foundations/core/packages/text-markdown/.eslintrc.js create mode 100644 foundations/core/packages/text-markdown/eslint.config.mjs delete mode 100644 foundations/core/packages/text-ydoc/.eslintrc.js create mode 100644 foundations/core/packages/text-ydoc/eslint.config.mjs delete mode 100644 foundations/core/packages/text/.eslintrc.js create mode 100644 foundations/core/packages/text/eslint.config.mjs delete mode 100644 foundations/core/packages/token/.eslintrc.js create mode 100644 foundations/core/packages/token/eslint.config.mjs delete mode 100644 foundations/net/packages/backrpc/.eslintrc.js create mode 100644 foundations/net/packages/backrpc/eslint.config.mjs delete mode 100644 foundations/net/packages/client/.eslintrc.js create mode 100644 foundations/net/packages/client/eslint.config.mjs delete mode 100644 foundations/net/packages/core/.eslintrc.js create mode 100644 foundations/net/packages/core/eslint.config.mjs delete mode 100644 foundations/net/packages/server/.eslintrc.js create mode 100644 foundations/net/packages/server/eslint.config.mjs delete mode 100644 foundations/net/pods/network-pod/.eslintrc.js create mode 100644 foundations/net/pods/network-pod/eslint.config.mjs delete mode 100644 foundations/net/pods/network-tool/.eslintrc.js create mode 100644 foundations/net/pods/network-tool/eslint.config.mjs delete mode 100644 foundations/net/tests/.eslintrc.js create mode 100644 foundations/net/tests/eslint.config.mjs delete mode 100644 foundations/server/packages/client/.eslintrc.js create mode 100644 foundations/server/packages/client/eslint.config.mjs delete mode 100644 foundations/server/packages/collaboration/.eslintrc.js create mode 100644 foundations/server/packages/collaboration/eslint.config.mjs delete mode 100644 foundations/server/packages/core/.eslintrc.js create mode 100644 foundations/server/packages/core/eslint.config.mjs delete mode 100644 foundations/server/packages/datalake/.eslintrc.js create mode 100644 foundations/server/packages/datalake/eslint.config.mjs delete mode 100644 foundations/server/packages/elastic/.eslintrc.js create mode 100644 foundations/server/packages/elastic/eslint.config.mjs delete mode 100644 foundations/server/packages/hulylake/.eslintrc.js create mode 100644 foundations/server/packages/hulylake/eslint.config.mjs delete mode 100644 foundations/server/packages/kafka/.eslintrc.js create mode 100644 foundations/server/packages/kafka/eslint.config.mjs delete mode 100644 foundations/server/packages/middleware/.eslintrc.js create mode 100644 foundations/server/packages/middleware/eslint.config.mjs delete mode 100644 foundations/server/packages/minio/.eslintrc.js create mode 100644 foundations/server/packages/minio/eslint.config.mjs delete mode 100644 foundations/server/packages/mongo/.eslintrc.js create mode 100644 foundations/server/packages/mongo/eslint.config.mjs delete mode 100644 foundations/server/packages/postgres/.eslintrc.js create mode 100644 foundations/server/packages/postgres/eslint.config.mjs delete mode 100644 foundations/server/packages/s3/.eslintrc.js create mode 100644 foundations/server/packages/s3/eslint.config.mjs delete mode 100644 foundations/server/packages/server-storage/.eslintrc.js create mode 100644 foundations/server/packages/server-storage/eslint.config.mjs delete mode 100644 foundations/server/packages/server/.eslintrc.js create mode 100644 foundations/server/packages/server/eslint.config.mjs delete mode 100644 foundations/utils/packages/platform-rig/profiles/assets/eslint.config.json create mode 100644 foundations/utils/packages/platform-rig/profiles/assets/eslint.config.mjs delete mode 100644 foundations/utils/packages/platform-rig/profiles/default/eslint.config.json create mode 100644 foundations/utils/packages/platform-rig/profiles/default/eslint.config.mjs delete mode 100644 foundations/utils/packages/platform-rig/profiles/model/eslint.config.json create mode 100644 foundations/utils/packages/platform-rig/profiles/model/eslint.config.mjs delete mode 100644 foundations/utils/packages/platform-rig/profiles/node/eslint.config.json create mode 100644 foundations/utils/packages/platform-rig/profiles/node/eslint.config.mjs delete mode 100644 foundations/utils/packages/platform-rig/profiles/package/eslint.config.json create mode 100644 foundations/utils/packages/platform-rig/profiles/package/eslint.config.mjs delete mode 100644 foundations/utils/packages/platform-rig/profiles/ui/eslint.config.json create mode 100644 foundations/utils/packages/platform-rig/profiles/ui/eslint.config.mjs delete mode 100644 foundations/utils/packages/ui-test/.eslintrc.js delete mode 100644 foundations/utils/packages/ui-test/.npmignore delete mode 100644 foundations/utils/packages/ui-test/config/rig.json delete mode 100644 foundations/utils/packages/ui-test/jest.config.js delete mode 100644 foundations/utils/packages/ui-test/package.json delete mode 100644 foundations/utils/packages/ui-test/postcss.config.js delete mode 100644 foundations/utils/packages/ui-test/src/component/Test.svelte delete mode 100644 foundations/utils/packages/ui-test/src/index.ts delete mode 100644 foundations/utils/packages/ui-test/src/svelte.d.ts_ delete mode 100644 foundations/utils/packages/ui-test/svelte.config.js delete mode 100644 foundations/utils/packages/ui-test/tsconfig.json delete mode 100644 models/achievement/.eslintrc.js create mode 100644 models/achievement/eslint.config.mjs delete mode 100644 models/activity/.eslintrc.js create mode 100644 models/activity/eslint.config.mjs delete mode 100644 models/ai-assistant/.eslintrc.js create mode 100644 models/ai-assistant/eslint.config.mjs delete mode 100644 models/ai-bot/.eslintrc.js create mode 100644 models/ai-bot/eslint.config.mjs delete mode 100644 models/all/.eslintrc.js create mode 100644 models/all/eslint.config.mjs delete mode 100644 models/analytics-collector/.eslintrc.js create mode 100644 models/analytics-collector/eslint.config.mjs delete mode 100644 models/attachment/.eslintrc.js create mode 100644 models/attachment/eslint.config.mjs delete mode 100644 models/billing/.eslintrc.js create mode 100644 models/billing/eslint.config.mjs delete mode 100644 models/bitrix/.eslintrc.js create mode 100644 models/bitrix/eslint.config.mjs delete mode 100644 models/board/.eslintrc.js create mode 100644 models/board/eslint.config.mjs delete mode 100644 models/calendar/.eslintrc.js create mode 100644 models/calendar/eslint.config.mjs delete mode 100644 models/card/.eslintrc.js create mode 100644 models/card/eslint.config.mjs delete mode 100644 models/chunter/.eslintrc.js create mode 100644 models/chunter/eslint.config.mjs delete mode 100644 models/contact/.eslintrc.js create mode 100644 models/contact/eslint.config.mjs delete mode 100644 models/controlled-documents/.eslintrc.js create mode 100644 models/controlled-documents/eslint.config.mjs delete mode 100644 models/converter/.eslintrc.js create mode 100644 models/converter/eslint.config.mjs delete mode 100644 models/core/.eslintrc.js create mode 100644 models/core/eslint.config.mjs delete mode 100644 models/desktop-downloads/.eslintrc.js create mode 100644 models/desktop-downloads/eslint.config.mjs delete mode 100644 models/desktop-preferences/.eslintrc.js create mode 100644 models/desktop-preferences/eslint.config.mjs delete mode 100644 models/document/.eslintrc.js create mode 100644 models/document/eslint.config.mjs delete mode 100644 models/drive/.eslintrc.js create mode 100644 models/drive/eslint.config.mjs delete mode 100644 models/emoji/.eslintrc.js create mode 100644 models/emoji/eslint.config.mjs delete mode 100644 models/export/.eslintrc.js create mode 100644 models/export/eslint.config.mjs delete mode 100644 models/gmail/.eslintrc.js create mode 100644 models/gmail/eslint.config.mjs delete mode 100644 models/guest/.eslintrc.js create mode 100644 models/guest/eslint.config.mjs delete mode 100644 models/hr/.eslintrc.js create mode 100644 models/hr/eslint.config.mjs delete mode 100644 models/huly-mail/.eslintrc.js create mode 100644 models/huly-mail/eslint.config.mjs create mode 100644 models/inbox/eslint.config.mjs delete mode 100644 models/inventory/.eslintrc.js create mode 100644 models/inventory/eslint.config.mjs delete mode 100644 models/lead/.eslintrc.js create mode 100644 models/lead/eslint.config.mjs delete mode 100644 models/love/.eslintrc.js create mode 100644 models/love/eslint.config.mjs delete mode 100644 models/mail/.eslintrc.js create mode 100644 models/mail/eslint.config.mjs delete mode 100644 models/media/.eslintrc.js create mode 100644 models/media/eslint.config.mjs delete mode 100644 models/notification/.eslintrc.js create mode 100644 models/notification/eslint.config.mjs delete mode 100644 models/preference/.eslintrc.js create mode 100644 models/preference/eslint.config.mjs delete mode 100644 models/presence/.eslintrc.js create mode 100644 models/presence/eslint.config.mjs delete mode 100644 models/presentation/.eslintrc.js create mode 100644 models/presentation/eslint.config.mjs delete mode 100644 models/print/.eslintrc.js create mode 100644 models/print/eslint.config.mjs delete mode 100644 models/process/.eslintrc.js create mode 100644 models/process/eslint.config.mjs delete mode 100644 models/products/.eslintrc.js create mode 100644 models/products/eslint.config.mjs delete mode 100644 models/pulse/.eslintrc.js create mode 100644 models/pulse/eslint.config.mjs delete mode 100644 models/questions/.eslintrc.js create mode 100644 models/questions/eslint.config.mjs delete mode 100644 models/rating/.eslintrc.js create mode 100644 models/rating/eslint.config.mjs delete mode 100644 models/recorder/.eslintrc.js create mode 100644 models/recorder/eslint.config.mjs delete mode 100644 models/recruit/.eslintrc.js create mode 100644 models/recruit/eslint.config.mjs delete mode 100644 models/request/.eslintrc.js create mode 100644 models/request/eslint.config.mjs delete mode 100644 models/server-activity/.eslintrc.js create mode 100644 models/server-activity/eslint.config.mjs delete mode 100644 models/server-ai-bot/.eslintrc.js create mode 100644 models/server-ai-bot/eslint.config.mjs delete mode 100644 models/server-attachment/.eslintrc.js create mode 100644 models/server-attachment/eslint.config.mjs delete mode 100644 models/server-calendar/.eslintrc.js create mode 100644 models/server-calendar/eslint.config.mjs delete mode 100644 models/server-card/.eslintrc.js create mode 100644 models/server-card/eslint.config.mjs delete mode 100644 models/server-chunter/.eslintrc.js create mode 100644 models/server-chunter/eslint.config.mjs delete mode 100644 models/server-collaboration/.eslintrc.js create mode 100644 models/server-collaboration/eslint.config.mjs delete mode 100644 models/server-contact/.eslintrc.js create mode 100644 models/server-contact/eslint.config.mjs delete mode 100644 models/server-controlled-documents/.eslintrc.js create mode 100644 models/server-controlled-documents/eslint.config.mjs delete mode 100644 models/server-core/.eslintrc.js create mode 100644 models/server-core/eslint.config.mjs delete mode 100644 models/server-document/.eslintrc.js create mode 100644 models/server-document/eslint.config.mjs delete mode 100644 models/server-drive/.eslintrc.js create mode 100644 models/server-drive/eslint.config.mjs delete mode 100644 models/server-gmail/.eslintrc.js create mode 100644 models/server-gmail/eslint.config.mjs delete mode 100644 models/server-guest/.eslintrc.js create mode 100644 models/server-guest/eslint.config.mjs delete mode 100644 models/server-hr/.eslintrc.js create mode 100644 models/server-hr/eslint.config.mjs delete mode 100644 models/server-inventory/.eslintrc.js create mode 100644 models/server-inventory/eslint.config.mjs delete mode 100644 models/server-lead/.eslintrc.js create mode 100644 models/server-lead/eslint.config.mjs delete mode 100644 models/server-love/.eslintrc.js create mode 100644 models/server-love/eslint.config.mjs delete mode 100644 models/server-notification/.eslintrc.js create mode 100644 models/server-notification/eslint.config.mjs delete mode 100644 models/server-process/.eslintrc.js create mode 100644 models/server-process/eslint.config.mjs delete mode 100644 models/server-products/.eslintrc.js create mode 100644 models/server-products/eslint.config.mjs delete mode 100644 models/server-recruit/.eslintrc.js create mode 100644 models/server-recruit/eslint.config.mjs delete mode 100644 models/server-request/.eslintrc.js create mode 100644 models/server-request/eslint.config.mjs delete mode 100644 models/server-setting/.eslintrc.js create mode 100644 models/server-setting/eslint.config.mjs delete mode 100644 models/server-tags/.eslintrc.js create mode 100644 models/server-tags/eslint.config.mjs delete mode 100644 models/server-task/.eslintrc.js create mode 100644 models/server-task/eslint.config.mjs delete mode 100644 models/server-telegram/.eslintrc.js create mode 100644 models/server-telegram/eslint.config.mjs delete mode 100644 models/server-templates/.eslintrc.js create mode 100644 models/server-templates/eslint.config.mjs delete mode 100644 models/server-time/.eslintrc.js create mode 100644 models/server-time/eslint.config.mjs delete mode 100644 models/server-tracker/.eslintrc.js create mode 100644 models/server-tracker/eslint.config.mjs delete mode 100644 models/server-training/.eslintrc.js create mode 100644 models/server-training/eslint.config.mjs delete mode 100644 models/server-view/.eslintrc.js create mode 100644 models/server-view/eslint.config.mjs delete mode 100644 models/setting/.eslintrc.js create mode 100644 models/setting/eslint.config.mjs delete mode 100644 models/support/.eslintrc.js create mode 100644 models/support/eslint.config.mjs delete mode 100644 models/survey/.eslintrc.js create mode 100644 models/survey/eslint.config.mjs delete mode 100644 models/tags/.eslintrc.js create mode 100644 models/tags/eslint.config.mjs delete mode 100644 models/task/.eslintrc.js create mode 100644 models/task/eslint.config.mjs delete mode 100644 models/telegram/.eslintrc.js create mode 100644 models/telegram/eslint.config.mjs delete mode 100644 models/templates/.eslintrc.js create mode 100644 models/templates/eslint.config.mjs delete mode 100644 models/test-management/.eslintrc.js create mode 100644 models/test-management/eslint.config.mjs delete mode 100644 models/text-editor/.eslintrc.js create mode 100644 models/text-editor/eslint.config.mjs delete mode 100644 models/time/.eslintrc.js create mode 100644 models/time/eslint.config.mjs delete mode 100644 models/tracker/.eslintrc.js create mode 100644 models/tracker/eslint.config.mjs delete mode 100644 models/training/.eslintrc.js create mode 100644 models/training/eslint.config.mjs delete mode 100644 models/uploader/.eslintrc.js create mode 100644 models/uploader/eslint.config.mjs delete mode 100644 models/view/.eslintrc.js create mode 100644 models/view/eslint.config.mjs delete mode 100644 models/workbench/.eslintrc.js create mode 100644 models/workbench/eslint.config.mjs delete mode 100644 packages/analytics-providers/.eslintrc.js create mode 100644 packages/analytics-providers/eslint.config.mjs delete mode 100644 packages/billing-client/.eslintrc.js create mode 100644 packages/billing-client/eslint.config.mjs create mode 100644 packages/doc-convert/eslint.config.mjs delete mode 100644 packages/highlight/.eslintrc.js create mode 100644 packages/highlight/eslint.config.mjs delete mode 100644 packages/hls/.eslintrc.js create mode 100644 packages/hls/eslint.config.mjs delete mode 100644 packages/importer/.eslintrc.js create mode 100644 packages/importer/eslint.config.mjs delete mode 100644 packages/integration-client/.eslintrc.js create mode 100644 packages/integration-client/eslint.config.mjs delete mode 100644 packages/kanban/.eslintrc.js create mode 100644 packages/kanban/eslint.config.mjs delete mode 100644 packages/kvs-client/.eslintrc.js create mode 100644 packages/kvs-client/eslint.config.mjs delete mode 100644 packages/panel/.eslintrc.js create mode 100644 packages/panel/eslint.config.mjs delete mode 100644 packages/payment-client/.eslintrc.js create mode 100644 packages/payment-client/eslint.config.mjs delete mode 100644 packages/presentation/.eslintrc.js create mode 100644 packages/presentation/eslint.config.mjs delete mode 100644 packages/rekoni/.eslintrc.js create mode 100644 packages/rekoni/eslint.config.mjs delete mode 100644 packages/theme/.eslintrc.js create mode 100644 packages/theme/eslint.config.mjs delete mode 100644 packages/ui/.eslintrc.js create mode 100644 packages/ui/eslint.config.mjs delete mode 100644 plugins/achievement-assets/.eslintrc.js create mode 100644 plugins/achievement-assets/eslint.config.mjs delete mode 100644 plugins/achievement-resources/.eslintrc.js create mode 100644 plugins/achievement-resources/eslint.config.mjs delete mode 100644 plugins/achievement/.eslintrc.js create mode 100644 plugins/achievement/eslint.config.mjs delete mode 100644 plugins/activity-assets/.eslintrc.js create mode 100644 plugins/activity-assets/eslint.config.mjs delete mode 100644 plugins/activity-resources/.eslintrc.js create mode 100644 plugins/activity-resources/eslint.config.mjs delete mode 100644 plugins/activity/.eslintrc.js create mode 100644 plugins/activity/eslint.config.mjs create mode 100644 plugins/admin/eslint.config.mjs delete mode 100644 plugins/ai-assistant-assets/.eslintrc.js create mode 100644 plugins/ai-assistant-assets/eslint.config.mjs delete mode 100644 plugins/ai-assistant-resources/.eslintrc.js create mode 100644 plugins/ai-assistant-resources/eslint.config.mjs delete mode 100644 plugins/ai-assistant/.eslintrc.js create mode 100644 plugins/ai-assistant/eslint.config.mjs create mode 100644 plugins/ai-bot-assets/eslint.config.mjs delete mode 100644 plugins/ai-bot-resources/.eslintrc.js create mode 100644 plugins/ai-bot-resources/eslint.config.mjs delete mode 100644 plugins/ai-bot/.eslintrc.js create mode 100644 plugins/ai-bot/eslint.config.mjs delete mode 100644 plugins/analytics-collector-assets/.eslintrc.js create mode 100644 plugins/analytics-collector-assets/eslint.config.mjs delete mode 100644 plugins/analytics-collector-resources/.eslintrc.js create mode 100644 plugins/analytics-collector-resources/eslint.config.mjs delete mode 100644 plugins/analytics-collector/.eslintrc.js create mode 100644 plugins/analytics-collector/eslint.config.mjs delete mode 100644 plugins/attachment-assets/.eslintrc.js create mode 100644 plugins/attachment-assets/eslint.config.mjs delete mode 100644 plugins/attachment-resources/.eslintrc.js create mode 100644 plugins/attachment-resources/eslint.config.mjs delete mode 100644 plugins/attachment/.eslintrc.js create mode 100644 plugins/attachment/eslint.config.mjs delete mode 100644 plugins/billing-assets/.eslintrc.js create mode 100644 plugins/billing-assets/eslint.config.mjs delete mode 100644 plugins/billing-resources/.eslintrc.js create mode 100644 plugins/billing-resources/eslint.config.mjs delete mode 100644 plugins/billing/.eslintrc.js create mode 100644 plugins/billing/eslint.config.mjs delete mode 100644 plugins/bitrix-assets/.eslintrc.js create mode 100644 plugins/bitrix-assets/eslint.config.mjs delete mode 100644 plugins/bitrix-resources/.eslintrc.js create mode 100644 plugins/bitrix-resources/eslint.config.mjs delete mode 100644 plugins/bitrix/.eslintrc.js create mode 100644 plugins/bitrix/eslint.config.mjs delete mode 100644 plugins/board-assets/.eslintrc.js create mode 100644 plugins/board-assets/eslint.config.mjs delete mode 100644 plugins/board-resources/.eslintrc.js create mode 100644 plugins/board-resources/eslint.config.mjs delete mode 100644 plugins/board/.eslintrc.js create mode 100644 plugins/board/eslint.config.mjs delete mode 100644 plugins/calendar-assets/.eslintrc.js create mode 100644 plugins/calendar-assets/eslint.config.mjs delete mode 100644 plugins/calendar-resources/.eslintrc.js create mode 100644 plugins/calendar-resources/eslint.config.mjs delete mode 100644 plugins/calendar/.eslintrc.js create mode 100644 plugins/calendar/eslint.config.mjs delete mode 100644 plugins/card-assets/.eslintrc.js create mode 100644 plugins/card-assets/eslint.config.mjs delete mode 100644 plugins/card-resources/.eslintrc.js create mode 100644 plugins/card-resources/eslint.config.mjs delete mode 100644 plugins/card/.eslintrc.js create mode 100644 plugins/card/eslint.config.mjs create mode 100644 plugins/chat-resources/eslint.config.mjs delete mode 100644 plugins/chunter-assets/.eslintrc.js create mode 100644 plugins/chunter-assets/eslint.config.mjs delete mode 100644 plugins/chunter-resources/.eslintrc.js create mode 100644 plugins/chunter-resources/eslint.config.mjs delete mode 100644 plugins/chunter/.eslintrc.js create mode 100644 plugins/chunter/eslint.config.mjs delete mode 100644 plugins/client-resources/.eslintrc.js create mode 100644 plugins/client-resources/eslint.config.mjs delete mode 100644 plugins/client/.eslintrc.js create mode 100644 plugins/client/eslint.config.mjs delete mode 100644 plugins/contact-assets/.eslintrc.js create mode 100644 plugins/contact-assets/eslint.config.mjs delete mode 100644 plugins/contact-resources/.eslintrc.js create mode 100644 plugins/contact-resources/eslint.config.mjs delete mode 100644 plugins/contact/.eslintrc.js create mode 100644 plugins/contact/eslint.config.mjs delete mode 100644 plugins/controlled-documents-assets/.eslintrc.js create mode 100644 plugins/controlled-documents-assets/eslint.config.mjs delete mode 100644 plugins/controlled-documents-resources/.eslintrc.js create mode 100644 plugins/controlled-documents-resources/eslint.config.mjs delete mode 100644 plugins/controlled-documents/.eslintrc.js create mode 100644 plugins/controlled-documents/eslint.config.mjs delete mode 100644 plugins/converter-resources/.eslintrc.js create mode 100644 plugins/converter-resources/eslint.config.mjs delete mode 100644 plugins/converter/.eslintrc.js create mode 100644 plugins/converter/eslint.config.mjs delete mode 100644 plugins/desktop-downloads-assets/.eslintrc.js create mode 100644 plugins/desktop-downloads-assets/eslint.config.mjs delete mode 100644 plugins/desktop-downloads-resources/.eslintrc.js create mode 100644 plugins/desktop-downloads-resources/eslint.config.mjs delete mode 100644 plugins/desktop-downloads/.eslintrc.js create mode 100644 plugins/desktop-downloads/eslint.config.mjs delete mode 100644 plugins/desktop-preferences-assets/.eslintrc.js create mode 100644 plugins/desktop-preferences-assets/eslint.config.mjs delete mode 100644 plugins/desktop-preferences-resources/.eslintrc.js create mode 100644 plugins/desktop-preferences-resources/eslint.config.mjs delete mode 100644 plugins/desktop-preferences/.eslintrc.js create mode 100644 plugins/desktop-preferences/eslint.config.mjs delete mode 100644 plugins/devmodel-resources/.eslintrc.js create mode 100644 plugins/devmodel-resources/eslint.config.mjs delete mode 100644 plugins/devmodel/.eslintrc.js create mode 100644 plugins/devmodel/eslint.config.mjs delete mode 100644 plugins/diffview-assets/.eslintrc.js create mode 100644 plugins/diffview-assets/eslint.config.mjs delete mode 100644 plugins/diffview-resources/.eslintrc.js create mode 100644 plugins/diffview-resources/eslint.config.mjs delete mode 100644 plugins/diffview/.eslintrc.js create mode 100644 plugins/diffview/eslint.config.mjs delete mode 100644 plugins/document-assets/.eslintrc.js create mode 100644 plugins/document-assets/eslint.config.mjs delete mode 100644 plugins/document-resources/.eslintrc.js create mode 100644 plugins/document-resources/eslint.config.mjs delete mode 100644 plugins/document/.eslintrc.js create mode 100644 plugins/document/eslint.config.mjs delete mode 100644 plugins/drive-assets/.eslintrc.js create mode 100644 plugins/drive-assets/eslint.config.mjs delete mode 100644 plugins/drive-resources/.eslintrc.js create mode 100644 plugins/drive-resources/eslint.config.mjs delete mode 100644 plugins/drive/.eslintrc.js create mode 100644 plugins/drive/eslint.config.mjs delete mode 100644 plugins/emoji-assets/.eslintrc.js create mode 100644 plugins/emoji-assets/eslint.config.mjs delete mode 100644 plugins/emoji-resources/.eslintrc.js create mode 100644 plugins/emoji-resources/eslint.config.mjs delete mode 100644 plugins/emoji/.eslintrc.js create mode 100644 plugins/emoji/eslint.config.mjs delete mode 100644 plugins/export-assets/.eslintrc.js create mode 100644 plugins/export-assets/eslint.config.mjs delete mode 100644 plugins/export-resources/.eslintrc.js create mode 100644 plugins/export-resources/eslint.config.mjs delete mode 100644 plugins/export/.eslintrc.js create mode 100644 plugins/export/eslint.config.mjs create mode 100644 plugins/github-next/eslint.config.mjs delete mode 100644 plugins/global-profile-assets/.eslintrc.js create mode 100644 plugins/global-profile-assets/eslint.config.mjs delete mode 100644 plugins/global-profile-resources/.eslintrc.js create mode 100644 plugins/global-profile-resources/eslint.config.mjs delete mode 100644 plugins/global-profile/.eslintrc.js create mode 100644 plugins/global-profile/eslint.config.mjs delete mode 100644 plugins/gmail-assets/.eslintrc.js create mode 100644 plugins/gmail-assets/eslint.config.mjs delete mode 100644 plugins/gmail-resources/.eslintrc.js create mode 100644 plugins/gmail-resources/eslint.config.mjs delete mode 100644 plugins/gmail/.eslintrc.js create mode 100644 plugins/gmail/eslint.config.mjs delete mode 100644 plugins/guest-assets/.eslintrc.js create mode 100644 plugins/guest-assets/eslint.config.mjs delete mode 100644 plugins/guest-resources/.eslintrc.js create mode 100644 plugins/guest-resources/eslint.config.mjs delete mode 100644 plugins/guest/.eslintrc.js create mode 100644 plugins/guest/eslint.config.mjs delete mode 100644 plugins/hr-assets/.eslintrc.js create mode 100644 plugins/hr-assets/eslint.config.mjs delete mode 100644 plugins/hr-resources/.eslintrc.js create mode 100644 plugins/hr-resources/eslint.config.mjs delete mode 100644 plugins/hr/.eslintrc.js create mode 100644 plugins/hr/eslint.config.mjs delete mode 100644 plugins/huly-mail-assets/.eslintrc.js create mode 100644 plugins/huly-mail-assets/eslint.config.mjs delete mode 100644 plugins/huly-mail-resources/.eslintrc.js create mode 100644 plugins/huly-mail-resources/eslint.config.mjs delete mode 100644 plugins/huly-mail/.eslintrc.js create mode 100644 plugins/huly-mail/eslint.config.mjs delete mode 100644 plugins/image-cropper-resources/.eslintrc.js create mode 100644 plugins/image-cropper-resources/eslint.config.mjs delete mode 100644 plugins/image-cropper/.eslintrc.js create mode 100644 plugins/image-cropper/eslint.config.mjs create mode 100644 plugins/inbox-resources/eslint.config.mjs create mode 100644 plugins/integration/eslint.config.mjs delete mode 100644 plugins/inventory-assets/.eslintrc.js create mode 100644 plugins/inventory-assets/eslint.config.mjs delete mode 100644 plugins/inventory-resources/.eslintrc.js create mode 100644 plugins/inventory-resources/eslint.config.mjs delete mode 100644 plugins/inventory/.eslintrc.js create mode 100644 plugins/inventory/eslint.config.mjs delete mode 100644 plugins/lead-assets/.eslintrc.js create mode 100644 plugins/lead-assets/eslint.config.mjs delete mode 100644 plugins/lead-resources/.eslintrc.js create mode 100644 plugins/lead-resources/eslint.config.mjs delete mode 100644 plugins/lead/.eslintrc.js create mode 100644 plugins/lead/eslint.config.mjs delete mode 100644 plugins/login-assets/.eslintrc.js create mode 100644 plugins/login-assets/eslint.config.mjs delete mode 100644 plugins/login-resources/.eslintrc.js create mode 100644 plugins/login-resources/eslint.config.mjs delete mode 100644 plugins/login/.eslintrc.js create mode 100644 plugins/login/eslint.config.mjs delete mode 100644 plugins/love-assets/.eslintrc.js create mode 100644 plugins/love-assets/eslint.config.mjs delete mode 100644 plugins/love-resources/.eslintrc.js create mode 100644 plugins/love-resources/eslint.config.mjs delete mode 100644 plugins/love/.eslintrc.js create mode 100644 plugins/love/eslint.config.mjs delete mode 100644 plugins/mail-assets/.eslintrc.js create mode 100644 plugins/mail-assets/eslint.config.mjs delete mode 100644 plugins/mail/.eslintrc.js create mode 100644 plugins/mail/eslint.config.mjs delete mode 100644 plugins/media-assets/.eslintrc.js create mode 100644 plugins/media-assets/eslint.config.mjs delete mode 100644 plugins/media-resources/.eslintrc.js create mode 100644 plugins/media-resources/eslint.config.mjs delete mode 100644 plugins/media/.eslintrc.js create mode 100644 plugins/media/eslint.config.mjs delete mode 100644 plugins/notification-assets/.eslintrc.js create mode 100644 plugins/notification-assets/eslint.config.mjs delete mode 100644 plugins/notification-resources/.eslintrc.js create mode 100644 plugins/notification-resources/eslint.config.mjs delete mode 100644 plugins/notification/.eslintrc.js create mode 100644 plugins/notification/eslint.config.mjs delete mode 100644 plugins/onboard-assets/.eslintrc.js create mode 100644 plugins/onboard-assets/eslint.config.mjs delete mode 100644 plugins/onboard-resources/.eslintrc.js create mode 100644 plugins/onboard-resources/eslint.config.mjs delete mode 100644 plugins/onboard/.eslintrc.js create mode 100644 plugins/onboard/eslint.config.mjs delete mode 100644 plugins/openai/.eslintrc.js create mode 100644 plugins/openai/eslint.config.mjs delete mode 100644 plugins/preference-assets/.eslintrc.js create mode 100644 plugins/preference-assets/eslint.config.mjs delete mode 100644 plugins/preference/.eslintrc.js create mode 100644 plugins/preference/eslint.config.mjs delete mode 100644 plugins/presence-resources/.eslintrc.js create mode 100644 plugins/presence-resources/eslint.config.mjs delete mode 100644 plugins/presence/.eslintrc.js create mode 100644 plugins/presence/eslint.config.mjs delete mode 100644 plugins/print-assets/.eslintrc.js create mode 100644 plugins/print-assets/eslint.config.mjs delete mode 100644 plugins/print-resources/.eslintrc.js create mode 100644 plugins/print-resources/eslint.config.mjs delete mode 100644 plugins/print/.eslintrc.js create mode 100644 plugins/print/eslint.config.mjs delete mode 100644 plugins/process-assets/.eslintrc.js create mode 100644 plugins/process-assets/eslint.config.mjs delete mode 100644 plugins/process-resources/.eslintrc.js create mode 100644 plugins/process-resources/eslint.config.mjs delete mode 100644 plugins/process/.eslintrc.js create mode 100644 plugins/process/eslint.config.mjs delete mode 100644 plugins/products-assets/.eslintrc.js create mode 100644 plugins/products-assets/eslint.config.mjs delete mode 100644 plugins/products-resources/.eslintrc.js create mode 100644 plugins/products-resources/eslint.config.mjs delete mode 100644 plugins/products/.eslintrc.js create mode 100644 plugins/products/eslint.config.mjs delete mode 100644 plugins/pulse/.eslintrc.js create mode 100644 plugins/pulse/eslint.config.mjs create mode 100644 plugins/qalico-assets/eslint.config.mjs create mode 100644 plugins/qalico/eslint.config.mjs delete mode 100644 plugins/questions-assets/.eslintrc.js create mode 100644 plugins/questions-assets/eslint.config.mjs delete mode 100644 plugins/questions-resources/.eslintrc.js create mode 100644 plugins/questions-resources/eslint.config.mjs delete mode 100644 plugins/questions/.eslintrc.js create mode 100644 plugins/questions/eslint.config.mjs delete mode 100644 plugins/rating-assets/.eslintrc.js create mode 100644 plugins/rating-assets/eslint.config.mjs delete mode 100644 plugins/rating-resources/.eslintrc.js create mode 100644 plugins/rating-resources/eslint.config.mjs delete mode 100644 plugins/rating/.eslintrc.js create mode 100644 plugins/rating/eslint.config.mjs delete mode 100644 plugins/recorder-assets/.eslintrc.js create mode 100644 plugins/recorder-assets/eslint.config.mjs delete mode 100644 plugins/recorder-resources/.eslintrc.js create mode 100644 plugins/recorder-resources/eslint.config.mjs delete mode 100644 plugins/recorder/.eslintrc.js create mode 100644 plugins/recorder/eslint.config.mjs delete mode 100644 plugins/recruit-assets/.eslintrc.js create mode 100644 plugins/recruit-assets/eslint.config.mjs delete mode 100644 plugins/recruit-resources/.eslintrc.js create mode 100644 plugins/recruit-resources/eslint.config.mjs delete mode 100644 plugins/recruit/.eslintrc.js create mode 100644 plugins/recruit/eslint.config.mjs delete mode 100644 plugins/request-assets/.eslintrc.js create mode 100644 plugins/request-assets/eslint.config.mjs delete mode 100644 plugins/request-resources/.eslintrc.js create mode 100644 plugins/request-resources/eslint.config.mjs delete mode 100644 plugins/request/.eslintrc.js create mode 100644 plugins/request/eslint.config.mjs delete mode 100644 plugins/setting-assets/.eslintrc.js create mode 100644 plugins/setting-assets/eslint.config.mjs delete mode 100644 plugins/setting-resources/.eslintrc.js create mode 100644 plugins/setting-resources/eslint.config.mjs delete mode 100644 plugins/setting/.eslintrc.js create mode 100644 plugins/setting/eslint.config.mjs delete mode 100644 plugins/sign/.eslintrc.js create mode 100644 plugins/sign/eslint.config.mjs delete mode 100644 plugins/support-assets/.eslintrc.js create mode 100644 plugins/support-assets/eslint.config.mjs delete mode 100644 plugins/support-resources/.eslintrc.js create mode 100644 plugins/support-resources/eslint.config.mjs delete mode 100644 plugins/support/.eslintrc.js create mode 100644 plugins/support/eslint.config.mjs delete mode 100644 plugins/survey-assets/.eslintrc.js create mode 100644 plugins/survey-assets/eslint.config.mjs delete mode 100644 plugins/survey-resources/.eslintrc.js create mode 100644 plugins/survey-resources/eslint.config.mjs delete mode 100644 plugins/survey/.eslintrc.js create mode 100644 plugins/survey/eslint.config.mjs delete mode 100644 plugins/tags-assets/.eslintrc.js create mode 100644 plugins/tags-assets/eslint.config.mjs delete mode 100644 plugins/tags-resources/.eslintrc.js create mode 100644 plugins/tags-resources/eslint.config.mjs delete mode 100644 plugins/tags/.eslintrc.js create mode 100644 plugins/tags/eslint.config.mjs delete mode 100644 plugins/task-assets/.eslintrc.js create mode 100644 plugins/task-assets/eslint.config.mjs delete mode 100644 plugins/task-resources/.eslintrc.js create mode 100644 plugins/task-resources/eslint.config.mjs delete mode 100644 plugins/task/.eslintrc.js create mode 100644 plugins/task/eslint.config.mjs delete mode 100644 plugins/telegram-assets/.eslintrc.js create mode 100644 plugins/telegram-assets/eslint.config.mjs delete mode 100644 plugins/telegram-resources/.eslintrc.js create mode 100644 plugins/telegram-resources/eslint.config.mjs delete mode 100644 plugins/telegram/.eslintrc.js create mode 100644 plugins/telegram/eslint.config.mjs delete mode 100644 plugins/templates-assets/.eslintrc.js create mode 100644 plugins/templates-assets/eslint.config.mjs delete mode 100644 plugins/templates-resources/.eslintrc.js create mode 100644 plugins/templates-resources/eslint.config.mjs delete mode 100644 plugins/templates/.eslintrc.js create mode 100644 plugins/templates/eslint.config.mjs delete mode 100644 plugins/test-management-assets/.eslintrc.js create mode 100644 plugins/test-management-assets/eslint.config.mjs delete mode 100644 plugins/test-management-resources/.eslintrc.js create mode 100644 plugins/test-management-resources/eslint.config.mjs delete mode 100644 plugins/test-management/.eslintrc.js create mode 100644 plugins/test-management/eslint.config.mjs delete mode 100644 plugins/text-editor-assets/.eslintrc.js create mode 100644 plugins/text-editor-assets/eslint.config.mjs delete mode 100644 plugins/text-editor-resources/.eslintrc.js create mode 100644 plugins/text-editor-resources/eslint.config.mjs delete mode 100644 plugins/text-editor/.eslintrc.js create mode 100644 plugins/text-editor/eslint.config.mjs delete mode 100644 plugins/time-assets/.eslintrc.js create mode 100644 plugins/time-assets/eslint.config.mjs delete mode 100644 plugins/time-resources/.eslintrc.js create mode 100644 plugins/time-resources/eslint.config.mjs delete mode 100644 plugins/time/.eslintrc.js create mode 100644 plugins/time/eslint.config.mjs delete mode 100644 plugins/tracker-assets/.eslintrc.js create mode 100644 plugins/tracker-assets/eslint.config.mjs delete mode 100644 plugins/tracker-resources/.eslintrc.js create mode 100644 plugins/tracker-resources/eslint.config.mjs delete mode 100644 plugins/tracker/.eslintrc.js create mode 100644 plugins/tracker/eslint.config.mjs delete mode 100644 plugins/training-assets/.eslintrc.js create mode 100644 plugins/training-assets/eslint.config.mjs delete mode 100644 plugins/training-resources/.eslintrc.js create mode 100644 plugins/training-resources/eslint.config.mjs delete mode 100644 plugins/training/.eslintrc.js create mode 100644 plugins/training/eslint.config.mjs delete mode 100644 plugins/uploader-assets/.eslintrc.js create mode 100644 plugins/uploader-assets/eslint.config.mjs delete mode 100644 plugins/uploader-resources/.eslintrc.js create mode 100644 plugins/uploader-resources/eslint.config.mjs delete mode 100644 plugins/uploader/.eslintrc.js create mode 100644 plugins/uploader/eslint.config.mjs delete mode 100644 plugins/view-assets/.eslintrc.js create mode 100644 plugins/view-assets/eslint.config.mjs delete mode 100644 plugins/view-resources/.eslintrc.js create mode 100644 plugins/view-resources/eslint.config.mjs delete mode 100644 plugins/view/.eslintrc.js create mode 100644 plugins/view/eslint.config.mjs delete mode 100644 plugins/workbench-assets/.eslintrc.js create mode 100644 plugins/workbench-assets/eslint.config.mjs delete mode 100644 plugins/workbench-resources/.eslintrc.js create mode 100644 plugins/workbench-resources/eslint.config.mjs delete mode 100644 plugins/workbench/.eslintrc.js create mode 100644 plugins/workbench/eslint.config.mjs delete mode 100644 pods/account/.eslintrc.js create mode 100644 pods/account/eslint.config.mjs delete mode 100644 pods/authProviders/.eslintrc.js create mode 100644 pods/authProviders/eslint.config.mjs delete mode 100644 pods/backup/.eslintrc.js create mode 100644 pods/backup/eslint.config.mjs delete mode 100644 pods/collaborator/.eslintrc.js create mode 100644 pods/collaborator/eslint.config.mjs delete mode 100644 pods/front/.eslintrc.js create mode 100644 pods/front/eslint.config.mjs delete mode 100644 pods/fulltext/.eslintrc.js create mode 100644 pods/fulltext/eslint.config.mjs delete mode 100644 pods/link-preview/.eslintrc.js create mode 100644 pods/link-preview/eslint.config.mjs delete mode 100644 pods/media/.eslintrc.js create mode 100644 pods/media/eslint.config.mjs delete mode 100644 pods/preview/.eslintrc.js create mode 100644 pods/preview/eslint.config.mjs delete mode 100644 pods/server/.eslintrc.js create mode 100644 pods/server/eslint.config.mjs delete mode 100644 pods/stats/.eslintrc.js create mode 100644 pods/stats/eslint.config.mjs delete mode 100644 pods/workspace/.eslintrc.js create mode 100644 pods/workspace/eslint.config.mjs delete mode 100644 qms-tests/sanity/.eslintrc.js create mode 100644 qms-tests/sanity/eslint.config.mjs delete mode 100644 server-plugins/activity-resources/.eslintrc.js create mode 100644 server-plugins/activity-resources/eslint.config.mjs delete mode 100644 server-plugins/activity/.eslintrc.js create mode 100644 server-plugins/activity/eslint.config.mjs delete mode 100644 server-plugins/ai-bot-resources/.eslintrc.js create mode 100644 server-plugins/ai-bot-resources/eslint.config.mjs delete mode 100644 server-plugins/ai-bot/.eslintrc.js create mode 100644 server-plugins/ai-bot/eslint.config.mjs delete mode 100644 server-plugins/analytics-collector-resources/.eslintrc.js create mode 100644 server-plugins/analytics-collector-resources/eslint.config.mjs delete mode 100644 server-plugins/analytics-collector/.eslintrc.js create mode 100644 server-plugins/analytics-collector/eslint.config.mjs delete mode 100644 server-plugins/attachment-resources/.eslintrc.js create mode 100644 server-plugins/attachment-resources/eslint.config.mjs delete mode 100644 server-plugins/attachment/.eslintrc.js create mode 100644 server-plugins/attachment/eslint.config.mjs delete mode 100644 server-plugins/calendar-resources/.eslintrc.js create mode 100644 server-plugins/calendar-resources/eslint.config.mjs delete mode 100644 server-plugins/calendar/.eslintrc.js create mode 100644 server-plugins/calendar/eslint.config.mjs delete mode 100644 server-plugins/card-resources/.eslintrc.js create mode 100644 server-plugins/card-resources/eslint.config.mjs delete mode 100644 server-plugins/card/.eslintrc.js create mode 100644 server-plugins/card/eslint.config.mjs delete mode 100644 server-plugins/chunter-resources/.eslintrc.js create mode 100644 server-plugins/chunter-resources/eslint.config.mjs delete mode 100644 server-plugins/chunter/.eslintrc.js create mode 100644 server-plugins/chunter/eslint.config.mjs delete mode 100644 server-plugins/collaboration-resources/.eslintrc.js create mode 100644 server-plugins/collaboration-resources/eslint.config.mjs delete mode 100644 server-plugins/collaboration/.eslintrc.js create mode 100644 server-plugins/collaboration/eslint.config.mjs delete mode 100644 server-plugins/contact-resources/.eslintrc.js create mode 100644 server-plugins/contact-resources/eslint.config.mjs delete mode 100644 server-plugins/contact/.eslintrc.js create mode 100644 server-plugins/contact/eslint.config.mjs delete mode 100644 server-plugins/controlled-documents-resources/.eslintrc.js create mode 100644 server-plugins/controlled-documents-resources/eslint.config.mjs delete mode 100644 server-plugins/controlled-documents/.eslintrc.js create mode 100644 server-plugins/controlled-documents/eslint.config.mjs delete mode 100644 server-plugins/document-resources/.eslintrc.js create mode 100644 server-plugins/document-resources/eslint.config.mjs delete mode 100644 server-plugins/document/.eslintrc.js create mode 100644 server-plugins/document/eslint.config.mjs delete mode 100644 server-plugins/drive-resources/.eslintrc.js create mode 100644 server-plugins/drive-resources/eslint.config.mjs delete mode 100644 server-plugins/drive/.eslintrc.js create mode 100644 server-plugins/drive/eslint.config.mjs delete mode 100644 server-plugins/gmail-resources/.eslintrc.js create mode 100644 server-plugins/gmail-resources/eslint.config.mjs delete mode 100644 server-plugins/gmail/.eslintrc.js create mode 100644 server-plugins/gmail/eslint.config.mjs delete mode 100644 server-plugins/guest-resources/.eslintrc.js create mode 100644 server-plugins/guest-resources/eslint.config.mjs delete mode 100644 server-plugins/guest/.eslintrc.js create mode 100644 server-plugins/guest/eslint.config.mjs delete mode 100644 server-plugins/hr-resources/.eslintrc.js create mode 100644 server-plugins/hr-resources/eslint.config.mjs delete mode 100644 server-plugins/hr/.eslintrc.js create mode 100644 server-plugins/hr/eslint.config.mjs delete mode 100644 server-plugins/inventory-resources/.eslintrc.js create mode 100644 server-plugins/inventory-resources/eslint.config.mjs delete mode 100644 server-plugins/inventory/.eslintrc.js create mode 100644 server-plugins/inventory/eslint.config.mjs delete mode 100644 server-plugins/lead-resources/.eslintrc.js create mode 100644 server-plugins/lead-resources/eslint.config.mjs delete mode 100644 server-plugins/lead/.eslintrc.js create mode 100644 server-plugins/lead/eslint.config.mjs delete mode 100644 server-plugins/love-resources/.eslintrc.js create mode 100644 server-plugins/love-resources/eslint.config.mjs delete mode 100644 server-plugins/love/.eslintrc.js create mode 100644 server-plugins/love/eslint.config.mjs delete mode 100644 server-plugins/notification-resources/.eslintrc.js create mode 100644 server-plugins/notification-resources/eslint.config.mjs delete mode 100644 server-plugins/notification/.eslintrc.js create mode 100644 server-plugins/notification/eslint.config.mjs delete mode 100644 server-plugins/preference/.eslintrc.js create mode 100644 server-plugins/preference/eslint.config.mjs delete mode 100644 server-plugins/process-resources/.eslintrc.js create mode 100644 server-plugins/process-resources/eslint.config.mjs delete mode 100644 server-plugins/process/.eslintrc.js create mode 100644 server-plugins/process/eslint.config.mjs delete mode 100644 server-plugins/rating/.eslintrc.js create mode 100644 server-plugins/rating/eslint.config.mjs delete mode 100644 server-plugins/recruit-resources/.eslintrc.js create mode 100644 server-plugins/recruit-resources/eslint.config.mjs delete mode 100644 server-plugins/recruit/.eslintrc.js create mode 100644 server-plugins/recruit/eslint.config.mjs delete mode 100644 server-plugins/request-resources/.eslintrc.js create mode 100644 server-plugins/request-resources/eslint.config.mjs delete mode 100644 server-plugins/request/.eslintrc.js create mode 100644 server-plugins/request/eslint.config.mjs delete mode 100644 server-plugins/setting-resources/.eslintrc.js create mode 100644 server-plugins/setting-resources/eslint.config.mjs delete mode 100644 server-plugins/setting/.eslintrc.js create mode 100644 server-plugins/setting/eslint.config.mjs delete mode 100644 server-plugins/tags-resources/.eslintrc.js create mode 100644 server-plugins/tags-resources/eslint.config.mjs delete mode 100644 server-plugins/tags/.eslintrc.js create mode 100644 server-plugins/tags/eslint.config.mjs delete mode 100644 server-plugins/task-resources/.eslintrc.js create mode 100644 server-plugins/task-resources/eslint.config.mjs delete mode 100644 server-plugins/task/.eslintrc.js create mode 100644 server-plugins/task/eslint.config.mjs delete mode 100644 server-plugins/telegram-resources/.eslintrc.js create mode 100644 server-plugins/telegram-resources/eslint.config.mjs delete mode 100644 server-plugins/telegram/.eslintrc.js create mode 100644 server-plugins/telegram/eslint.config.mjs delete mode 100644 server-plugins/templates/.eslintrc.js create mode 100644 server-plugins/templates/eslint.config.mjs delete mode 100644 server-plugins/time-resources/.eslintrc.js create mode 100644 server-plugins/time-resources/eslint.config.mjs delete mode 100644 server-plugins/time/.eslintrc.js create mode 100644 server-plugins/time/eslint.config.mjs delete mode 100644 server-plugins/tracker-resources/.eslintrc.js create mode 100644 server-plugins/tracker-resources/eslint.config.mjs delete mode 100644 server-plugins/tracker/.eslintrc.js create mode 100644 server-plugins/tracker/eslint.config.mjs delete mode 100644 server-plugins/training-resources/.eslintrc.js create mode 100644 server-plugins/training-resources/eslint.config.mjs delete mode 100644 server-plugins/training/.eslintrc.js create mode 100644 server-plugins/training/eslint.config.mjs delete mode 100644 server-plugins/view-resources/.eslintrc.js create mode 100644 server-plugins/view-resources/eslint.config.mjs delete mode 100644 server-plugins/view/.eslintrc.js create mode 100644 server-plugins/view/eslint.config.mjs delete mode 100644 server/account-service/.eslintrc.js create mode 100644 server/account-service/eslint.config.mjs delete mode 100644 server/account/.eslintrc.js create mode 100644 server/account/eslint.config.mjs delete mode 100644 server/backup-service/.eslintrc.js create mode 100644 server/backup-service/eslint.config.mjs delete mode 100644 server/backup/.eslintrc.js create mode 100644 server/backup/eslint.config.mjs delete mode 100644 server/collaborator/.eslintrc.js create mode 100644 server/collaborator/eslint.config.mjs delete mode 100644 server/front/.eslintrc.js create mode 100644 server/front/eslint.config.mjs delete mode 100644 server/indexer/.eslintrc.js create mode 100644 server/indexer/eslint.config.mjs delete mode 100644 server/server-pipeline/.eslintrc.js create mode 100644 server/server-pipeline/eslint.config.mjs delete mode 100644 server/tool/.eslintrc.js create mode 100644 server/tool/eslint.config.mjs delete mode 100644 server/workspace-service/.eslintrc.js create mode 100644 server/workspace-service/eslint.config.mjs create mode 100644 services/ai-bot/ai-core/eslint.config.mjs delete mode 100644 services/ai-bot/pod-ai-bot/.eslintrc.js create mode 100644 services/ai-bot/pod-ai-bot/eslint.config.mjs delete mode 100644 services/analytics-collector/pod-analytics-collector/.eslintrc.js create mode 100644 services/analytics-collector/pod-analytics-collector/eslint.config.mjs delete mode 100644 services/backup/backup-api-pod/.eslintrc.js create mode 100644 services/backup/backup-api-pod/eslint.config.mjs delete mode 100644 services/billing/pod-billing/.eslintrc.js create mode 100644 services/billing/pod-billing/eslint.config.mjs delete mode 100644 services/calendar/pod-calendar-mailer/.eslintrc.js create mode 100644 services/calendar/pod-calendar-mailer/eslint.config.mjs delete mode 100644 services/calendar/pod-calendar/.eslintrc.js create mode 100644 services/calendar/pod-calendar/eslint.config.mjs delete mode 100644 services/datalake/pod-datalake/.eslintrc.js create mode 100644 services/datalake/pod-datalake/eslint.config.mjs delete mode 100644 services/export/pod-export/.eslintrc.js create mode 100644 services/export/pod-export/eslint.config.mjs create mode 100644 services/github-next/github-next-service/eslint.config.mjs delete mode 100644 services/github/github-assets/.eslintrc.js create mode 100644 services/github/github-assets/eslint.config.mjs delete mode 100644 services/github/github-resources/.eslintrc.js create mode 100644 services/github/github-resources/eslint.config.mjs delete mode 100644 services/github/github/.eslintrc.js create mode 100644 services/github/github/eslint.config.mjs delete mode 100644 services/github/model-github/.eslintrc.js create mode 100644 services/github/model-github/eslint.config.mjs delete mode 100644 services/github/pod-github/.eslintrc.js create mode 100644 services/github/pod-github/eslint.config.mjs delete mode 100644 services/github/server-github-model/.eslintrc.js create mode 100644 services/github/server-github-model/eslint.config.mjs delete mode 100644 services/github/server-github-resources/.eslintrc.js create mode 100644 services/github/server-github-resources/eslint.config.mjs delete mode 100644 services/github/server-github/.eslintrc.js create mode 100644 services/github/server-github/eslint.config.mjs delete mode 100644 services/gmail/pod-gmail/.eslintrc.js create mode 100644 services/gmail/pod-gmail/eslint.config.mjs delete mode 100644 services/love/.eslintrc.js create mode 100644 services/love/eslint.config.mjs delete mode 100644 services/mail/mail-common/.eslintrc.js create mode 100644 services/mail/mail-common/eslint.config.mjs delete mode 100644 services/mail/pod-mail-worker/.eslintrc.js create mode 100644 services/mail/pod-mail-worker/eslint.config.mjs delete mode 100644 services/mail/pod-mail/.eslintrc.js create mode 100644 services/mail/pod-mail/eslint.config.mjs create mode 100644 services/mcp/pod-mcp/eslint.config.mjs delete mode 100644 services/notification/pod-events-processor/.eslintrc.js create mode 100644 services/notification/pod-events-processor/eslint.config.mjs delete mode 100644 services/notification/pod-notification/.eslintrc.js create mode 100644 services/notification/pod-notification/eslint.config.mjs delete mode 100644 services/payment/pod-payment/.eslintrc.js create mode 100644 services/payment/pod-payment/eslint.config.mjs delete mode 100644 services/print/pod-print/.eslintrc.js create mode 100644 services/print/pod-print/eslint.config.mjs delete mode 100644 services/process/.eslintrc.js create mode 100644 services/process/eslint.config.mjs delete mode 100644 services/rating/.eslintrc.js create mode 100644 services/rating/eslint.config.mjs delete mode 100644 services/rekoni/.eslintrc.js create mode 100644 services/rekoni/eslint.config.mjs delete mode 100644 services/sign/pod-sign/.eslintrc.js create mode 100644 services/sign/pod-sign/eslint.config.mjs delete mode 100644 services/telegram-bot/pod-telegram-bot/.eslintrc.js create mode 100644 services/telegram-bot/pod-telegram-bot/eslint.config.mjs delete mode 100644 services/telegram/pod-telegram/.eslintrc.js create mode 100644 services/telegram/pod-telegram/eslint.config.mjs delete mode 100644 services/worker/.eslintrc.js create mode 100644 services/worker/eslint.config.mjs delete mode 100644 templates/assets/.eslintrc.js create mode 100644 templates/assets/eslint.config.mjs delete mode 100644 templates/cloud/.eslintrc.js create mode 100644 templates/cloud/eslint.config.mjs delete mode 100644 templates/model/.eslintrc.js create mode 100644 templates/model/eslint.config.mjs delete mode 100644 templates/node/.eslintrc.js create mode 100644 templates/node/eslint.config.mjs delete mode 100644 templates/platform/.eslintrc.js create mode 100644 templates/platform/eslint.config.mjs delete mode 100644 templates/ui/.eslintrc.js create mode 100644 templates/ui/eslint.config.mjs delete mode 100644 tests/sanity/.eslintrc.js create mode 100644 tests/sanity/eslint.config.mjs delete mode 100644 ws-tests/api-tests/.eslintrc.js create mode 100644 ws-tests/api-tests/eslint.config.mjs delete mode 100644 ws-tests/sanity/.eslintrc.js create mode 100644 ws-tests/sanity/eslint.config.mjs diff --git a/common/config/rush/pnpm-config.json b/common/config/rush/pnpm-config.json index 244e0dba60..1512cba845 100644 --- a/common/config/rush/pnpm-config.json +++ b/common/config/rush/pnpm-config.json @@ -246,7 +246,6 @@ // huly.utils packages: // "@hcengineering/platform-rig": "file:../../../huly.utils/packages/platform-rig", - // "@hcengineering/ui-test": "file:../../../huly.utils/packages/ui-test" // huly.communication packages // "@hcengineering/communication-types": "file:../../../communication/packages/types", diff --git a/common/scripts/package.json b/common/scripts/package.json index ad7d8b7789..9c36321245 100644 --- a/common/scripts/package.json +++ b/common/scripts/package.json @@ -14,6 +14,7 @@ "sharp": "~0.35.3", "@typescript-eslint/eslint-plugin": "^8.67.0", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^18.3.0", "eslint": "^9.39.5", "@typescript-eslint/parser": "^8.67.0" diff --git a/desktop-package/package.json b/desktop-package/package.json index 3665c3e1e4..425cfe42d5 100644 --- a/desktop-package/package.json +++ b/desktop-package/package.json @@ -34,6 +34,7 @@ "@electron/notarize": "^2.3.2", "@typescript-eslint/eslint-plugin": "^8.67.0", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^18.3.0", "eslint": "^9.39.5", "@typescript-eslint/parser": "^8.67.0", diff --git a/desktop/.eslintrc.js b/desktop/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/desktop/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/desktop/eslint.config.mjs b/desktop/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/desktop/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/desktop/package.json b/desktop/package.json index c50112cbf5..5e7bfefcbe 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -67,6 +67,7 @@ "@typescript-eslint/parser": "^8.67.0", "eslint-plugin-n": "^18.3.0", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "eslint": "^9.39.5", "prettier": "^3.6.2", "esbuild": "^0.25.10", diff --git a/dev/doc-import-tool/.eslintrc.js b/dev/doc-import-tool/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/dev/doc-import-tool/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/dev/doc-import-tool/eslint.config.mjs b/dev/doc-import-tool/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/dev/doc-import-tool/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/dev/doc-import-tool/package.json b/dev/doc-import-tool/package.json index f41906babf..1ba1f5853d 100644 --- a/dev/doc-import-tool/package.json +++ b/dev/doc-import-tool/package.json @@ -25,6 +25,7 @@ "@hcengineering/platform-rig": "workspace:^0.7.21", "@typescript-eslint/eslint-plugin": "^8.67.0", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^18.3.0", "eslint": "^9.39.5", "ts-node": "^10.9.2", diff --git a/dev/import-tool/.eslintrc.js b/dev/import-tool/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/dev/import-tool/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/dev/import-tool/eslint.config.mjs b/dev/import-tool/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/dev/import-tool/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/dev/import-tool/package.json b/dev/import-tool/package.json index 5fb4acd376..f8ca3a9ebb 100644 --- a/dev/import-tool/package.json +++ b/dev/import-tool/package.json @@ -50,6 +50,7 @@ "@types/jest": "^30.0.0", "eslint-plugin-n": "^18.3.0", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "prettier": "^3.6.2", "@types/js-yaml": "^4.0.9", "eslint-plugin-svelte": "^3.23.0", diff --git a/dev/prod/.eslintrc.js b/dev/prod/.eslintrc.js deleted file mode 100644 index f0d3a23ec9..0000000000 --- a/dev/prod/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/dev/prod/eslint.config.mjs b/dev/prod/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/dev/prod/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/dev/prod/package.json b/dev/prod/package.json index b09f838a00..b7c60fcd9b 100644 --- a/dev/prod/package.json +++ b/dev/prod/package.json @@ -29,6 +29,7 @@ "deploy": "cp -p public/* dist && aws s3 sync dist s3://anticrm-platform --delete --acl public-read" }, "devDependencies": { + "eslint-plugin-secure-coding": "^5.4.4", "eslint": "^9.39.5", "eslint-plugin-promise": "^7.3.0", "eslint-plugin-n": "^18.3.0", diff --git a/dev/tool/.eslintrc.js b/dev/tool/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/dev/tool/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/dev/tool/eslint.config.mjs b/dev/tool/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/dev/tool/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/dev/tool/package.json b/dev/tool/package.json index f188903d82..5e4b05a8f4 100644 --- a/dev/tool/package.json +++ b/dev/tool/package.json @@ -45,6 +45,7 @@ "@hcengineering/platform-rig": "workspace:^0.7.21", "@typescript-eslint/eslint-plugin": "^8.67.0", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^18.3.0", "eslint": "^9.39.5", "ts-node": "^10.9.2", diff --git a/foundations/communication/packages/sdk-types/eslint.config.mjs b/foundations/communication/packages/sdk-types/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/foundations/communication/packages/sdk-types/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/foundations/communication/packages/shared/eslint.config.mjs b/foundations/communication/packages/shared/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/foundations/communication/packages/shared/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/foundations/communication/packages/types/eslint.config.mjs b/foundations/communication/packages/types/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/foundations/communication/packages/types/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/foundations/core/common/scripts/package.json b/foundations/core/common/scripts/package.json index dacef88819..d085f11e15 100644 --- a/foundations/core/common/scripts/package.json +++ b/foundations/core/common/scripts/package.json @@ -9,6 +9,7 @@ "@typescript-eslint/eslint-plugin": "^8.67.0", "eslint-plugin-import": "^2.32.0", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^18.3.0", "eslint": "^9.39.5", "@typescript-eslint/parser": "^8.67.0", diff --git a/foundations/core/packages/account-client/.eslintrc.js b/foundations/core/packages/account-client/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/foundations/core/packages/account-client/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/core/packages/account-client/eslint.config.mjs b/foundations/core/packages/account-client/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/foundations/core/packages/account-client/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/foundations/core/packages/account-client/package.json b/foundations/core/packages/account-client/package.json index 846a8819ca..83fe866a7f 100644 --- a/foundations/core/packages/account-client/package.json +++ b/foundations/core/packages/account-client/package.json @@ -29,6 +29,7 @@ "@types/node": "^24.13.3", "@typescript-eslint/eslint-plugin": "^8.67.0", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^18.3.0", "eslint": "^9.39.5", "esbuild": "^0.25.10", diff --git a/foundations/core/packages/analytics-service/.eslintrc.js b/foundations/core/packages/analytics-service/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/foundations/core/packages/analytics-service/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/core/packages/analytics-service/eslint.config.mjs b/foundations/core/packages/analytics-service/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/foundations/core/packages/analytics-service/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/foundations/core/packages/analytics-service/package.json b/foundations/core/packages/analytics-service/package.json index d732824ddb..34b6149641 100644 --- a/foundations/core/packages/analytics-service/package.json +++ b/foundations/core/packages/analytics-service/package.json @@ -27,6 +27,7 @@ "@hcengineering/platform-rig": "workspace:^0.7.21", "@typescript-eslint/eslint-plugin": "^8.67.0", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^18.3.0", "eslint": "^9.39.5", "@typescript-eslint/parser": "^8.67.0", diff --git a/foundations/core/packages/analytics/.eslintrc.js b/foundations/core/packages/analytics/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/foundations/core/packages/analytics/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/core/packages/analytics/eslint.config.mjs b/foundations/core/packages/analytics/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/foundations/core/packages/analytics/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/foundations/core/packages/analytics/package.json b/foundations/core/packages/analytics/package.json index ef9eea6659..c2ab24b07b 100644 --- a/foundations/core/packages/analytics/package.json +++ b/foundations/core/packages/analytics/package.json @@ -27,6 +27,7 @@ "@hcengineering/platform-rig": "workspace:^0.7.21", "@typescript-eslint/eslint-plugin": "^8.67.0", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^18.3.0", "eslint": "^9.39.5", "@typescript-eslint/parser": "^8.67.0", diff --git a/foundations/core/packages/api-client/.eslintrc.js b/foundations/core/packages/api-client/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/foundations/core/packages/api-client/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/core/packages/api-client/eslint.config.mjs b/foundations/core/packages/api-client/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/foundations/core/packages/api-client/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/foundations/core/packages/api-client/package.json b/foundations/core/packages/api-client/package.json index 8900781d90..3edbf2e940 100644 --- a/foundations/core/packages/api-client/package.json +++ b/foundations/core/packages/api-client/package.json @@ -35,6 +35,7 @@ "@hcengineering/platform-rig": "workspace:^0.7.21", "@typescript-eslint/eslint-plugin": "^8.67.0", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^18.3.0", "eslint": "^9.39.5", "@typescript-eslint/parser": "^8.67.0", diff --git a/foundations/core/packages/client-resources/.eslintrc.js b/foundations/core/packages/client-resources/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/foundations/core/packages/client-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/core/packages/client-resources/eslint.config.mjs b/foundations/core/packages/client-resources/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/foundations/core/packages/client-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/foundations/core/packages/client-resources/package.json b/foundations/core/packages/client-resources/package.json index a34a4c91fb..92ad272ec5 100644 --- a/foundations/core/packages/client-resources/package.json +++ b/foundations/core/packages/client-resources/package.json @@ -27,6 +27,7 @@ "@hcengineering/platform-rig": "workspace:^0.7.21", "@typescript-eslint/eslint-plugin": "^8.67.0", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^18.3.0", "eslint": "^9.39.5", "@typescript-eslint/parser": "^8.67.0", diff --git a/foundations/core/packages/client/.eslintrc.js b/foundations/core/packages/client/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/foundations/core/packages/client/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/core/packages/client/eslint.config.mjs b/foundations/core/packages/client/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/foundations/core/packages/client/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/foundations/core/packages/client/package.json b/foundations/core/packages/client/package.json index 2563217527..dd85fd0d95 100644 --- a/foundations/core/packages/client/package.json +++ b/foundations/core/packages/client/package.json @@ -27,6 +27,7 @@ "@hcengineering/platform-rig": "workspace:^0.7.21", "@typescript-eslint/eslint-plugin": "^8.67.0", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^18.3.0", "eslint": "^9.39.5", "@typescript-eslint/parser": "^8.67.0", diff --git a/foundations/core/packages/collaborator-client/.eslintrc.js b/foundations/core/packages/collaborator-client/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/foundations/core/packages/collaborator-client/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/core/packages/collaborator-client/eslint.config.mjs b/foundations/core/packages/collaborator-client/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/foundations/core/packages/collaborator-client/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/foundations/core/packages/collaborator-client/package.json b/foundations/core/packages/collaborator-client/package.json index eac954a159..3b354c6edb 100644 --- a/foundations/core/packages/collaborator-client/package.json +++ b/foundations/core/packages/collaborator-client/package.json @@ -29,6 +29,7 @@ "@types/node": "^24.13.3", "@typescript-eslint/eslint-plugin": "^8.67.0", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^18.3.0", "eslint": "^9.39.5", "esbuild": "^0.25.10", diff --git a/foundations/core/packages/core/.eslintrc.js b/foundations/core/packages/core/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/foundations/core/packages/core/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/core/packages/core/eslint.config.mjs b/foundations/core/packages/core/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/foundations/core/packages/core/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/foundations/core/packages/core/package.json b/foundations/core/packages/core/package.json index eb4b318578..0f49b6110d 100644 --- a/foundations/core/packages/core/package.json +++ b/foundations/core/packages/core/package.json @@ -31,6 +31,7 @@ "@hcengineering/platform-rig": "workspace:^0.7.21", "@typescript-eslint/eslint-plugin": "^8.67.0", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^18.3.0", "eslint": "^9.39.5", "@typescript-eslint/parser": "^8.67.0", diff --git a/foundations/core/packages/hulylake-client/.eslintrc.js b/foundations/core/packages/hulylake-client/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/foundations/core/packages/hulylake-client/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/core/packages/hulylake-client/eslint.config.mjs b/foundations/core/packages/hulylake-client/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/foundations/core/packages/hulylake-client/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/foundations/core/packages/hulylake-client/package.json b/foundations/core/packages/hulylake-client/package.json index ef3dc74810..74746680d4 100644 --- a/foundations/core/packages/hulylake-client/package.json +++ b/foundations/core/packages/hulylake-client/package.json @@ -34,6 +34,7 @@ "eslint": "^9.39.5", "eslint-plugin-n": "^18.3.0", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "jest": "^30.4.2", "prettier": "^3.6.2", "ts-jest": "^29.4.12", diff --git a/foundations/core/packages/measurements-otlp/.eslintrc.js b/foundations/core/packages/measurements-otlp/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/foundations/core/packages/measurements-otlp/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/core/packages/measurements-otlp/eslint.config.mjs b/foundations/core/packages/measurements-otlp/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/foundations/core/packages/measurements-otlp/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/foundations/core/packages/measurements-otlp/package.json b/foundations/core/packages/measurements-otlp/package.json index 5937657898..3666cfef14 100644 --- a/foundations/core/packages/measurements-otlp/package.json +++ b/foundations/core/packages/measurements-otlp/package.json @@ -35,6 +35,7 @@ "@typescript-eslint/parser": "^8.67.0", "eslint": "^9.39.5", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^18.3.0", "eslint-plugin-svelte": "^3.23.0", "eslint-config-love": "^155.0.0" diff --git a/foundations/core/packages/measurements/.eslintrc.js b/foundations/core/packages/measurements/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/foundations/core/packages/measurements/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/core/packages/measurements/eslint.config.mjs b/foundations/core/packages/measurements/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/foundations/core/packages/measurements/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/foundations/core/packages/measurements/package.json b/foundations/core/packages/measurements/package.json index 1c4b5580d6..fe51976536 100644 --- a/foundations/core/packages/measurements/package.json +++ b/foundations/core/packages/measurements/package.json @@ -35,6 +35,7 @@ "@typescript-eslint/parser": "^8.67.0", "eslint": "^9.39.5", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^18.3.0", "eslint-plugin-svelte": "^3.23.0", "eslint-config-love": "^155.0.0" diff --git a/foundations/core/packages/model/.eslintrc.js b/foundations/core/packages/model/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/foundations/core/packages/model/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/core/packages/model/eslint.config.mjs b/foundations/core/packages/model/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/foundations/core/packages/model/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/foundations/core/packages/model/package.json b/foundations/core/packages/model/package.json index 55c8eb9388..8cdeca26d7 100644 --- a/foundations/core/packages/model/package.json +++ b/foundations/core/packages/model/package.json @@ -21,6 +21,7 @@ "@hcengineering/platform-rig": "workspace:^0.7.21", "@typescript-eslint/eslint-plugin": "^8.67.0", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^18.3.0", "eslint": "^9.39.5", "@types/toposort": "^2.0.3", diff --git a/foundations/core/packages/platform/.eslintrc.js b/foundations/core/packages/platform/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/foundations/core/packages/platform/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/core/packages/platform/eslint.config.mjs b/foundations/core/packages/platform/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/foundations/core/packages/platform/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/foundations/core/packages/platform/package.json b/foundations/core/packages/platform/package.json index c897cab613..7e11043993 100644 --- a/foundations/core/packages/platform/package.json +++ b/foundations/core/packages/platform/package.json @@ -32,6 +32,7 @@ "eslint": "^9.39.5", "eslint-plugin-n": "^18.3.0", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "jest": "^30.4.2", "prettier": "^3.6.2", "ts-jest": "^29.4.12", diff --git a/foundations/core/packages/postgres-base/.eslintrc.js b/foundations/core/packages/postgres-base/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/foundations/core/packages/postgres-base/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/core/packages/postgres-base/eslint.config.mjs b/foundations/core/packages/postgres-base/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/foundations/core/packages/postgres-base/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/foundations/core/packages/postgres-base/package.json b/foundations/core/packages/postgres-base/package.json index 8bf1c1687b..9a3d511817 100644 --- a/foundations/core/packages/postgres-base/package.json +++ b/foundations/core/packages/postgres-base/package.json @@ -37,6 +37,7 @@ "@typescript-eslint/parser": "^8.67.0", "eslint": "^9.39.5", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^18.3.0", "eslint-plugin-svelte": "^3.23.0", "eslint-config-love": "^155.0.0" diff --git a/foundations/core/packages/query/.eslintrc.js b/foundations/core/packages/query/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/foundations/core/packages/query/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/core/packages/query/eslint.config.mjs b/foundations/core/packages/query/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/foundations/core/packages/query/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/foundations/core/packages/query/package.json b/foundations/core/packages/query/package.json index df8da739ad..4a543f03fe 100644 --- a/foundations/core/packages/query/package.json +++ b/foundations/core/packages/query/package.json @@ -27,6 +27,7 @@ "@hcengineering/platform-rig": "workspace:^0.7.21", "@typescript-eslint/eslint-plugin": "^8.67.0", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^18.3.0", "eslint": "^9.39.5", "@typescript-eslint/parser": "^8.67.0", diff --git a/foundations/core/packages/rank/.eslintrc.js b/foundations/core/packages/rank/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/foundations/core/packages/rank/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/core/packages/rank/eslint.config.mjs b/foundations/core/packages/rank/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/foundations/core/packages/rank/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/foundations/core/packages/rank/package.json b/foundations/core/packages/rank/package.json index dcd1c91840..c1ee6f113f 100644 --- a/foundations/core/packages/rank/package.json +++ b/foundations/core/packages/rank/package.json @@ -29,6 +29,7 @@ "@typescript-eslint/parser": "^8.67.0", "eslint-plugin-n": "^18.3.0", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "eslint": "^9.39.5", "prettier": "^3.6.2", "jest": "^30.4.2", diff --git a/foundations/core/packages/retry/.eslintrc.js b/foundations/core/packages/retry/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/foundations/core/packages/retry/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/core/packages/retry/eslint.config.mjs b/foundations/core/packages/retry/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/foundations/core/packages/retry/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/foundations/core/packages/retry/package.json b/foundations/core/packages/retry/package.json index 2fa9d273a6..88ef6bd172 100644 --- a/foundations/core/packages/retry/package.json +++ b/foundations/core/packages/retry/package.json @@ -21,6 +21,7 @@ "@hcengineering/platform-rig": "workspace:^0.7.21", "@typescript-eslint/eslint-plugin": "^8.67.0", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^18.3.0", "eslint": "^9.39.5", "@typescript-eslint/parser": "^8.67.0", diff --git a/foundations/core/packages/rpc/.eslintrc.js b/foundations/core/packages/rpc/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/foundations/core/packages/rpc/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/core/packages/rpc/eslint.config.mjs b/foundations/core/packages/rpc/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/foundations/core/packages/rpc/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/foundations/core/packages/rpc/package.json b/foundations/core/packages/rpc/package.json index edd4c3b339..ededff26f6 100644 --- a/foundations/core/packages/rpc/package.json +++ b/foundations/core/packages/rpc/package.json @@ -28,6 +28,7 @@ "@types/node": "^24.13.3", "@typescript-eslint/eslint-plugin": "^8.67.0", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^18.3.0", "eslint": "^9.39.5", "@typescript-eslint/parser": "^8.67.0", diff --git a/foundations/core/packages/storage-client/.eslintrc.js b/foundations/core/packages/storage-client/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/foundations/core/packages/storage-client/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/core/packages/storage-client/eslint.config.mjs b/foundations/core/packages/storage-client/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/foundations/core/packages/storage-client/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/foundations/core/packages/storage-client/package.json b/foundations/core/packages/storage-client/package.json index 1e7b9d7299..879659d62a 100644 --- a/foundations/core/packages/storage-client/package.json +++ b/foundations/core/packages/storage-client/package.json @@ -29,6 +29,7 @@ "@types/node": "^24.13.3", "@typescript-eslint/eslint-plugin": "^8.67.0", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^18.3.0", "eslint": "^9.39.5", "esbuild": "^0.25.10", diff --git a/foundations/core/packages/storage/.eslintrc.js b/foundations/core/packages/storage/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/foundations/core/packages/storage/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/core/packages/storage/eslint.config.mjs b/foundations/core/packages/storage/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/foundations/core/packages/storage/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/foundations/core/packages/storage/package.json b/foundations/core/packages/storage/package.json index 4f37365d34..bea31a4aa6 100644 --- a/foundations/core/packages/storage/package.json +++ b/foundations/core/packages/storage/package.json @@ -21,6 +21,7 @@ "@hcengineering/platform-rig": "workspace:^0.7.21", "@typescript-eslint/eslint-plugin": "^8.67.0", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^18.3.0", "eslint": "^9.39.5", "@typescript-eslint/parser": "^8.67.0", diff --git a/foundations/core/packages/text-core/.eslintrc.js b/foundations/core/packages/text-core/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/foundations/core/packages/text-core/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/core/packages/text-core/eslint.config.mjs b/foundations/core/packages/text-core/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/foundations/core/packages/text-core/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/foundations/core/packages/text-core/package.json b/foundations/core/packages/text-core/package.json index 1ea792f03b..b9b71cd480 100644 --- a/foundations/core/packages/text-core/package.json +++ b/foundations/core/packages/text-core/package.json @@ -27,6 +27,7 @@ "@hcengineering/platform-rig": "workspace:^0.7.21", "@typescript-eslint/eslint-plugin": "^8.67.0", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^18.3.0", "eslint": "^9.39.5", "@typescript-eslint/parser": "^8.67.0", diff --git a/foundations/core/packages/text-html/.eslintrc.js b/foundations/core/packages/text-html/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/foundations/core/packages/text-html/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/core/packages/text-html/eslint.config.mjs b/foundations/core/packages/text-html/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/foundations/core/packages/text-html/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/foundations/core/packages/text-html/package.json b/foundations/core/packages/text-html/package.json index 6f83624300..5934a83587 100644 --- a/foundations/core/packages/text-html/package.json +++ b/foundations/core/packages/text-html/package.json @@ -27,6 +27,7 @@ "@hcengineering/platform-rig": "workspace:^0.7.21", "@typescript-eslint/eslint-plugin": "^8.67.0", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^18.3.0", "eslint": "^9.39.5", "@typescript-eslint/parser": "^8.67.0", diff --git a/foundations/core/packages/text-markdown/.eslintrc.js b/foundations/core/packages/text-markdown/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/foundations/core/packages/text-markdown/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/core/packages/text-markdown/eslint.config.mjs b/foundations/core/packages/text-markdown/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/foundations/core/packages/text-markdown/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/foundations/core/packages/text-markdown/package.json b/foundations/core/packages/text-markdown/package.json index 66c247c162..e2d60a9d84 100644 --- a/foundations/core/packages/text-markdown/package.json +++ b/foundations/core/packages/text-markdown/package.json @@ -27,6 +27,7 @@ "@hcengineering/platform-rig": "workspace:^0.7.21", "@typescript-eslint/eslint-plugin": "^8.67.0", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^18.3.0", "eslint": "^9.39.5", "@typescript-eslint/parser": "^8.67.0", diff --git a/foundations/core/packages/text-ydoc/.eslintrc.js b/foundations/core/packages/text-ydoc/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/foundations/core/packages/text-ydoc/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/core/packages/text-ydoc/eslint.config.mjs b/foundations/core/packages/text-ydoc/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/foundations/core/packages/text-ydoc/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/foundations/core/packages/text-ydoc/package.json b/foundations/core/packages/text-ydoc/package.json index 3bc99683e2..de4820386b 100644 --- a/foundations/core/packages/text-ydoc/package.json +++ b/foundations/core/packages/text-ydoc/package.json @@ -27,6 +27,7 @@ "@hcengineering/platform-rig": "workspace:^0.7.21", "@typescript-eslint/eslint-plugin": "^8.67.0", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^18.3.0", "eslint": "^9.39.5", "@typescript-eslint/parser": "^8.67.0", diff --git a/foundations/core/packages/text/.eslintrc.js b/foundations/core/packages/text/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/foundations/core/packages/text/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/core/packages/text/eslint.config.mjs b/foundations/core/packages/text/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/foundations/core/packages/text/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/foundations/core/packages/text/package.json b/foundations/core/packages/text/package.json index 083fbb90c6..594d01cf6d 100644 --- a/foundations/core/packages/text/package.json +++ b/foundations/core/packages/text/package.json @@ -27,6 +27,7 @@ "@hcengineering/platform-rig": "workspace:^0.7.21", "@typescript-eslint/eslint-plugin": "^8.67.0", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^18.3.0", "eslint": "^9.39.5", "@typescript-eslint/parser": "^8.67.0", diff --git a/foundations/core/packages/token/.eslintrc.js b/foundations/core/packages/token/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/foundations/core/packages/token/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/core/packages/token/eslint.config.mjs b/foundations/core/packages/token/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/foundations/core/packages/token/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/foundations/core/packages/token/package.json b/foundations/core/packages/token/package.json index e6e53c0e70..b01ceda316 100644 --- a/foundations/core/packages/token/package.json +++ b/foundations/core/packages/token/package.json @@ -29,6 +29,7 @@ "@types/node": "^24.13.3", "@typescript-eslint/eslint-plugin": "^8.67.0", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^18.3.0", "eslint": "^9.39.5", "@typescript-eslint/parser": "^8.67.0", diff --git a/foundations/net/packages/backrpc/.eslintrc.js b/foundations/net/packages/backrpc/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/foundations/net/packages/backrpc/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/net/packages/backrpc/eslint.config.mjs b/foundations/net/packages/backrpc/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/foundations/net/packages/backrpc/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/foundations/net/packages/backrpc/package.json b/foundations/net/packages/backrpc/package.json index a3eae56b13..5c7e4e77f2 100644 --- a/foundations/net/packages/backrpc/package.json +++ b/foundations/net/packages/backrpc/package.json @@ -32,11 +32,12 @@ "@typescript-eslint/eslint-plugin": "^6.11.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^15.4.0", "eslint": "^8.54.0", "simplytyped": "^3.3.0", "@typescript-eslint/parser": "^6.11.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "eslint-config-love": "^157.0.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "jest": "^29.7.0", diff --git a/foundations/net/packages/client/.eslintrc.js b/foundations/net/packages/client/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/foundations/net/packages/client/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/net/packages/client/eslint.config.mjs b/foundations/net/packages/client/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/foundations/net/packages/client/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/foundations/net/packages/client/package.json b/foundations/net/packages/client/package.json index 8314f07956..3e33afffbd 100644 --- a/foundations/net/packages/client/package.json +++ b/foundations/net/packages/client/package.json @@ -32,11 +32,12 @@ "@typescript-eslint/eslint-plugin": "^6.11.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^15.4.0", "eslint": "^8.54.0", "simplytyped": "^3.3.0", "@typescript-eslint/parser": "^6.11.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "eslint-config-love": "^157.0.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "jest": "^29.7.0", diff --git a/foundations/net/packages/core/.eslintrc.js b/foundations/net/packages/core/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/foundations/net/packages/core/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/net/packages/core/eslint.config.mjs b/foundations/net/packages/core/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/foundations/net/packages/core/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/foundations/net/packages/core/package.json b/foundations/net/packages/core/package.json index 94ba73c50d..79a0ca531f 100644 --- a/foundations/net/packages/core/package.json +++ b/foundations/net/packages/core/package.json @@ -32,11 +32,12 @@ "@typescript-eslint/eslint-plugin": "^6.11.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^15.4.0", "eslint": "^8.54.0", "simplytyped": "^3.3.0", "@typescript-eslint/parser": "^6.11.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "eslint-config-love": "^157.0.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "jest": "^29.7.0", diff --git a/foundations/net/packages/server/.eslintrc.js b/foundations/net/packages/server/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/foundations/net/packages/server/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/net/packages/server/eslint.config.mjs b/foundations/net/packages/server/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/foundations/net/packages/server/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/foundations/net/packages/server/package.json b/foundations/net/packages/server/package.json index bc879112db..b6498023e6 100644 --- a/foundations/net/packages/server/package.json +++ b/foundations/net/packages/server/package.json @@ -32,11 +32,12 @@ "@typescript-eslint/eslint-plugin": "^6.11.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^15.4.0", "eslint": "^8.54.0", "simplytyped": "^3.3.0", "@typescript-eslint/parser": "^6.11.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "eslint-config-love": "^157.0.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "jest": "^29.7.0", diff --git a/foundations/net/pods/network-pod/.eslintrc.js b/foundations/net/pods/network-pod/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/foundations/net/pods/network-pod/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/net/pods/network-pod/eslint.config.mjs b/foundations/net/pods/network-pod/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/foundations/net/pods/network-pod/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/foundations/net/pods/network-pod/package.json b/foundations/net/pods/network-pod/package.json index f23ddf7c9b..57bc07c418 100644 --- a/foundations/net/pods/network-pod/package.json +++ b/foundations/net/pods/network-pod/package.json @@ -47,11 +47,12 @@ "@typescript-eslint/eslint-plugin": "^6.11.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^15.4.0", "eslint": "^8.54.0", "simplytyped": "^3.3.0", "@typescript-eslint/parser": "^6.11.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "eslint-config-love": "^157.0.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "jest": "^29.7.0", diff --git a/foundations/net/pods/network-tool/.eslintrc.js b/foundations/net/pods/network-tool/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/foundations/net/pods/network-tool/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/net/pods/network-tool/eslint.config.mjs b/foundations/net/pods/network-tool/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/foundations/net/pods/network-tool/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/foundations/net/pods/network-tool/package.json b/foundations/net/pods/network-tool/package.json index ee29bd1bba..03e47f9ef1 100644 --- a/foundations/net/pods/network-tool/package.json +++ b/foundations/net/pods/network-tool/package.json @@ -48,11 +48,12 @@ "@typescript-eslint/eslint-plugin": "^6.11.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^15.4.0", "eslint": "^8.54.0", "simplytyped": "^3.3.0", "@typescript-eslint/parser": "^6.11.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "eslint-config-love": "^157.0.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "jest": "^29.7.0", diff --git a/foundations/net/tests/.eslintrc.js b/foundations/net/tests/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/foundations/net/tests/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/net/tests/eslint.config.mjs b/foundations/net/tests/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/foundations/net/tests/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/foundations/net/tests/package.json b/foundations/net/tests/package.json index 4157b455e6..485a688e76 100644 --- a/foundations/net/tests/package.json +++ b/foundations/net/tests/package.json @@ -29,10 +29,11 @@ "@typescript-eslint/eslint-plugin": "^6.11.0", "@typescript-eslint/parser": "^6.11.0", "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "eslint-config-love": "^157.0.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-n": "^15.4.0", "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-secure-coding": "^5.4.4", "jest": "^29.7.0", "prettier": "^3.6.2", "ts-jest": "^29.1.1", diff --git a/foundations/server/common/scripts/package-lock.json b/foundations/server/common/scripts/package-lock.json index e0a0ba0c41..18f037c2b2 100644 --- a/foundations/server/common/scripts/package-lock.json +++ b/foundations/server/common/scripts/package-lock.json @@ -24,10 +24,11 @@ "esbuild": "^0.25.10", "esbuild-plugin-copy": "~2.1.1", "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "eslint-config-love": "^157.0.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-n": "^15.4.0", "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-secure-coding": "^5.4.4", "prettier": "^3.6.2", "typescript": "^5.9.3" }, diff --git a/foundations/server/common/scripts/package.json b/foundations/server/common/scripts/package.json index 73a02af007..b55925f4a8 100644 --- a/foundations/server/common/scripts/package.json +++ b/foundations/server/common/scripts/package.json @@ -17,10 +17,11 @@ "@typescript-eslint/eslint-plugin": "^6.21.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^15.4.0", "eslint": "^8.54.0", "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "eslint-config-love": "^157.0.0", "eslint-plugin-svelte": "^2.35.1" }, "private": true diff --git a/foundations/server/packages/client/.eslintrc.js b/foundations/server/packages/client/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/foundations/server/packages/client/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/server/packages/client/eslint.config.mjs b/foundations/server/packages/client/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/foundations/server/packages/client/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/foundations/server/packages/client/package.json b/foundations/server/packages/client/package.json index a284deea25..a5a84b1e61 100644 --- a/foundations/server/packages/client/package.json +++ b/foundations/server/packages/client/package.json @@ -21,6 +21,7 @@ "@hcengineering/platform-rig": "workspace:^0.7.21", "@typescript-eslint/eslint-plugin": "^8.67.0", "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^18.3.0", "eslint": "^9.39.5", "@typescript-eslint/parser": "^8.67.0", diff --git a/foundations/server/packages/collaboration/.eslintrc.js b/foundations/server/packages/collaboration/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/foundations/server/packages/collaboration/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/server/packages/collaboration/eslint.config.mjs b/foundations/server/packages/collaboration/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/foundations/server/packages/collaboration/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/foundations/server/packages/core/.eslintrc.js b/foundations/server/packages/core/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/foundations/server/packages/core/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/server/packages/core/eslint.config.mjs b/foundations/server/packages/core/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/foundations/server/packages/core/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/foundations/server/packages/datalake/.eslintrc.js b/foundations/server/packages/datalake/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/foundations/server/packages/datalake/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/server/packages/datalake/eslint.config.mjs b/foundations/server/packages/datalake/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/foundations/server/packages/datalake/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/foundations/server/packages/elastic/.eslintrc.js b/foundations/server/packages/elastic/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/foundations/server/packages/elastic/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/server/packages/elastic/eslint.config.mjs b/foundations/server/packages/elastic/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/foundations/server/packages/elastic/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/foundations/server/packages/hulylake/.eslintrc.js b/foundations/server/packages/hulylake/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/foundations/server/packages/hulylake/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/server/packages/hulylake/eslint.config.mjs b/foundations/server/packages/hulylake/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/foundations/server/packages/hulylake/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/foundations/server/packages/kafka/.eslintrc.js b/foundations/server/packages/kafka/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/foundations/server/packages/kafka/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/server/packages/kafka/eslint.config.mjs b/foundations/server/packages/kafka/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/foundations/server/packages/kafka/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/foundations/server/packages/middleware/.eslintrc.js b/foundations/server/packages/middleware/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/foundations/server/packages/middleware/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/server/packages/middleware/eslint.config.mjs b/foundations/server/packages/middleware/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/foundations/server/packages/middleware/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/foundations/server/packages/minio/.eslintrc.js b/foundations/server/packages/minio/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/foundations/server/packages/minio/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/server/packages/minio/eslint.config.mjs b/foundations/server/packages/minio/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/foundations/server/packages/minio/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/foundations/server/packages/mongo/.eslintrc.js b/foundations/server/packages/mongo/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/foundations/server/packages/mongo/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/server/packages/mongo/eslint.config.mjs b/foundations/server/packages/mongo/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/foundations/server/packages/mongo/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/foundations/server/packages/postgres/.eslintrc.js b/foundations/server/packages/postgres/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/foundations/server/packages/postgres/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/server/packages/postgres/eslint.config.mjs b/foundations/server/packages/postgres/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/foundations/server/packages/postgres/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/foundations/server/packages/s3/.eslintrc.js b/foundations/server/packages/s3/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/foundations/server/packages/s3/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/server/packages/s3/eslint.config.mjs b/foundations/server/packages/s3/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/foundations/server/packages/s3/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/foundations/server/packages/server-storage/.eslintrc.js b/foundations/server/packages/server-storage/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/foundations/server/packages/server-storage/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/server/packages/server-storage/eslint.config.mjs b/foundations/server/packages/server-storage/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/foundations/server/packages/server-storage/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/foundations/server/packages/server/.eslintrc.js b/foundations/server/packages/server/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/foundations/server/packages/server/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/foundations/server/packages/server/eslint.config.mjs b/foundations/server/packages/server/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/foundations/server/packages/server/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/foundations/utils/common/scripts/package.json b/foundations/utils/common/scripts/package.json index f6f91664d5..0ae8a210e5 100644 --- a/foundations/utils/common/scripts/package.json +++ b/foundations/utils/common/scripts/package.json @@ -9,10 +9,11 @@ "@typescript-eslint/eslint-plugin": "^6.21.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^15.4.0", "eslint": "^8.54.0", "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0" + "eslint-config-love": "^157.0.0" }, "private": true } diff --git a/foundations/utils/packages/platform-rig/bin/format.js b/foundations/utils/packages/platform-rig/bin/format.js index 963a48cd62..48f6a12f5f 100755 --- a/foundations/utils/packages/platform-rig/bin/format.js +++ b/foundations/utils/packages/platform-rig/bin/format.js @@ -62,10 +62,11 @@ try { } async function loadEslintConfig() { - const [{ default: love }, { default: stylistic }, svelte, { default: tsParser }, svelteParser] = await Promise.all([ + const [{ default: love }, { default: stylistic }, svelte, secureCoding, { default: tsParser }, svelteParser] = await Promise.all([ import('eslint-config-love'), import('@stylistic/eslint-plugin'), import('eslint-plugin-svelte'), + import('eslint-plugin-secure-coding'), import('@typescript-eslint/parser'), import('svelte-eslint-parser') ]) @@ -76,12 +77,14 @@ async function loadEslintConfig() { '**/*.json', '**/node_modules/**', '**/.eslintrc.js', + '**/eslint.config.mjs', '**/dist/**', '**/lib/**', '**/types/**', '**/.build/**' ] }, + secureCoding.configs.recommended, { ...love, files: ['**/*.{js,cjs,mjs,ts,cts,mts}'], @@ -210,8 +213,8 @@ for (const v of process.argv.slice(2)) { } } -// Add package.json, .eslintrc.js and node_modules/@hcengineering/platform-rig/ as hash roots. -for (const f of ['package.json', '.eslintrc.js']) { +// Add package.json, ESLint configs and node_modules/@hcengineering/platform-rig/ as hash roots. +for (const f of ['package.json', '.eslintrc.js', 'eslint.config.mjs']) { const fFile = join(process.cwd(), f) if (existsSync(fFile)) { calcFileHash(fFile, 'changed', false) diff --git a/foundations/utils/packages/platform-rig/package.json b/foundations/utils/packages/platform-rig/package.json index d149f50d76..6a67130cb7 100644 --- a/foundations/utils/packages/platform-rig/package.json +++ b/foundations/utils/packages/platform-rig/package.json @@ -20,6 +20,8 @@ "@typescript-eslint/eslint-plugin": "^8.67.0", "eslint-plugin-promise": "^7.3.0", "eslint-plugin-n": "^18.3.0", + "eslint-plugin-import": "^2.32.0", + "eslint-plugin-secure-coding": "^5.4.4", "eslint": "^9.39.5", "@stylistic/eslint-plugin": "^5.10.0", "@typescript-eslint/parser": "^8.67.0", diff --git a/foundations/utils/packages/platform-rig/profiles/assets/eslint.config.json b/foundations/utils/packages/platform-rig/profiles/assets/eslint.config.json deleted file mode 100644 index 1ef88ecd41..0000000000 --- a/foundations/utils/packages/platform-rig/profiles/assets/eslint.config.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "extends": [ - "standard-with-typescript" - ], - "ignorePatterns": ["*.json", "node_modules/*", ".eslintrc.js"], - "rules": { - "@typescript-eslint/consistent-type-exports": "off", - "@typescript-eslint/array-type": "off", - "@typescript-eslint/promise-function-async": "off" - } -} diff --git a/foundations/utils/packages/platform-rig/profiles/assets/eslint.config.mjs b/foundations/utils/packages/platform-rig/profiles/assets/eslint.config.mjs new file mode 100644 index 0000000000..3175b1352e --- /dev/null +++ b/foundations/utils/packages/platform-rig/profiles/assets/eslint.config.mjs @@ -0,0 +1,24 @@ +import { defineConfig } from 'eslint/config' +import love from 'eslint-config-love' +import secureCoding from 'eslint-plugin-secure-coding' +import legacyCompatibilityRuleList from '../legacy-compatibility-rules.json' with { type: 'json' } + +const LEGACY_COMPATIBILITY_RULES = Object.fromEntries( + legacyCompatibilityRuleList.map((rule) => [rule, 'off']) +) + +export default defineConfig([ + { + ignores: ['**/*.json', '**/node_modules/**', '**/.eslintrc.js'] + }, + { + files: ['**/*.{js,cjs,mjs,ts,cts,mts}'], + extends: [love, secureCoding.configs.recommended], + rules: { + ...LEGACY_COMPATIBILITY_RULES, + '@typescript-eslint/consistent-type-exports': 'off', + '@typescript-eslint/array-type': 'off', + '@typescript-eslint/promise-function-async': 'off' + } + } +]) diff --git a/foundations/utils/packages/platform-rig/profiles/default/eslint.config.json b/foundations/utils/packages/platform-rig/profiles/default/eslint.config.json deleted file mode 100644 index 28f819efce..0000000000 --- a/foundations/utils/packages/platform-rig/profiles/default/eslint.config.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "extends": [ - "standard-with-typescript" - ], - "ignorePatterns": ["*.json", "node_modules/*", ".eslintrc.js"], - "rules": { - "@typescript-eslint/consistent-type-exports": "off", - "@typescript-eslint/array-type": "off", - "@typescript-eslint/promise-function-async": "off", - "@typescript-eslint/consistent-type-imports": "off" - } -} diff --git a/foundations/utils/packages/platform-rig/profiles/default/eslint.config.mjs b/foundations/utils/packages/platform-rig/profiles/default/eslint.config.mjs new file mode 100644 index 0000000000..75e772529d --- /dev/null +++ b/foundations/utils/packages/platform-rig/profiles/default/eslint.config.mjs @@ -0,0 +1,28 @@ +// @ts-check + +import { defineConfig } from 'eslint/config' +import love from 'eslint-config-love' +import secureCoding from 'eslint-plugin-secure-coding' + +import legacyCompatibilityRuleList from '../legacy-compatibility-rules.json' with { type: 'json' } + +const LEGACY_COMPATIBILITY_RULES = Object.fromEntries( + legacyCompatibilityRuleList.map((rule) => [rule, 'off']) +) + +export default defineConfig([ + { + ignores: ['**/*.json', '**/node_modules/**', '**/.eslintrc.js'] + }, + { + files: ['**/*.{js,cjs,mjs,ts,cts,mts}'], + extends: [love, secureCoding.configs.recommended], + rules: { + ...LEGACY_COMPATIBILITY_RULES, + '@typescript-eslint/consistent-type-exports': 'off', + '@typescript-eslint/array-type': 'off', + '@typescript-eslint/promise-function-async': 'off', + '@typescript-eslint/consistent-type-imports': 'off' + } + } +]) diff --git a/foundations/utils/packages/platform-rig/profiles/legacy-compatibility-rules.json b/foundations/utils/packages/platform-rig/profiles/legacy-compatibility-rules.json index ed60c97155..2c2f34dbb2 100644 --- a/foundations/utils/packages/platform-rig/profiles/legacy-compatibility-rules.json +++ b/foundations/utils/packages/platform-rig/profiles/legacy-compatibility-rules.json @@ -1,4 +1,5 @@ [ + "eslint-comments/require-description", "@eslint-community/eslint-comments/disable-enable-pair", "@eslint-community/eslint-comments/no-aggregating-enable", "@eslint-community/eslint-comments/no-duplicate-disable", diff --git a/foundations/utils/packages/platform-rig/profiles/model/eslint.config.json b/foundations/utils/packages/platform-rig/profiles/model/eslint.config.json deleted file mode 100644 index 1ef88ecd41..0000000000 --- a/foundations/utils/packages/platform-rig/profiles/model/eslint.config.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "extends": [ - "standard-with-typescript" - ], - "ignorePatterns": ["*.json", "node_modules/*", ".eslintrc.js"], - "rules": { - "@typescript-eslint/consistent-type-exports": "off", - "@typescript-eslint/array-type": "off", - "@typescript-eslint/promise-function-async": "off" - } -} diff --git a/foundations/utils/packages/platform-rig/profiles/model/eslint.config.mjs b/foundations/utils/packages/platform-rig/profiles/model/eslint.config.mjs new file mode 100644 index 0000000000..3175b1352e --- /dev/null +++ b/foundations/utils/packages/platform-rig/profiles/model/eslint.config.mjs @@ -0,0 +1,24 @@ +import { defineConfig } from 'eslint/config' +import love from 'eslint-config-love' +import secureCoding from 'eslint-plugin-secure-coding' +import legacyCompatibilityRuleList from '../legacy-compatibility-rules.json' with { type: 'json' } + +const LEGACY_COMPATIBILITY_RULES = Object.fromEntries( + legacyCompatibilityRuleList.map((rule) => [rule, 'off']) +) + +export default defineConfig([ + { + ignores: ['**/*.json', '**/node_modules/**', '**/.eslintrc.js'] + }, + { + files: ['**/*.{js,cjs,mjs,ts,cts,mts}'], + extends: [love, secureCoding.configs.recommended], + rules: { + ...LEGACY_COMPATIBILITY_RULES, + '@typescript-eslint/consistent-type-exports': 'off', + '@typescript-eslint/array-type': 'off', + '@typescript-eslint/promise-function-async': 'off' + } + } +]) diff --git a/foundations/utils/packages/platform-rig/profiles/node/eslint.config.json b/foundations/utils/packages/platform-rig/profiles/node/eslint.config.json deleted file mode 100644 index 8618aa30f6..0000000000 --- a/foundations/utils/packages/platform-rig/profiles/node/eslint.config.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "extends": [ - "standard-with-typescript" - ], - "ignorePatterns": ["*.json", "node_modules/*", ".eslintrc.js"], - "rules": { - "@typescript-eslint/consistent-type-exports": "off", - "@typescript-eslint/array-type": "off", - "@typescript-eslint/promise-function-async": "off" - } -} diff --git a/foundations/utils/packages/platform-rig/profiles/node/eslint.config.mjs b/foundations/utils/packages/platform-rig/profiles/node/eslint.config.mjs new file mode 100644 index 0000000000..3175b1352e --- /dev/null +++ b/foundations/utils/packages/platform-rig/profiles/node/eslint.config.mjs @@ -0,0 +1,24 @@ +import { defineConfig } from 'eslint/config' +import love from 'eslint-config-love' +import secureCoding from 'eslint-plugin-secure-coding' +import legacyCompatibilityRuleList from '../legacy-compatibility-rules.json' with { type: 'json' } + +const LEGACY_COMPATIBILITY_RULES = Object.fromEntries( + legacyCompatibilityRuleList.map((rule) => [rule, 'off']) +) + +export default defineConfig([ + { + ignores: ['**/*.json', '**/node_modules/**', '**/.eslintrc.js'] + }, + { + files: ['**/*.{js,cjs,mjs,ts,cts,mts}'], + extends: [love, secureCoding.configs.recommended], + rules: { + ...LEGACY_COMPATIBILITY_RULES, + '@typescript-eslint/consistent-type-exports': 'off', + '@typescript-eslint/array-type': 'off', + '@typescript-eslint/promise-function-async': 'off' + } + } +]) diff --git a/foundations/utils/packages/platform-rig/profiles/package/eslint.config.json b/foundations/utils/packages/platform-rig/profiles/package/eslint.config.json deleted file mode 100644 index 18ecca5d60..0000000000 --- a/foundations/utils/packages/platform-rig/profiles/package/eslint.config.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "extends": [ - "standard-with-typescript" - ], - "ignorePatterns": ["*.json", "node_modules/*", ".eslintrc.js"], - "rules": { - "@typescript-eslint/consistent-type-exports": "off", - "@typescript-eslint/array-type": "off", - "@typescript-eslint/promise-function-async": "off", - "@typescript-eslint/consistent-type-imports": "off" - } -} diff --git a/foundations/utils/packages/platform-rig/profiles/package/eslint.config.mjs b/foundations/utils/packages/platform-rig/profiles/package/eslint.config.mjs new file mode 100644 index 0000000000..ec3808f0e8 --- /dev/null +++ b/foundations/utils/packages/platform-rig/profiles/package/eslint.config.mjs @@ -0,0 +1,25 @@ +import { defineConfig } from 'eslint/config' +import love from 'eslint-config-love' +import secureCoding from 'eslint-plugin-secure-coding' +import legacyCompatibilityRuleList from '../legacy-compatibility-rules.json' with { type: 'json' } + +const LEGACY_COMPATIBILITY_RULES = Object.fromEntries( + legacyCompatibilityRuleList.map((rule) => [rule, 'off']) +) + +export default defineConfig([ + { + ignores: ['**/*.json', '**/node_modules/**', '**/.eslintrc.js'] + }, + { + files: ['**/*.{js,cjs,mjs,ts,cts,mts}'], + extends: [love, secureCoding.configs.recommended], + rules: { + ...LEGACY_COMPATIBILITY_RULES, + '@typescript-eslint/consistent-type-exports': 'off', + '@typescript-eslint/array-type': 'off', + '@typescript-eslint/promise-function-async': 'off', + '@typescript-eslint/consistent-type-imports': 'off' + } + } +]) diff --git a/foundations/utils/packages/platform-rig/profiles/ui/eslint.config.json b/foundations/utils/packages/platform-rig/profiles/ui/eslint.config.json deleted file mode 100644 index 9b901ef5b6..0000000000 --- a/foundations/utils/packages/platform-rig/profiles/ui/eslint.config.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "root": true, - "env": { - "browser": true, - "es6": true, - "node": true - }, - "extends": ["standard-with-typescript", "plugin:svelte/prettier"], - "globals": { - "Atomics": "readonly", - "SharedArrayBuffer": "readonly" - }, - "parser": "@typescript-eslint/parser", - "parserOptions": { - "ecmaVersion": 2020, - "sourceType": "module", - "project": ["tsconfig.json"], - "extraFileExtensions": [".svelte"] - }, - "plugins": ["@typescript-eslint", "import"], - "ignorePatterns": ["*.json", "node_modules/*", ".eslintrc.js"], - "settings": { - "import/resolver": { - "node": { - "extensions": [".ts"], - "moduleDirectory": ["src", "node_modules"] - } - } - }, - "overrides": [ - { - "files": ["**/*.svelte"], - "parser": "svelte-eslint-parser", - "parserOptions": { - "parser": "@typescript-eslint/parser" - }, - "rules": { - "@typescript-eslint/no-unused-vars": ["warn", { - // Registered Svelte names for better component typings, - // see https://raqueebuddinaziz.com/blog/svelte-type-events-slots-and-props/#restprops-props - "varsIgnorePattern": "^\\$\\$(Props|Events|Slots)$" - }], - "@typescript-eslint/array-type": "off", - "@typescript-eslint/promise-function-async": "off", - "@typescript-eslint/consistent-type-imports": "off", - "import/first": "warn", - "import/no-duplicates": "warn", - "import/no-mutable-exports": "off", - "import/no-unresolved": "warn", - "no-multiple-empty-lines": "warn", - "no-undef-init": "off", - "no-use-before-define": "warn", - // This need to be enabled eventually - "@typescript-eslint/explicit-function-return-type": "warn", - "@typescript-eslint/strict-boolean-expressions":"warn", - "@typescript-eslint/prefer-nullish-coalescing": "warn", - "@typescript-eslint/no-use-before-define": "warn", - "@typescript-eslint/no-floating-promises": "warn" - } - } - ], - "rules": { - "@typescript-eslint/consistent-type-exports": "off", - "svelte/no-at-html-tags": "error" - } -} diff --git a/foundations/utils/packages/platform-rig/profiles/ui/eslint.config.mjs b/foundations/utils/packages/platform-rig/profiles/ui/eslint.config.mjs new file mode 100644 index 0000000000..170343bb27 --- /dev/null +++ b/foundations/utils/packages/platform-rig/profiles/ui/eslint.config.mjs @@ -0,0 +1,61 @@ +import { defineConfig } from 'eslint/config' +import typescriptEslint from '@typescript-eslint/eslint-plugin' +import typescriptParser from '@typescript-eslint/parser' +import love from 'eslint-config-love' +import importPlugin from 'eslint-plugin-import' +import secureCoding from 'eslint-plugin-secure-coding' +import svelte from 'eslint-plugin-svelte' +import legacyCompatibilityRuleList from '../legacy-compatibility-rules.json' with { type: 'json' } + +const LEGACY_COMPATIBILITY_RULES = Object.fromEntries( + legacyCompatibilityRuleList.map((rule) => [rule, 'off']) +) + +export default defineConfig([ + { + ignores: ['**/*.json', '**/node_modules/**', '**/.eslintrc.js'] + }, + { + files: ['**/*.{js,cjs,mjs,ts,cts,mts}'], + extends: [love, secureCoding.configs.recommended], + rules: { + ...LEGACY_COMPATIBILITY_RULES, + '@typescript-eslint/consistent-type-exports': 'off', + 'svelte/no-at-html-tags': 'error' + } + }, + ...svelte.configs.recommended, + { + files: ['**/*.svelte'], + extends: [secureCoding.configs.recommended], + languageOptions: { + parserOptions: { + parser: typescriptParser, + projectService: true, + extraFileExtensions: ['.svelte'] + } + }, + plugins: { + '@typescript-eslint': typescriptEslint, + import: importPlugin + }, + rules: { + '@typescript-eslint/no-unused-vars': ['warn', { varsIgnorePattern: '^\\$\\$(Props|Events|Slots)$' }], + '@typescript-eslint/array-type': 'off', + '@typescript-eslint/promise-function-async': 'off', + '@typescript-eslint/consistent-type-imports': 'off', + 'import/first': 'warn', + 'import/no-duplicates': 'warn', + 'import/no-mutable-exports': 'off', + 'import/no-unresolved': 'warn', + 'no-multiple-empty-lines': 'warn', + 'no-undef-init': 'off', + 'no-use-before-define': 'warn', + '@typescript-eslint/explicit-function-return-type': 'warn', + '@typescript-eslint/strict-boolean-expressions': 'warn', + '@typescript-eslint/prefer-nullish-coalescing': 'warn', + '@typescript-eslint/no-use-before-define': 'warn', + '@typescript-eslint/no-floating-promises': 'warn' + } + } +]) diff --git a/foundations/utils/packages/ui-test/.eslintrc.js b/foundations/utils/packages/ui-test/.eslintrc.js deleted file mode 100644 index aef5965cab..0000000000 --- a/foundations/utils/packages/ui-test/.eslintrc.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json', - extraFileExtensions: ['.svelte'] - } -} diff --git a/foundations/utils/packages/ui-test/.npmignore b/foundations/utils/packages/ui-test/.npmignore deleted file mode 100644 index 9b083cb0c4..0000000000 --- a/foundations/utils/packages/ui-test/.npmignore +++ /dev/null @@ -1,8 +0,0 @@ -* -!/lib/** -!/types/** -!/src/** -!CHANGELOG.md -/lib/**/__test__/ -/types/**/__test__/ -/src/**/__test__/ \ No newline at end of file diff --git a/foundations/utils/packages/ui-test/config/rig.json b/foundations/utils/packages/ui-test/config/rig.json deleted file mode 100644 index 1a4b944f83..0000000000 --- a/foundations/utils/packages/ui-test/config/rig.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json", - "rigPackageName": "@hcengineering/platform-rig", - "rigProfile": "ui" -} diff --git a/foundations/utils/packages/ui-test/jest.config.js b/foundations/utils/packages/ui-test/jest.config.js deleted file mode 100644 index 2cfd408b67..0000000000 --- a/foundations/utils/packages/ui-test/jest.config.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testEnvironment: 'node', - testMatch: ['**/?(*.)+(spec|test).[jt]s?(x)'], - roots: ["./src"], - coverageReporters: ["text-summary", "html"] -} diff --git a/foundations/utils/packages/ui-test/package.json b/foundations/utils/packages/ui-test/package.json deleted file mode 100644 index 68b72c663d..0000000000 --- a/foundations/utils/packages/ui-test/package.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "@hcengineering/ui-test", - "version": "0.7.13", - "author": "Copyright © Hardcore Engineering Inc.", - "template": "@hcengineering/node-package", - "license": "EPL-2.0", - "main": "./lib/index.js", - "types": "./types/index.d.ts", - "files": [ - "lib", - "types", - "src", - "fonts", - "styles" - ], - "exports": { - ".": { - "types": "./types/index.d.ts", - "default": "./lib/index.js" - }, - "./lang/*": "./lang/*", - "./styles/*": "./styles/*" - }, - "scripts": { - "build": "compile ui-esbuild", - "build:watch": "compile ui-esbuild", - "test": "jest --passWithNoTests --silent --forceExit", - "format": "format src", - "_phase:build": "compile ui-esbuild", - "_phase:test": "jest --passWithNoTests --silent --forceExit", - "_phase:format": "format src", - "_phase:validate": "compile validate" - }, - "devDependencies": { - "@hcengineering/platform-rig": "workspace:^0.7.21", - "svelte-loader": "^3.2.0", - "sass": "^1.80.0", - "svelte-preprocess": "^5.1.4", - "jest": "^30.4.2", - "ts-jest": "^29.4.12", - "@types/jest": "^30.0.0", - "@types/node": "^24.13.3", - "@typescript-eslint/eslint-plugin": "^8.67.0", - "@typescript-eslint/parser": "^8.67.0", - "eslint": "^9.39.5", - "eslint-plugin-promise": "^7.3.0", - "eslint-plugin-n": "^18.3.0", - "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" - }, - "dependencies": { - "svelte": "^4.2.20" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/hcengineering/huly.utils.git" - }, - "publishConfig": { - "access": "public" - } -} diff --git a/foundations/utils/packages/ui-test/postcss.config.js b/foundations/utils/packages/ui-test/postcss.config.js deleted file mode 100644 index 88752c6cb0..0000000000 --- a/foundations/utils/packages/ui-test/postcss.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - plugins: [ - require('autoprefixer') - ] -} diff --git a/foundations/utils/packages/ui-test/src/component/Test.svelte b/foundations/utils/packages/ui-test/src/component/Test.svelte deleted file mode 100644 index 762ffd17f4..0000000000 --- a/foundations/utils/packages/ui-test/src/component/Test.svelte +++ /dev/null @@ -1,6 +0,0 @@ - - -Test component -{variable} diff --git a/foundations/utils/packages/ui-test/src/index.ts b/foundations/utils/packages/ui-test/src/index.ts deleted file mode 100644 index 9635092d52..0000000000 --- a/foundations/utils/packages/ui-test/src/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -import Test from './component/Test.svelte' -export { Test } diff --git a/foundations/utils/packages/ui-test/src/svelte.d.ts_ b/foundations/utils/packages/ui-test/src/svelte.d.ts_ deleted file mode 100644 index 81cd9a1388..0000000000 --- a/foundations/utils/packages/ui-test/src/svelte.d.ts_ +++ /dev/null @@ -1,4 +0,0 @@ -declare module '*.svelte' { - import { SvelteComponentTyped } from 'svelte' - export default class extends SvelteComponentTyped {} -} diff --git a/foundations/utils/packages/ui-test/svelte.config.js b/foundations/utils/packages/ui-test/svelte.config.js deleted file mode 100644 index 28c0f0dcfb..0000000000 --- a/foundations/utils/packages/ui-test/svelte.config.js +++ /dev/null @@ -1,10 +0,0 @@ -const sveltePreprocess = require('svelte-preprocess') - -module.exports = { - preprocess: sveltePreprocess({ - scss: { - // This is expected as svelte-preprocess hasn't fully migrated to the modern API yet - silenceDeprecations: ['legacy-js-api'] - } - }) -}; diff --git a/foundations/utils/packages/ui-test/tsconfig.json b/foundations/utils/packages/ui-test/tsconfig.json deleted file mode 100644 index d815a54801..0000000000 --- a/foundations/utils/packages/ui-test/tsconfig.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "extends": "./node_modules/@hcengineering/platform-rig/profiles/ui/tsconfig.json", - - "compilerOptions": { - "rootDir": "./src", - "outDir": "./lib", - "declarationDir": "./types", - "tsBuildInfoFile": ".build/build.tsbuildinfo" - }, - "include": ["src/**/*"], - "exclude": ["node_modules", "lib", "dist", "types", "bundle"] -} diff --git a/foundations/utils/rush.json b/foundations/utils/rush.json index cd32bc43ce..76bf1427c3 100644 --- a/foundations/utils/rush.json +++ b/foundations/utils/rush.json @@ -340,11 +340,6 @@ "projectFolder": "packages/platform-rig", "reviewCategory": "tools", "shouldPublish": true - }, - { - "packageName": "@hcengineering/ui-test", - "projectFolder": "packages/ui-test", - "shouldPublish": false } ] } diff --git a/models/achievement/.eslintrc.js b/models/achievement/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/achievement/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/achievement/eslint.config.mjs b/models/achievement/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/achievement/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/activity/.eslintrc.js b/models/activity/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/activity/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/activity/eslint.config.mjs b/models/activity/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/activity/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/ai-assistant/.eslintrc.js b/models/ai-assistant/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/ai-assistant/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/ai-assistant/eslint.config.mjs b/models/ai-assistant/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/ai-assistant/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/ai-bot/.eslintrc.js b/models/ai-bot/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/ai-bot/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/ai-bot/eslint.config.mjs b/models/ai-bot/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/ai-bot/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/all/.eslintrc.js b/models/all/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/all/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/all/eslint.config.mjs b/models/all/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/all/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/analytics-collector/.eslintrc.js b/models/analytics-collector/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/analytics-collector/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/analytics-collector/eslint.config.mjs b/models/analytics-collector/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/analytics-collector/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/attachment/.eslintrc.js b/models/attachment/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/attachment/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/attachment/eslint.config.mjs b/models/attachment/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/attachment/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/billing/.eslintrc.js b/models/billing/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/billing/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/billing/eslint.config.mjs b/models/billing/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/billing/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/bitrix/.eslintrc.js b/models/bitrix/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/bitrix/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/bitrix/eslint.config.mjs b/models/bitrix/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/bitrix/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/board/.eslintrc.js b/models/board/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/board/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/board/eslint.config.mjs b/models/board/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/board/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/calendar/.eslintrc.js b/models/calendar/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/calendar/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/calendar/eslint.config.mjs b/models/calendar/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/calendar/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/card/.eslintrc.js b/models/card/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/card/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/card/eslint.config.mjs b/models/card/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/card/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/chunter/.eslintrc.js b/models/chunter/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/chunter/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/chunter/eslint.config.mjs b/models/chunter/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/chunter/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/contact/.eslintrc.js b/models/contact/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/contact/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/contact/eslint.config.mjs b/models/contact/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/contact/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/controlled-documents/.eslintrc.js b/models/controlled-documents/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/controlled-documents/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/controlled-documents/eslint.config.mjs b/models/controlled-documents/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/controlled-documents/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/converter/.eslintrc.js b/models/converter/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/converter/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/converter/eslint.config.mjs b/models/converter/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/converter/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/core/.eslintrc.js b/models/core/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/core/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/core/eslint.config.mjs b/models/core/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/core/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/desktop-downloads/.eslintrc.js b/models/desktop-downloads/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/desktop-downloads/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/desktop-downloads/eslint.config.mjs b/models/desktop-downloads/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/desktop-downloads/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/desktop-preferences/.eslintrc.js b/models/desktop-preferences/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/desktop-preferences/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/desktop-preferences/eslint.config.mjs b/models/desktop-preferences/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/desktop-preferences/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/document/.eslintrc.js b/models/document/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/document/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/document/eslint.config.mjs b/models/document/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/document/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/drive/.eslintrc.js b/models/drive/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/drive/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/drive/eslint.config.mjs b/models/drive/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/drive/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/emoji/.eslintrc.js b/models/emoji/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/emoji/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/emoji/eslint.config.mjs b/models/emoji/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/emoji/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/export/.eslintrc.js b/models/export/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/export/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/export/eslint.config.mjs b/models/export/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/export/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/gmail/.eslintrc.js b/models/gmail/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/gmail/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/gmail/eslint.config.mjs b/models/gmail/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/gmail/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/guest/.eslintrc.js b/models/guest/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/guest/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/guest/eslint.config.mjs b/models/guest/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/guest/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/hr/.eslintrc.js b/models/hr/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/hr/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/hr/eslint.config.mjs b/models/hr/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/hr/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/huly-mail/.eslintrc.js b/models/huly-mail/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/huly-mail/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/huly-mail/eslint.config.mjs b/models/huly-mail/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/huly-mail/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/inbox/eslint.config.mjs b/models/inbox/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/inbox/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/inventory/.eslintrc.js b/models/inventory/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/inventory/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/inventory/eslint.config.mjs b/models/inventory/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/inventory/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/lead/.eslintrc.js b/models/lead/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/lead/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/lead/eslint.config.mjs b/models/lead/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/lead/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/love/.eslintrc.js b/models/love/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/love/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/love/eslint.config.mjs b/models/love/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/love/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/mail/.eslintrc.js b/models/mail/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/mail/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/mail/eslint.config.mjs b/models/mail/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/mail/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/media/.eslintrc.js b/models/media/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/media/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/media/eslint.config.mjs b/models/media/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/media/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/notification/.eslintrc.js b/models/notification/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/notification/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/notification/eslint.config.mjs b/models/notification/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/notification/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/preference/.eslintrc.js b/models/preference/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/preference/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/preference/eslint.config.mjs b/models/preference/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/preference/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/presence/.eslintrc.js b/models/presence/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/presence/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/presence/eslint.config.mjs b/models/presence/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/presence/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/presentation/.eslintrc.js b/models/presentation/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/presentation/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/presentation/eslint.config.mjs b/models/presentation/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/presentation/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/print/.eslintrc.js b/models/print/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/print/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/print/eslint.config.mjs b/models/print/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/print/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/process/.eslintrc.js b/models/process/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/process/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/process/eslint.config.mjs b/models/process/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/process/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/products/.eslintrc.js b/models/products/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/products/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/products/eslint.config.mjs b/models/products/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/products/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/pulse/.eslintrc.js b/models/pulse/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/pulse/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/pulse/eslint.config.mjs b/models/pulse/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/pulse/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/questions/.eslintrc.js b/models/questions/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/models/questions/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/questions/eslint.config.mjs b/models/questions/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/models/questions/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/models/rating/.eslintrc.js b/models/rating/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/rating/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/rating/eslint.config.mjs b/models/rating/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/rating/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/recorder/.eslintrc.js b/models/recorder/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/recorder/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/recorder/eslint.config.mjs b/models/recorder/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/recorder/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/recruit/.eslintrc.js b/models/recruit/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/recruit/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/recruit/eslint.config.mjs b/models/recruit/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/recruit/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/request/.eslintrc.js b/models/request/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/request/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/request/eslint.config.mjs b/models/request/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/request/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/server-activity/.eslintrc.js b/models/server-activity/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/server-activity/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/server-activity/eslint.config.mjs b/models/server-activity/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/server-activity/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/server-ai-bot/.eslintrc.js b/models/server-ai-bot/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/server-ai-bot/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/server-ai-bot/eslint.config.mjs b/models/server-ai-bot/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/server-ai-bot/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/server-attachment/.eslintrc.js b/models/server-attachment/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/server-attachment/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/server-attachment/eslint.config.mjs b/models/server-attachment/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/server-attachment/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/server-calendar/.eslintrc.js b/models/server-calendar/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/server-calendar/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/server-calendar/eslint.config.mjs b/models/server-calendar/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/server-calendar/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/server-card/.eslintrc.js b/models/server-card/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/server-card/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/server-card/eslint.config.mjs b/models/server-card/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/server-card/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/server-chunter/.eslintrc.js b/models/server-chunter/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/server-chunter/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/server-chunter/eslint.config.mjs b/models/server-chunter/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/server-chunter/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/server-collaboration/.eslintrc.js b/models/server-collaboration/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/server-collaboration/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/server-collaboration/eslint.config.mjs b/models/server-collaboration/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/server-collaboration/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/server-contact/.eslintrc.js b/models/server-contact/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/server-contact/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/server-contact/eslint.config.mjs b/models/server-contact/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/server-contact/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/server-controlled-documents/.eslintrc.js b/models/server-controlled-documents/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/server-controlled-documents/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/server-controlled-documents/eslint.config.mjs b/models/server-controlled-documents/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/server-controlled-documents/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/server-core/.eslintrc.js b/models/server-core/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/server-core/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/server-core/eslint.config.mjs b/models/server-core/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/server-core/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/server-document/.eslintrc.js b/models/server-document/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/server-document/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/server-document/eslint.config.mjs b/models/server-document/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/server-document/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/server-drive/.eslintrc.js b/models/server-drive/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/server-drive/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/server-drive/eslint.config.mjs b/models/server-drive/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/server-drive/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/server-gmail/.eslintrc.js b/models/server-gmail/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/server-gmail/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/server-gmail/eslint.config.mjs b/models/server-gmail/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/server-gmail/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/server-guest/.eslintrc.js b/models/server-guest/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/server-guest/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/server-guest/eslint.config.mjs b/models/server-guest/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/server-guest/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/server-hr/.eslintrc.js b/models/server-hr/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/server-hr/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/server-hr/eslint.config.mjs b/models/server-hr/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/server-hr/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/server-inventory/.eslintrc.js b/models/server-inventory/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/server-inventory/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/server-inventory/eslint.config.mjs b/models/server-inventory/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/server-inventory/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/server-lead/.eslintrc.js b/models/server-lead/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/server-lead/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/server-lead/eslint.config.mjs b/models/server-lead/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/server-lead/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/server-love/.eslintrc.js b/models/server-love/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/server-love/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/server-love/eslint.config.mjs b/models/server-love/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/server-love/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/server-notification/.eslintrc.js b/models/server-notification/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/server-notification/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/server-notification/eslint.config.mjs b/models/server-notification/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/server-notification/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/server-process/.eslintrc.js b/models/server-process/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/server-process/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/server-process/eslint.config.mjs b/models/server-process/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/server-process/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/server-products/.eslintrc.js b/models/server-products/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/server-products/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/server-products/eslint.config.mjs b/models/server-products/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/server-products/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/server-recruit/.eslintrc.js b/models/server-recruit/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/server-recruit/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/server-recruit/eslint.config.mjs b/models/server-recruit/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/server-recruit/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/server-request/.eslintrc.js b/models/server-request/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/server-request/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/server-request/eslint.config.mjs b/models/server-request/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/server-request/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/server-setting/.eslintrc.js b/models/server-setting/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/server-setting/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/server-setting/eslint.config.mjs b/models/server-setting/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/server-setting/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/server-tags/.eslintrc.js b/models/server-tags/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/server-tags/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/server-tags/eslint.config.mjs b/models/server-tags/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/server-tags/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/server-task/.eslintrc.js b/models/server-task/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/server-task/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/server-task/eslint.config.mjs b/models/server-task/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/server-task/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/server-telegram/.eslintrc.js b/models/server-telegram/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/server-telegram/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/server-telegram/eslint.config.mjs b/models/server-telegram/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/server-telegram/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/server-templates/.eslintrc.js b/models/server-templates/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/server-templates/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/server-templates/eslint.config.mjs b/models/server-templates/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/server-templates/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/server-time/.eslintrc.js b/models/server-time/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/server-time/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/server-time/eslint.config.mjs b/models/server-time/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/server-time/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/server-tracker/.eslintrc.js b/models/server-tracker/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/server-tracker/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/server-tracker/eslint.config.mjs b/models/server-tracker/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/server-tracker/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/server-training/.eslintrc.js b/models/server-training/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/server-training/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/server-training/eslint.config.mjs b/models/server-training/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/server-training/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/server-view/.eslintrc.js b/models/server-view/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/server-view/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/server-view/eslint.config.mjs b/models/server-view/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/server-view/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/setting/.eslintrc.js b/models/setting/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/setting/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/setting/eslint.config.mjs b/models/setting/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/setting/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/support/.eslintrc.js b/models/support/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/support/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/support/eslint.config.mjs b/models/support/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/support/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/survey/.eslintrc.js b/models/survey/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/survey/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/survey/eslint.config.mjs b/models/survey/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/survey/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/tags/.eslintrc.js b/models/tags/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/tags/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/tags/eslint.config.mjs b/models/tags/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/tags/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/task/.eslintrc.js b/models/task/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/task/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/task/eslint.config.mjs b/models/task/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/task/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/telegram/.eslintrc.js b/models/telegram/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/telegram/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/telegram/eslint.config.mjs b/models/telegram/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/telegram/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/templates/.eslintrc.js b/models/templates/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/templates/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/templates/eslint.config.mjs b/models/templates/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/templates/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/test-management/.eslintrc.js b/models/test-management/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/test-management/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/test-management/eslint.config.mjs b/models/test-management/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/test-management/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/text-editor/.eslintrc.js b/models/text-editor/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/text-editor/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/text-editor/eslint.config.mjs b/models/text-editor/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/text-editor/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/time/.eslintrc.js b/models/time/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/time/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/time/eslint.config.mjs b/models/time/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/time/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/tracker/.eslintrc.js b/models/tracker/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/tracker/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/tracker/eslint.config.mjs b/models/tracker/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/tracker/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/training/.eslintrc.js b/models/training/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/models/training/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/training/eslint.config.mjs b/models/training/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/models/training/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/models/uploader/.eslintrc.js b/models/uploader/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/uploader/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/uploader/eslint.config.mjs b/models/uploader/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/uploader/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/view/.eslintrc.js b/models/view/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/view/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/view/eslint.config.mjs b/models/view/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/view/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/workbench/.eslintrc.js b/models/workbench/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/models/workbench/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/models/workbench/eslint.config.mjs b/models/workbench/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/workbench/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/packages/analytics-providers/.eslintrc.js b/packages/analytics-providers/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/packages/analytics-providers/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/packages/analytics-providers/eslint.config.mjs b/packages/analytics-providers/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/packages/analytics-providers/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/packages/billing-client/.eslintrc.js b/packages/billing-client/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/packages/billing-client/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/packages/billing-client/eslint.config.mjs b/packages/billing-client/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/packages/billing-client/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/packages/doc-convert/eslint.config.mjs b/packages/doc-convert/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/packages/doc-convert/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/packages/highlight/.eslintrc.js b/packages/highlight/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/packages/highlight/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/packages/highlight/eslint.config.mjs b/packages/highlight/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/packages/highlight/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/packages/hls/.eslintrc.js b/packages/hls/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/packages/hls/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/packages/hls/eslint.config.mjs b/packages/hls/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/packages/hls/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/packages/importer/.eslintrc.js b/packages/importer/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/packages/importer/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/packages/importer/eslint.config.mjs b/packages/importer/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/packages/importer/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/packages/integration-client/.eslintrc.js b/packages/integration-client/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/packages/integration-client/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/packages/integration-client/eslint.config.mjs b/packages/integration-client/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/packages/integration-client/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/packages/kanban/.eslintrc.js b/packages/kanban/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/packages/kanban/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/packages/kanban/eslint.config.mjs b/packages/kanban/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/packages/kanban/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/packages/kvs-client/.eslintrc.js b/packages/kvs-client/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/packages/kvs-client/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/packages/kvs-client/eslint.config.mjs b/packages/kvs-client/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/packages/kvs-client/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/packages/panel/.eslintrc.js b/packages/panel/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/packages/panel/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/packages/panel/eslint.config.mjs b/packages/panel/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/packages/panel/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/packages/payment-client/.eslintrc.js b/packages/payment-client/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/packages/payment-client/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/packages/payment-client/eslint.config.mjs b/packages/payment-client/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/packages/payment-client/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/packages/presentation/.eslintrc.js b/packages/presentation/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/packages/presentation/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/packages/presentation/eslint.config.mjs b/packages/presentation/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/packages/presentation/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/packages/rekoni/.eslintrc.js b/packages/rekoni/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/packages/rekoni/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/packages/rekoni/eslint.config.mjs b/packages/rekoni/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/packages/rekoni/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/packages/theme/.eslintrc.js b/packages/theme/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/packages/theme/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/packages/theme/eslint.config.mjs b/packages/theme/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/packages/theme/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/packages/ui/.eslintrc.js b/packages/ui/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/packages/ui/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/packages/ui/eslint.config.mjs b/packages/ui/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/packages/ui/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/achievement-assets/.eslintrc.js b/plugins/achievement-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/achievement-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/achievement-assets/eslint.config.mjs b/plugins/achievement-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/achievement-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/achievement-resources/.eslintrc.js b/plugins/achievement-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/achievement-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/achievement-resources/eslint.config.mjs b/plugins/achievement-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/achievement-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/achievement/.eslintrc.js b/plugins/achievement/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/achievement/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/achievement/eslint.config.mjs b/plugins/achievement/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/achievement/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/activity-assets/.eslintrc.js b/plugins/activity-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/activity-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/activity-assets/eslint.config.mjs b/plugins/activity-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/activity-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/activity-resources/.eslintrc.js b/plugins/activity-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/activity-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/activity-resources/eslint.config.mjs b/plugins/activity-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/activity-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/activity/.eslintrc.js b/plugins/activity/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/activity/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/activity/eslint.config.mjs b/plugins/activity/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/activity/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/admin/eslint.config.mjs b/plugins/admin/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/admin/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/ai-assistant-assets/.eslintrc.js b/plugins/ai-assistant-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/ai-assistant-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/ai-assistant-assets/eslint.config.mjs b/plugins/ai-assistant-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/ai-assistant-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/ai-assistant-resources/.eslintrc.js b/plugins/ai-assistant-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/ai-assistant-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/ai-assistant-resources/eslint.config.mjs b/plugins/ai-assistant-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/ai-assistant-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/ai-assistant/.eslintrc.js b/plugins/ai-assistant/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/ai-assistant/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/ai-assistant/eslint.config.mjs b/plugins/ai-assistant/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/ai-assistant/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/ai-bot-assets/eslint.config.mjs b/plugins/ai-bot-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/ai-bot-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/ai-bot-resources/.eslintrc.js b/plugins/ai-bot-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/ai-bot-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/ai-bot-resources/eslint.config.mjs b/plugins/ai-bot-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/ai-bot-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/ai-bot/.eslintrc.js b/plugins/ai-bot/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/ai-bot/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/ai-bot/eslint.config.mjs b/plugins/ai-bot/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/ai-bot/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/analytics-collector-assets/.eslintrc.js b/plugins/analytics-collector-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/analytics-collector-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/analytics-collector-assets/eslint.config.mjs b/plugins/analytics-collector-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/analytics-collector-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/analytics-collector-resources/.eslintrc.js b/plugins/analytics-collector-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/analytics-collector-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/analytics-collector-resources/eslint.config.mjs b/plugins/analytics-collector-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/analytics-collector-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/analytics-collector/.eslintrc.js b/plugins/analytics-collector/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/analytics-collector/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/analytics-collector/eslint.config.mjs b/plugins/analytics-collector/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/analytics-collector/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/attachment-assets/.eslintrc.js b/plugins/attachment-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/attachment-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/attachment-assets/eslint.config.mjs b/plugins/attachment-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/attachment-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/attachment-resources/.eslintrc.js b/plugins/attachment-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/attachment-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/attachment-resources/eslint.config.mjs b/plugins/attachment-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/attachment-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/attachment/.eslintrc.js b/plugins/attachment/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/attachment/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/attachment/eslint.config.mjs b/plugins/attachment/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/attachment/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/billing-assets/.eslintrc.js b/plugins/billing-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/billing-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/billing-assets/eslint.config.mjs b/plugins/billing-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/billing-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/billing-resources/.eslintrc.js b/plugins/billing-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/billing-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/billing-resources/eslint.config.mjs b/plugins/billing-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/billing-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/billing/.eslintrc.js b/plugins/billing/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/billing/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/billing/eslint.config.mjs b/plugins/billing/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/billing/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/bitrix-assets/.eslintrc.js b/plugins/bitrix-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/bitrix-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/bitrix-assets/eslint.config.mjs b/plugins/bitrix-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/bitrix-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/bitrix-resources/.eslintrc.js b/plugins/bitrix-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/bitrix-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/bitrix-resources/eslint.config.mjs b/plugins/bitrix-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/bitrix-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/bitrix/.eslintrc.js b/plugins/bitrix/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/bitrix/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/bitrix/eslint.config.mjs b/plugins/bitrix/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/bitrix/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/board-assets/.eslintrc.js b/plugins/board-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/board-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/board-assets/eslint.config.mjs b/plugins/board-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/board-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/board-resources/.eslintrc.js b/plugins/board-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/board-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/board-resources/eslint.config.mjs b/plugins/board-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/board-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/board/.eslintrc.js b/plugins/board/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/board/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/board/eslint.config.mjs b/plugins/board/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/board/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/calendar-assets/.eslintrc.js b/plugins/calendar-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/calendar-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/calendar-assets/eslint.config.mjs b/plugins/calendar-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/calendar-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/calendar-resources/.eslintrc.js b/plugins/calendar-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/calendar-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/calendar-resources/eslint.config.mjs b/plugins/calendar-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/calendar-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/calendar/.eslintrc.js b/plugins/calendar/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/calendar/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/calendar/eslint.config.mjs b/plugins/calendar/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/calendar/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/card-assets/.eslintrc.js b/plugins/card-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/card-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/card-assets/eslint.config.mjs b/plugins/card-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/card-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/card-resources/.eslintrc.js b/plugins/card-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/card-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/card-resources/eslint.config.mjs b/plugins/card-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/card-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/card/.eslintrc.js b/plugins/card/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/card/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/card/eslint.config.mjs b/plugins/card/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/card/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/chat-resources/eslint.config.mjs b/plugins/chat-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/chat-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/chunter-assets/.eslintrc.js b/plugins/chunter-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/chunter-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/chunter-assets/eslint.config.mjs b/plugins/chunter-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/chunter-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/chunter-resources/.eslintrc.js b/plugins/chunter-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/chunter-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/chunter-resources/eslint.config.mjs b/plugins/chunter-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/chunter-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/chunter/.eslintrc.js b/plugins/chunter/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/chunter/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/chunter/eslint.config.mjs b/plugins/chunter/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/chunter/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/client-resources/.eslintrc.js b/plugins/client-resources/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/client-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/client-resources/eslint.config.mjs b/plugins/client-resources/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/client-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/client-resources/package.json b/plugins/client-resources/package.json index 6db4d9dfb3..dc048492f7 100644 --- a/plugins/client-resources/package.json +++ b/plugins/client-resources/package.json @@ -26,10 +26,11 @@ "@typescript-eslint/eslint-plugin": "^6.21.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^15.4.0", "eslint": "^8.54.0", "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "eslint-config-love": "^157.0.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "jest": "^29.7.0", diff --git a/plugins/client/.eslintrc.js b/plugins/client/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/client/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/client/eslint.config.mjs b/plugins/client/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/client/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/client/package.json b/plugins/client/package.json index 0cce6c566d..9d4334043d 100644 --- a/plugins/client/package.json +++ b/plugins/client/package.json @@ -26,10 +26,11 @@ "@typescript-eslint/eslint-plugin": "^6.21.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^15.4.0", "eslint": "^8.54.0", "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "eslint-config-love": "^157.0.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "jest": "^29.7.0", diff --git a/plugins/contact-assets/.eslintrc.js b/plugins/contact-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/contact-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/contact-assets/eslint.config.mjs b/plugins/contact-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/contact-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/contact-resources/.eslintrc.js b/plugins/contact-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/contact-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/contact-resources/eslint.config.mjs b/plugins/contact-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/contact-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/contact/.eslintrc.js b/plugins/contact/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/contact/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/contact/eslint.config.mjs b/plugins/contact/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/contact/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/controlled-documents-assets/.eslintrc.js b/plugins/controlled-documents-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/controlled-documents-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/controlled-documents-assets/eslint.config.mjs b/plugins/controlled-documents-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/controlled-documents-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/controlled-documents-resources/.eslintrc.js b/plugins/controlled-documents-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/controlled-documents-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/controlled-documents-resources/eslint.config.mjs b/plugins/controlled-documents-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/controlled-documents-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/controlled-documents/.eslintrc.js b/plugins/controlled-documents/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/controlled-documents/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/controlled-documents/eslint.config.mjs b/plugins/controlled-documents/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/controlled-documents/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/converter-resources/.eslintrc.js b/plugins/converter-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/converter-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/converter-resources/eslint.config.mjs b/plugins/converter-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/converter-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/converter/.eslintrc.js b/plugins/converter/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/converter/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/converter/eslint.config.mjs b/plugins/converter/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/converter/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/desktop-downloads-assets/.eslintrc.js b/plugins/desktop-downloads-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/desktop-downloads-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/desktop-downloads-assets/eslint.config.mjs b/plugins/desktop-downloads-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/desktop-downloads-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/desktop-downloads-resources/.eslintrc.js b/plugins/desktop-downloads-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/desktop-downloads-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/desktop-downloads-resources/eslint.config.mjs b/plugins/desktop-downloads-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/desktop-downloads-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/desktop-downloads/.eslintrc.js b/plugins/desktop-downloads/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/desktop-downloads/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/desktop-downloads/eslint.config.mjs b/plugins/desktop-downloads/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/desktop-downloads/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/desktop-preferences-assets/.eslintrc.js b/plugins/desktop-preferences-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/desktop-preferences-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/desktop-preferences-assets/eslint.config.mjs b/plugins/desktop-preferences-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/desktop-preferences-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/desktop-preferences-resources/.eslintrc.js b/plugins/desktop-preferences-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/desktop-preferences-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/desktop-preferences-resources/eslint.config.mjs b/plugins/desktop-preferences-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/desktop-preferences-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/desktop-preferences/.eslintrc.js b/plugins/desktop-preferences/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/desktop-preferences/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/desktop-preferences/eslint.config.mjs b/plugins/desktop-preferences/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/desktop-preferences/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/devmodel-resources/.eslintrc.js b/plugins/devmodel-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/devmodel-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/devmodel-resources/eslint.config.mjs b/plugins/devmodel-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/devmodel-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/devmodel/.eslintrc.js b/plugins/devmodel/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/devmodel/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/devmodel/eslint.config.mjs b/plugins/devmodel/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/devmodel/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/diffview-assets/.eslintrc.js b/plugins/diffview-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/diffview-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/diffview-assets/eslint.config.mjs b/plugins/diffview-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/diffview-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/diffview-resources/.eslintrc.js b/plugins/diffview-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/diffview-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/diffview-resources/eslint.config.mjs b/plugins/diffview-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/diffview-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/diffview/.eslintrc.js b/plugins/diffview/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/diffview/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/diffview/eslint.config.mjs b/plugins/diffview/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/diffview/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/document-assets/.eslintrc.js b/plugins/document-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/document-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/document-assets/eslint.config.mjs b/plugins/document-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/document-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/document-resources/.eslintrc.js b/plugins/document-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/document-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/document-resources/eslint.config.mjs b/plugins/document-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/document-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/document/.eslintrc.js b/plugins/document/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/document/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/document/eslint.config.mjs b/plugins/document/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/document/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/drive-assets/.eslintrc.js b/plugins/drive-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/drive-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/drive-assets/eslint.config.mjs b/plugins/drive-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/drive-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/drive-resources/.eslintrc.js b/plugins/drive-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/drive-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/drive-resources/eslint.config.mjs b/plugins/drive-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/drive-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/drive/.eslintrc.js b/plugins/drive/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/drive/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/drive/eslint.config.mjs b/plugins/drive/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/drive/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/emoji-assets/.eslintrc.js b/plugins/emoji-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/emoji-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/emoji-assets/eslint.config.mjs b/plugins/emoji-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/emoji-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/emoji-resources/.eslintrc.js b/plugins/emoji-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/emoji-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/emoji-resources/eslint.config.mjs b/plugins/emoji-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/emoji-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/emoji/.eslintrc.js b/plugins/emoji/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/emoji/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/emoji/eslint.config.mjs b/plugins/emoji/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/emoji/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/export-assets/.eslintrc.js b/plugins/export-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/export-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/export-assets/eslint.config.mjs b/plugins/export-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/export-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/export-resources/.eslintrc.js b/plugins/export-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/export-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/export-resources/eslint.config.mjs b/plugins/export-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/export-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/export/.eslintrc.js b/plugins/export/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/export/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/export/eslint.config.mjs b/plugins/export/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/export/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/github-next/eslint.config.mjs b/plugins/github-next/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/github-next/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/global-profile-assets/.eslintrc.js b/plugins/global-profile-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/global-profile-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/global-profile-assets/eslint.config.mjs b/plugins/global-profile-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/global-profile-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/global-profile-resources/.eslintrc.js b/plugins/global-profile-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/global-profile-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/global-profile-resources/eslint.config.mjs b/plugins/global-profile-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/global-profile-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/global-profile/.eslintrc.js b/plugins/global-profile/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/global-profile/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/global-profile/eslint.config.mjs b/plugins/global-profile/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/global-profile/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/gmail-assets/.eslintrc.js b/plugins/gmail-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/gmail-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/gmail-assets/eslint.config.mjs b/plugins/gmail-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/gmail-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/gmail-resources/.eslintrc.js b/plugins/gmail-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/gmail-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/gmail-resources/eslint.config.mjs b/plugins/gmail-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/gmail-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/gmail/.eslintrc.js b/plugins/gmail/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/gmail/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/gmail/eslint.config.mjs b/plugins/gmail/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/gmail/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/guest-assets/.eslintrc.js b/plugins/guest-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/guest-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/guest-assets/eslint.config.mjs b/plugins/guest-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/guest-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/guest-resources/.eslintrc.js b/plugins/guest-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/guest-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/guest-resources/eslint.config.mjs b/plugins/guest-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/guest-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/guest/.eslintrc.js b/plugins/guest/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/guest/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/guest/eslint.config.mjs b/plugins/guest/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/guest/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/hr-assets/.eslintrc.js b/plugins/hr-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/hr-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/hr-assets/eslint.config.mjs b/plugins/hr-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/hr-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/hr-resources/.eslintrc.js b/plugins/hr-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/hr-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/hr-resources/eslint.config.mjs b/plugins/hr-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/hr-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/hr/.eslintrc.js b/plugins/hr/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/hr/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/hr/eslint.config.mjs b/plugins/hr/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/hr/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/huly-mail-assets/.eslintrc.js b/plugins/huly-mail-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/huly-mail-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/huly-mail-assets/eslint.config.mjs b/plugins/huly-mail-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/huly-mail-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/huly-mail-resources/.eslintrc.js b/plugins/huly-mail-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/huly-mail-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/huly-mail-resources/eslint.config.mjs b/plugins/huly-mail-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/huly-mail-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/huly-mail/.eslintrc.js b/plugins/huly-mail/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/huly-mail/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/huly-mail/eslint.config.mjs b/plugins/huly-mail/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/huly-mail/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/image-cropper-resources/.eslintrc.js b/plugins/image-cropper-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/image-cropper-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/image-cropper-resources/eslint.config.mjs b/plugins/image-cropper-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/image-cropper-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/image-cropper/.eslintrc.js b/plugins/image-cropper/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/image-cropper/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/image-cropper/eslint.config.mjs b/plugins/image-cropper/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/image-cropper/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/inbox-resources/eslint.config.mjs b/plugins/inbox-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/inbox-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/integration/eslint.config.mjs b/plugins/integration/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/integration/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/inventory-assets/.eslintrc.js b/plugins/inventory-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/inventory-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/inventory-assets/eslint.config.mjs b/plugins/inventory-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/inventory-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/inventory-resources/.eslintrc.js b/plugins/inventory-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/inventory-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/inventory-resources/eslint.config.mjs b/plugins/inventory-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/inventory-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/inventory/.eslintrc.js b/plugins/inventory/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/inventory/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/inventory/eslint.config.mjs b/plugins/inventory/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/inventory/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/lead-assets/.eslintrc.js b/plugins/lead-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/lead-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/lead-assets/eslint.config.mjs b/plugins/lead-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/lead-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/lead-resources/.eslintrc.js b/plugins/lead-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/lead-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/lead-resources/eslint.config.mjs b/plugins/lead-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/lead-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/lead/.eslintrc.js b/plugins/lead/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/lead/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/lead/eslint.config.mjs b/plugins/lead/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/lead/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/login-assets/.eslintrc.js b/plugins/login-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/login-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/login-assets/eslint.config.mjs b/plugins/login-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/login-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/login-resources/.eslintrc.js b/plugins/login-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/login-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/login-resources/eslint.config.mjs b/plugins/login-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/login-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/login/.eslintrc.js b/plugins/login/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/login/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/login/eslint.config.mjs b/plugins/login/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/login/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/love-assets/.eslintrc.js b/plugins/love-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/love-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/love-assets/eslint.config.mjs b/plugins/love-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/love-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/love-resources/.eslintrc.js b/plugins/love-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/love-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/love-resources/eslint.config.mjs b/plugins/love-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/love-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/love/.eslintrc.js b/plugins/love/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/love/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/love/eslint.config.mjs b/plugins/love/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/love/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/mail-assets/.eslintrc.js b/plugins/mail-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/mail-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/mail-assets/eslint.config.mjs b/plugins/mail-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/mail-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/mail/.eslintrc.js b/plugins/mail/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/mail/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/mail/eslint.config.mjs b/plugins/mail/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/mail/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/media-assets/.eslintrc.js b/plugins/media-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/media-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/media-assets/eslint.config.mjs b/plugins/media-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/media-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/media-resources/.eslintrc.js b/plugins/media-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/media-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/media-resources/eslint.config.mjs b/plugins/media-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/media-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/media/.eslintrc.js b/plugins/media/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/media/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/media/eslint.config.mjs b/plugins/media/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/media/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/notification-assets/.eslintrc.js b/plugins/notification-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/notification-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/notification-assets/eslint.config.mjs b/plugins/notification-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/notification-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/notification-resources/.eslintrc.js b/plugins/notification-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/notification-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/notification-resources/eslint.config.mjs b/plugins/notification-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/notification-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/notification/.eslintrc.js b/plugins/notification/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/notification/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/notification/eslint.config.mjs b/plugins/notification/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/notification/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/onboard-assets/.eslintrc.js b/plugins/onboard-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/onboard-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/onboard-assets/eslint.config.mjs b/plugins/onboard-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/onboard-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/onboard-resources/.eslintrc.js b/plugins/onboard-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/onboard-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/onboard-resources/eslint.config.mjs b/plugins/onboard-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/onboard-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/onboard/.eslintrc.js b/plugins/onboard/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/onboard/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/onboard/eslint.config.mjs b/plugins/onboard/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/onboard/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/openai/.eslintrc.js b/plugins/openai/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/openai/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/openai/eslint.config.mjs b/plugins/openai/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/openai/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/preference-assets/.eslintrc.js b/plugins/preference-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/preference-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/preference-assets/eslint.config.mjs b/plugins/preference-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/preference-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/preference/.eslintrc.js b/plugins/preference/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/preference/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/preference/eslint.config.mjs b/plugins/preference/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/preference/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/presence-resources/.eslintrc.js b/plugins/presence-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/presence-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/presence-resources/eslint.config.mjs b/plugins/presence-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/presence-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/presence/.eslintrc.js b/plugins/presence/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/presence/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/presence/eslint.config.mjs b/plugins/presence/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/presence/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/print-assets/.eslintrc.js b/plugins/print-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/print-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/print-assets/eslint.config.mjs b/plugins/print-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/print-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/print-resources/.eslintrc.js b/plugins/print-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/print-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/print-resources/eslint.config.mjs b/plugins/print-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/print-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/print/.eslintrc.js b/plugins/print/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/print/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/print/eslint.config.mjs b/plugins/print/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/print/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/process-assets/.eslintrc.js b/plugins/process-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/process-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/process-assets/eslint.config.mjs b/plugins/process-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/process-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/process-resources/.eslintrc.js b/plugins/process-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/process-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/process-resources/eslint.config.mjs b/plugins/process-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/process-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/process/.eslintrc.js b/plugins/process/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/process/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/process/eslint.config.mjs b/plugins/process/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/process/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/products-assets/.eslintrc.js b/plugins/products-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/products-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/products-assets/eslint.config.mjs b/plugins/products-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/products-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/products-resources/.eslintrc.js b/plugins/products-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/products-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/products-resources/eslint.config.mjs b/plugins/products-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/products-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/products/.eslintrc.js b/plugins/products/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/products/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/products/eslint.config.mjs b/plugins/products/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/products/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/pulse/.eslintrc.js b/plugins/pulse/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/pulse/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/pulse/eslint.config.mjs b/plugins/pulse/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/pulse/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/qalico-assets/eslint.config.mjs b/plugins/qalico-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/qalico-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/qalico/eslint.config.mjs b/plugins/qalico/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/qalico/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/questions-assets/.eslintrc.js b/plugins/questions-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/questions-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/questions-assets/eslint.config.mjs b/plugins/questions-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/questions-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/questions-resources/.eslintrc.js b/plugins/questions-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/questions-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/questions-resources/eslint.config.mjs b/plugins/questions-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/questions-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/questions/.eslintrc.js b/plugins/questions/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/questions/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/questions/eslint.config.mjs b/plugins/questions/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/questions/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/rating-assets/.eslintrc.js b/plugins/rating-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/rating-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/rating-assets/eslint.config.mjs b/plugins/rating-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/rating-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/rating-resources/.eslintrc.js b/plugins/rating-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/rating-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/rating-resources/eslint.config.mjs b/plugins/rating-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/rating-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/rating/.eslintrc.js b/plugins/rating/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/rating/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/rating/eslint.config.mjs b/plugins/rating/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/rating/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/recorder-assets/.eslintrc.js b/plugins/recorder-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/recorder-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/recorder-assets/eslint.config.mjs b/plugins/recorder-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/recorder-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/recorder-resources/.eslintrc.js b/plugins/recorder-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/recorder-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/recorder-resources/eslint.config.mjs b/plugins/recorder-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/recorder-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/recorder/.eslintrc.js b/plugins/recorder/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/recorder/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/recorder/eslint.config.mjs b/plugins/recorder/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/recorder/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/recruit-assets/.eslintrc.js b/plugins/recruit-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/recruit-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/recruit-assets/eslint.config.mjs b/plugins/recruit-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/recruit-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/recruit-resources/.eslintrc.js b/plugins/recruit-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/recruit-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/recruit-resources/eslint.config.mjs b/plugins/recruit-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/recruit-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/recruit/.eslintrc.js b/plugins/recruit/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/recruit/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/recruit/eslint.config.mjs b/plugins/recruit/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/recruit/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/request-assets/.eslintrc.js b/plugins/request-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/request-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/request-assets/eslint.config.mjs b/plugins/request-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/request-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/request-resources/.eslintrc.js b/plugins/request-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/request-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/request-resources/eslint.config.mjs b/plugins/request-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/request-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/request/.eslintrc.js b/plugins/request/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/request/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/request/eslint.config.mjs b/plugins/request/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/request/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/setting-assets/.eslintrc.js b/plugins/setting-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/setting-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/setting-assets/eslint.config.mjs b/plugins/setting-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/setting-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/setting-resources/.eslintrc.js b/plugins/setting-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/setting-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/setting-resources/eslint.config.mjs b/plugins/setting-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/setting-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/setting/.eslintrc.js b/plugins/setting/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/setting/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/setting/eslint.config.mjs b/plugins/setting/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/setting/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/sign/.eslintrc.js b/plugins/sign/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/sign/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/sign/eslint.config.mjs b/plugins/sign/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/sign/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/support-assets/.eslintrc.js b/plugins/support-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/support-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/support-assets/eslint.config.mjs b/plugins/support-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/support-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/support-resources/.eslintrc.js b/plugins/support-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/support-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/support-resources/eslint.config.mjs b/plugins/support-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/support-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/support/.eslintrc.js b/plugins/support/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/support/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/support/eslint.config.mjs b/plugins/support/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/support/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/survey-assets/.eslintrc.js b/plugins/survey-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/survey-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/survey-assets/eslint.config.mjs b/plugins/survey-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/survey-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/survey-resources/.eslintrc.js b/plugins/survey-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/survey-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/survey-resources/eslint.config.mjs b/plugins/survey-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/survey-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/survey/.eslintrc.js b/plugins/survey/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/survey/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/survey/eslint.config.mjs b/plugins/survey/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/survey/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/tags-assets/.eslintrc.js b/plugins/tags-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/tags-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/tags-assets/eslint.config.mjs b/plugins/tags-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/tags-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/tags-resources/.eslintrc.js b/plugins/tags-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/tags-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/tags-resources/eslint.config.mjs b/plugins/tags-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/tags-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/tags/.eslintrc.js b/plugins/tags/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/tags/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/tags/eslint.config.mjs b/plugins/tags/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/tags/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/task-assets/.eslintrc.js b/plugins/task-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/task-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/task-assets/eslint.config.mjs b/plugins/task-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/task-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/task-resources/.eslintrc.js b/plugins/task-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/task-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/task-resources/eslint.config.mjs b/plugins/task-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/task-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/task/.eslintrc.js b/plugins/task/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/task/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/task/eslint.config.mjs b/plugins/task/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/task/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/telegram-assets/.eslintrc.js b/plugins/telegram-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/telegram-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/telegram-assets/eslint.config.mjs b/plugins/telegram-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/telegram-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/telegram-resources/.eslintrc.js b/plugins/telegram-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/telegram-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/telegram-resources/eslint.config.mjs b/plugins/telegram-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/telegram-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/telegram/.eslintrc.js b/plugins/telegram/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/telegram/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/telegram/eslint.config.mjs b/plugins/telegram/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/telegram/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/templates-assets/.eslintrc.js b/plugins/templates-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/templates-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/templates-assets/eslint.config.mjs b/plugins/templates-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/templates-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/templates-resources/.eslintrc.js b/plugins/templates-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/templates-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/templates-resources/eslint.config.mjs b/plugins/templates-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/templates-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/templates/.eslintrc.js b/plugins/templates/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/templates/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/templates/eslint.config.mjs b/plugins/templates/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/templates/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/test-management-assets/.eslintrc.js b/plugins/test-management-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/test-management-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/test-management-assets/eslint.config.mjs b/plugins/test-management-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/test-management-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/test-management-resources/.eslintrc.js b/plugins/test-management-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/test-management-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/test-management-resources/eslint.config.mjs b/plugins/test-management-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/test-management-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/test-management/.eslintrc.js b/plugins/test-management/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/test-management/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/test-management/eslint.config.mjs b/plugins/test-management/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/test-management/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/text-editor-assets/.eslintrc.js b/plugins/text-editor-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/text-editor-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/text-editor-assets/eslint.config.mjs b/plugins/text-editor-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/text-editor-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/text-editor-resources/.eslintrc.js b/plugins/text-editor-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/text-editor-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/text-editor-resources/eslint.config.mjs b/plugins/text-editor-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/text-editor-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/text-editor/.eslintrc.js b/plugins/text-editor/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/text-editor/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/text-editor/eslint.config.mjs b/plugins/text-editor/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/text-editor/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/time-assets/.eslintrc.js b/plugins/time-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/time-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/time-assets/eslint.config.mjs b/plugins/time-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/time-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/time-resources/.eslintrc.js b/plugins/time-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/time-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/time-resources/eslint.config.mjs b/plugins/time-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/time-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/time/.eslintrc.js b/plugins/time/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/time/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/time/eslint.config.mjs b/plugins/time/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/time/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/tracker-assets/.eslintrc.js b/plugins/tracker-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/tracker-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/tracker-assets/eslint.config.mjs b/plugins/tracker-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/tracker-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/tracker-resources/.eslintrc.js b/plugins/tracker-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/tracker-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/tracker-resources/eslint.config.mjs b/plugins/tracker-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/tracker-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/tracker/.eslintrc.js b/plugins/tracker/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/tracker/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/tracker/eslint.config.mjs b/plugins/tracker/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/tracker/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/training-assets/.eslintrc.js b/plugins/training-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/training-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/training-assets/eslint.config.mjs b/plugins/training-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/training-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/training-resources/.eslintrc.js b/plugins/training-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/training-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/training-resources/eslint.config.mjs b/plugins/training-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/training-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/training/.eslintrc.js b/plugins/training/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/training/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/training/eslint.config.mjs b/plugins/training/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/training/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/uploader-assets/.eslintrc.js b/plugins/uploader-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/uploader-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/uploader-assets/eslint.config.mjs b/plugins/uploader-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/uploader-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/uploader-resources/.eslintrc.js b/plugins/uploader-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/uploader-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/uploader-resources/eslint.config.mjs b/plugins/uploader-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/uploader-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/uploader/.eslintrc.js b/plugins/uploader/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/uploader/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/uploader/eslint.config.mjs b/plugins/uploader/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/uploader/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/view-assets/.eslintrc.js b/plugins/view-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/view-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/view-assets/eslint.config.mjs b/plugins/view-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/view-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/view-resources/.eslintrc.js b/plugins/view-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/view-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/view-resources/eslint.config.mjs b/plugins/view-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/view-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/view/.eslintrc.js b/plugins/view/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/view/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/view/eslint.config.mjs b/plugins/view/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/view/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/workbench-assets/.eslintrc.js b/plugins/workbench-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/plugins/workbench-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/workbench-assets/eslint.config.mjs b/plugins/workbench-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/workbench-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/workbench-resources/.eslintrc.js b/plugins/workbench-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/plugins/workbench-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/plugins/workbench-resources/eslint.config.mjs b/plugins/workbench-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/workbench-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/workbench/.eslintrc.js b/plugins/workbench/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/plugins/workbench/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/plugins/workbench/eslint.config.mjs b/plugins/workbench/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/workbench/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/pods/account/.eslintrc.js b/pods/account/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/pods/account/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/pods/account/eslint.config.mjs b/pods/account/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/pods/account/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/pods/authProviders/.eslintrc.js b/pods/authProviders/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/pods/authProviders/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/pods/authProviders/eslint.config.mjs b/pods/authProviders/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/pods/authProviders/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/pods/backup/.eslintrc.js b/pods/backup/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/pods/backup/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/pods/backup/eslint.config.mjs b/pods/backup/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/pods/backup/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/pods/collaborator/.eslintrc.js b/pods/collaborator/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/pods/collaborator/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/pods/collaborator/eslint.config.mjs b/pods/collaborator/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/pods/collaborator/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/pods/front/.eslintrc.js b/pods/front/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/pods/front/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/pods/front/eslint.config.mjs b/pods/front/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/pods/front/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/pods/fulltext/.eslintrc.js b/pods/fulltext/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/pods/fulltext/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/pods/fulltext/eslint.config.mjs b/pods/fulltext/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/pods/fulltext/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/pods/link-preview/.eslintrc.js b/pods/link-preview/.eslintrc.js deleted file mode 100644 index 297e1a11f7..0000000000 --- a/pods/link-preview/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} \ No newline at end of file diff --git a/pods/link-preview/eslint.config.mjs b/pods/link-preview/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/pods/link-preview/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/pods/media/.eslintrc.js b/pods/media/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/pods/media/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/pods/media/eslint.config.mjs b/pods/media/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/pods/media/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/pods/preview/.eslintrc.js b/pods/preview/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/pods/preview/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/pods/preview/eslint.config.mjs b/pods/preview/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/pods/preview/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/pods/server/.eslintrc.js b/pods/server/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/pods/server/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/pods/server/eslint.config.mjs b/pods/server/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/pods/server/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/pods/stats/.eslintrc.js b/pods/stats/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/pods/stats/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/pods/stats/eslint.config.mjs b/pods/stats/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/pods/stats/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/pods/workspace/.eslintrc.js b/pods/workspace/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/pods/workspace/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/pods/workspace/eslint.config.mjs b/pods/workspace/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/pods/workspace/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/qms-tests/sanity/.eslintrc.js b/qms-tests/sanity/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/qms-tests/sanity/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/qms-tests/sanity/eslint.config.mjs b/qms-tests/sanity/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/qms-tests/sanity/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/rush.json b/rush.json index b46ef7ebb6..11b0e82ab5 100644 --- a/rush.json +++ b/rush.json @@ -336,11 +336,6 @@ "reviewCategory": "tools", "shouldPublish": true }, - { - "packageName": "@hcengineering/ui-test", - "projectFolder": "foundations/utils/packages/ui-test", - "shouldPublish": false - }, /// CORE Modules diff --git a/server-plugins/activity-resources/.eslintrc.js b/server-plugins/activity-resources/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/server-plugins/activity-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/activity-resources/eslint.config.mjs b/server-plugins/activity-resources/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/server-plugins/activity-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/server-plugins/activity/.eslintrc.js b/server-plugins/activity/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/activity/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/activity/eslint.config.mjs b/server-plugins/activity/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/activity/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/ai-bot-resources/.eslintrc.js b/server-plugins/ai-bot-resources/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/ai-bot-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/ai-bot-resources/eslint.config.mjs b/server-plugins/ai-bot-resources/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/ai-bot-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/ai-bot/.eslintrc.js b/server-plugins/ai-bot/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/ai-bot/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/ai-bot/eslint.config.mjs b/server-plugins/ai-bot/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/ai-bot/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/analytics-collector-resources/.eslintrc.js b/server-plugins/analytics-collector-resources/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/analytics-collector-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/analytics-collector-resources/eslint.config.mjs b/server-plugins/analytics-collector-resources/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/analytics-collector-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/analytics-collector/.eslintrc.js b/server-plugins/analytics-collector/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/analytics-collector/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/analytics-collector/eslint.config.mjs b/server-plugins/analytics-collector/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/analytics-collector/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/attachment-resources/.eslintrc.js b/server-plugins/attachment-resources/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/attachment-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/attachment-resources/eslint.config.mjs b/server-plugins/attachment-resources/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/attachment-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/attachment/.eslintrc.js b/server-plugins/attachment/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/attachment/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/attachment/eslint.config.mjs b/server-plugins/attachment/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/attachment/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/calendar-resources/.eslintrc.js b/server-plugins/calendar-resources/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/calendar-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/calendar-resources/eslint.config.mjs b/server-plugins/calendar-resources/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/calendar-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/calendar/.eslintrc.js b/server-plugins/calendar/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/calendar/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/calendar/eslint.config.mjs b/server-plugins/calendar/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/calendar/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/card-resources/.eslintrc.js b/server-plugins/card-resources/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/card-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/card-resources/eslint.config.mjs b/server-plugins/card-resources/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/card-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/card/.eslintrc.js b/server-plugins/card/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/card/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/card/eslint.config.mjs b/server-plugins/card/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/card/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/chunter-resources/.eslintrc.js b/server-plugins/chunter-resources/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/chunter-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/chunter-resources/eslint.config.mjs b/server-plugins/chunter-resources/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/chunter-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/chunter/.eslintrc.js b/server-plugins/chunter/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/chunter/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/chunter/eslint.config.mjs b/server-plugins/chunter/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/chunter/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/collaboration-resources/.eslintrc.js b/server-plugins/collaboration-resources/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/collaboration-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/collaboration-resources/eslint.config.mjs b/server-plugins/collaboration-resources/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/collaboration-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/collaboration/.eslintrc.js b/server-plugins/collaboration/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/collaboration/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/collaboration/eslint.config.mjs b/server-plugins/collaboration/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/collaboration/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/contact-resources/.eslintrc.js b/server-plugins/contact-resources/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/contact-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/contact-resources/eslint.config.mjs b/server-plugins/contact-resources/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/contact-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/contact/.eslintrc.js b/server-plugins/contact/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/contact/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/contact/eslint.config.mjs b/server-plugins/contact/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/contact/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/controlled-documents-resources/.eslintrc.js b/server-plugins/controlled-documents-resources/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/controlled-documents-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/controlled-documents-resources/eslint.config.mjs b/server-plugins/controlled-documents-resources/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/controlled-documents-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/controlled-documents/.eslintrc.js b/server-plugins/controlled-documents/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/controlled-documents/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/controlled-documents/eslint.config.mjs b/server-plugins/controlled-documents/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/controlled-documents/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/document-resources/.eslintrc.js b/server-plugins/document-resources/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/document-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/document-resources/eslint.config.mjs b/server-plugins/document-resources/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/document-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/document/.eslintrc.js b/server-plugins/document/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/document/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/document/eslint.config.mjs b/server-plugins/document/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/document/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/drive-resources/.eslintrc.js b/server-plugins/drive-resources/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/drive-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/drive-resources/eslint.config.mjs b/server-plugins/drive-resources/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/drive-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/drive/.eslintrc.js b/server-plugins/drive/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/drive/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/drive/eslint.config.mjs b/server-plugins/drive/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/drive/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/gmail-resources/.eslintrc.js b/server-plugins/gmail-resources/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/gmail-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/gmail-resources/eslint.config.mjs b/server-plugins/gmail-resources/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/gmail-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/gmail/.eslintrc.js b/server-plugins/gmail/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/gmail/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/gmail/eslint.config.mjs b/server-plugins/gmail/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/gmail/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/guest-resources/.eslintrc.js b/server-plugins/guest-resources/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/guest-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/guest-resources/eslint.config.mjs b/server-plugins/guest-resources/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/guest-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/guest/.eslintrc.js b/server-plugins/guest/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/guest/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/guest/eslint.config.mjs b/server-plugins/guest/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/guest/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/hr-resources/.eslintrc.js b/server-plugins/hr-resources/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/hr-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/hr-resources/eslint.config.mjs b/server-plugins/hr-resources/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/hr-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/hr/.eslintrc.js b/server-plugins/hr/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/hr/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/hr/eslint.config.mjs b/server-plugins/hr/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/hr/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/inventory-resources/.eslintrc.js b/server-plugins/inventory-resources/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/inventory-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/inventory-resources/eslint.config.mjs b/server-plugins/inventory-resources/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/inventory-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/inventory/.eslintrc.js b/server-plugins/inventory/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/inventory/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/inventory/eslint.config.mjs b/server-plugins/inventory/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/inventory/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/lead-resources/.eslintrc.js b/server-plugins/lead-resources/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/lead-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/lead-resources/eslint.config.mjs b/server-plugins/lead-resources/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/lead-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/lead/.eslintrc.js b/server-plugins/lead/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/lead/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/lead/eslint.config.mjs b/server-plugins/lead/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/lead/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/love-resources/.eslintrc.js b/server-plugins/love-resources/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/love-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/love-resources/eslint.config.mjs b/server-plugins/love-resources/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/love-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/love/.eslintrc.js b/server-plugins/love/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/love/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/love/eslint.config.mjs b/server-plugins/love/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/love/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/notification-resources/.eslintrc.js b/server-plugins/notification-resources/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/notification-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/notification-resources/eslint.config.mjs b/server-plugins/notification-resources/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/notification-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/notification/.eslintrc.js b/server-plugins/notification/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/notification/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/notification/eslint.config.mjs b/server-plugins/notification/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/notification/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/preference/.eslintrc.js b/server-plugins/preference/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/preference/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/preference/eslint.config.mjs b/server-plugins/preference/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/preference/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/process-resources/.eslintrc.js b/server-plugins/process-resources/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/process-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/process-resources/eslint.config.mjs b/server-plugins/process-resources/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/process-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/process/.eslintrc.js b/server-plugins/process/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/process/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/process/eslint.config.mjs b/server-plugins/process/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/process/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/rating/.eslintrc.js b/server-plugins/rating/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/rating/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/rating/eslint.config.mjs b/server-plugins/rating/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/rating/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/recruit-resources/.eslintrc.js b/server-plugins/recruit-resources/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/recruit-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/recruit-resources/eslint.config.mjs b/server-plugins/recruit-resources/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/recruit-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/recruit/.eslintrc.js b/server-plugins/recruit/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/recruit/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/recruit/eslint.config.mjs b/server-plugins/recruit/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/recruit/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/request-resources/.eslintrc.js b/server-plugins/request-resources/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/request-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/request-resources/eslint.config.mjs b/server-plugins/request-resources/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/request-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/request/.eslintrc.js b/server-plugins/request/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/request/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/request/eslint.config.mjs b/server-plugins/request/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/request/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/setting-resources/.eslintrc.js b/server-plugins/setting-resources/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/setting-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/setting-resources/eslint.config.mjs b/server-plugins/setting-resources/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/setting-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/setting/.eslintrc.js b/server-plugins/setting/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/setting/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/setting/eslint.config.mjs b/server-plugins/setting/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/setting/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/tags-resources/.eslintrc.js b/server-plugins/tags-resources/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/tags-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/tags-resources/eslint.config.mjs b/server-plugins/tags-resources/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/tags-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/tags/.eslintrc.js b/server-plugins/tags/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/tags/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/tags/eslint.config.mjs b/server-plugins/tags/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/tags/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/task-resources/.eslintrc.js b/server-plugins/task-resources/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/task-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/task-resources/eslint.config.mjs b/server-plugins/task-resources/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/task-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/task/.eslintrc.js b/server-plugins/task/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/task/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/task/eslint.config.mjs b/server-plugins/task/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/task/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/telegram-resources/.eslintrc.js b/server-plugins/telegram-resources/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/telegram-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/telegram-resources/eslint.config.mjs b/server-plugins/telegram-resources/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/telegram-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/telegram/.eslintrc.js b/server-plugins/telegram/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/telegram/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/telegram/eslint.config.mjs b/server-plugins/telegram/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/telegram/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/templates/.eslintrc.js b/server-plugins/templates/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/templates/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/templates/eslint.config.mjs b/server-plugins/templates/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/templates/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/time-resources/.eslintrc.js b/server-plugins/time-resources/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/time-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/time-resources/eslint.config.mjs b/server-plugins/time-resources/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/time-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/time/.eslintrc.js b/server-plugins/time/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/time/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/time/eslint.config.mjs b/server-plugins/time/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/time/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/tracker-resources/.eslintrc.js b/server-plugins/tracker-resources/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/tracker-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/tracker-resources/eslint.config.mjs b/server-plugins/tracker-resources/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/tracker-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/tracker/.eslintrc.js b/server-plugins/tracker/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/tracker/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/tracker/eslint.config.mjs b/server-plugins/tracker/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/tracker/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/training-resources/.eslintrc.js b/server-plugins/training-resources/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/training-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/training-resources/eslint.config.mjs b/server-plugins/training-resources/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/training-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/training/.eslintrc.js b/server-plugins/training/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/training/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/training/eslint.config.mjs b/server-plugins/training/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/training/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/view-resources/.eslintrc.js b/server-plugins/view-resources/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/view-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/view-resources/eslint.config.mjs b/server-plugins/view-resources/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/view-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server-plugins/view/.eslintrc.js b/server-plugins/view/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server-plugins/view/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server-plugins/view/eslint.config.mjs b/server-plugins/view/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server-plugins/view/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server/account-service/.eslintrc.js b/server/account-service/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/server/account-service/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server/account-service/eslint.config.mjs b/server/account-service/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/server/account-service/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/server/account/.eslintrc.js b/server/account/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/server/account/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server/account/eslint.config.mjs b/server/account/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/server/account/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/server/backup-service/.eslintrc.js b/server/backup-service/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/server/backup-service/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server/backup-service/eslint.config.mjs b/server/backup-service/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/server/backup-service/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/server/backup/.eslintrc.js b/server/backup/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server/backup/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server/backup/eslint.config.mjs b/server/backup/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server/backup/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server/collaborator/.eslintrc.js b/server/collaborator/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server/collaborator/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server/collaborator/eslint.config.mjs b/server/collaborator/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server/collaborator/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server/front/.eslintrc.js b/server/front/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/server/front/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server/front/eslint.config.mjs b/server/front/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/server/front/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/server/indexer/.eslintrc.js b/server/indexer/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/server/indexer/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server/indexer/eslint.config.mjs b/server/indexer/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/server/indexer/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/server/server-pipeline/.eslintrc.js b/server/server-pipeline/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/server/server-pipeline/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server/server-pipeline/eslint.config.mjs b/server/server-pipeline/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/server/server-pipeline/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/server/tool/.eslintrc.js b/server/tool/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/server/tool/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server/tool/eslint.config.mjs b/server/tool/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/server/tool/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/server/workspace-service/.eslintrc.js b/server/workspace-service/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/server/workspace-service/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/server/workspace-service/eslint.config.mjs b/server/workspace-service/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/server/workspace-service/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/services/ai-bot/ai-core/eslint.config.mjs b/services/ai-bot/ai-core/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/services/ai-bot/ai-core/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/services/ai-bot/love-agent/package.json b/services/ai-bot/love-agent/package.json index f84840cc4a..0cd0514ae8 100644 --- a/services/ai-bot/love-agent/package.json +++ b/services/ai-bot/love-agent/package.json @@ -26,10 +26,11 @@ "esbuild": "^0.25.10", "eslint": "^8.54.0", "eslint-config-prettier": "^8.8.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "eslint-config-love": "^157.0.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-n": "^15.4.0", "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-secure-coding": "^5.4.4", "prettier": "^3.6.2", "typescript": "^5.9.3" }, diff --git a/services/ai-bot/pod-ai-bot/.eslintrc.js b/services/ai-bot/pod-ai-bot/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/services/ai-bot/pod-ai-bot/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/services/ai-bot/pod-ai-bot/eslint.config.mjs b/services/ai-bot/pod-ai-bot/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/services/ai-bot/pod-ai-bot/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/services/analytics-collector/pod-analytics-collector/.eslintrc.js b/services/analytics-collector/pod-analytics-collector/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/services/analytics-collector/pod-analytics-collector/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/services/analytics-collector/pod-analytics-collector/eslint.config.mjs b/services/analytics-collector/pod-analytics-collector/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/services/analytics-collector/pod-analytics-collector/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/services/backup/backup-api-pod/.eslintrc.js b/services/backup/backup-api-pod/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/services/backup/backup-api-pod/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/services/backup/backup-api-pod/eslint.config.mjs b/services/backup/backup-api-pod/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/services/backup/backup-api-pod/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/services/billing/pod-billing/.eslintrc.js b/services/billing/pod-billing/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/services/billing/pod-billing/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/services/billing/pod-billing/eslint.config.mjs b/services/billing/pod-billing/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/services/billing/pod-billing/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/services/calendar/pod-calendar-mailer/.eslintrc.js b/services/calendar/pod-calendar-mailer/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/services/calendar/pod-calendar-mailer/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/services/calendar/pod-calendar-mailer/eslint.config.mjs b/services/calendar/pod-calendar-mailer/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/services/calendar/pod-calendar-mailer/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/services/calendar/pod-calendar/.eslintrc.js b/services/calendar/pod-calendar/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/services/calendar/pod-calendar/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/services/calendar/pod-calendar/eslint.config.mjs b/services/calendar/pod-calendar/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/services/calendar/pod-calendar/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/services/datalake/pod-datalake/.eslintrc.js b/services/datalake/pod-datalake/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/services/datalake/pod-datalake/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/services/datalake/pod-datalake/eslint.config.mjs b/services/datalake/pod-datalake/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/services/datalake/pod-datalake/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/services/export/pod-export/.eslintrc.js b/services/export/pod-export/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/services/export/pod-export/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/services/export/pod-export/eslint.config.mjs b/services/export/pod-export/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/services/export/pod-export/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/services/github-next/github-next-service/eslint.config.mjs b/services/github-next/github-next-service/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/services/github-next/github-next-service/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/services/github/github-assets/.eslintrc.js b/services/github/github-assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/services/github/github-assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/services/github/github-assets/eslint.config.mjs b/services/github/github-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/services/github/github-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/services/github/github-resources/.eslintrc.js b/services/github/github-resources/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/services/github/github-resources/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/services/github/github-resources/eslint.config.mjs b/services/github/github-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/services/github/github-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/services/github/github/.eslintrc.js b/services/github/github/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/services/github/github/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/services/github/github/eslint.config.mjs b/services/github/github/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/services/github/github/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/services/github/model-github/.eslintrc.js b/services/github/model-github/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/services/github/model-github/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/services/github/model-github/eslint.config.mjs b/services/github/model-github/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/services/github/model-github/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/services/github/pod-github/.eslintrc.js b/services/github/pod-github/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/services/github/pod-github/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/services/github/pod-github/eslint.config.mjs b/services/github/pod-github/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/services/github/pod-github/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/services/github/server-github-model/.eslintrc.js b/services/github/server-github-model/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/services/github/server-github-model/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/services/github/server-github-model/eslint.config.mjs b/services/github/server-github-model/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/services/github/server-github-model/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/services/github/server-github-resources/.eslintrc.js b/services/github/server-github-resources/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/services/github/server-github-resources/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/services/github/server-github-resources/eslint.config.mjs b/services/github/server-github-resources/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/services/github/server-github-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/services/github/server-github/.eslintrc.js b/services/github/server-github/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/services/github/server-github/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/services/github/server-github/eslint.config.mjs b/services/github/server-github/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/services/github/server-github/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/services/gmail/pod-gmail/.eslintrc.js b/services/gmail/pod-gmail/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/services/gmail/pod-gmail/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/services/gmail/pod-gmail/eslint.config.mjs b/services/gmail/pod-gmail/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/services/gmail/pod-gmail/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/services/love/.eslintrc.js b/services/love/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/services/love/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/services/love/eslint.config.mjs b/services/love/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/services/love/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/services/mail/mail-common/.eslintrc.js b/services/mail/mail-common/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/services/mail/mail-common/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/services/mail/mail-common/eslint.config.mjs b/services/mail/mail-common/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/services/mail/mail-common/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/services/mail/pod-mail-worker/.eslintrc.js b/services/mail/pod-mail-worker/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/services/mail/pod-mail-worker/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/services/mail/pod-mail-worker/eslint.config.mjs b/services/mail/pod-mail-worker/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/services/mail/pod-mail-worker/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/services/mail/pod-mail/.eslintrc.js b/services/mail/pod-mail/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/services/mail/pod-mail/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/services/mail/pod-mail/eslint.config.mjs b/services/mail/pod-mail/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/services/mail/pod-mail/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/services/mcp/pod-mcp/eslint.config.mjs b/services/mcp/pod-mcp/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/services/mcp/pod-mcp/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/services/notification/pod-events-processor/.eslintrc.js b/services/notification/pod-events-processor/.eslintrc.js deleted file mode 100644 index 6ab3cb53db..0000000000 --- a/services/notification/pod-events-processor/.eslintrc.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} - diff --git a/services/notification/pod-events-processor/eslint.config.mjs b/services/notification/pod-events-processor/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/services/notification/pod-events-processor/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/services/notification/pod-notification/.eslintrc.js b/services/notification/pod-notification/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/services/notification/pod-notification/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/services/notification/pod-notification/eslint.config.mjs b/services/notification/pod-notification/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/services/notification/pod-notification/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/services/payment/pod-payment/.eslintrc.js b/services/payment/pod-payment/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/services/payment/pod-payment/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/services/payment/pod-payment/eslint.config.mjs b/services/payment/pod-payment/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/services/payment/pod-payment/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/services/print/pod-print/.eslintrc.js b/services/print/pod-print/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/services/print/pod-print/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/services/print/pod-print/eslint.config.mjs b/services/print/pod-print/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/services/print/pod-print/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/services/process/.eslintrc.js b/services/process/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/services/process/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/services/process/eslint.config.mjs b/services/process/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/services/process/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/services/rating/.eslintrc.js b/services/rating/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/services/rating/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/services/rating/eslint.config.mjs b/services/rating/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/services/rating/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/services/rekoni/.eslintrc.js b/services/rekoni/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/services/rekoni/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/services/rekoni/eslint.config.mjs b/services/rekoni/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/services/rekoni/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/services/sign/pod-sign/.eslintrc.js b/services/sign/pod-sign/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/services/sign/pod-sign/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/services/sign/pod-sign/eslint.config.mjs b/services/sign/pod-sign/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/services/sign/pod-sign/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/services/telegram-bot/pod-telegram-bot/.eslintrc.js b/services/telegram-bot/pod-telegram-bot/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/services/telegram-bot/pod-telegram-bot/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/services/telegram-bot/pod-telegram-bot/eslint.config.mjs b/services/telegram-bot/pod-telegram-bot/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/services/telegram-bot/pod-telegram-bot/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/services/telegram/pod-telegram/.eslintrc.js b/services/telegram/pod-telegram/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/services/telegram/pod-telegram/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/services/telegram/pod-telegram/eslint.config.mjs b/services/telegram/pod-telegram/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/services/telegram/pod-telegram/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/services/worker/.eslintrc.js b/services/worker/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/services/worker/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/services/worker/eslint.config.mjs b/services/worker/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/services/worker/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/templates/assets/.eslintrc.js b/templates/assets/.eslintrc.js deleted file mode 100644 index e73094bc7e..0000000000 --- a/templates/assets/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/templates/assets/eslint.config.mjs b/templates/assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/templates/assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/templates/assets/package.json b/templates/assets/package.json index 5d358b8f38..079fc60832 100644 --- a/templates/assets/package.json +++ b/templates/assets/package.json @@ -53,10 +53,11 @@ "@hcengineering/platform-rig": "workspace:^0.7.21", "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "eslint-config-love": "^157.0.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-n": "^15.4.0", "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-secure-coding": "^5.4.4", "eslint": "^8.54.0", "prettier": "^3.6.2", "@types/node": "^24.13.3", diff --git a/templates/cloud/.eslintrc.js b/templates/cloud/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/templates/cloud/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/templates/cloud/eslint.config.mjs b/templates/cloud/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/templates/cloud/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/templates/cloud/package.json b/templates/cloud/package.json index 79e5a5a298..f98c72bb3e 100644 --- a/templates/cloud/package.json +++ b/templates/cloud/package.json @@ -28,10 +28,11 @@ "wrangler": "^3.108.1", "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "eslint-config-love": "^157.0.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-n": "^15.4.0", "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-secure-coding": "^5.4.4", "eslint": "^8.54.0", "prettier": "^3.6.2", "jest": "^29.7.0", diff --git a/templates/model/.eslintrc.js b/templates/model/.eslintrc.js deleted file mode 100644 index c1cf82cba0..0000000000 --- a/templates/model/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/templates/model/eslint.config.mjs b/templates/model/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/templates/model/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/templates/model/package.json b/templates/model/package.json index 7263d75444..a4360e57e6 100644 --- a/templates/model/package.json +++ b/templates/model/package.json @@ -23,10 +23,11 @@ "devDependencies": { "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "eslint-config-love": "^157.0.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-n": "^15.4.0", "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-secure-coding": "^5.4.4", "eslint": "^8.54.0", "prettier": "^3.6.2", "typescript": "^5.9.3", diff --git a/templates/node/.eslintrc.js b/templates/node/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/templates/node/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/templates/node/eslint.config.mjs b/templates/node/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/templates/node/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/templates/node/package.json b/templates/node/package.json index f65fd9c432..54722ff9d7 100644 --- a/templates/node/package.json +++ b/templates/node/package.json @@ -25,10 +25,11 @@ "devDependencies": { "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "eslint-config-love": "^157.0.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-n": "^15.4.0", "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-secure-coding": "^5.4.4", "eslint": "^8.54.0", "prettier": "^3.6.2", "jest": "^29.7.0", diff --git a/templates/platform/.eslintrc.js b/templates/platform/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/templates/platform/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/templates/platform/eslint.config.mjs b/templates/platform/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/templates/platform/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/templates/platform/package.json b/templates/platform/package.json index 2dfdd2c258..fd6c6757c6 100644 --- a/templates/platform/package.json +++ b/templates/platform/package.json @@ -30,10 +30,11 @@ "devDependencies": { "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "eslint-config-love": "^157.0.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-n": "^15.4.0", "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-secure-coding": "^5.4.4", "eslint": "^8.54.0", "prettier": "^3.6.2", "jest": "^29.7.0", diff --git a/templates/ui/.eslintrc.js b/templates/ui/.eslintrc.js deleted file mode 100644 index bb8fd7450d..0000000000 --- a/templates/ui/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], - parserOptions: { tsconfigRootDir: __dirname } -} diff --git a/templates/ui/eslint.config.mjs b/templates/ui/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/templates/ui/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/templates/ui/package.json b/templates/ui/package.json index 042db3da88..557f61dc87 100644 --- a/templates/ui/package.json +++ b/templates/ui/package.json @@ -20,10 +20,11 @@ "svelte-preprocess": "^5.1.4", "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "eslint-config-love": "^157.0.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-n": "^15.4.0", "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-secure-coding": "^5.4.4", "eslint": "^8.54.0", "eslint-plugin-svelte": "^2.35.1", "prettier-plugin-svelte": "^3.4.0", diff --git a/tests/sanity/.eslintrc.js b/tests/sanity/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/tests/sanity/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/tests/sanity/eslint.config.mjs b/tests/sanity/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/tests/sanity/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/ws-tests/api-tests/.eslintrc.js b/ws-tests/api-tests/.eslintrc.js deleted file mode 100644 index ce90fb9646..0000000000 --- a/ws-tests/api-tests/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/ws-tests/api-tests/eslint.config.mjs b/ws-tests/api-tests/eslint.config.mjs new file mode 100644 index 0000000000..524a79e33f --- /dev/null +++ b/ws-tests/api-tests/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/node/eslint.config.mjs' + +export default config diff --git a/ws-tests/sanity/.eslintrc.js b/ws-tests/sanity/.eslintrc.js deleted file mode 100644 index 72235dc283..0000000000 --- a/ws-tests/sanity/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json' - } -} diff --git a/ws-tests/sanity/eslint.config.mjs b/ws-tests/sanity/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/ws-tests/sanity/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config From 161a4ab7395ae05da3f355be231efa21a75821d4 Mon Sep 17 00:00:00 2001 From: Alexander Onnikov Date: Wed, 16 Sep 2026 23:09:25 +0700 Subject: [PATCH 34/55] fix: address eslint security issues (ported from TraceX 272e65f0e7) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- .../src/__tests__/compare.test.ts | 74 +++++++++++ .../src/__tests__/markdown.test.ts | 58 +-------- .../src/__tests__/serializer.test.ts | 119 ++++++++++++++++++ .../packages/text-markdown/src/compare.ts | 11 +- .../core/packages/text-markdown/src/index.ts | 2 +- .../packages/text-markdown/src/serializer.ts | 53 ++++---- .../postgres/src/__tests__/conversion.spec.ts | 1 + packages/ui/src/components/NavGroup.svelte | 4 +- packages/ui/src/components/NavItem.svelte | 6 +- .../navigator/SpacePresenter.svelte | 6 +- .../hierarchy/DocumentSpacePresenter.svelte | 10 +- .../navigator/DocTreeElement.svelte | 4 +- .../navigator/TeamspaceSpacePresenter.svelte | 10 +- .../src/components/DriveSpacePresenter.svelte | 12 +- .../project/ProjectSpacePresenter.svelte | 8 +- .../extension/embed/providers/youtube.ts | 2 + .../extension/shortcuts/imageUpload.ts | 86 ++++++++++++- .../extension/shortcuts/tablePaste.ts | 1 + .../projects/ProjectSpacePresenter.svelte | 8 +- .../components/folders/FoldersBrowser.svelte | 8 +- .../components/navigator/TreeElement.svelte | 6 +- .../src/components/navigator/TreeItem.svelte | 4 +- .../src/components/navigator/TreeNode.svelte | 4 +- .../src/components/navigator/SpacesNav.svelte | 2 +- .../components/navigator/SpacesNavItem.svelte | 6 +- .../navigator/SpecialElement.svelte | 4 +- .../components/navigator/StarredNav.svelte | 2 +- .../navigator/StarredNavItem.svelte | 6 +- .../tests/model/documents/categories-page.ts | 1 + services/mail/mail-common/src/utils.ts | 1 + .../mail/pod-mail-worker/src/handlerMta.ts | 1 + .../telegram/pod-telegram/src/escaping.ts | 19 ++- services/telegram/pod-telegram/src/markup.ts | 2 +- .../tests/model/documents/documents-page.ts | 1 + 34 files changed, 398 insertions(+), 144 deletions(-) create mode 100644 foundations/core/packages/text-markdown/src/__tests__/compare.test.ts create mode 100644 foundations/core/packages/text-markdown/src/__tests__/serializer.test.ts diff --git a/foundations/core/packages/text-markdown/src/__tests__/compare.test.ts b/foundations/core/packages/text-markdown/src/__tests__/compare.test.ts new file mode 100644 index 0000000000..35359392b9 --- /dev/null +++ b/foundations/core/packages/text-markdown/src/__tests__/compare.test.ts @@ -0,0 +1,74 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 { calcSørensenDiceCoefficient, normalizeMarkdown } from '../compare' + +describe('calcSørensenDiceCoefficient', () => { + it('returns zero for nullish inputs', () => { + expect(calcSørensenDiceCoefficient(null as unknown as string, 'text')).toBe(0) + expect(calcSørensenDiceCoefficient('text', undefined as unknown as string)).toBe(0) + }) + + it('returns one for identical strings after whitespace is removed', () => { + expect(calcSørensenDiceCoefficient('hello world', 'helloworld')).toBe(1) + expect(calcSørensenDiceCoefficient('', ' \n\t')).toBe(1) + }) + + it('returns zero when either distinct normalized string is shorter than two characters', () => { + expect(calcSørensenDiceCoefficient('a', 'b')).toBe(0) + expect(calcSørensenDiceCoefficient('a', 'ab')).toBe(0) + }) + + it('calculates the coefficient from shared bigrams', () => { + expect(calcSørensenDiceCoefficient('night', 'nacht')).toBe(0.25) + expect(calcSørensenDiceCoefficient('night', 'nacht')).toBe(calcSørensenDiceCoefficient('nacht', 'night')) + }) + + it('counts repeated bigrams no more often than they occur in both strings', () => { + expect(calcSørensenDiceCoefficient('aaaa', 'aa')).toBe(0.5) + expect(calcSørensenDiceCoefficient('abc', 'xyz')).toBe(0) + }) +}) + +describe('normalizeMarkdown', () => { + it('returns an empty string for nullish and non-string inputs', () => { + expect(normalizeMarkdown(null as unknown as string)).toBe('') + expect(normalizeMarkdown(undefined as unknown as string)).toBe('') + expect(normalizeMarkdown(123 as unknown as string)).toBe('') + expect(normalizeMarkdown({} as unknown as string)).toBe('') + }) + + it('normalizes line endings and removes empty lines and trailing whitespace', () => { + expect(normalizeMarkdown('line1 \r\n \rline2 \n\nline3')).toBe('line1\nline2\nline3') + }) + + it('sorts HTML attributes and normalizes void elements to self-closing tags', () => { + expect(normalizeMarkdown('test')).toBe( + 'test' + ) + expect(normalizeMarkdown('')).toBe('') + }) + + it('keeps non-void tags open and preserves their normalized attributes', () => { + expect(normalizeMarkdown("

")).toBe('
') + }) + + it('normalizes markdown containing text and HTML tags', () => { + const source = 'Text before\r\ntest \n\nText after ' + const expected = 'Text before\ntest\nText after' + + expect(normalizeMarkdown(source)).toBe(expected) + }) +}) diff --git a/foundations/core/packages/text-markdown/src/__tests__/markdown.test.ts b/foundations/core/packages/text-markdown/src/__tests__/markdown.test.ts index 1068e7b2ad..3139baa128 100644 --- a/foundations/core/packages/text-markdown/src/__tests__/markdown.test.ts +++ b/foundations/core/packages/text-markdown/src/__tests__/markdown.test.ts @@ -1,3 +1,4 @@ +/* eslint-disable max-lines */ // // Copyright © 2025 Hardcore Engineering Inc. // @@ -15,7 +16,7 @@ import { MarkupNode, MarkupNodeType, MarkupMarkType } from '@hcengineering/text-core' import { markdownToMarkup, markupToMarkdown } from '..' -import { isMarkdownsEquals, normalizeMarkdown } from '../compare' +import { isMarkdownsEquals } from '../compare' const refUrl: string = 'ref://' const imageUrl: string = 'http://localhost' @@ -1195,58 +1196,3 @@ describe('markdownToMarkup -> markupToMarkdown', () => { }) }) }) - -describe('normalizeMarkdown', () => { - it('handles null and undefined inputs', () => { - expect(normalizeMarkdown(null as any)).toBe('') - expect(normalizeMarkdown(undefined as any)).toBe('') - expect(normalizeMarkdown('')).toBe('') - }) - - it('handles non-string inputs', () => { - expect(normalizeMarkdown(123 as any)).toBe('') - expect(normalizeMarkdown({} as any)).toBe('') - expect(normalizeMarkdown([] as any)).toBe('') - }) - - it('normalizes line endings', () => { - expect(normalizeMarkdown('line1\r\nline2\rline3\nline4')).toBe('line1\nline2\nline3\nline4') - }) - - it('removes trailing whitespace and empty lines', () => { - expect(normalizeMarkdown('line1 \n \nline2 \n\n\nline3')).toBe('line1\nline2\nline3') - }) - - it('normalizes HTML tag attributes', () => { - const input = 'test' - const expected = 'test' - expect(normalizeMarkdown(input)).toBe(expected) - }) - - it('handles void elements correctly', () => { - expect(normalizeMarkdown('')).toBe('') - expect(normalizeMarkdown('
')).toBe('
') - expect(normalizeMarkdown('
')).toBe('
') - }) - - it('handles non-void elements correctly', () => { - expect(normalizeMarkdown('
')).toBe('
') - expect(normalizeMarkdown('')).toBe('') - }) - - it('sorts attributes alphabetically', () => { - const input = 'test' - const expected = 'test' - expect(normalizeMarkdown(input)).toBe(expected) - }) - - it('handles attributes without values', () => { - expect(normalizeMarkdown('')).toBe('') - }) - - it('handles mixed content', () => { - const input = 'Text before\r\ntest \n\nText after ' - const expected = 'Text before\ntest\nText after' - expect(normalizeMarkdown(input)).toBe(expected) - }) -}) diff --git a/foundations/core/packages/text-markdown/src/__tests__/serializer.test.ts b/foundations/core/packages/text-markdown/src/__tests__/serializer.test.ts new file mode 100644 index 0000000000..27b852b4ed --- /dev/null +++ b/foundations/core/packages/text-markdown/src/__tests__/serializer.test.ts @@ -0,0 +1,119 @@ +// +// Copyright © 2026 TraceX SAS. +// +// Licensed under the PolyForm Shield License 1.0.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://polyformproject.org/licenses/shield/1.0.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 { MarkupNode } from '@hcengineering/text-core' + +import { storeNodes } from '../serializer' + +const IMAGE_URL = 'https://files.example/' + +function escapeHtml (value: string): string { + return value + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, ''') +} + +function serializeImage (attrs: Record): string { + const output: string[] = [] + const state = { + write: (content: string) => output.push(content), + esc: (value: string) => value, + htmlEsc: escapeHtml, + quote: (value: string) => '"' + value + '"', + imageUrl: IMAGE_URL + } as unknown as Parameters[0] + const node: MarkupNode = { type: 'image', attrs } as unknown as MarkupNode + const parent: MarkupNode = { type: 'doc', content: [] } as unknown as MarkupNode + + storeNodes.image(state, node, parent, 0) + + return output.join('') +} + +describe('storeNodes.image', () => { + it('serializes a token-backed image with its dimensions and title', () => { + expect( + serializeImage({ + 'file-id': 'file-123', + token: 'token-abc', + width: 320, + height: 180, + alt: 'Preview', + title: 'Screenshot' + }) + ).toBe('![Preview](https://files.example/file-123?file=file-123&width=320&height=180&token=token-abc "Screenshot")') + }) + + it('serializes a file-backed image with its dimensions', () => { + expect( + serializeImage({ + 'file-id': 'file-123', + width: 320, + height: 180, + alt: 'Preview' + }) + ).toBe('![Preview](https://files.example/file-123?file=file-123&width=320&height=180)') + }) + + it('serializes sized external images as HTML', () => { + expect( + serializeImage({ + src: 'https://images.example/preview.png', + width: 320, + height: 180, + alt: 'Preview' + }) + ).toBe('Preview') + }) + + it('serializes external images without dimensions as Markdown', () => { + expect( + serializeImage({ + src: 'https://images.example/preview.png', + alt: 'Preview', + title: 'Screenshot' + }) + ).toBe('![Preview](https://images.example/preview.png "Screenshot")') + }) + + it('encodes values added to file image URLs', () => { + expect( + serializeImage({ + 'file-id': 'file & id', + token: 'token&admin=true', + width: '320&height=1', + alt: 'Preview' + }) + ).toBe( + '![Preview](https://files.example/file%20%26%20id?file=file%20%26%20id&width=320%26height%3D1&token=token%26admin%3Dtrue)' + ) + }) + + it('HTML-escapes attributes of sized external images', () => { + expect( + serializeImage({ + src: 'https://images.example/preview.png?x="> {#if specials} @@ -75,7 +75,7 @@ highlighted={space._id === currentSpace} {visible} actions={() => getActions(space)} - {forciblyСollapsed} + {forciblyCollapsed} > {#each specials as special} @@ -93,7 +93,7 @@ {@const item = specials.find((sp) => sp.id === currentSpecial && currentSpace === space._id)} {#if item} - + {/if} {/if} diff --git a/plugins/text-editor-resources/src/components/extension/embed/providers/youtube.ts b/plugins/text-editor-resources/src/components/extension/embed/providers/youtube.ts index 6660d9cbbd..b7f1014027 100644 --- a/plugins/text-editor-resources/src/components/extension/embed/providers/youtube.ts +++ b/plugins/text-editor-resources/src/components/extension/embed/providers/youtube.ts @@ -227,6 +227,8 @@ export const getEmbedUrlFromYoutubeUrl = (url: string, options: YoutubeEmbedUrlO } export const YOUTUBE_REGEX = + // eslint-disable-next-line secure-coding/no-redos-vulnerable-regex /^((?:https?:)?\/\/)?((?:www|m|music)\.)?((?:youtube\.com|youtu.be|youtube-nocookie\.com))(\/(?:[\w-]+\?v=|embed\/|v\/)?)([\w-]+)(\S+)?$/ export const YOUTUBE_REGEX_GLOBAL = + // eslint-disable-next-line secure-coding/no-redos-vulnerable-regex /^((?:https?:)?\/\/)?((?:www|m|music)\.)?((?:youtube\.com|youtu.be|youtube-nocookie\.com))(\/(?:[\w-]+\?v=|embed\/|v\/)?)([\w-]+)(\S+)?$/g diff --git a/plugins/text-editor-resources/src/components/extension/shortcuts/imageUpload.ts b/plugins/text-editor-resources/src/components/extension/shortcuts/imageUpload.ts index df0e80795e..7eacd1a0b3 100644 --- a/plugins/text-editor-resources/src/components/extension/shortcuts/imageUpload.ts +++ b/plugins/text-editor-resources/src/components/extension/shortcuts/imageUpload.ts @@ -12,14 +12,15 @@ // See the License for the specific language governing permissions and // limitations under the License. // +import { generateId, type Blob, type Ref } from '@hcengineering/core' import { setPlatformStatus, unknownError } from '@hcengineering/platform' import { imageSizeToRatio, getImageSize } from '@hcengineering/presentation' import { Extension } from '@tiptap/core' +import { type Node } from '@tiptap/pm/model' import { Plugin, PluginKey } from '@tiptap/pm/state' import { type EditorView } from '@tiptap/pm/view' import { type FileAttachFunction } from '../types' -import type { Blob, Ref } from '@hcengineering/core' /** * @public @@ -45,6 +46,73 @@ export const ImageUploadExtension = Extension.create { + let imagePosition: number | undefined + + view.state.doc.descendants((currentNode, position) => { + if (!currentNode.isText || currentNode.text === undefined) return + + const offset = currentNode.text.indexOf(placeholder) + if (offset !== -1) { + imagePosition = position + offset + return false + } + }) + + if (imagePosition !== undefined) { + view.dispatch(view.state.tr.replaceWith(imagePosition, imagePosition + placeholder.length, node)) + } + } + + const uploadInlineImage = async ( + view: EditorView, + source: string, + placeholder: string, + alt: string + ): Promise => { + if (attachFile === undefined) return + + try { + const response = await fetch(source) + const blob = await response.blob() + if (!blob.type.startsWith('image/')) return + + const file = new File([blob], getInlineImageName(blob.type, alt), { type: blob.type }) + const attached = await attachFile(file) + if (attached === undefined) return + + const size = await getImageSize(file) + const node = view.state.schema.nodes.image.create({ + 'file-id': attached.file, + 'data-file-type': file.type, + src: getFileUrl(attached.file), + alt: alt || file.name, + title: alt || file.name, + width: imageSizeToRatio(size.width, size.pixelRatio) + }) + + replacePendingInlineImage(view, placeholder, node) + } catch (err) { + void setPlatformStatus(unknownError(err)) + } + } + + const transformPastedHTML = (html: string, view: EditorView): string => { + if (attachFile === undefined || !html.includes('data:image/')) return html + + const document = new DOMParser().parseFromString(html, 'text/html') + document.querySelectorAll('img[src^="data:image/"]').forEach(image => { + const source = image.getAttribute('src') + if (source !== null) { + const placeholder = `[Uploading image ${generateId()}]` + image.replaceWith(document.createTextNode(placeholder)) + void uploadInlineImage(view, source, placeholder, image.getAttribute('alt') ?? '') + } + }) + + return document.body.innerHTML + } + function handleDrop ( view: EditorView, pos: { pos: number, inside: number } | null, @@ -95,6 +163,7 @@ export const ImageUploadExtension = Extension.create + // eslint-disable-next-line secure-coding/no-redos-vulnerable-regex const commentRegex = new RegExp(``, 's') const match = text.match(commentRegex) if (match?.[1] !== undefined) { diff --git a/plugins/tracker-resources/src/components/projects/ProjectSpacePresenter.svelte b/plugins/tracker-resources/src/components/projects/ProjectSpacePresenter.svelte index 4503213abc..57aeb055f2 100644 --- a/plugins/tracker-resources/src/components/projects/ProjectSpacePresenter.svelte +++ b/plugins/tracker-resources/src/components/projects/ProjectSpacePresenter.svelte @@ -29,7 +29,7 @@ export let currentSpecial: string | undefined export let getActions: (space: Project) => Promise = async () => [] export let deselect: boolean = false - export let forciblyСollapsed: boolean = false + export let forciblyCollapsed: boolean = false let specials: SpecialNavModel[] = [] @@ -55,7 +55,7 @@ } $: visible = (!deselect && currentSpace !== undefined && currentSpecial !== undefined && space._id === currentSpace) || - forciblyСollapsed + forciblyCollapsed {#if specials} @@ -75,7 +75,7 @@ highlighted={space._id === currentSpace} {visible} actions={() => getActions(space)} - {forciblyСollapsed} + {forciblyCollapsed} > {#each specials as special} @@ -93,7 +93,7 @@ {@const item = specials.find((sp) => sp.id === currentSpecial && currentSpace === space._id)} {#if item} - + {/if} {/if} diff --git a/plugins/view-resources/src/components/folders/FoldersBrowser.svelte b/plugins/view-resources/src/components/folders/FoldersBrowser.svelte index 500a71a53c..3695fba099 100644 --- a/plugins/view-resources/src/components/folders/FoldersBrowser.svelte +++ b/plugins/view-resources/src/components/folders/FoldersBrowser.svelte @@ -42,7 +42,7 @@ return (getLocation()?.query?.attachedTo as Ref) ?? noParentId } - export let forciblyСollapsed: boolean = false + export let forciblyCollapsed: boolean = false const client = getClient() @@ -126,7 +126,7 @@ type={'nested-selectable'} empty={foldersState?.folders?.length === 0} actions={() => getRootActions()} - {forciblyСollapsed} + {forciblyCollapsed} on:click={handleAllItemsSelected} > - {#if (selected || forciblyСollapsed) && visibleItem !== undefined} + {#if (selected || forciblyCollapsed) && visibleItem !== undefined} {@const folder = visibleItem} await getFolderActions(folder)} shouldTooltip - forciblyСollapsed + forciblyCollapsed /> {/if} diff --git a/plugins/view-resources/src/components/navigator/TreeElement.svelte b/plugins/view-resources/src/components/navigator/TreeElement.svelte index bde97c051d..69aadfb67e 100644 --- a/plugins/view-resources/src/components/navigator/TreeElement.svelte +++ b/plugins/view-resources/src/components/navigator/TreeElement.svelte @@ -53,7 +53,7 @@ export let showMenu: boolean = false export let noDivider: boolean = false export let showNotify: boolean = false - export let forciblyСollapsed: boolean = false + export let forciblyCollapsed: boolean = false export let actions: (originalEvent?: MouseEvent) => Promise = async () => [] export let draggable: boolean = false @@ -100,7 +100,7 @@ {isFold} {empty} {visible} - {forciblyСollapsed} + {forciblyCollapsed} {shouldTooltip} showMenu={showMenu || pressed} {noDivider} @@ -169,7 +169,7 @@ {isFold} {empty} {visible} - {forciblyСollapsed} + {forciblyCollapsed} {level} {shouldTooltip} {draggable} diff --git a/plugins/view-resources/src/components/navigator/TreeItem.svelte b/plugins/view-resources/src/components/navigator/TreeItem.svelte index 5f03a55c8b..3142c83dd8 100644 --- a/plugins/view-resources/src/components/navigator/TreeItem.svelte +++ b/plugins/view-resources/src/components/navigator/TreeItem.svelte @@ -38,7 +38,7 @@ export let level: number = 0 export let shouldTooltip: boolean = false export let showNotify: boolean = false - export let forciblyСollapsed: boolean = false + export let forciblyCollapsed: boolean = false export let collapsedPrefix: string = '' export let draggable: boolean = false @@ -64,7 +64,7 @@ {level} {showMenu} {noDivider} - {forciblyСollapsed} + {forciblyCollapsed} {draggable} on:click on:dragstart diff --git a/plugins/view-resources/src/components/navigator/TreeNode.svelte b/plugins/view-resources/src/components/navigator/TreeNode.svelte index 65118e0f7d..2cf38a7ffc 100644 --- a/plugins/view-resources/src/components/navigator/TreeNode.svelte +++ b/plugins/view-resources/src/components/navigator/TreeNode.svelte @@ -38,7 +38,7 @@ export let showMenu: boolean = false export let noDivider: boolean = false export let shouldTooltip: boolean = false - export let forciblyСollapsed: boolean = false + export let forciblyCollapsed: boolean = false export let draggable: boolean = false @@ -63,7 +63,7 @@ {shouldTooltip} {showMenu} {noDivider} - {forciblyСollapsed} + {forciblyCollapsed} {draggable} on:click on:dragstart diff --git a/plugins/workbench-resources/src/components/navigator/SpacesNav.svelte b/plugins/workbench-resources/src/components/navigator/SpacesNav.svelte index 66c2dbbb17..bb5c8f2b80 100644 --- a/plugins/workbench-resources/src/components/navigator/SpacesNav.svelte +++ b/plugins/workbench-resources/src/components/navigator/SpacesNav.svelte @@ -180,7 +180,7 @@ {deselect} isChanged={isChanged(visibleSpace, $notifyContextByDocStore, $inboxNotificationsByContextStore)} spaceActions={[starSpace]} - forciblyСollapsed + forciblyCollapsed /> {/if} diff --git a/plugins/workbench-resources/src/components/navigator/SpacesNavItem.svelte b/plugins/workbench-resources/src/components/navigator/SpacesNavItem.svelte index ea1c673b75..0439411cbc 100644 --- a/plugins/workbench-resources/src/components/navigator/SpacesNavItem.svelte +++ b/plugins/workbench-resources/src/components/navigator/SpacesNavItem.svelte @@ -37,7 +37,7 @@ export let deselect: boolean = false export let isChanged: boolean = false export let spaceActions: Action[] | undefined - export let forciblyСollapsed: boolean = false + export let forciblyCollapsed: boolean = false const client = getClient() @@ -71,7 +71,7 @@ {currentFragment} {getActions} {deselect} - {forciblyСollapsed} + {forciblyCollapsed} selected={deselect ? false : currentSpace === space._id} /> {:else} @@ -84,7 +84,7 @@ selected={deselect ? false : currentSpace === space._id} actions={async () => await getActions(space)} bold={isChanged} - {forciblyСollapsed} + {forciblyCollapsed} indent /> {/await} diff --git a/plugins/workbench-resources/src/components/navigator/SpecialElement.svelte b/plugins/workbench-resources/src/components/navigator/SpecialElement.svelte index 803854ca82..2afc3b0f67 100644 --- a/plugins/workbench-resources/src/components/navigator/SpecialElement.svelte +++ b/plugins/workbench-resources/src/components/navigator/SpecialElement.svelte @@ -25,7 +25,7 @@ export let selected: boolean = false export let disabled: boolean = false export let indent: boolean = false - export let forciblyСollapsed: boolean = false + export let forciblyCollapsed: boolean = false {#each actions as action} diff --git a/plugins/workbench-resources/src/components/navigator/StarredNav.svelte b/plugins/workbench-resources/src/components/navigator/StarredNav.svelte index 068b2655f9..c64eac1107 100644 --- a/plugins/workbench-resources/src/components/navigator/StarredNav.svelte +++ b/plugins/workbench-resources/src/components/navigator/StarredNav.svelte @@ -90,7 +90,7 @@ {currentFragment} {deselect} isChanged={isChanged(visibleSpace, $notifyContextByDocStore, $inboxNotificationsByContextStore)} - forciblyСollapsed + forciblyCollapsed /> {/if} diff --git a/plugins/workbench-resources/src/components/navigator/StarredNavItem.svelte b/plugins/workbench-resources/src/components/navigator/StarredNavItem.svelte index c066fdf906..22ee100d41 100644 --- a/plugins/workbench-resources/src/components/navigator/StarredNavItem.svelte +++ b/plugins/workbench-resources/src/components/navigator/StarredNavItem.svelte @@ -36,7 +36,7 @@ export let currentFragment: string | undefined export let deselect: boolean = false export let isChanged: boolean = false - export let forciblyСollapsed: boolean = false + export let forciblyCollapsed: boolean = false const client = getClient() @@ -80,7 +80,7 @@ {currentFragment} {getActions} {deselect} - {forciblyСollapsed} + {forciblyCollapsed} type={'nested'} /> {:else} @@ -93,7 +93,7 @@ selected={currentSpace === space._id} actions={async () => await getActions(space)} bold={isChanged} - {forciblyСollapsed} + {forciblyCollapsed} /> {/await} diff --git a/qms-tests/sanity/tests/model/documents/categories-page.ts b/qms-tests/sanity/tests/model/documents/categories-page.ts index dc589a653d..64aaddd5dd 100644 --- a/qms-tests/sanity/tests/model/documents/categories-page.ts +++ b/qms-tests/sanity/tests/model/documents/categories-page.ts @@ -1,3 +1,4 @@ +/* eslint-disable secure-coding/no-xpath-injection */ import { type Locator, type Page, expect } from '@playwright/test' import { CalendarPage } from '../calendar-page' diff --git a/services/mail/mail-common/src/utils.ts b/services/mail/mail-common/src/utils.ts index 97c8cacf50..00acbab0fa 100644 --- a/services/mail/mail-common/src/utils.ts +++ b/services/mail/mail-common/src/utils.ts @@ -30,6 +30,7 @@ import { MessageExtra, MessageID } from '@hcengineering/communication-types' import { CreateMessageEvent } from '@hcengineering/communication-sdk-types' import { generateMessageId } from '@hcengineering/communication-shared' +// eslint-disable-next-line secure-coding/no-redos-vulnerable-regex const NAME_EMAIL_PATTERN = /^(?:"?([^"<]+)"?\s*)?<([^>]+)>$/ const NAME_SEGMENT_REGEX = /[\s,;]+/ diff --git a/services/mail/pod-mail-worker/src/handlerMta.ts b/services/mail/pod-mail-worker/src/handlerMta.ts index d1e70a2b61..4c4f5a267a 100644 --- a/services/mail/pod-mail-worker/src/handlerMta.ts +++ b/services/mail/pod-mail-worker/src/handlerMta.ts @@ -133,6 +133,7 @@ function extractContactName ( email: string ): { firstName: string, lastName: string } { // Match name part that appears before an email in angle brackets + // eslint-disable-next-line secure-coding/no-redos-vulnerable-regex const nameMatch = fromHeader.match(/^\s*"?([^"<]+?)"?\s*<.+?>/) const encodedName = nameMatch?.[1].trim() ?? '' const name = encodedName.length > 0 ? decodeEncodedWords(ctx, encodedName) : '' diff --git a/services/telegram/pod-telegram/src/escaping.ts b/services/telegram/pod-telegram/src/escaping.ts index af97c98308..d84a083356 100644 --- a/services/telegram/pod-telegram/src/escaping.ts +++ b/services/telegram/pod-telegram/src/escaping.ts @@ -1,10 +1,21 @@ export const escape = (str: string): string => { try { - return str.replace(/&/g, '&').replace(//g, '>') - } catch (ee: any) { - console.error(ee) + return str + .replace(/&/gv, '&') + .replace(//gv, '>') + .replace(/"/gv, '"') + .replace(/'/gv, ''') + } catch (e) { + console.error(e) } return str } -export const unescape = (str: string): string => str.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>') +export const unescape = (str: string): string => + str + .replace(/&/gv, '&') + .replace(/</gv, '<') + .replace(/>/gv, '>') + .replace(/"/gv, '"') + .replace(/'/gv, "'") diff --git a/services/telegram/pod-telegram/src/markup.ts b/services/telegram/pod-telegram/src/markup.ts index 9adbe92640..7bba4d6f75 100644 --- a/services/telegram/pod-telegram/src/markup.ts +++ b/services/telegram/pod-telegram/src/markup.ts @@ -108,7 +108,7 @@ export function platformToTelegram (message: string): TelegramMessage { } } -const transform = (text: string): string => escape(text).replace(/\n/g, '
') +const transform = (text: string): string => escape(text).replace(/\n/gv, '
') // FYI, copypasted from here: // https://github.com/gram-js/gramjs/blob/master/gramjs/extensions/html.ts diff --git a/tests/sanity/tests/model/documents/documents-page.ts b/tests/sanity/tests/model/documents/documents-page.ts index c6ca2a5dd7..1d9783229d 100644 --- a/tests/sanity/tests/model/documents/documents-page.ts +++ b/tests/sanity/tests/model/documents/documents-page.ts @@ -112,6 +112,7 @@ export class DocumentsPage extends CommonPage { async moreActionTeamspace (name: string, action: string): Promise { await this.page.locator('button.hulyNavGroup-header span[class*="label"]', { hasText: name }).hover() await this.page + // eslint-disable-next-line secure-coding/no-xpath-injection .locator(`xpath=//span[text()="${name}"]/../../div[@class="hulyNavGroup-header__tools"]/button[last()]`) .click() await this.selectFromDropdown(this.page, action) From e8445ace44a3a8073b1aa47527b57458278a2a92 Mon Sep 17 00:00:00 2001 From: Alexander Onnikov Date: Thu, 17 Sep 2026 12:18:44 +0700 Subject: [PATCH 35/55] fix: update mismatching dependencies Signed-off-by: Alexander Onnikov (ported from TraceX 6f2ec53966) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- common/scripts/package.json | 2 +- desktop-package/package.json | 2 +- desktop/package.json | 2 +- dev/doc-import-tool/package.json | 2 +- dev/import-tool/package.json | 2 +- dev/prod/package.json | 2 +- dev/tool/package.json | 2 +- foundations/core/common/scripts/package.json | 2 +- foundations/core/packages/account-client/package.json | 2 +- foundations/core/packages/analytics-service/package.json | 2 +- foundations/core/packages/analytics/package.json | 2 +- foundations/core/packages/api-client/package.json | 2 +- foundations/core/packages/client-resources/package.json | 2 +- foundations/core/packages/client/package.json | 2 +- foundations/core/packages/collaborator-client/package.json | 2 +- foundations/core/packages/core/package.json | 2 +- foundations/core/packages/hulylake-client/package.json | 2 +- foundations/core/packages/measurements-otlp/package.json | 2 +- foundations/core/packages/measurements/package.json | 2 +- foundations/core/packages/model/package.json | 2 +- foundations/core/packages/platform/package.json | 2 +- foundations/core/packages/postgres-base/package.json | 2 +- foundations/core/packages/query/package.json | 2 +- foundations/core/packages/rank/package.json | 2 +- foundations/core/packages/retry/package.json | 2 +- foundations/core/packages/rpc/package.json | 2 +- foundations/core/packages/storage-client/package.json | 2 +- foundations/core/packages/storage/package.json | 2 +- foundations/core/packages/text-core/package.json | 2 +- foundations/core/packages/text-html/package.json | 2 +- foundations/core/packages/text-markdown/package.json | 2 +- foundations/core/packages/text-ydoc/package.json | 2 +- foundations/core/packages/text/package.json | 2 +- foundations/core/packages/token/package.json | 2 +- foundations/net/packages/backrpc/package.json | 2 +- foundations/net/packages/client/package.json | 2 +- foundations/net/packages/core/package.json | 2 +- foundations/net/packages/server/package.json | 2 +- foundations/net/pods/network-pod/package.json | 2 +- foundations/net/pods/network-tool/package.json | 2 +- foundations/net/tests/package.json | 2 +- foundations/server/common/scripts/package-lock.json | 2 +- foundations/server/common/scripts/package.json | 2 +- foundations/server/packages/client/package.json | 2 +- foundations/server/packages/collaboration/package.json | 2 +- foundations/server/packages/core/package.json | 2 +- foundations/server/packages/datalake/package.json | 2 +- foundations/server/packages/elastic/package.json | 2 +- foundations/server/packages/hulylake/package.json | 2 +- foundations/server/packages/kafka/package.json | 2 +- foundations/server/packages/middleware/package.json | 2 +- foundations/server/packages/minio/package.json | 2 +- foundations/server/packages/mongo/package.json | 2 +- foundations/server/packages/postgres/package.json | 2 +- foundations/server/packages/s3/package.json | 2 +- foundations/server/packages/server-storage/package.json | 2 +- foundations/server/packages/server/package.json | 2 +- foundations/utils/common/scripts/package.json | 2 +- foundations/utils/packages/platform-rig/package.json | 2 +- models/achievement/package.json | 2 +- models/activity/package.json | 2 +- models/ai-assistant/package.json | 2 +- models/ai-bot/package.json | 2 +- models/all/package.json | 2 +- models/analytics-collector/package.json | 2 +- models/attachment/package.json | 2 +- models/billing/package.json | 2 +- models/bitrix/package.json | 2 +- models/board/package.json | 2 +- models/calendar/package.json | 2 +- models/card/package.json | 2 +- models/chunter/package.json | 2 +- models/communication/package.json | 2 +- models/contact/package.json | 2 +- models/controlled-documents/package.json | 2 +- models/converter/package.json | 2 +- models/core/package.json | 2 +- models/desktop-downloads/package.json | 2 +- models/desktop-preferences/package.json | 2 +- models/document/package.json | 2 +- models/drive/package.json | 2 +- models/emoji/package.json | 2 +- models/export/package.json | 2 +- models/gmail/package.json | 2 +- models/guest/package.json | 2 +- models/hr/package.json | 2 +- models/huly-mail/package.json | 2 +- models/inbox/package.json | 2 +- models/inventory/package.json | 2 +- models/lead/package.json | 2 +- models/love/package.json | 2 +- models/mail/package.json | 2 +- models/media/package.json | 2 +- models/notification/package.json | 2 +- models/preference/package.json | 2 +- models/presence/package.json | 2 +- models/presentation/package.json | 2 +- models/print/package.json | 2 +- models/process/package.json | 2 +- models/products/package.json | 2 +- models/pulse/package.json | 2 +- models/questions/package.json | 2 +- models/rating/package.json | 2 +- models/recorder/package.json | 2 +- models/recruit/package.json | 2 +- models/request/package.json | 2 +- models/server-activity/package.json | 2 +- models/server-ai-bot/package.json | 2 +- models/server-attachment/package.json | 2 +- models/server-calendar/package.json | 2 +- models/server-card/package.json | 2 +- models/server-chunter/package.json | 2 +- models/server-collaboration/package.json | 2 +- models/server-contact/package.json | 2 +- models/server-controlled-documents/package.json | 2 +- models/server-core/package.json | 2 +- models/server-document/package.json | 2 +- models/server-drive/package.json | 2 +- models/server-gmail/package.json | 2 +- models/server-guest/package.json | 2 +- models/server-hr/package.json | 2 +- models/server-inventory/package.json | 2 +- models/server-lead/package.json | 2 +- models/server-love/package.json | 2 +- models/server-notification/package.json | 2 +- models/server-process/package.json | 2 +- models/server-products/package.json | 2 +- models/server-recruit/package.json | 2 +- models/server-request/package.json | 2 +- models/server-setting/package.json | 2 +- models/server-tags/package.json | 2 +- models/server-task/package.json | 2 +- models/server-telegram/package.json | 2 +- models/server-templates/package.json | 2 +- models/server-time/package.json | 2 +- models/server-tracker/package.json | 2 +- models/server-training/package.json | 2 +- models/server-view/package.json | 2 +- models/setting/package.json | 2 +- models/support/package.json | 2 +- models/survey/package.json | 2 +- models/tags/package.json | 2 +- models/task/package.json | 2 +- models/telegram/package.json | 2 +- models/templates/package.json | 2 +- models/test-management/package.json | 2 +- models/text-editor/package.json | 2 +- models/time/package.json | 2 +- models/tracker/package.json | 2 +- models/training/package.json | 2 +- models/uploader/package.json | 2 +- models/view/package.json | 2 +- models/workbench/package.json | 2 +- packages/analytics-providers/package.json | 2 +- packages/billing-client/package.json | 2 +- packages/highlight/package.json | 2 +- packages/hls/package.json | 2 +- packages/importer/package.json | 2 +- packages/integration-client/package.json | 2 +- packages/kanban/package.json | 2 +- packages/kvs-client/package.json | 2 +- packages/panel/package.json | 2 +- packages/payment-client/package.json | 2 +- packages/presentation/package.json | 2 +- packages/rekoni/package.json | 2 +- packages/theme/package.json | 2 +- packages/ui/package.json | 2 +- plugins/achievement-assets/package.json | 2 +- plugins/achievement-resources/package.json | 2 +- plugins/achievement/package.json | 2 +- plugins/activity-assets/package.json | 2 +- plugins/activity-resources/package.json | 2 +- plugins/activity/package.json | 2 +- plugins/ai-assistant-assets/package.json | 2 +- plugins/ai-assistant-resources/package.json | 2 +- plugins/ai-assistant/package.json | 2 +- plugins/ai-bot-resources/package.json | 2 +- plugins/ai-bot/package.json | 2 +- plugins/analytics-collector-assets/package.json | 2 +- plugins/analytics-collector-resources/package.json | 2 +- plugins/analytics-collector/package.json | 2 +- plugins/attachment-assets/package.json | 2 +- plugins/attachment-resources/package.json | 2 +- plugins/attachment/package.json | 2 +- plugins/billing-assets/package.json | 2 +- plugins/billing-resources/package.json | 2 +- plugins/billing/package.json | 2 +- plugins/bitrix-assets/package.json | 2 +- plugins/bitrix-resources/package.json | 2 +- plugins/bitrix/package.json | 2 +- plugins/board-assets/package.json | 2 +- plugins/board-resources/package.json | 2 +- plugins/board/package.json | 2 +- plugins/calendar-assets/package.json | 2 +- plugins/calendar-resources/package.json | 2 +- plugins/calendar/package.json | 2 +- plugins/card-assets/package.json | 2 +- plugins/card-resources/package.json | 2 +- plugins/card/package.json | 2 +- plugins/chat-assets/package.json | 2 +- plugins/chat/package.json | 2 +- plugins/chunter-assets/package.json | 2 +- plugins/chunter-resources/package.json | 2 +- plugins/chunter/package.json | 2 +- plugins/client-resources/package.json | 2 +- plugins/client/package.json | 2 +- plugins/communication-resources/package.json | 2 +- plugins/communication/package.json | 2 +- plugins/contact-assets/package.json | 2 +- plugins/contact-resources/package.json | 2 +- plugins/contact/package.json | 2 +- plugins/controlled-documents-assets/package.json | 2 +- plugins/controlled-documents-resources/package.json | 2 +- plugins/controlled-documents/package.json | 2 +- plugins/converter-resources/package.json | 2 +- plugins/converter/package.json | 2 +- plugins/desktop-downloads-assets/package.json | 2 +- plugins/desktop-downloads-resources/package.json | 2 +- plugins/desktop-downloads/package.json | 2 +- plugins/desktop-preferences-assets/package.json | 2 +- plugins/desktop-preferences-resources/package.json | 2 +- plugins/desktop-preferences/package.json | 2 +- plugins/devmodel-resources/package.json | 2 +- plugins/devmodel/package.json | 2 +- plugins/diffview-assets/package.json | 2 +- plugins/diffview-resources/package.json | 2 +- plugins/diffview/package.json | 2 +- plugins/document-assets/package.json | 2 +- plugins/document-resources/package.json | 2 +- plugins/document/package.json | 2 +- plugins/drive-assets/package.json | 2 +- plugins/drive-resources/package.json | 2 +- plugins/drive/package.json | 2 +- plugins/emoji-assets/package.json | 2 +- plugins/emoji-resources/package.json | 2 +- plugins/emoji/package.json | 2 +- plugins/export-assets/package.json | 2 +- plugins/export-resources/package.json | 2 +- plugins/export/package.json | 2 +- plugins/global-profile-assets/package.json | 2 +- plugins/global-profile-resources/package.json | 2 +- plugins/global-profile/package.json | 2 +- plugins/gmail-assets/package.json | 2 +- plugins/gmail-resources/package.json | 2 +- plugins/gmail/package.json | 2 +- plugins/guest-assets/package.json | 2 +- plugins/guest-resources/package.json | 2 +- plugins/guest/package.json | 2 +- plugins/hr-assets/package.json | 2 +- plugins/hr-resources/package.json | 2 +- plugins/hr/package.json | 2 +- plugins/huly-mail-assets/package.json | 2 +- plugins/huly-mail-resources/package.json | 2 +- plugins/huly-mail/package.json | 2 +- plugins/image-cropper-resources/package.json | 2 +- plugins/image-cropper/package.json | 2 +- plugins/inventory-assets/package.json | 2 +- plugins/inventory-resources/package.json | 2 +- plugins/inventory/package.json | 2 +- plugins/lead-assets/package.json | 2 +- plugins/lead-resources/package.json | 2 +- plugins/lead/package.json | 2 +- plugins/login-assets/package.json | 2 +- plugins/login-resources/package.json | 2 +- plugins/login/package.json | 2 +- plugins/love-assets/package.json | 2 +- plugins/love-resources/package.json | 2 +- plugins/love/package.json | 2 +- plugins/mail-assets/package.json | 2 +- plugins/mail/package.json | 2 +- plugins/media-assets/package.json | 2 +- plugins/media-resources/package.json | 2 +- plugins/media/package.json | 2 +- plugins/notification-assets/package.json | 2 +- plugins/notification-resources/package.json | 2 +- plugins/notification/package.json | 2 +- plugins/onboard-assets/package.json | 2 +- plugins/onboard-resources/package.json | 2 +- plugins/onboard/package.json | 2 +- plugins/openai/package.json | 2 +- plugins/preference-assets/package.json | 2 +- plugins/preference/package.json | 2 +- plugins/presence-resources/package.json | 2 +- plugins/presence/package.json | 2 +- plugins/print-assets/package.json | 2 +- plugins/print-resources/package.json | 2 +- plugins/print/package.json | 2 +- plugins/process-assets/package.json | 2 +- plugins/process-resources/package.json | 2 +- plugins/process/package.json | 2 +- plugins/products-assets/package.json | 2 +- plugins/products-resources/package.json | 2 +- plugins/products/package.json | 2 +- plugins/pulse/package.json | 2 +- plugins/questions-assets/package.json | 2 +- plugins/questions-resources/package.json | 2 +- plugins/questions/package.json | 2 +- plugins/rating-assets/package.json | 2 +- plugins/rating-resources/package.json | 2 +- plugins/rating/package.json | 2 +- plugins/recorder-assets/package.json | 2 +- plugins/recorder-resources/package.json | 2 +- plugins/recorder/package.json | 2 +- plugins/recruit-assets/package.json | 2 +- plugins/recruit-resources/package.json | 2 +- plugins/recruit/package.json | 2 +- plugins/request-assets/package.json | 2 +- plugins/request-resources/package.json | 2 +- plugins/request/package.json | 2 +- plugins/setting-assets/package.json | 2 +- plugins/setting-resources/package.json | 2 +- plugins/setting/package.json | 2 +- plugins/sign/package.json | 2 +- plugins/support-assets/package.json | 2 +- plugins/support-resources/package.json | 2 +- plugins/support/package.json | 2 +- plugins/survey-assets/package.json | 2 +- plugins/survey-resources/package.json | 2 +- plugins/survey/package.json | 2 +- plugins/tags-assets/package.json | 2 +- plugins/tags-resources/package.json | 2 +- plugins/tags/package.json | 2 +- plugins/task-assets/package.json | 2 +- plugins/task-resources/package.json | 2 +- plugins/task/package.json | 2 +- plugins/telegram-assets/package.json | 2 +- plugins/telegram-resources/package.json | 2 +- plugins/telegram/package.json | 2 +- plugins/templates-assets/package.json | 2 +- plugins/templates-resources/package.json | 2 +- plugins/templates/package.json | 2 +- plugins/test-management-assets/package.json | 2 +- plugins/test-management-resources/package.json | 2 +- plugins/test-management/package.json | 2 +- plugins/text-editor-assets/package.json | 2 +- plugins/text-editor-resources/package.json | 2 +- plugins/text-editor/package.json | 2 +- plugins/time-assets/package.json | 2 +- plugins/time-resources/package.json | 2 +- plugins/time/package.json | 2 +- plugins/tracker-assets/package.json | 2 +- plugins/tracker-resources/package.json | 2 +- plugins/tracker/package.json | 2 +- plugins/training-assets/package.json | 2 +- plugins/training-resources/package.json | 2 +- plugins/training/package.json | 2 +- plugins/uploader-assets/package.json | 2 +- plugins/uploader-resources/package.json | 2 +- plugins/uploader/package.json | 2 +- plugins/view-assets/package.json | 2 +- plugins/view-resources/package.json | 2 +- plugins/view/package.json | 2 +- plugins/workbench-assets/package.json | 2 +- plugins/workbench-resources/package.json | 2 +- plugins/workbench/package.json | 2 +- pods/account/package.json | 2 +- pods/authProviders/package.json | 2 +- pods/backup/package.json | 2 +- pods/collaborator/package.json | 2 +- pods/external/package.json | 2 +- pods/front/package.json | 2 +- pods/fulltext/package.json | 2 +- pods/link-preview/package.json | 2 +- pods/media/package.json | 2 +- pods/preview/package.json | 2 +- pods/server/package.json | 2 +- pods/stats/package.json | 2 +- pods/workspace/package.json | 2 +- qms-desktop-package/package.json | 2 +- qms-tests/sanity/package.json | 2 +- server-plugins/activity-resources/package.json | 2 +- server-plugins/activity/package.json | 2 +- server-plugins/ai-bot-resources/package.json | 2 +- server-plugins/ai-bot/package.json | 2 +- server-plugins/analytics-collector-resources/package.json | 2 +- server-plugins/analytics-collector/package.json | 2 +- server-plugins/attachment-resources/package.json | 2 +- server-plugins/attachment/package.json | 2 +- server-plugins/calendar-resources/package.json | 2 +- server-plugins/calendar/package.json | 2 +- server-plugins/card-resources/package.json | 2 +- server-plugins/card/package.json | 2 +- server-plugins/chunter-resources/package.json | 2 +- server-plugins/chunter/package.json | 2 +- server-plugins/collaboration-resources/package.json | 2 +- server-plugins/collaboration/package.json | 2 +- server-plugins/contact-resources/package.json | 2 +- server-plugins/contact/package.json | 2 +- server-plugins/controlled-documents-resources/package.json | 2 +- server-plugins/controlled-documents/package.json | 2 +- server-plugins/document-resources/package.json | 2 +- server-plugins/document/package.json | 2 +- server-plugins/drive-resources/package.json | 2 +- server-plugins/drive/package.json | 2 +- server-plugins/gmail-resources/package.json | 2 +- server-plugins/gmail/package.json | 2 +- server-plugins/guest-resources/package.json | 2 +- server-plugins/guest/package.json | 2 +- server-plugins/hr-resources/package.json | 2 +- server-plugins/hr/package.json | 2 +- server-plugins/inventory-resources/package.json | 2 +- server-plugins/inventory/package.json | 2 +- server-plugins/lead-resources/package.json | 2 +- server-plugins/lead/package.json | 2 +- server-plugins/love-resources/package.json | 2 +- server-plugins/love/package.json | 2 +- server-plugins/notification-resources/package.json | 2 +- server-plugins/notification/package.json | 2 +- server-plugins/preference/package.json | 2 +- server-plugins/process-resources/package.json | 2 +- server-plugins/process/package.json | 2 +- server-plugins/rating/package.json | 2 +- server-plugins/recruit-resources/package.json | 2 +- server-plugins/recruit/package.json | 2 +- server-plugins/request-resources/package.json | 2 +- server-plugins/request/package.json | 2 +- server-plugins/setting-resources/package.json | 2 +- server-plugins/setting/package.json | 2 +- server-plugins/tags-resources/package.json | 2 +- server-plugins/tags/package.json | 2 +- server-plugins/task-resources/package.json | 2 +- server-plugins/task/package.json | 2 +- server-plugins/telegram-resources/package.json | 2 +- server-plugins/telegram/package.json | 2 +- server-plugins/templates/package.json | 2 +- server-plugins/time-resources/package.json | 2 +- server-plugins/time/package.json | 2 +- server-plugins/tracker-resources/package.json | 2 +- server-plugins/tracker/package.json | 2 +- server-plugins/training-resources/package.json | 2 +- server-plugins/training/package.json | 2 +- server-plugins/view-resources/package.json | 2 +- server-plugins/view/package.json | 2 +- server/account-service/package.json | 2 +- server/account/package.json | 2 +- server/backup-service/package.json | 2 +- server/backup/package.json | 2 +- server/collaborator/package.json | 2 +- server/front/package.json | 2 +- server/indexer/package.json | 2 +- server/server-pipeline/package.json | 2 +- server/tool/package.json | 2 +- server/workspace-service/package.json | 2 +- services/ai-bot/love-agent/package.json | 2 +- services/ai-bot/pod-ai-bot/package.json | 2 +- .../analytics-collector/pod-analytics-collector/package.json | 2 +- services/backup/backup-api-pod/package.json | 2 +- services/billing/pod-billing/package.json | 2 +- services/calendar/pod-calendar-mailer/package.json | 2 +- services/calendar/pod-calendar/package.json | 2 +- services/datalake/pod-datalake/package.json | 2 +- services/export/pod-export/package.json | 2 +- services/github/github-assets/package.json | 2 +- services/github/github-resources/package.json | 2 +- services/github/github/package.json | 2 +- services/github/model-github/package.json | 2 +- services/github/pod-github/package.json | 2 +- services/github/server-github-model/package.json | 2 +- services/github/server-github-resources/package.json | 2 +- services/github/server-github/package.json | 2 +- services/gmail/pod-gmail/package.json | 2 +- services/love/package.json | 2 +- services/mail/mail-common/package.json | 2 +- services/mail/pod-mail-worker/package.json | 2 +- services/mail/pod-mail/package.json | 2 +- services/notification/pod-events-processor/package.json | 2 +- services/notification/pod-notification/package.json | 2 +- services/payment/pod-payment/package.json | 2 +- services/print/pod-print/package.json | 2 +- services/process/package.json | 2 +- services/rating/package.json | 2 +- services/rekoni/package.json | 2 +- services/sign/pod-sign/package.json | 2 +- services/telegram-bot/pod-telegram-bot/package.json | 2 +- services/telegram/pod-telegram/package.json | 2 +- services/worker/package.json | 2 +- templates/assets/package.json | 2 +- templates/cloud/package.json | 2 +- templates/model/package.json | 2 +- templates/node/package.json | 2 +- templates/platform/package.json | 2 +- templates/ui/package.json | 2 +- tests/sanity/package.json | 2 +- ws-tests/api-tests/package.json | 2 +- ws-tests/sanity/package.json | 2 +- 485 files changed, 485 insertions(+), 485 deletions(-) diff --git a/common/scripts/package.json b/common/scripts/package.json index 9c36321245..e1f3d6bb45 100644 --- a/common/scripts/package.json +++ b/common/scripts/package.json @@ -8,7 +8,7 @@ "template": "none", "devDependencies": { "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0", + "eslint-config-love": "^157.0.0", "@hcengineering/platform-rig": "workspace:^0.7.21", "esbuild": "^0.25.10", "sharp": "~0.35.3", diff --git a/desktop-package/package.json b/desktop-package/package.json index 425cfe42d5..9baaaef3cc 100644 --- a/desktop-package/package.json +++ b/desktop-package/package.json @@ -39,7 +39,7 @@ "eslint": "^9.39.5", "@typescript-eslint/parser": "^8.67.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "electron-squirrel-startup": "~1.0.1", diff --git a/desktop/package.json b/desktop/package.json index 5e7bfefcbe..277f90279e 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -79,7 +79,7 @@ "@testing-library/jest-dom": "6.9.1", "jest-environment-jsdom": "^30.4.1", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/dev/doc-import-tool/package.json b/dev/doc-import-tool/package.json index 1ba1f5853d..4c9f4b9f70 100644 --- a/dev/doc-import-tool/package.json +++ b/dev/doc-import-tool/package.json @@ -41,7 +41,7 @@ "@types/htmlparser2": "^3.10.7", "@types/domhandler": "^2.4.5", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/controlled-documents": "workspace:^0.7.0", diff --git a/dev/import-tool/package.json b/dev/import-tool/package.json index f8ca3a9ebb..be6c9b7828 100644 --- a/dev/import-tool/package.json +++ b/dev/import-tool/package.json @@ -54,7 +54,7 @@ "prettier": "^3.6.2", "@types/js-yaml": "^4.0.9", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/dev/prod/package.json b/dev/prod/package.json index b7c60fcd9b..716c54a1aa 100644 --- a/dev/prod/package.json +++ b/dev/prod/package.json @@ -33,7 +33,7 @@ "eslint": "^9.39.5", "eslint-plugin-promise": "^7.3.0", "eslint-plugin-n": "^18.3.0", - "eslint-config-love": "^155.0.0", + "eslint-config-love": "^157.0.0", "@typescript-eslint/parser": "^8.67.0", "eslint-plugin-svelte": "^3.23.0", "@typescript-eslint/eslint-plugin": "^8.67.0", diff --git a/dev/tool/package.json b/dev/tool/package.json index 5e4b05a8f4..5568fcde3c 100644 --- a/dev/tool/package.json +++ b/dev/tool/package.json @@ -63,7 +63,7 @@ "@types/jest": "^30.0.0", "@types/js-yaml": "^4.0.9", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@elastic/elasticsearch": "^7.17.14", diff --git a/foundations/core/common/scripts/package.json b/foundations/core/common/scripts/package.json index d085f11e15..4736b0985a 100644 --- a/foundations/core/common/scripts/package.json +++ b/foundations/core/common/scripts/package.json @@ -13,7 +13,7 @@ "eslint-plugin-n": "^18.3.0", "eslint": "^9.39.5", "@typescript-eslint/parser": "^8.67.0", - "eslint-config-love": "^155.0.0", + "eslint-config-love": "^157.0.0", "eslint-plugin-svelte": "^3.23.0" }, "private": true diff --git a/foundations/core/packages/account-client/package.json b/foundations/core/packages/account-client/package.json index 83fe866a7f..3ff41db0e6 100644 --- a/foundations/core/packages/account-client/package.json +++ b/foundations/core/packages/account-client/package.json @@ -40,7 +40,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/core/packages/analytics-service/package.json b/foundations/core/packages/analytics-service/package.json index 34b6149641..a91146439b 100644 --- a/foundations/core/packages/analytics-service/package.json +++ b/foundations/core/packages/analytics-service/package.json @@ -37,7 +37,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/foundations/core/packages/analytics/package.json b/foundations/core/packages/analytics/package.json index c2ab24b07b..d965f9b0a2 100644 --- a/foundations/core/packages/analytics/package.json +++ b/foundations/core/packages/analytics/package.json @@ -37,7 +37,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20" diff --git a/foundations/core/packages/api-client/package.json b/foundations/core/packages/api-client/package.json index 3edbf2e940..68b8a892bc 100644 --- a/foundations/core/packages/api-client/package.json +++ b/foundations/core/packages/api-client/package.json @@ -49,7 +49,7 @@ "@types/ws": "^8.18.1", "@types/snappyjs": "^0.7.1", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/account-client": "workspace:^0.7.25", diff --git a/foundations/core/packages/client-resources/package.json b/foundations/core/packages/client-resources/package.json index 92ad272ec5..dc49e1ee39 100644 --- a/foundations/core/packages/client-resources/package.json +++ b/foundations/core/packages/client-resources/package.json @@ -41,7 +41,7 @@ "ws": "^8.21.0", "@types/ws": "^8.18.1", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/foundations/core/packages/client/package.json b/foundations/core/packages/client/package.json index dd85fd0d95..36a246e3a7 100644 --- a/foundations/core/packages/client/package.json +++ b/foundations/core/packages/client/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "@types/node": "^24.13.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/foundations/core/packages/collaborator-client/package.json b/foundations/core/packages/collaborator-client/package.json index 3b354c6edb..0e99a8d439 100644 --- a/foundations/core/packages/collaborator-client/package.json +++ b/foundations/core/packages/collaborator-client/package.json @@ -40,7 +40,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26" diff --git a/foundations/core/packages/core/package.json b/foundations/core/packages/core/package.json index 0f49b6110d..fca55f3065 100644 --- a/foundations/core/packages/core/package.json +++ b/foundations/core/packages/core/package.json @@ -42,7 +42,7 @@ "@types/jest": "^30.0.0", "@types/node": "^24.13.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/foundations/core/packages/hulylake-client/package.json b/foundations/core/packages/hulylake-client/package.json index 74746680d4..446f191e48 100644 --- a/foundations/core/packages/hulylake-client/package.json +++ b/foundations/core/packages/hulylake-client/package.json @@ -40,7 +40,7 @@ "ts-jest": "^29.4.12", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/core/packages/measurements-otlp/package.json b/foundations/core/packages/measurements-otlp/package.json index 3666cfef14..66e24853bf 100644 --- a/foundations/core/packages/measurements-otlp/package.json +++ b/foundations/core/packages/measurements-otlp/package.json @@ -38,7 +38,7 @@ "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^18.3.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/measurements": "workspace:^0.7.19", diff --git a/foundations/core/packages/measurements/package.json b/foundations/core/packages/measurements/package.json index fe51976536..280555a407 100644 --- a/foundations/core/packages/measurements/package.json +++ b/foundations/core/packages/measurements/package.json @@ -38,7 +38,7 @@ "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^18.3.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "repository": { "type": "git", diff --git a/foundations/core/packages/model/package.json b/foundations/core/packages/model/package.json index 8cdeca26d7..f5ae667d57 100644 --- a/foundations/core/packages/model/package.json +++ b/foundations/core/packages/model/package.json @@ -33,7 +33,7 @@ "@types/jest": "^30.0.0", "@types/node": "^24.13.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/core/packages/platform/package.json b/foundations/core/packages/platform/package.json index 7e11043993..9f8ae9cf9d 100644 --- a/foundations/core/packages/platform/package.json +++ b/foundations/core/packages/platform/package.json @@ -38,7 +38,7 @@ "ts-jest": "^29.4.12", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "intl-messageformat": "^10.7.14" diff --git a/foundations/core/packages/postgres-base/package.json b/foundations/core/packages/postgres-base/package.json index 9a3d511817..af32c0c396 100644 --- a/foundations/core/packages/postgres-base/package.json +++ b/foundations/core/packages/postgres-base/package.json @@ -40,7 +40,7 @@ "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^18.3.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "postgres": "^3.4.9" diff --git a/foundations/core/packages/query/package.json b/foundations/core/packages/query/package.json index 4a543f03fe..eb07abfdbd 100644 --- a/foundations/core/packages/query/package.json +++ b/foundations/core/packages/query/package.json @@ -37,7 +37,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/foundations/core/packages/rank/package.json b/foundations/core/packages/rank/package.json index c1ee6f113f..3f2d306d81 100644 --- a/foundations/core/packages/rank/package.json +++ b/foundations/core/packages/rank/package.json @@ -37,7 +37,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/core/packages/retry/package.json b/foundations/core/packages/retry/package.json index 88ef6bd172..dc0516d760 100644 --- a/foundations/core/packages/retry/package.json +++ b/foundations/core/packages/retry/package.json @@ -32,7 +32,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "files": [ "lib/**/*", diff --git a/foundations/core/packages/rpc/package.json b/foundations/core/packages/rpc/package.json index ededff26f6..55834d6c51 100644 --- a/foundations/core/packages/rpc/package.json +++ b/foundations/core/packages/rpc/package.json @@ -38,7 +38,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/core/packages/storage-client/package.json b/foundations/core/packages/storage-client/package.json index 879659d62a..5ca900d3e3 100644 --- a/foundations/core/packages/storage-client/package.json +++ b/foundations/core/packages/storage-client/package.json @@ -40,7 +40,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26" diff --git a/foundations/core/packages/storage/package.json b/foundations/core/packages/storage/package.json index bea31a4aa6..b9c5939e37 100644 --- a/foundations/core/packages/storage/package.json +++ b/foundations/core/packages/storage/package.json @@ -32,7 +32,7 @@ "@types/jest": "^30.0.0", "@types/node": "^24.13.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/foundations/core/packages/text-core/package.json b/foundations/core/packages/text-core/package.json index b9b71cd480..ecc52ae9e3 100644 --- a/foundations/core/packages/text-core/package.json +++ b/foundations/core/packages/text-core/package.json @@ -39,7 +39,7 @@ "@types/markdown-it": "~13.0.0", "jest-environment-jsdom": "^30.4.1", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/core/packages/text-html/package.json b/foundations/core/packages/text-html/package.json index 5934a83587..fbc0416dd3 100644 --- a/foundations/core/packages/text-html/package.json +++ b/foundations/core/packages/text-html/package.json @@ -37,7 +37,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/text-core": "workspace:^0.7.19", diff --git a/foundations/core/packages/text-markdown/package.json b/foundations/core/packages/text-markdown/package.json index e2d60a9d84..7812f0517e 100644 --- a/foundations/core/packages/text-markdown/package.json +++ b/foundations/core/packages/text-markdown/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "@types/markdown-it": "~13.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/text-core": "workspace:^0.7.19", diff --git a/foundations/core/packages/text-ydoc/package.json b/foundations/core/packages/text-ydoc/package.json index de4820386b..ba4727431c 100644 --- a/foundations/core/packages/text-ydoc/package.json +++ b/foundations/core/packages/text-ydoc/package.json @@ -40,7 +40,7 @@ "fast-equals": "^5.2.2", "y-prosemirror": "^1.3.7", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/core/packages/text/package.json b/foundations/core/packages/text/package.json index 594d01cf6d..d791142b0a 100644 --- a/foundations/core/packages/text/package.json +++ b/foundations/core/packages/text/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "@types/markdown-it": "~13.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/core/packages/token/package.json b/foundations/core/packages/token/package.json index b01ceda316..8d95d6cc64 100644 --- a/foundations/core/packages/token/package.json +++ b/foundations/core/packages/token/package.json @@ -24,7 +24,7 @@ "_phase:validate": "compile validate" }, "devDependencies": { - "eslint-config-love": "^155.0.0", + "eslint-config-love": "^157.0.0", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", "@typescript-eslint/eslint-plugin": "^8.67.0", diff --git a/foundations/net/packages/backrpc/package.json b/foundations/net/packages/backrpc/package.json index 5c7e4e77f2..4494660856 100644 --- a/foundations/net/packages/backrpc/package.json +++ b/foundations/net/packages/backrpc/package.json @@ -30,7 +30,7 @@ "devDependencies": { "@hcengineering/platform-rig": "^0.7.21", "@typescript-eslint/eslint-plugin": "^6.11.0", - "eslint-plugin-import": "^2.26.0", + "eslint-plugin-import": "^2.32.0", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^15.4.0", diff --git a/foundations/net/packages/client/package.json b/foundations/net/packages/client/package.json index 3e33afffbd..05d8af792b 100644 --- a/foundations/net/packages/client/package.json +++ b/foundations/net/packages/client/package.json @@ -30,7 +30,7 @@ "devDependencies": { "@hcengineering/platform-rig": "^0.7.21", "@typescript-eslint/eslint-plugin": "^6.11.0", - "eslint-plugin-import": "^2.26.0", + "eslint-plugin-import": "^2.32.0", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^15.4.0", diff --git a/foundations/net/packages/core/package.json b/foundations/net/packages/core/package.json index 79a0ca531f..afcfa23ba5 100644 --- a/foundations/net/packages/core/package.json +++ b/foundations/net/packages/core/package.json @@ -30,7 +30,7 @@ "devDependencies": { "@hcengineering/platform-rig": "^0.7.21", "@typescript-eslint/eslint-plugin": "^6.11.0", - "eslint-plugin-import": "^2.26.0", + "eslint-plugin-import": "^2.32.0", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^15.4.0", diff --git a/foundations/net/packages/server/package.json b/foundations/net/packages/server/package.json index b6498023e6..3fe487e700 100644 --- a/foundations/net/packages/server/package.json +++ b/foundations/net/packages/server/package.json @@ -30,7 +30,7 @@ "devDependencies": { "@hcengineering/platform-rig": "^0.7.21", "@typescript-eslint/eslint-plugin": "^6.11.0", - "eslint-plugin-import": "^2.26.0", + "eslint-plugin-import": "^2.32.0", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^15.4.0", diff --git a/foundations/net/pods/network-pod/package.json b/foundations/net/pods/network-pod/package.json index 57bc07c418..350fe85af0 100644 --- a/foundations/net/pods/network-pod/package.json +++ b/foundations/net/pods/network-pod/package.json @@ -45,7 +45,7 @@ "devDependencies": { "@hcengineering/platform-rig": "^0.7.21", "@typescript-eslint/eslint-plugin": "^6.11.0", - "eslint-plugin-import": "^2.26.0", + "eslint-plugin-import": "^2.32.0", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^15.4.0", diff --git a/foundations/net/pods/network-tool/package.json b/foundations/net/pods/network-tool/package.json index 03e47f9ef1..375f3af6af 100644 --- a/foundations/net/pods/network-tool/package.json +++ b/foundations/net/pods/network-tool/package.json @@ -46,7 +46,7 @@ "devDependencies": { "@hcengineering/platform-rig": "^0.7.21", "@typescript-eslint/eslint-plugin": "^6.11.0", - "eslint-plugin-import": "^2.26.0", + "eslint-plugin-import": "^2.32.0", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^15.4.0", diff --git a/foundations/net/tests/package.json b/foundations/net/tests/package.json index 485a688e76..9dc5903951 100644 --- a/foundations/net/tests/package.json +++ b/foundations/net/tests/package.json @@ -30,7 +30,7 @@ "@typescript-eslint/parser": "^6.11.0", "eslint": "^8.54.0", "eslint-config-love": "^157.0.0", - "eslint-plugin-import": "^2.26.0", + "eslint-plugin-import": "^2.32.0", "eslint-plugin-n": "^15.4.0", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-secure-coding": "^5.4.4", diff --git a/foundations/server/common/scripts/package-lock.json b/foundations/server/common/scripts/package-lock.json index 18f037c2b2..834045f0db 100644 --- a/foundations/server/common/scripts/package-lock.json +++ b/foundations/server/common/scripts/package-lock.json @@ -25,7 +25,7 @@ "esbuild-plugin-copy": "~2.1.1", "eslint": "^8.54.0", "eslint-config-love": "^157.0.0", - "eslint-plugin-import": "^2.26.0", + "eslint-plugin-import": "^2.32.0", "eslint-plugin-n": "^15.4.0", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-secure-coding": "^5.4.4", diff --git a/foundations/server/common/scripts/package.json b/foundations/server/common/scripts/package.json index b55925f4a8..254b01a4c7 100644 --- a/foundations/server/common/scripts/package.json +++ b/foundations/server/common/scripts/package.json @@ -15,7 +15,7 @@ "istanbul-reports": "^3.2.0", "lcov-parse": "^1.0.0", "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", + "eslint-plugin-import": "^2.32.0", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^15.4.0", diff --git a/foundations/server/packages/client/package.json b/foundations/server/packages/client/package.json index a5a84b1e61..17cc8b990b 100644 --- a/foundations/server/packages/client/package.json +++ b/foundations/server/packages/client/package.json @@ -33,7 +33,7 @@ "@types/jest": "^30.0.0", "@types/node": "^24.13.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/foundations/server/packages/collaboration/package.json b/foundations/server/packages/collaboration/package.json index 3e31a81efb..abb7ad9214 100644 --- a/foundations/server/packages/collaboration/package.json +++ b/foundations/server/packages/collaboration/package.json @@ -31,7 +31,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/server/packages/core/package.json b/foundations/server/packages/core/package.json index ab38c2a3a6..29519d0fbc 100644 --- a/foundations/server/packages/core/package.json +++ b/foundations/server/packages/core/package.json @@ -18,7 +18,7 @@ "_phase:validate": "compile validate" }, "devDependencies": { - "eslint-config-love": "^155.0.0", + "eslint-config-love": "^157.0.0", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", "@typescript-eslint/eslint-plugin": "^8.67.0", diff --git a/foundations/server/packages/datalake/package.json b/foundations/server/packages/datalake/package.json index b1227c590a..be6864d765 100644 --- a/foundations/server/packages/datalake/package.json +++ b/foundations/server/packages/datalake/package.json @@ -32,7 +32,7 @@ "@types/jest": "^30.0.0", "ts-node": "^10.9.2", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/server/packages/elastic/package.json b/foundations/server/packages/elastic/package.json index 9ab29a5c7e..4698e91ff5 100644 --- a/foundations/server/packages/elastic/package.json +++ b/foundations/server/packages/elastic/package.json @@ -51,7 +51,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/server/packages/hulylake/package.json b/foundations/server/packages/hulylake/package.json index 5415d93ec7..d581d5c65c 100644 --- a/foundations/server/packages/hulylake/package.json +++ b/foundations/server/packages/hulylake/package.json @@ -32,7 +32,7 @@ "@types/jest": "^30.0.0", "ts-node": "^10.9.2", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/server/packages/kafka/package.json b/foundations/server/packages/kafka/package.json index 87b710c05d..f241bd1c7c 100644 --- a/foundations/server/packages/kafka/package.json +++ b/foundations/server/packages/kafka/package.json @@ -31,7 +31,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/server/packages/middleware/package.json b/foundations/server/packages/middleware/package.json index 6f519b6d41..e873087bf8 100644 --- a/foundations/server/packages/middleware/package.json +++ b/foundations/server/packages/middleware/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "@types/node": "^24.13.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/server/packages/minio/package.json b/foundations/server/packages/minio/package.json index 157f9deca2..6aa9e69c0e 100644 --- a/foundations/server/packages/minio/package.json +++ b/foundations/server/packages/minio/package.json @@ -31,7 +31,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/server/packages/mongo/package.json b/foundations/server/packages/mongo/package.json index c331869560..98de2d2c57 100644 --- a/foundations/server/packages/mongo/package.json +++ b/foundations/server/packages/mongo/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "@types/node": "^24.13.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/server/packages/postgres/package.json b/foundations/server/packages/postgres/package.json index 4b424c051d..9f7ade8fd5 100644 --- a/foundations/server/packages/postgres/package.json +++ b/foundations/server/packages/postgres/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "@types/node": "^24.13.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "postgres": "^3.4.9", diff --git a/foundations/server/packages/s3/package.json b/foundations/server/packages/s3/package.json index c8ed210aec..f5fead43b0 100644 --- a/foundations/server/packages/s3/package.json +++ b/foundations/server/packages/s3/package.json @@ -31,7 +31,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/server/packages/server-storage/package.json b/foundations/server/packages/server-storage/package.json index 240687cbd5..97ca2572b7 100644 --- a/foundations/server/packages/server-storage/package.json +++ b/foundations/server/packages/server-storage/package.json @@ -52,7 +52,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/server/packages/server/package.json b/foundations/server/packages/server/package.json index 58713a877a..a062b389d8 100644 --- a/foundations/server/packages/server/package.json +++ b/foundations/server/packages/server/package.json @@ -32,7 +32,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/account-client": "workspace:^0.7.25", diff --git a/foundations/utils/common/scripts/package.json b/foundations/utils/common/scripts/package.json index 0ae8a210e5..fc0c592065 100644 --- a/foundations/utils/common/scripts/package.json +++ b/foundations/utils/common/scripts/package.json @@ -7,7 +7,7 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", + "eslint-plugin-import": "^2.32.0", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^15.4.0", diff --git a/foundations/utils/packages/platform-rig/package.json b/foundations/utils/packages/platform-rig/package.json index 6a67130cb7..d448ea5537 100644 --- a/foundations/utils/packages/platform-rig/package.json +++ b/foundations/utils/packages/platform-rig/package.json @@ -25,7 +25,7 @@ "eslint": "^9.39.5", "@stylistic/eslint-plugin": "^5.10.0", "@typescript-eslint/parser": "^8.67.0", - "eslint-config-love": "^155.0.0", + "eslint-config-love": "^157.0.0", "prettier": "^3.6.2", "prettier-plugin-svelte": "^3.4.0", "svelte-eslint-parser": "^1.8.1", diff --git a/models/achievement/package.json b/models/achievement/package.json index cecbc46e63..5706239fae 100644 --- a/models/achievement/package.json +++ b/models/achievement/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/achievement": "workspace:^0.7.0", diff --git a/models/activity/package.json b/models/activity/package.json index 26396fe2fb..50a5b49c70 100644 --- a/models/activity/package.json +++ b/models/activity/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/ai-assistant/package.json b/models/ai-assistant/package.json index 8e53b6d6af..9bfee187d2 100644 --- a/models/ai-assistant/package.json +++ b/models/ai-assistant/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/model": "workspace:^0.7.17", diff --git a/models/ai-bot/package.json b/models/ai-bot/package.json index 3201d197cf..18d62206a8 100644 --- a/models/ai-bot/package.json +++ b/models/ai-bot/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/ai-bot": "workspace:^0.7.0", diff --git a/models/all/package.json b/models/all/package.json index 24fc32afad..2234c1a6a5 100644 --- a/models/all/package.json +++ b/models/all/package.json @@ -36,7 +36,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/model": "workspace:^0.7.17", diff --git a/models/analytics-collector/package.json b/models/analytics-collector/package.json index 74fdc379f7..0e3763fe28 100644 --- a/models/analytics-collector/package.json +++ b/models/analytics-collector/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/attachment/package.json b/models/attachment/package.json index 085c937e02..8f75279feb 100644 --- a/models/attachment/package.json +++ b/models/attachment/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/billing/package.json b/models/billing/package.json index 4f9336497d..f5ff16eb69 100644 --- a/models/billing/package.json +++ b/models/billing/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/bitrix/package.json b/models/bitrix/package.json index c3032be6d0..e0d840cc84 100644 --- a/models/bitrix/package.json +++ b/models/bitrix/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/board/package.json b/models/board/package.json index 074f6b9b03..eacd548aee 100644 --- a/models/board/package.json +++ b/models/board/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/calendar/package.json b/models/calendar/package.json index 35917656ea..d8ac544148 100644 --- a/models/calendar/package.json +++ b/models/calendar/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/card/package.json b/models/card/package.json index 3531b5bbee..fc4e3ea9b7 100644 --- a/models/card/package.json +++ b/models/card/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/chunter/package.json b/models/chunter/package.json index 34bc8eaf8b..b03af9dce5 100644 --- a/models/chunter/package.json +++ b/models/chunter/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/communication/package.json b/models/communication/package.json index 0de43359bc..563ecfffc7 100644 --- a/models/communication/package.json +++ b/models/communication/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/card": "workspace:^0.7.0", diff --git a/models/contact/package.json b/models/contact/package.json index 60aa416d11..c018d8cdff 100644 --- a/models/contact/package.json +++ b/models/contact/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/controlled-documents/package.json b/models/controlled-documents/package.json index 093fa8443b..47bf62ee23 100644 --- a/models/controlled-documents/package.json +++ b/models/controlled-documents/package.json @@ -32,7 +32,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/attachment": "workspace:^0.7.0", diff --git a/models/converter/package.json b/models/converter/package.json index 3c41117241..15c9519911 100644 --- a/models/converter/package.json +++ b/models/converter/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/core/package.json b/models/core/package.json index 8085a587da..7d7360a2dc 100644 --- a/models/core/package.json +++ b/models/core/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/desktop-downloads/package.json b/models/desktop-downloads/package.json index 9d7f7c3514..9db4afeb7a 100644 --- a/models/desktop-downloads/package.json +++ b/models/desktop-downloads/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/desktop-preferences/package.json b/models/desktop-preferences/package.json index 94950bdc16..deb103da84 100644 --- a/models/desktop-preferences/package.json +++ b/models/desktop-preferences/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/document/package.json b/models/document/package.json index 8591b90e37..097e7a5e64 100644 --- a/models/document/package.json +++ b/models/document/package.json @@ -30,7 +30,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/model-core": "workspace:^0.7.0", diff --git a/models/drive/package.json b/models/drive/package.json index 745c096317..6869050f67 100644 --- a/models/drive/package.json +++ b/models/drive/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/emoji/package.json b/models/emoji/package.json index b1d8a242db..9af7b35b3d 100644 --- a/models/emoji/package.json +++ b/models/emoji/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/export/package.json b/models/export/package.json index db1b856c22..9b8a658f11 100644 --- a/models/export/package.json +++ b/models/export/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/gmail/package.json b/models/gmail/package.json index 8a6b859105..e901342d4e 100644 --- a/models/gmail/package.json +++ b/models/gmail/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/guest/package.json b/models/guest/package.json index a9e10c9afa..c4d7181a63 100644 --- a/models/guest/package.json +++ b/models/guest/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/hr/package.json b/models/hr/package.json index 89df350646..135a24aa78 100644 --- a/models/hr/package.json +++ b/models/hr/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/contact": "workspace:^0.7.0", diff --git a/models/huly-mail/package.json b/models/huly-mail/package.json index 036c211c36..2be405689e 100644 --- a/models/huly-mail/package.json +++ b/models/huly-mail/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/model": "workspace:^0.7.17", diff --git a/models/inbox/package.json b/models/inbox/package.json index 9bc6dd767e..4120f7a5c7 100644 --- a/models/inbox/package.json +++ b/models/inbox/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/card": "workspace:^0.7.0", diff --git a/models/inventory/package.json b/models/inventory/package.json index fba3949c0b..c39c5b3261 100644 --- a/models/inventory/package.json +++ b/models/inventory/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/lead/package.json b/models/lead/package.json index 184a633fc3..1f6328f435 100644 --- a/models/lead/package.json +++ b/models/lead/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/love/package.json b/models/love/package.json index 9d08828e12..bf20e81e55 100644 --- a/models/love/package.json +++ b/models/love/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/mail/package.json b/models/mail/package.json index 59ca5909e8..b89a52936d 100644 --- a/models/mail/package.json +++ b/models/mail/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/media/package.json b/models/media/package.json index 1f9ca5eeda..73ca1731cc 100644 --- a/models/media/package.json +++ b/models/media/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/notification/package.json b/models/notification/package.json index 2cddb2320d..3bc9366b4c 100644 --- a/models/notification/package.json +++ b/models/notification/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/preference/package.json b/models/preference/package.json index 14cd5fd01a..e4d0bdaa25 100644 --- a/models/preference/package.json +++ b/models/preference/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/presence/package.json b/models/presence/package.json index c2f2da4baf..956230c3d7 100644 --- a/models/presence/package.json +++ b/models/presence/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/presentation/package.json b/models/presentation/package.json index 224951b070..255849e08b 100644 --- a/models/presentation/package.json +++ b/models/presentation/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/print/package.json b/models/print/package.json index 5369edb7f9..73aefa3488 100644 --- a/models/print/package.json +++ b/models/print/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/process/package.json b/models/process/package.json index be3e1fb74c..ec37459703 100644 --- a/models/process/package.json +++ b/models/process/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/contact": "workspace:^0.7.0", diff --git a/models/products/package.json b/models/products/package.json index 27d77362e1..44afecc89a 100644 --- a/models/products/package.json +++ b/models/products/package.json @@ -35,7 +35,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/attachment": "workspace:^0.7.0", diff --git a/models/pulse/package.json b/models/pulse/package.json index f9b4ade9f1..b68cf3db77 100644 --- a/models/pulse/package.json +++ b/models/pulse/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/questions/package.json b/models/questions/package.json index 331b396e82..a6f62c44ef 100644 --- a/models/questions/package.json +++ b/models/questions/package.json @@ -32,7 +32,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", diff --git a/models/rating/package.json b/models/rating/package.json index ccabdb6c4c..df7afdfaff 100644 --- a/models/rating/package.json +++ b/models/rating/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/recorder/package.json b/models/recorder/package.json index 8c2b341d7a..953ca022bc 100644 --- a/models/recorder/package.json +++ b/models/recorder/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/model": "workspace:^0.7.17", diff --git a/models/recruit/package.json b/models/recruit/package.json index bb3f6683e0..3765305e8a 100644 --- a/models/recruit/package.json +++ b/models/recruit/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@anticrm/skillset": "^0.6.0", diff --git a/models/request/package.json b/models/request/package.json index dc5739213b..8819d5d754 100644 --- a/models/request/package.json +++ b/models/request/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/server-activity/package.json b/models/server-activity/package.json index f36a4208d0..4a11763a5e 100644 --- a/models/server-activity/package.json +++ b/models/server-activity/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/server-ai-bot/package.json b/models/server-ai-bot/package.json index e9a94ab7a5..e9d4b03169 100644 --- a/models/server-ai-bot/package.json +++ b/models/server-ai-bot/package.json @@ -30,7 +30,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/server-attachment/package.json b/models/server-attachment/package.json index 0913655c70..e95a062765 100644 --- a/models/server-attachment/package.json +++ b/models/server-attachment/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/attachment": "workspace:^0.7.0", diff --git a/models/server-calendar/package.json b/models/server-calendar/package.json index 049166b4df..0e2c0a178a 100644 --- a/models/server-calendar/package.json +++ b/models/server-calendar/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-card/package.json b/models/server-card/package.json index 84257c6323..d8b4109e19 100644 --- a/models/server-card/package.json +++ b/models/server-card/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-chunter/package.json b/models/server-chunter/package.json index 40bb8f3cf5..5d3b8914e4 100644 --- a/models/server-chunter/package.json +++ b/models/server-chunter/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-collaboration/package.json b/models/server-collaboration/package.json index 46a767148b..0b20cc2914 100644 --- a/models/server-collaboration/package.json +++ b/models/server-collaboration/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-contact/package.json b/models/server-contact/package.json index fc03e38808..a177da2b91 100644 --- a/models/server-contact/package.json +++ b/models/server-contact/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-controlled-documents/package.json b/models/server-controlled-documents/package.json index e9ce520662..3241692176 100644 --- a/models/server-controlled-documents/package.json +++ b/models/server-controlled-documents/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/contact": "workspace:^0.7.0", diff --git a/models/server-core/package.json b/models/server-core/package.json index 1737c084f3..7468afc72a 100644 --- a/models/server-core/package.json +++ b/models/server-core/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-document/package.json b/models/server-document/package.json index 0bbbd7731a..69ede72ae9 100644 --- a/models/server-document/package.json +++ b/models/server-document/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-drive/package.json b/models/server-drive/package.json index 03d4922263..1fece8d574 100644 --- a/models/server-drive/package.json +++ b/models/server-drive/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-gmail/package.json b/models/server-gmail/package.json index 4b421a92a6..55f7053dd6 100644 --- a/models/server-gmail/package.json +++ b/models/server-gmail/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-guest/package.json b/models/server-guest/package.json index 42cd1c1abb..0bc4fbd326 100644 --- a/models/server-guest/package.json +++ b/models/server-guest/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-hr/package.json b/models/server-hr/package.json index 22208c5e16..ba45b54e6e 100644 --- a/models/server-hr/package.json +++ b/models/server-hr/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-inventory/package.json b/models/server-inventory/package.json index ec32c12ee6..5b25d25264 100644 --- a/models/server-inventory/package.json +++ b/models/server-inventory/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-lead/package.json b/models/server-lead/package.json index 4fab164eb6..11a7439e6c 100644 --- a/models/server-lead/package.json +++ b/models/server-lead/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-love/package.json b/models/server-love/package.json index 59eac92c07..2cab5bf9b6 100644 --- a/models/server-love/package.json +++ b/models/server-love/package.json @@ -30,7 +30,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/contact": "workspace:^0.7.0", diff --git a/models/server-notification/package.json b/models/server-notification/package.json index 4139b96eb8..f6977f019b 100644 --- a/models/server-notification/package.json +++ b/models/server-notification/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/server-process/package.json b/models/server-process/package.json index 2e06ed7ad5..a1913be7b3 100644 --- a/models/server-process/package.json +++ b/models/server-process/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-products/package.json b/models/server-products/package.json index 9d473070bb..3306a17064 100644 --- a/models/server-products/package.json +++ b/models/server-products/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-recruit/package.json b/models/server-recruit/package.json index 0c0e9f5cb3..40ecf7c730 100644 --- a/models/server-recruit/package.json +++ b/models/server-recruit/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-request/package.json b/models/server-request/package.json index 5a20a9e46d..1d8828fa3e 100644 --- a/models/server-request/package.json +++ b/models/server-request/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-setting/package.json b/models/server-setting/package.json index 3c9bbe6bc0..e9d0da958c 100644 --- a/models/server-setting/package.json +++ b/models/server-setting/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-tags/package.json b/models/server-tags/package.json index 25c2a56010..34c97fd6ef 100644 --- a/models/server-tags/package.json +++ b/models/server-tags/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-task/package.json b/models/server-task/package.json index fa9e1ed9b3..012be13c41 100644 --- a/models/server-task/package.json +++ b/models/server-task/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-telegram/package.json b/models/server-telegram/package.json index 2fe9a9ae55..967f8a6bca 100644 --- a/models/server-telegram/package.json +++ b/models/server-telegram/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-templates/package.json b/models/server-templates/package.json index 3393681a47..9aa49f9965 100644 --- a/models/server-templates/package.json +++ b/models/server-templates/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-time/package.json b/models/server-time/package.json index 190dc6b930..1133147c50 100644 --- a/models/server-time/package.json +++ b/models/server-time/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-tracker/package.json b/models/server-tracker/package.json index f4e8c622ef..97c0b663f9 100644 --- a/models/server-tracker/package.json +++ b/models/server-tracker/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-training/package.json b/models/server-training/package.json index b7e18cb749..7ec566e340 100644 --- a/models/server-training/package.json +++ b/models/server-training/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/server-view/package.json b/models/server-view/package.json index 9fbf9c63eb..b8c5797080 100644 --- a/models/server-view/package.json +++ b/models/server-view/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/setting/package.json b/models/setting/package.json index a57bb42a02..2a437c6d9e 100644 --- a/models/setting/package.json +++ b/models/setting/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/support/package.json b/models/support/package.json index 0eef6b07e9..aaa13326b6 100644 --- a/models/support/package.json +++ b/models/support/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/survey/package.json b/models/survey/package.json index 15d0326bab..3bea38dc93 100644 --- a/models/survey/package.json +++ b/models/survey/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/tags/package.json b/models/tags/package.json index b869d58ded..d65af6d7a7 100644 --- a/models/tags/package.json +++ b/models/tags/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/task/package.json b/models/task/package.json index 744307e4ae..a501acc195 100644 --- a/models/task/package.json +++ b/models/task/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/contact": "workspace:^0.7.0", diff --git a/models/telegram/package.json b/models/telegram/package.json index 4156172cdd..fdce40eb8d 100644 --- a/models/telegram/package.json +++ b/models/telegram/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/templates/package.json b/models/templates/package.json index 99e7b1edf6..a4a7168d8a 100644 --- a/models/templates/package.json +++ b/models/templates/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/test-management/package.json b/models/test-management/package.json index 920f5e525e..03674151ab 100644 --- a/models/test-management/package.json +++ b/models/test-management/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/attachment": "workspace:^0.7.0", diff --git a/models/text-editor/package.json b/models/text-editor/package.json index 024a16ffe3..a6fb40218d 100644 --- a/models/text-editor/package.json +++ b/models/text-editor/package.json @@ -32,7 +32,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/time/package.json b/models/time/package.json index 1303413157..29ae77758f 100644 --- a/models/time/package.json +++ b/models/time/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/models/tracker/package.json b/models/tracker/package.json index 11d0c14d05..0f90763e49 100644 --- a/models/tracker/package.json +++ b/models/tracker/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/models/training/package.json b/models/training/package.json index 2172295494..7f9b40f4d5 100644 --- a/models/training/package.json +++ b/models/training/package.json @@ -32,7 +32,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", diff --git a/models/uploader/package.json b/models/uploader/package.json index f208ac81d0..e7895b0a63 100644 --- a/models/uploader/package.json +++ b/models/uploader/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/view/package.json b/models/view/package.json index 5f86dc6937..eed4475553 100644 --- a/models/view/package.json +++ b/models/view/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/models/workbench/package.json b/models/workbench/package.json index 89177553d9..87501377dc 100644 --- a/models/workbench/package.json +++ b/models/workbench/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/packages/analytics-providers/package.json b/packages/analytics-providers/package.json index d05d039d26..f93d6d591b 100644 --- a/packages/analytics-providers/package.json +++ b/packages/analytics-providers/package.json @@ -37,7 +37,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/packages/billing-client/package.json b/packages/billing-client/package.json index b831ca5ad5..a2751af01b 100644 --- a/packages/billing-client/package.json +++ b/packages/billing-client/package.json @@ -37,7 +37,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/packages/highlight/package.json b/packages/highlight/package.json index 90aa39d68a..ec502a3683 100644 --- a/packages/highlight/package.json +++ b/packages/highlight/package.json @@ -34,7 +34,7 @@ "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "svelte": "^4.2.20", diff --git a/packages/hls/package.json b/packages/hls/package.json index 488cf9717d..519d819b91 100644 --- a/packages/hls/package.json +++ b/packages/hls/package.json @@ -34,7 +34,7 @@ "svelte-preprocess": "^5.1.4", "ts-jest": "^29.4.12", "typescript": "^5.9.3", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/packages/importer/package.json b/packages/importer/package.json index bf2a8d6cbe..5198e75709 100644 --- a/packages/importer/package.json +++ b/packages/importer/package.json @@ -19,7 +19,7 @@ }, "devDependencies": { "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0", + "eslint-config-love": "^157.0.0", "@hcengineering/platform-rig": "workspace:^0.7.21", "@typescript-eslint/eslint-plugin": "^8.67.0", "@typescript-eslint/parser": "^8.67.0", diff --git a/packages/integration-client/package.json b/packages/integration-client/package.json index dbc0eeb993..8d6d866d5a 100644 --- a/packages/integration-client/package.json +++ b/packages/integration-client/package.json @@ -23,7 +23,7 @@ }, "devDependencies": { "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0", + "eslint-config-love": "^157.0.0", "cross-env": "~7.0.3", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", diff --git a/packages/kanban/package.json b/packages/kanban/package.json index 34af4af2e6..f2cfb40f4b 100644 --- a/packages/kanban/package.json +++ b/packages/kanban/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/ui": "workspace:^0.7.0", diff --git a/packages/kvs-client/package.json b/packages/kvs-client/package.json index cfd83bb679..ff48f01369 100644 --- a/packages/kvs-client/package.json +++ b/packages/kvs-client/package.json @@ -38,7 +38,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/packages/panel/package.json b/packages/panel/package.json index b7ad12cb58..fe6d1fb606 100644 --- a/packages/panel/package.json +++ b/packages/panel/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/ui": "workspace:^0.7.0", diff --git a/packages/payment-client/package.json b/packages/payment-client/package.json index 20a7d5280a..f51b0c159b 100644 --- a/packages/payment-client/package.json +++ b/packages/payment-client/package.json @@ -37,7 +37,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/packages/presentation/package.json b/packages/presentation/package.json index 8aa58902d0..d1ddb5a028 100644 --- a/packages/presentation/package.json +++ b/packages/presentation/package.json @@ -16,7 +16,7 @@ "_phase:validate": "compile validate" }, "devDependencies": { - "eslint-config-love": "^155.0.0", + "eslint-config-love": "^157.0.0", "svelte-loader": "^3.2.0", "sass": "^1.80.0", "svelte-preprocess": "^5.1.4", diff --git a/packages/rekoni/package.json b/packages/rekoni/package.json index d9cacd217a..9ea353e5ef 100644 --- a/packages/rekoni/package.json +++ b/packages/rekoni/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/packages/theme/package.json b/packages/theme/package.json index 36ff89ca62..55804acd95 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -32,7 +32,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "svelte": "^4.2.20", diff --git a/packages/ui/package.json b/packages/ui/package.json index 85809dce1e..fdf7ae8162 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -36,7 +36,7 @@ "svelte-preprocess": "^5.1.4", "ts-jest": "^29.4.12", "typescript": "^5.9.3", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/plugins/achievement-assets/package.json b/plugins/achievement-assets/package.json index 540fb636a9..767645c2b6 100644 --- a/plugins/achievement-assets/package.json +++ b/plugins/achievement-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/achievement-resources/package.json b/plugins/achievement-resources/package.json index a88932a1a1..4dace3ff29 100644 --- a/plugins/achievement-resources/package.json +++ b/plugins/achievement-resources/package.json @@ -38,7 +38,7 @@ "sass": "^1.80.0", "eslint-plugin-svelte": "^3.23.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/achievement/package.json b/plugins/achievement/package.json index ac11c7ba40..b3b65245f4 100644 --- a/plugins/achievement/package.json +++ b/plugins/achievement/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/activity-assets/package.json b/plugins/activity-assets/package.json index e9ca709b92..a1ae6ca4a7 100644 --- a/plugins/activity-assets/package.json +++ b/plugins/activity-assets/package.json @@ -38,7 +38,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/activity-resources/package.json b/plugins/activity-resources/package.json index ac41e41d61..a34a8481ed 100644 --- a/plugins/activity-resources/package.json +++ b/plugins/activity-resources/package.json @@ -33,7 +33,7 @@ "svelte-preprocess": "^5.1.4", "ts-jest": "^29.4.12", "typescript": "^5.9.3", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/plugins/activity/package.json b/plugins/activity/package.json index 60129c316a..9ebcab6c26 100644 --- a/plugins/activity/package.json +++ b/plugins/activity/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/contact": "workspace:^0.7.0", diff --git a/plugins/ai-assistant-assets/package.json b/plugins/ai-assistant-assets/package.json index 2f68844231..8baf0ac3f0 100644 --- a/plugins/ai-assistant-assets/package.json +++ b/plugins/ai-assistant-assets/package.json @@ -38,7 +38,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/ai-assistant-resources/package.json b/plugins/ai-assistant-resources/package.json index adaad12126..ff2bf64121 100644 --- a/plugins/ai-assistant-resources/package.json +++ b/plugins/ai-assistant-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/ai-assistant/package.json b/plugins/ai-assistant/package.json index cf54501150..d81158f81f 100644 --- a/plugins/ai-assistant/package.json +++ b/plugins/ai-assistant/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/ai-bot-resources/package.json b/plugins/ai-bot-resources/package.json index 1430ba8bea..23bf269a02 100644 --- a/plugins/ai-bot-resources/package.json +++ b/plugins/ai-bot-resources/package.json @@ -34,7 +34,7 @@ "svelte-preprocess": "^5.1.4", "ts-jest": "^29.4.12", "typescript": "^5.9.3", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/ai-bot": "workspace:^0.7.0", diff --git a/plugins/ai-bot/package.json b/plugins/ai-bot/package.json index 9ebd1de594..44128b92e3 100644 --- a/plugins/ai-bot/package.json +++ b/plugins/ai-bot/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/chunter": "workspace:^0.7.0", diff --git a/plugins/analytics-collector-assets/package.json b/plugins/analytics-collector-assets/package.json index 5cd327f994..f8c224cea5 100644 --- a/plugins/analytics-collector-assets/package.json +++ b/plugins/analytics-collector-assets/package.json @@ -39,7 +39,7 @@ "prettier-plugin-svelte": "^3.4.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/analytics-collector-resources/package.json b/plugins/analytics-collector-resources/package.json index 05168e7fb2..bc479975e2 100644 --- a/plugins/analytics-collector-resources/package.json +++ b/plugins/analytics-collector-resources/package.json @@ -34,7 +34,7 @@ "svelte-preprocess": "^5.1.4", "ts-jest": "^29.4.12", "typescript": "^5.9.3", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/analytics-collector": "workspace:^0.7.0", diff --git a/plugins/analytics-collector/package.json b/plugins/analytics-collector/package.json index 6d18b029fb..1a74ba0bea 100644 --- a/plugins/analytics-collector/package.json +++ b/plugins/analytics-collector/package.json @@ -35,7 +35,7 @@ "@types/jest": "^30.0.0", "prettier-plugin-svelte": "^3.4.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/attachment-assets/package.json b/plugins/attachment-assets/package.json index 270236df64..52923a8890 100644 --- a/plugins/attachment-assets/package.json +++ b/plugins/attachment-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/attachment-resources/package.json b/plugins/attachment-resources/package.json index 5f3177c3e1..6dca7c0786 100644 --- a/plugins/attachment-resources/package.json +++ b/plugins/attachment-resources/package.json @@ -34,7 +34,7 @@ "svelte-preprocess": "^5.1.4", "ts-jest": "^29.4.12", "typescript": "^5.9.3", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/plugins/attachment/package.json b/plugins/attachment/package.json index a26d9f4dc4..2189b517fa 100644 --- a/plugins/attachment/package.json +++ b/plugins/attachment/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/billing-assets/package.json b/plugins/billing-assets/package.json index 7306666bb9..78697ae528 100644 --- a/plugins/billing-assets/package.json +++ b/plugins/billing-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/billing-resources/package.json b/plugins/billing-resources/package.json index f867186d80..409fbe747b 100644 --- a/plugins/billing-resources/package.json +++ b/plugins/billing-resources/package.json @@ -37,7 +37,7 @@ "svelte-preprocess": "^5.1.4", "ts-jest": "^29.4.12", "typescript": "^5.9.3", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/billing/package.json b/plugins/billing/package.json index c2a57f2f99..bc3f948121 100644 --- a/plugins/billing/package.json +++ b/plugins/billing/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/bitrix-assets/package.json b/plugins/bitrix-assets/package.json index 7d3de5f837..5695c2d903 100644 --- a/plugins/bitrix-assets/package.json +++ b/plugins/bitrix-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/bitrix-resources/package.json b/plugins/bitrix-resources/package.json index f2362acc00..f39ae6579e 100644 --- a/plugins/bitrix-resources/package.json +++ b/plugins/bitrix-resources/package.json @@ -33,7 +33,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/bitrix/package.json b/plugins/bitrix/package.json index ae9d59f98a..fbbd49c9d0 100644 --- a/plugins/bitrix/package.json +++ b/plugins/bitrix/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/attachment": "workspace:^0.7.0", diff --git a/plugins/board-assets/package.json b/plugins/board-assets/package.json index 1f2f85ebd1..795dc97d3b 100644 --- a/plugins/board-assets/package.json +++ b/plugins/board-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/board-resources/package.json b/plugins/board-resources/package.json index 857a26bc8b..0bc79699da 100644 --- a/plugins/board-resources/package.json +++ b/plugins/board-resources/package.json @@ -32,7 +32,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/plugins/board/package.json b/plugins/board/package.json index 11dcdbbc2a..d77ea7ca96 100644 --- a/plugins/board/package.json +++ b/plugins/board/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/contact": "workspace:^0.7.0", diff --git a/plugins/calendar-assets/package.json b/plugins/calendar-assets/package.json index a228fae275..2ef960e5da 100644 --- a/plugins/calendar-assets/package.json +++ b/plugins/calendar-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/calendar-resources/package.json b/plugins/calendar-resources/package.json index 75fda4834f..0698ddbc2b 100644 --- a/plugins/calendar-resources/package.json +++ b/plugins/calendar-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/plugins/calendar/package.json b/plugins/calendar/package.json index fad4ecce36..9ee7bf26e7 100644 --- a/plugins/calendar/package.json +++ b/plugins/calendar/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/card-assets/package.json b/plugins/card-assets/package.json index 46bc687ace..83c937db9d 100644 --- a/plugins/card-assets/package.json +++ b/plugins/card-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/card-resources/package.json b/plugins/card-resources/package.json index 0eb0764eeb..7f11d97810 100644 --- a/plugins/card-resources/package.json +++ b/plugins/card-resources/package.json @@ -37,7 +37,7 @@ "svelte-preprocess": "^5.1.4", "ts-jest": "^29.4.12", "typescript": "^5.9.3", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/presence": "workspace:^0.7.0", diff --git a/plugins/card/package.json b/plugins/card/package.json index 6d70d65dd5..178931e462 100644 --- a/plugins/card/package.json +++ b/plugins/card/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/chat-assets/package.json b/plugins/chat-assets/package.json index 305c262fef..c5411a2598 100644 --- a/plugins/chat-assets/package.json +++ b/plugins/chat-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/chat/package.json b/plugins/chat/package.json index 8223db1020..406b4cc3e6 100644 --- a/plugins/chat/package.json +++ b/plugins/chat/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/chunter-assets/package.json b/plugins/chunter-assets/package.json index e5cddf18a5..df48a6a0a0 100644 --- a/plugins/chunter-assets/package.json +++ b/plugins/chunter-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/chunter-resources/package.json b/plugins/chunter-resources/package.json index bf739e1213..a80f10ab7a 100644 --- a/plugins/chunter-resources/package.json +++ b/plugins/chunter-resources/package.json @@ -35,7 +35,7 @@ "svelte-preprocess": "^5.1.4", "ts-jest": "^29.4.12", "typescript": "^5.9.3", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/plugins/chunter/package.json b/plugins/chunter/package.json index db400cefb2..3eb33804c1 100644 --- a/plugins/chunter/package.json +++ b/plugins/chunter/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/plugins/client-resources/package.json b/plugins/client-resources/package.json index dc048492f7..fadc253f17 100644 --- a/plugins/client-resources/package.json +++ b/plugins/client-resources/package.json @@ -24,7 +24,7 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", + "eslint-plugin-import": "^2.32.0", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^15.4.0", diff --git a/plugins/client/package.json b/plugins/client/package.json index 9d4334043d..4bdec071e2 100644 --- a/plugins/client/package.json +++ b/plugins/client/package.json @@ -24,7 +24,7 @@ "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", + "eslint-plugin-import": "^2.32.0", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-secure-coding": "^5.4.4", "eslint-plugin-n": "^15.4.0", diff --git a/plugins/communication-resources/package.json b/plugins/communication-resources/package.json index e17b8d8899..635a08cc53 100644 --- a/plugins/communication-resources/package.json +++ b/plugins/communication-resources/package.json @@ -38,7 +38,7 @@ "sass": "^1.80.0", "eslint-plugin-svelte": "^3.23.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/plugins/communication/package.json b/plugins/communication/package.json index a78e2672c3..30573f4456 100644 --- a/plugins/communication/package.json +++ b/plugins/communication/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/contact-assets/package.json b/plugins/contact-assets/package.json index 7165bb199a..ddaedb965a 100644 --- a/plugins/contact-assets/package.json +++ b/plugins/contact-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/contact-resources/package.json b/plugins/contact-resources/package.json index 50ffea0178..c41ef2c81e 100644 --- a/plugins/contact-resources/package.json +++ b/plugins/contact-resources/package.json @@ -35,7 +35,7 @@ "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", "@types/crypto-js": "^4.2.2", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/plugins/contact/package.json b/plugins/contact/package.json index be415d1787..1f895b7d40 100644 --- a/plugins/contact/package.json +++ b/plugins/contact/package.json @@ -42,7 +42,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/controlled-documents-assets/package.json b/plugins/controlled-documents-assets/package.json index e23718087c..ae4b511114 100644 --- a/plugins/controlled-documents-assets/package.json +++ b/plugins/controlled-documents-assets/package.json @@ -37,7 +37,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/controlled-documents-resources/package.json b/plugins/controlled-documents-resources/package.json index d73ce93a5f..abf2d4cbbe 100644 --- a/plugins/controlled-documents-resources/package.json +++ b/plugins/controlled-documents-resources/package.json @@ -33,7 +33,7 @@ "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/controlled-documents/package.json b/plugins/controlled-documents/package.json index f83a9190df..ed6cb622ba 100644 --- a/plugins/controlled-documents/package.json +++ b/plugins/controlled-documents/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/converter-resources/package.json b/plugins/converter-resources/package.json index 3d207830b6..e75ff090cf 100644 --- a/plugins/converter-resources/package.json +++ b/plugins/converter-resources/package.json @@ -37,7 +37,7 @@ "sass": "^1.80.0", "eslint-plugin-svelte": "^3.23.0", "prettier-plugin-svelte": "^3.4.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/converter/package.json b/plugins/converter/package.json index 0727a59e34..e96567450f 100644 --- a/plugins/converter/package.json +++ b/plugins/converter/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/desktop-downloads-assets/package.json b/plugins/desktop-downloads-assets/package.json index c368994b64..d4983a542d 100644 --- a/plugins/desktop-downloads-assets/package.json +++ b/plugins/desktop-downloads-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/desktop-downloads-resources/package.json b/plugins/desktop-downloads-resources/package.json index ebabb9dd99..843851e19a 100644 --- a/plugins/desktop-downloads-resources/package.json +++ b/plugins/desktop-downloads-resources/package.json @@ -35,7 +35,7 @@ "svelte-preprocess": "^5.1.4", "ts-jest": "^29.4.12", "typescript": "^5.9.3", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/desktop-downloads/package.json b/plugins/desktop-downloads/package.json index 46c1a28b5b..2a44677122 100644 --- a/plugins/desktop-downloads/package.json +++ b/plugins/desktop-downloads/package.json @@ -33,7 +33,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/ui": "workspace:^0.7.0", diff --git a/plugins/desktop-preferences-assets/package.json b/plugins/desktop-preferences-assets/package.json index a530c0620f..01fd7aa97f 100644 --- a/plugins/desktop-preferences-assets/package.json +++ b/plugins/desktop-preferences-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/desktop-preferences-resources/package.json b/plugins/desktop-preferences-resources/package.json index c0e1cefca6..d198c848e8 100644 --- a/plugins/desktop-preferences-resources/package.json +++ b/plugins/desktop-preferences-resources/package.json @@ -34,7 +34,7 @@ "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "svelte": "^4.2.20", diff --git a/plugins/desktop-preferences/package.json b/plugins/desktop-preferences/package.json index a464474239..9342dbf63e 100644 --- a/plugins/desktop-preferences/package.json +++ b/plugins/desktop-preferences/package.json @@ -33,7 +33,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/ui": "workspace:^0.7.0", diff --git a/plugins/devmodel-resources/package.json b/plugins/devmodel-resources/package.json index 41f74d4c8e..db577c921a 100644 --- a/plugins/devmodel-resources/package.json +++ b/plugins/devmodel-resources/package.json @@ -33,7 +33,7 @@ "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", "typescript": "^5.9.3", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/devmodel/package.json b/plugins/devmodel/package.json index fe9f8eed2d..dfdd4f839a 100644 --- a/plugins/devmodel/package.json +++ b/plugins/devmodel/package.json @@ -34,7 +34,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/diffview-assets/package.json b/plugins/diffview-assets/package.json index 2cec3ea16b..68ea0101e1 100644 --- a/plugins/diffview-assets/package.json +++ b/plugins/diffview-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/diffview-resources/package.json b/plugins/diffview-resources/package.json index 21931d9501..15577741e5 100644 --- a/plugins/diffview-resources/package.json +++ b/plugins/diffview-resources/package.json @@ -34,7 +34,7 @@ "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "svelte": "^4.2.20", diff --git a/plugins/diffview/package.json b/plugins/diffview/package.json index 11f4148675..3230965df4 100644 --- a/plugins/diffview/package.json +++ b/plugins/diffview/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/document-assets/package.json b/plugins/document-assets/package.json index 531f8181d1..c1f050d9ee 100644 --- a/plugins/document-assets/package.json +++ b/plugins/document-assets/package.json @@ -37,7 +37,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/document-resources/package.json b/plugins/document-resources/package.json index 9a37de0238..83e92c9d93 100644 --- a/plugins/document-resources/package.json +++ b/plugins/document-resources/package.json @@ -33,7 +33,7 @@ "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/plugins/document/package.json b/plugins/document/package.json index 41f4dba439..427a591fdc 100644 --- a/plugins/document/package.json +++ b/plugins/document/package.json @@ -33,7 +33,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/drive-assets/package.json b/plugins/drive-assets/package.json index cbe97ffb1c..36109117ff 100644 --- a/plugins/drive-assets/package.json +++ b/plugins/drive-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/drive-resources/package.json b/plugins/drive-resources/package.json index e0f58482d4..78cd2e2563 100644 --- a/plugins/drive-resources/package.json +++ b/plugins/drive-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/drive/package.json b/plugins/drive/package.json index c559e067eb..00ca6fa414 100644 --- a/plugins/drive/package.json +++ b/plugins/drive/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/emoji-assets/package.json b/plugins/emoji-assets/package.json index 6a450954e8..2fc388cda4 100644 --- a/plugins/emoji-assets/package.json +++ b/plugins/emoji-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/emoji-resources/package.json b/plugins/emoji-resources/package.json index ae842fc640..72dd7c0767 100644 --- a/plugins/emoji-resources/package.json +++ b/plugins/emoji-resources/package.json @@ -35,7 +35,7 @@ "svelte-preprocess": "^5.1.4", "ts-jest": "^29.4.12", "typescript": "^5.9.3", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/emoji/package.json b/plugins/emoji/package.json index 7168dcb1b9..ad0330a045 100644 --- a/plugins/emoji/package.json +++ b/plugins/emoji/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/export-assets/package.json b/plugins/export-assets/package.json index a15996baeb..5e5d90ee19 100644 --- a/plugins/export-assets/package.json +++ b/plugins/export-assets/package.json @@ -39,7 +39,7 @@ "prettier-plugin-svelte": "^3.4.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/export-resources/package.json b/plugins/export-resources/package.json index f7fd01b288..aa9b9186f0 100644 --- a/plugins/export-resources/package.json +++ b/plugins/export-resources/package.json @@ -33,7 +33,7 @@ "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "svelte": "^4.2.20", diff --git a/plugins/export/package.json b/plugins/export/package.json index 4a37c2251a..39e8e66b45 100644 --- a/plugins/export/package.json +++ b/plugins/export/package.json @@ -35,7 +35,7 @@ "@types/jest": "^30.0.0", "prettier-plugin-svelte": "^3.4.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/global-profile-assets/package.json b/plugins/global-profile-assets/package.json index 90dfdbff28..9a23d88234 100644 --- a/plugins/global-profile-assets/package.json +++ b/plugins/global-profile-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/global-profile-resources/package.json b/plugins/global-profile-resources/package.json index bfa791dd13..e50c42696d 100644 --- a/plugins/global-profile-resources/package.json +++ b/plugins/global-profile-resources/package.json @@ -33,7 +33,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "svelte": "^4.2.20", diff --git a/plugins/global-profile/package.json b/plugins/global-profile/package.json index 49f24372a6..d2f0ace11f 100644 --- a/plugins/global-profile/package.json +++ b/plugins/global-profile/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/gmail-assets/package.json b/plugins/gmail-assets/package.json index 9df841f6d1..67400aec17 100644 --- a/plugins/gmail-assets/package.json +++ b/plugins/gmail-assets/package.json @@ -38,7 +38,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/gmail-resources/package.json b/plugins/gmail-resources/package.json index 4c2c9ce33a..21355d4e91 100644 --- a/plugins/gmail-resources/package.json +++ b/plugins/gmail-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/gmail/package.json b/plugins/gmail/package.json index 5869a6cf03..57a898ace3 100644 --- a/plugins/gmail/package.json +++ b/plugins/gmail/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/guest-assets/package.json b/plugins/guest-assets/package.json index 1ea26b247f..7af1037d2f 100644 --- a/plugins/guest-assets/package.json +++ b/plugins/guest-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/guest-resources/package.json b/plugins/guest-resources/package.json index 64691ff832..8d6977e993 100644 --- a/plugins/guest-resources/package.json +++ b/plugins/guest-resources/package.json @@ -33,7 +33,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "svelte": "^4.2.20", diff --git a/plugins/guest/package.json b/plugins/guest/package.json index 4cdb7fe5fe..b99318c9ca 100644 --- a/plugins/guest/package.json +++ b/plugins/guest/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/hr-assets/package.json b/plugins/hr-assets/package.json index a060b7d3d2..6ef6ec991c 100644 --- a/plugins/hr-assets/package.json +++ b/plugins/hr-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/hr-resources/package.json b/plugins/hr-resources/package.json index abfe5adcb4..0f427ac2a9 100644 --- a/plugins/hr-resources/package.json +++ b/plugins/hr-resources/package.json @@ -33,7 +33,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/plugins/hr/package.json b/plugins/hr/package.json index a3d9ea8368..7c7d71a122 100644 --- a/plugins/hr/package.json +++ b/plugins/hr/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/contact": "workspace:^0.7.0", diff --git a/plugins/huly-mail-assets/package.json b/plugins/huly-mail-assets/package.json index 097dd3b6c0..5886e45ea2 100644 --- a/plugins/huly-mail-assets/package.json +++ b/plugins/huly-mail-assets/package.json @@ -38,7 +38,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/huly-mail-resources/package.json b/plugins/huly-mail-resources/package.json index c4280e24fd..2c1add7e08 100644 --- a/plugins/huly-mail-resources/package.json +++ b/plugins/huly-mail-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/huly-mail/package.json b/plugins/huly-mail/package.json index 12bf4c0065..ef5cf443a0 100644 --- a/plugins/huly-mail/package.json +++ b/plugins/huly-mail/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/image-cropper-resources/package.json b/plugins/image-cropper-resources/package.json index 900bbb4c51..b443d8542e 100644 --- a/plugins/image-cropper-resources/package.json +++ b/plugins/image-cropper-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "svelte": "^4.2.20", diff --git a/plugins/image-cropper/package.json b/plugins/image-cropper/package.json index 7bc23f5314..adf41f1e44 100644 --- a/plugins/image-cropper/package.json +++ b/plugins/image-cropper/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/inventory-assets/package.json b/plugins/inventory-assets/package.json index a90305254f..5d9e8fe7a5 100644 --- a/plugins/inventory-assets/package.json +++ b/plugins/inventory-assets/package.json @@ -38,7 +38,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/inventory-resources/package.json b/plugins/inventory-resources/package.json index 2f66312d54..4e316affd8 100644 --- a/plugins/inventory-resources/package.json +++ b/plugins/inventory-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/inventory/package.json b/plugins/inventory/package.json index 8e61eb5460..59bc648bdc 100644 --- a/plugins/inventory/package.json +++ b/plugins/inventory/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/lead-assets/package.json b/plugins/lead-assets/package.json index 41baf09ea4..8f10f78d53 100644 --- a/plugins/lead-assets/package.json +++ b/plugins/lead-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/lead-resources/package.json b/plugins/lead-resources/package.json index 4764620659..fc4d7bef6c 100644 --- a/plugins/lead-resources/package.json +++ b/plugins/lead-resources/package.json @@ -33,7 +33,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/plugins/lead/package.json b/plugins/lead/package.json index 757280ef0d..74892478d2 100644 --- a/plugins/lead/package.json +++ b/plugins/lead/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/contact": "workspace:^0.7.0", diff --git a/plugins/login-assets/package.json b/plugins/login-assets/package.json index e47c3f598c..81fad27b47 100644 --- a/plugins/login-assets/package.json +++ b/plugins/login-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/login-resources/package.json b/plugins/login-resources/package.json index 8cadc062d0..d851891e1d 100644 --- a/plugins/login-resources/package.json +++ b/plugins/login-resources/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/login/package.json b/plugins/login/package.json index 51252a0bae..38773130bf 100644 --- a/plugins/login/package.json +++ b/plugins/login/package.json @@ -35,7 +35,7 @@ "@types/jest": "^30.0.0", "@hcengineering/account-client": "workspace:^0.7.25", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/love-assets/package.json b/plugins/love-assets/package.json index 479d5e0f1e..6132e3fd0c 100644 --- a/plugins/love-assets/package.json +++ b/plugins/love-assets/package.json @@ -39,7 +39,7 @@ "prettier-plugin-svelte": "^3.4.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/love-resources/package.json b/plugins/love-resources/package.json index 5ec44a4452..8a28822d1d 100644 --- a/plugins/love-resources/package.json +++ b/plugins/love-resources/package.json @@ -33,7 +33,7 @@ "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/plugins/love/package.json b/plugins/love/package.json index c5e45b6705..c08799c3eb 100644 --- a/plugins/love/package.json +++ b/plugins/love/package.json @@ -35,7 +35,7 @@ "@types/jest": "^30.0.0", "prettier-plugin-svelte": "^3.4.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/mail-assets/package.json b/plugins/mail-assets/package.json index ed2c5f7cdf..4d62e0340b 100644 --- a/plugins/mail-assets/package.json +++ b/plugins/mail-assets/package.json @@ -38,7 +38,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/mail/package.json b/plugins/mail/package.json index aa19bc4852..17562cedf9 100644 --- a/plugins/mail/package.json +++ b/plugins/mail/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/media-assets/package.json b/plugins/media-assets/package.json index 293a7de5b5..66ce2b9396 100644 --- a/plugins/media-assets/package.json +++ b/plugins/media-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/media-resources/package.json b/plugins/media-resources/package.json index 0d83afae48..0fb3cfe122 100644 --- a/plugins/media-resources/package.json +++ b/plugins/media-resources/package.json @@ -37,7 +37,7 @@ "typescript": "^5.9.3", "@types/events": "^3.0.3", "typed-emitter": "^2.1.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/media/package.json b/plugins/media/package.json index a2f4ca8c12..6b2af293f0 100644 --- a/plugins/media/package.json +++ b/plugins/media/package.json @@ -36,7 +36,7 @@ "@types/events": "^3.0.3", "typed-emitter": "^2.1.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/notification-assets/package.json b/plugins/notification-assets/package.json index ac0458162c..5e3ef80ecf 100644 --- a/plugins/notification-assets/package.json +++ b/plugins/notification-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/notification-resources/package.json b/plugins/notification-resources/package.json index 6ec92dbf73..92d8749156 100644 --- a/plugins/notification-resources/package.json +++ b/plugins/notification-resources/package.json @@ -36,7 +36,7 @@ "svelte-preprocess": "^5.1.4", "ts-jest": "^29.4.12", "typescript": "^5.9.3", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/plugins/notification/package.json b/plugins/notification/package.json index 5579429d1b..4d22a6282a 100644 --- a/plugins/notification/package.json +++ b/plugins/notification/package.json @@ -36,7 +36,7 @@ "ts-jest": "^29.4.12", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/plugins/onboard-assets/package.json b/plugins/onboard-assets/package.json index 420fe91b39..7f39a20ec4 100644 --- a/plugins/onboard-assets/package.json +++ b/plugins/onboard-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/onboard-resources/package.json b/plugins/onboard-resources/package.json index a988a2afb4..504a37e838 100644 --- a/plugins/onboard-resources/package.json +++ b/plugins/onboard-resources/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/onboard/package.json b/plugins/onboard/package.json index 24d8a36a35..9728e6a4b6 100644 --- a/plugins/onboard/package.json +++ b/plugins/onboard/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/openai/package.json b/plugins/openai/package.json index 74b23799af..fa19027cae 100644 --- a/plugins/openai/package.json +++ b/plugins/openai/package.json @@ -36,7 +36,7 @@ "prettier-plugin-svelte": "^3.4.0", "@types/node": "^24.13.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/preference-assets/package.json b/plugins/preference-assets/package.json index a81f5cdd84..aa90cc51bc 100644 --- a/plugins/preference-assets/package.json +++ b/plugins/preference-assets/package.json @@ -38,7 +38,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/preference/package.json b/plugins/preference/package.json index 8da50dab49..9ce7fabde0 100644 --- a/plugins/preference/package.json +++ b/plugins/preference/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/presence-resources/package.json b/plugins/presence-resources/package.json index df0c37774f..e2c98bf954 100644 --- a/plugins/presence-resources/package.json +++ b/plugins/presence-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/presence/package.json b/plugins/presence/package.json index b0f58cb6a1..6a7e3e6b76 100644 --- a/plugins/presence/package.json +++ b/plugins/presence/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/print-assets/package.json b/plugins/print-assets/package.json index a11d3c04c3..c5e69b4b71 100644 --- a/plugins/print-assets/package.json +++ b/plugins/print-assets/package.json @@ -39,7 +39,7 @@ "prettier-plugin-svelte": "^3.4.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/print-resources/package.json b/plugins/print-resources/package.json index cabe7a461c..131fd8ad80 100644 --- a/plugins/print-resources/package.json +++ b/plugins/print-resources/package.json @@ -35,7 +35,7 @@ "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "svelte": "^4.2.20", diff --git a/plugins/print/package.json b/plugins/print/package.json index 4544fd38d9..ec8ae1c39f 100644 --- a/plugins/print/package.json +++ b/plugins/print/package.json @@ -35,7 +35,7 @@ "@types/jest": "^30.0.0", "prettier-plugin-svelte": "^3.4.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/process-assets/package.json b/plugins/process-assets/package.json index 849620ec70..c6c7d7ca0f 100644 --- a/plugins/process-assets/package.json +++ b/plugins/process-assets/package.json @@ -39,7 +39,7 @@ "prettier-plugin-svelte": "^3.4.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/process-resources/package.json b/plugins/process-resources/package.json index b4fbbce0e4..a5c9f2e0c6 100644 --- a/plugins/process-resources/package.json +++ b/plugins/process-resources/package.json @@ -37,7 +37,7 @@ "svelte-preprocess": "^5.1.4", "ts-jest": "^29.4.12", "typescript": "^5.9.3", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/plugins/process/package.json b/plugins/process/package.json index 081c84e00e..a54f485868 100644 --- a/plugins/process/package.json +++ b/plugins/process/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/products-assets/package.json b/plugins/products-assets/package.json index 101f8d0d31..e716539d4f 100644 --- a/plugins/products-assets/package.json +++ b/plugins/products-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/products-resources/package.json b/plugins/products-resources/package.json index b1aab7bf52..c5a97153ae 100644 --- a/plugins/products-resources/package.json +++ b/plugins/products-resources/package.json @@ -32,7 +32,7 @@ "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/products/package.json b/plugins/products/package.json index e94e7f943b..e7072099f4 100644 --- a/plugins/products/package.json +++ b/plugins/products/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/attachment": "workspace:^0.7.0", diff --git a/plugins/pulse/package.json b/plugins/pulse/package.json index 42f246b518..875a356efa 100644 --- a/plugins/pulse/package.json +++ b/plugins/pulse/package.json @@ -22,7 +22,7 @@ }, "devDependencies": { "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0", + "eslint-config-love": "^157.0.0", "@hcengineering/platform-rig": "workspace:^0.7.21", "@typescript-eslint/eslint-plugin": "^8.67.0", "eslint-plugin-promise": "^7.3.0", diff --git a/plugins/questions-assets/package.json b/plugins/questions-assets/package.json index 784412145f..1e1f9635c8 100644 --- a/plugins/questions-assets/package.json +++ b/plugins/questions-assets/package.json @@ -37,7 +37,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/questions": "workspace:^0.7.0", diff --git a/plugins/questions-resources/package.json b/plugins/questions-resources/package.json index f0ed18a9cf..91cb4ed6b2 100644 --- a/plugins/questions-resources/package.json +++ b/plugins/questions-resources/package.json @@ -31,7 +31,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "typescript": "^5.9.3", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/questions": "workspace:^0.7.0", diff --git a/plugins/questions/package.json b/plugins/questions/package.json index 09b208d29c..24ee7e3b33 100644 --- a/plugins/questions/package.json +++ b/plugins/questions/package.json @@ -33,7 +33,7 @@ "@hcengineering/platform-rig": "workspace:^0.7.21", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/contact": "workspace:^0.7.0", diff --git a/plugins/rating-assets/package.json b/plugins/rating-assets/package.json index 5012d68c09..2d14bba677 100644 --- a/plugins/rating-assets/package.json +++ b/plugins/rating-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/rating-resources/package.json b/plugins/rating-resources/package.json index b91b459225..ad5b8488ef 100644 --- a/plugins/rating-resources/package.json +++ b/plugins/rating-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/plugins/rating/package.json b/plugins/rating/package.json index 884eadd0fc..49c0f8c9ae 100644 --- a/plugins/rating/package.json +++ b/plugins/rating/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/recorder-assets/package.json b/plugins/recorder-assets/package.json index cd376dbd68..7f81f10ddd 100644 --- a/plugins/recorder-assets/package.json +++ b/plugins/recorder-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/recorder-resources/package.json b/plugins/recorder-resources/package.json index 7378c84a17..0fd0e43199 100644 --- a/plugins/recorder-resources/package.json +++ b/plugins/recorder-resources/package.json @@ -35,7 +35,7 @@ "svelte-preprocess": "^5.1.4", "ts-jest": "^29.4.12", "typescript": "^5.9.3", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/recorder/package.json b/plugins/recorder/package.json index cc85ea5cda..81b97e3dd5 100644 --- a/plugins/recorder/package.json +++ b/plugins/recorder/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/recruit-assets/package.json b/plugins/recruit-assets/package.json index 9a226eca2b..6e1d3c6c30 100644 --- a/plugins/recruit-assets/package.json +++ b/plugins/recruit-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/recruit-resources/package.json b/plugins/recruit-resources/package.json index 1e4928b024..088c55e8f8 100644 --- a/plugins/recruit-resources/package.json +++ b/plugins/recruit-resources/package.json @@ -32,7 +32,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/plugins/recruit/package.json b/plugins/recruit/package.json index 9031bafe90..71eaf653fd 100644 --- a/plugins/recruit/package.json +++ b/plugins/recruit/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/request-assets/package.json b/plugins/request-assets/package.json index 6881e6cbe9..e893d15bff 100644 --- a/plugins/request-assets/package.json +++ b/plugins/request-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/request-resources/package.json b/plugins/request-resources/package.json index b80c60790f..d33e7e0014 100644 --- a/plugins/request-resources/package.json +++ b/plugins/request-resources/package.json @@ -32,7 +32,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/request/package.json b/plugins/request/package.json index b3f6a9ccf9..7de692765f 100644 --- a/plugins/request/package.json +++ b/plugins/request/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/chunter": "workspace:^0.7.0", diff --git a/plugins/setting-assets/package.json b/plugins/setting-assets/package.json index 6b3ddf608e..c476ac545b 100644 --- a/plugins/setting-assets/package.json +++ b/plugins/setting-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/setting-resources/package.json b/plugins/setting-resources/package.json index 5ee553cf46..7d2c4f77e6 100644 --- a/plugins/setting-resources/package.json +++ b/plugins/setting-resources/package.json @@ -37,7 +37,7 @@ "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", "@types/qrcode": "^1.5.5", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/setting/package.json b/plugins/setting/package.json index 8fa1df95b7..a03952e99e 100644 --- a/plugins/setting/package.json +++ b/plugins/setting/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/sign/package.json b/plugins/sign/package.json index 11dc51c726..52b78df1b2 100644 --- a/plugins/sign/package.json +++ b/plugins/sign/package.json @@ -35,7 +35,7 @@ "@types/jest": "^30.0.0", "prettier-plugin-svelte": "^3.4.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20" diff --git a/plugins/support-assets/package.json b/plugins/support-assets/package.json index 612d00b5f4..99d98d1f5a 100644 --- a/plugins/support-assets/package.json +++ b/plugins/support-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/support-resources/package.json b/plugins/support-resources/package.json index 9bc020a966..3006783a8c 100644 --- a/plugins/support-resources/package.json +++ b/plugins/support-resources/package.json @@ -32,7 +32,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/support/package.json b/plugins/support/package.json index 14a8433be0..a4e78a0f51 100644 --- a/plugins/support/package.json +++ b/plugins/support/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/survey-assets/package.json b/plugins/survey-assets/package.json index 2b9e98ec92..0407af3551 100644 --- a/plugins/survey-assets/package.json +++ b/plugins/survey-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/survey-resources/package.json b/plugins/survey-resources/package.json index 72f5d0238e..a87ec27dfb 100644 --- a/plugins/survey-resources/package.json +++ b/plugins/survey-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/plugins/survey/package.json b/plugins/survey/package.json index eda6ac839d..f72c76b8fa 100644 --- a/plugins/survey/package.json +++ b/plugins/survey/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/tags-assets/package.json b/plugins/tags-assets/package.json index cb365860d6..c08035964b 100644 --- a/plugins/tags-assets/package.json +++ b/plugins/tags-assets/package.json @@ -38,7 +38,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/tags-resources/package.json b/plugins/tags-resources/package.json index cdbedca8b0..648e9193bb 100644 --- a/plugins/tags-resources/package.json +++ b/plugins/tags-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/plugins/tags/package.json b/plugins/tags/package.json index 2a9ca57adc..a849d57d05 100644 --- a/plugins/tags/package.json +++ b/plugins/tags/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/task-assets/package.json b/plugins/task-assets/package.json index 27cdf6ed7c..0657f00d63 100644 --- a/plugins/task-assets/package.json +++ b/plugins/task-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/task-resources/package.json b/plugins/task-resources/package.json index 2caa26a233..4b02ce548b 100644 --- a/plugins/task-resources/package.json +++ b/plugins/task-resources/package.json @@ -34,7 +34,7 @@ "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", "typescript": "^5.9.3", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/plugins/task/package.json b/plugins/task/package.json index 2a37e76cfa..15dcb470bc 100644 --- a/plugins/task/package.json +++ b/plugins/task/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/contact": "workspace:^0.7.0", diff --git a/plugins/telegram-assets/package.json b/plugins/telegram-assets/package.json index 88f6cde731..36a5099e4e 100644 --- a/plugins/telegram-assets/package.json +++ b/plugins/telegram-assets/package.json @@ -38,7 +38,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/telegram-resources/package.json b/plugins/telegram-resources/package.json index b76f447c15..4472bcfffb 100644 --- a/plugins/telegram-resources/package.json +++ b/plugins/telegram-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/account-client": "workspace:^0.7.25", diff --git a/plugins/telegram/package.json b/plugins/telegram/package.json index ccbf39d8e1..47f9c8bf90 100644 --- a/plugins/telegram/package.json +++ b/plugins/telegram/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/plugins/templates-assets/package.json b/plugins/templates-assets/package.json index cab53a52bd..cc6b3b5c34 100644 --- a/plugins/templates-assets/package.json +++ b/plugins/templates-assets/package.json @@ -38,7 +38,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/templates-resources/package.json b/plugins/templates-resources/package.json index 0c71baa38f..5176930fb3 100644 --- a/plugins/templates-resources/package.json +++ b/plugins/templates-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/templates/package.json b/plugins/templates/package.json index 1405a3eb1e..586bc29e3f 100644 --- a/plugins/templates/package.json +++ b/plugins/templates/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/test-management-assets/package.json b/plugins/test-management-assets/package.json index 76486608b3..7fc670f8a3 100644 --- a/plugins/test-management-assets/package.json +++ b/plugins/test-management-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/test-management-resources/package.json b/plugins/test-management-resources/package.json index 350c04dbdc..99c0b27034 100644 --- a/plugins/test-management-resources/package.json +++ b/plugins/test-management-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/plugins/test-management/package.json b/plugins/test-management/package.json index a1c96e77dc..edc42a2858 100644 --- a/plugins/test-management/package.json +++ b/plugins/test-management/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/text-editor-assets/package.json b/plugins/text-editor-assets/package.json index d3884743ee..a11798a19c 100644 --- a/plugins/text-editor-assets/package.json +++ b/plugins/text-editor-assets/package.json @@ -38,7 +38,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/text-editor-resources/package.json b/plugins/text-editor-resources/package.json index 124a7c9740..bb6f25d3c1 100644 --- a/plugins/text-editor-resources/package.json +++ b/plugins/text-editor-resources/package.json @@ -38,7 +38,7 @@ "@types/diff": "~5.0.2", "@types/katex": "^0.16.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/text-editor/package.json b/plugins/text-editor/package.json index 61dac23801..75be6c7b3c 100644 --- a/plugins/text-editor/package.json +++ b/plugins/text-editor/package.json @@ -36,7 +36,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/presentation": "workspace:^0.7.0", diff --git a/plugins/time-assets/package.json b/plugins/time-assets/package.json index 0c1da06815..f6cba8406d 100644 --- a/plugins/time-assets/package.json +++ b/plugins/time-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/time-resources/package.json b/plugins/time-resources/package.json index 7301a007c9..ef8218e8e1 100644 --- a/plugins/time-resources/package.json +++ b/plugins/time-resources/package.json @@ -34,7 +34,7 @@ "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "svelte": "^4.2.20", diff --git a/plugins/time/package.json b/plugins/time/package.json index 781c5eba3f..0bd9227018 100644 --- a/plugins/time/package.json +++ b/plugins/time/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/tracker-assets/package.json b/plugins/tracker-assets/package.json index 13b93bd6e8..d1fbd51e12 100644 --- a/plugins/tracker-assets/package.json +++ b/plugins/tracker-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/tracker-resources/package.json b/plugins/tracker-resources/package.json index 865ac77306..aaa6b3614f 100644 --- a/plugins/tracker-resources/package.json +++ b/plugins/tracker-resources/package.json @@ -36,7 +36,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/plugins/tracker/package.json b/plugins/tracker/package.json index 62ad046e2e..fd44a74faa 100644 --- a/plugins/tracker/package.json +++ b/plugins/tracker/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/training-assets/package.json b/plugins/training-assets/package.json index e7ed86a491..89265eccb4 100644 --- a/plugins/training-assets/package.json +++ b/plugins/training-assets/package.json @@ -37,7 +37,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/training-resources/package.json b/plugins/training-resources/package.json index c3e6bc3a88..a3648a43f7 100644 --- a/plugins/training-resources/package.json +++ b/plugins/training-resources/package.json @@ -31,7 +31,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "typescript": "^5.9.3", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/plugins/training/package.json b/plugins/training/package.json index b9f698f39a..83c93f574c 100644 --- a/plugins/training/package.json +++ b/plugins/training/package.json @@ -33,7 +33,7 @@ "@hcengineering/platform-rig": "workspace:^0.7.21", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/attachment": "workspace:^0.7.0", diff --git a/plugins/uploader-assets/package.json b/plugins/uploader-assets/package.json index 4f73937841..c59ab36820 100644 --- a/plugins/uploader-assets/package.json +++ b/plugins/uploader-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/uploader-resources/package.json b/plugins/uploader-resources/package.json index 1f3c46a607..e1b7373d3f 100644 --- a/plugins/uploader-resources/package.json +++ b/plugins/uploader-resources/package.json @@ -35,7 +35,7 @@ "svelte-preprocess": "^5.1.4", "ts-jest": "^29.4.12", "typescript": "^5.9.3", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/plugins/uploader/package.json b/plugins/uploader/package.json index dc02db9c93..c50de55e0a 100644 --- a/plugins/uploader/package.json +++ b/plugins/uploader/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/view-assets/package.json b/plugins/view-assets/package.json index aaf5fd6dc0..7f4ea4ae9e 100644 --- a/plugins/view-assets/package.json +++ b/plugins/view-assets/package.json @@ -38,7 +38,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/view-resources/package.json b/plugins/view-resources/package.json index 18a9f094e9..e9686b2036 100644 --- a/plugins/view-resources/package.json +++ b/plugins/view-resources/package.json @@ -36,7 +36,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "svelte": "^4.2.20", diff --git a/plugins/view/package.json b/plugins/view/package.json index a314b7bd78..9c9b70c8e2 100644 --- a/plugins/view/package.json +++ b/plugins/view/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/workbench-assets/package.json b/plugins/workbench-assets/package.json index f197ec5ed7..1b59f6cdda 100644 --- a/plugins/workbench-assets/package.json +++ b/plugins/workbench-assets/package.json @@ -38,7 +38,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/workbench-resources/package.json b/plugins/workbench-resources/package.json index 65e85207e3..7cf324c05c 100644 --- a/plugins/workbench-resources/package.json +++ b/plugins/workbench-resources/package.json @@ -33,7 +33,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "svelte": "^4.2.20", diff --git a/plugins/workbench/package.json b/plugins/workbench/package.json index 86cdba311a..bbd6e00938 100644 --- a/plugins/workbench/package.json +++ b/plugins/workbench/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/pods/account/package.json b/pods/account/package.json index 7025f75931..aa8061ef80 100644 --- a/pods/account/package.json +++ b/pods/account/package.json @@ -52,7 +52,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/account": "workspace:^0.7.0", diff --git a/pods/authProviders/package.json b/pods/authProviders/package.json index 9c057e7ae6..b3a1eede1e 100644 --- a/pods/authProviders/package.json +++ b/pods/authProviders/package.json @@ -42,7 +42,7 @@ "@types/passport-github2": "^1.2.9", "@types/querystringify": "^2.0.2", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "mongodb": "^6.16.0", diff --git a/pods/backup/package.json b/pods/backup/package.json index bc7f7d1115..399840b885 100644 --- a/pods/backup/package.json +++ b/pods/backup/package.json @@ -47,7 +47,7 @@ "@types/jest": "^30.0.0", "@hcengineering/model-all": "workspace:^0.7.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/pods/collaborator/package.json b/pods/collaborator/package.json index 9f10d061a1..6c7d06e792 100644 --- a/pods/collaborator/package.json +++ b/pods/collaborator/package.json @@ -44,7 +44,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/pods/external/package.json b/pods/external/package.json index 31c6e8bc20..dbb0bf3efa 100644 --- a/pods/external/package.json +++ b/pods/external/package.json @@ -19,6 +19,6 @@ "eslint": "^9.39.5", "@typescript-eslint/parser": "^8.67.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" } } diff --git a/pods/front/package.json b/pods/front/package.json index cdd2ea3d16..7beced263f 100644 --- a/pods/front/package.json +++ b/pods/front/package.json @@ -55,7 +55,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/prod": "workspace:^1.0.1", diff --git a/pods/fulltext/package.json b/pods/fulltext/package.json index ed5e3cbbbc..f14c4422e6 100644 --- a/pods/fulltext/package.json +++ b/pods/fulltext/package.json @@ -50,7 +50,7 @@ "@types/koa": "^2.15.0", "@types/koa__cors": "^5.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/pods/link-preview/package.json b/pods/link-preview/package.json index acccdfbdb4..1e9e8a3177 100644 --- a/pods/link-preview/package.json +++ b/pods/link-preview/package.json @@ -31,7 +31,7 @@ "_phase:validate": "compile validate" }, "devDependencies": { - "eslint-config-love": "^155.0.0", + "eslint-config-love": "^157.0.0", "eslint-plugin-svelte": "^3.23.0", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/jest": "^30.0.0", diff --git a/pods/media/package.json b/pods/media/package.json index 75638a5dc0..bb51cf07fe 100644 --- a/pods/media/package.json +++ b/pods/media/package.json @@ -47,7 +47,7 @@ "ts-node": "^10.9.2", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/account-client": "workspace:^0.7.25", diff --git a/pods/preview/package.json b/pods/preview/package.json index 57ff118125..bb7078a648 100644 --- a/pods/preview/package.json +++ b/pods/preview/package.json @@ -51,7 +51,7 @@ "@types/morgan": "~1.9.9", "@types/heic-decode": "^1.1.2", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/pods/server/package.json b/pods/server/package.json index 88a0c5f094..b51e1434d9 100644 --- a/pods/server/package.json +++ b/pods/server/package.json @@ -37,7 +37,7 @@ "start-flame": "rush bundle --to @hcengineering/pod-server && cross-env NODE_ENV=production MODEL_VERSION=$(node ../../common/scripts/show_version.js) ACCOUNTS_URL=http://localhost:3000 REKONI_URL=http://localhost:4004 MONGO_URL=mongodb://localhost:27017 FRONT_URL=http://localhost:8087 UPLOAD_URL=/upload MINIO_ENDPOINT=localhost MINIO_ACCESS_KEY=minioadmin MINIO_SECRET_KEY=minioadmin METRICS_CONSOLE=true SERVER_SECRET=secret MODEL_JSON=../../models/all/bundle/model.json clinic flame --dest ./out -- node --nolazy -r ts-node/register --enable-source-maps src/__start.ts" }, "devDependencies": { - "eslint-config-love": "^155.0.0", + "eslint-config-love": "^157.0.0", "eslint-plugin-svelte": "^3.23.0", "cross-env": "~7.0.3", "@hcengineering/platform-rig": "workspace:^0.7.21", diff --git a/pods/stats/package.json b/pods/stats/package.json index edf3cf41ca..d6dcbfba03 100644 --- a/pods/stats/package.json +++ b/pods/stats/package.json @@ -48,7 +48,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/pods/workspace/package.json b/pods/workspace/package.json index 337484671f..ce31ff1057 100644 --- a/pods/workspace/package.json +++ b/pods/workspace/package.json @@ -48,7 +48,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/workspace-service": "workspace:^0.7.0", diff --git a/qms-desktop-package/package.json b/qms-desktop-package/package.json index 9ffaaaa30e..816d452b61 100644 --- a/qms-desktop-package/package.json +++ b/qms-desktop-package/package.json @@ -38,7 +38,7 @@ "eslint": "^9.39.5", "@typescript-eslint/parser": "^8.67.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "electron-squirrel-startup": "~1.0.1", diff --git a/qms-tests/sanity/package.json b/qms-tests/sanity/package.json index e875b359d1..d8f78c864f 100644 --- a/qms-tests/sanity/package.json +++ b/qms-tests/sanity/package.json @@ -45,7 +45,7 @@ "allure-js-commons": "^3.12.1", "@faker-js/faker": "^10.6.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "dotenv": "^16.4.5", diff --git a/server-plugins/activity-resources/package.json b/server-plugins/activity-resources/package.json index 84c7d09fc4..38f777bce6 100644 --- a/server-plugins/activity-resources/package.json +++ b/server-plugins/activity-resources/package.json @@ -31,7 +31,7 @@ "@types/jest": "^30.0.0", "@types/node": "^24.13.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/server-plugins/activity/package.json b/server-plugins/activity/package.json index 19cfc156c1..e7e7202ccc 100644 --- a/server-plugins/activity/package.json +++ b/server-plugins/activity/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/ai-bot-resources/package.json b/server-plugins/ai-bot-resources/package.json index 79f709e9bc..4c2a6cc3c1 100644 --- a/server-plugins/ai-bot-resources/package.json +++ b/server-plugins/ai-bot-resources/package.json @@ -33,7 +33,7 @@ "ts-jest": "^29.4.12", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/server-plugins/ai-bot/package.json b/server-plugins/ai-bot/package.json index 3f129d2b06..e857cabd51 100644 --- a/server-plugins/ai-bot/package.json +++ b/server-plugins/ai-bot/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/ai-bot": "workspace:^0.7.0", diff --git a/server-plugins/analytics-collector-resources/package.json b/server-plugins/analytics-collector-resources/package.json index 4a18fae39f..130802b8ee 100644 --- a/server-plugins/analytics-collector-resources/package.json +++ b/server-plugins/analytics-collector-resources/package.json @@ -33,7 +33,7 @@ "ts-jest": "^29.4.12", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/chunter": "workspace:^0.7.0", diff --git a/server-plugins/analytics-collector/package.json b/server-plugins/analytics-collector/package.json index 99f1a4e53c..6958dea045 100644 --- a/server-plugins/analytics-collector/package.json +++ b/server-plugins/analytics-collector/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/analytics-collector": "workspace:^0.7.0", diff --git a/server-plugins/attachment-resources/package.json b/server-plugins/attachment-resources/package.json index f46f62fcbf..292de0dcae 100644 --- a/server-plugins/attachment-resources/package.json +++ b/server-plugins/attachment-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/attachment/package.json b/server-plugins/attachment/package.json index f838f0fb65..68d67b6182 100644 --- a/server-plugins/attachment/package.json +++ b/server-plugins/attachment/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/calendar-resources/package.json b/server-plugins/calendar-resources/package.json index 4547e59001..e579aef570 100644 --- a/server-plugins/calendar-resources/package.json +++ b/server-plugins/calendar-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/calendar/package.json b/server-plugins/calendar/package.json index 66e8365e6b..38cfcd1944 100644 --- a/server-plugins/calendar/package.json +++ b/server-plugins/calendar/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/card-resources/package.json b/server-plugins/card-resources/package.json index 6eddc59b68..a7775e6039 100644 --- a/server-plugins/card-resources/package.json +++ b/server-plugins/card-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/server-plugins/card/package.json b/server-plugins/card/package.json index 30fccaea36..a2fe73665b 100644 --- a/server-plugins/card/package.json +++ b/server-plugins/card/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/chunter-resources/package.json b/server-plugins/chunter-resources/package.json index 439f576d65..564d24caa4 100644 --- a/server-plugins/chunter-resources/package.json +++ b/server-plugins/chunter-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/server-plugins/chunter/package.json b/server-plugins/chunter/package.json index 69d511a3f5..09b9b8a9b7 100644 --- a/server-plugins/chunter/package.json +++ b/server-plugins/chunter/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/server-notification": "workspace:^0.7.0", diff --git a/server-plugins/collaboration-resources/package.json b/server-plugins/collaboration-resources/package.json index 823294b5af..4ed5c1786c 100644 --- a/server-plugins/collaboration-resources/package.json +++ b/server-plugins/collaboration-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/collaboration/package.json b/server-plugins/collaboration/package.json index 8d2c052ca1..ef8d540424 100644 --- a/server-plugins/collaboration/package.json +++ b/server-plugins/collaboration/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/contact-resources/package.json b/server-plugins/contact-resources/package.json index 3fd7551b59..58d4ede781 100644 --- a/server-plugins/contact-resources/package.json +++ b/server-plugins/contact-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/contact/package.json b/server-plugins/contact/package.json index f33171ca03..1d90d06126 100644 --- a/server-plugins/contact/package.json +++ b/server-plugins/contact/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/server-notification": "workspace:^0.7.0", diff --git a/server-plugins/controlled-documents-resources/package.json b/server-plugins/controlled-documents-resources/package.json index c4fde13e80..f638fde8a6 100644 --- a/server-plugins/controlled-documents-resources/package.json +++ b/server-plugins/controlled-documents-resources/package.json @@ -35,7 +35,7 @@ "@types/jest": "^30.0.0", "@types/node": "^24.13.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/chunter": "workspace:^0.7.0", diff --git a/server-plugins/controlled-documents/package.json b/server-plugins/controlled-documents/package.json index 9e5afb2a38..ef41714260 100644 --- a/server-plugins/controlled-documents/package.json +++ b/server-plugins/controlled-documents/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/server-plugins/document-resources/package.json b/server-plugins/document-resources/package.json index 524c2f1315..237c079696 100644 --- a/server-plugins/document-resources/package.json +++ b/server-plugins/document-resources/package.json @@ -35,7 +35,7 @@ "@types/jest": "^30.0.0", "@types/node": "^24.13.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/document/package.json b/server-plugins/document/package.json index 861c65ab05..1d43dbbdd5 100644 --- a/server-plugins/document/package.json +++ b/server-plugins/document/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/server-plugins/drive-resources/package.json b/server-plugins/drive-resources/package.json index 2f395cffd1..5453c9a633 100644 --- a/server-plugins/drive-resources/package.json +++ b/server-plugins/drive-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/drive/package.json b/server-plugins/drive/package.json index 50f50ec990..f84a7e592e 100644 --- a/server-plugins/drive/package.json +++ b/server-plugins/drive/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/gmail-resources/package.json b/server-plugins/gmail-resources/package.json index 3c9a0a0fb4..7b49b7230b 100644 --- a/server-plugins/gmail-resources/package.json +++ b/server-plugins/gmail-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/server-plugins/gmail/package.json b/server-plugins/gmail/package.json index a63c73c839..6a1773eedd 100644 --- a/server-plugins/gmail/package.json +++ b/server-plugins/gmail/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/guest-resources/package.json b/server-plugins/guest-resources/package.json index 225e83a72a..e5ae449f5d 100644 --- a/server-plugins/guest-resources/package.json +++ b/server-plugins/guest-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/guest/package.json b/server-plugins/guest/package.json index fa1d7ffa90..c38f643581 100644 --- a/server-plugins/guest/package.json +++ b/server-plugins/guest/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/hr-resources/package.json b/server-plugins/hr-resources/package.json index b75a0eebe1..cf14e22b61 100644 --- a/server-plugins/hr-resources/package.json +++ b/server-plugins/hr-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/hr/package.json b/server-plugins/hr/package.json index db0ae492c2..5779ef791c 100644 --- a/server-plugins/hr/package.json +++ b/server-plugins/hr/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/inventory-resources/package.json b/server-plugins/inventory-resources/package.json index b7bc75d939..e2d75f0e8c 100644 --- a/server-plugins/inventory-resources/package.json +++ b/server-plugins/inventory-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/inventory/package.json b/server-plugins/inventory/package.json index fdcb547c2e..034523472a 100644 --- a/server-plugins/inventory/package.json +++ b/server-plugins/inventory/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/server-plugins/lead-resources/package.json b/server-plugins/lead-resources/package.json index 89fc5e8c16..ac5976ce37 100644 --- a/server-plugins/lead-resources/package.json +++ b/server-plugins/lead-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/lead/package.json b/server-plugins/lead/package.json index df53208e2d..1b3917b202 100644 --- a/server-plugins/lead/package.json +++ b/server-plugins/lead/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/server-plugins/love-resources/package.json b/server-plugins/love-resources/package.json index 2653cc2719..7b5bb1006b 100644 --- a/server-plugins/love-resources/package.json +++ b/server-plugins/love-resources/package.json @@ -34,7 +34,7 @@ "@types/jest": "^30.0.0", "prettier-plugin-svelte": "^3.4.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/view": "workspace:^0.7.0", diff --git a/server-plugins/love/package.json b/server-plugins/love/package.json index 3f86826f49..bb07752d92 100644 --- a/server-plugins/love/package.json +++ b/server-plugins/love/package.json @@ -35,7 +35,7 @@ "@types/jest": "^30.0.0", "prettier-plugin-svelte": "^3.4.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/notification-resources/package.json b/server-plugins/notification-resources/package.json index c7dd9acf99..0623fb6df6 100644 --- a/server-plugins/notification-resources/package.json +++ b/server-plugins/notification-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/server-plugins/notification/package.json b/server-plugins/notification/package.json index 495b5570aa..971b8449ca 100644 --- a/server-plugins/notification/package.json +++ b/server-plugins/notification/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/preference/package.json b/server-plugins/preference/package.json index 9fbe0e031f..7aeea845b2 100644 --- a/server-plugins/preference/package.json +++ b/server-plugins/preference/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/process-resources/package.json b/server-plugins/process-resources/package.json index 457d867a5b..8d24e0fa88 100644 --- a/server-plugins/process-resources/package.json +++ b/server-plugins/process-resources/package.json @@ -34,7 +34,7 @@ "@types/jest": "^30.0.0", "prettier-plugin-svelte": "^3.4.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/time": "workspace:^0.7.0", diff --git a/server-plugins/process/package.json b/server-plugins/process/package.json index 65a06e45c7..7eb8846c12 100644 --- a/server-plugins/process/package.json +++ b/server-plugins/process/package.json @@ -35,7 +35,7 @@ "@types/jest": "^30.0.0", "prettier-plugin-svelte": "^3.4.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/rating/package.json b/server-plugins/rating/package.json index 7188952f78..1fa2a7f367 100644 --- a/server-plugins/rating/package.json +++ b/server-plugins/rating/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/recruit-resources/package.json b/server-plugins/recruit-resources/package.json index 3c7b2107d3..0b9b552749 100644 --- a/server-plugins/recruit-resources/package.json +++ b/server-plugins/recruit-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/recruit/package.json b/server-plugins/recruit/package.json index d72ccb6b8d..2a6206ed5c 100644 --- a/server-plugins/recruit/package.json +++ b/server-plugins/recruit/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/server-plugins/request-resources/package.json b/server-plugins/request-resources/package.json index 7ecab8bc66..adfcc0fb4b 100644 --- a/server-plugins/request-resources/package.json +++ b/server-plugins/request-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/request/package.json b/server-plugins/request/package.json index a3dbc09c23..7db027e4aa 100644 --- a/server-plugins/request/package.json +++ b/server-plugins/request/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/server-plugins/setting-resources/package.json b/server-plugins/setting-resources/package.json index b0296f369b..9e0298337a 100644 --- a/server-plugins/setting-resources/package.json +++ b/server-plugins/setting-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/setting/package.json b/server-plugins/setting/package.json index 526b9b5572..8e79afcbec 100644 --- a/server-plugins/setting/package.json +++ b/server-plugins/setting/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/tags-resources/package.json b/server-plugins/tags-resources/package.json index 42b2d91e3d..b55ecc86dc 100644 --- a/server-plugins/tags-resources/package.json +++ b/server-plugins/tags-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/tags/package.json b/server-plugins/tags/package.json index 1124861796..10a7d95db7 100644 --- a/server-plugins/tags/package.json +++ b/server-plugins/tags/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/task-resources/package.json b/server-plugins/task-resources/package.json index e7fbd60f6d..ed0cbeb754 100644 --- a/server-plugins/task-resources/package.json +++ b/server-plugins/task-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/task/package.json b/server-plugins/task/package.json index 523d4092d9..931c29eb0e 100644 --- a/server-plugins/task/package.json +++ b/server-plugins/task/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/server-notification": "workspace:^0.7.0", diff --git a/server-plugins/telegram-resources/package.json b/server-plugins/telegram-resources/package.json index fedf4daf55..b50803894b 100644 --- a/server-plugins/telegram-resources/package.json +++ b/server-plugins/telegram-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/server-plugins/telegram/package.json b/server-plugins/telegram/package.json index 2b42f057b9..e1ecc64570 100644 --- a/server-plugins/telegram/package.json +++ b/server-plugins/telegram/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/server-plugins/templates/package.json b/server-plugins/templates/package.json index c021e2112e..ca43c0a443 100644 --- a/server-plugins/templates/package.json +++ b/server-plugins/templates/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/time-resources/package.json b/server-plugins/time-resources/package.json index 9ada15f116..792adbc886 100644 --- a/server-plugins/time-resources/package.json +++ b/server-plugins/time-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/server-plugins/time/package.json b/server-plugins/time/package.json index 753180df2d..822e885604 100644 --- a/server-plugins/time/package.json +++ b/server-plugins/time/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/tracker-resources/package.json b/server-plugins/tracker-resources/package.json index 3e6766132c..3b8f207684 100644 --- a/server-plugins/tracker-resources/package.json +++ b/server-plugins/tracker-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/chunter": "workspace:^0.7.0", diff --git a/server-plugins/tracker/package.json b/server-plugins/tracker/package.json index 91321a64f4..646dfe2c5f 100644 --- a/server-plugins/tracker/package.json +++ b/server-plugins/tracker/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/server-plugins/training-resources/package.json b/server-plugins/training-resources/package.json index 6df18db1d1..692081654d 100644 --- a/server-plugins/training-resources/package.json +++ b/server-plugins/training-resources/package.json @@ -34,7 +34,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/contact": "workspace:^0.7.0", diff --git a/server-plugins/training/package.json b/server-plugins/training/package.json index d242c2f080..77706ed825 100644 --- a/server-plugins/training/package.json +++ b/server-plugins/training/package.json @@ -34,7 +34,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/server-plugins/view-resources/package.json b/server-plugins/view-resources/package.json index 7d94185e78..a317d84d29 100644 --- a/server-plugins/view-resources/package.json +++ b/server-plugins/view-resources/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server-plugins/view/package.json b/server-plugins/view/package.json index 204896a074..f60ca02180 100644 --- a/server-plugins/view/package.json +++ b/server-plugins/view/package.json @@ -35,7 +35,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/server-notification": "workspace:^0.7.0", diff --git a/server/account-service/package.json b/server/account-service/package.json index 373cf3c8da..cead9613f8 100644 --- a/server/account-service/package.json +++ b/server/account-service/package.json @@ -40,7 +40,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/account": "workspace:^0.7.0", diff --git a/server/account/package.json b/server/account/package.json index 36f873df04..dfe34a0d1f 100644 --- a/server/account/package.json +++ b/server/account/package.json @@ -33,7 +33,7 @@ "@types/pg": "^8.11.6", "@types/node": "^24.13.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/mongo": "workspace:^0.7.16", diff --git a/server/backup-service/package.json b/server/backup-service/package.json index 229e298c8b..d691b078ec 100644 --- a/server/backup-service/package.json +++ b/server/backup-service/package.json @@ -33,7 +33,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/server/backup/package.json b/server/backup/package.json index d329017f0e..87c2764e24 100644 --- a/server/backup/package.json +++ b/server/backup/package.json @@ -37,7 +37,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/server/collaborator/package.json b/server/collaborator/package.json index 27dfdc61de..4bc7ea8fde 100644 --- a/server/collaborator/package.json +++ b/server/collaborator/package.json @@ -43,7 +43,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/communication-types": "workspace:^0.7.12", diff --git a/server/front/package.json b/server/front/package.json index 6b0f18c362..ba7381cba9 100644 --- a/server/front/package.json +++ b/server/front/package.json @@ -42,7 +42,7 @@ "@types/jest": "^30.0.0", "@types/morgan": "~1.9.9", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server/indexer/package.json b/server/indexer/package.json index 6506e38b50..d539799098 100644 --- a/server/indexer/package.json +++ b/server/indexer/package.json @@ -19,7 +19,7 @@ }, "devDependencies": { "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0", + "eslint-config-love": "^157.0.0", "@hcengineering/platform-rig": "workspace:^0.7.21", "@types/node": "^24.13.3", "@typescript-eslint/eslint-plugin": "^8.67.0", diff --git a/server/server-pipeline/package.json b/server/server-pipeline/package.json index 13908f3ae3..edffb9ed81 100644 --- a/server/server-pipeline/package.json +++ b/server/server-pipeline/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/server/tool/package.json b/server/tool/package.json index ad7b814e2c..5c94f186f4 100644 --- a/server/tool/package.json +++ b/server/tool/package.json @@ -33,7 +33,7 @@ "@types/js-yaml": "^4.0.9", "@types/node": "^24.13.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "mongodb": "^6.16.0", diff --git a/server/workspace-service/package.json b/server/workspace-service/package.json index b309c0ab1a..c21f343e16 100644 --- a/server/workspace-service/package.json +++ b/server/workspace-service/package.json @@ -38,7 +38,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/model": "workspace:^0.7.17", diff --git a/services/ai-bot/love-agent/package.json b/services/ai-bot/love-agent/package.json index 0cd0514ae8..9eac5995eb 100644 --- a/services/ai-bot/love-agent/package.json +++ b/services/ai-bot/love-agent/package.json @@ -27,7 +27,7 @@ "eslint": "^8.54.0", "eslint-config-prettier": "^8.8.0", "eslint-config-love": "^157.0.0", - "eslint-plugin-import": "^2.26.0", + "eslint-plugin-import": "^2.32.0", "eslint-plugin-n": "^15.4.0", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-secure-coding": "^5.4.4", diff --git a/services/ai-bot/pod-ai-bot/package.json b/services/ai-bot/pod-ai-bot/package.json index ec17931447..96e06f27d5 100644 --- a/services/ai-bot/pod-ai-bot/package.json +++ b/services/ai-bot/pod-ai-bot/package.json @@ -33,7 +33,7 @@ "run-local": "cross-env APP_ID=$(cat ../../../../uberflow_private/appid) PRIVATE_KEY=\"$(cat ../../../../uberflow_private/private-key.pem)\" CLIENT_ID=$(cat ../../../../uberflow_private/client-id) CLIENT_SECRET=$(cat ../../../../uberflow_private/client-secret) SERVER_SECRET=secret ACCOUNTS_URL=http://localhost:3000/ COLLABORATOR_URL=http://localhost:3078 MINIO_ACCESS_KEY=minioadmin MINIO_SECRET_KEY=minioadmin MINIO_ENDPOINT=localhost ts-node src/index.ts" }, "devDependencies": { - "eslint-config-love": "^155.0.0", + "eslint-config-love": "^157.0.0", "eslint-plugin-svelte": "^3.23.0", "@hcengineering/platform-rig": "workspace:^0.7.21", "@tsconfig/node16": "^1.0.4", diff --git a/services/analytics-collector/pod-analytics-collector/package.json b/services/analytics-collector/pod-analytics-collector/package.json index 2d767996a7..64e08842fc 100644 --- a/services/analytics-collector/pod-analytics-collector/package.json +++ b/services/analytics-collector/pod-analytics-collector/package.json @@ -51,7 +51,7 @@ "ts-node": "^10.9.2", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/services/backup/backup-api-pod/package.json b/services/backup/backup-api-pod/package.json index a7b7c213d3..9e896fdc95 100644 --- a/services/backup/backup-api-pod/package.json +++ b/services/backup/backup-api-pod/package.json @@ -52,7 +52,7 @@ "typescript": "^5.9.3", "@types/morgan": "~1.9.9", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/services/billing/pod-billing/package.json b/services/billing/pod-billing/package.json index f7fc9a6e0a..e269926e51 100644 --- a/services/billing/pod-billing/package.json +++ b/services/billing/pod-billing/package.json @@ -31,7 +31,7 @@ "_phase:validate": "compile validate" }, "devDependencies": { - "eslint-config-love": "^155.0.0", + "eslint-config-love": "^157.0.0", "eslint-plugin-svelte": "^3.23.0", "@hcengineering/platform-rig": "workspace:^0.7.21", "@tsconfig/node16": "^1.0.4", diff --git a/services/calendar/pod-calendar-mailer/package.json b/services/calendar/pod-calendar-mailer/package.json index 2796a03485..7c5d244d0f 100644 --- a/services/calendar/pod-calendar-mailer/package.json +++ b/services/calendar/pod-calendar-mailer/package.json @@ -47,7 +47,7 @@ "ts-node": "^10.9.2", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/account-client": "workspace:^0.7.25", diff --git a/services/calendar/pod-calendar/package.json b/services/calendar/pod-calendar/package.json index 21c5db9810..252fbb735d 100644 --- a/services/calendar/pod-calendar/package.json +++ b/services/calendar/pod-calendar/package.json @@ -49,7 +49,7 @@ "ts-node": "^10.9.2", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/attachment": "workspace:^0.7.0", diff --git a/services/datalake/pod-datalake/package.json b/services/datalake/pod-datalake/package.json index 0019933ffd..33d1383fd7 100644 --- a/services/datalake/pod-datalake/package.json +++ b/services/datalake/pod-datalake/package.json @@ -31,7 +31,7 @@ "_phase:validate": "compile validate" }, "devDependencies": { - "eslint-config-love": "^155.0.0", + "eslint-config-love": "^157.0.0", "eslint-plugin-svelte": "^3.23.0", "@hcengineering/platform-rig": "workspace:^0.7.21", "@tsconfig/node16": "^1.0.4", diff --git a/services/export/pod-export/package.json b/services/export/pod-export/package.json index 4bc0513500..e1b3ddf77e 100644 --- a/services/export/pod-export/package.json +++ b/services/export/pod-export/package.json @@ -31,7 +31,7 @@ "_phase:validate": "compile validate" }, "devDependencies": { - "eslint-config-love": "^155.0.0", + "eslint-config-love": "^157.0.0", "eslint-plugin-svelte": "^3.23.0", "@hcengineering/platform-rig": "workspace:^0.7.21", "@tsconfig/node16": "^1.0.4", diff --git a/services/github/github-assets/package.json b/services/github/github-assets/package.json index e12e9fc2c4..2efaf9d321 100644 --- a/services/github/github-assets/package.json +++ b/services/github/github-assets/package.json @@ -37,7 +37,7 @@ "@types/jest": "^30.0.0", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/services/github/github-resources/package.json b/services/github/github-resources/package.json index a6f8cb85fa..036562ef35 100644 --- a/services/github/github-resources/package.json +++ b/services/github/github-resources/package.json @@ -34,7 +34,7 @@ "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", "svelte-eslint-parser": "^1.8.1", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/services/github/github/package.json b/services/github/github/package.json index 0e0dad075e..f6d40f34bb 100644 --- a/services/github/github/package.json +++ b/services/github/github/package.json @@ -33,7 +33,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/services/github/model-github/package.json b/services/github/model-github/package.json index f9bab292fb..dc40382ebd 100644 --- a/services/github/model-github/package.json +++ b/services/github/model-github/package.json @@ -30,7 +30,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/contact": "workspace:^0.7.0", diff --git a/services/github/pod-github/package.json b/services/github/pod-github/package.json index 7acd27fdec..f48c860603 100644 --- a/services/github/pod-github/package.json +++ b/services/github/pod-github/package.json @@ -56,7 +56,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/services/github/server-github-model/package.json b/services/github/server-github-model/package.json index 11976dd7be..f58c118dc9 100644 --- a/services/github/server-github-model/package.json +++ b/services/github/server-github-model/package.json @@ -30,7 +30,7 @@ "@types/jest": "^30.0.0", "ts-jest": "^29.4.12", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/services/github/server-github-resources/package.json b/services/github/server-github-resources/package.json index be2c916632..9559620543 100644 --- a/services/github/server-github-resources/package.json +++ b/services/github/server-github-resources/package.json @@ -33,7 +33,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/chunter": "workspace:^0.7.0", diff --git a/services/github/server-github/package.json b/services/github/server-github/package.json index 416ef731d3..7422211fb3 100644 --- a/services/github/server-github/package.json +++ b/services/github/server-github/package.json @@ -34,7 +34,7 @@ "ts-jest": "^29.4.12", "@types/jest": "^30.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/services/gmail/pod-gmail/package.json b/services/gmail/pod-gmail/package.json index 1255587459..b3f941578a 100644 --- a/services/gmail/pod-gmail/package.json +++ b/services/gmail/pod-gmail/package.json @@ -52,7 +52,7 @@ "ts-node": "^10.9.2", "cross-env": "~7.0.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/attachment": "workspace:^0.7.0", diff --git a/services/love/package.json b/services/love/package.json index a25fd71936..d2f6130ea3 100644 --- a/services/love/package.json +++ b/services/love/package.json @@ -30,7 +30,7 @@ "_phase:validate": "compile validate" }, "devDependencies": { - "eslint-config-love": "^155.0.0", + "eslint-config-love": "^157.0.0", "eslint-plugin-svelte": "^3.23.0", "@tsconfig/node16": "^1.0.4", "cross-env": "~7.0.3", diff --git a/services/mail/mail-common/package.json b/services/mail/mail-common/package.json index e9a0be2348..365e3d48bf 100644 --- a/services/mail/mail-common/package.json +++ b/services/mail/mail-common/package.json @@ -21,7 +21,7 @@ "_phase:validate": "compile validate" }, "devDependencies": { - "eslint-config-love": "^155.0.0", + "eslint-config-love": "^157.0.0", "eslint-plugin-svelte": "^3.23.0", "@hcengineering/platform-rig": "workspace:^0.7.21", "@tsconfig/node16": "^1.0.4", diff --git a/services/mail/pod-mail-worker/package.json b/services/mail/pod-mail-worker/package.json index aadc08a9f1..c1946e8870 100644 --- a/services/mail/pod-mail-worker/package.json +++ b/services/mail/pod-mail-worker/package.json @@ -31,7 +31,7 @@ "_phase:validate": "compile validate" }, "devDependencies": { - "eslint-config-love": "^155.0.0", + "eslint-config-love": "^157.0.0", "eslint-plugin-svelte": "^3.23.0", "@hcengineering/platform-rig": "workspace:^0.7.21", "@tsconfig/node16": "^1.0.4", diff --git a/services/mail/pod-mail/package.json b/services/mail/pod-mail/package.json index 8e0eb11199..4cbd65d159 100644 --- a/services/mail/pod-mail/package.json +++ b/services/mail/pod-mail/package.json @@ -30,7 +30,7 @@ "_phase:validate": "compile validate" }, "devDependencies": { - "eslint-config-love": "^155.0.0", + "eslint-config-love": "^157.0.0", "eslint-plugin-svelte": "^3.23.0", "cross-env": "~7.0.3", "@hcengineering/platform-rig": "workspace:^0.7.21", diff --git a/services/notification/pod-events-processor/package.json b/services/notification/pod-events-processor/package.json index 2a52753a95..49eb84ad13 100644 --- a/services/notification/pod-events-processor/package.json +++ b/services/notification/pod-events-processor/package.json @@ -46,7 +46,7 @@ "ts-node": "^10.9.2", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/account-client": "workspace:^0.7.25", diff --git a/services/notification/pod-notification/package.json b/services/notification/pod-notification/package.json index bbf38b9298..83394d45a1 100644 --- a/services/notification/pod-notification/package.json +++ b/services/notification/pod-notification/package.json @@ -50,7 +50,7 @@ "@types/express": "^4.17.13", "@types/web-push": "^3.6.4", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/services/payment/pod-payment/package.json b/services/payment/pod-payment/package.json index e7b3f32956..3c28b88d2f 100644 --- a/services/payment/pod-payment/package.json +++ b/services/payment/pod-payment/package.json @@ -31,7 +31,7 @@ "_phase:validate": "compile validate" }, "devDependencies": { - "eslint-config-love": "^155.0.0", + "eslint-config-love": "^157.0.0", "eslint-plugin-svelte": "^3.23.0", "@hcengineering/platform-rig": "workspace:^0.7.21", "@tsconfig/node16": "^1.0.4", diff --git a/services/print/pod-print/package.json b/services/print/pod-print/package.json index ba579bc788..f7d51e1f55 100644 --- a/services/print/pod-print/package.json +++ b/services/print/pod-print/package.json @@ -51,7 +51,7 @@ "ts-node": "^10.9.2", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/server-token": "workspace:^0.7.18", diff --git a/services/process/package.json b/services/process/package.json index bd814e12a2..acd63fc5d7 100644 --- a/services/process/package.json +++ b/services/process/package.json @@ -30,7 +30,7 @@ "_phase:validate": "compile validate" }, "devDependencies": { - "eslint-config-love": "^155.0.0", + "eslint-config-love": "^157.0.0", "eslint-plugin-svelte": "^3.23.0", "@tsconfig/node16": "^1.0.4", "@types/node": "^24.13.3", diff --git a/services/rating/package.json b/services/rating/package.json index fd3b01440e..38190046ee 100644 --- a/services/rating/package.json +++ b/services/rating/package.json @@ -50,7 +50,7 @@ "@types/koa": "^2.15.0", "@types/koa__cors": "^5.0.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/services/rekoni/package.json b/services/rekoni/package.json index d860a0b8a8..ebf95e8c01 100644 --- a/services/rekoni/package.json +++ b/services/rekoni/package.json @@ -60,7 +60,7 @@ "prettier": "^3.6.2", "@types/morgan": "~1.9.9", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@anticrm/skillset": "^0.6.0", diff --git a/services/sign/pod-sign/package.json b/services/sign/pod-sign/package.json index e30b2b7e9d..b479c839d0 100644 --- a/services/sign/pod-sign/package.json +++ b/services/sign/pod-sign/package.json @@ -49,7 +49,7 @@ "ts-node": "^10.9.2", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/server-token": "workspace:^0.7.18", diff --git a/services/telegram-bot/pod-telegram-bot/package.json b/services/telegram-bot/pod-telegram-bot/package.json index 5446e9c8dd..f263164d85 100644 --- a/services/telegram-bot/pod-telegram-bot/package.json +++ b/services/telegram-bot/pod-telegram-bot/package.json @@ -49,7 +49,7 @@ "ts-node": "^10.9.2", "typescript": "^5.9.3", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/activity": "workspace:^0.7.0", diff --git a/services/telegram/pod-telegram/package.json b/services/telegram/pod-telegram/package.json index 5b11babd79..87a5f875eb 100644 --- a/services/telegram/pod-telegram/package.json +++ b/services/telegram/pod-telegram/package.json @@ -30,7 +30,7 @@ "_phase:validate": "compile validate" }, "devDependencies": { - "eslint-config-love": "^155.0.0", + "eslint-config-love": "^157.0.0", "eslint-plugin-svelte": "^3.23.0", "@hcengineering/platform-rig": "workspace:^0.7.21", "@tsconfig/node16": "^1.0.4", diff --git a/services/worker/package.json b/services/worker/package.json index f1f3f8d548..774bbea2a6 100644 --- a/services/worker/package.json +++ b/services/worker/package.json @@ -33,7 +33,7 @@ "run-local": "cross-env QUEUE_CONFIG='localhost:19092' REGION='cockroach' ts-node src/index.ts" }, "devDependencies": { - "eslint-config-love": "^155.0.0", + "eslint-config-love": "^157.0.0", "eslint-plugin-svelte": "^3.23.0", "@tsconfig/node16": "^1.0.4", "cross-env": "~7.0.3", diff --git a/templates/assets/package.json b/templates/assets/package.json index 079fc60832..4b79229876 100644 --- a/templates/assets/package.json +++ b/templates/assets/package.json @@ -54,7 +54,7 @@ "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", "eslint-config-love": "^157.0.0", - "eslint-plugin-import": "^2.26.0", + "eslint-plugin-import": "^2.32.0", "eslint-plugin-n": "^15.4.0", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-secure-coding": "^5.4.4", diff --git a/templates/cloud/package.json b/templates/cloud/package.json index f98c72bb3e..abb52d7767 100644 --- a/templates/cloud/package.json +++ b/templates/cloud/package.json @@ -29,7 +29,7 @@ "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", "eslint-config-love": "^157.0.0", - "eslint-plugin-import": "^2.26.0", + "eslint-plugin-import": "^2.32.0", "eslint-plugin-n": "^15.4.0", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-secure-coding": "^5.4.4", diff --git a/templates/model/package.json b/templates/model/package.json index a4360e57e6..d402d24a74 100644 --- a/templates/model/package.json +++ b/templates/model/package.json @@ -24,7 +24,7 @@ "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", "eslint-config-love": "^157.0.0", - "eslint-plugin-import": "^2.26.0", + "eslint-plugin-import": "^2.32.0", "eslint-plugin-n": "^15.4.0", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-secure-coding": "^5.4.4", diff --git a/templates/node/package.json b/templates/node/package.json index 54722ff9d7..4f21af2f70 100644 --- a/templates/node/package.json +++ b/templates/node/package.json @@ -26,7 +26,7 @@ "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", "eslint-config-love": "^157.0.0", - "eslint-plugin-import": "^2.26.0", + "eslint-plugin-import": "^2.32.0", "eslint-plugin-n": "^15.4.0", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-secure-coding": "^5.4.4", diff --git a/templates/platform/package.json b/templates/platform/package.json index fd6c6757c6..6159daad92 100644 --- a/templates/platform/package.json +++ b/templates/platform/package.json @@ -31,7 +31,7 @@ "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", "eslint-config-love": "^157.0.0", - "eslint-plugin-import": "^2.26.0", + "eslint-plugin-import": "^2.32.0", "eslint-plugin-n": "^15.4.0", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-secure-coding": "^5.4.4", diff --git a/templates/ui/package.json b/templates/ui/package.json index 557f61dc87..d99a4b45af 100644 --- a/templates/ui/package.json +++ b/templates/ui/package.json @@ -21,7 +21,7 @@ "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", "eslint-config-love": "^157.0.0", - "eslint-plugin-import": "^2.26.0", + "eslint-plugin-import": "^2.32.0", "eslint-plugin-n": "^15.4.0", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-secure-coding": "^5.4.4", diff --git a/tests/sanity/package.json b/tests/sanity/package.json index 3ff95ab445..ee0518f50a 100644 --- a/tests/sanity/package.json +++ b/tests/sanity/package.json @@ -44,7 +44,7 @@ "allure-js-commons": "^3.12.1", "@faker-js/faker": "^10.6.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "dotenv": "^16.4.5", diff --git a/ws-tests/api-tests/package.json b/ws-tests/api-tests/package.json index e581fb119d..c33628ad40 100644 --- a/ws-tests/api-tests/package.json +++ b/ws-tests/api-tests/package.json @@ -38,7 +38,7 @@ "@types/body-parser": "~1.19.2", "@types/morgan": "~1.9.9", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/ws-tests/sanity/package.json b/ws-tests/sanity/package.json index 0de6d17908..e0bbbff739 100644 --- a/ws-tests/sanity/package.json +++ b/ws-tests/sanity/package.json @@ -46,7 +46,7 @@ "@faker-js/faker": "^10.6.0", "@hcengineering/tests-sanity": "workspace:^0.7.0", "eslint-plugin-svelte": "^3.23.0", - "eslint-config-love": "^155.0.0" + "eslint-config-love": "^157.0.0" }, "dependencies": { "dotenv": "^16.4.5", From aff6f0394ffdb6d9e8279765232160bedaea9720 Mon Sep 17 00:00:00 2001 From: Alexander Onnikov Date: Mon, 21 Sep 2026 15:48:47 +0700 Subject: [PATCH 36/55] chore: update image-size (#331) Signed-off-by: Alexander Onnikov (ported from TraceX 36da5e028c) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- packages/importer/package.json | 2 +- packages/importer/src/huly/huly.ts | 6 ++++-- pods/link-preview/package.json | 2 +- services/mail/mail-common/package.json | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/importer/package.json b/packages/importer/package.json index 5198e75709..ff73a93e4c 100644 --- a/packages/importer/package.json +++ b/packages/importer/package.json @@ -58,7 +58,7 @@ "mime-types": "~2.1.34", "csvtojson": "^2.0.10", "js-yaml": "^4.3.2", - "image-size": "^1.2.1", + "image-size": "^2.0.4", "uuid": "^11.1.1" }, "repository": { diff --git a/packages/importer/src/huly/huly.ts b/packages/importer/src/huly/huly.ts index b4ddfd1be6..ab44c22477 100644 --- a/packages/importer/src/huly/huly.ts +++ b/packages/importer/src/huly/huly.ts @@ -34,7 +34,8 @@ import document, { type Document } from '@hcengineering/document' import core from '@hcengineering/model-core' import tracker, { type Issue, type Project } from '@hcengineering/tracker' import * as fs from 'fs' -import sizeOf from 'image-size' +import { readFile } from 'fs/promises' +import { imageSize } from 'image-size' import * as yaml from 'js-yaml' import { contentType } from 'mime-types' import * as path from 'path' @@ -286,7 +287,8 @@ export class HulyFormatImporter { if (fileType !== false && fileType?.startsWith('image/')) { try { - const imageDimensions = sizeOf(attachMeta.path) + const imageData = await readFile(attachMeta.path) + const imageDimensions = imageSize(imageData) attachment.metadata = { originalWidth: imageDimensions.width ?? 0, originalHeight: imageDimensions.height ?? 0 diff --git a/pods/link-preview/package.json b/pods/link-preview/package.json index 1e9e8a3177..78fc4aa631 100644 --- a/pods/link-preview/package.json +++ b/pods/link-preview/package.json @@ -65,7 +65,7 @@ "cors": "^2.8.6", "morgan": "^1.11.0", "cheerio": "^1.2.0", - "image-size": "^1.2.1", + "image-size": "^2.0.4", "oembed-providers": "~1.0.20260604" } } diff --git a/services/mail/mail-common/package.json b/services/mail/mail-common/package.json index 365e3d48bf..4419554f97 100644 --- a/services/mail/mail-common/package.json +++ b/services/mail/mail-common/package.json @@ -59,7 +59,7 @@ "@hcengineering/mail": "workspace:^0.7.0", "@hcengineering/server-core": "workspace:^0.7.19", "@hcengineering/server-storage": "workspace:^0.7.16", - "image-size": "^1.2.1", + "image-size": "^2.0.4", "kafkajs": "^2.2.4", "markdown-it": "^14.0.0", "sanitize-html": "2.17.5", From 52fa36814a0bdbc158f0b48d8cd982759003adaa Mon Sep 17 00:00:00 2001 From: Alexander Onnikov Date: Wed, 7 Oct 2026 10:13:37 +0700 Subject: [PATCH 37/55] fix: update base images to v20261006 (#385) Signed-off-by: Alexander Onnikov (ported from TraceX 44e4c88e28) Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- dev/import-tool/Dockerfile | 2 +- dev/tool/Dockerfile | 2 +- pods/account/Dockerfile | 2 +- pods/api/Dockerfile | 2 +- pods/backup/Dockerfile | 2 +- pods/collaborator/Dockerfile | 2 +- pods/front/Dockerfile | 2 +- pods/fulltext/Dockerfile | 2 +- pods/link-preview/Dockerfile | 2 +- pods/media/Dockerfile | 2 +- pods/preview/Dockerfile | 2 +- pods/server/Dockerfile | 2 +- pods/stats/Dockerfile | 2 +- pods/workspace/Dockerfile | 2 +- services/ai-bot/love-agent/Dockerfile | 2 +- services/ai-bot/pod-ai-bot/Dockerfile | 2 +- services/analytics-collector/pod-analytics-collector/Dockerfile | 2 +- services/backup/backup-api-pod/Dockerfile | 2 +- services/billing/pod-billing/Dockerfile | 2 +- services/calendar/pod-calendar-mailer/Dockerfile | 2 +- services/calendar/pod-calendar/Dockerfile | 2 +- services/datalake/pod-datalake/Dockerfile | 2 +- services/export/pod-export/Dockerfile | 2 +- services/github-next/github-next-service/Dockerfile | 2 +- services/github/pod-github/Dockerfile | 2 +- services/gmail/pod-gmail/Dockerfile | 2 +- services/love/Dockerfile | 2 +- services/mail/pod-mail-worker/Dockerfile | 2 +- services/mail/pod-mail/Dockerfile | 2 +- services/mcp/pod-mcp/Dockerfile | 2 +- services/notification/pod-events-processor/Dockerfile | 2 +- services/notification/pod-notification/Dockerfile | 2 +- services/payment/pod-payment/Dockerfile | 2 +- services/print/pod-print/Dockerfile | 2 +- services/process/Dockerfile | 2 +- services/rating/Dockerfile | 2 +- services/rekoni/Dockerfile | 2 +- services/sign/pod-sign/Dockerfile | 2 +- services/telegram-bot/pod-telegram-bot/Dockerfile | 2 +- services/telegram/pod-telegram/Dockerfile | 2 +- services/translate/Dockerfile | 2 +- services/worker/Dockerfile | 2 +- 42 files changed, 42 insertions(+), 42 deletions(-) diff --git a/dev/import-tool/Dockerfile b/dev/import-tool/Dockerfile index 82ad4e6a63..3c9bc562d5 100644 --- a/dev/import-tool/Dockerfile +++ b/dev/import-tool/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/dev/tool/Dockerfile b/dev/tool/Dockerfile index 82ad4e6a63..3c9bc562d5 100644 --- a/dev/tool/Dockerfile +++ b/dev/tool/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/pods/account/Dockerfile b/pods/account/Dockerfile index 877202a830..7f89613b8d 100644 --- a/pods/account/Dockerfile +++ b/pods/account/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/pods/api/Dockerfile b/pods/api/Dockerfile index 4eeca1b7a8..aa332b8b23 100644 --- a/pods/api/Dockerfile +++ b/pods/api/Dockerfile @@ -1,4 +1,4 @@ -FROM tracexapp/base-slim:v20260821 +FROM tracexapp/base-slim:v20261006 WORKDIR /app diff --git a/pods/backup/Dockerfile b/pods/backup/Dockerfile index 039d5bdac9..d5bb5d8922 100644 --- a/pods/backup/Dockerfile +++ b/pods/backup/Dockerfile @@ -1,5 +1,5 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/pods/collaborator/Dockerfile b/pods/collaborator/Dockerfile index 73822e4d26..cc6c81cede 100644 --- a/pods/collaborator/Dockerfile +++ b/pods/collaborator/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/pods/front/Dockerfile b/pods/front/Dockerfile index 267d0e53f5..c3045f18d9 100644 --- a/pods/front/Dockerfile +++ b/pods/front/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/front-base:v20260821 +FROM platformcollective/front-base:v20261006 WORKDIR /app COPY bundle/bundle.js ./ diff --git a/pods/fulltext/Dockerfile b/pods/fulltext/Dockerfile index 1ce168b5f0..e2119b4b87 100644 --- a/pods/fulltext/Dockerfile +++ b/pods/fulltext/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/pods/link-preview/Dockerfile b/pods/link-preview/Dockerfile index ae5c1c1210..f6308ee1ea 100644 --- a/pods/link-preview/Dockerfile +++ b/pods/link-preview/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /app diff --git a/pods/media/Dockerfile b/pods/media/Dockerfile index 414459c22c..808f633a1a 100644 --- a/pods/media/Dockerfile +++ b/pods/media/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/pods/preview/Dockerfile b/pods/preview/Dockerfile index 5730b268f5..0e28b22a2c 100644 --- a/pods/preview/Dockerfile +++ b/pods/preview/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/preview-base:v20260821 +FROM platformcollective/preview-base:v20261006 WORKDIR /app diff --git a/pods/server/Dockerfile b/pods/server/Dockerfile index 6434c2b238..9e6cf1790a 100644 --- a/pods/server/Dockerfile +++ b/pods/server/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base:v20260821 +FROM platformcollective/base:v20261006 WORKDIR /usr/src/app COPY bundle/model.json ./ diff --git a/pods/stats/Dockerfile b/pods/stats/Dockerfile index 7e22067cba..b6372bb4a4 100644 --- a/pods/stats/Dockerfile +++ b/pods/stats/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/pods/workspace/Dockerfile b/pods/workspace/Dockerfile index 5c259125ce..ec4a44eeb2 100644 --- a/pods/workspace/Dockerfile +++ b/pods/workspace/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/ai-bot/love-agent/Dockerfile b/services/ai-bot/love-agent/Dockerfile index a3b14a31a3..37d3dd1f91 100644 --- a/services/ai-bot/love-agent/Dockerfile +++ b/services/ai-bot/love-agent/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /usr/src/app RUN npm install -g pnpm@10 diff --git a/services/ai-bot/pod-ai-bot/Dockerfile b/services/ai-bot/pod-ai-bot/Dockerfile index 64d5f37479..96d2cf53fc 100644 --- a/services/ai-bot/pod-ai-bot/Dockerfile +++ b/services/ai-bot/pod-ai-bot/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/analytics-collector/pod-analytics-collector/Dockerfile b/services/analytics-collector/pod-analytics-collector/Dockerfile index fa3057ec81..92a36bff7a 100644 --- a/services/analytics-collector/pod-analytics-collector/Dockerfile +++ b/services/analytics-collector/pod-analytics-collector/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/backup/backup-api-pod/Dockerfile b/services/backup/backup-api-pod/Dockerfile index cd420f0916..e0f1927f52 100644 --- a/services/backup/backup-api-pod/Dockerfile +++ b/services/backup/backup-api-pod/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /app COPY bundle/bundle.js ./ diff --git a/services/billing/pod-billing/Dockerfile b/services/billing/pod-billing/Dockerfile index cd420f0916..e0f1927f52 100644 --- a/services/billing/pod-billing/Dockerfile +++ b/services/billing/pod-billing/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /app COPY bundle/bundle.js ./ diff --git a/services/calendar/pod-calendar-mailer/Dockerfile b/services/calendar/pod-calendar-mailer/Dockerfile index 2cb8d8ffdd..3171004b98 100644 --- a/services/calendar/pod-calendar-mailer/Dockerfile +++ b/services/calendar/pod-calendar-mailer/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/calendar/pod-calendar/Dockerfile b/services/calendar/pod-calendar/Dockerfile index 2cb8d8ffdd..3171004b98 100644 --- a/services/calendar/pod-calendar/Dockerfile +++ b/services/calendar/pod-calendar/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/datalake/pod-datalake/Dockerfile b/services/datalake/pod-datalake/Dockerfile index cd420f0916..e0f1927f52 100644 --- a/services/datalake/pod-datalake/Dockerfile +++ b/services/datalake/pod-datalake/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /app COPY bundle/bundle.js ./ diff --git a/services/export/pod-export/Dockerfile b/services/export/pod-export/Dockerfile index e798818d9c..7662849721 100644 --- a/services/export/pod-export/Dockerfile +++ b/services/export/pod-export/Dockerfile @@ -1,5 +1,5 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/github-next/github-next-service/Dockerfile b/services/github-next/github-next-service/Dockerfile index b07dc307ff..7309a6a5c6 100644 --- a/services/github-next/github-next-service/Dockerfile +++ b/services/github-next/github-next-service/Dockerfile @@ -1,4 +1,4 @@ -FROM tracexapp/base-slim:v20260821 +FROM tracexapp/base-slim:v20261006 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/github/pod-github/Dockerfile b/services/github/pod-github/Dockerfile index 73822e4d26..cc6c81cede 100644 --- a/services/github/pod-github/Dockerfile +++ b/services/github/pod-github/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/gmail/pod-gmail/Dockerfile b/services/gmail/pod-gmail/Dockerfile index d5d50bb11b..b18c937039 100644 --- a/services/gmail/pod-gmail/Dockerfile +++ b/services/gmail/pod-gmail/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/love/Dockerfile b/services/love/Dockerfile index 1438af50c0..ec46de5ee2 100644 --- a/services/love/Dockerfile +++ b/services/love/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/mail/pod-mail-worker/Dockerfile b/services/mail/pod-mail-worker/Dockerfile index b57e5f5ecc..4d7851bf58 100644 --- a/services/mail/pod-mail-worker/Dockerfile +++ b/services/mail/pod-mail-worker/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/mail/pod-mail/Dockerfile b/services/mail/pod-mail/Dockerfile index 8b7846eb2b..12790bcdcf 100644 --- a/services/mail/pod-mail/Dockerfile +++ b/services/mail/pod-mail/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/mcp/pod-mcp/Dockerfile b/services/mcp/pod-mcp/Dockerfile index bcb9adef37..3311a190f7 100644 --- a/services/mcp/pod-mcp/Dockerfile +++ b/services/mcp/pod-mcp/Dockerfile @@ -1,4 +1,4 @@ -FROM tracexapp/base-slim:v20260821 +FROM tracexapp/base-slim:v20261006 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/notification/pod-events-processor/Dockerfile b/services/notification/pod-events-processor/Dockerfile index 414459c22c..808f633a1a 100644 --- a/services/notification/pod-events-processor/Dockerfile +++ b/services/notification/pod-events-processor/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/notification/pod-notification/Dockerfile b/services/notification/pod-notification/Dockerfile index 70c37168ba..d7fe88b08e 100644 --- a/services/notification/pod-notification/Dockerfile +++ b/services/notification/pod-notification/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/payment/pod-payment/Dockerfile b/services/payment/pod-payment/Dockerfile index cd420f0916..e0f1927f52 100644 --- a/services/payment/pod-payment/Dockerfile +++ b/services/payment/pod-payment/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /app COPY bundle/bundle.js ./ diff --git a/services/print/pod-print/Dockerfile b/services/print/pod-print/Dockerfile index 8c42b5a653..4b5b83c3a1 100644 --- a/services/print/pod-print/Dockerfile +++ b/services/print/pod-print/Dockerfile @@ -1,5 +1,5 @@ -FROM platformcollective/print-base:v20260821 +FROM platformcollective/print-base:v20261006 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/process/Dockerfile b/services/process/Dockerfile index 414459c22c..808f633a1a 100644 --- a/services/process/Dockerfile +++ b/services/process/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/rating/Dockerfile b/services/rating/Dockerfile index 1ce168b5f0..e2119b4b87 100644 --- a/services/rating/Dockerfile +++ b/services/rating/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/rekoni/Dockerfile b/services/rekoni/Dockerfile index b8d10acd62..19f54e4c65 100644 --- a/services/rekoni/Dockerfile +++ b/services/rekoni/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/rekoni-base:v20260821 +FROM platformcollective/rekoni-base:v20261006 WORKDIR /usr/src/app RUN npm install --ignore-scripts=false --verbose pdfjs-dist@v6.2.108 unpdf@~1.8.1 --unsafe-perm diff --git a/services/sign/pod-sign/Dockerfile b/services/sign/pod-sign/Dockerfile index f83458bf3c..cbf577434c 100644 --- a/services/sign/pod-sign/Dockerfile +++ b/services/sign/pod-sign/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/telegram-bot/pod-telegram-bot/Dockerfile b/services/telegram-bot/pod-telegram-bot/Dockerfile index 1f9478d2dc..3bb78ba432 100644 --- a/services/telegram-bot/pod-telegram-bot/Dockerfile +++ b/services/telegram-bot/pod-telegram-bot/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/telegram/pod-telegram/Dockerfile b/services/telegram/pod-telegram/Dockerfile index 79e71bfbfa..ed74df716e 100644 --- a/services/telegram/pod-telegram/Dockerfile +++ b/services/telegram/pod-telegram/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/translate/Dockerfile b/services/translate/Dockerfile index 414459c22c..808f633a1a 100644 --- a/services/translate/Dockerfile +++ b/services/translate/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /usr/src/app COPY bundle/bundle.js ./ diff --git a/services/worker/Dockerfile b/services/worker/Dockerfile index 414459c22c..808f633a1a 100644 --- a/services/worker/Dockerfile +++ b/services/worker/Dockerfile @@ -1,4 +1,4 @@ -FROM platformcollective/base-slim:v20260821 +FROM platformcollective/base-slim:v20261006 WORKDIR /usr/src/app COPY bundle/bundle.js ./ From a30b0a21e3d2101c0bb680035f2d13edb99e1771 Mon Sep 17 00:00:00 2001 From: Artyom Savchenko Date: Wed, 7 Oct 2026 08:27:42 +0000 Subject: [PATCH 38/55] chore: update webpack plugins Manifest-only port of the compression-webpack-plugin / copy-webpack-plugin bumps from TraceX d7df59ba48 (the security-check workflow is not ported). Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- desktop/package.json | 4 ++-- dev/prod/package.json | 2 +- templates/package/package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/desktop/package.json b/desktop/package.json index 277f90279e..37777fbfb9 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -52,7 +52,7 @@ "postcss": "8.5.28", "postcss-loader": "^7.0.2", "postcss-load-config": "^4.0.1", - "compression-webpack-plugin": "^10.0.0", + "compression-webpack-plugin": "^12.0.0", "html-webpack-plugin": "^5.5.0", "fork-ts-checker-webpack-plugin": "^9.0.2", "update-browserslist-db": "^1.2.3", @@ -62,7 +62,7 @@ "ts-node-dev": "^2.0.0", "electron": "^43.4.1", "@types/node": "^24.13.3", - "copy-webpack-plugin": "^11.0.0", + "copy-webpack-plugin": "^14.0.0", "@typescript-eslint/eslint-plugin": "^8.67.0", "@typescript-eslint/parser": "^8.67.0", "eslint-plugin-n": "^18.3.0", diff --git a/dev/prod/package.json b/dev/prod/package.json index 716c54a1aa..22a44e2b90 100644 --- a/dev/prod/package.json +++ b/dev/prod/package.json @@ -41,7 +41,7 @@ "@types/node": "^24.13.3", "autoprefixer": "^10.4.14", "browserslist": "^4.28.2", - "compression-webpack-plugin": "^10.0.0", + "compression-webpack-plugin": "^12.0.0", "cross-env": "~7.0.3", "css-loader": "^5.2.1", "dotenv-webpack": "^8.0.1", diff --git a/templates/package/package.json b/templates/package/package.json index add06a4d6b..34b9219cee 100644 --- a/templates/package/package.json +++ b/templates/package/package.json @@ -23,7 +23,7 @@ "postcss": "8.5.28", "postcss-loader": "^7.0.2", "postcss-load-config": "^4.0.1", - "compression-webpack-plugin": "^10.0.0", + "compression-webpack-plugin": "^12.0.0", "html-webpack-plugin": "^5.5.0", "fork-ts-checker-webpack-plugin": "^9.0.2", "update-browserslist-db": "^1.2.3", From 9a55b465ec9fbadc47a4a6077a2407b8c2ae0df9 Mon Sep 17 00:00:00 2001 From: Artyom Savchenko Date: Wed, 7 Oct 2026 08:29:32 +0000 Subject: [PATCH 39/55] chore: align platform-only packages with ESLint 9 / Jest 30 Packages that do not exist in TraceX (chat, inbox, communication, gantt, translate, foundations/communication) got the same flat eslint.config.mjs and devDependency set that the TraceX ESLint/Jest update applied to other packages of the same rig profile. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- .../packages/client-query/eslint.config.mjs | 3 +++ .../packages/client-query/package.json | 21 ++++++++-------- .../packages/cockroach/eslint.config.mjs | 3 +++ .../packages/cockroach/package.json | 21 ++++++++-------- .../packages/query/eslint.config.mjs | 3 +++ .../communication/packages/query/package.json | 21 ++++++++-------- .../packages/rest-client/eslint.config.mjs | 3 +++ .../packages/rest-client/package.json | 21 ++++++++-------- .../packages/sdk-types/package.json | 21 ++++++++-------- .../packages/server/eslint.config.mjs | 3 +++ .../packages/server/package.json | 22 ++++++++-------- .../packages/shared/package.json | 21 ++++++++-------- .../communication/packages/types/package.json | 21 ++++++++-------- models/chat/eslint.config.mjs | 3 +++ models/chat/package.json | 20 +++++++-------- models/communication/eslint.config.mjs | 3 +++ packages/gantt/eslint.config.mjs | 3 +++ packages/gantt/package.json | 21 ++++++++-------- plugins/chat-assets/eslint.config.mjs | 3 +++ plugins/chat-resources/package.json | 25 +++++++++---------- plugins/chat/eslint.config.mjs | 3 +++ .../communication-assets/eslint.config.mjs | 3 +++ plugins/communication-assets/package.json | 22 ++++++++-------- .../communication-resources/eslint.config.mjs | 3 +++ plugins/communication/eslint.config.mjs | 3 +++ plugins/inbox-assets/eslint.config.mjs | 3 +++ plugins/inbox-assets/package.json | 22 ++++++++-------- plugins/inbox-resources/package.json | 25 +++++++++---------- plugins/inbox/eslint.config.mjs | 3 +++ plugins/inbox/package.json | 20 +++++++-------- services/translate/eslint.config.mjs | 3 +++ services/translate/package.json | 23 ++++++++--------- 32 files changed, 223 insertions(+), 172 deletions(-) create mode 100644 foundations/communication/packages/client-query/eslint.config.mjs create mode 100644 foundations/communication/packages/cockroach/eslint.config.mjs create mode 100644 foundations/communication/packages/query/eslint.config.mjs create mode 100644 foundations/communication/packages/rest-client/eslint.config.mjs create mode 100644 foundations/communication/packages/server/eslint.config.mjs create mode 100644 models/chat/eslint.config.mjs create mode 100644 models/communication/eslint.config.mjs create mode 100644 packages/gantt/eslint.config.mjs create mode 100644 plugins/chat-assets/eslint.config.mjs create mode 100644 plugins/chat/eslint.config.mjs create mode 100644 plugins/communication-assets/eslint.config.mjs create mode 100644 plugins/communication-resources/eslint.config.mjs create mode 100644 plugins/communication/eslint.config.mjs create mode 100644 plugins/inbox-assets/eslint.config.mjs create mode 100644 plugins/inbox/eslint.config.mjs create mode 100644 services/translate/eslint.config.mjs diff --git a/foundations/communication/packages/client-query/eslint.config.mjs b/foundations/communication/packages/client-query/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/foundations/communication/packages/client-query/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/foundations/communication/packages/client-query/package.json b/foundations/communication/packages/client-query/package.json index b8634605cb..865ddca75c 100644 --- a/foundations/communication/packages/client-query/package.json +++ b/foundations/communication/packages/client-query/package.json @@ -24,19 +24,20 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@types/jest": "^30.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", "esbuild": "^0.25.10", "esbuild-plugin-copy": "~2.1.1", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", "prettier": "^3.6.2", - "typescript": "^5.9.3" + "typescript": "^5.9.3", + "eslint-config-love": "^157.0.0", + "eslint-plugin-svelte": "^3.23.0", + "ts-jest": "^29.4.12" }, "dependencies": { "@hcengineering/communication-types": "workspace:^0.7.12", diff --git a/foundations/communication/packages/cockroach/eslint.config.mjs b/foundations/communication/packages/cockroach/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/foundations/communication/packages/cockroach/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/foundations/communication/packages/cockroach/package.json b/foundations/communication/packages/cockroach/package.json index 2cc282b958..a8bbd29ac5 100644 --- a/foundations/communication/packages/cockroach/package.json +++ b/foundations/communication/packages/cockroach/package.json @@ -24,21 +24,22 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", "esbuild": "^0.25.10", "esbuild-plugin-copy": "~2.1.1", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", "prettier": "^3.6.2", "typescript": "^5.9.3", - "@types/uuid": "^8.3.1" + "@types/uuid": "^8.3.1", + "eslint-config-love": "^157.0.0", + "eslint-plugin-svelte": "^3.23.0", + "ts-jest": "^29.4.12" }, "dependencies": { "@hcengineering/communication-types": "workspace:^0.7.12", diff --git a/foundations/communication/packages/query/eslint.config.mjs b/foundations/communication/packages/query/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/foundations/communication/packages/query/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/foundations/communication/packages/query/package.json b/foundations/communication/packages/query/package.json index 0a94da10ca..58fd7d6bde 100644 --- a/foundations/communication/packages/query/package.json +++ b/foundations/communication/packages/query/package.json @@ -24,20 +24,21 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", "esbuild": "^0.25.10", "esbuild-plugin-copy": "~2.1.1", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", + "@types/jest": "^30.0.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "@types/uuid": "^8.3.1" + "@types/uuid": "^8.3.1", + "eslint-config-love": "^157.0.0", + "eslint-plugin-svelte": "^3.23.0", + "ts-jest": "^29.4.12" }, "dependencies": { "@hcengineering/communication-sdk-types": "workspace:^0.7.12", diff --git a/foundations/communication/packages/rest-client/eslint.config.mjs b/foundations/communication/packages/rest-client/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/foundations/communication/packages/rest-client/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/foundations/communication/packages/rest-client/package.json b/foundations/communication/packages/rest-client/package.json index b78c148777..79c15ed382 100644 --- a/foundations/communication/packages/rest-client/package.json +++ b/foundations/communication/packages/rest-client/package.json @@ -24,20 +24,21 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", "esbuild": "^0.25.10", "esbuild-plugin-copy": "~2.1.1", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", + "@types/jest": "^30.0.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "@types/snappyjs": "^0.7.1" + "@types/snappyjs": "^0.7.1", + "eslint-config-love": "^157.0.0", + "eslint-plugin-svelte": "^3.23.0", + "ts-jest": "^29.4.12" }, "dependencies": { "@hcengineering/communication-types": "workspace:^0.7.12", diff --git a/foundations/communication/packages/sdk-types/package.json b/foundations/communication/packages/sdk-types/package.json index 7d9fcae75b..fe00ffe5d3 100644 --- a/foundations/communication/packages/sdk-types/package.json +++ b/foundations/communication/packages/sdk-types/package.json @@ -24,19 +24,20 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", "esbuild": "^0.25.10", "esbuild-plugin-copy": "~2.1.1", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", + "@types/jest": "^30.0.0", "prettier": "^3.6.2", - "typescript": "^5.9.3" + "typescript": "^5.9.3", + "eslint-config-love": "^157.0.0", + "eslint-plugin-svelte": "^3.23.0", + "ts-jest": "^29.4.12" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/foundations/communication/packages/server/eslint.config.mjs b/foundations/communication/packages/server/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/foundations/communication/packages/server/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/foundations/communication/packages/server/package.json b/foundations/communication/packages/server/package.json index bc892c856a..8e169f945d 100644 --- a/foundations/communication/packages/server/package.json +++ b/foundations/communication/packages/server/package.json @@ -26,22 +26,22 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", + "@types/jest": "^30.0.0", "@types/node": "^24.13.3", "@types/uuid": "^8.3.1", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", "esbuild": "^0.25.10", "esbuild-plugin-copy": "~2.1.1", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", "prettier": "^3.6.2", - "ts-jest": "^29.1.1", - "typescript": "^5.9.3" + "ts-jest": "^29.4.12", + "typescript": "^5.9.3", + "eslint-config-love": "^157.0.0", + "eslint-plugin-svelte": "^3.23.0" }, "dependencies": { "@hcengineering/account-client": "workspace:^0.7.25", diff --git a/foundations/communication/packages/shared/package.json b/foundations/communication/packages/shared/package.json index 5082787772..eaad6a156e 100644 --- a/foundations/communication/packages/shared/package.json +++ b/foundations/communication/packages/shared/package.json @@ -24,19 +24,20 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", "esbuild": "^0.25.10", "esbuild-plugin-copy": "~2.1.1", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", + "@types/jest": "^30.0.0", "prettier": "^3.6.2", - "typescript": "^5.9.3" + "typescript": "^5.9.3", + "eslint-config-love": "^157.0.0", + "eslint-plugin-svelte": "^3.23.0", + "ts-jest": "^29.4.12" }, "dependencies": { "@hcengineering/communication-types": "workspace:^0.7.12", diff --git a/foundations/communication/packages/types/package.json b/foundations/communication/packages/types/package.json index 35d460e14c..5211b6a215 100644 --- a/foundations/communication/packages/types/package.json +++ b/foundations/communication/packages/types/package.json @@ -24,19 +24,20 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", "esbuild": "^0.25.10", "esbuild-plugin-copy": "~2.1.1", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "jest": "^30.4.2", + "@types/jest": "^30.0.0", "prettier": "^3.6.2", - "typescript": "^5.9.3" + "typescript": "^5.9.3", + "eslint-config-love": "^157.0.0", + "eslint-plugin-svelte": "^3.23.0", + "ts-jest": "^29.4.12" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26" diff --git a/models/chat/eslint.config.mjs b/models/chat/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/chat/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/models/chat/package.json b/models/chat/package.json index a757d9d23e..44aed37a61 100644 --- a/models/chat/package.json +++ b/models/chat/package.json @@ -19,19 +19,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "@types/jest": "^29.5.5", - "ts-jest": "^29.1.1" + "jest": "^30.4.2", + "@types/jest": "^30.0.0", + "ts-jest": "^29.4.12", + "eslint-config-love": "^157.0.0", + "eslint-plugin-svelte": "^3.23.0" }, "dependencies": { "@hcengineering/card": "workspace:^0.7.0", diff --git a/models/communication/eslint.config.mjs b/models/communication/eslint.config.mjs new file mode 100644 index 0000000000..c17c378bf4 --- /dev/null +++ b/models/communication/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/model/eslint.config.mjs' + +export default config diff --git a/packages/gantt/eslint.config.mjs b/packages/gantt/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/packages/gantt/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/packages/gantt/package.json b/packages/gantt/package.json index a2aad0c328..63b5cf65c4 100644 --- a/packages/gantt/package.json +++ b/packages/gantt/package.json @@ -25,19 +25,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "typescript": "^5.9.3", - "eslint-plugin-svelte": "^2.35.1" + "eslint-plugin-svelte": "^3.23.0", + "eslint-config-love": "^157.0.0" }, "dependencies": {}, "repository": { diff --git a/plugins/chat-assets/eslint.config.mjs b/plugins/chat-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/chat-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/chat-resources/package.json b/plugins/chat-resources/package.json index 11476a72a4..249e2b16b3 100644 --- a/plugins/chat-resources/package.json +++ b/plugins/chat-resources/package.json @@ -17,25 +17,24 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", - "jest": "^29.7.0", + "@types/jest": "^30.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", + "jest": "^30.4.2", "prettier": "^3.6.2", "prettier-plugin-svelte": "^3.4.0", "sass": "^1.80.0", "svelte-check": "^3.6.9", - "svelte-eslint-parser": "^0.33.1", + "svelte-eslint-parser": "^1.8.1", "svelte-loader": "^3.2.0", "svelte-preprocess": "^5.1.4", - "ts-jest": "^29.1.1", - "typescript": "^5.9.3" + "ts-jest": "^29.4.12", + "typescript": "^5.9.3", + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/plugins/chat/eslint.config.mjs b/plugins/chat/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/chat/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/communication-assets/eslint.config.mjs b/plugins/communication-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/communication-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/communication-assets/package.json b/plugins/communication-assets/package.json index 5a20c18bc4..ffb152e9d4 100644 --- a/plugins/communication-assets/package.json +++ b/plugins/communication-assets/package.json @@ -18,19 +18,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-config-love": "^157.0.0", + "eslint-plugin-svelte": "^3.23.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/communication-resources/eslint.config.mjs b/plugins/communication-resources/eslint.config.mjs new file mode 100644 index 0000000000..f1ad4ff026 --- /dev/null +++ b/plugins/communication-resources/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/ui/eslint.config.mjs' + +export default config diff --git a/plugins/communication/eslint.config.mjs b/plugins/communication/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/communication/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/inbox-assets/eslint.config.mjs b/plugins/inbox-assets/eslint.config.mjs new file mode 100644 index 0000000000..f7b605c3e9 --- /dev/null +++ b/plugins/inbox-assets/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/assets/eslint.config.mjs' + +export default config diff --git a/plugins/inbox-assets/package.json b/plugins/inbox-assets/package.json index a6d8794dfd..b814db232d 100644 --- a/plugins/inbox-assets/package.json +++ b/plugins/inbox-assets/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint": "^8.54.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint": "^9.39.5", "prettier": "^3.6.2", "@types/node": "^24.13.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", - "typescript": "^5.9.3" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "typescript": "^5.9.3", + "eslint-config-love": "^157.0.0", + "eslint-plugin-svelte": "^3.23.0" }, "dependencies": { "@hcengineering/platform": "workspace:^0.7.20", diff --git a/plugins/inbox-resources/package.json b/plugins/inbox-resources/package.json index 31ee56cb03..cc8dc6d621 100644 --- a/plugins/inbox-resources/package.json +++ b/plugins/inbox-resources/package.json @@ -17,25 +17,24 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@types/jest": "^29.5.5", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", - "jest": "^29.7.0", + "@types/jest": "^30.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-svelte": "^3.23.0", + "jest": "^30.4.2", "prettier": "^3.6.2", "prettier-plugin-svelte": "^3.4.0", "sass": "^1.80.0", "svelte-check": "^3.6.9", - "svelte-eslint-parser": "^0.33.1", + "svelte-eslint-parser": "^1.8.1", "svelte-loader": "^3.2.0", "svelte-preprocess": "^5.1.4", - "ts-jest": "^29.1.1", - "typescript": "^5.9.3" + "ts-jest": "^29.4.12", + "typescript": "^5.9.3", + "eslint-config-love": "^157.0.0" }, "dependencies": { "@hcengineering/analytics": "workspace:^0.7.19", diff --git a/plugins/inbox/eslint.config.mjs b/plugins/inbox/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/plugins/inbox/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/plugins/inbox/package.json b/plugins/inbox/package.json index 6c716cc5b4..b33afd51f4 100644 --- a/plugins/inbox/package.json +++ b/plugins/inbox/package.json @@ -23,18 +23,18 @@ }, "devDependencies": { "@hcengineering/platform-rig": "workspace:^0.7.21", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-n": "^15.4.0", - "eslint": "^8.54.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint-config-standard-with-typescript": "^40.0.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-n": "^18.3.0", + "eslint": "^9.39.5", + "@typescript-eslint/parser": "^8.67.0", "prettier": "^3.6.2", "typescript": "^5.9.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5" + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", + "eslint-config-love": "^157.0.0", + "eslint-plugin-svelte": "^3.23.0" }, "dependencies": { "@hcengineering/core": "workspace:^0.7.26", diff --git a/services/translate/eslint.config.mjs b/services/translate/eslint.config.mjs new file mode 100644 index 0000000000..3f947867b4 --- /dev/null +++ b/services/translate/eslint.config.mjs @@ -0,0 +1,3 @@ +import config from '@hcengineering/platform-rig/profiles/default/eslint.config.mjs' + +export default config diff --git a/services/translate/package.json b/services/translate/package.json index b943ac73b0..c64382a645 100644 --- a/services/translate/package.json +++ b/services/translate/package.json @@ -33,23 +33,22 @@ "@tsconfig/node16": "^1.0.4", "@types/node": "^24.13.3", "@types/ws": "^8.18.1", - "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^8.67.0", "@hcengineering/platform-rig": "workspace:^0.7.21", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "@types/jest": "^29.5.5", + "jest": "^30.4.2", + "ts-jest": "^29.4.12", + "@types/jest": "^30.0.0", "@types/uuid": "^8.3.1", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/parser": "^8.67.0", "esbuild": "^0.25.10", - "eslint": "^8.54.0", - "eslint-config-standard-with-typescript": "^40.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.4.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.1.1", + "eslint": "^9.39.5", + "eslint-plugin-n": "^18.3.0", + "eslint-plugin-promise": "^7.3.0", "prettier": "^3.6.2", "ts-node": "^10.9.2", - "typescript": "^5.9.3" + "typescript": "^5.9.3", + "eslint-config-love": "^157.0.0", + "eslint-plugin-svelte": "^3.23.0" }, "dependencies": { "@hcengineering/account-client": "workspace:^0.7.25", From 38f446738aad047f67650d5c4e779e7aca778e62 Mon Sep 17 00:00:00 2001 From: Artem Savchenko Date: Wed, 7 Oct 2026 15:47:32 +0700 Subject: [PATCH 40/55] Update lock file Signed-off-by: Artem Savchenko --- common/config/rush/pnpm-lock.yaml | 29678 ++++++++++++++-------------- 1 file changed, 15034 insertions(+), 14644 deletions(-) diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index b091421b53..640812fe0b 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -631,20 +631,20 @@ importers: specifier: ^16.4.5 version: 16.6.1 electron-context-menu: - specifier: ^4.0.4 - version: 4.1.1 + specifier: ^4.1.2 + version: 4.1.2 electron-log: - specifier: ^5.1.7 - version: 5.4.3 + specifier: ^5.4.4 + version: 5.4.4 electron-squirrel-startup: - specifier: ~1.0.0 + specifier: ~1.0.1 version: 1.0.1 electron-store: specifier: ^8.2.0 version: 8.2.0 electron-updater: - specifier: ^6.3.4 - version: 6.6.2 + specifier: ^6.8.9 + version: 6.8.9 electron-windows-badge: specifier: ^1.1.0 version: 1.1.0 @@ -662,11 +662,11 @@ importers: specifier: workspace:^0.7.21 version: link:../foundations/utils/packages/platform-rig '@testing-library/jest-dom': - specifier: ^6.6.3 + specifier: 6.9.1 version: 6.9.1 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 @@ -674,89 +674,92 @@ importers: specifier: ^8.18.1 version: 8.18.1 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@vercel/webpack-asset-relocator-loader': specifier: ^1.7.3 - version: 1.10.0(encoding@0.1.13) + version: 1.10.0 autoprefixer: specifier: ^10.4.14 - version: 10.4.21(postcss@8.5.6) + version: 10.4.21(postcss@8.5.28) browserslist: specifier: ^4.28.2 version: 4.28.2 compression-webpack-plugin: - specifier: ^10.0.0 - version: 10.0.0(webpack@5.102.1) + specifier: ^12.0.0 + version: 12.0.0(webpack@5.111.1) copy-webpack-plugin: - specifier: ^11.0.0 - version: 11.0.0(webpack@5.102.1) + specifier: ^14.0.0 + version: 14.0.0(webpack@5.111.1) cross-env: specifier: ~7.0.3 version: 7.0.3 css-loader: specifier: ^5.2.1 - version: 5.2.7(webpack@5.102.1) + version: 5.2.7(webpack@5.111.1) dotenv-webpack: specifier: ^8.0.1 - version: 8.1.1(webpack@5.102.1) + version: 8.1.1(webpack@5.111.1) electron: - specifier: ^38.2.2 - version: 38.6.0 + specifier: ^43.4.1 + version: 43.7.8 esbuild: specifier: ^0.25.10 version: 0.25.12 esbuild-loader: specifier: ^4.3.0 - version: 4.4.0(webpack@5.102.1) - eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) - eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + version: 4.4.0(webpack@5.111.1) + eslint: + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + eslint-plugin-n: + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + eslint-plugin-promise: + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) file-loader: specifier: ^6.2.0 - version: 6.2.0(webpack@5.102.1) + version: 6.2.0(webpack@5.111.1) fork-ts-checker-webpack-plugin: specifier: ^9.0.2 - version: 9.1.0(typescript@5.9.3)(webpack@5.102.1) + version: 9.1.0(typescript@5.9.3)(webpack@5.111.1) html-webpack-plugin: specifier: ^5.5.0 - version: 5.6.4(webpack@5.102.1) + version: 5.6.4(webpack@5.111.1) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest-environment-jsdom: - specifier: ^30.2.0 - version: 30.2.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + specifier: ^30.4.1 + version: 30.5.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) mini-css-extract-plugin: specifier: ^2.2.0 - version: 2.9.4(webpack@5.102.1) + version: 2.9.4(webpack@5.111.1) node-loader: specifier: ~2.0.0 - version: 2.0.0(webpack@5.102.1) + version: 2.0.0(webpack@5.111.1) postcss: - specifier: ^8.4.20 - version: 8.5.6 + specifier: 8.5.28 + version: 8.5.28 postcss-load-config: specifier: ^4.0.1 - version: 4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + version: 4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) postcss-loader: specifier: ^7.0.2 - version: 7.3.4(postcss@8.5.6)(typescript@5.9.3)(webpack@5.102.1) + version: 7.3.4(postcss@8.5.28)(typescript@5.9.3)(webpack@5.111.1) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -765,25 +768,25 @@ importers: version: 1.93.3 sass-loader: specifier: ^14.0.0 - version: 14.2.1(sass@1.93.3)(webpack@5.102.1) + version: 14.2.1(sass@1.93.3)(webpack@5.111.1) style-loader: specifier: ^3.3.1 - version: 3.3.4(webpack@5.102.1) + version: 3.3.4(webpack@5.111.1) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) svgo-loader: specifier: ^3.0.0 version: 3.0.3 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-loader: specifier: ^9.2.5 - version: 9.5.4(typescript@5.9.3)(webpack@5.102.1) + version: 9.5.4(typescript@5.9.3)(webpack@5.111.1) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -797,17 +800,17 @@ importers: specifier: ^1.2.3 version: 1.2.3(browserslist@4.28.2) webpack: - specifier: ^5.97.1 - version: 5.102.1(esbuild@0.25.12)(webpack-cli@5.1.4) + specifier: ^5.110.3 + version: 5.111.1(esbuild@0.25.12)(postcss@8.5.28)(webpack-cli@5.1.4) webpack-bundle-analyzer: specifier: ^4.10.2 version: 4.10.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) webpack-cli: specifier: ^5.1.4 - version: 5.1.4(webpack-bundle-analyzer@4.10.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(webpack-dev-server@4.15.2)(webpack@5.102.1) + version: 5.1.4(webpack-bundle-analyzer@4.10.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(webpack-dev-server@6.0.0)(webpack@5.111.1) webpack-dev-server: - specifier: ^4.15.2 - version: 4.15.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)(webpack-cli@5.1.4)(webpack@5.102.1) + specifier: ^6.0.0 + version: 6.0.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)(webpack-cli@5.1.4)(webpack@5.111.1) ../../desktop-package: dependencies: @@ -815,7 +818,7 @@ importers: specifier: ^16.4.5 version: 16.6.1 electron-squirrel-startup: - specifier: ~1.0.0 + specifier: ~1.0.1 version: 1.0.1 devDependencies: '@electron/notarize': @@ -831,41 +834,44 @@ importers: specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@vercel/webpack-asset-relocator-loader': specifier: ^1.7.3 - version: 1.10.0(encoding@0.1.13) + version: 1.10.0 cross-env: specifier: ~7.0.3 version: 7.0.3 electron: - specifier: ^38.2.2 - version: 38.6.0 + specifier: ^43.4.1 + version: 43.7.8 electron-builder: - specifier: ^25.1.8 - version: 25.1.8 - eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) - eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^26.15.3 + version: 26.15.3 + eslint: + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + eslint-plugin-n: + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + eslint-plugin-promise: + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) node-loader: specifier: ~2.0.0 - version: 2.0.0(webpack@5.102.1) + version: 2.0.0(webpack@5.111.1) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -912,7 +918,7 @@ importers: specifier: ^14.0.0 version: 14.0.2 docx4js: - specifier: ^3.2.20 + specifier: ^3.3.0 version: 3.3.0 domhandler: specifier: ^5.0.3 @@ -921,8 +927,8 @@ importers: specifier: ^3.1.0 version: 3.2.2 htmlparser2: - specifier: ^9.0.0 - version: 9.1.0 + specifier: ~10.1.0 + version: 10.1.0 mammoth: specifier: ^1.9.0 version: 1.11.0 @@ -940,8 +946,8 @@ importers: specifier: ^3.10.7 version: 3.10.7 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/minio': specifier: ~7.0.11 version: 7.0.18 @@ -949,11 +955,11 @@ importers: specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -961,29 +967,32 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -1009,8 +1018,8 @@ importers: specifier: ^14.0.0 version: 14.0.2 js-yaml: - specifier: ^4.1.0 - version: 4.1.0 + specifier: ^4.3.2 + version: 4.3.2 mammoth: specifier: ^1.9.0 version: 1.11.0 @@ -1019,8 +1028,8 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/js-yaml': specifier: ^4.0.9 version: 4.0.9 @@ -1028,11 +1037,11 @@ importers: specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -1040,29 +1049,32 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -1805,72 +1817,96 @@ importers: '@types/node': specifier: ^24.13.3 version: 24.13.6 + '@typescript-eslint/eslint-plugin': + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/parser': + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) autoprefixer: specifier: ^10.4.14 - version: 10.4.21(postcss@8.5.6) + version: 10.4.21(postcss@8.5.28) browserslist: specifier: ^4.28.2 version: 4.28.2 compression-webpack-plugin: - specifier: ^10.0.0 - version: 10.0.0(webpack@5.102.1) + specifier: ^12.0.0 + version: 12.0.0(webpack@5.111.1) cross-env: specifier: ~7.0.3 version: 7.0.3 css-loader: specifier: ^5.2.1 - version: 5.2.7(webpack@5.102.1) + version: 5.2.7(webpack@5.111.1) dotenv-webpack: specifier: ^8.0.1 - version: 8.1.1(webpack@5.102.1) + version: 8.1.1(webpack@5.111.1) esbuild: specifier: ^0.25.10 version: 0.25.12 esbuild-loader: specifier: ^4.3.0 - version: 4.4.0(webpack@5.102.1) + version: 4.4.0(webpack@5.111.1) + eslint: + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + eslint-plugin-n: + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + eslint-plugin-promise: + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) file-loader: specifier: ^6.2.0 - version: 6.2.0(webpack@5.102.1) + version: 6.2.0(webpack@5.111.1) fork-ts-checker-webpack-plugin: specifier: ^9.0.2 - version: 9.1.0(typescript@5.9.3)(webpack@5.102.1) + version: 9.1.0(typescript@5.9.3)(webpack@5.111.1) html-webpack-plugin: specifier: ^5.5.0 - version: 5.6.4(webpack@5.102.1) + version: 5.6.4(webpack@5.111.1) mini-css-extract-plugin: specifier: ^2.2.0 - version: 2.9.4(webpack@5.102.1) + version: 2.9.4(webpack@5.111.1) postcss: - specifier: ^8.4.20 - version: 8.5.6 + specifier: 8.5.28 + version: 8.5.28 postcss-load-config: specifier: ^4.0.1 - version: 4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + version: 4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) postcss-loader: specifier: ^7.0.2 - version: 7.3.4(postcss@8.5.6)(typescript@5.9.3)(webpack@5.102.1) + version: 7.3.4(postcss@8.5.28)(typescript@5.9.3)(webpack@5.111.1) sass: specifier: ^1.80.0 version: 1.93.3 sass-loader: specifier: ^14.0.0 - version: 14.2.1(sass@1.93.3)(webpack@5.102.1) + version: 14.2.1(sass@1.93.3)(webpack@5.111.1) style-loader: specifier: ^3.3.1 - version: 3.3.4(webpack@5.102.1) + version: 3.3.4(webpack@5.111.1) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) svgo-loader: specifier: ^3.0.0 version: 3.0.3 ts-loader: specifier: ^9.2.5 - version: 9.5.4(typescript@5.9.3)(webpack@5.102.1) + version: 9.5.4(typescript@5.9.3)(webpack@5.111.1) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -1878,17 +1914,17 @@ importers: specifier: ^1.2.3 version: 1.2.3(browserslist@4.28.2) webpack: - specifier: ^5.97.1 - version: 5.102.1(esbuild@0.25.12)(webpack-cli@5.1.4) + specifier: ^5.110.3 + version: 5.111.1(esbuild@0.25.12)(postcss@8.5.28)(webpack-cli@5.1.4) webpack-bundle-analyzer: specifier: ^4.10.2 version: 4.10.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) webpack-cli: specifier: ^5.1.4 - version: 5.1.4(webpack-bundle-analyzer@4.10.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(webpack-dev-server@4.15.2)(webpack@5.102.1) + version: 5.1.4(webpack-bundle-analyzer@4.10.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(webpack-dev-server@6.0.0)(webpack@5.111.1) webpack-dev-server: - specifier: ^4.15.2 - version: 4.15.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)(webpack-cli@5.1.4)(webpack@5.102.1) + specifier: ^6.0.0 + version: 6.0.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)(webpack-cli@5.1.4)(webpack@5.111.1) ../../dev/tool: dependencies: @@ -1896,8 +1932,8 @@ importers: specifier: ^7.17.14 version: 7.17.14 '@faker-js/faker': - specifier: ^8.4.1 - version: 8.4.1 + specifier: ^10.6.0 + version: 10.6.0 '@hcengineering/account': specifier: workspace:^0.7.0 version: link:../../server/account @@ -2253,8 +2289,8 @@ importers: specifier: ^14.0.0 version: 14.0.2 csv-parse: - specifier: ~5.1.0 - version: 5.1.0 + specifier: ~7.0.2 + version: 7.0.3 email-addresses: specifier: ^5.0.0 version: 5.0.0 @@ -2269,7 +2305,7 @@ importers: version: 2.1.35 mongodb: specifier: ^6.16.0 - version: 6.20.0(gcp-metadata@5.3.0(encoding@0.1.13))(snappy@7.3.3)(socks@2.8.7) + version: 6.20.0(gcp-metadata@5.3.0)(snappy@7.3.3)(socks@2.8.7) msgpackr: specifier: ^1.11.2 version: 1.11.5 @@ -2277,8 +2313,8 @@ importers: specifier: ^3.0.3 version: 3.0.3 postgres: - specifier: ^3.4.7 - version: 3.4.7 + specifier: ^3.4.9 + version: 3.4.9 utf-8-validate: specifier: ^6.0.4 version: 6.0.5 @@ -2290,8 +2326,8 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/js-yaml': specifier: ^4.0.9 version: 4.0.9 @@ -2305,17 +2341,17 @@ importers: specifier: ^24.13.3 version: 24.13.6 '@types/request': - specifier: ~2.48.8 + specifier: ~2.48.13 version: 2.48.13 '@types/ws': specifier: ^8.18.1 version: 8.18.1 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -2323,29 +2359,32 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -2375,14 +2414,14 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) esbuild: specifier: ^0.25.10 version: 0.25.12 @@ -2390,26 +2429,29 @@ importers: specifier: ~2.1.1 version: 2.1.1(esbuild@0.25.12) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 + ts-jest: + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -2436,8 +2478,8 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 @@ -2445,11 +2487,11 @@ importers: specifier: ^8.3.1 version: 8.3.4 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) esbuild: specifier: ^0.25.10 version: 0.25.12 @@ -2457,26 +2499,29 @@ importers: specifier: ~2.1.1 version: 2.1.1(esbuild@0.25.12) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 + ts-jest: + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -2506,17 +2551,17 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/uuid': specifier: ^8.3.1 version: 8.3.4 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) esbuild: specifier: ^0.25.10 version: 0.25.12 @@ -2524,26 +2569,29 @@ importers: specifier: ~2.1.1 version: 2.1.1(esbuild@0.25.12) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 + ts-jest: + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -2570,17 +2618,17 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/snappyjs': specifier: ^0.7.1 version: 0.7.1 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) esbuild: specifier: ^0.25.10 version: 0.25.12 @@ -2588,26 +2636,29 @@ importers: specifier: ~2.1.1 version: 2.1.1(esbuild@0.25.12) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 + ts-jest: + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -2625,14 +2676,14 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) esbuild: specifier: ^0.25.10 version: 0.25.12 @@ -2640,26 +2691,29 @@ importers: specifier: ~2.1.1 version: 2.1.1(esbuild@0.25.12) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 + ts-jest: + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -2707,8 +2761,8 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 @@ -2716,11 +2770,11 @@ importers: specifier: ^8.3.1 version: 8.3.4 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) esbuild: specifier: ^0.25.10 version: 0.25.12 @@ -2728,29 +2782,29 @@ importers: specifier: ~2.1.1 version: 2.1.1(esbuild@0.25.12) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -2771,14 +2825,14 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) esbuild: specifier: ^0.25.10 version: 0.25.12 @@ -2786,26 +2840,29 @@ importers: specifier: ~2.1.1 version: 2.1.1(esbuild@0.25.12) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 + ts-jest: + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -2820,14 +2877,14 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) esbuild: specifier: ^0.25.10 version: 0.25.12 @@ -2835,26 +2892,29 @@ importers: specifier: ~2.1.1 version: 2.1.1(esbuild@0.25.12) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 + ts-jest: + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -2872,17 +2932,17 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -2890,32 +2950,32 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -2930,41 +2990,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -2994,41 +3054,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -3067,8 +3127,8 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 @@ -3079,38 +3139,38 @@ importers: specifier: ^8.18.1 version: 8.18.1 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -3135,44 +3195,44 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -3202,8 +3262,8 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 @@ -3214,38 +3274,38 @@ importers: specifier: ^8.18.1 version: 8.18.1 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -3263,17 +3323,17 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -3281,32 +3341,32 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -3330,44 +3390,44 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -3385,17 +3445,17 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -3403,32 +3463,32 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -3439,38 +3499,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ../../foundations/core/packages/measurements-otlp: dependencies: @@ -3524,38 +3584,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ../../foundations/core/packages/model: dependencies: @@ -3588,8 +3648,8 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 @@ -3597,38 +3657,38 @@ importers: specifier: ^2.0.3 version: 2.0.7 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -3643,41 +3703,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -3685,48 +3745,48 @@ importers: ../../foundations/core/packages/postgres-base: dependencies: postgres: - specifier: ^3.4.7 - version: 3.4.7 + specifier: ^3.4.9 + version: 3.4.9 devDependencies: '@hcengineering/platform-rig': specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ../../foundations/core/packages/query: dependencies: @@ -3747,41 +3807,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -3799,41 +3859,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -3844,44 +3904,44 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -3902,44 +3962,44 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -3960,44 +4020,44 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -4012,17 +4072,17 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -4030,29 +4090,32 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -4190,44 +4253,44 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/markdown-it': specifier: ~13.0.0 version: 13.0.9 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -4248,47 +4311,47 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/markdown-it': specifier: ~13.0.0 version: 13.0.9 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest-environment-jsdom: - specifier: ^30.2.0 - version: 30.2.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) + specifier: ^30.4.1 + version: 30.5.2(bufferutil@4.0.9)(utf-8-validate@6.0.5) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -4299,48 +4362,48 @@ importers: specifier: workspace:^0.7.19 version: link:../text-core htmlparser2: - specifier: ^9.0.0 - version: 9.1.0 + specifier: ~10.1.0 + version: 10.1.0 devDependencies: '@hcengineering/platform-rig': specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -4364,44 +4427,44 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/markdown-it': specifier: ~13.0.0 version: 13.0.9 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -4428,47 +4491,47 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) fast-equals: specifier: ^5.2.2 version: 5.3.2 jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest-environment-jsdom: - specifier: ^30.2.0 - version: 30.2.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) + specifier: ^30.4.1 + version: 30.5.2(bufferutil@4.0.9)(utf-8-validate@6.0.5) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -4488,54 +4551,51 @@ importers: specifier: ^0.5.6 version: 0.5.6 uuid: - specifier: ^8.3.2 - version: 8.3.2 + specifier: ^11.1.1 + version: 11.1.1 devDependencies: '@hcengineering/platform-rig': specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 - '@types/uuid': - specifier: ^8.3.1 - version: 8.3.4 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -4571,50 +4631,47 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 - '@types/uuid': - specifier: ^8.3.1 - version: 8.3.4 '@types/ws': specifier: ^8.18.1 version: 8.18.1 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -4644,44 +4701,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -4713,54 +4767,48 @@ importers: specifier: ^5.2.2 version: 5.3.2 uuid: - specifier: ^8.3.2 - version: 8.3.2 + specifier: ^11.1.1 + version: 11.1.1 devDependencies: '@hcengineering/platform-rig': specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 - '@types/uuid': - specifier: ^8.3.1 - version: 8.3.4 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -4784,44 +4832,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -4851,41 +4896,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -4915,44 +4957,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -4982,44 +5021,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -5055,44 +5091,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -5116,44 +5149,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -5174,50 +5204,47 @@ importers: version: 6.10.4 mongodb: specifier: ^6.16.0 - version: 6.20.0(gcp-metadata@5.3.0(encoding@0.1.13))(snappy@7.3.3)(socks@2.8.7) + version: 6.20.0(gcp-metadata@5.3.0)(snappy@7.3.3)(socks@2.8.7) devDependencies: '@hcengineering/platform-rig': specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -5237,51 +5264,48 @@ importers: specifier: workspace:^0.7.19 version: link:../core postgres: - specifier: ^3.4.7 - version: 3.4.7 + specifier: ^3.4.9 + version: 3.4.9 devDependencies: '@hcengineering/platform-rig': specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -5317,44 +5341,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -5390,47 +5411,44 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -5472,47 +5490,44 @@ importers: specifier: workspace:^0.7.21 version: link:../../../utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -5522,12 +5537,15 @@ importers: ../../foundations/utils/packages/platform-rig: dependencies: + '@stylistic/eslint-plugin': + specifier: ^5.10.0 + version: 5.10.0(eslint@9.39.5(jiti@2.7.0)) '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) esbuild: specifier: ^0.25.10 version: 0.25.12 @@ -5538,23 +5556,26 @@ importers: specifier: ^0.9.3 version: 0.9.3(esbuild@0.25.12)(svelte@4.2.20) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^2.32.0 + version: 2.32.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -5565,11 +5586,11 @@ importers: specifier: ^4.2.20 version: 4.2.20 svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) svelte2tsx: specifier: ^0.7.45 version: 0.7.45(svelte@4.2.20)(typescript@5.9.3) @@ -5577,61 +5598,6 @@ importers: specifier: ^5.9.3 version: 5.9.3 - ../../foundations/utils/packages/ui-test: - dependencies: - svelte: - specifier: ^4.2.20 - version: 4.2.20 - devDependencies: - '@hcengineering/platform-rig': - specifier: workspace:^0.7.21 - version: link:../platform-rig - '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 - '@types/node': - specifier: ^24.13.3 - version: 24.13.6 - '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) - eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) - eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) - eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) - jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) - sass: - specifier: ^1.80.0 - version: 1.93.3 - svelte-loader: - specifier: ^3.2.0 - version: 3.2.4(svelte@4.2.20) - svelte-preprocess: - specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) - ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) - ../../models/achievement: dependencies: '@hcengineering/achievement': @@ -5672,41 +5638,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -5760,41 +5726,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -5830,41 +5796,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -5894,41 +5860,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -6237,44 +6203,44 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) esbuild: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -6331,41 +6297,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -6419,41 +6385,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -6489,41 +6455,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -6583,41 +6549,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -6689,41 +6655,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -6798,41 +6764,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -6919,41 +6885,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -7010,41 +6976,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -7113,41 +7079,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -7201,41 +7167,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -7325,41 +7291,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -7470,44 +7436,44 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-config-prettier: specifier: ^8.8.0 - version: 8.10.2(eslint@8.57.1) - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + version: 8.10.2(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -7534,41 +7500,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -7598,41 +7564,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -7671,41 +7637,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -7735,41 +7701,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -7859,41 +7825,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -7953,41 +7919,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -8035,41 +8001,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -8123,41 +8089,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -8223,41 +8189,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -8296,41 +8262,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -8390,41 +8356,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -8460,41 +8426,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -8542,41 +8508,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -8636,41 +8602,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -8751,41 +8717,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -8866,41 +8832,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -8951,41 +8917,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -9024,41 +8990,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -9124,41 +9090,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -9188,41 +9154,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -9264,41 +9230,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -9328,41 +9294,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -9407,41 +9373,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -9510,41 +9476,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -9616,44 +9582,44 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-config-prettier: specifier: ^8.8.0 - version: 8.10.2(eslint@8.57.1) - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + version: 8.10.2(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -9686,41 +9652,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -9765,38 +9731,38 @@ importers: version: link:../../plugins/view devDependencies: '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -9844,41 +9810,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -9923,41 +9889,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -10056,41 +10022,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -10141,41 +10107,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -10220,41 +10186,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -10320,41 +10286,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -10384,41 +10350,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -10454,41 +10420,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -10527,41 +10493,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -10600,41 +10566,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -10661,41 +10627,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -10734,41 +10700,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -10813,44 +10779,44 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-config-prettier: specifier: ^8.8.0 - version: 8.10.2(eslint@8.57.1) - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + version: 8.10.2(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -10877,41 +10843,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -10950,44 +10916,44 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-config-prettier: specifier: ^8.8.0 - version: 8.10.2(eslint@8.57.1) - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + version: 8.10.2(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -11017,41 +10983,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -11090,41 +11056,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -11154,41 +11120,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -11224,41 +11190,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -11291,41 +11257,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -11367,41 +11333,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -11443,41 +11409,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -11522,41 +11488,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -11592,44 +11558,44 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-config-prettier: specifier: ^8.8.0 - version: 8.10.2(eslint@8.57.1) - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + version: 8.10.2(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -11659,44 +11625,44 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-config-prettier: specifier: ^8.8.0 - version: 8.10.2(eslint@8.57.1) - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + version: 8.10.2(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -11741,41 +11707,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -11814,41 +11780,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -11887,41 +11853,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -11951,41 +11917,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -12018,41 +11984,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -12097,41 +12063,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -12164,41 +12130,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -12234,41 +12200,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -12313,41 +12279,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -12383,44 +12349,44 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-config-prettier: specifier: ^8.8.0 - version: 8.10.2(eslint@8.57.1) - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + version: 8.10.2(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -12450,41 +12416,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -12544,41 +12510,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -12614,41 +12580,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -12696,41 +12662,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -12772,41 +12738,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -12884,41 +12850,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -12984,41 +12950,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -13072,41 +13038,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -13199,41 +13165,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -13272,41 +13238,41 @@ importers: specifier: workspace:^0.7.0 version: link:../../plugins/text-editor-resources '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -13393,41 +13359,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -13520,41 +13486,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -13635,38 +13601,38 @@ importers: version: link:../../plugins/workbench devDependencies: '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -13705,41 +13671,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -13784,41 +13750,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -13866,41 +13832,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -13933,17 +13899,17 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -13951,29 +13917,29 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -13991,17 +13957,17 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -14009,29 +13975,29 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -14042,41 +14008,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -14100,35 +14063,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -14140,19 +14100,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -14181,39 +14141,33 @@ importers: '@hcengineering/platform-rig': specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig - '@types/dompurify': - specifier: ^3.0.5 - version: 3.2.0 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -14225,19 +14179,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -14305,24 +14259,24 @@ importers: specifier: ^2.0.10 version: 2.0.14 image-size: - specifier: ^1.2.1 - version: 1.2.1 + specifier: ^2.0.4 + version: 2.0.4 js-yaml: - specifier: ^4.1.0 - version: 4.1.0 + specifier: ^4.3.2 + version: 4.3.2 mime-types: specifier: ~2.1.34 version: 2.1.35 uuid: - specifier: ^8.3.2 - version: 8.3.2 + specifier: ^11.1.1 + version: 11.1.1 devDependencies: '@hcengineering/platform-rig': specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/js-yaml': specifier: ^4.0.9 version: 4.0.9 @@ -14332,39 +14286,36 @@ importers: '@types/node': specifier: ^24.13.3 version: 24.13.6 - '@types/uuid': - specifier: ^8.3.1 - version: 8.3.4 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -14384,27 +14335,24 @@ importers: specifier: workspace:^0.7.20 version: link:../../foundations/core/packages/platform uuid: - specifier: ^8.3.2 - version: 8.3.2 + specifier: ^11.1.1 + version: 11.1.1 devDependencies: '@hcengineering/platform-rig': specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 - '@types/uuid': - specifier: ^8.3.1 - version: 8.3.4 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -14412,32 +14360,32 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest-fetch-mock: specifier: ^3.0.3 - version: 3.0.3(encoding@0.1.13) + version: 3.0.3 prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -14473,35 +14421,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -14513,19 +14458,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -14543,17 +14488,17 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -14561,32 +14506,32 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest-fetch-mock: specifier: ^3.0.3 - version: 3.0.3(encoding@0.1.13) + version: 3.0.3 prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -14625,35 +14570,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -14665,19 +14607,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -14695,17 +14637,17 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -14713,29 +14655,29 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -14818,8 +14760,8 @@ importers: specifier: ^4.2.20 version: 4.2.20 uuid: - specifier: ^8.3.2 - version: 8.3.2 + specifier: ^11.1.1 + version: 11.1.1 yjs: specifier: ^13.6.27 version: 13.6.27 @@ -14828,50 +14770,44 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@testing-library/jest-dom': - specifier: ^6.6.3 + specifier: 6.9.1 version: 6.9.1 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@types/png-chunks-extract': specifier: ^1.0.2 version: 1.0.2 - '@types/uuid': - specifier: ^8.3.1 - version: 8.3.4 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest-environment-jsdom: - specifier: ^30.2.0 - version: 30.2.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) + specifier: ^30.4.1 + version: 30.5.2(bufferutil@4.0.9)(utf-8-validate@6.0.5) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -14883,19 +14819,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -14913,38 +14849,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -14965,35 +14901,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -15005,19 +14938,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -15049,8 +14982,8 @@ importers: specifier: ^2.0.0 version: 2.0.1(date-fns@2.30.0) dompurify: - specifier: ^3.1.6 - version: 3.3.0 + specifier: ^3.4.15 + version: 3.4.16 fast-equals: specifier: ^5.2.2 version: 5.3.2 @@ -15064,39 +14997,33 @@ importers: '@hcengineering/platform-rig': specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig - '@types/dompurify': - specifier: ^3.0.5 - version: 3.2.0 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -15108,19 +15035,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -15141,38 +15068,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -15190,41 +15117,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -15251,44 +15178,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) autoprefixer: specifier: ^10.4.14 - version: 10.4.21(postcss@8.5.6) + version: 10.4.21(postcss@8.5.28) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) postcss: - specifier: ^8.4.20 - version: 8.5.6 + specifier: 8.5.28 + version: 8.5.28 prettier: specifier: ^3.6.2 version: 3.6.2 @@ -15300,22 +15224,22 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) tailwindcss: specifier: ^3.3.5 version: 3.4.18(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -15345,38 +15269,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -15394,41 +15318,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -15494,35 +15418,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -15534,19 +15455,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -15570,38 +15491,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -15619,41 +15540,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -15716,35 +15637,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -15756,19 +15674,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -15801,41 +15719,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-config-prettier: specifier: ^8.8.0 - version: 8.10.2(eslint@8.57.1) - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + version: 8.10.2(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -15880,35 +15798,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -15920,19 +15835,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -15956,32 +15871,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -15989,8 +15904,8 @@ importers: specifier: ^3.4.0 version: 3.4.0(prettier@3.6.2)(svelte@4.2.20) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -16008,35 +15923,35 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -16044,8 +15959,8 @@ importers: specifier: ^3.4.0 version: 3.4.0(prettier@3.6.2)(svelte@4.2.20) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -16084,35 +15999,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -16124,19 +16036,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -16163,38 +16075,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -16212,41 +16124,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -16321,35 +16233,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -16361,19 +16270,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -16394,38 +16303,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -16443,41 +16352,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -16543,38 +16452,35 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -16586,19 +16492,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -16639,48 +16545,48 @@ importers: specifier: ^5.2.2 version: 5.3.2 qs: - specifier: ~6.11.0 - version: 6.11.2 + specifier: ~6.16.0 + version: 6.16.0 devDependencies: '@hcengineering/platform-rig': specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/qs': specifier: ~6.9.7 version: 6.9.18 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -16698,41 +16604,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -16803,8 +16709,8 @@ importers: specifier: ~7.3.0 version: 7.3.4 qs: - specifier: ~6.11.0 - version: 6.11.2 + specifier: ~6.16.0 + version: 6.16.0 svelte: specifier: ^4.2.20 version: 4.2.20 @@ -16813,38 +16719,35 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/qs': specifier: ~6.9.7 version: 6.9.18 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -16856,19 +16759,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -16904,38 +16807,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -16953,41 +16856,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -17077,35 +16980,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -17117,19 +17017,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -17162,38 +17062,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -17211,41 +17111,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -17329,35 +17229,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -17369,19 +17266,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -17408,38 +17305,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -17457,41 +17354,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -17632,35 +17529,32 @@ importers: specifier: ^8.1.1 version: 8.1.1 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -17672,19 +17566,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -17705,38 +17599,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -17754,41 +17648,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -17872,35 +17766,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -17912,19 +17803,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -17963,38 +17854,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -18012,41 +17903,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -18148,35 +18039,32 @@ importers: specifier: ^8.1.1 version: 8.1.1 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -18188,19 +18076,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -18230,38 +18118,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -18279,41 +18167,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -18418,44 +18306,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) autoprefixer: specifier: ^10.4.14 - version: 10.4.21(postcss@8.5.6) + version: 10.4.21(postcss@8.5.16) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) postcss: - specifier: ^8.4.20 - version: 8.5.6 + specifier: 8.5.16 + version: 8.5.16 prettier: specifier: ^3.6.2 version: 3.6.2 @@ -18467,22 +18352,22 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.16)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.16)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.16)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.16)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) tailwindcss: specifier: ^3.3.5 version: 3.4.18(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -18515,38 +18400,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -18564,41 +18449,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -18697,35 +18582,32 @@ importers: specifier: ^4.2.2 version: 4.2.2 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -18737,19 +18619,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -18806,41 +18688,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-config-prettier: specifier: ^8.8.0 - version: 8.10.2(eslint@8.57.1) - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + version: 8.10.2(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -18858,44 +18740,44 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-config-prettier: specifier: ^8.8.0 - version: 8.10.2(eslint@8.57.1) - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + version: 8.10.2(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -19024,38 +18906,35 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-config-prettier: specifier: ^8.8.0 - version: 8.10.2(eslint@8.57.1) - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + version: 8.10.2(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -19067,19 +18946,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -19106,38 +18985,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -19185,35 +19064,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -19225,19 +19101,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -19258,38 +19134,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -19307,41 +19183,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -19383,38 +19259,35 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -19426,19 +19299,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -19465,38 +19338,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -19514,41 +19387,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -19581,35 +19454,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -19621,19 +19491,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -19657,38 +19527,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -19745,35 +19615,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -19785,19 +19652,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -19818,38 +19685,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -19867,41 +19734,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -19946,35 +19813,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -19986,19 +19850,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -20034,38 +19898,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -20083,41 +19947,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -20216,35 +20080,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -20256,19 +20117,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -20292,38 +20153,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -20341,41 +20202,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -20426,35 +20287,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -20466,19 +20324,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -20508,38 +20366,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -20557,41 +20415,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -20630,38 +20488,35 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -20673,19 +20528,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -20709,32 +20564,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -20742,8 +20597,8 @@ importers: specifier: ^3.4.0 version: 3.4.0(prettier@3.6.2)(svelte@4.2.20) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -20761,35 +20616,35 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -20797,8 +20652,8 @@ importers: specifier: ^3.4.0 version: 3.4.0(prettier@3.6.2)(svelte@4.2.20) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -20846,35 +20701,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -20886,19 +20738,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -20919,38 +20771,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -20968,41 +20820,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -21047,35 +20899,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -21087,19 +20936,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -21129,38 +20978,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -21178,41 +21027,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -21302,35 +21151,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -21342,19 +21188,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -21375,38 +21221,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -21424,41 +21270,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -21518,35 +21364,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -21558,19 +21401,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -21597,38 +21440,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -21646,41 +21489,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -21755,35 +21598,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -21795,19 +21635,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -21831,38 +21671,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -21880,41 +21720,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -21977,35 +21817,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -22017,19 +21854,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -22047,38 +21884,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -22102,35 +21939,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -22142,19 +21976,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -22172,38 +22006,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -22221,41 +22055,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -22345,35 +22179,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -22385,19 +22216,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -22415,38 +22246,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -22464,41 +22295,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -22543,35 +22374,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -22583,19 +22411,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -22622,38 +22450,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -22671,41 +22499,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -22792,35 +22620,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -22832,19 +22657,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -22868,38 +22693,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -22917,41 +22742,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -23002,35 +22827,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -23042,25 +22864,25 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 url-loader: specifier: ~4.1.1 - version: 4.1.1(file-loader@6.2.0(webpack@5.102.1))(webpack@5.102.1) + version: 4.1.1(file-loader@6.2.0(webpack@5.111.1(postcss@8.5.28)))(webpack@5.111.1(postcss@8.5.28)) ../../plugins/love: dependencies: @@ -23099,32 +22921,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -23132,8 +22954,8 @@ importers: specifier: ^3.4.0 version: 3.4.0(prettier@3.6.2)(svelte@4.2.20) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -23151,35 +22973,35 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -23187,8 +23009,8 @@ importers: specifier: ^3.4.0 version: 3.4.0(prettier@3.6.2)(svelte@4.2.20) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -23302,35 +23124,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -23342,19 +23161,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -23375,38 +23194,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -23424,41 +23243,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -23485,38 +23304,38 @@ importers: specifier: ^3.0.3 version: 3.0.3 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typed-emitter: specifier: ^2.1.0 version: 2.1.0 @@ -23537,41 +23356,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -23616,38 +23435,35 @@ importers: specifier: ^3.0.3 version: 3.0.3 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -23659,19 +23475,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typed-emitter: specifier: ^2.1.0 version: 2.1.0 @@ -23710,32 +23526,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -23743,8 +23559,8 @@ importers: specifier: ^1.80.0 version: 1.93.3 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -23762,41 +23578,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -23868,35 +23684,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -23908,19 +23721,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -23944,38 +23757,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -23993,41 +23806,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -24075,35 +23888,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -24115,25 +23925,25 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 url-loader: specifier: ~4.1.1 - version: 4.1.1(file-loader@6.2.0(webpack@5.102.1))(webpack@5.102.1) + version: 4.1.1(file-loader@6.2.0(webpack@5.111.1(postcss@8.5.28)))(webpack@5.111.1(postcss@8.5.28)) ../../plugins/openai: dependencies: @@ -24148,41 +23958,41 @@ importers: version: 1.0.21 openai: specifier: ^4.56.0 - version: 4.104.0(encoding@0.1.13)(ws@8.21.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.25.76) + version: 4.104.0(ws@8.21.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.25.76) devDependencies: '@hcengineering/platform-rig': specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -24190,8 +24000,8 @@ importers: specifier: ^3.4.0 version: 3.4.0(prettier@3.6.2)(svelte@4.2.20) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -24212,38 +24022,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -24261,41 +24071,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -24319,38 +24129,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -24401,35 +24211,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -24441,19 +24248,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -24474,32 +24281,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -24507,8 +24314,8 @@ importers: specifier: ^3.4.0 version: 3.4.0(prettier@3.6.2)(svelte@4.2.20) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -24526,35 +24333,35 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -24562,8 +24369,8 @@ importers: specifier: ^3.4.0 version: 3.4.0(prettier@3.6.2)(svelte@4.2.20) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -24608,35 +24415,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -24648,19 +24452,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -24690,38 +24494,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -24739,35 +24543,35 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -24775,8 +24579,8 @@ importers: specifier: ^3.4.0 version: 3.4.0(prettier@3.6.2)(svelte@4.2.20) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -24857,35 +24661,32 @@ importers: specifier: ^8.1.1 version: 8.1.1 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -24897,19 +24698,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -24942,41 +24743,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-config-prettier: specifier: ^8.8.0 - version: 8.10.2(eslint@8.57.1) - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + version: 8.10.2(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -24994,44 +24795,44 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-config-prettier: specifier: ^8.8.0 - version: 8.10.2(eslint@8.57.1) - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + version: 8.10.2(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -25103,38 +24904,35 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-config-prettier: specifier: ^8.8.0 - version: 8.10.2(eslint@8.57.1) - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + version: 8.10.2(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -25146,19 +24944,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -25179,38 +24977,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -25234,38 +25032,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -25283,41 +25081,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -25368,35 +25166,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -25408,19 +25203,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -25441,38 +25236,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -25490,41 +25285,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -25575,35 +25370,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -25615,19 +25407,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -25654,38 +25446,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -25703,41 +25495,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -25803,38 +25595,35 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -25846,19 +25635,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -25900,38 +25689,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -25949,41 +25738,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -26094,35 +25883,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -26134,19 +25920,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -26173,38 +25959,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -26222,41 +26008,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -26319,35 +26105,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -26359,19 +26142,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -26398,38 +26181,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -26447,41 +26230,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -26577,38 +26360,35 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/qrcode': specifier: ^1.5.5 version: 1.5.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -26620,19 +26400,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -26647,32 +26427,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -26680,8 +26460,8 @@ importers: specifier: ^3.4.0 version: 3.4.0(prettier@3.6.2)(svelte@4.2.20) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -26699,38 +26479,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -26748,41 +26528,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -26812,35 +26592,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -26852,19 +26629,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -26888,38 +26665,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -26937,41 +26714,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -27016,35 +26793,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -27056,19 +26830,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -27092,38 +26866,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -27141,41 +26915,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -27214,35 +26988,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -27254,19 +27025,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -27299,38 +27070,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -27348,41 +27119,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -27478,35 +27249,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -27518,19 +27286,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -27566,38 +27334,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -27615,41 +27383,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -27742,35 +27510,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -27782,19 +27547,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -27815,38 +27580,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -27864,41 +27629,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -27943,35 +27708,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -27983,19 +27745,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -28040,38 +27802,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -28089,41 +27851,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -28240,35 +28002,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -28280,19 +28039,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -28325,32 +28084,32 @@ importers: specifier: ~5.0.2 version: 5.0.9 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -28358,8 +28117,8 @@ importers: specifier: ^1.80.0 version: 1.93.3 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -28377,41 +28136,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -28596,8 +28355,8 @@ importers: specifier: ^3.3.0 version: 3.3.0 mermaid: - specifier: ^11.12.0 - version: 11.12.1 + specifier: ^11.17.2 + version: 11.17.2 prosemirror-codemark: specifier: ^0.4.2 version: 0.4.2(prosemirror-inputrules@1.5.1)(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.3) @@ -28630,38 +28389,35 @@ importers: specifier: ~5.0.2 version: 5.0.9 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/katex': specifier: ^0.16.0 version: 0.16.8 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -28673,19 +28429,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -28718,38 +28474,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -28767,41 +28523,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -28903,35 +28659,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -28943,19 +28696,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -29006,38 +28759,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -29055,41 +28808,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -29227,35 +28980,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -29267,19 +29017,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -29309,38 +29059,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -29358,41 +29108,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -29476,35 +29226,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -29516,19 +29263,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -29549,38 +29296,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -29598,41 +29345,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -29677,38 +29424,35 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -29720,19 +29464,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -29756,38 +29500,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -29808,41 +29552,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -29938,35 +29682,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -29978,19 +29719,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -30020,38 +29761,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -30069,41 +29810,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -30202,35 +29943,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -30242,19 +29980,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -30302,14 +30040,14 @@ importers: version: 12.0.1 mongodb: specifier: ^6.16.0 - version: 6.20.0(gcp-metadata@5.3.0(encoding@0.1.13))(snappy@7.3.3)(socks@2.8.7) + version: 6.20.0(gcp-metadata@5.3.0)(snappy@7.3.3)(socks@2.8.7) devDependencies: '@hcengineering/platform-rig': specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/koa': specifier: ^2.15.0 version: 2.15.0 @@ -30326,11 +30064,11 @@ importers: specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -30338,29 +30076,29 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -30393,7 +30131,7 @@ importers: version: 6.4.0 mongodb: specifier: ^6.16.0 - version: 6.20.0(gcp-metadata@5.3.0(encoding@0.1.13))(snappy@7.3.3)(socks@2.8.7) + version: 6.20.0(gcp-metadata@5.3.0)(snappy@7.3.3)(socks@2.8.7) openid-client: specifier: ~5.7.0 version: 5.7.1 @@ -30414,8 +30152,8 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/koa': specifier: ^2.15.0 version: 2.15.0 @@ -30441,35 +30179,35 @@ importers: specifier: ^8.18.1 version: 8.18.1 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -30523,17 +30261,17 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -30541,29 +30279,29 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -30596,17 +30334,17 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -30614,29 +30352,29 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -30647,26 +30385,26 @@ importers: ../../pods/external: devDependencies: '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) ../../pods/front: dependencies: @@ -30701,8 +30439,8 @@ importers: specifier: ^1.20.3 version: 1.20.3 cors: - specifier: ^2.8.5 - version: 2.8.5 + specifier: ^2.8.6 + version: 2.8.6 express: specifier: ^4.21.2 version: 4.21.2 @@ -30710,11 +30448,11 @@ importers: specifier: ^1.5.1 version: 1.5.2 sharp: - specifier: ~0.34.3 - version: 0.34.5 + specifier: ~0.35.3 + version: 0.35.5(@types/node@24.13.6) uuid: - specifier: ^8.3.2 - version: 8.3.2 + specifier: ^11.1.1 + version: 11.1.1 devDependencies: '@hcengineering/platform-rig': specifier: workspace:^0.7.21 @@ -30726,7 +30464,7 @@ importers: specifier: ~1.7.2 version: 1.7.5 '@types/cors': - specifier: ^2.8.12 + specifier: ^2.8.19 version: 2.8.19 '@types/express': specifier: ^4.17.13 @@ -30735,20 +30473,17 @@ importers: specifier: ^1.1.7 version: 1.5.1 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 - '@types/uuid': - specifier: ^8.3.1 - version: 8.3.4 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -30756,29 +30491,29 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -30874,8 +30609,8 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/koa': specifier: ^2.15.0 version: 2.15.0 @@ -30892,11 +30627,11 @@ importers: specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -30904,29 +30639,29 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -30958,11 +30693,11 @@ importers: specifier: workspace:^0.7.18 version: link:../../foundations/core/packages/token cheerio: - specifier: ^1.1.2 - version: 1.1.2 + specifier: ^1.2.0 + version: 1.2.0 cors: - specifier: ^2.8.5 - version: 2.8.5 + specifier: ^2.8.6 + version: 2.8.6 dotenv: specifier: ^16.4.5 version: 16.6.1 @@ -30970,27 +30705,27 @@ importers: specifier: ^4.21.2 version: 4.21.2 image-size: - specifier: ^1.2.1 - version: 1.2.1 + specifier: ^2.0.4 + version: 2.0.4 morgan: - specifier: ^1.10.0 - version: 1.10.1 + specifier: ^1.11.0 + version: 1.12.1 oembed-providers: - specifier: ~1.0.20260106 - version: 1.0.20260106 + specifier: ~1.0.20260604 + version: 1.0.20260604 devDependencies: '@hcengineering/platform-rig': specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/cors': - specifier: ^2.8.12 + specifier: ^2.8.19 version: 2.8.19 '@types/express': specifier: ^4.17.13 version: 4.17.25 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/morgan': specifier: ~1.9.9 version: 1.9.10 @@ -30998,11 +30733,11 @@ importers: specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -31010,32 +30745,29 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -31101,17 +30833,17 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -31119,32 +30851,29 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -31185,8 +30914,8 @@ importers: specifier: ^1.0.9 version: 1.0.9 cors: - specifier: ^2.8.5 - version: 2.8.5 + specifier: ^2.8.6 + version: 2.8.6 dotenv: specifier: ^16.4.5 version: 16.6.1 @@ -31200,20 +30929,20 @@ importers: specifier: ^11.1.0 version: 11.2.2 morgan: - specifier: ^1.10.0 - version: 1.10.1 + specifier: ^1.11.0 + version: 1.12.1 node-poppler: specifier: ^8.0.4 version: 8.0.4 sharp: - specifier: ~0.34.3 - version: 0.34.5 + specifier: ~0.35.3 + version: 0.35.5(@types/node@24.13.6) devDependencies: '@hcengineering/platform-rig': specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/cors': - specifier: ^2.8.12 + specifier: ^2.8.19 version: 2.8.19 '@types/express': specifier: ^4.17.13 @@ -31222,8 +30951,8 @@ importers: specifier: ^1.1.2 version: 1.1.3 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/morgan': specifier: ~1.9.9 version: 1.9.10 @@ -31231,11 +30960,11 @@ importers: specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -31243,32 +30972,29 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -31366,14 +31092,14 @@ importers: specifier: ^4.0.8 version: 4.0.9 cors: - specifier: ^2.8.5 - version: 2.8.5 + specifier: ^2.8.6 + version: 2.8.6 express: specifier: ^4.21.2 version: 4.21.2 morgan: - specifier: ^1.10.0 - version: 1.10.1 + specifier: ^1.11.0 + version: 1.12.1 msgpackr: specifier: ^1.11.2 version: 1.11.5 @@ -31400,14 +31126,14 @@ importers: specifier: ~1.19.2 version: 1.19.6 '@types/cors': - specifier: ^2.8.12 + specifier: ^2.8.19 version: 2.8.19 '@types/express': specifier: ^4.17.13 version: 4.17.25 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/morgan': specifier: ~1.9.9 version: 1.9.10 @@ -31418,11 +31144,11 @@ importers: specifier: ^8.18.1 version: 8.18.1 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -31430,26 +31156,26 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-config-prettier: specifier: ^8.8.0 - version: 8.10.2(eslint@8.57.1) - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + version: 8.10.2(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -31457,8 +31183,8 @@ importers: specifier: ^0.7.0 version: 0.7.0 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -31503,8 +31229,8 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/koa': specifier: ^2.15.0 version: 2.15.0 @@ -31521,11 +31247,11 @@ importers: specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -31533,29 +31259,29 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -31594,23 +31320,23 @@ importers: version: link:../../server/workspace-service mongodb: specifier: ^6.16.0 - version: 6.20.0(gcp-metadata@5.3.0(encoding@0.1.13))(snappy@7.3.3)(socks@2.8.7) + version: 6.20.0(gcp-metadata@5.3.0)(snappy@7.3.3)(socks@2.8.7) devDependencies: '@hcengineering/platform-rig': specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -31618,29 +31344,29 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -31654,7 +31380,7 @@ importers: specifier: ^16.4.5 version: 16.6.1 electron-squirrel-startup: - specifier: ~1.0.0 + specifier: ~1.0.1 version: 1.0.1 devDependencies: '@electron/notarize': @@ -31670,41 +31396,41 @@ importers: specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@vercel/webpack-asset-relocator-loader': specifier: ^1.7.3 - version: 1.10.0(encoding@0.1.13) + version: 1.10.0 cross-env: specifier: ~7.0.3 version: 7.0.3 electron: - specifier: ^38.2.2 - version: 38.6.0 + specifier: ^43.4.1 + version: 43.7.8 electron-builder: - specifier: ^25.1.8 - version: 25.1.8 - eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^26.15.3 + version: 26.15.3 + eslint: + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) node-loader: specifier: ~2.0.0 - version: 2.0.0(webpack@5.102.1) + version: 2.0.0(webpack@5.111.1) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -31725,47 +31451,47 @@ importers: version: 16.6.1 devDependencies: '@faker-js/faker': - specifier: ^8.4.1 - version: 8.4.1 + specifier: ^10.6.0 + version: 10.6.0 '@hcengineering/platform-rig': specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@playwright/test': - specifier: ^1.48.2 - version: 1.56.1 + specifier: ^1.63.0 + version: 1.63.0 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) allure-js-commons: - specifier: ^3.0.6 - version: 3.4.2(allure-playwright@3.4.2(@playwright/test@1.56.1)) + specifier: ^3.12.1 + version: 3.13.0(allure-playwright@3.13.0(@playwright/test@1.63.0)) allure-playwright: - specifier: ^3.0.6 - version: 3.4.2(@playwright/test@1.56.1) - eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^3.12.1 + version: 3.13.0(@playwright/test@1.63.0) + eslint: + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -31792,41 +31518,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -31880,41 +31606,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -31938,41 +31664,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -32029,38 +31755,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -32084,41 +31810,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -32154,38 +31880,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -32206,41 +31932,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -32264,38 +31990,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -32319,41 +32045,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -32395,38 +32121,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -32450,41 +32176,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -32535,38 +32261,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -32590,41 +32316,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -32684,38 +32410,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -32739,41 +32465,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -32794,38 +32520,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -32855,41 +32581,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -32937,38 +32663,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -32989,44 +32715,44 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-config-prettier: specifier: ^8.8.0 - version: 8.10.2(eslint@8.57.1) - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + version: 8.10.2(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -33080,44 +32806,44 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-config-prettier: specifier: ^8.8.0 - version: 8.10.2(eslint@8.57.1) - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + version: 8.10.2(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -33141,44 +32867,44 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-config-prettier: specifier: ^8.8.0 - version: 8.10.2(eslint@8.57.1) - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + version: 8.10.2(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -33208,44 +32934,44 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-config-prettier: specifier: ^8.8.0 - version: 8.10.2(eslint@8.57.1) - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + version: 8.10.2(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -33266,41 +32992,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -33324,38 +33050,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -33379,41 +33105,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -33458,38 +33184,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -33510,41 +33236,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -33574,38 +33300,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -33629,41 +33355,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -33708,38 +33434,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -33757,41 +33483,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -33827,38 +33553,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -33879,41 +33605,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -33952,38 +33678,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -34007,35 +33733,35 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -34043,8 +33769,8 @@ importers: specifier: ^3.4.0 version: 3.4.0(prettier@3.6.2)(svelte@4.2.20) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -34089,32 +33815,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -34122,8 +33848,8 @@ importers: specifier: ^3.4.0 version: 3.4.0(prettier@3.6.2)(svelte@4.2.20) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -34153,41 +33879,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -34241,38 +33967,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -34296,41 +34022,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -34360,35 +34086,35 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -34396,8 +34122,8 @@ importers: specifier: ^3.4.0 version: 3.4.0(prettier@3.6.2)(svelte@4.2.20) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -34436,32 +34162,32 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -34469,8 +34195,8 @@ importers: specifier: ^3.4.0 version: 3.4.0(prettier@3.6.2)(svelte@4.2.20) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -34494,41 +34220,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -34552,41 +34278,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -34625,38 +34351,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -34677,41 +34403,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -34759,38 +34485,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -34817,41 +34543,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -34881,38 +34607,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -34933,41 +34659,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -34991,38 +34717,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -35046,41 +34772,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -35125,38 +34851,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -35189,41 +34915,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -35280,38 +35006,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -35335,41 +35061,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -35396,41 +35122,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -35484,38 +35210,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -35539,41 +35265,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -35630,38 +35356,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -35685,41 +35411,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-config-prettier: specifier: ^8.8.0 - version: 8.10.2(eslint@8.57.1) - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + version: 8.10.2(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -35755,41 +35481,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-config-prettier: specifier: ^8.8.0 - version: 8.10.2(eslint@8.57.1) - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + version: 8.10.2(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -35813,41 +35539,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -35874,38 +35600,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -35941,7 +35667,7 @@ importers: version: link:../../foundations/core/packages/token mongodb: specifier: ^6.16.0 - version: 6.20.0(gcp-metadata@5.3.0(encoding@0.1.13))(snappy@7.3.3)(socks@2.8.7) + version: 6.20.0(gcp-metadata@5.3.0)(snappy@7.3.3)(socks@2.8.7) otp-generator: specifier: ^4.0.1 version: 4.0.1 @@ -35949,15 +35675,15 @@ importers: specifier: ^12.0.1 version: 12.0.1 postgres: - specifier: ^3.4.7 - version: 3.4.7 + specifier: ^3.4.9 + version: 3.4.9 devDependencies: '@hcengineering/platform-rig': specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 @@ -35968,35 +35694,35 @@ importers: specifier: ^8.11.6 version: 8.15.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -36053,7 +35779,7 @@ importers: version: 12.0.1 mongodb: specifier: ^6.16.0 - version: 6.20.0(gcp-metadata@5.3.0(encoding@0.1.13))(snappy@7.3.3)(socks@2.8.7) + version: 6.20.0(gcp-metadata@5.3.0)(snappy@7.3.3)(socks@2.8.7) devDependencies: '@hcengineering/platform-rig': specifier: workspace:^0.7.21 @@ -36062,8 +35788,8 @@ importers: specifier: ^0.9.0 version: 0.9.2 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/koa': specifier: ^2.15.0 version: 2.15.0 @@ -36080,11 +35806,11 @@ importers: specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -36092,29 +35818,29 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -36174,8 +35900,8 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 @@ -36183,35 +35909,35 @@ importers: specifier: ^3.1.3 version: 3.1.4 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -36265,8 +35991,8 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 @@ -36274,35 +36000,35 @@ importers: specifier: ^3.1.3 version: 3.1.4 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -36385,14 +36111,14 @@ importers: specifier: ^1.20.3 version: 1.20.3 cors: - specifier: ^2.8.5 - version: 2.8.5 + specifier: ^2.8.6 + version: 2.8.6 express: specifier: ^4.21.2 version: 4.21.2 mongodb: specifier: ^6.16.0 - version: 6.20.0(gcp-metadata@5.3.0(encoding@0.1.13))(snappy@7.3.3)(socks@2.8.7) + version: 6.20.0(gcp-metadata@5.3.0)(snappy@7.3.3)(socks@2.8.7) ws: specifier: ^8.21.0 version: 8.21.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -36410,14 +36136,14 @@ importers: specifier: ~1.7.2 version: 1.7.5 '@types/cors': - specifier: ^2.8.12 + specifier: ^2.8.19 version: 2.8.19 '@types/express': specifier: ^4.17.13 version: 4.17.25 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 @@ -36425,11 +36151,11 @@ importers: specifier: ^8.18.1 version: 8.18.1 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -36437,29 +36163,29 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -36506,8 +36232,8 @@ importers: specifier: ^1.20.3 version: 1.20.3 cors: - specifier: ^2.8.5 - version: 2.8.5 + specifier: ^2.8.6 + version: 2.8.6 express: specifier: ^4.21.2 version: 4.21.2 @@ -36518,14 +36244,14 @@ importers: specifier: ^2.2.0 version: 2.2.0 morgan: - specifier: ^1.10.0 - version: 1.10.1 + specifier: ^1.11.0 + version: 1.12.1 sharp: - specifier: ~0.34.3 - version: 0.34.5 + specifier: ~0.35.3 + version: 0.35.5(@types/node@24.13.6) uuid: - specifier: ^8.3.2 - version: 8.3.2 + specifier: ^11.1.1 + version: 11.1.1 devDependencies: '@hcengineering/platform-rig': specifier: workspace:^0.7.21 @@ -36534,7 +36260,7 @@ importers: specifier: ~1.19.2 version: 1.19.6 '@types/cors': - specifier: ^2.8.12 + specifier: ^2.8.19 version: 2.8.19 '@types/express': specifier: ^4.17.13 @@ -36543,50 +36269,47 @@ importers: specifier: ^1.1.7 version: 1.5.1 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/morgan': specifier: ~1.9.9 version: 1.9.10 '@types/node': specifier: ^24.13.3 version: 24.13.6 - '@types/uuid': - specifier: ^8.3.1 - version: 8.3.4 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -36658,44 +36381,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 - '@types/uuid': - specifier: ^8.3.1 - version: 8.3.4 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -37154,17 +36874,17 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -37172,29 +36892,29 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -37265,63 +36985,60 @@ importers: specifier: ^5.2.2 version: 5.3.2 js-yaml: - specifier: ^4.1.0 - version: 4.1.0 + specifier: ^4.3.2 + version: 4.3.2 mongodb: specifier: ^6.16.0 - version: 6.20.0(gcp-metadata@5.3.0(encoding@0.1.13))(snappy@7.3.3)(socks@2.8.7) + version: 6.20.0(gcp-metadata@5.3.0)(snappy@7.3.3)(socks@2.8.7) uuid: - specifier: ^8.3.2 - version: 8.3.2 + specifier: ^11.1.1 + version: 11.1.1 devDependencies: '@hcengineering/platform-rig': specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/js-yaml': specifier: ^4.0.9 version: 4.0.9 '@types/node': specifier: ^24.13.3 version: 24.13.6 - '@types/uuid': - specifier: ^8.3.1 - version: 8.3.4 '@types/ws': specifier: ^8.18.1 version: 8.18.1 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -37390,8 +37107,8 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/koa': specifier: ^2.15.0 version: 2.15.0 @@ -37408,11 +37125,11 @@ importers: specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -37420,29 +37137,29 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -37540,8 +37257,8 @@ importers: specifier: workspace:^0.7.0 version: link:../../../plugins/workbench cors: - specifier: ^2.8.5 - version: 2.8.5 + specifier: ^2.8.6 + version: 2.8.6 dotenv: specifier: ^16.4.5 version: 16.6.1 @@ -37552,20 +37269,20 @@ importers: specifier: ^5.2.2 version: 5.3.2 form-data: - specifier: ^4.0.0 - version: 4.0.4 + specifier: ^4.0.6 + version: 4.0.6 js-tiktoken: specifier: ^1.0.14 version: 1.0.21 mongodb: specifier: ^6.16.0 - version: 6.20.0(gcp-metadata@5.3.0(encoding@0.1.13))(snappy@7.3.3)(socks@2.8.7) + version: 6.20.0(gcp-metadata@5.3.0)(snappy@7.3.3)(socks@2.8.7) openai: specifier: ^4.56.0 - version: 4.104.0(encoding@0.1.13)(ws@8.21.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.25.76) + version: 4.104.0(ws@8.21.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.25.76) uuid: - specifier: ^8.3.2 - version: 8.3.2 + specifier: ^11.1.1 + version: 11.1.1 ws: specifier: ^8.21.0 version: 8.21.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -37577,59 +37294,53 @@ importers: specifier: ^1.0.4 version: 1.0.4 '@types/cors': - specifier: ^2.8.12 + specifier: ^2.8.19 version: 2.8.19 '@types/express': specifier: ^4.17.13 version: 4.17.25 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 - '@types/uuid': - specifier: ^8.3.1 - version: 8.3.4 '@types/ws': specifier: ^8.18.1 version: 8.18.1 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) esbuild: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -37667,8 +37378,8 @@ importers: specifier: workspace:^0.7.18 version: link:../../../foundations/core/packages/token cors: - specifier: ^2.8.5 - version: 2.8.5 + specifier: ^2.8.6 + version: 2.8.6 dotenv: specifier: ^16.4.5 version: 16.6.1 @@ -37686,53 +37397,50 @@ importers: specifier: ^1.0.4 version: 1.0.4 '@types/cors': - specifier: ^2.8.12 + specifier: ^2.8.19 version: 2.8.19 '@types/express': specifier: ^4.17.13 version: 4.17.25 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) esbuild: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -37770,8 +37478,8 @@ importers: specifier: workspace:^0.7.18 version: link:../../../foundations/core/packages/token cors: - specifier: ^2.8.5 - version: 2.8.5 + specifier: ^2.8.6 + version: 2.8.6 dotenv: specifier: ^16.4.5 version: 16.6.1 @@ -37779,14 +37487,14 @@ importers: specifier: ^4.21.2 version: 4.21.2 morgan: - specifier: ^1.10.0 - version: 1.10.1 + specifier: ^1.11.0 + version: 1.12.1 postgres: - specifier: ^3.4.7 - version: 3.4.7 + specifier: ^3.4.9 + version: 3.4.9 sharp: - specifier: ~0.34.3 - version: 0.34.5 + specifier: ~0.35.3 + version: 0.35.5(@types/node@24.13.6) devDependencies: '@hcengineering/platform-rig': specifier: workspace:^0.7.21 @@ -37795,7 +37503,7 @@ importers: specifier: ^1.0.4 version: 1.0.4 '@types/cors': - specifier: ^2.8.12 + specifier: ^2.8.19 version: 2.8.19 '@types/express': specifier: ^4.17.13 @@ -37804,8 +37512,8 @@ importers: specifier: ^1.1.7 version: 1.5.1 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/morgan': specifier: ~1.9.9 version: 1.9.10 @@ -37816,41 +37524,38 @@ importers: specifier: ^8.18.1 version: 8.18.1 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) esbuild: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -37894,8 +37599,8 @@ importers: specifier: workspace:^0.7.18 version: link:../../../foundations/core/packages/token cors: - specifier: ^2.8.5 - version: 2.8.5 + specifier: ^2.8.6 + version: 2.8.6 dotenv: specifier: ^16.4.5 version: 16.6.1 @@ -37903,17 +37608,17 @@ importers: specifier: ^4.21.2 version: 4.21.2 morgan: - specifier: ^1.10.0 - version: 1.10.1 + specifier: ^1.11.0 + version: 1.12.1 on-headers: specifier: ^1.0.2 version: 1.1.0 postgres: - specifier: ^3.4.7 - version: 3.4.7 + specifier: ^3.4.9 + version: 3.4.9 uuid: - specifier: ^8.3.2 - version: 8.3.2 + specifier: ^11.1.1 + version: 11.1.1 devDependencies: '@hcengineering/platform-rig': specifier: workspace:^0.7.21 @@ -37922,14 +37627,14 @@ importers: specifier: ^1.0.4 version: 1.0.4 '@types/cors': - specifier: ^2.8.12 + specifier: ^2.8.19 version: 2.8.19 '@types/express': specifier: ^4.17.13 version: 4.17.25 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/morgan': specifier: ~1.9.9 version: 1.9.10 @@ -37939,18 +37644,15 @@ importers: '@types/on-headers': specifier: ^1.0.2 version: 1.0.4 - '@types/uuid': - specifier: ^8.3.1 - version: 8.3.4 '@types/ws': specifier: ^8.18.1 version: 8.18.1 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -37958,32 +37660,29 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -38042,8 +37741,8 @@ importers: specifier: workspace:^0.7.19 version: link:../../../foundations/core/packages/text cors: - specifier: ^2.8.5 - version: 2.8.5 + specifier: ^2.8.6 + version: 2.8.6 dotenv: specifier: ^16.4.5 version: 16.6.1 @@ -38058,10 +37757,10 @@ importers: version: 0.10.4 google-auth-library: specifier: ^8.0.2 - version: 8.9.0(encoding@0.1.13) + version: 8.9.0 googleapis: specifier: ^122.0.0 - version: 122.0.0(encoding@0.1.13) + version: 122.0.0 jwt-simple: specifier: ^0.5.6 version: 0.5.6 @@ -38076,14 +37775,14 @@ importers: specifier: ^1.0.4 version: 1.0.4 '@types/cors': - specifier: ^2.8.12 + specifier: ^2.8.19 version: 2.8.19 '@types/express': specifier: ^4.17.13 version: 4.17.25 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 @@ -38091,41 +37790,38 @@ importers: specifier: ^8.18.1 version: 8.18.1 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) esbuild: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -38185,17 +37881,17 @@ importers: specifier: ^1.0.4 version: 1.0.4 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -38203,32 +37899,29 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -38278,8 +37971,8 @@ importers: specifier: ^4.0.2 version: 4.4.4 cors: - specifier: ^2.8.5 - version: 2.8.5 + specifier: ^2.8.6 + version: 2.8.6 dotenv: specifier: ^16.4.5 version: 16.6.1 @@ -38293,17 +37986,17 @@ importers: specifier: ^11.1.0 version: 11.2.2 morgan: - specifier: ^1.10.0 - version: 1.10.1 + specifier: ^1.11.0 + version: 1.12.1 on-headers: specifier: ^1.0.2 version: 1.1.0 postgres: - specifier: ^3.4.7 - version: 3.4.7 + specifier: ^3.4.9 + version: 3.4.9 uuid: - specifier: ^8.3.2 - version: 8.3.2 + specifier: ^11.1.1 + version: 11.1.1 devDependencies: '@hcengineering/platform-rig': specifier: workspace:^0.7.21 @@ -38312,7 +38005,7 @@ importers: specifier: ^1.0.4 version: 1.0.4 '@types/cors': - specifier: ^2.8.12 + specifier: ^2.8.19 version: 2.8.19 '@types/express': specifier: ^4.17.13 @@ -38321,8 +38014,8 @@ importers: specifier: ^1.1.7 version: 1.5.1 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/morgan': specifier: ~1.9.9 version: 1.9.10 @@ -38332,48 +38025,42 @@ importers: '@types/on-headers': specifier: ^1.0.2 version: 1.0.4 - '@types/uuid': - specifier: ^8.3.1 - version: 8.3.4 '@types/ws': specifier: ^8.18.1 version: 8.18.1 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) esbuild: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -38459,8 +38146,8 @@ importers: specifier: ^7.0.1 version: 7.0.1 cors: - specifier: ^2.8.5 - version: 2.8.5 + specifier: ^2.8.6 + version: 2.8.6 csv-stringify: specifier: ^6.5.2 version: 6.6.0 @@ -38471,14 +38158,14 @@ importers: specifier: ^4.21.2 version: 4.21.2 js-yaml: - specifier: ^4.1.0 - version: 4.1.0 + specifier: ^4.3.2 + version: 4.3.2 tar: - specifier: ^7.5.2 - version: 7.5.2 + specifier: ^7.5.21 + version: 7.5.22 uuid: - specifier: ^8.3.2 - version: 8.3.2 + specifier: ^11.1.1 + version: 11.1.1 ws: specifier: ^8.21.0 version: 8.21.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -38493,32 +38180,29 @@ importers: specifier: ^6.0.3 version: 6.0.4 '@types/cors': - specifier: ^2.8.12 + specifier: ^2.8.19 version: 2.8.19 '@types/express': specifier: ^4.17.13 version: 4.17.25 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/js-yaml': specifier: ^4.0.9 version: 4.0.9 '@types/node': specifier: ^24.13.3 version: 24.13.6 - '@types/uuid': - specifier: ^8.3.1 - version: 8.3.4 '@types/ws': specifier: ^8.18.1 version: 8.18.1 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -38526,32 +38210,29 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -38605,38 +38286,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -38654,41 +38335,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -38796,38 +38477,35 @@ importers: specifier: workspace:^0.7.21 version: link:../../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/qs': specifier: ~6.9.7 version: 6.9.18 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -38839,19 +38517,19 @@ importers: version: 1.93.3 svelte-check: specifier: ^3.6.9 - version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20) + version: 3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.20) + specifier: ^1.8.1 + version: 1.8.1(svelte@4.2.20) svelte-loader: specifier: ^3.2.0 version: 3.2.4(svelte@4.2.20) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + version: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -38956,41 +38634,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -39310,8 +38988,8 @@ importers: specifier: ^1.20.3 version: 1.20.3 cors: - specifier: ^2.8.5 - version: 2.8.5 + specifier: ^2.8.6 + version: 2.8.6 dotenv: specifier: ^16.4.5 version: 16.6.1 @@ -39329,7 +39007,7 @@ importers: version: 14.1.0 mongodb: specifier: ^6.16.0 - version: 6.20.0(gcp-metadata@5.3.0(encoding@0.1.13))(snappy@7.3.3)(socks@2.8.7) + version: 6.20.0(gcp-metadata@5.3.0)(snappy@7.3.3)(socks@2.8.7) octokit: specifier: ^3.1.1 version: 3.2.2 @@ -39350,7 +39028,7 @@ importers: specifier: ~1.7.2 version: 1.7.5 '@types/cors': - specifier: ^2.8.12 + specifier: ^2.8.19 version: 2.8.19 '@types/express': specifier: ^4.17.13 @@ -39359,26 +39037,23 @@ importers: specifier: ^1.1.7 version: 1.5.1 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/markdown-it': specifier: ~13.0.0 version: 13.0.9 '@types/node': specifier: ^24.13.3 version: 24.13.6 - '@types/uuid': - specifier: ^8.3.1 - version: 8.3.4 '@types/ws': specifier: ^8.18.1 version: 8.18.1 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -39386,26 +39061,26 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) graphql-binding: specifier: ^2.5.2 version: 2.5.2 jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -39413,8 +39088,8 @@ importers: specifier: ^1.2.3 version: 1.2.5 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -39447,41 +39122,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -39526,41 +39201,41 @@ importers: specifier: workspace:^0.7.21 version: link:../../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -39599,38 +39274,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -39707,8 +39382,8 @@ importers: specifier: workspace:^0.7.0 version: link:../../../plugins/setting cors: - specifier: ^2.8.5 - version: 2.8.5 + specifier: ^2.8.6 + version: 2.8.6 dotenv: specifier: ^16.4.5 version: 16.6.1 @@ -39723,22 +39398,22 @@ importers: version: 0.10.4 gaxios: specifier: ^5.0.1 - version: 5.1.3(encoding@0.1.13) + version: 5.1.3 google-auth-library: specifier: ^8.0.2 - version: 8.9.0(encoding@0.1.13) + version: 8.9.0 googleapis: specifier: ^122.0.0 - version: 122.0.0(encoding@0.1.13) + version: 122.0.0 jwt-simple: specifier: ^0.5.6 version: 0.5.6 sanitize-html: - specifier: ^2.15.0 - version: 2.17.0 + specifier: 2.17.5 + version: 2.17.5 uuid: - specifier: ^8.3.2 - version: 8.3.2 + specifier: ^11.1.1 + version: 11.1.1 ws: specifier: ^8.21.0 version: 8.21.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -39750,32 +39425,29 @@ importers: specifier: ^1.0.4 version: 1.0.4 '@types/cors': - specifier: ^2.8.12 + specifier: ^2.8.19 version: 2.8.19 '@types/express': specifier: ^4.17.13 version: 4.17.25 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@types/sanitize-html': - specifier: ^2.15.0 - version: 2.16.0 - '@types/uuid': - specifier: ^8.3.1 - version: 8.3.4 + specifier: ^2.16.1 + version: 2.16.2 '@types/ws': specifier: ^8.18.1 version: 8.18.1 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -39783,32 +39455,29 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -39882,8 +39551,8 @@ importers: specifier: workspace:^0.7.18 version: link:../../foundations/core/packages/token cors: - specifier: ^2.8.5 - version: 2.8.5 + specifier: ^2.8.6 + version: 2.8.6 dotenv: specifier: ^16.4.5 version: 16.6.1 @@ -39897,8 +39566,8 @@ importers: specifier: ^2.13.3 version: 2.14.0 uuid: - specifier: ^8.3.2 - version: 8.3.2 + specifier: ^11.1.1 + version: 11.1.1 ws: specifier: ^8.21.0 version: 8.21.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -39910,29 +39579,26 @@ importers: specifier: ^1.0.4 version: 1.0.4 '@types/cors': - specifier: ^2.8.12 + specifier: ^2.8.19 version: 2.8.19 '@types/express': specifier: ^4.17.13 version: 4.17.25 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 - '@types/uuid': - specifier: ^8.3.1 - version: 8.3.4 '@types/ws': specifier: ^8.18.1 version: 8.18.1 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -39940,32 +39606,29 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -40021,8 +39684,8 @@ importers: specifier: workspace:^0.7.16 version: link:../../../foundations/server/packages/server-storage image-size: - specifier: ^1.2.1 - version: 1.2.1 + specifier: ^2.0.4 + version: 2.0.4 kafkajs: specifier: ^2.2.4 version: 2.2.4 @@ -40030,8 +39693,8 @@ importers: specifier: ^14.0.0 version: 14.1.0 sanitize-html: - specifier: ^2.15.0 - version: 2.17.0 + specifier: 2.17.5 + version: 2.17.5 striptags: specifier: ^3.2.0 version: 3.2.0 @@ -40039,8 +39702,8 @@ importers: specifier: ^7.2.0 version: 7.2.2 uuid: - specifier: ^8.3.2 - version: 8.3.2 + specifier: ^11.1.1 + version: 11.1.1 devDependencies: '@hcengineering/platform-rig': specifier: workspace:^0.7.21 @@ -40052,8 +39715,8 @@ importers: specifier: ^4.17.13 version: 4.17.25 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/markdown-it': specifier: ~13.0.0 version: 13.0.9 @@ -40061,50 +39724,44 @@ importers: specifier: ^24.13.3 version: 24.13.6 '@types/sanitize-html': - specifier: ^2.15.0 - version: 2.16.0 + specifier: ^2.16.1 + version: 2.16.2 '@types/turndown': specifier: ^5.0.5 version: 5.0.6 - '@types/uuid': - specifier: ^8.3.1 - version: 8.3.4 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) esbuild: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -40129,12 +39786,9 @@ importers: '@hcengineering/server-core': specifier: workspace:^0.7.19 version: link:../../../foundations/server/packages/core - '@types/nodemailer': - specifier: ^6.4.17 - version: 6.4.21 cors: - specifier: ^2.8.5 - version: 2.8.5 + specifier: ^2.8.6 + version: 2.8.6 dotenv: specifier: ^16.4.5 version: 16.6.1 @@ -40145,8 +39799,8 @@ importers: specifier: ^11.1.0 version: 11.2.2 nodemailer: - specifier: ^6.10.0 - version: 6.10.1 + specifier: ^9.1.1 + version: 9.1.1 devDependencies: '@hcengineering/platform-rig': specifier: workspace:^0.7.21 @@ -40155,23 +39809,26 @@ importers: specifier: ^1.0.4 version: 1.0.4 '@types/cors': - specifier: ^2.8.12 + specifier: ^2.8.19 version: 2.8.19 '@types/express': specifier: ^4.17.13 version: 4.17.25 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 + '@types/nodemailer': + specifier: ^8.0.1 + version: 8.0.2 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -40179,32 +39836,29 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -40269,8 +39923,8 @@ importers: specifier: workspace:^0.7.18 version: link:../../../foundations/core/packages/token cors: - specifier: ^2.8.5 - version: 2.8.5 + specifier: ^2.8.6 + version: 2.8.6 dotenv: specifier: ^16.4.5 version: 16.6.1 @@ -40284,14 +39938,14 @@ importers: specifier: ^11.1.0 version: 11.2.2 sanitize-html: - specifier: ^2.15.0 - version: 2.17.0 + specifier: 2.17.5 + version: 2.17.5 turndown: specifier: ^7.2.0 version: 7.2.2 uuid: - specifier: ^8.3.2 - version: 8.3.2 + specifier: ^11.1.1 + version: 11.1.1 devDependencies: '@hcengineering/platform-rig': specifier: workspace:^0.7.21 @@ -40300,32 +39954,29 @@ importers: specifier: ^1.0.4 version: 1.0.4 '@types/cors': - specifier: ^2.8.12 + specifier: ^2.8.19 version: 2.8.19 '@types/express': specifier: ^4.17.13 version: 4.17.25 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@types/sanitize-html': - specifier: ^2.15.0 - version: 2.16.0 + specifier: ^2.16.1 + version: 2.16.2 '@types/turndown': specifier: ^5.0.5 version: 5.0.6 - '@types/uuid': - specifier: ^8.3.1 - version: 8.3.4 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -40333,32 +39984,29 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -40424,17 +40072,17 @@ importers: specifier: ^1.0.4 version: 1.0.4 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -40442,32 +40090,29 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -40505,8 +40150,8 @@ importers: specifier: workspace:^0.7.18 version: link:../../../foundations/core/packages/token cors: - specifier: ^2.8.5 - version: 2.8.5 + specifier: ^2.8.6 + version: 2.8.6 dotenv: specifier: ^16.4.5 version: 16.6.1 @@ -40524,14 +40169,14 @@ importers: specifier: ^1.0.4 version: 1.0.4 '@types/cors': - specifier: ^2.8.12 + specifier: ^2.8.19 version: 2.8.19 '@types/express': specifier: ^4.17.13 version: 4.17.25 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 @@ -40539,11 +40184,11 @@ importers: specifier: ^3.6.4 version: 3.6.4 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -40551,32 +40196,29 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -40614,8 +40256,8 @@ importers: specifier: ^0.37.0 version: 0.37.0 cors: - specifier: ^2.8.5 - version: 2.8.5 + specifier: ^2.8.6 + version: 2.8.6 dotenv: specifier: ^16.4.5 version: 16.6.1 @@ -40626,20 +40268,20 @@ importers: specifier: ^7.4.0 version: 7.5.1(express@4.21.2) morgan: - specifier: ^1.10.0 - version: 1.10.1 + specifier: ^1.11.0 + version: 1.12.1 on-headers: specifier: ^1.0.2 version: 1.1.0 postgres: - specifier: ^3.4.7 - version: 3.4.7 + specifier: ^3.4.9 + version: 3.4.9 stripe: specifier: ^17.3.1 version: 17.7.0 uuid: - specifier: ^8.3.2 - version: 8.3.2 + specifier: ^11.1.1 + version: 11.1.1 devDependencies: '@hcengineering/platform-rig': specifier: workspace:^0.7.21 @@ -40648,7 +40290,7 @@ importers: specifier: ^1.0.4 version: 1.0.4 '@types/cors': - specifier: ^2.8.12 + specifier: ^2.8.19 version: 2.8.19 '@types/express': specifier: ^4.17.13 @@ -40657,8 +40299,8 @@ importers: specifier: ^6.0.0 version: 6.0.2(express@4.21.2) '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/morgan': specifier: ~1.9.9 version: 1.9.10 @@ -40668,18 +40310,15 @@ importers: '@types/on-headers': specifier: ^1.0.2 version: 1.0.4 - '@types/uuid': - specifier: ^8.3.1 - version: 8.3.4 '@types/ws': specifier: ^8.18.1 version: 8.18.1 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -40687,32 +40326,29 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -40750,8 +40386,8 @@ importers: specifier: workspace:^0.7.18 version: link:../../../foundations/core/packages/token cors: - specifier: ^2.8.5 - version: 2.8.5 + specifier: ^2.8.6 + version: 2.8.6 dotenv: specifier: ^16.4.5 version: 16.6.1 @@ -40763,7 +40399,7 @@ importers: version: 1.11.0 puppeteer: specifier: ^25.3.0 - version: 25.11.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)(yauzl@2.10.0) + version: 25.11.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) ws: specifier: ^8.21.0 version: 8.21.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -40775,14 +40411,14 @@ importers: specifier: ^1.0.4 version: 1.0.4 '@types/cors': - specifier: ^2.8.12 + specifier: ^2.8.19 version: 2.8.19 '@types/express': specifier: ^4.17.13 version: 4.17.25 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 @@ -40790,11 +40426,11 @@ importers: specifier: ^8.18.1 version: 8.18.1 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -40802,32 +40438,29 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -40896,53 +40529,47 @@ importers: specifier: ^1.0.4 version: 1.0.4 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 - '@types/uuid': - specifier: ^8.3.1 - version: 8.3.4 '@types/ws': specifier: ^8.18.1 version: 8.18.1 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) esbuild: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -41032,8 +40659,8 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/koa': specifier: ^2.15.0 version: 2.15.0 @@ -41050,11 +40677,11 @@ importers: specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -41062,29 +40689,29 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -41106,6 +40733,9 @@ importers: '@hcengineering/platform': specifier: workspace:^0.7.20 version: link:../../foundations/core/packages/platform + '@hcengineering/server-client': + specifier: workspace:^0.7.16 + version: link:../../foundations/server/packages/client '@hcengineering/server-core': specifier: workspace:^0.7.19 version: link:../../foundations/server/packages/core @@ -41116,8 +40746,8 @@ importers: specifier: ^1.20.3 version: 1.20.3 cors: - specifier: ^2.8.5 - version: 2.8.5 + specifier: ^2.8.6 + version: 2.8.6 dotenv: specifier: ^16.4.5 version: 16.6.1 @@ -41128,8 +40758,8 @@ importers: specifier: ^4.21.2 version: 4.21.2 express-form-data: - specifier: ^2.0.22 - version: 2.0.23 + specifier: ^3.0.1 + version: 3.0.1 html-to-text: specifier: ^9.0.3 version: 9.0.5 @@ -41149,14 +40779,17 @@ importers: specifier: ~2.1.34 version: 2.1.35 morgan: - specifier: ^1.10.0 - version: 1.10.1 + specifier: ^1.11.0 + version: 1.12.1 pdfjs-dist: - specifier: 2.12.313 - version: 2.12.313 + specifier: 6.2.108 + version: 6.2.108 sharp: - specifier: ~0.34.3 - version: 0.34.5 + specifier: ~0.35.3 + version: 0.35.5(@types/node@24.13.6) + unpdf: + specifier: ~1.8.1 + version: 1.8.1(@napi-rs/canvas@1.0.10) devDependencies: '@hcengineering/platform-rig': specifier: workspace:^0.7.21 @@ -41165,7 +40798,7 @@ importers: specifier: ~1.19.2 version: 1.19.6 '@types/cors': - specifier: ^2.8.12 + specifier: ^2.8.19 version: 2.8.19 '@types/express': specifier: ^4.17.13 @@ -41177,8 +40810,8 @@ importers: specifier: ^8.1.1 version: 8.1.1 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/mime-types': specifier: ~2.1.1 version: 2.1.4 @@ -41189,44 +40822,41 @@ importers: specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) esbuild: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) node-loader: specifier: ~2.0.0 - version: 2.0.0(webpack@5.102.1(esbuild@0.25.12)) + version: 2.0.0(webpack@5.111.1(esbuild@0.25.12)(sharp@0.35.5(@types/node@24.13.6))) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -41273,20 +40903,20 @@ importers: specifier: workspace:^0.7.18 version: link:../../../foundations/core/packages/token '@signpdf/placeholder-pdf-lib': - specifier: ^3.2.4 - version: 3.2.6(pdf-lib@1.17.1) + specifier: ^3.3.0 + version: 3.3.0(pdf-lib@1.17.1) '@signpdf/signer-p12': - specifier: ^3.2.4 - version: 3.2.4(node-forge@1.3.1) + specifier: ^3.3.0 + version: 3.3.0(node-forge@1.4.0) '@signpdf/signpdf': - specifier: ^3.2.4 - version: 3.2.5 + specifier: ^3.3.0 + version: 3.3.0 '@signpdf/utils': - specifier: ^3.2.4 - version: 3.2.4 + specifier: ^3.3.0 + version: 3.3.0 cors: - specifier: ^2.8.5 - version: 2.8.5 + specifier: ^2.8.6 + version: 2.8.6 dotenv: specifier: ^16.4.5 version: 16.6.1 @@ -41295,12 +40925,12 @@ importers: version: 4.21.2 mongodb: specifier: ^6.16.0 - version: 6.20.0(gcp-metadata@5.3.0(encoding@0.1.13))(snappy@7.3.3)(socks@2.8.7) + version: 6.20.0(gcp-metadata@5.3.0)(snappy@7.3.3)(socks@2.8.7) node-forge: - specifier: ^1.3.1 - version: 1.3.1 + specifier: ^1.3.3 + version: 1.4.0 pdf-lib: - specifier: ^1.12.0 + specifier: ^1.17.1 version: 1.17.1 devDependencies: '@hcengineering/platform-rig': @@ -41310,53 +40940,50 @@ importers: specifier: ^1.0.4 version: 1.0.4 '@types/cors': - specifier: ^2.8.12 + specifier: ^2.8.19 version: 2.8.19 '@types/express': specifier: ^4.17.13 version: 4.17.25 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) esbuild: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -41442,8 +41069,8 @@ importers: specifier: ^0.5.0 version: 0.5.0 cors: - specifier: ^2.8.5 - version: 2.8.5 + specifier: ^2.8.6 + version: 2.8.6 dotenv: specifier: ^16.4.5 version: 16.6.1 @@ -41451,20 +41078,20 @@ importers: specifier: ^4.21.2 version: 4.21.2 htmlparser2: - specifier: ^9.0.0 - version: 9.1.0 + specifier: ~10.1.0 + version: 10.1.0 mongodb: specifier: ^6.16.0 - version: 6.20.0(gcp-metadata@5.3.0(encoding@0.1.13))(snappy@7.3.3)(socks@2.8.7) + version: 6.20.0(gcp-metadata@5.3.0)(snappy@7.3.3)(socks@2.8.7) otp-generator: specifier: ^4.0.1 version: 4.0.1 postgres: - specifier: ^3.4.7 - version: 3.4.7 + specifier: ^3.4.9 + version: 3.4.9 telegraf: specifier: ^4.16.3 - version: 4.16.3(encoding@0.1.13) + version: 4.16.3 devDependencies: '@hcengineering/platform-rig': specifier: workspace:^0.7.21 @@ -41473,14 +41100,14 @@ importers: specifier: ^1.0.4 version: 1.0.4 '@types/cors': - specifier: ^2.8.12 + specifier: ^2.8.19 version: 2.8.19 '@types/express': specifier: ^4.17.13 version: 4.17.25 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 @@ -41491,41 +41118,38 @@ importers: specifier: ^8.18.1 version: 8.18.1 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) esbuild: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -41581,8 +41205,8 @@ importers: specifier: ^1.6.51 version: 1.6.52 cors: - specifier: ^2.8.5 - version: 2.8.5 + specifier: ^2.8.6 + version: 2.8.6 dotenv: specifier: ^16.4.5 version: 16.6.1 @@ -41590,8 +41214,8 @@ importers: specifier: ^4.21.2 version: 4.21.2 htmlparser2: - specifier: ^9.0.0 - version: 9.1.0 + specifier: ~10.1.0 + version: 10.1.0 jwt-simple: specifier: ^0.5.6 version: 0.5.6 @@ -41600,13 +41224,13 @@ importers: version: 3.0.0 mongodb: specifier: ^6.16.0 - version: 6.20.0(gcp-metadata@5.3.0(encoding@0.1.13))(snappy@7.3.3)(socks@2.8.7) + version: 6.20.0(gcp-metadata@5.3.0)(snappy@7.3.3)(socks@2.8.7) telegram: specifier: 2.22.2 version: 2.22.2 uuid: - specifier: ^8.3.2 - version: 8.3.2 + specifier: ^11.1.1 + version: 11.1.1 ws: specifier: ^8.21.0 version: 8.21.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -41618,32 +41242,29 @@ importers: specifier: ^1.0.4 version: 1.0.4 '@types/cors': - specifier: ^2.8.12 + specifier: ^2.8.19 version: 2.8.19 '@types/express': specifier: ^4.17.13 version: 4.17.25 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/mime': specifier: ^3.0.1 version: 3.0.4 '@types/node': specifier: ^24.13.3 version: 24.13.6 - '@types/uuid': - specifier: ^8.3.1 - version: 8.3.4 '@types/ws': specifier: ^8.18.1 version: 8.18.1 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) bson: specifier: ^6.10.3 version: 6.10.4 @@ -41651,29 +41272,29 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node-dev: specifier: ^2.0.0 version: 2.0.0(@types/node@24.13.6)(typescript@5.9.3) @@ -41742,7 +41363,7 @@ importers: version: 16.6.1 openai: specifier: ^4.56.0 - version: 4.104.0(encoding@0.1.13)(ws@8.21.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.25.76) + version: 4.104.0(ws@8.21.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.25.76) devDependencies: '@hcengineering/platform-rig': specifier: workspace:^0.7.21 @@ -41751,8 +41372,8 @@ importers: specifier: ^1.0.4 version: 1.0.4 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 @@ -41763,41 +41384,38 @@ importers: specifier: ^8.18.1 version: 8.18.1 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) esbuild: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -41823,8 +41441,8 @@ importers: specifier: ^16.4.5 version: 16.6.1 postgres: - specifier: ^3.4.7 - version: 3.4.7 + specifier: ^3.4.9 + version: 3.4.9 devDependencies: '@hcengineering/platform-rig': specifier: workspace:^0.7.21 @@ -41836,23 +41454,20 @@ importers: specifier: ^1.0.4 version: 1.0.4 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 - '@types/uuid': - specifier: ^8.3.1 - version: 8.3.4 '@types/ws': specifier: ^8.18.1 version: 8.18.1 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) cross-env: specifier: ~7.0.3 version: 7.0.3 @@ -41860,32 +41475,29 @@ importers: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) - eslint-plugin-node: - specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) @@ -41918,47 +41530,47 @@ importers: version: 16.6.1 devDependencies: '@faker-js/faker': - specifier: ^8.4.1 - version: 8.4.1 + specifier: ^10.6.0 + version: 10.6.0 '@hcengineering/platform-rig': specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@playwright/test': - specifier: ^1.48.2 - version: 1.56.1 + specifier: ^1.63.0 + version: 1.63.0 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) allure-js-commons: - specifier: ^3.0.6 - version: 3.4.2(allure-playwright@3.4.2(@playwright/test@1.56.1)) + specifier: ^3.12.1 + version: 3.13.0(allure-playwright@3.13.0(@playwright/test@1.63.0)) allure-playwright: - specifier: ^3.0.6 - version: 3.4.2(@playwright/test@1.56.1) - eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^3.12.1 + version: 3.13.0(@playwright/test@1.63.0) + eslint: + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -42024,14 +41636,14 @@ importers: specifier: ~1.7.2 version: 1.7.5 '@types/cors': - specifier: ^2.8.12 + specifier: ^2.8.19 version: 2.8.19 '@types/express': specifier: ^4.17.13 version: 4.17.25 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/morgan': specifier: ~1.9.9 version: 1.9.10 @@ -42042,35 +41654,35 @@ importers: specifier: ^8.18.1 version: 8.18.1 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + specifier: ^30.4.2 + version: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 ts-jest: - specifier: ^29.1.1 - version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3) + specifier: ^29.4.12 + version: 29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -42091,8 +41703,8 @@ importers: version: 16.6.1 devDependencies: '@faker-js/faker': - specifier: ^8.4.1 - version: 8.4.1 + specifier: ^10.6.0 + version: 10.6.0 '@hcengineering/platform-rig': specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig @@ -42100,41 +41712,41 @@ importers: specifier: workspace:^0.7.0 version: link:../../tests/sanity '@playwright/test': - specifier: ^1.48.2 - version: 1.56.1 + specifier: ^1.63.0 + version: 1.63.0 '@types/jest': - specifier: ^29.5.5 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/node': specifier: ^24.13.3 version: 24.13.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) allure-js-commons: - specifier: ^3.0.6 - version: 3.4.2(allure-playwright@3.4.2(@playwright/test@1.56.1)) + specifier: ^3.12.1 + version: 3.13.0(allure-playwright@3.13.0(@playwright/test@1.63.0)) allure-playwright: - specifier: ^3.0.6 - version: 3.4.2(@playwright/test@1.56.1) - eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^3.12.1 + version: 3.13.0(@playwright/test@1.63.0) + eslint: + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -42148,38 +41760,38 @@ importers: specifier: workspace:^0.7.21 version: link:../../foundations/utils/packages/platform-rig '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^8.67.0 + version: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) esbuild: specifier: ^0.25.10 version: 0.25.12 eslint: - specifier: ^8.54.0 - version: 8.57.1 - eslint-config-standard-with-typescript: - specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-import: - specifier: ^2.26.0 - version: 2.32.0(eslint@8.57.1) + specifier: ^9.39.5 + version: 9.39.5(jiti@2.7.0) + eslint-config-love: + specifier: ^157.0.0 + version: 157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-n: - specifier: ^15.4.0 - version: 15.7.0(eslint@8.57.1) + specifier: ^18.3.0 + version: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) + specifier: ^7.3.0 + version: 7.3.0(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-secure-coding: + specifier: ^5.4.4 + version: 5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + eslint-plugin-svelte: + specifier: ^3.23.0 + version: 3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) sharp: - specifier: ~0.34.3 - version: 0.34.5 + specifier: ~0.35.3 + version: 0.35.5(@types/node@24.13.6) packages: - 7zip-bin@5.2.0: - resolution: {integrity: sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A==} - '@adobe/css-tools@4.4.4': resolution: {integrity: sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==} @@ -42458,26 +42070,14 @@ packages: '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - '@braintree/sanitize-url@7.1.1': - resolution: {integrity: sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw==} + '@braintree/sanitize-url@7.1.2': + resolution: {integrity: sha512-jigsZK+sMF/cuiB7sERuo9V7N9jx+dhmHHnQyDSVdpZwVutaBu7WvNYqMDLSgFgfB30n452TP3vjDAvFC973mA==} '@bufbuild/protobuf@1.10.1': resolution: {integrity: sha512-wJ8ReQbHxsAfXhrf9ixl0aYbZorRuOWpBNzm8pL8ftmSxQx/wnJD5Eg861NwJU/czy2VXFIebCeZnZrI9rktIQ==} - '@chevrotain/cst-dts-gen@11.0.3': - resolution: {integrity: sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==} - - '@chevrotain/gast@11.0.3': - resolution: {integrity: sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==} - - '@chevrotain/regexp-to-ast@11.0.3': - resolution: {integrity: sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA==} - - '@chevrotain/types@11.0.3': - resolution: {integrity: sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ==} - - '@chevrotain/utils@11.0.3': - resolution: {integrity: sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==} + '@chevrotain/types@11.1.2': + resolution: {integrity: sha512-U+HFai5+zmJCkK86QsaJtoITlboZHBqrVketcO2ROv865xfCMSFpELQoz1GkX5GzME8pTa+3kbKrZHQtI0gdbw==} '@colors/colors@1.6.0': resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} @@ -42521,10 +42121,6 @@ packages: '@dabh/diagnostics@2.0.8': resolution: {integrity: sha512-R4MSXTVnuMzGD7bzHdW2ZhhdPC/igELENcq5IjEverBvq5hn1SXCWcsi6eSsdWP0/Ur+SItRRjAktmdoX/8R/Q==} - '@develar/schema-utils@2.6.5': - resolution: {integrity: sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==} - engines: {node: '>= 8.9.0'} - '@discoveryjs/json-ext@0.5.7': resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} engines: {node: '>=10.0.0'} @@ -42533,42 +42129,66 @@ packages: resolution: {integrity: sha512-6uQ1pVXutwz1Krwooo67W+3K8BwH1ASMh1WoHTpomUzw8EXecXN5lHIJ9EPqTHuv1WqR2LKkSJyagcq0HYUJpg==} engines: {node: '>=12'} + '@electron-internal/extract-zip@1.0.5': + resolution: {integrity: sha512-+bqFCP98pLI0Tt0XQo1TmlXtwjWchISndDOxCkEcIuUgXWpBnLyRI+2DU+mesvnMMX6L1XDqYNA0lXNDHd/yiA==} + engines: {node: '>=22.12.0'} + '@electron/asar@3.4.1': resolution: {integrity: sha512-i4/rNPRS84t0vSRa2HorerGRXWyF4vThfHesw0dmcWHp+cspK743UanA0suA5Q5y8kzY2y6YKrvbIUn69BCAiA==} engines: {node: '>=10.12.0'} hasBin: true - '@electron/get@2.0.3': - resolution: {integrity: sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==} - engines: {node: '>=12'} + '@electron/fuses@1.8.0': + resolution: {integrity: sha512-zx0EIq78WlY/lBb1uXlziZmDZI4ubcCXIMJ4uGjXzZW0nS19TjSPeXPAjzzTmKQlJUZm0SbmZhPKP7tuQ1SsEw==} + hasBin: true + + '@electron/get@3.1.0': + resolution: {integrity: sha512-F+nKc0xW+kVbBRhFzaMgPy3KwmuNTYX1fx6+FxxoSnNgwYX6LD7AKBTWkU0MQ6IBoe7dz069CNkR673sPAgkCQ==} + engines: {node: '>=14'} + + '@electron/get@5.1.0': + resolution: {integrity: sha512-3kSBtG8ObcTVfXanm5vVJ6UnBLEVmVsRk1M+vGqCuMBV+XLCbJYuWQful+yIy0GQDsSlK0kHEriEHn7SPk4EnA==} + engines: {node: '>=22.12.0'} '@electron/notarize@2.5.0': resolution: {integrity: sha512-jNT8nwH1f9X5GEITXaQ8IF/KdskvIkOFfB2CvwumsveVidzpSc+mvhhTMdAGSYF3O+Nq49lJ7y+ssODRXu06+A==} engines: {node: '>= 10.0.0'} - '@electron/osx-sign@1.3.1': - resolution: {integrity: sha512-BAfviURMHpmb1Yb50YbCxnOY0wfwaLXH5KJ4+80zS0gUkzDX3ec23naTlEqKsN+PwYn+a1cCzM7BJ4Wcd3sGzw==} + '@electron/osx-sign@1.3.3': + resolution: {integrity: sha512-KZ8mhXvWv2rIEgMbWZ4y33bDHyUKMXnx4M0sTyPNK/vcB81ImdeY9Ggdqy0SWbMDgmbqyQ+phgejh6V3R2QuSg==} engines: {node: '>=12.0.0'} hasBin: true - '@electron/rebuild@3.6.1': - resolution: {integrity: sha512-f6596ZHpEq/YskUd8emYvOUne89ij8mQgjYFA5ru25QwbrRO+t1SImofdDv7kKOuWCmVOuU5tvfkbgGxIl3E/w==} - engines: {node: '>=12.13.0'} + '@electron/rebuild@4.2.1': + resolution: {integrity: sha512-IS4pG3BysRrCLJ8xTAfvg+IQDbiUoAzdJy2SfjcYKnLDy5DpCdjnPdhS5Zf5UMfrkB24xu0KC+TqcOxg+eG+6w==} + engines: {node: '>=22.12.0'} hasBin: true - '@electron/universal@2.0.1': - resolution: {integrity: sha512-fKpv9kg4SPmt+hY7SVBnIYULE9QJl8L3sCfcBsnqbJwwBwAeTLokJ9TRt9y7bK0JAzIW2y78TVVjvnQEms/yyA==} + '@electron/universal@2.0.3': + resolution: {integrity: sha512-Wn9sPYIVFRFl5HmwMJkARCCf7rqK/EurkfQ/rJZ14mHP3iYTjZSIOSVonEAnhWeAXwtw7zOekGRlc6yTtZ0t+g==} engines: {node: '>=16.4'} + '@emnapi/core@1.10.0': + resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} + '@emnapi/core@1.7.0': resolution: {integrity: sha512-pJdKGq/1iquWYtv1RRSljZklxHCOCAJFJrImO5ZLKPJVJlVUcs8yFwNQlqS0Lo8xT1VAXXTCZocF9n26FWEKsw==} + '@emnapi/runtime@1.10.0': + resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} + + '@emnapi/runtime@1.11.3': + resolution: {integrity: sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==} + '@emnapi/runtime@1.7.0': resolution: {integrity: sha512-oAYoQnCYaQZKVS53Fq23ceWMRxq5EhQsE0x0RdQ55jT7wagMu5k+fS39v1fiSLrtrLQlXwVINenqhLMtTrV/1Q==} '@emnapi/wasi-threads@1.1.0': resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} + '@emnapi/wasi-threads@1.2.1': + resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} + '@esbuild/aix-ppc64@0.25.12': resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} engines: {node: '>=18'} @@ -42725,6 +42345,18 @@ packages: cpu: [x64] os: [win32] + '@eslint-community/eslint-plugin-eslint-comments@4.8.1': + resolution: {integrity: sha512-vafrdi15JHBFh1qWOAucyJwlEEuhdoMof28jOdKdgnwZ7bXwd6v4wzHYSmAVLwnx0yc7bqAtfJ0EZQV1WAzV/Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 + + '@eslint-community/eslint-utils@4.10.1': + resolution: {integrity: sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/eslint-utils@4.9.0': resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -42735,17 +42367,37 @@ packages: resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/config-array@0.21.2': + resolution: {integrity: sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@8.57.1': - resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/config-helpers@0.4.2': + resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@faker-js/faker@8.4.1': - resolution: {integrity: sha512-XQ3cU+Q8Uqmrbf2e0cIC/QN43sTBSC8KF12u29Mb47tWrt2hAgBXSgpZMj4Ao8Uk0iJcU99QsOCaIL8934obCg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0, npm: '>=6.14.13'} + '@eslint/core@0.17.0': + resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.3.7': + resolution: {integrity: sha512-F42g89Qd5oAWtp0k0nnSrjziAKza7w8SVT4mStc18LZMaRb4J1HQAHLCalEtDCxrTuksx7NU9qsmeLwpOfPqWw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.39.5': + resolution: {integrity: sha512-QywQuszQh77pIXCsq998c8hbhSTI/azTty1Z6N53dmAudKHhy573j3yvRLsX2BSp8YpLtoCEG8E9DJe+8zUh4A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.7': + resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.4.1': + resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@faker-js/faker@10.6.0': + resolution: {integrity: sha512-3RQHgEtvL1Frl/d1cSreo7qhJ3Gk1OdNUai/CtZ8G+wYeRQnJih3s9xJ9/kgYekPQRdwgh0HXRPqMlzWGwivIQ==} + engines: {node: ^20.19.0 || ^22.13.0 || ^23.5.0 || >=24.0.0, npm: '>=10'} '@formatjs/ecma402-abstract@2.3.6': resolution: {integrity: sha512-HJnTFeRM2kVFVr5gr5kH1XP6K0JcJtE7Lzvtr3FS/so5f1kpsqqqxy5JF+FRaO6H2qmcMfAUIox7AJteieRtVw==} @@ -42762,9 +42414,6 @@ packages: '@formatjs/intl-localematcher@0.6.2': resolution: {integrity: sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA==} - '@gar/promisify@1.1.3': - resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} - '@grpc/grpc-js@1.14.5': resolution: {integrity: sha512-7VZM+SVdEcUUqSQeNI3zM8Qs/BhQKZndPo2h5VkYkAM8Iz0wJIa8mKV5ekQGqG8UUsnkQ0NMxIxwkIHYvj0qOw==} engines: {node: '>=12.10.0'} @@ -42800,18 +42449,25 @@ packages: y-prosemirror: ^1.2.1 yjs: ^13.6.8 - '@humanwhocodes/config-array@0.13.0': - resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead + '@humanfs/core@0.19.2': + resolution: {integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.8': + resolution: {integrity: sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==} + engines: {node: '>=18.18.0'} + + '@humanfs/types@0.15.0': + resolution: {integrity: sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==} + engines: {node: '>=18.18.0'} '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - deprecated: Use @eslint/object-schema instead + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + engines: {node: '>=18.18'} '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} @@ -42819,150 +42475,167 @@ packages: '@iconify/utils@3.0.2': resolution: {integrity: sha512-EfJS0rLfVuRuJRn4psJHtK2A9TqVnkxPpHY6lYHiB9+8eSuudsxbwMiavocG45ujOo6FJ+CIRlRnlOGinzkaGQ==} - '@img/colour@1.0.0': - resolution: {integrity: sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==} + '@img/colour@1.1.0': + resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==} engines: {node: '>=18'} - '@img/sharp-darwin-arm64@0.34.5': - resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-darwin-arm64@0.35.5': + resolution: {integrity: sha512-QRUlFQ0WxvdWyqqG/WtI3iupfD5rBzmCHXSdPsY91sAtVtTo7Q4cb6zOccZ3gqEqkr0f1As1ehLqmEpDsRf+lg==} + engines: {node: '>=20.9.0'} cpu: [arm64] os: [darwin] - '@img/sharp-darwin-x64@0.34.5': - resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-darwin-x64@0.35.5': + resolution: {integrity: sha512-+BR255RhDlpygUpOc/Jdt1nT6DQ3XG/ERo5wbcdOf5Q320dKtPCKPLR1LJs9VGXRaMa8l1uUa0tkCNOXiAxZUw==} + engines: {node: '>=20.9.0'} cpu: [x64] os: [darwin] - '@img/sharp-libvips-darwin-arm64@1.2.4': - resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==} + '@img/sharp-freebsd-wasm32@0.35.5': + resolution: {integrity: sha512-Y/z91nEZ4uIBX5X3nfTovjU9lHNKFYbL2lpHCLVNmXQK03VIZvXBBt0KxbPGp2SdGSF+2mQU4e+hQaWOt86iAw==} + engines: {node: '>=20.9.0'} + os: [freebsd] + + '@img/sharp-libvips-darwin-arm64@1.3.4': + resolution: {integrity: sha512-5R89nBYiRdUlSWJxPhO+GVtaXzXSxKnRu/xqMn3KTA3L9EB9Oy/P+Nn2f2vlhPuUdy/Zusb2DarbyTpGCfEDuw==} cpu: [arm64] os: [darwin] - '@img/sharp-libvips-darwin-x64@1.2.4': - resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==} + '@img/sharp-libvips-darwin-x64@1.3.4': + resolution: {integrity: sha512-iR2OKH80yi0U+dUplyh3/xdpFvps6YkCwsXenIJxqxR1v9o+xtKTGbS9H7cps+2Vxjc8B1j96p75NmTGjIhtpQ==} cpu: [x64] os: [darwin] - '@img/sharp-libvips-linux-arm64@1.2.4': - resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} + '@img/sharp-libvips-linux-arm64@1.3.4': + resolution: {integrity: sha512-Y3dgX/6lE2QhQb+Gxy0WZxfg9MEm/JBjamZpS2IklP7xIQoKN4hzAm7KcMVGtaVDt3neE9OKBC7vAfonA/Lr1A==} cpu: [arm64] os: [linux] - '@img/sharp-libvips-linux-arm@1.2.4': - resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} + '@img/sharp-libvips-linux-arm@1.3.4': + resolution: {integrity: sha512-LmRtTsOHuvM2+wlO2Db37dx5MiZhB0FvSunciw48YjdOkZz9KAiRbm8ujeMOA1INqmei5NapFxYEK1D1ZSidmw==} cpu: [arm] os: [linux] - '@img/sharp-libvips-linux-ppc64@1.2.4': - resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} + '@img/sharp-libvips-linux-ppc64@1.3.4': + resolution: {integrity: sha512-Le6boB8Tai0Nis+gIxIpKx68UDVVIqdR8Tin5Yf1z2LJJQLDJvCDRqRu+jC2qCoD+eIomonmOwB4smBRxfVpYQ==} cpu: [ppc64] os: [linux] - '@img/sharp-libvips-linux-riscv64@1.2.4': - resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} + '@img/sharp-libvips-linux-riscv64@1.3.4': + resolution: {integrity: sha512-aHkkIEHPRdQEegJN20MLmGtxYD9R2wQr3Cwpddnu5+YKMt6Uzax7S9h5gpZTo8wyrGuZSlfQ63OevL5mTyOC7Q==} cpu: [riscv64] os: [linux] - '@img/sharp-libvips-linux-s390x@1.2.4': - resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} + '@img/sharp-libvips-linux-s390x@1.3.4': + resolution: {integrity: sha512-ra/mB6MikESDUO7Yg+Mi95bFBb9GsObURuhnOv3OqknjGe9sZrG8tCe9q0xSIGrtLgvgw0gKnFWcK4blSgQOuQ==} cpu: [s390x] os: [linux] - '@img/sharp-libvips-linux-x64@1.2.4': - resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} + '@img/sharp-libvips-linux-x64@1.3.4': + resolution: {integrity: sha512-GJ//SSXbnwSDes02umB3nDJLFcQzw8a18V8fyhqr6tV515tOEMdImjjxj1AoafMRz56F3PHgftnj1QEKSU1zkw==} cpu: [x64] os: [linux] - '@img/sharp-libvips-linuxmusl-arm64@1.2.4': - resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} + '@img/sharp-libvips-linuxmusl-arm64@1.3.4': + resolution: {integrity: sha512-hvulFwtjUcagsis6BBxHwGFwWoNZjgYmULGVrZcyfNbjA8hKILbRxGg15/7w5HDyXHXUos/j6baAWqnCyQ2DWA==} cpu: [arm64] os: [linux] - '@img/sharp-libvips-linuxmusl-x64@1.2.4': - resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} + '@img/sharp-libvips-linuxmusl-x64@1.3.4': + resolution: {integrity: sha512-6zXKeE/p39I1AmA3cJG35eyBGNqNddLnUXjhwBnsGjFPWqf5VKkDBEqaEkPDoTEtkxwi2vv8Tcr2mDyP4So7Fg==} cpu: [x64] os: [linux] - '@img/sharp-linux-arm64@0.34.5': - resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linux-arm64@0.35.5': + resolution: {integrity: sha512-LYVx5JTsOM2CBzmxreh+nl64/3H6Xb09iSLknqH47z2T2DFFxDeFLP5y4dJwe6H7uGQlHPyEEtIqyo3DYsRwdQ==} + engines: {node: '>=20.9.0'} cpu: [arm64] os: [linux] - '@img/sharp-linux-arm@0.34.5': - resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linux-arm@0.35.5': + resolution: {integrity: sha512-LEaXK2WdXVK5ykcw0buWyPMsmLLL2vpHLD6yrNSW+JGEL3BZPA4tpKN6iaMc4AxTTAoaX/sU1rOL51lcIz48ZQ==} + engines: {node: '>=20.9.0'} cpu: [arm] os: [linux] - '@img/sharp-linux-ppc64@0.34.5': - resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linux-ppc64@0.35.5': + resolution: {integrity: sha512-QVxAAq8evVRI9ia2vqgwrmWucn5Dfv+JdWzj75pD8omHLPSP7f8p20O8jxzjCcuCEQEOtYOZUmX1hkiZ0kdevA==} + engines: {node: '>=20.9.0'} cpu: [ppc64] os: [linux] - '@img/sharp-linux-riscv64@0.34.5': - resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linux-riscv64@0.35.5': + resolution: {integrity: sha512-LtdreXguaavKODPIfzJ4kffx7UNt1omwtK0rch4EBbbSTXPnxWmYSayXdLJw0fJzQ97kHt1gL/yh4tvU+nCyRQ==} + engines: {node: '>=20.9.0'} cpu: [riscv64] os: [linux] - '@img/sharp-linux-s390x@0.34.5': - resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linux-s390x@0.35.5': + resolution: {integrity: sha512-UZasTOFiYzotTsGOCu42BfUzP6Tu6Do/947iRm1RsLKvlllxwGcn4RN27LibGWceix4Y+Pmw3jsnTcCQIgWjqA==} + engines: {node: '>=20.9.0'} cpu: [s390x] os: [linux] - '@img/sharp-linux-x64@0.34.5': - resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linux-x64@0.35.5': + resolution: {integrity: sha512-SxFtLTeJInhAA9Q836kux2vZNeOBQEx658qvbboZScr0wIARym3IcGmW7KpVD5sbVg0Ojy+udFQdayYIZyoNog==} + engines: {node: '>=20.9.0'} cpu: [x64] os: [linux] - '@img/sharp-linuxmusl-arm64@0.34.5': - resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linuxmusl-arm64@0.35.5': + resolution: {integrity: sha512-9HbMclmI1zlNkFRs3z9/eBtDjfD0sGlrX1z6b1qwmiFY5ElDLh4BC0LPBdVp7z1DXFiKlIcznf+ZlsuZzLxQqg==} + engines: {node: '>=20.9.0'} cpu: [arm64] os: [linux] - '@img/sharp-linuxmusl-x64@0.34.5': - resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linuxmusl-x64@0.35.5': + resolution: {integrity: sha512-4KOphqB035HrVdqLZfCgMzzERrQkkzOwRhl4OAkRO1YCldbaFjySXMaK534Mo0V+LndnlJk+sbUyLeU0ULyD1A==} + engines: {node: '>=20.9.0'} cpu: [x64] os: [linux] - '@img/sharp-wasm32@0.34.5': - resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-wasm32@0.35.5': + resolution: {integrity: sha512-Ptsga1su4tQx+LLF1ECS9U6nz5kmrXKo6XVbtR48Ke3ZRxxgaWBu7IDtEe1quo8hiupwm6WFqxVlXaSf7IINGQ==} + engines: {node: '>=20.9.0'} + + '@img/sharp-webcontainers-wasm32@0.35.5': + resolution: {integrity: sha512-hfhF/FmoQyTUkA0bIKFOtw536BQSeBMe6BF6QyWlrPxT754+TFLaZ7sKKTfvvM0yJgKgaYTwnFCIZ/GuDw5SUA==} + engines: {node: '>=20.9.0'} cpu: [wasm32] - '@img/sharp-win32-arm64@0.34.5': - resolution: {integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-win32-arm64@0.35.5': + resolution: {integrity: sha512-X4t7g+7ZA5DKblCBEXGjUqqemj4vczING/5viFwAL8h4N3qYeyjwdCvRLHi4EdOUI+2Z7UFlp1VM+p/AuEtm6Q==} + engines: {node: '>=20.9.0'} cpu: [arm64] os: [win32] - '@img/sharp-win32-ia32@0.34.5': - resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-win32-ia32@0.35.5': + resolution: {integrity: sha512-5Zm82LoBc43nhwNybZlG7Y1KO//Zhsn306fQl29ZOuStHLGTo3BWL83q3cznX0poxSAMuYL1On/BHBxkBeKr6A==} + engines: {node: ^20.9.0} cpu: [ia32] os: [win32] - '@img/sharp-win32-x64@0.34.5': - resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-win32-x64@0.35.5': + resolution: {integrity: sha512-x76eH0vEiHlcMQu8Y8IenntaACtddpT6W0wmXtWrnKcnKI7ME5DdgqhAD6SEWOEl1v2zDvkZDhFA9KnURwpfqg==} + engines: {node: '>=20.9.0'} cpu: [x64] os: [win32] - '@isaacs/balanced-match@4.0.1': - resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} - engines: {node: 20 || >=22} - - '@isaacs/brace-expansion@5.0.0': - resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} - engines: {node: 20 || >=22} + '@interlace/eslint-devkit@1.19.8': + resolution: {integrity: sha512-zfxUG4xh3aumhHggmoYg6iIs/FBCXa9gFtWCReSSzlw38bp7OPaqj+cp5ggTrOaGs57Q0eJyULpYw2dcs946NA==} + engines: {node: '>=18.0.0'} + peerDependencies: + '@typescript-eslint/utils': ^7.0.0 || ^8.0.0 + eslint: ^8.40.0 || ^9.0.0 || ^10.0.0 + oxc-resolver: ^11.24.2 + typescript: '>=4.8.4' + peerDependenciesMeta: + '@typescript-eslint/utils': + optional: true + oxc-resolver: + optional: true + typescript: + optional: true '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} @@ -42980,100 +42653,101 @@ packages: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} - '@jest/console@29.7.0': - resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/console@30.5.2': + resolution: {integrity: sha512-e8sQC4pCMHPBrPX7Hk8TJr+DM5dkUnImSTNag8SEWFAFAF6xIz4AJvCKapnrdHnZxep4bxw4PhG+ZbimYBMyKw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/core@29.7.0': - resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/core@30.5.2': + resolution: {integrity: sha512-/jqvFWoJF7LV1a6AUpYMbMm+2yIYsHJfR474H0SCzr9k8tnO/jl9wRg6zSG6lxgf6EozNlCG4amFzWsbZSvvZA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: node-notifier: optional: true - '@jest/environment-jsdom-abstract@30.2.0': - resolution: {integrity: sha512-kazxw2L9IPuZpQ0mEt9lu9Z98SqR74xcagANmMBU16X0lS23yPc0+S6hGLUz8kVRlomZEs/5S/Zlpqwf5yu6OQ==} + '@jest/diff-sequences@30.5.0': + resolution: {integrity: sha512-OsqBjHXCn8cadasoAZBP6nWYvMsRhpMzGXTpxJ5aO04NlbdhIz+FVe3q49l0AwVhsz/cEmIpBes6gAFl1/dWQg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/environment-jsdom-abstract@30.5.2': + resolution: {integrity: sha512-8/P+8hKv7L4mhFoB6gpYLj/fuzXk8PWrde7TDHh8tJz5pE1ktlMbg0y6hDY/V8MfAnispFlPl/vPifowLy3JGQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: + '@types/jsdom': '*' canvas: ^3.0.0 jsdom: '*' peerDependenciesMeta: canvas: optional: true - '@jest/environment@29.7.0': - resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/environment@30.2.0': - resolution: {integrity: sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==} + '@jest/environment@30.5.2': + resolution: {integrity: sha512-nwFPOUMbmsjNNRCpnJpB9HbSZu4C07wDDds++5j+j1MezzPLxMPDdbdUVjr2o4RULDOValnDd70taPFI1EtxAg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/expect-utils@29.7.0': - resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/expect-utils@30.5.2': + resolution: {integrity: sha512-d/HOLSrJUlBIl6n3LzOa7cjW3xdePm5H5gQw2lixZ/0h157l9sw3mLblzFqnPcTbhDzhRQdBOX3A3KcG73nm5Q==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/expect@29.7.0': - resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/expect@30.5.2': + resolution: {integrity: sha512-2E+1Pg6jJxbRjLNLpciC71iri/3qsKJL222/aXJEFwC0VdUSvfS+JZQQLEVjUYYc8t8pQu2MGE3cF2+bNTYRsg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/fake-timers@29.7.0': - resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/fake-timers@30.5.2': + resolution: {integrity: sha512-GKk0h0tKT5SpDPxDhPg3r9mm5s8/YCBzVNMOGdRiQXwUiMsjU10mVPlMaQstH6/cu50vOb8N9oQUMETHuwwxKw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/fake-timers@30.2.0': - resolution: {integrity: sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==} + '@jest/get-type@30.5.0': + resolution: {integrity: sha512-9/2VUPitAjmBzbvDvqrxmvB7BzWsBW0WmkkojX1ODuxX1NLGxx9gfaZpHB0z8DtJ9uhGNmZG/VXBhf8uO0OV8Q==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/globals@29.7.0': - resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/globals@30.5.2': + resolution: {integrity: sha512-62zfS+dL+M5aTNHXCNLyqD+j4oqxTIzDYrZbpqMP8Yn+gvlAGyzC6BSPNb1ZmFOakV1RtFYX/O3FCQXSWmQdgg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/pattern@30.0.1': - resolution: {integrity: sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==} + '@jest/pattern@30.5.0': + resolution: {integrity: sha512-HdNQYSdRTEBNrginaqzQtTjG0HRMfrra/z6Ok7uL3S87vSlarIVohEsJsSj5edu3MiHoHjAkvPROz5ZjoKai+w==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/reporters@29.7.0': - resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/reporters@30.5.2': + resolution: {integrity: sha512-ev6E9iG73twQcfAfoTnviuYkr3yOrYbzAtMFCimv2fxHXPIp9PBt2u1wNMt0aYWgl8FPwIcS8oqRJg6alnht4Q==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: node-notifier: optional: true - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/schemas@30.0.5': resolution: {integrity: sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/source-map@29.6.3': - resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/schemas@30.5.0': + resolution: {integrity: sha512-/hunigyNpc4RCjC0VaW3f5RCUZVM2+WQ65qP7z083Gmvac7or2LI50XVNOtE4YPgBpV0yxYiAgorAPGniCoJmg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/snapshot-utils@30.5.1': + resolution: {integrity: sha512-V3wnxNtiVmw5PPVg433Cn3VdXnsOeu/ofLw3KC04Bn2y1wIlU5kozXQn48rhrgj/02LrCVtntTEF1yBha0XSUw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/test-result@29.7.0': - resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/source-map@30.5.2': + resolution: {integrity: sha512-c5CehvkbfHX6yyNg7bMn2ylqlp9AHXuZ/3hPH/Lh5bxD/vefd/lV9HBjMqXef9yQNqkdwyZvkLSVSwB38hy8Qw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/test-sequencer@29.7.0': - resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/test-result@30.5.2': + resolution: {integrity: sha512-eO6YU5rsLfs60ne694e0IAmRgeBnoA8mu0nlxXDbl/1j5km0o2vO9/VbbUIKIH+WRKKEI+ELgwraRGn2Lhep8g==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/transform@29.7.0': - resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/test-sequencer@30.5.2': + resolution: {integrity: sha512-bmij8jZyYAC47ExT2GeP7PcrlwSNS+Bp3KeRuBH88gpcxqDv6fljN8PemS4J/lLZ79xb6mpaennQTTq0zUAVVg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/types@29.6.3': - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/transform@30.5.2': + resolution: {integrity: sha512-LBGwmaE886C41jDZ65eqR1YbXM7642MK3ZhTowZd5+xDlrDLuf4ePuDdDmVSvcr8NTVJ3MqxLkMbUCzuigUaoQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/types@30.2.0': - resolution: {integrity: sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==} + '@jest/types@30.5.1': + resolution: {integrity: sha512-LvVYn83nnXPl+Rg98nvcFgjx6nRMTArhSn6RAX/w3ELn54S8A42TYZvsCMdGUqTM8S0wyXbtlQdU6Hi6dykj9g==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jimp/bmp@0.16.13': @@ -43266,6 +42940,126 @@ packages: '@js-sdsl/ordered-map@4.4.2': resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} + '@jsonjoy.com/base64@1.1.2': + resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/base64@17.67.0': + resolution: {integrity: sha512-5SEsJGsm15aP8TQGkDfJvz9axgPwAEm98S5DxOuYe8e1EbfajcDmgeXXzccEjh+mLnjqEKrkBdjHWS5vFNwDdw==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/buffers@1.2.1': + resolution: {integrity: sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/buffers@17.67.0': + resolution: {integrity: sha512-tfExRpYxBvi32vPs9ZHaTjSP4fHAfzSmcahOfNxtvGHcyJel+aibkPlGeBB+7AoC6hL7lXIE++8okecBxx7lcw==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/codegen@1.0.0': + resolution: {integrity: sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/codegen@17.67.0': + resolution: {integrity: sha512-idnkUplROpdBOV0HMcwhsCUS5TRUi9poagdGs70A6S4ux9+/aPuKbh8+UYRTLYQHtXvAdNfQWXDqZEx5k4Dj2Q==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/fs-core@4.80.0': + resolution: {integrity: sha512-qMKWshnyjbyhm+NbzqGE3w5y1mckFFEMj0aDPU2/JBNh1BzIjVy9esq9lBmRnNVmhMEkxwDzLZ8Gqh5G1P5Dag==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/fs-fsa@4.80.0': + resolution: {integrity: sha512-ZBEKl7J6dbkRCfmrFV48Re211A/FHqniTUhsWCsaRteNSOqMgkX3qF1UreVgwB9oSPm81JLAwhIi6Lb/NH/PoA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/fs-node-builtins@4.80.0': + resolution: {integrity: sha512-OIOIhqaWiwUySFMny4epIAoviXsyMaQQ63PTc3zH+5HEOvarl5hpUmZIhp2m5+OfyKAh5ylxXnQIgew1OgJDVw==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/fs-node-to-fsa@4.80.0': + resolution: {integrity: sha512-ljeaR5xwtX1EyRmB0wvXANUMQZ3mjKcm7z8s2N8D8SLQ04CcAGtUhHFRZQXFb9mhgFyEVMydQGQtSOFS7pcrFQ==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/fs-node-utils@4.80.0': + resolution: {integrity: sha512-xwHeVVi3f+Khg/Fmb8i5qoYVmQ08QznE5TWhQokUmIZjz4KBPzU+zt/+bahBI6G1ghtqajt27lWuAciIxApuzA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/fs-node@4.80.0': + resolution: {integrity: sha512-yiBlUfkMMRFFGy8CD/h2zd5rPnrM6bjlF+nx2LRAxNV6hOSiuObQIUEE7m7y2VTMisjxCRtzINH94bFGySWL7g==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/fs-print@4.80.0': + resolution: {integrity: sha512-1ocZLJw/m/xlq0moaIHO7HV9nHRVBUvdc2zMzhsJGkFOrqfwWvexfCv5cYCPPLRhP+9p3yunoi4Ep5YhRORC9Q==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/fs-snapshot@4.80.0': + resolution: {integrity: sha512-3AV23Q1H228KTtJKTUE0nNq8FCtxSvtENOLrEat80wkAJCKHuqQEv8yjhpS8Bei2OEFJAnluGXp9Ri2SWBlROw==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/json-pack@1.21.0': + resolution: {integrity: sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/json-pack@17.67.0': + resolution: {integrity: sha512-t0ejURcGaZsn1ClbJ/3kFqSOjlryd92eQY465IYrezsXmPcfHPE/av4twRSxf6WE+TkZgLY+71vCZbiIiFKA/w==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/json-pointer@1.0.2': + resolution: {integrity: sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/json-pointer@17.67.0': + resolution: {integrity: sha512-+iqOFInH+QZGmSuaybBUNdh7yvNrXvqR+h3wjXm0N/3JK1EyyFAeGJvqnmQL61d1ARLlk/wJdFKSL+LHJ1eaUA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/util@1.9.0': + resolution: {integrity: sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/util@17.67.0': + resolution: {integrity: sha512-6+8xBaz1rLSohlGh68D1pdw3AwDi9xydm8QNlAFkvnavCJYSze+pxoW2VKP8p308jtlMRLs5NTHfPlZLd4w7ew==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + '@koa/cors@5.0.0': resolution: {integrity: sha512-x/iUDjcS90W69PryLDIMgFyV21YLTnG9zOpPXS7Bkt2b8AsY3zZsIpOLBkYr9fBcF3HbkKaER5hOBZLfpLgYNw==} engines: {node: '>= 14.0.0'} @@ -43315,8 +43109,8 @@ packages: '@mediapipe/tasks-vision@0.10.14': resolution: {integrity: sha512-vOifgZhkndgybdvoRITzRkIueWWSiCKuEUXXK6Q4FaJsFvRJuwgg++vqFUMlL0Uox62U5aEXFhHxlhV7Ja5e3Q==} - '@mermaid-js/parser@0.6.3': - resolution: {integrity: sha512-lnjOhe7zyHjc+If7yT4zoedx2vo4sHaTmtkl1+or8BRTnCtDmcTpAjpzDSfCZrshM5bCoz0GyidzadJAH1xobA==} + '@mermaid-js/parser@1.2.1': + resolution: {integrity: sha512-n12NohV3mrUyUL2o93IgG/ifeW9FTyeJn3zDxkhwa8MJ9Fxg3HQMlA3RiGmD/3UnJvheztkjjQAjA2T4LmUcpw==} '@mixmark-io/domino@2.2.0': resolution: {integrity: sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw==} @@ -43354,6 +43148,76 @@ packages: cpu: [x64] os: [win32] + '@napi-rs/canvas-android-arm64@1.0.10': + resolution: {integrity: sha512-0sDMvme+7fj6bHERUaBs5SvEyWaORc91VUkaB4RrtG7p6dBrBNGy1of8cyEKDxygd1FlHtW+Thunj8lSixzY7A==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + + '@napi-rs/canvas-darwin-arm64@1.0.10': + resolution: {integrity: sha512-pdHL1TEfFMrnchRYqmPWXKN7hR4XtOYmzJqnh4XhpfWD4/eeSokOGVzrdFP/iQ3sfr2rf0939gOGq9uCp8BGmg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@napi-rs/canvas-darwin-x64@1.0.10': + resolution: {integrity: sha512-iuuk5plGxAcxurxv2ycF2yR20y5zvaBZ4heQdhPpg3EMFD21PhlY1V+YwSRmYRWzbvKL474UYdw3WIg2qfafyw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@napi-rs/canvas-linux-arm-gnueabihf@1.0.10': + resolution: {integrity: sha512-kH7GFR5Unpm77pKSEsmkqvzeQCRD7/MQ7upmeLLjg4XpQ62dX/R6THFsp6vkF1Pkco2aKUq9KhoLM4W5twdk7g==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@napi-rs/canvas-linux-arm64-gnu@1.0.10': + resolution: {integrity: sha512-0/Hj7IwM9pmzdwxiqkp4YLJ8dKqASBrWQ3Y7dWUSU/4dgvCL9O6YNvX7xVUJjonQvdD3IE9ESS/nXa5srQqoVw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@napi-rs/canvas-linux-arm64-musl@1.0.10': + resolution: {integrity: sha512-fmjKM0P2MLF9O6XzCQsRjhB+jlLzaf6tFQU36hMPMsYup+VThYvpjjhqNLOc/Ee3tHUE3r13H2BSJx/yXz4pFA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@napi-rs/canvas-linux-riscv64-gnu@1.0.10': + resolution: {integrity: sha512-O/BUrGwrs3pVP9PpD/3++ZiOpjHMJlmiB7aBgswP8rbe4egPfiFkFxmcCczoLvZa72TaQX5lJ8Udedb6rc/Hvg==} + engines: {node: '>= 10'} + cpu: [riscv64] + os: [linux] + + '@napi-rs/canvas-linux-x64-gnu@1.0.10': + resolution: {integrity: sha512-48HkZPQeAN/R+9NPpY64tceoyCUW5xYYtHKZnC+BG11qiihXJCbH+xfbgGU+OdYp1Q4s84HDl9ILU0KBK6SBOQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@napi-rs/canvas-linux-x64-musl@1.0.10': + resolution: {integrity: sha512-QYHVi7WZ9v+Wm9OQyHLMTnJ8QiBPVX94BgbCHFJC/4bCFMfvX7fRzo4FJPgkRP0ISz3ulYNow/FCbQOPjzhYjg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@napi-rs/canvas-win32-arm64-msvc@1.0.10': + resolution: {integrity: sha512-bWK+YajM/8sL0mMgLtug2s063FVBPzFV4QAn987CQomMKlmzrBY6Trz43KY+24hq7IOa3qNhUAgP/XMEF50ZEQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@napi-rs/canvas-win32-x64-msvc@1.0.10': + resolution: {integrity: sha512-9WtzW85PaIhtB27iXaR/9RrLCqHLbqD3Z8Q+kh17NjFxwQXFXU5vWbYH4vEH+drM307TTyK3hidZgpt09G5T3g==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@napi-rs/canvas@1.0.10': + resolution: {integrity: sha512-V+qptzsGnPMFxEbhwc6eDNMe5eDrfiBIp8qGpuRjAVIX4Kn2zxvwQ1Xco6Fwe+3tYIe3iLW8LM9D+SvjyJhqbQ==} + engines: {node: '>= 10'} + '@napi-rs/snappy-android-arm-eabi@7.3.3': resolution: {integrity: sha512-d4vUFFzNBvazGfB/KU8MnEax6itTIgRWXodPdZDnWKHy9HwVBndpCiedQDcSNHcZNYV36rx034rpn7SAuTL2NA==} engines: {node: '>= 10'} @@ -43464,10 +43328,21 @@ packages: '@napi-rs/wasm-runtime@1.0.7': resolution: {integrity: sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw==} + '@napi-rs/wasm-runtime@1.2.5': + resolution: {integrity: sha512-HshSvXzmBxNzqejd3k/KemgQ3hdREUYFRRrgxOZ+gPljDIsO2SDZrVZMd4Z/HsxudQbE62OVyVFE8z9BCurfjA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=23.5.0} + peerDependencies: + '@emnapi/core': ^1.7.1 || ^2.0.0-alpha.4 + '@emnapi/runtime': ^1.7.1 || ^2.0.0-alpha.4 + '@noble/hashes@1.8.0': resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} engines: {node: ^14.21.3 || >=16} + '@noble/hashes@2.4.0': + resolution: {integrity: sha512-X5XaVWZIBCT7HHZGm5I7ZQXDwLG+bGXuSrMQAW+7Zvl87h1kmc1ZB1VSRJcpUfoUrGQp4Fkoxm5kZ+Ms+aW+eA==} + engines: {node: '>= 20.19.0'} + '@nodable/entities@3.0.0': resolution: {integrity: sha512-8L9xFeTYKhm49xfIypoe2W5wV1m/3Z58kT+7kR9A8OyFxcPduI4VmxaUMQyKYrRjUoLLSXv6EKKID5Tvj9cUVw==} @@ -43483,15 +43358,6 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@npmcli/fs@2.1.2': - resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - '@npmcli/move-file@2.0.1': - resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - deprecated: This functionality has been moved to @npmcli/fs - '@octokit/app@14.1.0': resolution: {integrity: sha512-g3uEsGOQCBl1+W1rgfwoRFUIR6PtvB2T1E4RpygeUU5LrLvlOqcxrt5lfykIeRpUPpupreGJUYl70fqMDXdTpw==} engines: {node: '>= 18'} @@ -44181,66 +44047,132 @@ packages: cpu: [arm64] os: [android] + '@parcel/watcher-android-arm64@2.6.0': + resolution: {integrity: sha512-trgpLSCKRC/huFjXX/Smh+0sWe4+YtKfktIToiMl59ghz7z+qkH6kMvNnUbLyRs9N11t8l4svSCs1+5B3rOAhA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] + '@parcel/watcher-darwin-arm64@2.5.1': resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [darwin] + '@parcel/watcher-darwin-arm64@2.6.0': + resolution: {integrity: sha512-Y3QV0gl7Q1zbfueunkWIERICbEojQFCgpyG7YqOGNFLsckXyI1xu9mAIUpKY9QBYzBtSkN8dBPwd3yiAO9ovMw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] + '@parcel/watcher-darwin-x64@2.5.1': resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [darwin] + '@parcel/watcher-darwin-x64@2.6.0': + resolution: {integrity: sha512-Ohv6OpzhUfKYD7Beb8kDvG0jbIxORCYY1JRdZnaBtnjjkJxgD7ZVL0nw2sCYd0yTMKTvz3nnTnOF3cDifK+kvw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] + '@parcel/watcher-freebsd-x64@2.5.1': resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [freebsd] + '@parcel/watcher-freebsd-x64@2.6.0': + resolution: {integrity: sha512-5HmXvDgs8VK+74jF9y9/2FE3/OnlcKmc56tjmSrEuZjpSZOGL+fvAu+HKJBdPs9uwoP2hE6TlSUpXZ/C5jUFmQ==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + '@parcel/watcher-linux-arm-glibc@2.5.1': resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==} engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] + '@parcel/watcher-linux-arm-glibc@2.6.0': + resolution: {integrity: sha512-Ps/hui3A+vMbjdqlqAowK2ZL8+BO8dBjxeWXj6npTBs3jx4wWmbPpaLuqwrQrSqIVMCnpWo238bJ1U37GhQOYg==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + '@parcel/watcher-linux-arm-musl@2.5.1': resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] + '@parcel/watcher-linux-arm-musl@2.6.0': + resolution: {integrity: sha512-9c6AUHgHoG+IY88MRIHupztQiQnrbqHYQjkM2btA+Bf/wQnQMuiD0Wfk1EVv3TlNT3x41uU71rn6E4xh/+zvkw==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + '@parcel/watcher-linux-arm64-glibc@2.5.1': resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] + '@parcel/watcher-linux-arm64-glibc@2.6.0': + resolution: {integrity: sha512-yHRqS2owEXe6Hic9z6Mh1ECsCd+ODVOGvZDyciqRd21+v+o+DnXMOrw50DSpIG2sb8GPEaPPmfeCAWKPJdq46g==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + '@parcel/watcher-linux-arm64-musl@2.5.1': resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] + '@parcel/watcher-linux-arm64-musl@2.6.0': + resolution: {integrity: sha512-WhB2e/V7rqdHHWZusBSPuy5Ei8S6lSz6FE5TKKQz5h3a0O+C+mhY7vxU9b/stqvMb8beLnPY82ZrFTLKs+SrKA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + '@parcel/watcher-linux-x64-glibc@2.5.1': resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] + '@parcel/watcher-linux-x64-glibc@2.6.0': + resolution: {integrity: sha512-ulGE6x6Oz6iAwg75T8YQSoguBWasniIbX+QWpaYPcCnDOpdWX3k+4xbEYPZVLxOuoJI+svJJPD3sEj8G7lrQ3A==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + '@parcel/watcher-linux-x64-musl@2.5.1': resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] + '@parcel/watcher-linux-x64-musl@2.6.0': + resolution: {integrity: sha512-tkBYKt7YQrjIJWYDnto2YgO8MRkjlMTSNoRHzsXinBqbLdeOM3L32wPZJvIZxqaLMfSlS/4sUjH/6STVP/XDLw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + '@parcel/watcher-win32-arm64@2.5.1': resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [win32] + '@parcel/watcher-win32-arm64@2.6.0': + resolution: {integrity: sha512-gIZAP23jaHjGWasY/TY6yL7NHFClf0Ga7FN+iINvk+KN94rhm94lYZhFsbYFNcA04/onvGD9kKmiJLJB2HbNwQ==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] + '@parcel/watcher-win32-ia32@2.5.1': resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==} engines: {node: '>= 10.0.0'} @@ -44253,23 +44185,92 @@ packages: cpu: [x64] os: [win32] + '@parcel/watcher-win32-x64@2.6.0': + resolution: {integrity: sha512-cA+/pXV2YkfxlIcXOQ5fSWqAzzPyD78/x5qbK/I0vUkrlYHA8TIz+MXjAbGouguKVSI4bOmkTSJ1/poVSsgt+A==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] + '@parcel/watcher@2.5.1': resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} engines: {node: '>= 10.0.0'} + '@parcel/watcher@2.6.0': + resolution: {integrity: sha512-7FNeNl8NCE7aINx7WXiKQrPYZWC/hvrTsmk6zmxbI7LTXE7hVek/n8AfVgpe2y82zl3w0HvCHN0bVKMBoJcC0w==} + engines: {node: '>= 10.0.0'} + '@pdf-lib/standard-fonts@1.0.0': resolution: {integrity: sha512-hU30BK9IUN/su0Mn9VdlVKsWBS6GyhVfqjwl1FjZN4TxP6cCw0jP2w7V3Hf5uX7M0AZJ16vey9yE0ny7Sa59ZA==} '@pdf-lib/upng@1.0.1': resolution: {integrity: sha512-dQK2FUMQtowVP00mtIksrlZhdFXQZPC+taih1q4CvPZ5vqdxR/LKBaFg0oAfzd1GlHZXXSPdQfzQnt+ViGvEIQ==} + '@peculiar/asn1-cms@2.10.0': + resolution: {integrity: sha512-CkX0H4NCIOMHOU3rh2xXZywinYZ/EnJlaOlJiGI0e5L4XjFqHf4iH30LMbXWChVppdA9ljbanjtzQFOhDNfTWg==} + engines: {node: '>=14'} + + '@peculiar/asn1-csr@2.10.0': + resolution: {integrity: sha512-jTPTr/9rxKM+niQLMF3jiAMb0lWHUhUHIuSOhdGCIfpB4FAQYf9SoiXOgxP8bS/68IB+bj+1OHvVnDVCQfVUZw==} + engines: {node: '>=14'} + + '@peculiar/asn1-ecc@2.10.0': + resolution: {integrity: sha512-GFd3iOjFrWX+QWH2R2dO5QSJyyRGv9CIBKtRlGlPNCvb2RvmCbBDexe91MJgV76c69d998Xsa+CvuQ98seoiPg==} + engines: {node: '>=14'} + + '@peculiar/asn1-pfx@2.10.0': + resolution: {integrity: sha512-1y3QK9ZH1IPleAMmRoJlPS10eGkAWnULETW8zDFNUK1ffqpG7zmDY+kYBMYQgwlcQZ2iitLm2z2EBP0xzRXpaA==} + engines: {node: '>=14'} + + '@peculiar/asn1-pkcs8@2.10.0': + resolution: {integrity: sha512-Ri+BZT9bnwqlHWmhs7lvWjvJRxKev2hA2+4EbZajgeYWCbR8hyv0znF4DhsFouOhMj2nSDV/iGJ6DMQtwITnCw==} + engines: {node: '>=14'} + + '@peculiar/asn1-pkcs9@2.10.0': + resolution: {integrity: sha512-XIXsbDQFezYk6fudczkuvawkRD4GNpISGCqfYhdkJlvcGF/RFknU+0DDJagOaJqBf+PdPzk4J9oMqDGcvfR9HQ==} + engines: {node: '>=14'} + + '@peculiar/asn1-rsa@2.10.0': + resolution: {integrity: sha512-4Jvmwlh3gZAhNZ4/u7JSyLuce9hofOFZ4o3PYKAccCImGnyaT5CMym/ATgvAvqpOYFNW531oPZvJlEBhJy9VfA==} + engines: {node: '>=14'} + + '@peculiar/asn1-schema@2.10.0': + resolution: {integrity: sha512-GhokD41lV4gQrrLYm3wCkHfBOnJrnhDMgt4XeMW8gzfE1UdJqIuSwsE+ggf82XBjUXRJylcm+KIGQFa4utIVLw==} + engines: {node: '>=14'} + + '@peculiar/asn1-x509-attr@2.10.0': + resolution: {integrity: sha512-/85GtKOKmgvuSJNlaFfwGWNdRSZZ+hpF02NyM01XiCdzpaZONiBltDyfluFPvFx966CR+ZHNSG1jniwpy07oGg==} + engines: {node: '>=14'} + + '@peculiar/asn1-x509@2.10.0': + resolution: {integrity: sha512-ucNVg8+ANveTpMN3fy9lA2alryONdXc2A4cEG2hMniWbvQt+YOZoe8BI80YYNO8FBcuDY1qbDQ4uQGQVraHxGA==} + engines: {node: '>=14'} + + '@peculiar/json-schema@1.1.12': + resolution: {integrity: sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==} + engines: {node: '>=8.0.0'} + + '@peculiar/utils@2.0.3': + resolution: {integrity: sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ==} + + '@peculiar/webcrypto@1.7.1': + resolution: {integrity: sha512-ODOov0sGMJMf3jPonOkgGqPknTsu+DdQ7kD++gz8aI+aFMOMHFbWAA2taqXXVTdP+OTOQR/znGvSpmkeI0WTYQ==} + engines: {node: '>=14.18.0'} + + '@peculiar/x509@1.14.3': + resolution: {integrity: sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA==} + engines: {node: '>=20.0.0'} + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@playwright/test@1.56.1': - resolution: {integrity: sha512-vSMYtL/zOcFpvJCW71Q/OEGQb7KYBPAdKh35WNSkaZA75JlAO8ED8UN6GUNTm3drWomcbcqRPFqQbLae8yBTdg==} - engines: {node: '>=18'} + '@pkgr/core@0.3.6': + resolution: {integrity: sha512-SEeaJLb3qBNF/OaXnaR1NmmBbFYk1zC0ZH/52fATcRPLFg/p791YrcyFFy44Bo9sLaGuSuLp5Q6axbb/O+v/RA==} + engines: {node: ^14.18.0 || >=16.0.0} + + '@playwright/test@1.63.0': + resolution: {integrity: sha512-oxMK4vllB9RK5NQ2l1pq1IfOf2AvnEuj/vYGDj0H2nMtmtZpKtCwt/l00GEO6xjGfpBNAvjovvYdCm50dRQkpQ==} + engines: {node: '>=20'} hasBin: true '@polar-sh/sdk@0.37.0': @@ -44333,29 +44334,26 @@ packages: '@selderee/plugin-htmlparser2@0.11.0': resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} - '@signpdf/placeholder-pdf-lib@3.2.6': - resolution: {integrity: sha512-3iSKYo796aZzmPWCubrc2iXRidkMctDUdP+VvZnuy1e2pjoUa1sxh3a4ohgidJsNOrtMXMwgFk6Q/Y+xQgKOWg==} + '@signpdf/placeholder-pdf-lib@3.3.0': + resolution: {integrity: sha512-DT1s617z88NvvCmo+z8jaz7lNzy7b7/fwo/movJGukpfSkl4FaLNRXIHNBCTRCP9TUb6F/axK1JulES/jY7mLQ==} engines: {node: '>=12', yarn: '>=1.22.18'} peerDependencies: pdf-lib: ^1.17.1 - '@signpdf/signer-p12@3.2.4': - resolution: {integrity: sha512-DTeYMj1DI30VYmaZXp2zZEg9YwVm3NmqjLF3q6ZxUwlOUSLLOUFkVafIs4YibTAGBmgjWKEMfmNCndK2ACLlzQ==} + '@signpdf/signer-p12@3.3.0': + resolution: {integrity: sha512-MLynYKgUBu29ojIueIDV34sIOFDFpP0s1gQORxCc0zhs1jfy0juqU2xQpjUayMbhzB4L0zS9dPwgHtok1f89Cg==} engines: {node: '>=12', yarn: '>=1.22.18'} peerDependencies: - node-forge: ^1.2.1 + node-forge: ^1.3.3 - '@signpdf/signpdf@3.2.5': - resolution: {integrity: sha512-mxGgVU+VkhCxNZ1eDGCmkE5zWFJExXPXn2myjrLcekHnJNpBKZr6WBrrznGOlLeDVAaiSVXjeysehgpZSJlJIA==} + '@signpdf/signpdf@3.3.0': + resolution: {integrity: sha512-/vy3dPTsTbLHdsKRarPQw8++UqN8GXxjEVnl4ZRl+o/zMWFqVb861RM5bxoRMGGMuPSvb1Rgt2lmVobEc0YUpw==} engines: {node: '>=12'} - '@signpdf/utils@3.2.4': - resolution: {integrity: sha512-6e7OZugRY6obyTbAKdj6yCIywCJqN0FDywsIrhkRnOTAKm4J3WVXq18NjzmE6iEXLknxok9EXNW/eVvY9Vp1gg==} + '@signpdf/utils@3.3.0': + resolution: {integrity: sha512-ArOP0MIhCfdChh1oZkog81TPeSY2e5TvHQmXJ682T4+SKb6Z609uAZhqMQZ9xm+YenEf/eNMSE5KVwU+EudXug==} engines: {node: '>=12', yarn: '>=1.22.18'} - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - '@sinclair/typebox@0.34.41': resolution: {integrity: sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==} @@ -44366,11 +44364,8 @@ packages: '@sinonjs/commons@3.0.1': resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} - '@sinonjs/fake-timers@10.3.0': - resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} - - '@sinonjs/fake-timers@13.0.5': - resolution: {integrity: sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==} + '@sinonjs/fake-timers@15.4.0': + resolution: {integrity: sha512-DsG+8/LscQIQg68J6Ef3dv10u6nVyetYn923s3/sus5eaGfTo1of5WMZSLf0UJc9KDuKPilPH0UDJCjvNbDNCA==} '@sinonjs/text-encoding@0.7.3': resolution: {integrity: sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA==} @@ -44429,6 +44424,12 @@ packages: '@stablelib/base64@1.0.1': resolution: {integrity: sha512-1bnPQqSxSuc3Ii6MhBysoWCg58j97aUjuCSZrGSmDxNqtytIi0k8utUenAwTZN4V5mXXYGsVUI9zeBqy+jBOSQ==} + '@stylistic/eslint-plugin@5.10.0': + resolution: {integrity: sha512-nPK52ZHvot8Ju/0A4ucSX1dcPV2/1clx0kLcH5wDmrE4naKso7TUC/voUyU1O9OTKTrR6MYip6LP0ogEMQ9jPQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^9.0.0 || ^10.0.0 + '@szmarczak/http-timer@4.0.6': resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} engines: {node: '>=10'} @@ -44703,10 +44704,6 @@ packages: '@tokenizer/token@0.3.0': resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} - '@tootallnate/once@2.0.0': - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} - engines: {node: '>= 10'} - '@trysound/sax@0.2.0': resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} engines: {node: '>=10.13.0'} @@ -44726,6 +44723,9 @@ packages: '@tybys/wasm-util@0.10.1': resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} + '@tybys/wasm-util@0.10.4': + resolution: {integrity: sha512-W3c4gRigFS0T/Ma4qIYF3GDAc5AQdHb1yL5znJT1Zv1YaD9Kitx656wBjvr19qbiosmZT8lWDM5BEMynUqX65A==} + '@types/accepts@1.3.7': resolution: {integrity: sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==} @@ -44891,20 +44891,10 @@ packages: '@types/domhandler@2.4.5': resolution: {integrity: sha512-lANhC2grmFG1gBac/8sDAKdIXx+TzAdkJIAjEOSMA+qW3297ybACEbacJnG15aNYfrzDO6fdcoouokqAKsy6aQ==} - '@types/dompurify@3.2.0': - resolution: {integrity: sha512-Fgg31wv9QbLDA0SpTOXO3MaxySc4DKGLi8sna4/Utjo4r3ZRPdCt4UQee8BWr+Q5z21yifghREPJGYaEOEIACg==} - deprecated: This is a stub types definition. dompurify provides its own type definitions, so you do not need this installed. - '@types/domutils@2.1.0': resolution: {integrity: sha512-5oQOJFsEXmVRW2gcpNrBrv1bj+FVge2Zwd5iDqxan5tu9/EKxaufqpR8lIY5sGIZJRhD5jgTM0iBmzjdpeQutQ==} deprecated: This is a stub types definition. domutils provides its own type definitions, so you do not need this installed. - '@types/eslint-scope@3.7.7': - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} - - '@types/eslint@9.6.1': - resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} - '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} @@ -44924,21 +44914,21 @@ packages: '@types/express-serve-static-core@4.19.7': resolution: {integrity: sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg==} - '@types/express-serve-static-core@5.1.0': - resolution: {integrity: sha512-jnHMsrd0Mwa9Cf4IdOzbz543y4XJepXrbia2T4b6+spXC2We3t1y6K44D3mR8XMFSXMCf3/l7rCgddfx7UNVBA==} + '@types/express-serve-static-core@5.1.3': + resolution: {integrity: sha512-dPfW8NFiOF4wOHc7+N/QSxlY9cfSsenewGbAz8C8U/MULPd/YZ27LvJUIlzaXie7e6Ove9YunJGgC9tbHD2cKw==} '@types/express@4.17.25': resolution: {integrity: sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==} + '@types/express@5.0.6': + resolution: {integrity: sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==} + '@types/fs-extra@9.0.13': resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} '@types/geojson@7946.0.16': resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} - '@types/graceful-fs@4.1.9': - resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} - '@types/hast@3.0.4': resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} @@ -44963,9 +44953,6 @@ packages: '@types/http-errors@2.0.5': resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==} - '@types/http-proxy@1.17.17': - resolution: {integrity: sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==} - '@types/istanbul-lib-coverage@2.0.6': resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} @@ -44975,8 +44962,8 @@ packages: '@types/istanbul-reports@3.0.4': resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - '@types/jest@29.5.14': - resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==} + '@types/jest@30.0.0': + resolution: {integrity: sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA==} '@types/js-yaml@4.0.9': resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} @@ -45071,23 +45058,17 @@ packages: '@types/node-fetch@2.6.13': resolution: {integrity: sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==} - '@types/node-forge@1.3.14': - resolution: {integrity: sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==} - '@types/node@16.9.1': resolution: {integrity: sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==} '@types/node@18.19.130': resolution: {integrity: sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==} - '@types/node@22.19.0': - resolution: {integrity: sha512-xpr/lmLPQEj+TUnHmR+Ab91/glhJvsqcjB+yY0Ix9GO70H6Lb4FHH5GeqdOE5btAx7eIMwuHkp4H2MSkLcqWbA==} - '@types/node@24.13.6': resolution: {integrity: sha512-SGrw/h3KPFshy3OE6ZL53LMBG5vGQQ8/gIpiqz/kRZhPJ7HgwCEs8LBuNtWLa8dvGZVpSF7+Bf+c11HUrCb/yg==} - '@types/nodemailer@6.4.21': - resolution: {integrity: sha512-Eix+sb/Nj28MNnWvO2X1OLrk5vuD4C9SMnb2Vf4itWnxphYeSceqkFX7IdmxTzn+dvmnNz7paMbg4Uc60wSfJg==} + '@types/nodemailer@8.0.2': + resolution: {integrity: sha512-c7M5ox8p0nEOfbJ2E9Qcmt8/QCu/VzsiAhzBiZbvky2PhKZDHpKB3sQHBM5MEZNkCfBOaS6S9//AGPRTNB7IaA==} '@types/oauth@0.9.6': resolution: {integrity: sha512-H9TRCVKBNOhZZmyHLqFt9drPM9l+ShWiqqJijU1B8P3DX3ub84NjxDuy+Hjrz+fEca5Kwip3qPMKNyiLgNJtIA==} @@ -45119,9 +45100,6 @@ packages: '@types/pg@8.15.6': resolution: {integrity: sha512-NoaMtzhxOrubeL/7UZuNTrejB4MPAJ0RpxZqXQf2qXuVlTPuG6Y8p4u9dKRaue4yjmC7ZhzVO2/Yyyn25znrPQ==} - '@types/plist@3.0.5': - resolution: {integrity: sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==} - '@types/png-chunks-extract@1.0.2': resolution: {integrity: sha512-z6djfFIbrrddtunoMJBOPlyZrnmeuG1kkvHUNi2QfpOb+JMMLuLliHHTmMyRi7k7LiTAut0HbdGCF6ibDtQAHQ==} @@ -45152,14 +45130,8 @@ packages: '@types/responselike@1.0.3': resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} - '@types/retry@0.12.0': - resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} - - '@types/sanitize-html@2.16.0': - resolution: {integrity: sha512-l6rX1MUXje5ztPT0cAFtUayXF06DqPhRyfVXareEN5gGCFaP/iwsxIyKODr9XDhfxPpN6vXUFNfo5kZMXCxBtw==} - - '@types/semver@7.7.1': - resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} + '@types/sanitize-html@2.16.2': + resolution: {integrity: sha512-kuAbgDCFv418flrp3z4o/4ufLA/5ovmXRH0L419iZCPGO7w00znjeDI5Wy/KZWNIBpDQc7hucCK+J5almB6FyA==} '@types/send@0.17.6': resolution: {integrity: sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==} @@ -45173,12 +45145,12 @@ packages: '@types/serve-static@1.15.10': resolution: {integrity: sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==} + '@types/serve-static@2.2.0': + resolution: {integrity: sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==} + '@types/snappyjs@0.7.1': resolution: {integrity: sha512-OxjzJ6cQZstysMh6PEwZWmK9qlKZyezHJKOkcUkZDooSFuog2votUEKkxMaTq51UQF3cJkXKQ+XGlj4FSl8JQQ==} - '@types/sockjs@0.3.36': - resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} - '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} @@ -45215,9 +45187,6 @@ packages: '@types/uuid@8.3.4': resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} - '@types/verror@1.10.11': - resolution: {integrity: sha512-RlDm9K7+o5stv0Co8i8ZRGxDbrTxhJtgjqjFyVh/tXQyl/rYtTKlnTvZ88oSTeYREWurwx20Js4kTuKCsFkUtg==} - '@types/web-push@3.6.4': resolution: {integrity: sha512-GnJmSr40H3RAnj0s34FNTcJi1hmWFV5KXugE0mYWnYhgTAHLJ/dJKAwDmvPJYMke0RplY2XE9LnM4hqSqKIjhQ==} @@ -45236,69 +45205,181 @@ packages: '@types/yargs@17.0.34': resolution: {integrity: sha512-KExbHVa92aJpw9WDQvzBaGVE2/Pz+pLZQloT2hjL8IqsZnV62rlPOYvNnLmf/L2dyllfVUOVBj64M0z/46eR2A==} - '@types/yauzl@2.10.3': - resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} + '@typescript-eslint/eslint-plugin@8.71.1': + resolution: {integrity: sha512-nNlBf6HuotqMgZvSkWD5hNdemiBIxQ2NmrlgfcUIeZRs+BbakjscCQRq/Hb74EFVnFiSWWdL12JruqwBy3ERDw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.71.1 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/eslint-plugin@6.21.0': - resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/parser@8.71.1': + resolution: {integrity: sha512-oM/5sAqz/l1v/zYK1qTOPrn2+JIrBGC1V6uNYucRO5gh6eT9vWJ/RhPbGE59byvZEUQ4VP6XkLBaS5Jti5jpvw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@6.21.0': - resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/project-service@8.71.1': + resolution: {integrity: sha512-Oijc9RUsohHjncg6iGi7gCtjnEjYt9FWv9u6ygK8uKcHK5eLjLAkqERQ9BaytbpceOFdk6kifPCS/zAZE+A99g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/scope-manager@6.21.0': - resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/scope-manager@8.71.1': + resolution: {integrity: sha512-1YUDZXdTnXLlob03SFHBipdyMBsDVm7zoSz0ytTJ39dk5J1TgsTK03VlR/dLXG/RLLUrPcYbD4rp23BmHxHP0w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@6.21.0': - resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/tsconfig-utils@8.71.1': + resolution: {integrity: sha512-oTvkml5SxXhgg+WWKhod5qWQICDXtOB+/Hi9VdPKFAANJ2b7YOgMffgvzXuqog7R6A/JtrzRf128dsxummyWhg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/types@6.21.0': - resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/type-utils@8.71.1': + resolution: {integrity: sha512-kH3t3jZCYv2PZSBEWPKTariLrCaoF1CLoPitYFBJOhAGEwWnSRAtGEifrfrpBa4K9JlwWNZotgA5w3/wLSk/FQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/types@8.71.1': + resolution: {integrity: sha512-ybYnPTUwg3VQQOFEiBPLs8Jxl1ry2vXdn1kVKguomBbvxpetdu3MKTNDqFNUrlG8ylP9MpZosmXMFYlGQHk1oQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@6.21.0': - resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/typescript-estree@8.71.1': + resolution: {integrity: sha512-pSKSEK1JJpHs6KiKVtABCE4iJK5d7FLFzDXQNBQ2oRY7LEd3UwOt3TZemTgu9syTIf56dJWlTn/pdmrO9oKUXQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@6.21.0': - resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/utils@8.71.1': + resolution: {integrity: sha512-CBjT6gfAz3DW2j9Q4moFnqt208Aq+506sVGXfpRcyAeqn0EpayL0mjdWoCO2t3RC7GewNrFxdeehuEaPg6DMzQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/visitor-keys@6.21.0': - resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/visitor-keys@8.71.1': + resolution: {integrity: sha512-0GxiUGqMU0qXJt58cBsiG3DP8lUmBaFo2vChtUX+CT7PnR3v/VGLLrzVP4K9r1lNiZXjHYefMBbPunplr09v6w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + deprecated: Potential CWE-502 - Update to 1.3.1 or higher + + '@unrs/resolver-binding-android-arm-eabi@1.12.2': + resolution: {integrity: sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w==} + cpu: [arm] + os: [android] + + '@unrs/resolver-binding-android-arm64@1.12.2': + resolution: {integrity: sha512-YGCRZv/9GLhwmz6mYDeTsm/92BAyR28l6c2ReweVW5pWgfsitWLY8upvfRlGdoyD8HjeTHSYJWyZGD4KJA/nFQ==} + cpu: [arm64] + os: [android] + + '@unrs/resolver-binding-darwin-arm64@1.12.2': + resolution: {integrity: sha512-u9DiNT1auQMO20A9SyTuG3wUgQWB9Z7KjAg0uFuCDR1FsAY8A0CG2S6JpHS1xwm/w1G08bjXZDcyOCjv1WAm2w==} + cpu: [arm64] + os: [darwin] + + '@unrs/resolver-binding-darwin-x64@1.12.2': + resolution: {integrity: sha512-f7rPLi/T1HVKZu/u6t87lroib16n8vrSzcyxI7lg4BGO9UF26KhQL44sd9eOUgrTYhvRXtWOIZT5PejdPyJfUA==} + cpu: [x64] + os: [darwin] + + '@unrs/resolver-binding-freebsd-x64@1.12.2': + resolution: {integrity: sha512-BpcOjWCJub6nRZUS2zA20pmLvjtqAtGejETaIyRLiZiQf++cbrjltLA5NN/xaXfqeOBOSlMFbemIl5/S5tljmg==} + cpu: [x64] + os: [freebsd] + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2': + resolution: {integrity: sha512-vZTDvdSISZjJx66OzJqtsOhzifbqRjbmI1Mnu49fQDwog5GtDI4QidRiEAYbZCRj9C8YZEW+3ZjqsyS9GR4k2A==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm-musleabihf@1.12.2': + resolution: {integrity: sha512-BiPI+IrIlwcW4nLLMM21+B1dFPzd55yAVgVGrdgDjNef+ch03GdxrcyaIz8X9SsQirh/kCQ7mviyWlMxdh2D7g==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-gnu@1.12.2': + resolution: {integrity: sha512-zJc0H99FEPoFfSrNpa91HYfxzfAJCr502oxNK1cfdC9hlaFI43RT+JFCann9JUgZmLzzntChHyn13Sgn9ljHNg==} + cpu: [arm64] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-musl@1.12.2': + resolution: {integrity: sha512-KQ3Lki6l+Pz1k/eBipN41ES+YUK30beLGb9YqcB1O542cyLCNE6GaxrfcY3T6EezmGGk84wb5XyO9loTM9tkcA==} + cpu: [arm64] + os: [linux] + + '@unrs/resolver-binding-linux-loong64-gnu@1.12.2': + resolution: {integrity: sha512-3SJGEh1DborhG6pyxvhPzCT4bbSIVihsvgJc13P1bHG7KLdNDaF9T3gsTwFc7Jw/5Y5/iWOjkEx7Zy0NvCGX3Q==} + cpu: [loong64] + os: [linux] + + '@unrs/resolver-binding-linux-loong64-musl@1.12.2': + resolution: {integrity: sha512-jiuG/Obbel7uw1PwHNFfrkiKhLAF6mnyZ6aWlOAVN9WqKm8v0OFGnciJIHu8+CMvXLQ8AD51LPzAoUfT21D5Ew==} + cpu: [loong64] + os: [linux] + + '@unrs/resolver-binding-linux-ppc64-gnu@1.12.2': + resolution: {integrity: sha512-q7xRvVpmcfeL+LlZg8Pbbo6QaTZwDU5BaGZbwfhkEsXJn3Was8xYfE0RBH266xZt0rM6B7i8xAYIvjthuUIWHg==} + cpu: [ppc64] + os: [linux] + + '@unrs/resolver-binding-linux-riscv64-gnu@1.12.2': + resolution: {integrity: sha512-0CVdx6lcnT3Q9inOH8tsMIOJ6ImndllMjqJHg8RLVdB7Vq4SfkEXl9mCSsVNuNA4MCYycRicCUxPCabVHJRr6A==} + cpu: [riscv64] + os: [linux] + + '@unrs/resolver-binding-linux-riscv64-musl@1.12.2': + resolution: {integrity: sha512-iOwlRo9vnp6R6ohHQS11n0NnfdXx/omhkocmIfaPRpQhKZ+3BDMkkdRVh53qjkFkpPddf+FETA28NwGN7l5l+w==} + cpu: [riscv64] + os: [linux] + + '@unrs/resolver-binding-linux-s390x-gnu@1.12.2': + resolution: {integrity: sha512-HYJtLfXq94q8iZNFT1lknx258wlkkWhZeUXJRqzKBBUJ00CvZ+N33zgbCqimLjsyw5Va6uUxhVa12mI+kaveEw==} + cpu: [s390x] + os: [linux] + + '@unrs/resolver-binding-linux-x64-gnu@1.12.2': + resolution: {integrity: sha512-mPsUhunKKDih5O96Y6enDQyHc1SqBPlY1E/SfMWDM3EdJ95Z9CArPeCVwCCqbP45ljvivdEk8Fxn+SIb1rDAJQ==} + cpu: [x64] + os: [linux] + + '@unrs/resolver-binding-linux-x64-musl@1.12.2': + resolution: {integrity: sha512-azrt6+5ydLd8Vt210AAFis/lZevSfPw93EJRIJG+xPu4WCJ8K0kppCTpMyLPcKT7H15M4Jnt2tMp5bOvCkRC6A==} + cpu: [x64] + os: [linux] + + '@unrs/resolver-binding-openharmony-arm64@1.12.2': + resolution: {integrity: sha512-YZ9hP4O0X9PQb8eO980qmLNGH4zT3I9+SZTdt0Pr0YyuGQhYKoOZkV02VzrzyOZJ5xIJ3UFIenKkUkGg8GjgWQ==} + cpu: [arm64] + os: [openharmony] + + '@unrs/resolver-binding-wasm32-wasi@1.12.2': + resolution: {integrity: sha512-tYFDIkMxSflfEc/h92ZWNsZlHSwgimbNHSO3PL2JWQHfCuC2q316jMyYU9TIWZsFK2bQwyK5VAdYgn8ygPj69A==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@unrs/resolver-binding-win32-arm64-msvc@1.12.2': + resolution: {integrity: sha512-qzNyg3xL0VPQmCaUh+N5jSitce6k+uCBfMDesWRnlULOZaqUkaJ0ybdT+UqlAWJoQjuqfIU/0Ptx9bteN4D82g==} + cpu: [arm64] + os: [win32] + + '@unrs/resolver-binding-win32-ia32-msvc@1.12.2': + resolution: {integrity: sha512-WD9sY00OfpHVGfsnHZoA8jVT+esS/Bg8z8jzxp5BnDCjjwsuKsPQrzswwpFy4J1AUJbXPRfkpcX0mXrzeXW79g==} + cpu: [ia32] + os: [win32] + + '@unrs/resolver-binding-win32-x64-msvc@1.12.2': + resolution: {integrity: sha512-nAB74NfSNKknqQ1RrYj6uz8FcXEomu/MATJZxh/x+BArzN2U3JbOYC0APYzUIGhVY3m5hRxA8VPNdPBoG8txlA==} + cpu: [x64] + os: [win32] + + '@upsetjs/venn.js@2.0.0': + resolution: {integrity: sha512-WbBhLrooyePuQ1VZxrJjtLvTc4NVfpOyKx0sKqioq9bX1C1m7Jgykkn8gLrtwumBioXIqam8DLxp88Adbue6Hw==} '@vercel/webpack-asset-relocator-loader@1.10.0': resolution: {integrity: sha512-CCDqnX5Jt1hmwvUhpkKm4y8oK9Z4HyEtNPthxTp37WOllawyuAxDuNCAr2X6SmwOlFpcudNzIBvuDQ29MVQuCQ==} @@ -45403,6 +45484,10 @@ packages: resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==} engines: {node: ^18.17.0 || >=20.5.0} + abbrev@4.0.0: + resolution: {integrity: sha512-a1wflyaL0tHtJSmLSOVybYhy22vRih4eduhhrkcjgrWGnRfrZtovJ2FRjxuTtkkj47O/baf0R86QU5OuYpz8fA==} + engines: {node: ^20.17.0 || >=22.9.0} + abort-controller@3.0.0: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} engines: {node: '>=6.5'} @@ -45411,18 +45496,16 @@ packages: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} + accepts@2.0.0: + resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} + engines: {node: '>= 0.6'} + acorn-class-fields@1.0.0: resolution: {integrity: sha512-l+1FokF34AeCXGBHkrXFmml9nOIRI+2yBnBpO5MaVAaTIJ96irWLtcCxX+7hAp6USHFCe+iyyBB4ZhxV807wmA==} engines: {node: '>=4.8.2'} peerDependencies: acorn: ^6 || ^7 || ^8 - acorn-import-phases@1.0.4: - resolution: {integrity: sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==} - engines: {node: '>=10.13.0'} - peerDependencies: - acorn: ^8.14.0 - acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -45468,6 +45551,9 @@ packages: ajv-formats@2.1.1: resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + ajv-formats@3.0.1: + resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} + ajv-keywords@3.5.2: resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} peerDependencies: @@ -45481,21 +45567,27 @@ packages: ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ajv@6.15.0: + resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==} + ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} - allure-js-commons@3.4.2: - resolution: {integrity: sha512-bWzqduvU/LzSTI4wJKzWbHWe64xluF30pDxFfSP+jlloQx9F1Vytdqrit5oAgNj+czzdA+Nocv3Dh6d4COCTvA==} + ajv@8.20.0: + resolution: {integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==} + + allure-js-commons@3.13.0: + resolution: {integrity: sha512-NC4qcbmfpuYTstdw+EgimzhpHD2T85wzBNWRMPpu9rukkLzRlLvSmUCo5hy6vEvwQd9BUQh2yMFplJ+shIpVrA==} peerDependencies: - allure-playwright: 3.4.2 + allure-playwright: 3.13.0 peerDependenciesMeta: allure-playwright: optional: true - allure-playwright@3.4.2: - resolution: {integrity: sha512-M2addk0XCD5mJW9GyuJ37lddxhQw9oqff+Z3hN8D4u73pJqKYOEkL4JwYbc9CPRq0l1OrakmMoJ+CtVF4ifaTg==} + allure-playwright@3.13.0: + resolution: {integrity: sha512-U9pLbm1+kTtGd+1Wqgb0wgsVTX730BdRc6tT0uQ8upzhEjsyjC2OnPCaMScXKPCv4uLWzORyem7d7cgnVz8fEA==} peerDependencies: - '@playwright/test': '>=1.53.0' + '@playwright/test': '>=1.62.0' ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} @@ -45557,18 +45649,12 @@ packages: peerDependencies: graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 - app-builder-bin@5.0.0-alpha.10: - resolution: {integrity: sha512-Ev4jj3D7Bo+O0GPD2NMvJl+PGiBAfS7pUGawntBNpCbxtpncfUixqFj9z9Jme7V7s3LBGqsWZZP54fxBX3JKJw==} - - app-builder-lib@25.1.8: - resolution: {integrity: sha512-pCqe7dfsQFBABC1jeKZXQWhGcCPF3rPCXDdfqVKjIeWBcXzyC1iOWZdfFhGl+S9MyE/k//DFmC6FzuGAUudNDg==} + app-builder-lib@26.15.3: + resolution: {integrity: sha512-2VnyWkqsP5v5XbBhL3tD5Syx8iNPBYsoU7kY4S2fz7wg8Rj/nztWKCUzGKaFRTv0Xwf3/H058CR1Kvtd/3lRow==} engines: {node: '>=14.0.0'} peerDependencies: - dmg-builder: 25.1.8 - electron-builder-squirrel-windows: 25.1.8 - - aproba@2.1.0: - resolution: {integrity: sha512-tLIEcj5GuR2RSTnxNKdkK0dJ/GrC7P38sUkiDmDuHfsHmbagTFAxDVIBltoklXEVIQ/f14IL8IMJ5pn9Hez1Ew==} + dmg-builder: 26.15.3 + electron-builder-squirrel-windows: 26.15.3 archiver-utils@5.0.2: resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} @@ -45578,11 +45664,6 @@ packages: resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} engines: {node: '>= 14'} - are-we-there-yet@3.0.1: - resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - deprecated: This package is no longer supported. - arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} @@ -45644,13 +45725,9 @@ packages: asn1.js@5.4.1: resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==} - assert-plus@1.0.0: - resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} - engines: {node: '>=0.8'} - - astral-regex@2.0.0: - resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} - engines: {node: '>=8'} + asn1js@3.0.10: + resolution: {integrity: sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg==} + engines: {node: '>=12.0.0'} async-exit-hook@2.0.1: resolution: {integrity: sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==} @@ -45699,6 +45776,9 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} + aws4@1.13.2: + resolution: {integrity: sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==} + axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} @@ -45711,34 +45791,38 @@ packages: react-native-b4a: optional: true - babel-jest@29.7.0: - resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + babel-jest@30.5.2: + resolution: {integrity: sha512-ES8WeJ2fNWPEDunyAtUfJ12nHyaWUloCHdkfK2oW5uSoQSUmjNKdWiGaXJITJwvFEWoD/evHEg/QoCXAvLaQqQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: - '@babel/core': ^7.8.0 + '@babel/core': ^7.11.0 || ^8.0.0-0 - babel-plugin-istanbul@6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} + babel-plugin-istanbul@8.0.0: + resolution: {integrity: sha512-18wCskrN3DgbuBmp1gr7LBGT8xdz5xhQQqFvFhVxbkl8VBCrMKQ2YtqBWtUal1Zrc1HTuX0011+Brjw78TCFkg==} + engines: {node: '>=18'} - babel-plugin-jest-hoist@29.6.3: - resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + babel-plugin-jest-hoist@30.5.0: + resolution: {integrity: sha512-gtGo1B+u14jrZQv6TdSWIWkTqclboo7Qn+dFAGUOIuXLFuJKAdg3U5MIWzZnW4vfUb4dX9skmAMiby86e/SF4A==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} babel-preset-current-node-syntax@1.2.0: resolution: {integrity: sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==} peerDependencies: '@babel/core': ^7.0.0 || ^8.0.0-0 - babel-preset-jest@29.6.3: - resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + babel-preset-jest@30.5.0: + resolution: {integrity: sha512-ZGPn5ClP4lBDpuOK8W1yQIOy359HmbnZv3suucAlIe+SEE9yDsxV4S2PjSbH2Vc97U+WmzYD7vw3kr8NsQ/i6w==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: - '@babel/core': ^7.0.0 + '@babel/core': ^7.11.0 || ^8.0.0-beta.1 || ^8.0.0 balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + bare-events@2.8.2: resolution: {integrity: sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==} peerDependencies: @@ -45790,15 +45874,9 @@ packages: bindings@1.5.0: resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - block-stream2@2.1.0: resolution: {integrity: sha512-suhjmLI57Ewpmq00qaygS8UgEq2ly2PCItenIyhMqVjo4t4pGzqMvfgJuX8iWTeSDdfSSqS6j38fL4ToNL7Pfg==} - bluebird-lst@1.0.9: - resolution: {integrity: sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==} - bluebird@3.4.7: resolution: {integrity: sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==} @@ -45821,6 +45899,10 @@ packages: resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + body-parser@2.3.0: + resolution: {integrity: sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==} + engines: {node: '>=18'} + bonjour-service@1.3.0: resolution: {integrity: sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==} @@ -45843,6 +45925,10 @@ packages: brace-expansion@2.0.2: resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + brace-expansion@5.0.12: + resolution: {integrity: sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==} + engines: {node: 20 || >=22} + braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -45880,9 +45966,6 @@ packages: buffer-alloc@1.2.0: resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==} - buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - buffer-crc32@1.0.0: resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} engines: {node: '>=8.0.0'} @@ -45921,19 +46004,17 @@ packages: resolution: {integrity: sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw==} engines: {node: '>=6.14.2'} - builder-util-runtime@9.2.10: - resolution: {integrity: sha512-6p/gfG1RJSQeIbz8TK5aPNkoztgY1q5TgmGFMAXcY8itsGW6Y2ld1ALsZ5UJn8rog7hKF3zHx5iQbNQ8uLcRlw==} - engines: {node: '>=12.0.0'} - - builder-util-runtime@9.3.1: - resolution: {integrity: sha512-2/egrNDDnRaxVwK3A+cJq6UOlqOdedGA7JPqCeJjN2Zjk1/QB/6QUi3b714ScIGS7HafFXTyzJEOr5b44I3kvQ==} + builder-util-runtime@9.7.0: + resolution: {integrity: sha512-g/kR520giAFYkSXTzcmF3kqQq7wi8F6N6SzeDgZrqTBN+VHdmgWOyTdD1yD7AATDId/yXLvuP34CxW46/BwCdw==} engines: {node: '>=12.0.0'} - builder-util@25.1.7: - resolution: {integrity: sha512-7jPjzBwEGRbwNcep0gGNpLXG9P94VA3CPAZQCzxkFXiV2GMQKlziMbY//rXPI7WKfhsvGgFXjTcXdBEwgXw9ww==} + builder-util@26.15.3: + resolution: {integrity: sha512-q2hn7Mbo2nFNkVekPiHFx6Nfo3hURmES3tfBn+k5Pqxl2RkmP3QGqZUhH/q9Pch/4G05NRhPjDlVj1O8q4Txvw==} + engines: {node: '>=14.0.0'} - builtins@5.1.0: - resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} + bundle-name@4.1.1: + resolution: {integrity: sha512-DdH81/zPLVS11EUgWq3tEu/xn+EzljlMYooDNdzWEnFha3R3NBMpMV1UqYIpjYHV/SgpFKMIX1Oh7o06SjM/oA==} + engines: {node: '>=18'} busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} @@ -45943,9 +46024,9 @@ packages: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} - cacache@16.1.3: - resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + bytestreamjs@2.0.1: + resolution: {integrity: sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==} + engines: {node: '>=6.0.0'} cache-content-type@1.0.1: resolution: {integrity: sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==} @@ -46034,18 +46115,10 @@ packages: resolution: {integrity: sha512-8/MzidM6G/TgRelkzDG13y3Y9LxBjCb+8yOEZ9+wwq5gVF2w2pV0wmHvjfT0RvuxGyR7UEuK36r+yYMbT4uKgA==} engines: {node: '>= 0.6'} - cheerio@1.1.2: - resolution: {integrity: sha512-IkxPpb5rS/d1IiLbHMgfPuS0FgiWTtFIm/Nj+2woXDLTZ7fOT2eqzgYbdMlLweqlHbsZjxEChoVK+7iph7jyQg==} + cheerio@1.2.0: + resolution: {integrity: sha512-WDrybc/gKFpTYQutKIK6UvfcuxijIZfMfXaYm8NMsPQxSYvf+13fXUJ4rztGGbJcBQ/GF55gvrZ0Bc0bj/mqvg==} engines: {node: '>=20.18.1'} - chevrotain-allstar@0.3.1: - resolution: {integrity: sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==} - peerDependencies: - chevrotain: ^11.0.0 - - chevrotain@11.0.3: - resolution: {integrity: sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==} - chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} @@ -46054,9 +46127,9 @@ packages: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} - chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} + chokidar@5.0.0: + resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} + engines: {node: '>= 20.19.0'} chownr@3.0.0: resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} @@ -46075,17 +46148,10 @@ packages: chromium-pickle-js@0.2.0: resolution: {integrity: sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==} - ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} - ci-info@4.3.1: resolution: {integrity: sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==} engines: {node: '>=8'} - cjs-module-lexer@1.4.3: - resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} - cjs-module-lexer@2.2.1: resolution: {integrity: sha512-Ca8swihM+/4yKecYHY52kgJd300hi2lADU/a1RxNTRe+RJ9jvqQlESpbz9DnG9mowez8qwXHB8qYdIUw9e+F5Q==} @@ -46097,18 +46163,6 @@ packages: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} - cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - - cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} - - cli-truncate@2.1.0: - resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} - engines: {node: '>=8'} - cli-truncate@4.0.0: resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} engines: {node: '>=18'} @@ -46134,10 +46188,6 @@ packages: clone-response@1.0.3: resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} - clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - co-body@6.2.0: resolution: {integrity: sha512-Kbpv2Yd1NdL1V/V4cwLVxraHDV6K8ayohr2rmH0J87Er8+zJjcTa6dAn9QMPC9CRgU8+aNajKbSf1TzDB1yKPA==} engines: {node: '>=8.0.0'} @@ -46184,10 +46234,6 @@ packages: resolution: {integrity: sha512-RxmjYxbWemV9gKu4zPgiZagUxbH3RQpEIO77XoSSX0ivgABDZ+h8Zuash/EMFLTI4N9QgFPOJ6JQpPZKFxa+dA==} engines: {node: '>=18'} - color-support@1.1.3: - resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} - hasBin: true - color@3.2.1: resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} @@ -46254,9 +46300,9 @@ packages: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} - compression-webpack-plugin@10.0.0: - resolution: {integrity: sha512-wLXLIBwpul/ALcm7Aj+69X0pYT3BYt6DdPn3qrgBIh9YejV9Bju9ShhlAsjujLyWMo6SAweFIWaUoFmXZNuNrg==} - engines: {node: '>= 14.15.0'} + compression-webpack-plugin@12.0.0: + resolution: {integrity: sha512-LR4mS19Jqq41XfA3xVMLrtzVNzqJbUHdzPeLRfQoLiAS9s87f0021fDuU89xxVQFcB6d20ufBkv4j1rQ4OowHw==} + engines: {node: '>= 20.9.0'} peerDependencies: webpack: ^5.1.0 @@ -46277,39 +46323,40 @@ packages: confbox@0.2.2: resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} - config-file-ts@0.2.8-rc1: - resolution: {integrity: sha512-GtNECbVI82bT4RiDIzBSVuTKoSHufnU7Ce7/42bkWZJZFLjmDF2WBpVsvRkhKCfKBnTBb3qZrBwPpFBU/Myvhg==} - connect-history-api-fallback@2.0.0: resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} engines: {node: '>=0.8'} - connect-multiparty@2.2.0: - resolution: {integrity: sha512-zKcpA7cuXGEhuw9Pz7JmVCFmp85jzGLGm/iiagXTwyEAJp4ypLPtRS/V4IGuGb9KjjrgHBs6P/gDCpZHnFzksA==} - engines: {node: '>=0.10.0'} - deprecated: This package is archived and no longer maintained. For support, visit https://github.com/expressjs/express/discussions - consola@3.4.2: resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} engines: {node: ^14.18.0 || >=16.10.0} - console-control-strings@1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - content-disposition@0.5.4: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} + content-disposition@1.1.0: + resolution: {integrity: sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==} + engines: {node: '>=18'} + content-type@1.0.5: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} + content-type@2.1.0: + resolution: {integrity: sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==} + engines: {node: '>=18'} + convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} cookie-signature@1.0.6: resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + cookie-signature@1.2.2: + resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==} + engines: {node: '>=6.6.0'} + cookie@0.7.1: resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} engines: {node: '>= 0.6'} @@ -46324,23 +46371,20 @@ packages: copy-to@2.0.1: resolution: {integrity: sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w==} - copy-webpack-plugin@11.0.0: - resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==} - engines: {node: '>= 14.15.0'} + copy-webpack-plugin@14.0.0: + resolution: {integrity: sha512-3JLW90aBGeaTLpM7mYQKpnVdgsUZRExY55giiZgLuX/xTQRUs1dOCwbBnWnvY6Q6rfZoXMNwzOQJCSZPppfqXA==} + engines: {node: '>= 20.9.0'} peerDependencies: webpack: ^5.1.0 core-js@3.46.0: resolution: {integrity: sha512-vDMm9B0xnqqZ8uSBpZ8sNtRtOdmfShrvT6h2TuQGLs0Is+cR0DYbj/KWP6ALVNbWPpqA/qPLoOuppJN07humpA==} - core-util-is@1.0.2: - resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} - core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - cors@2.8.5: - resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + cors@2.8.6: + resolution: {integrity: sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==} engines: {node: '>= 0.10'} cose-base@1.0.3: @@ -46374,11 +46418,6 @@ packages: crc@3.8.0: resolution: {integrity: sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==} - create-jest@29.7.0: - resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} @@ -46459,8 +46498,8 @@ packages: resolution: {integrity: sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==} engines: {node: '>=18'} - csv-parse@5.1.0: - resolution: {integrity: sha512-JL+Q6YEikT2uoe57InjFFa6VejhSv0tDwOxeQ1bVQKeUC/NCnLAAZ8n3PzowPQQLuZ37fysDYZipB2UJkH9C6A==} + csv-parse@7.0.3: + resolution: {integrity: sha512-YFd3QM/yo17vH91L1IOZuvl09zM0zEEtdfTcOCKWcMdM++MNaQSyp09slXyFCLaPXvHstQFx/xC8myiFHSMUvw==} csv-stringify@6.6.0: resolution: {integrity: sha512-YW32lKOmIBgbxtu3g5SaiqWNwa/9ISQt2EcgOq0+RAIFufFp9is6tqNnKahqE5kuKvrnYAzs28r+s6pXJR8Vcw==} @@ -46486,8 +46525,8 @@ packages: peerDependencies: cytoscape: ^3.2.0 - cytoscape@3.33.1: - resolution: {integrity: sha512-iJc4TwyANnOGR1OmWhsS9ayRS3s+XQ185FmuHObThD+5AeJCakAAbWv8KimMTt08xCCLNgneQwFp+JRJOr9qGQ==} + cytoscape@3.34.3: + resolution: {integrity: sha512-yfYGhRcGAntq6YBD583j4n0Eg3jIxvWmZtz/5uz9UYkeIStSlMxuUja+ec5j3iBD8nv1rwaOAYMW09tBdkSeaQ==} engines: {node: '>=0.10'} d3-array@2.12.1: @@ -46633,8 +46672,8 @@ packages: resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==} engines: {node: '>=0.12'} - dagre-d3-es@7.0.13: - resolution: {integrity: sha512-efEhnxpSuwpYOKRm/L5KbqoZmNNukHa/Flty4Wp62JRvgH2ojwVgPgdYyr4twpieZnyRDdIH7PY2mopX26+j2Q==} + dagre-d3-es@7.0.14: + resolution: {integrity: sha512-P4rFMVq9ESWqmOgK+dlXvOtLwYg0i7u0HBGJER0LZDJT2VHIPAMZ/riPxqJceWMStH5+E61QxFra9kIS3AqdMg==} data-uri-to-buffer@4.0.1: resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} @@ -46665,8 +46704,8 @@ packages: resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} engines: {node: '>=0.11'} - dayjs@1.11.19: - resolution: {integrity: sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==} + dayjs@1.11.23: + resolution: {integrity: sha512-QDTCU0M0MxR3hQfnlDJfwekQiaanm1ubOD231u73WBckQ/fsamwRLiE2GBz6D3a/xF1NgfiDLJjXBa1hYOYTtQ==} debounce-fn@4.0.0: resolution: {integrity: sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==} @@ -46726,12 +46765,13 @@ packages: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} - default-gateway@6.0.3: - resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} - engines: {node: '>= 10'} + default-browser-id@5.0.1: + resolution: {integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==} + engines: {node: '>=18'} - defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + default-browser@5.5.1: + resolution: {integrity: sha512-m1pAzaJgZ/gssEqlOhJkPJp8Xly7QyW6xcrkUa2KKcDeDSEMP7X8xipU3snUcfisTQx0w1AGae+9UtJSfVnXGw==} + engines: {node: '>=18'} defer-to-connect@2.0.1: resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} @@ -46741,9 +46781,9 @@ packages: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} - define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} @@ -46816,10 +46856,6 @@ packages: didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - diff2html@3.4.52: resolution: {integrity: sha512-qhMg8/I3sZ4zm/6R/Kh0xd6qG6Vm86w6M+C9W+DuH1V8ACz+1cgEC8/k0ucjv6AGqZWzHm/8G1gh7IlrUqCMhg==} engines: {node: '>=12'} @@ -46856,14 +46892,8 @@ packages: dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - dmg-builder@25.1.8: - resolution: {integrity: sha512-NoXo6Liy2heSklTI5OIZbCgXC1RzrDQsZkeEwXhdOro3FT1VBOvbubvscdPnjVuQ4AMwwv61oaH96AbiYg9EnQ==} - - dmg-license@1.0.11: - resolution: {integrity: sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==} - engines: {node: '>=8'} - os: [darwin] - hasBin: true + dmg-builder@26.15.3: + resolution: {integrity: sha512-O3zJUFUYHJKgzPqioHxfxzBzlSC1eXCSr79gMSBKBP5AgjjpmrydMsMLotEg9fAJF36vdUncb+4ndRNxoPdlSQ==} dns-packet@5.6.1: resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} @@ -46873,10 +46903,6 @@ packages: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - docx4js@3.3.0: resolution: {integrity: sha512-n+EGNivVW1IqUjkHDCLb7/w2mW47/23PqTbQN0V++WaCyYYMwjAKsDdhUt1TMB67/v5KQS4abkxab1uu4zCtIQ==} @@ -46898,6 +46924,10 @@ packages: dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + dom-serializer@3.1.1: + resolution: {integrity: sha512-4MEa38/QexBob6gFNwu+EGdWvhJ1OKuNwdYY3Y3NyeWDQfnGeDYQUDfIRzWu5B5gsv03so2Uxd28YC6zrsx3Lw==} + engines: {node: '>=20.19.0'} + dom-walk@0.1.2: resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==} @@ -46907,6 +46937,10 @@ packages: domelementtype@2.3.0: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + domelementtype@3.0.0: + resolution: {integrity: sha512-umCQid3jKbDmVjx8jGaW7uUykm4DEUeyV21hPxNMo2nV955DhUThwqyOIDtreepP31hl84X7G5U9ZfsWvIB3Pg==} + engines: {node: '>=20.19.0'} + domhandler@2.4.2: resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==} @@ -46918,11 +46952,15 @@ packages: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} + domhandler@6.0.1: + resolution: {integrity: sha512-gYzvtM72ZtxQO0T048kd6HWSbbGCNOUwcnfQ01cqIJ4X2IYKFFHZ5mKvrQETcFXxsRObZulDaKmy//R7TPtsBg==} + engines: {node: '>=20.19.0'} + dompurify@2.5.9: resolution: {integrity: sha512-i6mvVmWN4xo9LrhCOZrDgSs9noW6nOahbrmzjRbPF36YPyj5Ue5lgok0MHDWkG7xzpWFO2OYttXdzM7rJxHvNA==} - dompurify@3.3.0: - resolution: {integrity: sha512-r+f6MYR1gGN1eJv0TVQbhA7if/U7P87cdPl3HN5rikqaBSBxLiCb/b9O+2eG0cxz0ghyU+mU1QkbsOwERMYlWQ==} + dompurify@3.4.16: + resolution: {integrity: sha512-sqo+pNp3qRhCIpbgRi1y8Tgk27Bo2Ry7w0dC1NBeNTdZChWjz9Xb/KOoZbRP/R6pQZ80Qw8YhXw13hWWBbMRnQ==} domutils@1.5.1: resolution: {integrity: sha512-gSu5Oi/I+3wDENBsOWBiRK1eoGxcywYSqg3rR960/+EfY0CF4EX1VPkgHOZ3WiS/Jg2DtliF6BhWcHlfpYUcGw==} @@ -46936,6 +46974,10 @@ packages: domutils@3.2.2: resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + domutils@4.0.2: + resolution: {integrity: sha512-qI4JLRKnSzqFqr7hAlS5xQDusBCjKSEG4t4+7aNrIQMHBcsC2TGEhuyABJdYkgSewL57PNLYEiibY2iPKhKpaA==} + engines: {node: '>=20.19.0'} + dot-case@3.0.4: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} @@ -46971,6 +47013,9 @@ packages: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} + duplexer2@0.1.4: + resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} + duplexer@0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} @@ -46995,13 +47040,13 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-builder@25.1.8: - resolution: {integrity: sha512-poRgAtUHHOnlzZnc9PK4nzG53xh74wj2Jy7jkTrqZ0MWPoHGh1M2+C//hGeYdA+4K8w4yiVCNYoLXF7ySj2Wig==} + electron-builder@26.15.3: + resolution: {integrity: sha512-a1KM5heqS3gQCZzizXEI8RjJy3QVogULPdeSknt76uLDpBIW/HDGsMg/XgP0riP6PI9COsRvFITKKGDqA8fJxA==} engines: {node: '>=14.0.0'} hasBin: true - electron-context-menu@4.1.1: - resolution: {integrity: sha512-kebXha4K2DmR7zrKpO8muzXlUAdhgqQIT7DpPeT4cAKZugwCB/NbuEuT+1SDjOH9vXJYjWK2UQuFvnVw0u0lHg==} + electron-context-menu@4.1.2: + resolution: {integrity: sha512-9xYTUV0oRqKL50N9W71IrXNdVRB0LuBp3R1zkUdUc2wfIa2/QZwYYj5RLuO7Tn7ZSLVIaO3X6u+EIBK+cBvzrQ==} engines: {node: '>=18'} electron-dl@4.0.0: @@ -47012,12 +47057,12 @@ packages: resolution: {integrity: sha512-8TjjAh8Ec51hUi3o4TaU0mD3GMTOESi866oRNavj9A3IQJ7pmv+MJVmdZBFGw4GFT36X7bkqnuDNYvkQgvyI8Q==} engines: {node: '>=18'} - electron-log@5.4.3: - resolution: {integrity: sha512-sOUsM3LjZdugatazSQ/XTyNcw8dfvH1SYhXWiJyfYodAAKOZdHs0txPiLDXFzOZbhXgAgshQkshH2ccq0feyLQ==} + electron-log@5.4.4: + resolution: {integrity: sha512-istWgaXjBfURBSS8LWVW9C3jsc6+ac+tY1lXrQEOTp0lVj+a4OlO1Tmqb36GgnEUDv92DGC9VI1HNXwJinWpgA==} engines: {node: '>= 14'} - electron-publish@25.1.7: - resolution: {integrity: sha512-+jbTkR9m39eDBMP4gfbqglDd6UvBC7RLh5Y0MhFSsc6UkGHj9Vj9TWobxevHYMMqmoujL11ZLjfPpMX+Pt6YEg==} + electron-publish@26.15.3: + resolution: {integrity: sha512-g/2bn8YTavY4cuS5F+jOS7zmZbXXBV8KZ8yHKfJjFPoKtzBqrpCdNPxBd3tqdBwP7BVd0lGzf7Bk2s0KesWZ4Q==} electron-squirrel-startup@1.0.1: resolution: {integrity: sha512-sTfFIHGku+7PsHLJ7v0dRcZNkALrV+YEozINTW8X1nM//e5O3L+rfYuvSW00lmGHnYmUjARZulD8F2V8ISI9RA==} @@ -47028,15 +47073,15 @@ packages: electron-to-chromium@1.5.366: resolution: {integrity: sha512-OlRuhb688YTCzzU3gXPLn6nGyd+F+53INE1qaKKlu6kETErE8FYsyDh0XqXEU+uBRn0MpCzz2vfNwORhkap8qg==} - electron-updater@6.6.2: - resolution: {integrity: sha512-Cr4GDOkbAUqRHP5/oeOmH/L2Bn6+FQPxVLZtPbcmKZC63a1F3uu5EefYOssgZXG3u/zBlubbJ5PJdITdMVggbw==} + electron-updater@6.8.9: + resolution: {integrity: sha512-ZhVxM9iGONUpZGI1FxdMRgJjUFXi7AYGVa5PwKlO1tV1/4zDxQmfKpXOHVztKrd6L9rLcFjERvi1Mf2vxyTkig==} electron-windows-badge@1.1.0: resolution: {integrity: sha512-hWFbUk9u3fQHcKzTAcjZAN7XH9bL9oH9g20RRDU/DVDNqdMI03GzlBZfR/R8R1krYu9AT4biLqSCAxnt9LMAfA==} - electron@38.6.0: - resolution: {integrity: sha512-68OFNxJlrEStA+t8k5atzf4frJddvRR1N1oalr49Ll8YZ0+0nEsDhw4UNhTCoZKTjSYcxFF/4rt+sco+OlnB3g==} - engines: {node: '>= 12.20.55'} + electron@43.7.8: + resolution: {integrity: sha512-h9qnttBn9b+pmnJjagrpjvK97Wb9WbsyIB03BV6NnhnPqSq1Jw7500hNkqHPkosHCE0zL/806v4zf9d3VrII0w==} + engines: {node: '>= 22.12.0'} hasBin: true email-addresses@5.0.0: @@ -47088,9 +47133,6 @@ packages: encoding-sniffer@0.2.1: resolution: {integrity: sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==} - encoding@0.1.13: - resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} - end-of-stream@1.4.5: resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} @@ -47098,6 +47140,10 @@ packages: resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} engines: {node: '>=10.13.0'} + enhanced-resolve@5.26.0: + resolution: {integrity: sha512-9vhedylFonb2YGogzUKX6+Ja72gOJbN1QHAqdrvqLwhdl/QWbKopzoUC9EbQNVsAns/bx/4uyqalrQAoy1IByw==} + engines: {node: '>=10.13.0'} + entities@1.1.2: resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==} @@ -47116,10 +47162,22 @@ packages: resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} engines: {node: '>=0.12'} + entities@7.0.1: + resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} + engines: {node: '>=0.12'} + + entities@8.1.0: + resolution: {integrity: sha512-kxL7msIffSuh9aaFAMD7rxAIuTRMAHMeBtgHW2yUdWw732ZNh4MehkF2gdjvtdmikkaIP9bFDDJOPlsvm7avrA==} + engines: {node: '>=20.19.0'} + env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} + env-paths@3.0.0: + resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + envinfo@7.20.0: resolution: {integrity: sha512-+zUomDcLXsVkQ37vUqWBvQwLaLlj8eZPSi61llaEFAVBY5mhcXdaSw1pSJVl4yTYD5g/gEfpNl28YYk4IPvrrg==} engines: {node: '>=4'} @@ -47143,8 +47201,8 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-module-lexer@1.7.0: - resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + es-module-lexer@2.3.2: + resolution: {integrity: sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==} es-module-lexer@3.0.2: resolution: {integrity: sha512-BuIB67FngDSyQ/dpQNOZybwdEBDUGJQvOqwWr4ha/ufYiqzuEwPkKO2zLhRAgay28tStRIHUeWmszZAJo3GCOg==} @@ -47165,6 +47223,9 @@ packages: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} + es-toolkit@1.52.0: + resolution: {integrity: sha512-XTNEJQh1tY1ZJVcf6ayP/2n4ZPyaHlW2FWs7xvw5ddPuhUVjLD3olQVQS7kf58JbAB48iL0uL/jerTrjtV3lDA==} + es5-ext@0.10.64: resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==} engines: {node: '>=0.10'} @@ -47233,32 +47294,18 @@ packages: peerDependencies: eslint: '>=6.0.0' + eslint-config-love@157.0.0: + resolution: {integrity: sha512-iyx9xq0tAwX+U3a6cJ6ZI8IyMtIwNlcZqF/gDBCDU88Of2WS4TvKKBvKC2CchcOdXoPpM4vNsfkx/p3SCsXBqw==} + peerDependencies: + eslint: ^10.0.0 + typescript: '*' + eslint-config-prettier@8.10.2: resolution: {integrity: sha512-/IGJ6+Dka158JnP5n5YFMOszjDWrXggGz1LaK/guZq9vZTmniaKlHcsscvkAhn9y4U+BU3JuUdYvtAMcv30y4A==} hasBin: true peerDependencies: eslint: '>=7.0.0' - eslint-config-standard-with-typescript@40.0.0: - resolution: {integrity: sha512-GXUJcwIXiTQaS3H4etv8a1lejVVdZYaxZNz3g7vt6GoJosQqMTurbmSC4FVGyHiGT/d1TjFr3+47A3xsHhsG+Q==} - deprecated: Please use eslint-config-love, instead. - peerDependencies: - '@typescript-eslint/eslint-plugin': ^6.4.0 - eslint: ^8.0.1 - eslint-plugin-import: ^2.25.2 - eslint-plugin-n: '^15.0.0 || ^16.0.0 ' - eslint-plugin-promise: ^6.0.0 - typescript: '*' - - eslint-config-standard@17.1.0: - resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} - engines: {node: '>=12.0.0'} - peerDependencies: - eslint: ^8.0.1 - eslint-plugin-import: ^2.25.2 - eslint-plugin-n: '^15.0.0 || ^16.0.0 ' - eslint-plugin-promise: ^6.0.0 - eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} @@ -47271,17 +47318,11 @@ packages: eslint: optional: true - eslint-plugin-es@3.0.1: - resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} - engines: {node: '>=8.10.0'} - peerDependencies: - eslint: '>=4.19.1' - - eslint-plugin-es@4.1.0: - resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} - engines: {node: '>=8.10.0'} + eslint-plugin-es-x@7.8.0: + resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - eslint: '>=4.19.1' + eslint: '>=8' eslint-plugin-import@2.32.0: resolution: {integrity: sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==} @@ -47289,77 +47330,79 @@ packages: peerDependencies: eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 - eslint-plugin-n@15.7.0: - resolution: {integrity: sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==} - engines: {node: '>=12.22.0'} + eslint-plugin-n@18.4.1: + resolution: {integrity: sha512-2sBReWOvCbzgkPri9M5SFmD5EbIwZLa1xz6B5RZsrI19WSFKpyx1sOMr+pdk8puCiXuEgCbErEHy1PuaUrc/4w==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} peerDependencies: - eslint: '>=7.0.0' + eslint: '>=8.57.1' + ts-declaration-location: ^1.0.6 + typescript: '>=5.0.0' + peerDependenciesMeta: + ts-declaration-location: + optional: true + typescript: + optional: true - eslint-plugin-node@11.1.0: - resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} - engines: {node: '>=8.10.0'} + eslint-plugin-promise@7.3.0: + resolution: {integrity: sha512-6uGiOR0INuujr6PEQmeSSP7GbIMJ/ebEXXiEzb/nOj68LknH5Pxzb/AbZivmr6VE6TkTE8rTjRK9zhKpK6HsRA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: '>=5.16.0' + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 - eslint-plugin-promise@6.6.0: - resolution: {integrity: sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-plugin-secure-coding@5.4.16: + resolution: {integrity: sha512-9i2gGl0/ZgLm1T9MwKYSayvt1RmVIwA3EZJv2VDQNpN9aPdnGxIS3Ilxt2ModA3LUMUFIZqefMx0snjz/jn1oQ==} + engines: {node: '>=18.0.0'} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 + eslint: ^8.40.0 || ^9.0.0 || ^10.0.0 + recheck: ^4.5.0 + peerDependenciesMeta: + recheck: + optional: true - eslint-plugin-svelte@2.46.1: - resolution: {integrity: sha512-7xYr2o4NID/f9OEYMqxsEQsCsj4KaMy4q5sANaKkAb6/QeCjYFxRmDm2S3YC3A3pl1kyPZ/syOx/i7LcWYSbIw==} - engines: {node: ^14.17.0 || >=16.0.0} + eslint-plugin-svelte@3.23.0: + resolution: {integrity: sha512-n9jRklDqy0+W834568a4ZIZTK7DHXxvvHHxxGP8nNq7N//pOZMubttskHOquyGgfTR4Z05q2NdGNlsTpIEA48w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0-0 || ^9.0.0-0 + eslint: ^8.57.1 || ^9.0.0 || ^10.0.0 svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 peerDependenciesMeta: svelte: optional: true - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-utils@2.1.0: - resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} - engines: {node: '>=6'} - - eslint-utils@3.0.0: - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' - - eslint-visitor-keys@1.3.0: - resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} - engines: {node: '>=4'} - - eslint-visitor-keys@2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} + eslint-scope@8.4.0: + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint@8.57.1: - resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@5.0.1: + resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + eslint@9.39.5: + resolution: {integrity: sha512-DgZS62aPLXKlnxILS/AYCoRvHaZeXceIzlXPkkGGzJWSow1aEk0lbTlxUSlyjC8jcaKxAdOnTDz+o1JFSBsyjw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true esniff@2.0.1: resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==} engines: {node: '>=0.10'} - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + espree@10.4.0: + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} @@ -47374,10 +47417,6 @@ packages: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} @@ -47431,13 +47470,13 @@ packages: exif-parser@0.1.12: resolution: {integrity: sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==} - exit@0.1.2: - resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + exit-x@0.2.2: + resolution: {integrity: sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==} engines: {node: '>= 0.8.0'} - expect@29.7.0: - resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + expect@30.5.2: + resolution: {integrity: sha512-0LNuMvs8/5mRYhnCR4k+lGV7fqPMs6Bnksda4S3zsCUmdxBpAn4zU4NNzXdq1pMKe/H4W5t/zVIDSJ/H3e0vDA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} exponential-backoff@3.1.3: resolution: {integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==} @@ -47446,8 +47485,8 @@ packages: resolution: {integrity: sha512-wxUJn2vTHvj/kZCVmc5/bJO15C7aSMyHeuXYY3geKpeKibaAoQGcEv5+sM6nHS2T7VF+QHS4hTWPiY2mKofEdg==} engines: {node: '>=12.0.0'} - express-form-data@2.0.23: - resolution: {integrity: sha512-Efm2t+xL6vEqUPs4kAyBY9xG/8LGpbSVnnFLZw6HgdxHzSRlg2/sNlA2UdMlcIKMH+LDOn7NKXUDGJK125F4rw==} + express-form-data@3.0.1: + resolution: {integrity: sha512-olpFQnvwnQPUoE48X0eiv7WJDThAXS2jnFuhkViDkTECKdEFH+Vga3wghVyCbX67otcRziJb5qmJBEHi1EDm3A==} engines: {node: '>=10.7.0'} express-rate-limit@7.5.1: @@ -47463,6 +47502,10 @@ packages: resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} engines: {node: '>= 0.10.0'} + express@5.2.1: + resolution: {integrity: sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==} + engines: {node: '>= 18'} + exsolve@1.0.7: resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==} @@ -47480,15 +47523,6 @@ packages: extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - extract-zip@2.0.1: - resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} - engines: {node: '>= 10.17.0'} - hasBin: true - - extsprintf@1.4.1: - resolution: {integrity: sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==} - engines: {'0': node >=0.6.0} - fast-copy@3.0.2: resolution: {integrity: sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==} @@ -47531,6 +47565,9 @@ packages: resolution: {integrity: sha512-TBw6K/fxoQGGjCmZDw9w/ZwP3uDcnTM4YH/g+PFRWr8sbe5idXtxNN6vITh4+1ruCZaho6uBFurElsA7F0zzgw==} hasBin: true + fastdom@1.0.12: + resolution: {integrity: sha512-LB+xjSTEbjHE1cWsxu+tN2Xqr1kpi+V9aADI7sVM5ZMaXyYGPHULQMzpJMYqOTULK/73pUkWVzzObFRBkPr+hg==} + fastest-levenshtein@1.0.16: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} engines: {node: '>= 4.9.1'} @@ -47538,15 +47575,17 @@ packages: fastq@1.19.1: resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} - faye-websocket@0.11.4: - resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} - engines: {node: '>=0.8.0'} - fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - fd-slicer@1.1.0: - resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true fecha@4.2.3: resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} @@ -47561,9 +47600,9 @@ packages: file-api@0.10.4: resolution: {integrity: sha512-RVBXJGmsnQxokdpy264pmsdBjbUuxE6QT2xxhOrO2pzwTetbTNoWVFgkONFWmopm5mellsXrQIQhMY9fjufi9g==} - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} file-error@0.10.2: resolution: {integrity: sha512-hJsQ7sEz6dM4vuRS7cipKiixV6EymEXHe+TCf2XVWsGTOehzrmcqqKMgeYTmV24XhjWSj+pQj1e5yjPJ7DtQvw==} @@ -47606,6 +47645,10 @@ packages: resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} engines: {node: '>= 0.8'} + finalhandler@2.1.1: + resolution: {integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==} + engines: {node: '>= 18.0.0'} + find-up@3.0.0: resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} engines: {node: '>=6'} @@ -47618,9 +47661,9 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} flat@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} @@ -47666,8 +47709,8 @@ packages: resolution: {integrity: sha512-jqdObeR2rxZZbPSGL+3VckHMYtu+f9//KXBsVny6JSX/pa38Fy+bGjuG8eW/H6USNQWhLi8Num++cU2yOCNz4A==} engines: {node: '>= 0.12'} - form-data@4.0.4: - resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} + form-data@4.0.6: + resolution: {integrity: sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==} engines: {node: '>= 6'} formdata-node@4.4.1: @@ -47698,10 +47741,18 @@ packages: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} + fresh@2.0.0: + resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} + engines: {node: '>= 0.8'} + fs-extra@10.1.0: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} + fs-extra@11.3.1: + resolution: {integrity: sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==} + engines: {node: '>=14.14'} + fs-extra@11.3.2: resolution: {integrity: sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==} engines: {node: '>=14.14'} @@ -47714,21 +47765,12 @@ packages: resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} engines: {node: '>=10'} - fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} - fs-monkey@1.1.0: resolution: {integrity: sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==} fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -47744,11 +47786,6 @@ packages: functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - gauge@4.0.4: - resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - deprecated: This package is no longer supported. - gaxios@5.1.3: resolution: {integrity: sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA==} engines: {node: '>=12'} @@ -47830,22 +47867,24 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} - glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + glob-to-regex.js@1.3.1: + resolution: {integrity: sha512-zhWhMRsgnOym+1txhUmYJGD6eUsbUdrZv55gCYKuJX8t2p3+M8My23PD09bEIsreGUs5pnSa/idmcfp2/IlqGg==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' glob@10.4.5: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true + glob@13.0.6: + resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} + engines: {node: 18 || 20 || >=22} + glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported - glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - global-agent@3.0.0: resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} engines: {node: '>=10.0'} @@ -47853,14 +47892,18 @@ packages: global@4.4.0: resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==} - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} globals@15.15.0: resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} engines: {node: '>=18'} + globals@16.5.0: + resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==} + engines: {node: '>=18'} + globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} @@ -47869,9 +47912,8 @@ packages: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} - globby@13.2.2: - resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + globrex@0.1.2: + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} google-auth-library@8.9.0: resolution: {integrity: sha512-f7aQCJODJFmYWN6PeNKzgvy9LI2tYmXnzpNDHEjG5sDNPgGb2FXQyTBnXeSH+PAtpKESFD+LmHw3Ox3mN7e1Fg==} @@ -47906,9 +47948,6 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - graphql-binding@2.5.2: resolution: {integrity: sha512-CUDidmx/Ql6bB3Jz9owZK4TlSfD58/dJEXeGVPn6Zl0qrLjxZI+jhovxYw4ArU6cLG/NdadsSg62PlR1M6+reg==} hasBin: true @@ -47950,11 +47989,8 @@ packages: hachure-fill@0.5.2: resolution: {integrity: sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==} - handle-thing@2.0.1: - resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} - - handlebars@4.7.8: - resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + handlebars@4.7.10: + resolution: {integrity: sha512-P5VJMVM7qgBn6vjXMw8WG9uVI+ncf2pi72j4de4yz5ZULLj2RGqLYaKOYGsgyrViQ0tePOVlN1tDCCXXtFqXKg==} engines: {node: '>=0.4.7'} hasBin: true @@ -47981,9 +48017,6 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} - has-unicode@2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - hash-it@6.0.0: resolution: {integrity: sha512-KHzmSFx1KwyMPw0kXeeUD752q/Kfbzhy6dAZrjXV9kAIXGqzGvv8vhkUqj+2MGZldTo0IBpw6v7iWE7uxsvH0w==} @@ -47991,6 +48024,10 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + hasown@2.0.4: + resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} + engines: {node: '>= 0.4'} + he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true @@ -48018,9 +48055,6 @@ packages: resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} engines: {node: '>=10'} - hpack.js@2.1.6: - resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} - hpagent@0.1.2: resolution: {integrity: sha512-ePqFXHtSQWAFXYmj+JtOTHr84iNrII4/QRlAAPPE+zqnKy4xJo7Ie1Y4kC7AdB+LxLxSTTzBMASsEcy0q8YyvQ==} @@ -48028,9 +48062,6 @@ packages: resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} engines: {node: '>=18'} - html-entities@2.6.0: - resolution: {integrity: sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==} - html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} @@ -48059,8 +48090,12 @@ packages: resolution: {integrity: sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==} engines: {node: '>=8.0.0'} - htmlparser2@10.0.0: - resolution: {integrity: sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==} + htmlparser2@10.1.0: + resolution: {integrity: sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==} + + htmlparser2@12.0.0: + resolution: {integrity: sha512-Tz7u1i95/g2x2jz81+x0FBVhBhY5aRTvD3tXXdFaljuNdzDLJ8UGNRrTcj2cgQvAg3iW/h77Fz15nLW0L0CrZw==} + engines: {node: '>=20.19.0'} htmlparser2@3.10.1: resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==} @@ -48071,9 +48106,6 @@ packages: htmlparser2@8.0.2: resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} - htmlparser2@9.1.0: - resolution: {integrity: sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==} - http-assert@1.5.0: resolution: {integrity: sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==} engines: {node: '>= 0.8'} @@ -48081,17 +48113,6 @@ packages: http-cache-semantics@4.2.0: resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} - http-deceiver@1.2.7: - resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} - - http-errors@1.6.3: - resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} - engines: {node: '>= 0.6'} - - http-errors@1.7.3: - resolution: {integrity: sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==} - engines: {node: '>= 0.6'} - http-errors@1.8.1: resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==} engines: {node: '>= 0.6'} @@ -48100,29 +48121,17 @@ packages: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} - http-parser-js@0.5.10: - resolution: {integrity: sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==} - - http-proxy-agent@5.0.0: - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} - engines: {node: '>= 6'} + http-errors@2.0.1: + resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} + engines: {node: '>= 0.8'} http-proxy-agent@7.0.2: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} - http-proxy-middleware@2.0.9: - resolution: {integrity: sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@types/express': ^4.17.13 - peerDependenciesMeta: - '@types/express': - optional: true - - http-proxy@1.18.1: - resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} - engines: {node: '>=8.0.0'} + http-proxy-middleware@4.2.0: + resolution: {integrity: sha512-ZA+oNOoM+GLoFTIzhkJptVQov73Srep2LBqhF8hG8CIPKO3nam1jonXVQ/QUH8RbwsmaaVz2SOJdzBNBHNtKbw==} + engines: {node: ^22.15.0 || ^24.0.0 || >=26.0.0} http2-wrapper@1.0.3: resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} @@ -48140,6 +48149,9 @@ packages: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} + httpxy@0.5.5: + resolution: {integrity: sha512-uDjmnPyp1q4Sgzf3w+J/Fc6UqcCEj0x4Wjp7OqK5dGhNeDgpyrAmnS6ey8QWrX3SWDon2DMKf9sBa5X9+CVyMA==} + human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} @@ -48147,10 +48159,9 @@ packages: humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} - iconv-corefoundation@1.1.7: - resolution: {integrity: sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==} - engines: {node: ^8.11.2 || >=10} - os: [darwin] + hyperdyperid@1.2.0: + resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} + engines: {node: '>=10.18'} iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} @@ -48160,6 +48171,10 @@ packages: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} + iconv-lite@0.7.3: + resolution: {integrity: sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==} + engines: {node: '>=0.10.0'} + icss-utils@5.1.0: resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} @@ -48173,12 +48188,16 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} + ignore@7.0.12: + resolution: {integrity: sha512-/8UvqAPU9DGTI9k4mxtf49U37Isfwr8Uts96+SBHIkFxPJnHS0Ew4f00sM4Scd8V8EjM0jUNtVDdv1kPdt35lg==} + engines: {node: '>= 4'} + image-q@4.0.0: resolution: {integrity: sha512-PfJGVgIfKQJuq3s0tTDOKtztksibuUEbJQIYT3by6wctQo+Rdlh7ef4evJ5NCdxY4CfMbvFkocEwbl4BF8RlJw==} - image-size@1.2.1: - resolution: {integrity: sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==} - engines: {node: '>=16.x'} + image-size@2.0.4: + resolution: {integrity: sha512-QRUkFFsRV/6fuESxb9Vkq+a0LkSrgKXuc2NEqfikiXxxN/G3tjWt5EVUlMaImRBZRZK/jRBEbYvpPYZL8t08Zw==} + engines: {node: '>=18'} hasBin: true immediate@3.0.6: @@ -48208,9 +48227,6 @@ packages: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} - infer-owner@1.0.4: - resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} - inflation@2.1.0: resolution: {integrity: sha512-t54PPJHG1Pp7VQvxyVCJ9mBbjG3Hqryges9bXoOO6GExCPa+//i/d5GSuFtpx3ALLd7lgIAur6zrIlBQyJuMlQ==} engines: {node: '>= 0.8.0'} @@ -48219,9 +48235,6 @@ packages: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - inherits@2.0.3: - resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} - inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -48263,6 +48276,10 @@ packages: resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==} engines: {node: '>= 10'} + ipaddr.js@2.5.0: + resolution: {integrity: sha512-aq+t5NAc+cS6rZQQVWC2x98CPqGtKKTMDd4Gaodv0wShnItdKg/51djkGJ1hqH+Oy0ivDftCbSLCQob8zso01w==} + engines: {node: '>= 10'} + is-array-buffer@3.0.5: resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} engines: {node: '>= 0.4'} @@ -48296,10 +48313,6 @@ packages: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - is-ci@3.0.1: - resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} - hasBin: true - is-class-hotfix@0.0.6: resolution: {integrity: sha512-0n+pzCC6ICtVr/WXnN2f03TK/3BfXY7me4cjCAqT8TYXEl0+JBRoqBo94JJHXcyDSLUeWbNX8Fvy5g5RJdAstQ==} @@ -48315,9 +48328,9 @@ packages: resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} engines: {node: '>= 0.4'} - is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} hasBin: true is-extglob@2.1.1: @@ -48359,12 +48372,14 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} - is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} + is-in-ssh@1.0.0: + resolution: {integrity: sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==} + engines: {node: '>=20'} - is-lambda@1.0.1: - resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true is-map@2.0.3: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} @@ -48374,6 +48389,10 @@ packages: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} + is-network-error@1.3.2: + resolution: {integrity: sha512-PhBY86zaxNZUuWP6h13Vu5oFe0XY6/UlKzQnYFELzGVHygP3MxmvTfYSG7GN3aIab/iWudSMgjSnG9Dq+nHrgA==} + engines: {node: '>=16'} + is-number-object@1.1.1: resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} engines: {node: '>= 0.4'} @@ -48386,17 +48405,13 @@ packages: resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} engines: {node: '>=8'} - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - is-plain-obj@1.1.0: resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} engines: {node: '>=0.10.0'} - is-plain-obj@3.0.0: - resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} - engines: {node: '>=10'} + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} is-plain-object@2.0.4: resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} @@ -48413,6 +48428,9 @@ packages: is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + is-promise@4.0.0: + resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} + is-reference@3.0.3: resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==} @@ -48457,10 +48475,6 @@ packages: is-typedarray@1.0.0: resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} - is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - is-unsafe@2.0.2: resolution: {integrity: sha512-HgbIHPBH0KHHCcjLfGsCvhtPTVxjaAZlXjwdz7/GQC40SjSe4sfQsar8J5VFo8JOSbarkpV0OLG95bbaNd9aAQ==} @@ -48476,9 +48490,9 @@ packages: resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} engines: {node: '>= 0.4'} - is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} + is-wsl@3.1.1: + resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==} + engines: {node: '>=16'} isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} @@ -48497,6 +48511,14 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + isexe@3.1.5: + resolution: {integrity: sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==} + engines: {node: '>=18'} + + isexe@4.0.0: + resolution: {integrity: sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==} + engines: {node: '>=20'} + isobject@3.0.1: resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} engines: {node: '>=0.10.0'} @@ -48515,10 +48537,6 @@ packages: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} - istanbul-lib-instrument@5.2.1: - resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} - engines: {node: '>=8'} - istanbul-lib-instrument@6.0.3: resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} engines: {node: '>=10'} @@ -48527,8 +48545,8 @@ packages: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} - istanbul-lib-source-maps@4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + istanbul-lib-source-maps@5.0.6: + resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} engines: {node: '>=10'} istanbul-reports@3.2.0: @@ -48546,17 +48564,17 @@ packages: engines: {node: '>=10'} hasBin: true - jest-changed-files@29.7.0: - resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-changed-files@30.5.1: + resolution: {integrity: sha512-0+bvMM/ENhDI29Z8q1r4HxiDIi4G5tnBmSw4esfPQoj9q8Nik7KIyuxHkTVnnniJQf05SxpGaKDQ+4h28ynGPg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-circus@29.7.0: - resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-circus@30.5.2: + resolution: {integrity: sha512-vffFgjs5JSJ9q4ds1vNW3klKYPJfYfIY61LT/zaZgvTeASJOWZUt8LBfHgIcV4rwxlPBLl/ePBGccHEclS4PlQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-cli@29.7.0: - resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-cli@30.5.2: + resolution: {integrity: sha512-YYYxUUVjFgPvgEleKNKMaYGIFgR3l3832Cl0kRL/oCiDZ03v7wImUtquHl2OOBCCNgprjZgBN5bczS/JklPBDg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -48564,32 +48582,35 @@ packages: node-notifier: optional: true - jest-config@29.7.0: - resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-config@30.5.2: + resolution: {integrity: sha512-U6221OZekabePvGcGPf4raIBKMvYQWFHvhobDJRojOYaFMj2HaGytAdknjDhYc6JTz2fdHW9+6k0wWUDaNeOFQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: '@types/node': '*' + esbuild-register: '>=3.4.0' ts-node: '>=9.0.0' peerDependenciesMeta: '@types/node': optional: true + esbuild-register: + optional: true ts-node: optional: true - jest-diff@29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-diff@30.5.2: + resolution: {integrity: sha512-rBtHnI6BWTiWj3lM7fOLVfChx7R9B0u9VV3PRHawKs79x6ZjW1QoSrKenaigNGWlvhtoi2BqvDbABDie+Os3xQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-docblock@29.7.0: - resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-docblock@30.5.0: + resolution: {integrity: sha512-NwDqcxtoZi33RhuW+zJS/RVA3rmheQ8BnwpYZuc/Eruaz6seQb7+aoCeDZu/3X7W2XmD8DbSo9Pn72DbKsBFYw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-each@29.7.0: - resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-each@30.5.2: + resolution: {integrity: sha512-GRrW+7fmmgmkvyfEBqc1QFdWnF1Ex5yG6Y6AWL4TTxnkWlKIT98dsKh3P3UuWm6v4XsQwVE6DEzXIPMzWJ3ZbA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-environment-jsdom@30.2.0: - resolution: {integrity: sha512-zbBTiqr2Vl78pKp/laGBREYzbZx9ZtqPjOK4++lL4BNDhxRnahg51HtoDrk9/VjIy9IthNEWdKVd7H5bqBhiWQ==} + jest-environment-jsdom@30.5.2: + resolution: {integrity: sha512-6NOZjEP+WNi4WXjbxb/1ROnfaMxn6Dhqu6uSC22o0H28z+uppejs/jZ9KCVoLepqqoCjcNZujtzQqC9jSV15jg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: canvas: ^3.0.0 @@ -48597,109 +48618,80 @@ packages: canvas: optional: true - jest-environment-node@29.7.0: - resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-environment-node@30.5.2: + resolution: {integrity: sha512-Ciz4KgTGIbojxSKpuFImgWJj5EyqfE8xMq9NxWmOXnQywHHS03H9Mv+vaCB29J5pr3JBrY27WbRV18rBdjh8Dg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-fetch-mock@3.0.3: resolution: {integrity: sha512-Ux1nWprtLrdrH4XwE7O7InRY6psIi3GOsqNESJgMJ+M5cv4A8Lh7SN9d2V2kKRZ8ebAfcd1LNyZguAOb6JiDqw==} - jest-get-type@29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-haste-map@29.7.0: - resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-leak-detector@29.7.0: - resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-matcher-utils@29.7.0: - resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-message-util@29.7.0: - resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-message-util@30.2.0: - resolution: {integrity: sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==} + jest-haste-map@30.5.1: + resolution: {integrity: sha512-VIFgt67jW480YDxKfEv9IYQKrFpYt7bOCMn3VsnjK7AK9qo7p6acpnA1DHwsVOULE3dTaYew/6JaTD/d0VDHoQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-mock@29.7.0: - resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-mock@30.2.0: - resolution: {integrity: sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==} + jest-leak-detector@30.5.1: + resolution: {integrity: sha512-gt4GT2aWgEoCNTcBe4rqS74xTIUJxi+UD9SNSu9aOk5LmTEd6fS5KSTmAKAfitCCktQHNN+upUuL6EkBfFbMDQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-pnp-resolver@1.2.3: - resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true + jest-matcher-utils@30.5.2: + resolution: {integrity: sha512-lFkB365PTIHOhPzwrb9T6gvlDnPpOZ7/c3ewOKKB7bzztqjVrtlyRL2MkyfJXpyY2u2SKw001JKrTx14fBUFcQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-regex-util@29.6.3: - resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-message-util@30.5.1: + resolution: {integrity: sha512-UdQlLdd9wL/Ys7xRErckqwD6wPlSZYueosSWuHc1r2ztGLwlgPvtSJq2+BPEgaEY13WLvfFbmhTj8pba0Sd1jg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-regex-util@30.0.1: - resolution: {integrity: sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==} + jest-mock@30.5.2: + resolution: {integrity: sha512-KTHb37Fhj8xY8qPFvTFaFJHcdsumQp+ExsUlgoX232Agmc706gagBs53+CYvulV7MVQo9AgXOUxsqzzVBoJlrA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-resolve-dependencies@29.7.0: - resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-regex-util@30.5.0: + resolution: {integrity: sha512-Mg0WK7A6xRHLSA1udJ8y9f3lM0uUhFTBnLKzwPmqB9AylvpleJ6BLemR8K9dK27DY+cesDryoA7yLZCAHsPG1A==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-resolve@29.7.0: - resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-resolve-dependencies@30.5.2: + resolution: {integrity: sha512-GMI0DP5enX9Z2qW2zFy1bOkrCfWAOPRJQ7qHt0pdfrxBPsgWxglMPrRSK2TX/wRWYxcPRSLFg3Z88qPOzHx7FQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-runner@29.7.0: - resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-resolve@30.5.1: + resolution: {integrity: sha512-wprhLejRtwN6h8ZgaqC0eYjGJ1uMdGPT/+b3eFncbG4NWuuP9QL+vWwRinu9waw7hkOLcpMJGVJAMgBwsPssMQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-runtime@29.7.0: - resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-runner@30.5.2: + resolution: {integrity: sha512-/B6px7hiiNhVSRwuv9AGn0nawYvwsHeQZ3ItTd5Gp2diFd0EOKaWVeWqcbw3L88vx1GfpCKjQkxWItZCTl11Rw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-snapshot@29.7.0: - resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-runtime@30.5.2: + resolution: {integrity: sha512-0paUAHBlheai10A3XSy9Xh+YBG0IROy+/qzcDPzQ/nbbXrznQzeWy5qniICWK6d3W3scaRQCVAbXdcK0ibBq4w==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-util@29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-snapshot@30.5.2: + resolution: {integrity: sha512-jKIdes25AnAH73dOCi2qE6J6vHJ6L2vyBS11M89kT50DVJcLTf2AOjvcc+2vVaN8lUbY5v2R83aqXo3Ro9fqYA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-util@30.2.0: - resolution: {integrity: sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==} + jest-util@30.5.1: + resolution: {integrity: sha512-yKuxmNy2rSbTXw+3SIPanJo+nV4/BS1p26v44IYBFMsswSQySfMMcPHErnOncda7i9HEz0q605rIhSTBVgrZTg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-validate@29.7.0: - resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-validate@30.5.1: + resolution: {integrity: sha512-i/buJ56wTpxihE93hQYNMfdOThS87+HGvLZzZJmU4xggPcdTYQq051iwALLCHp3q+SkCGH+EFejQZz5EbBSkkg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-watcher@29.7.0: - resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-watcher@30.5.2: + resolution: {integrity: sha512-rqRgg4R11GA9m1UsEZwQeixHsgZReCn6TOHAHtIH33yXrIvoX0OGPA20Yzzjkz7X40fZvcRSxEpQppYPcWzmcQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-worker@27.5.1: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} - jest-worker@29.7.0: - resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-worker@30.5.1: + resolution: {integrity: sha512-Cbxh5v7AoLuFRmFJSM4/aHdQ68rjXvUWr716EE0Dh3I7T+T/3FgFKhOERGXHcU2Meftq9+9zxPM3TSNyI9D+HA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest@29.7.0: - resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest@30.5.2: + resolution: {integrity: sha512-3gnpdBIza8ijCl3iMV9ChE3hSt1+46865qqod863gQtJr1DixOkAU5DoGbi3u+XlRcw++BhZQMu/y4xBdHBvSQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -48714,6 +48706,10 @@ packages: resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} hasBin: true + jiti@2.7.0: + resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} + hasBin: true + jose@4.15.9: resolution: {integrity: sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==} @@ -48739,8 +48735,12 @@ packages: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + js-yaml@4.3.2: + resolution: {integrity: sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==} + hasBin: true + + js-yaml@5.4.3: + resolution: {integrity: sha512-yzzNtgczwgoVHNigCyKTXcQJU4Y8t/ikU4UxXW0BvrLfHTGWZhsNcOT2s/a7vn81/4KqVnNmHjaUEPlvWnNwVw==} hasBin: true jsdom@26.1.0: @@ -48833,6 +48833,10 @@ packages: resolution: {integrity: sha512-woHRUZ/iF23GBP1dkDQMh1QBad9dmr8/PAwNA54VrSOVYgI12MAcE14TqnDdQOdzyEonGzMepYnqBMYdsoAr8Q==} hasBin: true + katex@0.16.47: + resolution: {integrity: sha512-Eeo8Ys1doU1z+x8AZsPpQu+p/QcZBI5PeOo7QGQdy2x2m0MU/hYagBbGOmXwr5KVbEfVuWv9LpnQWeehogurjg==} + hasBin: true + keygrip@1.1.0: resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} engines: {node: '>= 0.6'} @@ -48848,16 +48852,12 @@ packages: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} - kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} - known-css-properties@0.35.0: - resolution: {integrity: sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==} + known-css-properties@0.37.0: + resolution: {integrity: sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==} koa-bodyparser@4.4.1: resolution: {integrity: sha512-kBH3IYPMb+iAXnrxIhXnW+gXV8OTzCu8VPDqvcDHW9SQrbkHmqPQtiZwrltNmSq6/lpipHnT7k7PsjlVD7kK0w==} @@ -48893,12 +48893,11 @@ packages: kuler@2.0.0: resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} - langium@3.3.1: - resolution: {integrity: sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w==} - engines: {node: '>=16.0.0'} + launch-editor@2.14.2: + resolution: {integrity: sha512-NHJEb30MGBCkmZXLZwz25t37QR4aY03ZzPYUJXOJaOa92uWwExI9SBQUuIznBYc1xkD7cJNGX7oc3Nl3sq2kQQ==} - launch-editor@2.12.0: - resolution: {integrity: sha512-giOHXoOtifjdHqUamwKq6c49GzBdLjvxrd2D+Q4V6uOHopJv7p9VJxikDsQ/CBXZbEITgUqSVHXLTG3VhPP1Dg==} + launder@1.7.2: + resolution: {integrity: sha512-DLg3HPnHUfBi5/MxMLmJD12dmlMpFEC2HgMW6vkZ/9JR0RU00kXoRGvDxAvFmdO0o610OA77i4FgNTLucmhDVg==} layout-base@1.0.2: resolution: {integrity: sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==} @@ -48975,10 +48974,6 @@ packages: load-bmfont@1.4.2: resolution: {integrity: sha512-qElWkmjW9Oq1F9EI5Gt7aD9zcdHb9spJCW1L/dmPf7KzCCEJxq8nhHz5eCgI9aMf7vrG/wyaCqdsI+Iy9ZTlog==} - loader-runner@4.3.1: - resolution: {integrity: sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==} - engines: {node: '>=6.11.5'} - loader-utils@1.4.2: resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==} engines: {node: '>=4.0.0'} @@ -49110,10 +49105,6 @@ packages: lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} - logform@2.7.0: resolution: {integrity: sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==} engines: {node: '>= 12.0.0'} @@ -49152,10 +49143,6 @@ packages: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} - lru-cache@7.18.3: - resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} - engines: {node: '>=12'} - machina@7.0.1: resolution: {integrity: sha512-0Xkgs8NeBvO2hW6bjJT8ewLWrMfh1haMPstaghpASWjXkLjRhtDiaJG1Kb7mslaOHxZYxpH7PIjpmirRVYbMMA==} engines: {node: '>=22.22'} @@ -49173,13 +49160,6 @@ packages: make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - make-fetch-happen@10.2.1: - resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - makeerror@1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} - mammoth@1.11.0: resolution: {integrity: sha512-BcEqqY/BOwIcI1iR5tqyVlqc3KIaMRa4egSoK83YAVrBf6+yqdAAbtUcFDCWX8Zef8/fgNZ6rl4VUv+vVX8ddQ==} engines: {node: '>=12.0.0'} @@ -49230,6 +49210,10 @@ packages: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} + media-typer@1.1.1: + resolution: {integrity: sha512-yz3xRaG20c6/BOzvYoDaGtPmGscs7YivItZEEqe6GbwNfHuxu9YNmvnEkMzKldAGY4/80pRcQRZSEnhquk9XuQ==} + engines: {node: '>= 0.8'} + mem@4.3.0: resolution: {integrity: sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==} engines: {node: '>=6'} @@ -49238,12 +49222,19 @@ packages: resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} engines: {node: '>= 4.0.0'} + memfs@4.80.0: + resolution: {integrity: sha512-N70W2isi44XdGn7uPo9NJ4zRukcdkwSFHlnYx42SWOH/+hzqNc8P7+tVoA2up4z7faHvNi1RSNCFjxoYQ71VPQ==} + memory-pager@1.5.0: resolution: {integrity: sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==} merge-descriptors@1.0.3: resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} + merge-descriptors@2.0.0: + resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==} + engines: {node: '>=18'} + merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -49251,8 +49242,8 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - mermaid@11.12.1: - resolution: {integrity: sha512-UlIZrRariB11TY1RtTgUWp65tphtBv4CSq7vyS2ZZ2TgoMjs2nloq+wFqxiwcxlhHUvs7DPGgMjs2aeQxz5h9g==} + mermaid@11.17.2: + resolution: {integrity: sha512-V6K3C8EBdEsPFZXSKMJe6ppQOENxuHARr9GvHX4hh47lAbhMRD9qf4oEK7LoaRQxULMa80/qt5gHO73aCleBBg==} methods@1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} @@ -49274,6 +49265,10 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} + mime-types@3.0.2: + resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} + engines: {node: '>=18'} + mime@1.6.0: resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} engines: {node: '>=4'} @@ -49321,21 +49316,20 @@ packages: minimalistic-assert@1.0.1: resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} - minimatch@10.1.1: - resolution: {integrity: sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==} - engines: {node: 20 || >=22} + minimatch@10.2.6: + resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==} + engines: {node: 18 || 20 || >=22} minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@3.1.5: + resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} + minimatch@5.1.6: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} - minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} - minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} @@ -49343,45 +49337,72 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + minimizer-webpack-plugin@5.13.0: + resolution: {integrity: sha512-OO1NF2zHj6sf4CNv2AsUWYcS8WEwkVKQDXxxKzlOxx1Xl+WlqYtVC+oNlGNwGkLAOnpj277BSHypWwRtd9w4JQ==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@minify-html/node': '*' + '@napi-rs/image': '*' + '@swc/core': '*' + '@swc/css': '*' + '@swc/html': '*' + clean-css: '*' + cssnano: '*' + csso: '*' + esbuild: '*' + html-minifier-terser: '*' + imagemin: '*' + lightningcss: '*' + postcss: '*' + sharp: '*' + svgo: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@minify-html/node': + optional: true + '@napi-rs/image': + optional: true + '@swc/core': + optional: true + '@swc/css': + optional: true + '@swc/html': + optional: true + clean-css: + optional: true + cssnano: + optional: true + csso: + optional: true + esbuild: + optional: true + html-minifier-terser: + optional: true + imagemin: + optional: true + lightningcss: + optional: true + postcss: + optional: true + sharp: + optional: true + svgo: + optional: true + uglify-js: + optional: true + minio@8.0.7: resolution: {integrity: sha512-E737MgufW8CeQAsTAtnEMrxZ9scMSf29kkhZoXzDTKj/Jszzo2SfeZUH9wbDQH2Rsq6TCtl/yQL0+XdVKZansQ==} engines: {node: ^16 || ^18 || >=20} - minipass-collect@1.0.2: - resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} - engines: {node: '>= 8'} - - minipass-fetch@2.1.2: - resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - minipass-flush@1.0.5: - resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} - engines: {node: '>= 8'} - - minipass-pipeline@1.2.4: - resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} - engines: {node: '>=8'} - - minipass-sized@1.0.3: - resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} - engines: {node: '>=8'} - - minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} - - minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} - minipass@7.1.2: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} - minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} + engines: {node: '>=16 || 14 >=14.17'} minizlib@3.1.0: resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} @@ -49450,8 +49471,8 @@ packages: socks: optional: true - morgan@1.10.1: - resolution: {integrity: sha512-223dMRJtI/l25dJKWpgij2cMtywuG/WiUKXdvwfbhGKBhy1puASqXwFzmWZ7+K73vUPoR7SS2Qz2cI/g9MKw0A==} + morgan@1.12.1: + resolution: {integrity: sha512-tljKC0ex20AjO58Ob/eZ53JloycbVswbVNCHx6V6VLGzqt/w8dIynVGL0G8qVjNKwiA7sYSogCrN6QtJ82IV+g==} engines: {node: '>= 0.8.0'} mri@1.2.0: @@ -49486,11 +49507,16 @@ packages: mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - nanoid@3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + nanoid@3.3.20: + resolution: {integrity: sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + napi-postinstall@0.3.4: + resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + hasBin: true + natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -49502,6 +49528,10 @@ packages: resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} engines: {node: '>= 0.6'} + negotiator@1.1.0: + resolution: {integrity: sha512-NMPBRMJgiQHjbd8phG3Vebdx4kZ1H121rbl5IkMqeOsahptB9BKo/d7oJ3zTXqTgagn2bWlNSXkh0QUGM31RYg==} + engines: {node: '>=18'} + neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} @@ -49514,16 +49544,13 @@ packages: no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} - node-abi@3.80.0: - resolution: {integrity: sha512-LyPuZJcI9HVwzXK1GPxWNzrr+vr8Hp/3UqlmWxxh8p54U1ZbclOqbSog9lWHaCX+dBaiGi6n/hIX+mKu74GmPA==} - engines: {node: '>=10'} + node-abi@4.36.0: + resolution: {integrity: sha512-zrvE1Qy5ElbZVqmJFSiNfwzNZzUCepasgp/4dw0Z0fsn40LJkAk9FA9oMh2SKMeNFRRe/3IfeOKvWwWr8u4SmQ==} + engines: {node: '>=22.12.0'} node-abort-controller@3.1.1: resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} - node-addon-api@1.7.2: - resolution: {integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==} - node-addon-api@7.1.1: resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} @@ -49548,8 +49575,8 @@ packages: resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + node-forge@1.4.0: + resolution: {integrity: sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==} engines: {node: '>= 6.13.0'} node-gyp-build-optional-packages@5.2.2: @@ -49560,9 +49587,9 @@ packages: resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} hasBin: true - node-gyp@9.4.1: - resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==} - engines: {node: ^12.13 || ^14.13 || >=16} + node-gyp@12.4.0: + resolution: {integrity: sha512-OMcPNvqTCFUnNaBlmdgq+lfNqY7gTiSmNRDjY3uAXRyudeKZEZxu3CLtjMQrx4zZxCX2b/mpNqTtwuCJgXhHkw==} + engines: {node: ^20.17.0 || >=22.9.0} hasBin: true node-int64@0.4.0: @@ -49586,24 +49613,24 @@ packages: resolution: {integrity: sha512-Uzmd6LXpouKo8EUK68IjH4+E01w/hXyV3R3g/geCJo+rXLNfh1xucB+LOzYEOQPSiUK3h/xZf0cQGcSsmyL2Og==} engines: {node: '>=18'} - nodemailer@6.10.1: - resolution: {integrity: sha512-Z+iLaBGVaSjbIzQ4pX6XV41HrooLsQ10ZWPUehGmuantvzWoDVBnmsdUcOIDM1t+yPor5pDhVlDESgOMEGxhHA==} + nodemailer@9.1.1: + resolution: {integrity: sha512-izw9mVKFix6YSnC9eLgV6g1opl9DUlRio9ZNcq+Wu9Ujn2UwF+8Nl0B8nz22kEC+CTZCvinkxwJ0DeFbb6NwcQ==} engines: {node: '>=6.0.0'} nopt@1.0.10: resolution: {integrity: sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==} hasBin: true - nopt@6.0.0: - resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - hasBin: true - nopt@8.1.0: resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} engines: {node: ^18.17.0 || >=20.5.0} hasBin: true + nopt@9.0.0: + resolution: {integrity: sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -49624,11 +49651,6 @@ packages: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} - npmlog@6.0.2: - resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - deprecated: This package is no longer supported. - nth-check@1.0.2: resolution: {integrity: sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==} @@ -49685,15 +49707,12 @@ packages: resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} - obuf@1.1.2: - resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} - octokit@3.2.2: resolution: {integrity: sha512-7Abo3nADdja8l/aglU6Y3lpnHSfv0tw7gFPiqzry/yCU+2gTAX7R1roJ8hJrxIK+S1j+7iqRJXtmuHJ/UDsBhQ==} engines: {node: '>= 18'} - oembed-providers@1.0.20260106: - resolution: {integrity: sha512-u1mNQgfTuuY3ydQDN7G7MnlCVlqM5fhgVxNc6VQTnEIq/OkLPtBaFK0ADvkRciVNLEa/j925jUR30kFVHN2WtQ==} + oembed-providers@1.0.20260604: + resolution: {integrity: sha512-/eSnxfKGDs35gyiPSepvxPNCRo4lV5WzTXmi527lfupMDmxi51k1HcRub/RJyqwUSc2ojsCyrh91M+NwESb+DQ==} oidc-token-hash@5.2.0: resolution: {integrity: sha512-6gj2m8cJZ+iSW8bm0FXdGF0YhIQbKrfP4yWTNzxc31U6MOjfEmB1rHvlYvxI1B7t7BCi1F2vYTT6YhtQRG4hxw==} @@ -49702,10 +49721,6 @@ packages: omggif@1.0.10: resolution: {integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==} - on-finished@2.3.0: - resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} - engines: {node: '>= 0.8'} - on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} @@ -49727,9 +49742,9 @@ packages: only@0.0.2: resolution: {integrity: sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==} - open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} + open@11.0.4: + resolution: {integrity: sha512-++Zlftm0kVLPmzC06t6epuWmcRMDbI4z5P3NNX979WA/k23+NtSOynEGzsVfZwguKw2mi5umVgnBlJQMwRz4Pg==} + engines: {node: '>=20'} openai@4.104.0: resolution: {integrity: sha512-p99EFNsA/yX6UhVO93f5kJsDRLAg+CTA2RBqdHK4RtK8u5IJw32Hyb2dTGKbnnFmnuoBv5r7Z2CURI9sGZpSuA==} @@ -49757,10 +49772,6 @@ packages: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} - ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} - orderedmap@2.1.1: resolution: {integrity: sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==} @@ -49815,17 +49826,13 @@ packages: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} - p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} - p-queue@7.3.4: resolution: {integrity: sha512-esox8CWt0j9EZECFvkFl2WNPat8LN4t7WWeXq73D9ha0V96qPRufApZi4ZhPwXAln1uVVal429HVVKPa2X0yQg==} engines: {node: '>=12'} - p-retry@4.6.2: - resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} - engines: {node: '>=8'} + p-retry@8.0.1: + resolution: {integrity: sha512-NAigyu8hfvJe7MsS18mnc4is0MZtau3QMdBklaJKK23oBQb6occO3UPM3vHmTckW8KhfyjMZaUOqdTFEYliHgg==} + engines: {node: '>=22'} p-timeout@4.1.0: resolution: {integrity: sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw==} @@ -49961,12 +49968,19 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} + path-scurry@2.0.2: + resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} + engines: {node: 18 || 20 || >=22} + path-to-regexp@0.1.12: resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} path-to-regexp@6.3.0: resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} + path-to-regexp@8.4.2: + resolution: {integrity: sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==} + path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -49980,13 +49994,9 @@ packages: pdf-lib@1.17.1: resolution: {integrity: sha512-V/mpyJAoTsN4cnP31vc0wfNA1+p20evqqnap0KLoRUN0Yk/p3wN52DOEsL4oBFcLdb76hlpKPtzJIgo67j/XLw==} - pdfjs-dist@2.12.313: - resolution: {integrity: sha512-1x6iXO4Qnv6Eb+YFdN5JdUzt4pAkxSp3aLAYPX93eQCyg/m7QFzXVWJHJVtoW48CI8HCXju4dSkhQZwoheL5mA==} - peerDependencies: - worker-loader: ^3.0.8 - peerDependenciesMeta: - worker-loader: - optional: true + pdfjs-dist@6.2.108: + resolution: {integrity: sha512-YxFb+SQcodN2rnX9Tn3dHYlqfb7NjlzzfONPpJd+AKoKtUjEdevTfbC07d5TcczzOK6261auRkP/M8OBHs9vFQ==} + engines: {node: '>=22.13.0 || >=24'} pe-library@0.4.1: resolution: {integrity: sha512-eRWB5LBz7PpDu4PUlwT0PhnQfTQJlDDdPa35urV4Osrm0t0AqQFGn+UIkU3klZvwJ8KPO3VbBFsXquA6p6kqZw==} @@ -49999,9 +50009,6 @@ packages: resolution: {integrity: sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==} engines: {node: '>=8'} - pend@1.2.0: - resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} - performance-now@2.1.0: resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} @@ -50039,6 +50046,10 @@ packages: resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} + picomatch@4.0.7: + resolution: {integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==} + engines: {node: '>=12'} + pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} @@ -50065,14 +50076,18 @@ packages: resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} engines: {node: '>=8'} - playwright-core@1.56.1: - resolution: {integrity: sha512-hutraynyn31F+Bifme+Ps9Vq59hKuUCz7H1kDOcBs+2oGguKkWTU50bBWrtz34OUWmIwpBTWDxaRPXrIXkgvmQ==} - engines: {node: '>=18'} + pkijs@3.4.1: + resolution: {integrity: sha512-Oo/NZcSWccq8KyoG7gLE9fnltgHns+pNCjCAp/WmjsUySi+sX7y4z4Xqu4fVb42CDHzRPl33fjzT15V1wvcyhA==} + engines: {node: '>=16.0.0'} + + playwright-core@1.63.0: + resolution: {integrity: sha512-rYCsBF/M5HjUch52bbtVONEFjv6Xu8sm8h72dNlR5bzIE1fvC/bxgspzkjSfU+MweEMmPM8KJebG6nnyxo5mCg==} + engines: {node: '>=20'} hasBin: true - playwright@1.56.1: - resolution: {integrity: sha512-aFi5B0WovBHTEvpM3DzXTUaeN6eN0qWnTkKx4NQaH4Wvcmc153PdaY2UBdSYKaGYw+UyWXSVyxDUg5DoPEttjw==} - engines: {node: '>=18'} + playwright@1.63.0: + resolution: {integrity: sha512-+7ziBLidS4NaNCdt57SUDT+wYmmd5fmiQejUic/kb+YsYSCPyOOE9sebzMjNmQrsnNpDJqd4WHvV/8lfKfUDUg==} + engines: {node: '>=20'} hasBin: true plist@3.1.0: @@ -50176,11 +50191,11 @@ packages: peerDependencies: postcss: ^8.2.14 - postcss-safe-parser@6.0.0: - resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} - engines: {node: '>=12.0'} + postcss-safe-parser@7.1.0: + resolution: {integrity: sha512-1WzZxRLaAFwEh6Do+zyGpjWV3nGJNxxhuh7Ubu/q1ICImMgZJnLwhoaEpRbG4pJppp2Y1ncL9ffA2f+LhrefQg==} + engines: {node: '>=18.0'} peerDependencies: - postcss: ^8.3.3 + postcss: ^8.4.31 postcss-scss@4.0.9: resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} @@ -50199,8 +50214,12 @@ packages: postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.5.6: - resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + postcss@8.5.16: + resolution: {integrity: sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==} + engines: {node: ^10 || ^12 || >=14} + + postcss@8.5.28: + resolution: {integrity: sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A==} engines: {node: ^10 || ^12 || >=14} postgres-array@2.0.0: @@ -50223,6 +50242,14 @@ packages: resolution: {integrity: sha512-Jtc2612XINuBjIl/QTWsV5UvE8UHuNblcO3vVADSrKsrc6RqGX6lOW1cEo3CM2v0XG4Nat8nI+YM7/f26VxXLw==} engines: {node: '>=12'} + postgres@3.4.9: + resolution: {integrity: sha512-GD3qdB0x1z9xgFI6cdRD6xu2Sp2WCOEoe3mtnyB5Ee0XrrL5Pe+e4CCnJrRMnL1zYtRDZmQQVbvOttLnKDLnaw==} + engines: {node: '>=12'} + + powershell-utils@0.2.1: + resolution: {integrity: sha512-C+y9x90UElAddDZmV4qOx9W53B61PO7cIqWz2dQsWlwswuq4mr8NEwytdGKboYbQlGZ3awrkTeNvcZiZNHnQ8A==} + engines: {node: '>=20'} + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -50241,19 +50268,23 @@ packages: pretty-error@4.0.0: resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} - pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - pretty-format@30.2.0: resolution: {integrity: sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + pretty-format@30.5.1: + resolution: {integrity: sha512-byhRAPguVKMQIj4kjJwJ5lAskVhfuiSdiYl/aLTWpgkGEmic2jYhJh1yE9ih8Ox44Xg9ccCT11/S6QrzSJuNrg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + printj@1.1.2: resolution: {integrity: sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==} engines: {node: '>=0.8'} hasBin: true + proc-log@6.1.0: + resolution: {integrity: sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==} + engines: {node: ^20.17.0 || >=22.9.0} + process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -50265,9 +50296,6 @@ packages: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} - promise-inflight@1.0.1: - resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} - promise-polyfill@8.3.0: resolution: {integrity: sha512-H5oELycFml5yto/atYqmjyigJoAo3+OXwolYiH7OfQuYlAqhxNvTfiNMbV9hsC6Yp83yE5r2KTVmtrG6R9i6Pg==} @@ -50275,10 +50303,6 @@ packages: resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} engines: {node: '>=10'} - prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - proper-lockfile@4.1.2: resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==} @@ -50380,24 +50404,27 @@ packages: engines: {node: '>=22.12.0'} hasBin: true - pure-rand@6.1.0: - resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} + pure-rand@7.0.1: + resolution: {integrity: sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==} + + pvtsutils@1.3.6: + resolution: {integrity: sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==} + + pvutils@1.2.0: + resolution: {integrity: sha512-BbubeCEyTuQjVMakvJQ/Sxbc93F2pwmbsxONT/ZRrwU7Ua38d8unYTwXpTVLAKJ4BDuH9IGztCjQcd/N/39Dvg==} + engines: {node: '>=16.0.0'} qrcode@1.5.4: resolution: {integrity: sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==} engines: {node: '>=10.13.0'} hasBin: true - qs@6.11.2: - resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} - engines: {node: '>=0.6'} - qs@6.13.0: resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} - qs@6.5.3: - resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} + qs@6.16.0: + resolution: {integrity: sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA==} engines: {node: '>=0.6'} quansync@0.2.11: @@ -50413,9 +50440,6 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - queue@6.0.2: - resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} - quick-lru@5.1.1: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} @@ -50431,13 +50455,14 @@ packages: resolution: {integrity: sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==} engines: {node: '>= 0.8'} - randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - range-parser@1.2.1: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} + range-parser@1.3.0: + resolution: {integrity: sha512-hek2mFQpPuI4E1BBKrSto+BU3e3x4xuarsbiwr3+lf7p44juvFMV0XFWQAP3xUyqXA4RrXLIoaSUGbSt056ZMw==} + engines: {node: '>= 0.6'} + rangetouch@2.0.1: resolution: {integrity: sha512-sln+pNSc8NGaHoLzwNBssFSf/rSYkqeBXzX1AtJlkJiUaVSJSbRAWJk+4omsXkN+EJalzkZhWQ3th1m0FpR5xA==} @@ -50445,9 +50470,16 @@ packages: resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} engines: {node: '>= 0.8'} + raw-body@3.0.2: + resolution: {integrity: sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==} + engines: {node: '>= 0.10'} + react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + react-is@19.3.0: + resolution: {integrity: sha512-UpMYezM4v5/18F28aC66AEsjXIgE02kyEMH6yLdgLXu/UTfa1Ntwck/nNLrbqJsEXW7gPb0coNO9FQse9WTovA==} + read-binary-file-arch@1.0.6: resolution: {integrity: sha512-BNg9EN3DD3GsDXX7Aa8O4p92sryjkmzYYgmgTAc6CA4uGLEDzFfxOxugu21akOxpcXHiEgsYkC6nPsQvLLLmEg==} hasBin: true @@ -50481,6 +50513,10 @@ packages: resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} engines: {node: '>= 14.18.0'} + readdirp@5.1.1: + resolution: {integrity: sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==} + engines: {node: '>= 20.19.0'} + real-cancellable-promise@1.2.3: resolution: {integrity: sha512-hBI5Gy/55VEeeMtImMgEirD7eq5UmqJf1J8dFZtbJZA/3rB0pYFZ7PayMGueb6v4UtUtpKpP+05L0VwyE1hI9Q==} @@ -50492,6 +50528,13 @@ packages: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} + refa@0.12.1: + resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + reflect-metadata@0.2.2: + resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==} + reflect.getprototypeof@1.0.10: resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} engines: {node: '>= 0.4'} @@ -50499,14 +50542,14 @@ packages: regenerator-runtime@0.13.11: resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + regexp-ast-analysis@0.7.1: + resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + regexp.prototype.flags@1.5.4: resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} - regexpp@3.2.0: - resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} - engines: {node: '>=8'} - relateurl@0.2.7: resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} engines: {node: '>= 0.10'} @@ -50568,10 +50611,6 @@ packages: resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - resolve.exports@2.0.3: - resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} - engines: {node: '>=10'} - resolve@1.22.11: resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} engines: {node: '>= 0.4'} @@ -50580,18 +50619,10 @@ packages: responselike@2.0.1: resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} - restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - retry@0.12.0: resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} engines: {node: '>= 4'} - retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} - engines: {node: '>= 4'} - reusify@1.1.0: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -50608,11 +50639,6 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - rimraf@5.0.10: resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} hasBin: true @@ -50633,9 +50659,17 @@ packages: roughjs@4.6.6: resolution: {integrity: sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==} + router@2.2.0: + resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} + engines: {node: '>= 18'} + rrweb-cssom@0.8.0: resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} + run-applescript@7.1.0: + resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} + engines: {node: '>=18'} + run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -50687,8 +50721,8 @@ packages: sanitize-filename@1.6.3: resolution: {integrity: sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==} - sanitize-html@2.17.0: - resolution: {integrity: sha512-dLAADUSS8rBwhaevT12yCezvioCA+bmUTPH/u57xKPT8d++voeYE6HeluA/bPbQ15TwDBG2ii+QZIEmYx8VdxA==} + sanitize-html@2.17.5: + resolution: {integrity: sha512-ZmU1joGRrvoyctKIiuwUxqR6moLoU2Wk+2bMccN6f7UwhAmwYDvWziqPxRDDN2Qip62NqnIrVrT9akbL6Wretg==} sass-loader@14.2.1: resolution: {integrity: sha512-G0VcnMYU18a4N7VoNDegg2OuMjYtxnqzQWARVWCIVSZwJeiL9kg8QMsuIZOplsJgTzZLF6jGxI3AClj8I9nRdQ==} @@ -50731,6 +50765,14 @@ packages: resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} engines: {node: '>= 10.13.0'} + schema-utils@4.5.0: + resolution: {integrity: sha512-zJlMCZ0cAR5p/Y4oVpRoqioDMJcGxaXRrQ/4rP4WyR84vc5z/DolXdbvXeDpTwbtocDFr2rhPqHPErDCUtz2kA==} + engines: {node: '>= 10.13.0'} + + scslre@0.3.0: + resolution: {integrity: sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==} + engines: {node: ^14.0.0 || >=16.0.0} + scule@1.3.0: resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} @@ -50747,12 +50789,9 @@ packages: selderee@0.11.0: resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==} - select-hose@2.0.0: - resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} - - selfsigned@2.4.1: - resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} - engines: {node: '>=10'} + selfsigned@5.5.0: + resolution: {integrity: sha512-ftnu3TW4+3eBfLRFnDEkzGxSF/10BJBkaLJuBHZX0kiPS7bRdlpZGu6YGt4KngMkdTwJE6MbjavFpqHvqVt+Ew==} + engines: {node: '>=18'} semver-compare@1.0.0: resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} @@ -50770,25 +50809,39 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.8.5: + resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} + engines: {node: '>=10'} + hasBin: true + send@0.19.0: resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} engines: {node: '>= 0.8.0'} + send@1.2.1: + resolution: {integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==} + engines: {node: '>= 18'} + serialize-error@7.0.1: resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} engines: {node: '>=10'} - serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + serialize-javascript@7.1.2: + resolution: {integrity: sha512-GL2BWwVa6JydKO6l/ljVgjAZF4QJ3S7dWDWi53s5GZT8PJzD2fNxi67HANQGKAqPrwEpL5ba7gUBGi0Ls/sEoQ==} + engines: {node: '>=20.0.0'} - serve-index@1.9.1: - resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} + serve-index@1.9.2: + resolution: {integrity: sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ==} engines: {node: '>= 0.8.0'} serve-static@1.16.2: resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} engines: {node: '>= 0.8.0'} + serve-static@2.2.1: + resolution: {integrity: sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==} + engines: {node: '>= 18'} + set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} @@ -50807,12 +50860,6 @@ packages: setimmediate@1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} - setprototypeof@1.1.0: - resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} - - setprototypeof@1.1.1: - resolution: {integrity: sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==} - setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} @@ -50820,9 +50867,14 @@ packages: resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} engines: {node: '>=8'} - sharp@0.34.5: - resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + sharp@0.35.5: + resolution: {integrity: sha512-Ywn4OnzGukp7CDMrp08RQ50YKmuwG47brZgIVPTvBaaAfQlRlygrRqSrxdCiL9M+LlzLBiJ68IR1QqvzHyjC7g==} + engines: {node: '>=20.9.0'} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true shebang-command@1.2.0: resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} @@ -50840,14 +50892,18 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shell-quote@1.8.3: - resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} + shell-quote@1.12.0: + resolution: {integrity: sha512-PcByqNyT/38F2kDNi006HAMRJaULuBzq/FOsw3qdZvX/GA9W/jamDaRskgHjubHiftXK5sIFxLNkvrXUwcof6Q==} engines: {node: '>= 0.4'} side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} engines: {node: '>= 0.4'} + side-channel-list@1.0.1: + resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} + engines: {node: '>= 0.4'} + side-channel-map@1.0.1: resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} engines: {node: '>= 0.4'} @@ -50860,6 +50916,10 @@ packages: resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} engines: {node: '>= 0.4'} + side-channel@1.1.1: + resolution: {integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==} + engines: {node: '>= 0.4'} + signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -50878,21 +50938,10 @@ packages: resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} engines: {node: '>= 10'} - sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} - slash@4.0.0: - resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} - engines: {node: '>=12'} - - slice-ansi@3.0.0: - resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} - engines: {node: '>=8'} - slice-ansi@5.0.0: resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} engines: {node: '>=12'} @@ -50922,13 +50971,6 @@ packages: snappyjs@0.7.0: resolution: {integrity: sha512-u5iEEXkMe2EInQio6Wv9LWHOQYRDbD2O9hzS27GpT/lwfIQhTCnHCTqedqHIHe9ZcvQo+9au6vngQayipz1NYw==} - sockjs@0.3.24: - resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} - - socks-proxy-agent@7.0.0: - resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} - engines: {node: '>= 10'} - socks@2.8.7: resolution: {integrity: sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==} engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} @@ -50952,9 +50994,6 @@ packages: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} - source-map-support@0.5.13: - resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} - source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} @@ -50973,13 +51012,6 @@ packages: sparse-bitfield@3.0.3: resolution: {integrity: sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==} - spdy-transport@3.0.0: - resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} - - spdy@4.0.2: - resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} - engines: {node: '>=6.0.0'} - split-on-first@1.1.0: resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} engines: {node: '>=6'} @@ -50990,10 +51022,6 @@ packages: sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} - ssri@9.0.1: - resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - stable@0.1.8: resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' @@ -51024,6 +51052,10 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} + statuses@2.0.2: + resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} + engines: {node: '>= 0.8'} + stop-iteration-iterator@1.1.0: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} @@ -51051,6 +51083,9 @@ packages: resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} engines: {node: '>=4'} + strictdom@1.0.1: + resolution: {integrity: sha512-cEmp9QeXXRmjj/rVp9oyiqcvyocWab/HaoN4+bwFeZ7QzykJD6L3yD4v12K1x0tHpqRqVpJevN3gW7kyM39Bqg==} + string-length@4.0.2: resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} engines: {node: '>=10'} @@ -51199,18 +51234,9 @@ packages: svelte-dev-helper@1.1.9: resolution: {integrity: sha512-oU+Xv7Dl4kRU2kdFjsoPLfJfnt5hUhsFUZtuzI3Ku/f2iAFZqBoEuXOqK3N9ngD4dxQOmN4OKWPHVi3NeAeAfQ==} - svelte-eslint-parser@0.33.1: - resolution: {integrity: sha512-vo7xPGTlKBGdLH8T5L64FipvTrqv3OQRx9d2z5X05KKZDlF4rQk8KViZO4flKERY+5BiVdOh7zZ7JGJWo5P0uA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - svelte: ^3.37.0 || ^4.0.0 - peerDependenciesMeta: - svelte: - optional: true - - svelte-eslint-parser@0.43.0: - resolution: {integrity: sha512-GpU52uPKKcVnh8tKN5P4UZpJ/fUDndmq7wfsvoVXsyP+aY0anol7Yqo01fyrlaWGMFfm4av5DyrjlaXdLRJvGA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + svelte-eslint-parser@1.8.1: + resolution: {integrity: sha512-5zgKBqAf6V8Jyrmr1jViksyG4NKT8NheYwkdxRaMRDAqpGWi9wR8ktcGrAZbfMn/PHUp1BWzAp0cYQECkWuAMA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0, pnpm: 10.34.5} peerDependencies: svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 peerDependenciesMeta: @@ -51290,6 +51316,10 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + synckit@0.11.13: + resolution: {integrity: sha512-eNRKgb3z66Yp3D2CixVujOUvXLFUTij/zVnV8KRyvFdQwpz7I5DS8UfRkTeLzb64u+dkzDSdelE24izu+zSSUg==} + engines: {node: ^14.18.0 || >=16.0.0} + systeminformation@5.33.13: resolution: {integrity: sha512-GtyakkchTQKymM1WeAB652zi3rM1q00RKdc+jZe9KGstuc/mWUwAnQGN/RE5gVYvHIR8xYOUIUD9irVKDtA0wA==} engines: {node: '>=10.0.0'} @@ -51305,18 +51335,16 @@ packages: resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} engines: {node: '>=6'} + tapable@2.3.3: + resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} + engines: {node: '>=6'} + tar-stream@3.1.7: resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} - tar@6.2.1: - resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} - engines: {node: '>=10'} - deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - - tar@7.5.2: - resolution: {integrity: sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==} + tar@7.5.22: + resolution: {integrity: sha512-MFO/QzvtAOmJbkhOaCTvbGcFN9L9b+JunIsDwaKljSOdcLMea3NJ1k9Usz/rjdfSXTq4dfzfeS7W4p4YOAAHeA==} engines: {node: '>=18'} - deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me telegraf@4.16.3: resolution: {integrity: sha512-yjEu2NwkHlXu0OARWoNhJlIjX09dRktiMQFsM678BAH/PEPVwctzL67+tvXqLCRQQvm3SDtki2saGO9hLlz68w==} @@ -51329,30 +51357,19 @@ packages: temp-file@3.4.0: resolution: {integrity: sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==} - terser-webpack-plugin@5.3.14: - resolution: {integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@swc/core': '*' - esbuild: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@swc/core': - optional: true - esbuild: - optional: true - uglify-js: - optional: true - terser@5.44.1: resolution: {integrity: sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==} engines: {node: '>=10'} hasBin: true - test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} + terser@5.51.2: + resolution: {integrity: sha512-bWnjSNscmuI+GJze6ZupnHP8G/cTcsJF+bXCeQknk2SHQsgbNJnLrqiH9jZ2W4STPVXH2mDKKRX3iwPhc9Cn/Q==} + engines: {node: '>=10'} + hasBin: true + + test-exclude@7.0.2: + resolution: {integrity: sha512-u9E6A+ZDYdp7a4WnarkXPZOx8Ilz46+kby6p1yZ8zsGTz9gYa6FIS7lj2oezzNKmtdyyJNNmmXDppga5GB7kSw==} + engines: {node: '>=18'} text-decoder@1.2.3: resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==} @@ -51363,9 +51380,6 @@ packages: text-segmentation@1.0.3: resolution: {integrity: sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==} - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} engines: {node: '>=0.8'} @@ -51373,6 +51387,12 @@ packages: thenify@3.3.1: resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + thingies@2.6.1: + resolution: {integrity: sha512-cV/CMGTK3M4MlnJ/0At6ismOw/A0EEniDNScajjz/Br3c1sqE72YD01rGpPTKwd27wAxI5Pr+6+0w8yofzFRYw==} + engines: {node: '>=10.18'} + peerDependencies: + tslib: ^2 + thirty-two@1.0.2: resolution: {integrity: sha512-OEI0IWCe+Dw46019YLl6V10Us5bi574EvlJEOcAkB29IzQ/mYD1A6RyNHLjZPiHCmuodxvgF6U+vZO1L15lxVA==} engines: {node: '>=0.2.6'} @@ -51386,6 +51406,9 @@ packages: timm@1.7.1: resolution: {integrity: sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==} + tiny-async-pool@1.3.0: + resolution: {integrity: sha512-01EAw5EDrcVrdgyCLgoSPvqznC0sVxDSVeiOz09FUpjh71G79VCqneOr+xvt7T1r76CF6ZZfPjHorN2+d+3mqA==} + tiny-lru@11.3.4: resolution: {integrity: sha512-UxWEfRKpFCabAf6fkTNdlfSw/RDUJ/4C6i1aLZaDnGF82PERHyYhz5CMCVYXtLt34LbqgfpJ2bjmgGKgxuF/6A==} engines: {node: '>=12'} @@ -51400,6 +51423,10 @@ packages: resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} engines: {node: '>=18'} + tinyglobby@0.2.17: + resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} + engines: {node: '>=12.0.0'} + tippy.js@6.3.7: resolution: {integrity: sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==} @@ -51417,17 +51444,10 @@ packages: resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==} engines: {node: '>=14.14'} - tmpl@1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - toidentifier@1.0.0: - resolution: {integrity: sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==} - engines: {node: '>=0.6'} - toidentifier@1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} @@ -51454,6 +51474,12 @@ packages: resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==} engines: {node: '>=18'} + tree-dump@1.1.0: + resolution: {integrity: sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true @@ -51465,11 +51491,11 @@ packages: truncate-utf8-bytes@1.0.2: resolution: {integrity: sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==} - ts-api-utils@1.4.3: - resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} - engines: {node: '>=16'} + ts-api-utils@2.5.0: + resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==} + engines: {node: '>=18.12'} peerDependencies: - typescript: '>=4.2.0' + typescript: '>=4.8.4' ts-custom-error@3.3.1: resolution: {integrity: sha512-5OX1tzOjxWEgsr/YEUWSuPrQ00deKLh6D7OTWcvNHm12/7QPyRh8SYpyWvA4IZv8H/+GQWQEh/kwo95Q9OVW1A==} @@ -51485,19 +51511,19 @@ packages: ts-invariant@0.4.4: resolution: {integrity: sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==} - ts-jest@29.4.5: - resolution: {integrity: sha512-HO3GyiWn2qvTQA4kTgjDcXiMwYQt68a1Y8+JuLRVpdIzm+UOLSHgl/XqR4c6nzJkq5rOkjc02O2I7P7l/Yof0Q==} + ts-jest@29.4.14: + resolution: {integrity: sha512-+943G6wCX5E3VpzTQhBGBFntCmdT+QAkTvUlp03edTONFBvqskuXPhpyX16xdUotO4P5HQKyppldSWjocoltLQ==} engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: - '@babel/core': '>=7.0.0-beta.0 <8' + '@babel/core': '>=7.0.0-beta.0 <9' '@jest/transform': ^29.0.0 || ^30.0.0 '@jest/types': ^29.0.0 || ^30.0.0 babel-jest: ^29.0.0 || ^30.0.0 esbuild: '*' jest: ^29.0.0 || ^30.0.0 jest-util: ^29.0.0 || ^30.0.0 - typescript: '>=4.3 <6' + typescript: '>=4.3 <7' peerDependenciesMeta: '@babel/core': optional: true @@ -51565,6 +51591,10 @@ packages: resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} engines: {node: '>=0.6.x'} + tsyringe@4.10.0: + resolution: {integrity: sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==} + engines: {node: '>= 6.0.0'} + turndown@7.2.2: resolution: {integrity: sha512-1F7db8BiExOKxjSMU2b7if62D/XOyQyZbPKq/nUwopfgnHlqXHqQ0lvfUTeUIr1lZJzOPFn43dODyMSIfvWRKQ==} @@ -51584,10 +51614,6 @@ packages: resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} engines: {node: '>=10'} - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} @@ -51604,6 +51630,10 @@ packages: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} + type-is@2.1.0: + resolution: {integrity: sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==} + engines: {node: '>= 18'} + type@2.7.3: resolution: {integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==} @@ -51632,6 +51662,13 @@ packages: typedarray-to-buffer@3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + typescript-eslint@8.71.1: + resolution: {integrity: sha512-oiNVPC3/NbV1FpaHU07l8O6ynqG9v4PAiW2WvTrAmZdR0f2HI/gE668ElMLCK7Xbsu5k2fK5C4fXNiq05j7/nQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + typescript@5.9.3: resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} @@ -51672,23 +51709,16 @@ packages: undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - undici-types@7.18.2: resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} - undici@7.18.2: - resolution: {integrity: sha512-y+8YjDFzWdQlSE9N5nzKMT3g4a5UBX1HKowfdXh0uvAnTaqqwqB92Jt4UXBAeKekDs5IaDKyJFR4X1gYVCgXcw==} - engines: {node: '>=20.18.1'} - - unique-filename@2.0.1: - resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + undici@6.29.0: + resolution: {integrity: sha512-R+RODBqp6i2pPflGdq+xIOUkl+RNfGgHwoinecKu/JCuf2uO06cOKoDbI2P7Dn6KcswdKwrczbU6IYJ6K8X+wg==} + engines: {node: '>=18.17'} - unique-slug@3.0.0: - resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + undici@7.30.0: + resolution: {integrity: sha512-dkrQXeHSaoamnItlYbmzG0wFYrM0ZwDxCIg0A7aKjTyyhh9svRzCNFEzV+Vm05/yehjCzjDZ31KXfGEjYSztDQ==} + engines: {node: '>=20.18.1'} universal-github-app-jwt@1.2.0: resolution: {integrity: sha512-dncpMpnsKBk0eetwfN8D8OUHGfiDhhJ+mtsbMl+7PfW7mYjiH8LIcqRmYMtzYLgSh47HjfdBtrBwIQ/gizKR3g==} @@ -51704,14 +51734,29 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} + unpdf@1.8.1: + resolution: {integrity: sha512-xkURhy2SoGpOIH0a1gLHNkASPIQYonadDJs2AQwPEfUakafeD9EA1WTWWsaR++gfTCXJpV27W7tU1nXuk82UKQ==} + engines: {node: '>=22'} + peerDependencies: + '@napi-rs/canvas': ^0.1.69 || ^1.0.0 + peerDependenciesMeta: + '@napi-rs/canvas': + optional: true + unpipe@1.0.0: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} + unrs-resolver@1.12.2: + resolution: {integrity: sha512-dmlRxBJJayXjqTwC+JtF1HhJmgf3ftQ3YejFcZrf4+KKtJv0qDsK1pjqaaVjG7wJ5NJ6UVP1OqRMQ71Z4C3rxQ==} + unused-filename@4.0.1: resolution: {integrity: sha512-ZX6U1J04K1FoSUeoX1OicAhw4d0aro2qo+L8RhJkiGTNtBNkd/Fi1Wxoc9HzcVu6HfOzm0si/N15JjxFmD1z6A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + unzipper@0.12.5: + resolution: {integrity: sha512-tXYOi9R57Uj/2Z25SOs5RRSzq886MBQj2gY8dPL+xl/kv6s6SvByoKfAtvfVeEuhntWDgjd2o9p2lb4TVPAz0A==} + update-browserslist-db@1.2.3: resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} hasBin: true @@ -51767,13 +51812,13 @@ packages: utrie@1.0.2: resolution: {integrity: sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==} - uuid@11.1.0: - resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} + uuid@11.1.1: + resolution: {integrity: sha512-vIYxrBCC/N/K+Js3qSN88go7kIfNPssr/hHCesKCQNAjmgvYS2oqr69kIufEG+O4+PfezOH4EbIeHCfFov8ZgQ==} hasBin: true uuid@3.4.0: resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} - deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true uuid@8.3.2: @@ -51782,6 +51827,7 @@ packages: uuid@9.0.1: resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true v8-compile-cache-lib@3.0.1: @@ -51799,30 +51845,6 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} - verror@1.10.1: - resolution: {integrity: sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==} - engines: {node: '>=0.6.0'} - - vscode-jsonrpc@8.2.0: - resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} - engines: {node: '>=14.0.0'} - - vscode-languageserver-protocol@3.17.5: - resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} - - vscode-languageserver-textdocument@1.0.12: - resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} - - vscode-languageserver-types@3.17.5: - resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} - - vscode-languageserver@9.0.1: - resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} - hasBin: true - - vscode-uri@3.0.8: - resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} - w3c-keyname@2.2.8: resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} @@ -51830,19 +51852,10 @@ packages: resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} engines: {node: '>=18'} - walker@1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - - watchpack@2.4.4: - resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==} + watchpack@2.5.2: + resolution: {integrity: sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg==} engines: {node: '>=10.13.0'} - wbuf@1.7.3: - resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} - - wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - web-push@3.6.7: resolution: {integrity: sha512-OpiIUe8cuGjrj3mMBFWY+e4MMIkW3SVT+7vEIjvD9kejGUypv8GPDf84JdPWskK8zMRIJ6xYGm+Kxr8YkPyA0A==} engines: {node: '>= 16'} @@ -51856,6 +51869,9 @@ packages: resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} engines: {node: '>= 14'} + webcrypto-core@1.9.2: + resolution: {integrity: sha512-gsXecm82UQNlTBURJGuqOWy1Ww08S3kZUcr3aOJS02Pk0xLtkfeUAVC0u0xhgdonFme80edSJUIJyuvL/7250Q==} + webdriver-bidi-protocol@0.4.3: resolution: {integrity: sha512-uuN0goWfxP22B7J/uAgBpOYNPttC+XVseYE+rSY5+rQ+YBeVz/VORw8WbmLVcqW78zNg5A4qnjNXYUWR3il2ig==} @@ -51888,18 +51904,21 @@ packages: webpack-dev-server: optional: true - webpack-dev-middleware@5.3.4: - resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==} - engines: {node: '>= 12.13.0'} + webpack-dev-middleware@8.3.0: + resolution: {integrity: sha512-jFNNMB29ugmkEUFW9cpWNqcWFQNwuMTMVoRpKVAiz/5nh3gA4x9x6DRPhNHGc/SLre7pEP9yrAPDAmCvdCblKg==} + engines: {node: '>= 20.9.0'} peerDependencies: - webpack: ^4.0.0 || ^5.0.0 + webpack: ^5.101.0 + peerDependenciesMeta: + webpack: + optional: true - webpack-dev-server@4.15.2: - resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==} - engines: {node: '>= 12.13.0'} + webpack-dev-server@6.0.0: + resolution: {integrity: sha512-q9SD4ItOGhZLeU6EGT10caDZdHjF50Pz1DtkRZZOPsfluMXOkacWKKOtSBSLVkPqKiF67eFUC0rI88U/tSFPEw==} + engines: {node: '>= 22.15.0'} hasBin: true peerDependencies: - webpack: ^4.37.0 || ^5.0.0 + webpack: ^5.101.0 webpack-cli: '*' peerDependenciesMeta: webpack: @@ -51914,12 +51933,12 @@ packages: webpack-sources@1.4.3: resolution: {integrity: sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==} - webpack-sources@3.3.3: - resolution: {integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==} + webpack-sources@3.6.0: + resolution: {integrity: sha512-EIMmPVvNI0CYXyRPp34F2Qk7W37/BZVZIofS6LAUnrNjCVahS+hO4mxwFJDjQjODTGZDtVzLYoN2+1dYkhk9qA==} engines: {node: '>=10.13.0'} - webpack@5.102.1: - resolution: {integrity: sha512-7h/weGm9d/ywQ6qzJ+Xy+r9n/3qgp/thalBbpOi5i223dPXKi04IBtqPN9nTd+jBc7QKfvDbaBnFipYp4sJAUQ==} + webpack@5.111.1: + resolution: {integrity: sha512-cNypaz0RP+S4cvQVi1M/3bRUkvNP0xZpL0TjFx+c6jg64VbxD+2weWDgY9UnjRI6dhZgtaj8DU76GGFcJ79xPQ==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -51932,14 +51951,6 @@ packages: resolution: {integrity: sha512-CHbl2ZQbxx164IgWRgzJno4hWtM4tFbRam1QfI3Yxhs3w/DvqluVxVWeXs3oL5/fbGkSNLKo0Ty5MgUWceNhog==} engines: {node: '>=6.0.0', npm: '>=3.10.0'} - websocket-driver@0.7.4: - resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} - engines: {node: '>=0.8.0'} - - websocket-extensions@0.1.4: - resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} - engines: {node: '>=0.8.0'} - websocket@1.0.35: resolution: {integrity: sha512-/REy6amwPZl44DDzvRCkaI1q1bIiQB0mEFQLUrhz3z2EK91cp3n72rAjUlrTP0zV22HJIUOVHQGPxhFRjxjt+Q==} engines: {node: '>=4.0.0'} @@ -51988,8 +51999,15 @@ packages: engines: {node: '>= 8'} hasBin: true - wide-align@1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + which@5.0.0: + resolution: {integrity: sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==} + engines: {node: ^18.17.0 || >=20.5.0} + hasBin: true + + which@6.0.1: + resolution: {integrity: sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true wildcard@2.0.1: resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} @@ -52041,9 +52059,9 @@ packages: write-file-atomic@1.3.4: resolution: {integrity: sha512-SdrHoC/yVBPpV0Xq/mUZQIpW2sWXAShb/V4pomcJXh92RuaO+f3UTWItiR3Px+pLnV2PvC2/bfn5cwr5X6Vfxw==} - write-file-atomic@4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} ws@7.5.10: resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} @@ -52069,6 +52087,10 @@ packages: utf-8-validate: optional: true + wsl-utils@1.0.1: + resolution: {integrity: sha512-c16PKLIRxBYpR3jSWsdS7SFp0COm5SOQdiFjY818dYFHJbMGuLBszpF07LBWmOS1uzrHa9VGdynsEgoeKy0oOQ==} + engines: {node: '>=20'} + xhr@2.6.0: resolution: {integrity: sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==} @@ -52192,9 +52214,6 @@ packages: resolution: {integrity: sha512-9OpKOLeaoNFecEp7P6iYbzze/5CqWoH7N3SMs/6y1XF4nMvFMspEGZzJ6uFi9MmQwXhyzqYoSEKO3tvA3Z/o2w==} engines: {node: ^20.19.0 || ^22.12.0 || >=23} - yauzl@2.10.0: - resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} - yjs@13.6.27: resolution: {integrity: sha512-OIDwaflOaq4wC6YlPBy2L6ceKeKuF7DeTxx+jPzv1FHn9tCZ0ZwSRnUBxD05E3yed46fv/FWJbvR+Ud7x0L7zw==} engines: {node: '>=16.0.0', npm: '>=8.0.0'} @@ -52234,8 +52253,6 @@ packages: snapshots: - 7zip-bin@5.2.0: {} - '@adobe/css-tools@4.4.4': {} '@alloc/quick-lru@5.2.0': {} @@ -52648,26 +52665,11 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} - '@braintree/sanitize-url@7.1.1': {} + '@braintree/sanitize-url@7.1.2': {} '@bufbuild/protobuf@1.10.1': {} - '@chevrotain/cst-dts-gen@11.0.3': - dependencies: - '@chevrotain/gast': 11.0.3 - '@chevrotain/types': 11.0.3 - lodash-es: 4.17.21 - - '@chevrotain/gast@11.0.3': - dependencies: - '@chevrotain/types': 11.0.3 - lodash-es: 4.17.21 - - '@chevrotain/regexp-to-ast@11.0.3': {} - - '@chevrotain/types@11.0.3': {} - - '@chevrotain/utils@11.0.3': {} + '@chevrotain/types@11.1.2': {} '@colors/colors@1.6.0': {} @@ -52703,11 +52705,6 @@ snapshots: enabled: 2.0.0 kuler: 2.0.0 - '@develar/schema-utils@2.6.5': - dependencies: - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) - '@discoveryjs/json-ext@0.5.7': {} '@elastic/elasticsearch@7.17.14': @@ -52719,13 +52716,21 @@ snapshots: transitivePeerDependencies: - supports-color + '@electron-internal/extract-zip@1.0.5': {} + '@electron/asar@3.4.1': dependencies: commander: 5.1.0 glob: 7.2.3 minimatch: 3.1.2 - '@electron/get@2.0.3': + '@electron/fuses@1.8.0': + dependencies: + chalk: 4.1.2 + fs-extra: 9.1.0 + minimist: 1.2.8 + + '@electron/get@3.1.0': dependencies: debug: 4.4.3 env-paths: 2.2.1 @@ -52739,6 +52744,19 @@ snapshots: transitivePeerDependencies: - supports-color + '@electron/get@5.1.0': + dependencies: + debug: 4.4.3 + env-paths: 3.0.0 + graceful-fs: 4.2.11 + progress: 2.0.3 + semver: 7.7.3 + sumchecker: 3.0.1 + optionalDependencies: + undici: 7.30.0 + transitivePeerDependencies: + - supports-color + '@electron/notarize@2.5.0': dependencies: debug: 4.4.3 @@ -52747,7 +52765,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@electron/osx-sign@1.3.1': + '@electron/osx-sign@1.3.3': dependencies: compare-version: 0.1.2 debug: 4.4.3 @@ -52758,26 +52776,18 @@ snapshots: transitivePeerDependencies: - supports-color - '@electron/rebuild@3.6.1': + '@electron/rebuild@4.2.1': dependencies: '@malept/cross-spawn-promise': 2.0.0 - chalk: 4.1.2 debug: 4.4.3 - detect-libc: 2.1.2 - fs-extra: 10.1.0 - got: 11.8.6 - node-abi: 3.80.0 + node-abi: 4.36.0 node-api-version: 0.2.1 - node-gyp: 9.4.1 - ora: 5.4.1 + node-gyp: 12.4.0 read-binary-file-arch: 1.0.6 - semver: 7.7.3 - tar: 6.2.1 - yargs: 17.7.2 transitivePeerDependencies: - supports-color - '@electron/universal@2.0.1': + '@electron/universal@2.0.3': dependencies: '@electron/asar': 3.4.1 '@malept/cross-spawn-promise': 2.0.0 @@ -52789,12 +52799,28 @@ snapshots: transitivePeerDependencies: - supports-color + '@emnapi/core@1.10.0': + dependencies: + '@emnapi/wasi-threads': 1.2.1 + tslib: 2.8.1 + optional: true + '@emnapi/core@1.7.0': dependencies: '@emnapi/wasi-threads': 1.1.0 tslib: 2.8.1 optional: true + '@emnapi/runtime@1.10.0': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.11.3': + dependencies: + tslib: 2.8.1 + optional: true + '@emnapi/runtime@1.7.0': dependencies: tslib: 2.8.1 @@ -52805,6 +52831,11 @@ snapshots: tslib: 2.8.1 optional: true + '@emnapi/wasi-threads@1.2.1': + dependencies: + tslib: 2.8.1 + optional: true + '@esbuild/aix-ppc64@0.25.12': optional: true @@ -52883,30 +52914,64 @@ snapshots: '@esbuild/win32-x64@0.25.12': optional: true - '@eslint-community/eslint-utils@4.9.0(eslint@8.57.1)': + '@eslint-community/eslint-plugin-eslint-comments@4.8.1(eslint@9.39.5(jiti@2.7.0))': + dependencies: + escape-string-regexp: 4.0.0 + eslint: 9.39.5(jiti@2.7.0) + ignore: 7.0.12 + + '@eslint-community/eslint-utils@4.10.1(eslint@9.39.5(jiti@2.7.0))': dependencies: - eslint: 8.57.1 + eslint: 9.39.5(jiti@2.7.0) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/eslint-utils@4.9.0(eslint@9.39.5(jiti@2.7.0))': + dependencies: + eslint: 9.39.5(jiti@2.7.0) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} - '@eslint/eslintrc@2.1.4': + '@eslint/config-array@0.21.2': dependencies: - ajv: 6.12.6 + '@eslint/object-schema': 2.1.7 debug: 4.4.3 - espree: 9.6.1 - globals: 13.24.0 + minimatch: 3.1.5 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.4.2': + dependencies: + '@eslint/core': 0.17.0 + + '@eslint/core@0.17.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/eslintrc@3.3.7': + dependencies: + ajv: 6.15.0 + debug: 4.4.3 + espree: 10.4.0 + globals: 14.0.0 ignore: 5.3.2 import-fresh: 3.3.1 - js-yaml: 4.1.0 - minimatch: 3.1.2 + js-yaml: 4.3.2 + minimatch: 3.1.5 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color - '@eslint/js@8.57.1': {} + '@eslint/js@9.39.5': {} + + '@eslint/object-schema@2.1.7': {} - '@faker-js/faker@8.4.1': {} + '@eslint/plugin-kit@0.4.1': + dependencies: + '@eslint/core': 0.17.0 + levn: 0.4.1 + + '@faker-js/faker@10.6.0': {} '@formatjs/ecma402-abstract@2.3.6': dependencies: @@ -52934,8 +52999,6 @@ snapshots: dependencies: tslib: 2.8.1 - '@gar/promisify@1.1.3': {} - '@grpc/grpc-js@1.14.5': dependencies: '@grpc/proto-loader': 0.8.0 @@ -52972,7 +53035,7 @@ snapshots: async-lock: 1.4.1 kleur: 4.1.5 lib0: 0.2.114 - uuid: 11.1.0 + uuid: 11.1.1 ws: 8.21.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) y-protocols: 1.0.6(yjs@13.6.27) yjs: 13.6.27 @@ -52988,17 +53051,21 @@ snapshots: y-prosemirror: 1.3.7(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.3)(y-protocols@1.0.6(yjs@13.6.27))(yjs@13.6.27) yjs: 13.6.27 - '@humanwhocodes/config-array@0.13.0': + '@humanfs/core@0.19.2': dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.4.3 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color + '@humanfs/types': 0.15.0 + + '@humanfs/node@0.16.8': + dependencies: + '@humanfs/core': 0.19.2 + '@humanfs/types': 0.15.0 + '@humanwhocodes/retry': 0.4.3 + + '@humanfs/types@0.15.0': {} '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/object-schema@2.0.3': {} + '@humanwhocodes/retry@0.4.3': {} '@iconify/types@2.0.0': {} @@ -53015,107 +53082,118 @@ snapshots: transitivePeerDependencies: - supports-color - '@img/colour@1.0.0': {} + '@img/colour@1.1.0': {} - '@img/sharp-darwin-arm64@0.34.5': + '@img/sharp-darwin-arm64@0.35.5': optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.2.4 + '@img/sharp-libvips-darwin-arm64': 1.3.4 optional: true - '@img/sharp-darwin-x64@0.34.5': + '@img/sharp-darwin-x64@0.35.5': optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.2.4 + '@img/sharp-libvips-darwin-x64': 1.3.4 + optional: true + + '@img/sharp-freebsd-wasm32@0.35.5': + dependencies: + '@img/sharp-wasm32': 0.35.5 optional: true - '@img/sharp-libvips-darwin-arm64@1.2.4': + '@img/sharp-libvips-darwin-arm64@1.3.4': optional: true - '@img/sharp-libvips-darwin-x64@1.2.4': + '@img/sharp-libvips-darwin-x64@1.3.4': optional: true - '@img/sharp-libvips-linux-arm64@1.2.4': + '@img/sharp-libvips-linux-arm64@1.3.4': optional: true - '@img/sharp-libvips-linux-arm@1.2.4': + '@img/sharp-libvips-linux-arm@1.3.4': optional: true - '@img/sharp-libvips-linux-ppc64@1.2.4': + '@img/sharp-libvips-linux-ppc64@1.3.4': optional: true - '@img/sharp-libvips-linux-riscv64@1.2.4': + '@img/sharp-libvips-linux-riscv64@1.3.4': optional: true - '@img/sharp-libvips-linux-s390x@1.2.4': + '@img/sharp-libvips-linux-s390x@1.3.4': optional: true - '@img/sharp-libvips-linux-x64@1.2.4': + '@img/sharp-libvips-linux-x64@1.3.4': optional: true - '@img/sharp-libvips-linuxmusl-arm64@1.2.4': + '@img/sharp-libvips-linuxmusl-arm64@1.3.4': optional: true - '@img/sharp-libvips-linuxmusl-x64@1.2.4': + '@img/sharp-libvips-linuxmusl-x64@1.3.4': optional: true - '@img/sharp-linux-arm64@0.34.5': + '@img/sharp-linux-arm64@0.35.5': optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.2.4 + '@img/sharp-libvips-linux-arm64': 1.3.4 optional: true - '@img/sharp-linux-arm@0.34.5': + '@img/sharp-linux-arm@0.35.5': optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.2.4 + '@img/sharp-libvips-linux-arm': 1.3.4 optional: true - '@img/sharp-linux-ppc64@0.34.5': + '@img/sharp-linux-ppc64@0.35.5': optionalDependencies: - '@img/sharp-libvips-linux-ppc64': 1.2.4 + '@img/sharp-libvips-linux-ppc64': 1.3.4 optional: true - '@img/sharp-linux-riscv64@0.34.5': + '@img/sharp-linux-riscv64@0.35.5': optionalDependencies: - '@img/sharp-libvips-linux-riscv64': 1.2.4 + '@img/sharp-libvips-linux-riscv64': 1.3.4 optional: true - '@img/sharp-linux-s390x@0.34.5': + '@img/sharp-linux-s390x@0.35.5': optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.2.4 + '@img/sharp-libvips-linux-s390x': 1.3.4 optional: true - '@img/sharp-linux-x64@0.34.5': + '@img/sharp-linux-x64@0.35.5': optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.2.4 + '@img/sharp-libvips-linux-x64': 1.3.4 optional: true - '@img/sharp-linuxmusl-arm64@0.34.5': + '@img/sharp-linuxmusl-arm64@0.35.5': optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.3.4 optional: true - '@img/sharp-linuxmusl-x64@0.34.5': + '@img/sharp-linuxmusl-x64@0.35.5': optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.2.4 + '@img/sharp-libvips-linuxmusl-x64': 1.3.4 optional: true - '@img/sharp-wasm32@0.34.5': + '@img/sharp-wasm32@0.35.5': dependencies: - '@emnapi/runtime': 1.7.0 + '@emnapi/runtime': 1.11.3 optional: true - '@img/sharp-win32-arm64@0.34.5': + '@img/sharp-webcontainers-wasm32@0.35.5': + dependencies: + '@img/sharp-wasm32': 0.35.5 optional: true - '@img/sharp-win32-ia32@0.34.5': + '@img/sharp-win32-arm64@0.35.5': optional: true - '@img/sharp-win32-x64@0.34.5': + '@img/sharp-win32-ia32@0.35.5': optional: true - '@isaacs/balanced-match@4.0.1': {} + '@img/sharp-win32-x64@0.35.5': + optional: true - '@isaacs/brace-expansion@5.0.0': + '@interlace/eslint-devkit@1.19.8(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3)': dependencies: - '@isaacs/balanced-match': 4.0.1 + eslint: 9.39.5(jiti@2.7.0) + optionalDependencies: + '@typescript-eslint/utils': 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + typescript: 5.9.3 '@isaacs/cliui@8.0.2': dependencies: @@ -53140,219 +53218,205 @@ snapshots: '@istanbuljs/schema@0.1.3': {} - '@jest/console@29.7.0': + '@jest/console@30.5.2': dependencies: - '@jest/types': 29.6.3 + '@jest/types': 30.5.1 '@types/node': 24.13.6 chalk: 4.1.2 - jest-message-util: 29.7.0 - jest-util: 29.7.0 + jest-message-util: 30.5.1 + jest-util: 30.5.1 slash: 3.0.0 - '@jest/core@29.7.0(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3))': + '@jest/core@30.5.2(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3))': dependencies: - '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 + '@jest/console': 30.5.2 + '@jest/pattern': 30.5.0 + '@jest/reporters': 30.5.2 + '@jest/test-result': 30.5.2 + '@jest/transform': 30.5.2 + '@jest/types': 30.5.1 '@types/node': 24.13.6 ansi-escapes: 4.3.2 chalk: 4.1.2 - ci-info: 3.9.0 - exit: 0.1.2 + ci-info: 4.3.1 + exit-x: 0.2.2 + fast-json-stable-stringify: 2.1.0 graceful-fs: 4.2.11 - jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-resolve-dependencies: 29.7.0 - jest-runner: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - jest-watcher: 29.7.0 - micromatch: 4.0.8 - pretty-format: 29.7.0 + jest-changed-files: 30.5.1 + jest-config: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + jest-haste-map: 30.5.1 + jest-message-util: 30.5.1 + jest-regex-util: 30.5.0 + jest-resolve: 30.5.1 + jest-resolve-dependencies: 30.5.2 + jest-runner: 30.5.2 + jest-runtime: 30.5.2 + jest-snapshot: 30.5.2 + jest-util: 30.5.1 + jest-validate: 30.5.1 + jest-watcher: 30.5.2 + pretty-format: 30.5.1 slash: 3.0.0 - strip-ansi: 6.0.1 transitivePeerDependencies: - babel-plugin-macros + - esbuild-register - supports-color - ts-node - '@jest/environment-jsdom-abstract@30.2.0(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + '@jest/diff-sequences@30.5.0': {} + + '@jest/environment-jsdom-abstract@30.5.2(@types/jsdom@21.1.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))': dependencies: - '@jest/environment': 30.2.0 - '@jest/fake-timers': 30.2.0 - '@jest/types': 30.2.0 + '@jest/environment': 30.5.2 + '@jest/fake-timers': 30.5.2 + '@jest/types': 30.5.1 '@types/jsdom': 21.1.7 '@types/node': 24.13.6 - jest-mock: 30.2.0 - jest-util: 30.2.0 + jest-mock: 30.5.2 + jest-util: 30.5.1 jsdom: 26.1.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) - '@jest/environment-jsdom-abstract@30.2.0(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))': + '@jest/environment-jsdom-abstract@30.5.2(@types/jsdom@21.1.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))': dependencies: - '@jest/environment': 30.2.0 - '@jest/fake-timers': 30.2.0 - '@jest/types': 30.2.0 + '@jest/environment': 30.5.2 + '@jest/fake-timers': 30.5.2 + '@jest/types': 30.5.1 '@types/jsdom': 21.1.7 '@types/node': 24.13.6 - jest-mock: 30.2.0 - jest-util: 30.2.0 + jest-mock: 30.5.2 + jest-util: 30.5.1 jsdom: 26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) - '@jest/environment@29.7.0': + '@jest/environment@30.5.2': dependencies: - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 + '@jest/fake-timers': 30.5.2 + '@jest/types': 30.5.1 '@types/node': 24.13.6 - jest-mock: 29.7.0 + jest-mock: 30.5.2 - '@jest/environment@30.2.0': + '@jest/expect-utils@30.5.2': dependencies: - '@jest/fake-timers': 30.2.0 - '@jest/types': 30.2.0 - '@types/node': 24.13.6 - jest-mock: 30.2.0 - - '@jest/expect-utils@29.7.0': - dependencies: - jest-get-type: 29.6.3 + '@jest/get-type': 30.5.0 - '@jest/expect@29.7.0': + '@jest/expect@30.5.2': dependencies: - expect: 29.7.0 - jest-snapshot: 29.7.0 + expect: 30.5.2 + jest-snapshot: 30.5.2 transitivePeerDependencies: - supports-color - '@jest/fake-timers@29.7.0': + '@jest/fake-timers@30.5.2': dependencies: - '@jest/types': 29.6.3 - '@sinonjs/fake-timers': 10.3.0 + '@jest/types': 30.5.1 + '@sinonjs/fake-timers': 15.4.0 '@types/node': 24.13.6 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-util: 29.7.0 + jest-message-util: 30.5.1 + jest-mock: 30.5.2 + jest-util: 30.5.1 - '@jest/fake-timers@30.2.0': - dependencies: - '@jest/types': 30.2.0 - '@sinonjs/fake-timers': 13.0.5 - '@types/node': 24.13.6 - jest-message-util: 30.2.0 - jest-mock: 30.2.0 - jest-util: 30.2.0 + '@jest/get-type@30.5.0': {} - '@jest/globals@29.7.0': + '@jest/globals@30.5.2': dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/types': 29.6.3 - jest-mock: 29.7.0 + '@jest/environment': 30.5.2 + '@jest/expect': 30.5.2 + '@jest/types': 30.5.1 + jest-mock: 30.5.2 transitivePeerDependencies: - supports-color - '@jest/pattern@30.0.1': + '@jest/pattern@30.5.0': dependencies: '@types/node': 24.13.6 - jest-regex-util: 30.0.1 + jest-regex-util: 30.5.0 - '@jest/reporters@29.7.0': + '@jest/reporters@30.5.2': dependencies: '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 + '@jest/console': 30.5.2 + '@jest/test-result': 30.5.2 + '@jest/transform': 30.5.2 + '@jest/types': 30.5.1 '@jridgewell/trace-mapping': 0.3.31 '@types/node': 24.13.6 chalk: 4.1.2 collect-v8-coverage: 1.0.3 - exit: 0.1.2 - glob: 7.2.3 + exit-x: 0.2.2 + glob: 13.0.6 graceful-fs: 4.2.11 istanbul-lib-coverage: 3.2.2 istanbul-lib-instrument: 6.0.3 istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 4.0.1 + istanbul-lib-source-maps: 5.0.6 istanbul-reports: 3.2.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - jest-worker: 29.7.0 + jest-message-util: 30.5.1 + jest-util: 30.5.1 + jest-worker: 30.5.1 slash: 3.0.0 string-length: 4.0.2 - strip-ansi: 6.0.1 v8-to-istanbul: 9.3.0 transitivePeerDependencies: - supports-color - '@jest/schemas@29.6.3': + '@jest/schemas@30.0.5': dependencies: - '@sinclair/typebox': 0.27.8 + '@sinclair/typebox': 0.34.41 - '@jest/schemas@30.0.5': + '@jest/schemas@30.5.0': dependencies: '@sinclair/typebox': 0.34.41 - '@jest/source-map@29.6.3': + '@jest/snapshot-utils@30.5.1': + dependencies: + '@jest/types': 30.5.1 + chalk: 4.1.2 + graceful-fs: 4.2.11 + natural-compare: 1.4.0 + + '@jest/source-map@30.5.2': dependencies: '@jridgewell/trace-mapping': 0.3.31 callsites: 3.1.0 + convert-source-map: 2.0.0 graceful-fs: 4.2.11 - '@jest/test-result@29.7.0': + '@jest/test-result@30.5.2': dependencies: - '@jest/console': 29.7.0 - '@jest/types': 29.6.3 + '@jest/console': 30.5.2 + '@jest/types': 30.5.1 '@types/istanbul-lib-coverage': 2.0.6 collect-v8-coverage: 1.0.3 - '@jest/test-sequencer@29.7.0': + '@jest/test-sequencer@30.5.2': dependencies: - '@jest/test-result': 29.7.0 + '@jest/test-result': 30.5.2 graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 + jest-haste-map: 30.5.1 slash: 3.0.0 - '@jest/transform@29.7.0': + '@jest/transform@30.5.2': dependencies: '@babel/core': 7.28.5 - '@jest/types': 29.6.3 + '@jest/types': 30.5.1 '@jridgewell/trace-mapping': 0.3.31 - babel-plugin-istanbul: 6.1.1 + babel-plugin-istanbul: 8.0.0 chalk: 4.1.2 convert-source-map: 2.0.0 fast-json-stable-stringify: 2.1.0 graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 - micromatch: 4.0.8 + jest-haste-map: 30.5.1 + jest-regex-util: 30.5.0 + jest-util: 30.5.1 pirates: 4.0.7 slash: 3.0.0 - write-file-atomic: 4.0.2 + write-file-atomic: 5.0.1 transitivePeerDependencies: - supports-color - '@jest/types@29.6.3': - dependencies: - '@jest/schemas': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 24.13.6 - '@types/yargs': 17.0.34 - chalk: 4.1.2 - - '@jest/types@30.2.0': + '@jest/types@30.5.1': dependencies: - '@jest/pattern': 30.0.1 - '@jest/schemas': 30.0.5 + '@jest/pattern': 30.5.0 + '@jest/schemas': 30.5.0 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 '@types/node': 24.13.6 @@ -53639,6 +53703,134 @@ snapshots: '@js-sdsl/ordered-map@4.4.2': {} + '@jsonjoy.com/base64@1.1.2(tslib@2.8.1)': + dependencies: + tslib: 2.8.1 + + '@jsonjoy.com/base64@17.67.0(tslib@2.8.1)': + dependencies: + tslib: 2.8.1 + + '@jsonjoy.com/buffers@1.2.1(tslib@2.8.1)': + dependencies: + tslib: 2.8.1 + + '@jsonjoy.com/buffers@17.67.0(tslib@2.8.1)': + dependencies: + tslib: 2.8.1 + + '@jsonjoy.com/codegen@1.0.0(tslib@2.8.1)': + dependencies: + tslib: 2.8.1 + + '@jsonjoy.com/codegen@17.67.0(tslib@2.8.1)': + dependencies: + tslib: 2.8.1 + + '@jsonjoy.com/fs-core@4.80.0(tslib@2.8.1)': + dependencies: + '@jsonjoy.com/fs-node-builtins': 4.80.0(tslib@2.8.1) + '@jsonjoy.com/fs-node-utils': 4.80.0(tslib@2.8.1) + thingies: 2.6.1(tslib@2.8.1) + tslib: 2.8.1 + + '@jsonjoy.com/fs-fsa@4.80.0(tslib@2.8.1)': + dependencies: + '@jsonjoy.com/fs-core': 4.80.0(tslib@2.8.1) + '@jsonjoy.com/fs-node-builtins': 4.80.0(tslib@2.8.1) + '@jsonjoy.com/fs-node-utils': 4.80.0(tslib@2.8.1) + thingies: 2.6.1(tslib@2.8.1) + tslib: 2.8.1 + + '@jsonjoy.com/fs-node-builtins@4.80.0(tslib@2.8.1)': + dependencies: + tslib: 2.8.1 + + '@jsonjoy.com/fs-node-to-fsa@4.80.0(tslib@2.8.1)': + dependencies: + '@jsonjoy.com/fs-fsa': 4.80.0(tslib@2.8.1) + '@jsonjoy.com/fs-node-builtins': 4.80.0(tslib@2.8.1) + '@jsonjoy.com/fs-node-utils': 4.80.0(tslib@2.8.1) + tslib: 2.8.1 + + '@jsonjoy.com/fs-node-utils@4.80.0(tslib@2.8.1)': + dependencies: + '@jsonjoy.com/fs-node-builtins': 4.80.0(tslib@2.8.1) + glob-to-regex.js: 1.3.1(tslib@2.8.1) + tslib: 2.8.1 + + '@jsonjoy.com/fs-node@4.80.0(tslib@2.8.1)': + dependencies: + '@jsonjoy.com/fs-core': 4.80.0(tslib@2.8.1) + '@jsonjoy.com/fs-node-builtins': 4.80.0(tslib@2.8.1) + '@jsonjoy.com/fs-node-utils': 4.80.0(tslib@2.8.1) + '@jsonjoy.com/fs-print': 4.80.0(tslib@2.8.1) + '@jsonjoy.com/fs-snapshot': 4.80.0(tslib@2.8.1) + glob-to-regex.js: 1.3.1(tslib@2.8.1) + thingies: 2.6.1(tslib@2.8.1) + tslib: 2.8.1 + + '@jsonjoy.com/fs-print@4.80.0(tslib@2.8.1)': + dependencies: + '@jsonjoy.com/fs-node-utils': 4.80.0(tslib@2.8.1) + tree-dump: 1.1.0(tslib@2.8.1) + tslib: 2.8.1 + + '@jsonjoy.com/fs-snapshot@4.80.0(tslib@2.8.1)': + dependencies: + '@jsonjoy.com/buffers': 17.67.0(tslib@2.8.1) + '@jsonjoy.com/fs-node-utils': 4.80.0(tslib@2.8.1) + '@jsonjoy.com/json-pack': 17.67.0(tslib@2.8.1) + '@jsonjoy.com/util': 17.67.0(tslib@2.8.1) + tslib: 2.8.1 + + '@jsonjoy.com/json-pack@1.21.0(tslib@2.8.1)': + dependencies: + '@jsonjoy.com/base64': 1.1.2(tslib@2.8.1) + '@jsonjoy.com/buffers': 1.2.1(tslib@2.8.1) + '@jsonjoy.com/codegen': 1.0.0(tslib@2.8.1) + '@jsonjoy.com/json-pointer': 1.0.2(tslib@2.8.1) + '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) + hyperdyperid: 1.2.0 + thingies: 2.6.1(tslib@2.8.1) + tree-dump: 1.1.0(tslib@2.8.1) + tslib: 2.8.1 + + '@jsonjoy.com/json-pack@17.67.0(tslib@2.8.1)': + dependencies: + '@jsonjoy.com/base64': 17.67.0(tslib@2.8.1) + '@jsonjoy.com/buffers': 17.67.0(tslib@2.8.1) + '@jsonjoy.com/codegen': 17.67.0(tslib@2.8.1) + '@jsonjoy.com/json-pointer': 17.67.0(tslib@2.8.1) + '@jsonjoy.com/util': 17.67.0(tslib@2.8.1) + hyperdyperid: 1.2.0 + thingies: 2.6.1(tslib@2.8.1) + tree-dump: 1.1.0(tslib@2.8.1) + tslib: 2.8.1 + + '@jsonjoy.com/json-pointer@1.0.2(tslib@2.8.1)': + dependencies: + '@jsonjoy.com/codegen': 1.0.0(tslib@2.8.1) + '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) + tslib: 2.8.1 + + '@jsonjoy.com/json-pointer@17.67.0(tslib@2.8.1)': + dependencies: + '@jsonjoy.com/util': 17.67.0(tslib@2.8.1) + tslib: 2.8.1 + + '@jsonjoy.com/util@1.9.0(tslib@2.8.1)': + dependencies: + '@jsonjoy.com/buffers': 1.2.1(tslib@2.8.1) + '@jsonjoy.com/codegen': 1.0.0(tslib@2.8.1) + tslib: 2.8.1 + + '@jsonjoy.com/util@17.67.0(tslib@2.8.1)': + dependencies: + '@jsonjoy.com/buffers': 17.67.0(tslib@2.8.1) + '@jsonjoy.com/codegen': 17.67.0(tslib@2.8.1) + tslib: 2.8.1 + '@koa/cors@5.0.0': dependencies: vary: 1.1.2 @@ -53685,24 +53877,24 @@ snapshots: transitivePeerDependencies: - supports-color - '@mapbox/node-pre-gyp@2.0.0(encoding@0.1.13)': + '@mapbox/node-pre-gyp@2.0.0': dependencies: consola: 3.4.2 detect-libc: 2.1.2 https-proxy-agent: 7.0.6 - node-fetch: 2.7.0(encoding@0.1.13) + node-fetch: 2.7.0 nopt: 8.1.0 semver: 7.7.3 - tar: 7.5.2 + tar: 7.5.22 transitivePeerDependencies: - encoding - supports-color '@mediapipe/tasks-vision@0.10.14': {} - '@mermaid-js/parser@0.6.3': + '@mermaid-js/parser@1.2.1': dependencies: - langium: 3.3.1 + '@chevrotain/types': 11.1.2 '@mixmark-io/domino@2.2.0': {} @@ -53728,6 +53920,54 @@ snapshots: '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3': optional: true + '@napi-rs/canvas-android-arm64@1.0.10': + optional: true + + '@napi-rs/canvas-darwin-arm64@1.0.10': + optional: true + + '@napi-rs/canvas-darwin-x64@1.0.10': + optional: true + + '@napi-rs/canvas-linux-arm-gnueabihf@1.0.10': + optional: true + + '@napi-rs/canvas-linux-arm64-gnu@1.0.10': + optional: true + + '@napi-rs/canvas-linux-arm64-musl@1.0.10': + optional: true + + '@napi-rs/canvas-linux-riscv64-gnu@1.0.10': + optional: true + + '@napi-rs/canvas-linux-x64-gnu@1.0.10': + optional: true + + '@napi-rs/canvas-linux-x64-musl@1.0.10': + optional: true + + '@napi-rs/canvas-win32-arm64-msvc@1.0.10': + optional: true + + '@napi-rs/canvas-win32-x64-msvc@1.0.10': + optional: true + + '@napi-rs/canvas@1.0.10': + optionalDependencies: + '@napi-rs/canvas-android-arm64': 1.0.10 + '@napi-rs/canvas-darwin-arm64': 1.0.10 + '@napi-rs/canvas-darwin-x64': 1.0.10 + '@napi-rs/canvas-linux-arm-gnueabihf': 1.0.10 + '@napi-rs/canvas-linux-arm64-gnu': 1.0.10 + '@napi-rs/canvas-linux-arm64-musl': 1.0.10 + '@napi-rs/canvas-linux-riscv64-gnu': 1.0.10 + '@napi-rs/canvas-linux-x64-gnu': 1.0.10 + '@napi-rs/canvas-linux-x64-musl': 1.0.10 + '@napi-rs/canvas-win32-arm64-msvc': 1.0.10 + '@napi-rs/canvas-win32-x64-msvc': 1.0.10 + optional: true + '@napi-rs/snappy-android-arm-eabi@7.3.3': optional: true @@ -53791,8 +54031,17 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true + '@napi-rs/wasm-runtime@1.2.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': + dependencies: + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@tybys/wasm-util': 0.10.4 + optional: true + '@noble/hashes@1.8.0': {} + '@noble/hashes@2.4.0': {} + '@nodable/entities@3.0.0': {} '@nodelib/fs.scandir@2.1.5': @@ -53807,16 +54056,6 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.1 - '@npmcli/fs@2.1.2': - dependencies: - '@gar/promisify': 1.1.3 - semver: 7.7.3 - - '@npmcli/move-file@2.0.1': - dependencies: - mkdirp: 1.0.4 - rimraf: 3.0.2 - '@octokit/app@14.1.0': dependencies: '@octokit/auth-app': 6.1.4 @@ -54759,42 +54998,78 @@ snapshots: '@parcel/watcher-android-arm64@2.5.1': optional: true + '@parcel/watcher-android-arm64@2.6.0': + optional: true + '@parcel/watcher-darwin-arm64@2.5.1': optional: true + '@parcel/watcher-darwin-arm64@2.6.0': + optional: true + '@parcel/watcher-darwin-x64@2.5.1': optional: true + '@parcel/watcher-darwin-x64@2.6.0': + optional: true + '@parcel/watcher-freebsd-x64@2.5.1': optional: true + '@parcel/watcher-freebsd-x64@2.6.0': + optional: true + '@parcel/watcher-linux-arm-glibc@2.5.1': optional: true + '@parcel/watcher-linux-arm-glibc@2.6.0': + optional: true + '@parcel/watcher-linux-arm-musl@2.5.1': optional: true + '@parcel/watcher-linux-arm-musl@2.6.0': + optional: true + '@parcel/watcher-linux-arm64-glibc@2.5.1': optional: true + '@parcel/watcher-linux-arm64-glibc@2.6.0': + optional: true + '@parcel/watcher-linux-arm64-musl@2.5.1': optional: true + '@parcel/watcher-linux-arm64-musl@2.6.0': + optional: true + '@parcel/watcher-linux-x64-glibc@2.5.1': optional: true + '@parcel/watcher-linux-x64-glibc@2.6.0': + optional: true + '@parcel/watcher-linux-x64-musl@2.5.1': optional: true + '@parcel/watcher-linux-x64-musl@2.6.0': + optional: true + '@parcel/watcher-win32-arm64@2.5.1': optional: true + '@parcel/watcher-win32-arm64@2.6.0': + optional: true + '@parcel/watcher-win32-ia32@2.5.1': optional: true '@parcel/watcher-win32-x64@2.5.1': optional: true + '@parcel/watcher-win32-x64@2.6.0': + optional: true + '@parcel/watcher@2.5.1': dependencies: detect-libc: 1.0.3 @@ -54817,6 +55092,26 @@ snapshots: '@parcel/watcher-win32-x64': 2.5.1 optional: true + '@parcel/watcher@2.6.0': + dependencies: + detect-libc: 2.1.2 + is-glob: 4.0.3 + node-addon-api: 7.1.1 + picomatch: 4.0.7 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.6.0 + '@parcel/watcher-darwin-arm64': 2.6.0 + '@parcel/watcher-darwin-x64': 2.6.0 + '@parcel/watcher-freebsd-x64': 2.6.0 + '@parcel/watcher-linux-arm-glibc': 2.6.0 + '@parcel/watcher-linux-arm-musl': 2.6.0 + '@parcel/watcher-linux-arm64-glibc': 2.6.0 + '@parcel/watcher-linux-arm64-musl': 2.6.0 + '@parcel/watcher-linux-x64-glibc': 2.6.0 + '@parcel/watcher-linux-x64-musl': 2.6.0 + '@parcel/watcher-win32-arm64': 2.6.0 + '@parcel/watcher-win32-x64': 2.6.0 + '@pdf-lib/standard-fonts@1.0.0': dependencies: pako: 1.0.11 @@ -54825,12 +55120,120 @@ snapshots: dependencies: pako: 1.0.11 + '@peculiar/asn1-cms@2.10.0': + dependencies: + '@peculiar/asn1-schema': 2.10.0 + '@peculiar/asn1-x509': 2.10.0 + '@peculiar/asn1-x509-attr': 2.10.0 + asn1js: 3.0.10 + tslib: 2.8.1 + + '@peculiar/asn1-csr@2.10.0': + dependencies: + '@peculiar/asn1-schema': 2.10.0 + '@peculiar/asn1-x509': 2.10.0 + asn1js: 3.0.10 + tslib: 2.8.1 + + '@peculiar/asn1-ecc@2.10.0': + dependencies: + '@peculiar/asn1-schema': 2.10.0 + '@peculiar/asn1-x509': 2.10.0 + asn1js: 3.0.10 + tslib: 2.8.1 + + '@peculiar/asn1-pfx@2.10.0': + dependencies: + '@peculiar/asn1-cms': 2.10.0 + '@peculiar/asn1-pkcs8': 2.10.0 + '@peculiar/asn1-rsa': 2.10.0 + '@peculiar/asn1-schema': 2.10.0 + asn1js: 3.0.10 + tslib: 2.8.1 + + '@peculiar/asn1-pkcs8@2.10.0': + dependencies: + '@peculiar/asn1-schema': 2.10.0 + '@peculiar/asn1-x509': 2.10.0 + asn1js: 3.0.10 + tslib: 2.8.1 + + '@peculiar/asn1-pkcs9@2.10.0': + dependencies: + '@peculiar/asn1-cms': 2.10.0 + '@peculiar/asn1-pfx': 2.10.0 + '@peculiar/asn1-pkcs8': 2.10.0 + '@peculiar/asn1-schema': 2.10.0 + '@peculiar/asn1-x509': 2.10.0 + '@peculiar/asn1-x509-attr': 2.10.0 + asn1js: 3.0.10 + tslib: 2.8.1 + + '@peculiar/asn1-rsa@2.10.0': + dependencies: + '@peculiar/asn1-schema': 2.10.0 + '@peculiar/asn1-x509': 2.10.0 + asn1js: 3.0.10 + tslib: 2.8.1 + + '@peculiar/asn1-schema@2.10.0': + dependencies: + '@peculiar/utils': 2.0.3 + asn1js: 3.0.10 + tslib: 2.8.1 + + '@peculiar/asn1-x509-attr@2.10.0': + dependencies: + '@peculiar/asn1-schema': 2.10.0 + '@peculiar/asn1-x509': 2.10.0 + asn1js: 3.0.10 + tslib: 2.8.1 + + '@peculiar/asn1-x509@2.10.0': + dependencies: + '@peculiar/asn1-schema': 2.10.0 + '@peculiar/utils': 2.0.3 + asn1js: 3.0.10 + tslib: 2.8.1 + + '@peculiar/json-schema@1.1.12': + dependencies: + tslib: 2.8.1 + + '@peculiar/utils@2.0.3': + dependencies: + tslib: 2.8.1 + + '@peculiar/webcrypto@1.7.1': + dependencies: + '@peculiar/asn1-schema': 2.10.0 + '@peculiar/json-schema': 1.1.12 + '@peculiar/utils': 2.0.3 + tslib: 2.8.1 + webcrypto-core: 1.9.2 + + '@peculiar/x509@1.14.3': + dependencies: + '@peculiar/asn1-cms': 2.10.0 + '@peculiar/asn1-csr': 2.10.0 + '@peculiar/asn1-ecc': 2.10.0 + '@peculiar/asn1-pkcs9': 2.10.0 + '@peculiar/asn1-rsa': 2.10.0 + '@peculiar/asn1-schema': 2.10.0 + '@peculiar/asn1-x509': 2.10.0 + pvtsutils: 1.3.6 + reflect-metadata: 0.2.2 + tslib: 2.8.1 + tsyringe: 4.10.0 + '@pkgjs/parseargs@0.11.0': optional: true - '@playwright/test@1.56.1': + '@pkgr/core@0.3.6': {} + + '@playwright/test@1.63.0': dependencies: - playwright: 1.56.1 + playwright: 1.63.0 '@polar-sh/sdk@0.37.0': dependencies: @@ -54864,12 +55267,10 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@puppeteer/browsers@3.2.2(yauzl@2.10.0)': + '@puppeteer/browsers@3.2.2': dependencies: modern-tar: 0.8.5 yargs: 18.2.0 - optionalDependencies: - yauzl: 2.10.0 '@remirror/core-constants@3.0.0': {} @@ -54880,23 +55281,21 @@ snapshots: domhandler: 5.0.3 selderee: 0.11.0 - '@signpdf/placeholder-pdf-lib@3.2.6(pdf-lib@1.17.1)': + '@signpdf/placeholder-pdf-lib@3.3.0(pdf-lib@1.17.1)': dependencies: - '@signpdf/utils': 3.2.4 + '@signpdf/utils': 3.3.0 pdf-lib: 1.17.1 - '@signpdf/signer-p12@3.2.4(node-forge@1.3.1)': + '@signpdf/signer-p12@3.3.0(node-forge@1.4.0)': dependencies: - '@signpdf/utils': 3.2.4 - node-forge: 1.3.1 + '@signpdf/utils': 3.3.0 + node-forge: 1.4.0 - '@signpdf/signpdf@3.2.5': + '@signpdf/signpdf@3.3.0': dependencies: - '@signpdf/utils': 3.2.4 - - '@signpdf/utils@3.2.4': {} + '@signpdf/utils': 3.3.0 - '@sinclair/typebox@0.27.8': {} + '@signpdf/utils@3.3.0': {} '@sinclair/typebox@0.34.41': {} @@ -54906,11 +55305,7 @@ snapshots: dependencies: type-detect: 4.0.8 - '@sinonjs/fake-timers@10.3.0': - dependencies: - '@sinonjs/commons': 3.0.1 - - '@sinonjs/fake-timers@13.0.5': + '@sinonjs/fake-timers@15.4.0': dependencies: '@sinonjs/commons': 3.0.1 @@ -54988,6 +55383,16 @@ snapshots: '@stablelib/base64@1.0.1': {} + '@stylistic/eslint-plugin@5.10.0(eslint@9.39.5(jiti@2.7.0))': + dependencies: + '@eslint-community/eslint-utils': 4.10.1(eslint@9.39.5(jiti@2.7.0)) + '@typescript-eslint/types': 8.71.1 + eslint: 9.39.5(jiti@2.7.0) + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + estraverse: 5.3.0 + picomatch: 4.0.3 + '@szmarczak/http-timer@4.0.6': dependencies: defer-to-connect: 2.0.1 @@ -55263,8 +55668,6 @@ snapshots: '@tokenizer/token@0.3.0': {} - '@tootallnate/once@2.0.0': {} - '@trysound/sax@0.2.0': {} '@tsconfig/node10@1.0.11': {} @@ -55280,6 +55683,11 @@ snapshots: tslib: 2.8.1 optional: true + '@tybys/wasm-util@0.10.4': + dependencies: + tslib: 2.8.1 + optional: true + '@types/accepts@1.3.7': dependencies: '@types/node': 24.13.6 @@ -55345,7 +55753,7 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: - '@types/express-serve-static-core': 5.1.0 + '@types/express-serve-static-core': 5.1.3 '@types/node': 24.13.6 '@types/connect@3.4.38': @@ -55492,24 +55900,10 @@ snapshots: '@types/domhandler@2.4.5': {} - '@types/dompurify@3.2.0': - dependencies: - dompurify: 3.3.0 - '@types/domutils@2.1.0': dependencies: domutils: 3.2.2 - '@types/eslint-scope@3.7.7': - dependencies: - '@types/eslint': 9.6.1 - '@types/estree': 1.0.8 - - '@types/eslint@9.6.1': - dependencies: - '@types/estree': 1.0.8 - '@types/json-schema': 7.0.15 - '@types/estree@1.0.8': {} '@types/events@3.0.3': {} @@ -55537,7 +55931,7 @@ snapshots: '@types/range-parser': 1.2.7 '@types/send': 1.2.1 - '@types/express-serve-static-core@5.1.0': + '@types/express-serve-static-core@5.1.3': dependencies: '@types/node': 24.13.6 '@types/qs': 6.9.18 @@ -55551,16 +55945,18 @@ snapshots: '@types/qs': 6.9.18 '@types/serve-static': 1.15.10 + '@types/express@5.0.6': + dependencies: + '@types/body-parser': 1.19.6 + '@types/express-serve-static-core': 5.1.3 + '@types/serve-static': 2.2.0 + '@types/fs-extra@9.0.13': dependencies: '@types/node': 24.13.6 '@types/geojson@7946.0.16': {} - '@types/graceful-fs@4.1.9': - dependencies: - '@types/node': 24.13.6 - '@types/hast@3.0.4': dependencies: '@types/unist': 3.0.3 @@ -55584,10 +55980,6 @@ snapshots: '@types/http-errors@2.0.5': {} - '@types/http-proxy@1.17.17': - dependencies: - '@types/node': 24.13.6 - '@types/istanbul-lib-coverage@2.0.6': {} '@types/istanbul-lib-report@3.0.3': @@ -55598,10 +55990,10 @@ snapshots: dependencies: '@types/istanbul-lib-report': 3.0.3 - '@types/jest@29.5.14': + '@types/jest@30.0.0': dependencies: - expect: 29.7.0 - pretty-format: 29.7.0 + expect: 30.5.2 + pretty-format: 30.2.0 '@types/js-yaml@4.0.9': {} @@ -55714,11 +56106,7 @@ snapshots: '@types/node-fetch@2.6.13': dependencies: '@types/node': 24.13.6 - form-data: 4.0.4 - - '@types/node-forge@1.3.14': - dependencies: - '@types/node': 24.13.6 + form-data: 4.0.6 '@types/node@16.9.1': {} @@ -55726,17 +56114,12 @@ snapshots: dependencies: undici-types: 5.26.5 - '@types/node@22.19.0': - dependencies: - undici-types: 6.21.0 - '@types/node@24.13.6': dependencies: undici-types: 7.18.2 - '@types/nodemailer@6.4.21': + '@types/nodemailer@8.0.2': dependencies: - '@aws-sdk/client-ses': 3.1137.0 '@types/node': 24.13.6 '@types/oauth@0.9.6': @@ -55785,12 +56168,6 @@ snapshots: pg-protocol: 1.10.3 pg-types: 2.2.0 - '@types/plist@3.0.5': - dependencies: - '@types/node': 24.13.6 - xmlbuilder: 15.1.1 - optional: true - '@types/png-chunks-extract@1.0.2': {} '@types/pug@2.0.10': {} @@ -55823,13 +56200,9 @@ snapshots: dependencies: '@types/node': 24.13.6 - '@types/retry@0.12.0': {} - - '@types/sanitize-html@2.16.0': + '@types/sanitize-html@2.16.2': dependencies: - htmlparser2: 8.0.2 - - '@types/semver@7.7.1': {} + htmlparser2: 12.0.0 '@types/send@0.17.6': dependencies: @@ -55850,12 +56223,13 @@ snapshots: '@types/node': 24.13.6 '@types/send': 0.17.6 - '@types/snappyjs@0.7.1': {} - - '@types/sockjs@0.3.36': + '@types/serve-static@2.2.0': dependencies: + '@types/http-errors': 2.0.5 '@types/node': 24.13.6 + '@types/snappyjs@0.7.1': {} + '@types/stack-utils@2.0.3': {} '@types/strip-bom@3.0.0': {} @@ -55885,9 +56259,6 @@ snapshots: '@types/uuid@8.3.4': {} - '@types/verror@1.10.11': - optional: true - '@types/web-push@3.6.4': dependencies: '@types/node': 24.13.6 @@ -55908,102 +56279,177 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@types/yauzl@2.10.3': + '@typescript-eslint/eslint-plugin@8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3)': dependencies: - '@types/node': 24.13.6 - optional: true + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.71.1 + '@typescript-eslint/type-utils': 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/utils': 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.71.1 + eslint: 9.39.5(jiti@2.7.0) + ignore: 7.0.12 + natural-compare: 1.4.0 + ts-api-utils: 2.5.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color - '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)': + '@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3)': dependencies: - '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 6.21.0 + '@typescript-eslint/scope-manager': 8.71.1 + '@typescript-eslint/types': 8.71.1 + '@typescript-eslint/typescript-estree': 8.71.1(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.71.1 debug: 4.4.3 - eslint: 8.57.1 - graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare: 1.4.0 - semver: 7.7.3 - ts-api-utils: 1.4.3(typescript@5.9.3) - optionalDependencies: + eslint: 9.39.5(jiti@2.7.0) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3)': + '@typescript-eslint/project-service@8.71.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 6.21.0 + '@typescript-eslint/tsconfig-utils': 8.71.1(typescript@5.9.3) + '@typescript-eslint/types': 8.71.1 debug: 4.4.3 - eslint: 8.57.1 - optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@6.21.0': + '@typescript-eslint/scope-manager@8.71.1': + dependencies: + '@typescript-eslint/types': 8.71.1 + '@typescript-eslint/visitor-keys': 8.71.1 + + '@typescript-eslint/tsconfig-utils@8.71.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 + typescript: 5.9.3 - '@typescript-eslint/type-utils@6.21.0(eslint@8.57.1)(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3)': dependencies: - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.9.3) - '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/types': 8.71.1 + '@typescript-eslint/typescript-estree': 8.71.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) debug: 4.4.3 - eslint: 8.57.1 - ts-api-utils: 1.4.3(typescript@5.9.3) - optionalDependencies: + eslint: 9.39.5(jiti@2.7.0) + ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@6.21.0': {} + '@typescript-eslint/types@8.71.1': {} - '@typescript-eslint/typescript-estree@6.21.0(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.71.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 + '@typescript-eslint/project-service': 8.71.1(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.71.1(typescript@5.9.3) + '@typescript-eslint/types': 8.71.1 + '@typescript-eslint/visitor-keys': 8.71.1 debug: 4.4.3 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.3 + minimatch: 10.2.6 semver: 7.7.3 - ts-api-utils: 1.4.3(typescript@5.9.3) - optionalDependencies: + tinyglobby: 0.2.17 + ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@6.21.0(eslint@8.57.1)(typescript@5.9.3)': + '@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.1) - '@types/json-schema': 7.0.15 - '@types/semver': 7.7.1 - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.9.3) - eslint: 8.57.1 - semver: 7.7.3 + '@eslint-community/eslint-utils': 4.10.1(eslint@9.39.5(jiti@2.7.0)) + '@typescript-eslint/scope-manager': 8.71.1 + '@typescript-eslint/types': 8.71.1 + '@typescript-eslint/typescript-estree': 8.71.1(typescript@5.9.3) + eslint: 9.39.5(jiti@2.7.0) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - - typescript - '@typescript-eslint/visitor-keys@6.21.0': + '@typescript-eslint/visitor-keys@8.71.1': dependencies: - '@typescript-eslint/types': 6.21.0 - eslint-visitor-keys: 3.4.3 + '@typescript-eslint/types': 8.71.1 + eslint-visitor-keys: 5.0.1 '@ungap/structured-clone@1.3.0': {} - '@vercel/webpack-asset-relocator-loader@1.10.0(encoding@0.1.13)': + '@unrs/resolver-binding-android-arm-eabi@1.12.2': + optional: true + + '@unrs/resolver-binding-android-arm64@1.12.2': + optional: true + + '@unrs/resolver-binding-darwin-arm64@1.12.2': + optional: true + + '@unrs/resolver-binding-darwin-x64@1.12.2': + optional: true + + '@unrs/resolver-binding-freebsd-x64@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-arm-musleabihf@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-arm64-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-arm64-musl@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-loong64-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-loong64-musl@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-ppc64-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-riscv64-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-riscv64-musl@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-s390x-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-x64-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-x64-musl@1.12.2': + optional: true + + '@unrs/resolver-binding-openharmony-arm64@1.12.2': + optional: true + + '@unrs/resolver-binding-wasm32-wasi@1.12.2': + dependencies: + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@napi-rs/wasm-runtime': 1.2.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + optional: true + + '@unrs/resolver-binding-win32-arm64-msvc@1.12.2': + optional: true + + '@unrs/resolver-binding-win32-ia32-msvc@1.12.2': + optional: true + + '@unrs/resolver-binding-win32-x64-msvc@1.12.2': + optional: true + + '@upsetjs/venn.js@2.0.0': + optionalDependencies: + d3-selection: 3.0.0 + d3-transition: 3.0.1(d3-selection@3.0.0) + + '@vercel/webpack-asset-relocator-loader@1.10.0': dependencies: - '@mapbox/node-pre-gyp': 2.0.0(encoding@0.1.13) + '@mapbox/node-pre-gyp': 2.0.0 acorn: 8.15.0 acorn-class-fields: 1.0.0(acorn@8.15.0) acorn-private-class-elements: 1.0.0(acorn@8.15.0) @@ -56099,22 +56545,22 @@ snapshots: '@webassemblyjs/ast': 1.14.1 '@xtuc/long': 4.2.2 - '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.102.1)': + '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.111.1)': dependencies: - webpack: 5.102.1(esbuild@0.25.12)(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(webpack-dev-server@4.15.2)(webpack@5.102.1) + webpack: 5.111.1(esbuild@0.25.12)(postcss@8.5.28)(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(webpack-dev-server@6.0.0)(webpack@5.111.1) - '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.102.1)': + '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.111.1)': dependencies: - webpack: 5.102.1(esbuild@0.25.12)(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(webpack-dev-server@4.15.2)(webpack@5.102.1) + webpack: 5.111.1(esbuild@0.25.12)(postcss@8.5.28)(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(webpack-dev-server@6.0.0)(webpack@5.111.1) - '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@4.15.2)(webpack@5.102.1)': + '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@6.0.0)(webpack@5.111.1)': dependencies: - webpack: 5.102.1(esbuild@0.25.12)(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(webpack-dev-server@4.15.2)(webpack@5.102.1) + webpack: 5.111.1(esbuild@0.25.12)(postcss@8.5.28)(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(webpack-dev-server@6.0.0)(webpack@5.111.1) optionalDependencies: - webpack-dev-server: 4.15.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)(webpack-cli@5.1.4)(webpack@5.102.1) + webpack-dev-server: 6.0.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)(webpack-cli@5.1.4)(webpack@5.111.1) '@wolfy1339/lru-cache@11.0.2-patch.1': {} @@ -56138,6 +56584,8 @@ snapshots: abbrev@3.0.1: {} + abbrev@4.0.0: {} + abort-controller@3.0.0: dependencies: event-target-shim: 5.0.1 @@ -56147,14 +56595,15 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-class-fields@1.0.0(acorn@8.15.0): + accepts@2.0.0: dependencies: - acorn: 8.15.0 - acorn-private-class-elements: 1.0.0(acorn@8.15.0) + mime-types: 3.0.2 + negotiator: 1.1.0 - acorn-import-phases@1.0.4(acorn@8.15.0): + acorn-class-fields@1.0.0(acorn@8.15.0): dependencies: acorn: 8.15.0 + acorn-private-class-elements: 1.0.0(acorn@8.15.0) acorn-jsx@5.3.2(acorn@8.15.0): dependencies: @@ -56196,6 +56645,10 @@ snapshots: dependencies: ajv: 8.17.1 + ajv-formats@3.0.1: + dependencies: + ajv: 8.20.0 + ajv-keywords@3.5.2(ajv@6.12.6): dependencies: ajv: 6.12.6 @@ -56205,6 +56658,11 @@ snapshots: ajv: 8.17.1 fast-deep-equal: 3.1.3 + ajv-keywords@5.1.0(ajv@8.20.0): + dependencies: + ajv: 8.20.0 + fast-deep-equal: 3.1.3 + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -56212,6 +56670,13 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 + ajv@6.15.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 @@ -56219,16 +56684,23 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - allure-js-commons@3.4.2(allure-playwright@3.4.2(@playwright/test@1.56.1)): + ajv@8.20.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.1.0 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + + allure-js-commons@3.13.0(allure-playwright@3.13.0(@playwright/test@1.63.0)): dependencies: md5: 2.3.0 optionalDependencies: - allure-playwright: 3.4.2(@playwright/test@1.56.1) + allure-playwright: 3.13.0(@playwright/test@1.63.0) - allure-playwright@3.4.2(@playwright/test@1.56.1): + allure-playwright@3.13.0(@playwright/test@1.63.0): dependencies: - '@playwright/test': 1.56.1 - allure-js-commons: 3.4.2(allure-playwright@3.4.2(@playwright/test@1.56.1)) + '@playwright/test': 1.63.0 + allure-js-commons: 3.13.0(allure-playwright@3.13.0(@playwright/test@1.63.0)) ansi-escapes@4.3.2: dependencies: @@ -56279,48 +56751,53 @@ snapshots: ts-invariant: 0.4.4 tslib: 1.14.1 - app-builder-bin@5.0.0-alpha.10: {} - - app-builder-lib@25.1.8(dmg-builder@25.1.8): + app-builder-lib@26.15.3(dmg-builder@26.15.3): dependencies: - '@develar/schema-utils': 2.6.5 + '@electron/asar': 3.4.1 + '@electron/fuses': 1.8.0 + '@electron/get': 3.1.0 '@electron/notarize': 2.5.0 - '@electron/osx-sign': 1.3.1 - '@electron/rebuild': 3.6.1 - '@electron/universal': 2.0.1 + '@electron/osx-sign': 1.3.3 + '@electron/rebuild': 4.2.1 + '@electron/universal': 2.0.3 '@malept/flatpak-bundler': 0.4.0 + '@noble/hashes': 2.4.0 + '@peculiar/webcrypto': 1.7.1 '@types/fs-extra': 9.0.13 + ajv: 8.20.0 + asn1js: 3.0.10 async-exit-hook: 2.0.1 - bluebird-lst: 1.0.9 - builder-util: 25.1.7 - builder-util-runtime: 9.2.10 + builder-util: 26.15.3 + builder-util-runtime: 9.7.0 chromium-pickle-js: 0.2.0 - config-file-ts: 0.2.8-rc1 + ci-info: 4.3.1 debug: 4.4.3 - dmg-builder: 25.1.8 + dmg-builder: 26.15.3 dotenv: 16.6.1 dotenv-expand: 11.0.7 ejs: 3.1.10 - electron-publish: 25.1.7 - form-data: 4.0.4 + electron-publish: 26.15.3 fs-extra: 10.1.0 hosted-git-info: 4.1.0 - is-ci: 3.0.1 isbinaryfile: 5.0.6 - js-yaml: 4.1.0 + jiti: 2.7.0 + js-yaml: 4.3.2 json5: 2.2.3 lazy-val: 1.0.5 - minimatch: 10.1.1 + minimatch: 10.2.6 + pkijs: 3.4.1 + plist: 3.1.0 + proper-lockfile: 4.1.2 resedit: 1.7.2 - sanitize-filename: 1.6.3 semver: 7.7.3 - tar: 6.2.1 + tar: 7.5.22 temp-file: 3.4.0 + tiny-async-pool: 1.3.0 + unzipper: 0.12.5 + which: 5.0.0 transitivePeerDependencies: - supports-color - aproba@2.1.0: {} - archiver-utils@5.0.2: dependencies: glob: 10.4.5 @@ -56344,11 +56821,6 @@ snapshots: - bare-abort-controller - react-native-b4a - are-we-there-yet@3.0.1: - dependencies: - delegates: 1.0.0 - readable-stream: 3.6.2 - arg@4.1.3: {} arg@5.0.2: {} @@ -56428,11 +56900,11 @@ snapshots: minimalistic-assert: 1.0.1 safer-buffer: 2.1.2 - assert-plus@1.0.0: - optional: true - - astral-regex@2.0.0: - optional: true + asn1js@3.0.10: + dependencies: + pvtsutils: 1.3.6 + pvutils: 1.2.0 + tslib: 2.8.1 async-exit-hook@2.0.1: {} @@ -56458,53 +56930,62 @@ snapshots: dependencies: tslib: 2.8.1 - autoprefixer@10.4.21(postcss@8.5.6): + autoprefixer@10.4.21(postcss@8.5.16): + dependencies: + browserslist: 4.28.2 + caniuse-lite: 1.0.30001754 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.1.1 + postcss: 8.5.16 + postcss-value-parser: 4.2.0 + + autoprefixer@10.4.21(postcss@8.5.28): dependencies: browserslist: 4.28.2 caniuse-lite: 1.0.30001754 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 - postcss: 8.5.6 + postcss: 8.5.28 postcss-value-parser: 4.2.0 available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.1.0 + aws4@1.13.2: {} + axobject-query@4.1.0: {} b4a@1.7.3: {} - babel-jest@29.7.0(@babel/core@7.28.5): + babel-jest@30.5.2(@babel/core@7.28.5): dependencies: '@babel/core': 7.28.5 - '@jest/transform': 29.7.0 + '@jest/transform': 30.5.2 '@types/babel__core': 7.20.5 - babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.28.5) + babel-plugin-istanbul: 8.0.0 + babel-preset-jest: 30.5.0(@babel/core@7.28.5) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 transitivePeerDependencies: - supports-color - babel-plugin-istanbul@6.1.1: + babel-plugin-istanbul@8.0.0: dependencies: '@babel/helper-plugin-utils': 7.27.1 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: 5.2.1 - test-exclude: 6.0.0 + istanbul-lib-instrument: 6.0.3 + test-exclude: 7.0.2 transitivePeerDependencies: - supports-color - babel-plugin-jest-hoist@29.6.3: + babel-plugin-jest-hoist@30.5.0: dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.28.5 '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.28.0 babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.5): dependencies: @@ -56525,14 +57006,16 @@ snapshots: '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.5) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.5) - babel-preset-jest@29.6.3(@babel/core@7.28.5): + babel-preset-jest@30.5.0(@babel/core@7.28.5): dependencies: '@babel/core': 7.28.5 - babel-plugin-jest-hoist: 29.6.3 + babel-plugin-jest-hoist: 30.5.0 babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.5) balanced-match@1.0.2: {} + balanced-match@4.0.4: {} + bare-events@2.8.2: {} base64-arraybuffer@1.0.2: @@ -56564,20 +57047,10 @@ snapshots: dependencies: file-uri-to-path: 1.0.0 - bl@4.1.0: - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.2 - block-stream2@2.1.0: dependencies: readable-stream: 3.6.2 - bluebird-lst@1.0.9: - dependencies: - bluebird: 3.7.2 - bluebird@3.4.7: {} bluebird@3.7.2: {} @@ -56605,6 +57078,20 @@ snapshots: type-is: 1.6.18 unpipe: 1.0.0 + body-parser@2.3.0: + dependencies: + bytes: 3.1.2 + content-type: 2.1.0 + debug: 4.4.3 + http-errors: 2.0.1 + iconv-lite: 0.7.3 + on-finished: 2.4.1 + qs: 6.16.0 + raw-body: 3.0.2 + type-is: 2.1.0 + transitivePeerDependencies: + - supports-color + bonjour-service@1.3.0: dependencies: fast-deep-equal: 3.1.3 @@ -56628,6 +57115,10 @@ snapshots: dependencies: balanced-match: 1.0.2 + brace-expansion@5.0.12: + dependencies: + balanced-match: 4.0.4 + braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -56663,8 +57154,6 @@ snapshots: buffer-alloc-unsafe: 1.1.0 buffer-fill: 1.0.0 - buffer-crc32@0.2.13: {} - buffer-crc32@1.0.0: {} buffer-equal-constant-time@1.0.1: {} @@ -56698,44 +57187,35 @@ snapshots: dependencies: node-gyp-build: 4.8.4 - builder-util-runtime@9.2.10: - dependencies: - debug: 4.4.3 - sax: 1.4.3 - transitivePeerDependencies: - - supports-color - - builder-util-runtime@9.3.1: + builder-util-runtime@9.7.0: dependencies: debug: 4.4.3 sax: 1.4.3 transitivePeerDependencies: - supports-color - builder-util@25.1.7: + builder-util@26.15.3: dependencies: - 7zip-bin: 5.2.0 '@types/debug': 4.1.12 - app-builder-bin: 5.0.0-alpha.10 - bluebird-lst: 1.0.9 - builder-util-runtime: 9.2.10 + builder-util-runtime: 9.7.0 chalk: 4.1.2 cross-spawn: 7.0.6 debug: 4.4.3 fs-extra: 10.1.0 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 - is-ci: 3.0.1 - js-yaml: 4.1.0 + js-yaml: 4.3.2 + sanitize-filename: 1.6.3 source-map-support: 0.5.21 stat-mode: 1.0.0 temp-file: 3.4.0 + tiny-async-pool: 1.3.0 transitivePeerDependencies: - supports-color - builtins@5.1.0: + bundle-name@4.1.1: dependencies: - semver: 7.7.3 + run-applescript: 7.1.0 busboy@1.6.0: dependencies: @@ -56743,26 +57223,7 @@ snapshots: bytes@3.1.2: {} - cacache@16.1.3: - dependencies: - '@npmcli/fs': 2.1.2 - '@npmcli/move-file': 2.0.1 - chownr: 2.0.0 - fs-minipass: 2.1.0 - glob: 8.1.0 - infer-owner: 1.0.4 - lru-cache: 7.18.3 - minipass: 3.3.6 - minipass-collect: 1.0.2 - minipass-flush: 1.0.5 - minipass-pipeline: 1.2.4 - mkdirp: 1.0.4 - p-map: 4.0.0 - promise-inflight: 1.0.1 - rimraf: 3.0.2 - ssri: 9.0.1 - tar: 6.2.1 - unique-filename: 2.0.1 + bytestreamjs@2.0.1: {} cache-content-type@1.0.1: dependencies: @@ -56884,34 +57345,20 @@ snapshots: lodash.reject: 4.6.0 lodash.some: 4.6.0 - cheerio@1.1.2: + cheerio@1.2.0: dependencies: cheerio-select: 2.1.0 dom-serializer: 2.0.0 domhandler: 5.0.3 domutils: 3.2.2 encoding-sniffer: 0.2.1 - htmlparser2: 10.0.0 + htmlparser2: 10.1.0 parse5: 7.3.0 parse5-htmlparser2-tree-adapter: 7.1.0 parse5-parser-stream: 7.1.2 - undici: 7.18.2 + undici: 7.30.0 whatwg-mimetype: 4.0.0 - chevrotain-allstar@0.3.1(chevrotain@11.0.3): - dependencies: - chevrotain: 11.0.3 - lodash-es: 4.17.21 - - chevrotain@11.0.3: - dependencies: - '@chevrotain/cst-dts-gen': 11.0.3 - '@chevrotain/gast': 11.0.3 - '@chevrotain/regexp-to-ast': 11.0.3 - '@chevrotain/types': 11.0.3 - '@chevrotain/utils': 11.0.3 - lodash-es: 4.17.21 - chokidar@3.6.0: dependencies: anymatch: 3.1.3 @@ -56928,7 +57375,9 @@ snapshots: dependencies: readdirp: 4.1.2 - chownr@2.0.0: {} + chokidar@5.0.0: + dependencies: + readdirp: 5.1.1 chownr@3.0.0: {} @@ -56942,12 +57391,8 @@ snapshots: chromium-pickle-js@0.2.0: {} - ci-info@3.9.0: {} - ci-info@4.3.1: {} - cjs-module-lexer@1.4.3: {} - cjs-module-lexer@2.2.1: {} clean-css@5.3.3: @@ -56956,18 +57401,6 @@ snapshots: clean-stack@2.2.0: {} - cli-cursor@3.1.0: - dependencies: - restore-cursor: 3.1.0 - - cli-spinners@2.9.2: {} - - cli-truncate@2.1.0: - dependencies: - slice-ansi: 3.0.0 - string-width: 4.2.3 - optional: true - cli-truncate@4.0.0: dependencies: slice-ansi: 5.0.0 @@ -57007,13 +57440,11 @@ snapshots: dependencies: mimic-response: 1.0.1 - clone@1.0.4: {} - co-body@6.2.0: dependencies: '@hapi/bourne': 3.0.0 inflation: 2.1.0 - qs: 6.11.2 + qs: 6.16.0 raw-body: 2.5.2 type-is: 1.6.18 @@ -57058,8 +57489,6 @@ snapshots: dependencies: color-name: 2.0.2 - color-support@1.1.3: {} - color@3.2.1: dependencies: color-convert: 1.9.3 @@ -57115,11 +57544,11 @@ snapshots: dependencies: mime-db: 1.54.0 - compression-webpack-plugin@10.0.0(webpack@5.102.1): + compression-webpack-plugin@12.0.0(webpack@5.111.1): dependencies: schema-utils: 4.3.3 - serialize-javascript: 6.0.2 - webpack: 5.102.1(esbuild@0.25.12)(webpack-cli@5.1.4) + serialize-javascript: 7.1.2 + webpack: 5.111.1(esbuild@0.25.12)(postcss@8.5.28)(webpack-cli@5.1.4) compression@1.8.1: dependencies: @@ -57150,35 +57579,26 @@ snapshots: confbox@0.2.2: {} - config-file-ts@0.2.8-rc1: - dependencies: - glob: 10.4.5 - typescript: 5.9.3 - connect-history-api-fallback@2.0.0: {} - connect-multiparty@2.2.0: - dependencies: - http-errors: 1.7.3 - multiparty: 4.2.3 - on-finished: 2.3.0 - qs: 6.5.3 - type-is: 1.6.18 - consola@3.4.2: {} - console-control-strings@1.1.0: {} - content-disposition@0.5.4: dependencies: safe-buffer: 5.2.1 + content-disposition@1.1.0: {} + content-type@1.0.5: {} + content-type@2.1.0: {} + convert-source-map@2.0.0: {} cookie-signature@1.0.6: {} + cookie-signature@1.2.2: {} + cookie@0.7.1: {} cookiejar@2.1.4: {} @@ -57190,24 +57610,20 @@ snapshots: copy-to@2.0.1: {} - copy-webpack-plugin@11.0.0(webpack@5.102.1): + copy-webpack-plugin@14.0.0(webpack@5.111.1): dependencies: - fast-glob: 3.3.3 glob-parent: 6.0.2 - globby: 13.2.2 normalize-path: 3.0.0 schema-utils: 4.3.3 - serialize-javascript: 6.0.2 - webpack: 5.102.1(esbuild@0.25.12)(webpack-cli@5.1.4) + serialize-javascript: 7.1.2 + tinyglobby: 0.2.17 + webpack: 5.111.1(esbuild@0.25.12)(postcss@8.5.28)(webpack-cli@5.1.4) core-js@3.46.0: {} - core-util-is@1.0.2: - optional: true - core-util-is@1.0.3: {} - cors@2.8.5: + cors@2.8.6: dependencies: object-assign: 4.1.1 vary: 1.1.2 @@ -57223,7 +57639,7 @@ snapshots: cosmiconfig@8.3.6(typescript@5.9.3): dependencies: import-fresh: 3.3.1 - js-yaml: 4.1.0 + js-yaml: 4.3.2 parse-json: 5.2.0 path-type: 4.0.0 optionalDependencies: @@ -57242,21 +57658,6 @@ snapshots: dependencies: buffer: 5.7.1 - create-jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)): - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) - jest-util: 29.7.0 - prompts: 2.4.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - create-require@1.1.1: {} crelt@1.0.6: {} @@ -57267,9 +57668,9 @@ snapshots: dependencies: cross-spawn: 7.0.6 - cross-fetch@3.2.0(encoding@0.1.13): + cross-fetch@3.2.0: dependencies: - node-fetch: 2.7.0(encoding@0.1.13) + node-fetch: 2.7.0 transitivePeerDependencies: - encoding @@ -57296,19 +57697,19 @@ snapshots: utrie: 1.0.2 optional: true - css-loader@5.2.7(webpack@5.102.1): + css-loader@5.2.7(webpack@5.111.1): dependencies: - icss-utils: 5.1.0(postcss@8.5.6) + icss-utils: 5.1.0(postcss@8.5.28) loader-utils: 2.0.4 - postcss: 8.5.6 - postcss-modules-extract-imports: 3.1.0(postcss@8.5.6) - postcss-modules-local-by-default: 4.2.0(postcss@8.5.6) - postcss-modules-scope: 3.2.1(postcss@8.5.6) - postcss-modules-values: 4.0.0(postcss@8.5.6) + postcss: 8.5.28 + postcss-modules-extract-imports: 3.1.0(postcss@8.5.28) + postcss-modules-local-by-default: 4.2.0(postcss@8.5.28) + postcss-modules-scope: 3.2.1(postcss@8.5.28) + postcss-modules-values: 4.0.0(postcss@8.5.28) postcss-value-parser: 4.2.0 schema-utils: 3.3.0 semver: 7.7.3 - webpack: 5.102.1(esbuild@0.25.12)(webpack-cli@5.1.4) + webpack: 5.111.1(esbuild@0.25.12)(postcss@8.5.28)(webpack-cli@5.1.4) css-select@1.2.0: dependencies: @@ -57360,7 +57761,7 @@ snapshots: '@asamuzakjp/css-color': 3.2.0 rrweb-cssom: 0.8.0 - csv-parse@5.1.0: {} + csv-parse@7.0.3: {} csv-stringify@6.6.0: {} @@ -57372,17 +57773,17 @@ snapshots: custom-event-polyfill@1.0.7: {} - cytoscape-cose-bilkent@4.1.0(cytoscape@3.33.1): + cytoscape-cose-bilkent@4.1.0(cytoscape@3.34.3): dependencies: cose-base: 1.0.3 - cytoscape: 3.33.1 + cytoscape: 3.34.3 - cytoscape-fcose@2.2.0(cytoscape@3.33.1): + cytoscape-fcose@2.2.0(cytoscape@3.34.3): dependencies: cose-base: 2.2.0 - cytoscape: 3.33.1 + cytoscape: 3.34.3 - cytoscape@3.33.1: {} + cytoscape@3.34.3: {} d3-array@2.12.1: dependencies: @@ -57556,7 +57957,7 @@ snapshots: es5-ext: 0.10.64 type: 2.7.3 - dagre-d3-es@7.0.13: + dagre-d3-es@7.0.14: dependencies: d3: 7.9.0 lodash-es: 4.17.21 @@ -57594,7 +57995,7 @@ snapshots: dependencies: '@babel/runtime': 7.28.4 - dayjs@1.11.19: {} + dayjs@1.11.23: {} debounce-fn@4.0.0: dependencies: @@ -57634,13 +58035,12 @@ snapshots: deepmerge@4.3.1: {} - default-gateway@6.0.3: - dependencies: - execa: 5.1.1 + default-browser-id@5.0.1: {} - defaults@1.0.4: + default-browser@5.5.1: dependencies: - clone: 1.0.4 + bundle-name: 4.1.1 + default-browser-id: 5.0.1 defer-to-connect@2.0.1: {} @@ -57650,7 +58050,7 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 - define-lazy-prop@2.0.0: {} + define-lazy-prop@3.0.0: {} define-properties@1.2.1: dependencies: @@ -57689,7 +58089,8 @@ snapshots: detect-newline@3.1.0: {} - detect-node@2.1.0: {} + detect-node@2.1.0: + optional: true devlop@1.1.0: dependencies: @@ -57704,8 +58105,6 @@ snapshots: didyoumean@1.2.2: {} - diff-sequences@29.6.3: {} - diff2html@3.4.52: dependencies: diff: 7.0.0 @@ -57736,32 +58135,16 @@ snapshots: dlv@1.1.3: {} - dmg-builder@25.1.8: + dmg-builder@26.15.3: dependencies: - app-builder-lib: 25.1.8(dmg-builder@25.1.8) - builder-util: 25.1.7 - builder-util-runtime: 9.2.10 + app-builder-lib: 26.15.3(dmg-builder@26.15.3) + builder-util: 26.15.3 fs-extra: 10.1.0 - iconv-lite: 0.6.3 - js-yaml: 4.1.0 - optionalDependencies: - dmg-license: 1.0.11 + js-yaml: 4.3.2 transitivePeerDependencies: - electron-builder-squirrel-windows - supports-color - dmg-license@1.0.11: - dependencies: - '@types/plist': 3.0.5 - '@types/verror': 1.10.11 - ajv: 6.12.6 - crc: 3.8.0 - iconv-corefoundation: 1.1.7 - plist: 3.1.0 - smart-buffer: 4.2.0 - verror: 1.10.1 - optional: true - dns-packet@5.6.1: dependencies: '@leichtgewicht/ip-codec': 2.0.5 @@ -57770,10 +58153,6 @@ snapshots: dependencies: esutils: 2.0.3 - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - docx4js@3.3.0: dependencies: cfb: 0.12.1 @@ -57810,12 +58189,20 @@ snapshots: domhandler: 5.0.3 entities: 4.5.0 + dom-serializer@3.1.1: + dependencies: + domelementtype: 3.0.0 + domhandler: 6.0.1 + entities: 8.1.0 + dom-walk@0.1.2: {} domelementtype@1.3.1: {} domelementtype@2.3.0: {} + domelementtype@3.0.0: {} + domhandler@2.4.2: dependencies: domelementtype: 1.3.1 @@ -57828,10 +58215,14 @@ snapshots: dependencies: domelementtype: 2.3.0 + domhandler@6.0.1: + dependencies: + domelementtype: 3.0.0 + dompurify@2.5.9: optional: true - dompurify@3.3.0: + dompurify@3.4.16: optionalDependencies: '@types/trusted-types': 2.0.7 @@ -57857,6 +58248,12 @@ snapshots: domelementtype: 2.3.0 domhandler: 5.0.3 + domutils@4.0.2: + dependencies: + dom-serializer: 3.1.1 + domelementtype: 3.0.0 + domhandler: 6.0.1 + dot-case@3.0.4: dependencies: no-case: 3.0.4 @@ -57874,10 +58271,10 @@ snapshots: dependencies: dotenv: 16.6.1 - dotenv-webpack@8.1.1(webpack@5.102.1): + dotenv-webpack@8.1.1(webpack@5.111.1): dependencies: dotenv-defaults: 2.0.2 - webpack: 5.102.1(esbuild@0.25.12)(webpack-cli@5.1.4) + webpack: 5.111.1(esbuild@0.25.12)(postcss@8.5.28)(webpack-cli@5.1.4) dotenv@16.6.1: {} @@ -57893,6 +58290,10 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 + duplexer2@0.1.4: + dependencies: + readable-stream: 2.3.8 + duplexer@0.1.2: {} dynamic-dedupe@0.3.0: @@ -57913,15 +58314,15 @@ snapshots: dependencies: jake: 10.9.4 - electron-builder@25.1.8: + electron-builder@26.15.3: dependencies: - app-builder-lib: 25.1.8(dmg-builder@25.1.8) - builder-util: 25.1.7 - builder-util-runtime: 9.2.10 + app-builder-lib: 26.15.3(dmg-builder@26.15.3) + builder-util: 26.15.3 + builder-util-runtime: 9.7.0 chalk: 4.1.2 - dmg-builder: 25.1.8 + ci-info: 4.3.1 + dmg-builder: 26.15.3 fs-extra: 10.1.0 - is-ci: 3.0.1 lazy-val: 1.0.5 simple-update-notifier: 2.0.0 yargs: 17.7.2 @@ -57929,7 +58330,7 @@ snapshots: - electron-builder-squirrel-windows - supports-color - electron-context-menu@4.1.1: + electron-context-menu@4.1.2: dependencies: cli-truncate: 4.0.0 electron-dl: 4.0.0 @@ -57943,14 +58344,16 @@ snapshots: electron-is-dev@3.0.1: {} - electron-log@5.4.3: {} + electron-log@5.4.4: {} - electron-publish@25.1.7: + electron-publish@26.15.3: dependencies: '@types/fs-extra': 9.0.13 - builder-util: 25.1.7 - builder-util-runtime: 9.2.10 + aws4: 1.13.2 + builder-util: 26.15.3 + builder-util-runtime: 9.7.0 chalk: 4.1.2 + form-data: 4.0.6 fs-extra: 10.1.0 lazy-val: 1.0.5 mime: 2.6.0 @@ -57968,11 +58371,11 @@ snapshots: electron-to-chromium@1.5.366: {} - electron-updater@6.6.2: + electron-updater@6.8.9: dependencies: - builder-util-runtime: 9.3.1 + builder-util-runtime: 9.7.0 fs-extra: 10.1.0 - js-yaml: 4.1.0 + js-yaml: 4.3.2 lazy-val: 1.0.5 lodash.escaperegexp: 4.1.2 lodash.isequal: 4.5.0 @@ -57983,11 +58386,11 @@ snapshots: electron-windows-badge@1.1.0: {} - electron@38.6.0: + electron@43.7.8: dependencies: - '@electron/get': 2.0.3 - '@types/node': 22.19.0 - extract-zip: 2.0.1 + '@electron-internal/extract-zip': 1.0.5 + '@electron/get': 5.1.0 + '@types/node': 24.13.6 transitivePeerDependencies: - supports-color @@ -58027,11 +58430,6 @@ snapshots: iconv-lite: 0.6.3 whatwg-encoding: 3.1.1 - encoding@0.1.13: - dependencies: - iconv-lite: 0.6.3 - optional: true - end-of-stream@1.4.5: dependencies: once: 1.4.0 @@ -58041,6 +58439,11 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.3.0 + enhanced-resolve@5.26.0: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.3.3 + entities@1.1.2: {} entities@2.2.0: {} @@ -58051,8 +58454,14 @@ snapshots: entities@6.0.1: {} + entities@7.0.1: {} + + entities@8.1.0: {} + env-paths@2.2.1: {} + env-paths@3.0.0: {} + envinfo@7.20.0: {} err-code@2.0.3: {} @@ -58122,7 +58531,7 @@ snapshots: es-errors@1.3.0: {} - es-module-lexer@1.7.0: {} + es-module-lexer@2.3.2: {} es-module-lexer@3.0.2: {} @@ -58135,7 +58544,7 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 has-tostringtag: 1.0.2 - hasown: 2.0.2 + hasown: 2.0.4 es-shim-unscopables@1.1.0: dependencies: @@ -58147,6 +58556,8 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 + es-toolkit@1.52.0: {} + es5-ext@0.10.64: dependencies: es6-iterator: 2.0.3 @@ -58170,12 +58581,12 @@ snapshots: d: 1.0.2 ext: 1.7.0 - esbuild-loader@4.4.0(webpack@5.102.1): + esbuild-loader@4.4.0(webpack@5.111.1): dependencies: esbuild: 0.25.12 get-tsconfig: 4.13.0 loader-utils: 2.0.4 - webpack: 5.102.1(esbuild@0.25.12)(webpack-cli@5.1.4) + webpack: 5.111.1(esbuild@0.25.12)(postcss@8.5.28)(webpack-cli@5.1.4) webpack-sources: 1.4.3 esbuild-plugin-copy@2.1.1(esbuild@0.25.12): @@ -58233,34 +58644,27 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-compat-utils@0.5.1(eslint@8.57.1): + eslint-compat-utils@0.5.1(eslint@9.39.5(jiti@2.7.0)): dependencies: - eslint: 8.57.1 + eslint: 9.39.5(jiti@2.7.0) semver: 7.7.3 - eslint-config-prettier@8.10.2(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - - eslint-config-standard-with-typescript@40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3): + eslint-config-love@157.0.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.9.3) - eslint: 8.57.1 - eslint-config-standard: 17.1.0(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1) - eslint-plugin-import: 2.32.0(eslint@8.57.1) - eslint-plugin-n: 15.7.0(eslint@8.57.1) - eslint-plugin-promise: 6.6.0(eslint@8.57.1) + '@eslint-community/eslint-plugin-eslint-comments': 4.8.1(eslint@9.39.5(jiti@2.7.0)) + '@typescript-eslint/utils': 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + eslint: 9.39.5(jiti@2.7.0) + eslint-plugin-n: 18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + eslint-plugin-promise: 7.3.0(eslint@9.39.5(jiti@2.7.0)) typescript: 5.9.3 + typescript-eslint: 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) transitivePeerDependencies: - supports-color + - ts-declaration-location - eslint-config-standard@17.1.0(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1): + eslint-config-prettier@8.10.2(eslint@9.39.5(jiti@2.7.0)): dependencies: - eslint: 8.57.1 - eslint-plugin-import: 2.32.0(eslint@8.57.1) - eslint-plugin-n: 15.7.0(eslint@8.57.1) - eslint-plugin-promise: 6.6.0(eslint@8.57.1) + eslint: 9.39.5(jiti@2.7.0) eslint-import-resolver-node@0.3.9: dependencies: @@ -58268,25 +58672,20 @@ snapshots: is-core-module: 2.16.1 resolve: 1.22.11 - eslint-module-utils@2.12.1(eslint@8.57.1): + eslint-module-utils@2.12.1(eslint@9.39.5(jiti@2.7.0)): dependencies: debug: 3.2.7 optionalDependencies: - eslint: 8.57.1 - - eslint-plugin-es@3.0.1(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - eslint-utils: 2.1.0 - regexpp: 3.2.0 + eslint: 9.39.5(jiti@2.7.0) - eslint-plugin-es@4.1.0(eslint@8.57.1): + eslint-plugin-es-x@7.8.0(eslint@9.39.5(jiti@2.7.0)): dependencies: - eslint: 8.57.1 - eslint-utils: 2.1.0 - regexpp: 3.2.0 + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.5(jiti@2.7.0)) + '@eslint-community/regexpp': 4.12.2 + eslint: 9.39.5(jiti@2.7.0) + eslint-compat-utils: 0.5.1(eslint@9.39.5(jiti@2.7.0)) - eslint-plugin-import@2.32.0(eslint@8.57.1): + eslint-plugin-import@2.32.0(eslint@9.39.5(jiti@2.7.0)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -58295,9 +58694,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.57.1 + eslint: 9.39.5(jiti@2.7.0) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(eslint@8.57.1) + eslint-module-utils: 2.12.1(eslint@9.39.5(jiti@2.7.0)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -58309,116 +58708,105 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 - eslint-plugin-n@15.7.0(eslint@8.57.1): + eslint-plugin-n@18.4.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3): dependencies: - builtins: 5.1.0 - eslint: 8.57.1 - eslint-plugin-es: 4.1.0(eslint@8.57.1) - eslint-utils: 3.0.0(eslint@8.57.1) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.5(jiti@2.7.0)) + enhanced-resolve: 5.18.3 + eslint: 9.39.5(jiti@2.7.0) + eslint-plugin-es-x: 7.8.0(eslint@9.39.5(jiti@2.7.0)) + get-tsconfig: 4.13.0 + globals: 15.15.0 + globrex: 0.1.2 ignore: 5.3.2 - is-core-module: 2.16.1 - minimatch: 3.1.2 - resolve: 1.22.11 + js-yaml: 5.4.3 semver: 7.7.3 + optionalDependencies: + typescript: 5.9.3 - eslint-plugin-node@11.1.0(eslint@8.57.1): + eslint-plugin-promise@7.3.0(eslint@9.39.5(jiti@2.7.0)): dependencies: - eslint: 8.57.1 - eslint-plugin-es: 3.0.1(eslint@8.57.1) - eslint-utils: 2.1.0 - ignore: 5.3.2 - minimatch: 3.1.2 - resolve: 1.22.11 - semver: 6.3.1 + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.5(jiti@2.7.0)) + eslint: 9.39.5(jiti@2.7.0) - eslint-plugin-promise@6.6.0(eslint@8.57.1): + eslint-plugin-secure-coding@5.4.16(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3): dependencies: - eslint: 8.57.1 + '@eslint-community/regexpp': 4.12.2 + '@interlace/eslint-devkit': 1.19.8(@typescript-eslint/utils@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + eslint: 9.39.5(jiti@2.7.0) + refa: 0.12.1 + scslre: 0.3.0 + transitivePeerDependencies: + - '@typescript-eslint/utils' + - oxc-resolver + - typescript - eslint-plugin-svelte@2.46.1(eslint@8.57.1)(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)): + eslint-plugin-svelte@3.23.0(eslint@9.39.5(jiti@2.7.0))(svelte@4.2.20)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)): dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.1) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.5(jiti@2.7.0)) '@jridgewell/sourcemap-codec': 1.5.5 - eslint: 8.57.1 - eslint-compat-utils: 0.5.1(eslint@8.57.1) + eslint: 9.39.5(jiti@2.7.0) esutils: 2.0.3 - known-css-properties: 0.35.0 - postcss: 8.5.6 - postcss-load-config: 3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) - postcss-safe-parser: 6.0.0(postcss@8.5.6) - postcss-selector-parser: 6.1.2 + globals: 16.5.0 + known-css-properties: 0.37.0 + postcss: 8.5.28 + postcss-load-config: 3.1.4(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + postcss-safe-parser: 7.1.0(postcss@8.5.28) semver: 7.7.3 - svelte-eslint-parser: 0.43.0(svelte@4.2.20) + svelte-eslint-parser: 1.8.1(svelte@4.2.20) optionalDependencies: svelte: 4.2.20 transitivePeerDependencies: - ts-node - eslint-scope@5.1.1: - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - - eslint-scope@7.2.2: + eslint-scope@8.4.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-utils@2.1.0: - dependencies: - eslint-visitor-keys: 1.3.0 - - eslint-utils@3.0.0(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - eslint-visitor-keys: 2.1.0 + eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@1.3.0: {} + eslint-visitor-keys@4.2.1: {} - eslint-visitor-keys@2.1.0: {} + eslint-visitor-keys@5.0.1: {} - eslint-visitor-keys@3.4.3: {} - - eslint@8.57.1: + eslint@9.39.5(jiti@2.7.0): dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.1) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.5(jiti@2.7.0)) '@eslint-community/regexpp': 4.12.2 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.1 - '@humanwhocodes/config-array': 0.13.0 + '@eslint/config-array': 0.21.2 + '@eslint/config-helpers': 0.4.2 + '@eslint/core': 0.17.0 + '@eslint/eslintrc': 3.3.7 + '@eslint/js': 9.39.5 + '@eslint/plugin-kit': 0.4.1 + '@humanfs/node': 0.16.8 '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.3.0 - ajv: 6.12.6 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.8 + ajv: 6.15.0 chalk: 4.1.2 cross-spawn: 7.0.6 debug: 4.4.3 - doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 + file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 ignore: 5.3.2 imurmurhash: 0.1.4 is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 lodash.merge: 4.6.2 - minimatch: 3.1.2 + minimatch: 3.1.5 natural-compare: 1.4.0 optionator: 0.9.4 - strip-ansi: 6.0.1 - text-table: 0.2.0 + optionalDependencies: + jiti: 2.7.0 transitivePeerDependencies: - supports-color @@ -58429,11 +58817,11 @@ snapshots: event-emitter: 0.3.5 type: 2.7.3 - espree@9.6.1: + espree@10.4.0: dependencies: acorn: 8.15.0 acorn-jsx: 5.3.2(acorn@8.15.0) - eslint-visitor-keys: 3.4.3 + eslint-visitor-keys: 4.2.1 esprima@4.0.1: {} @@ -58445,8 +58833,6 @@ snapshots: dependencies: estraverse: 5.3.0 - estraverse@4.3.0: {} - estraverse@5.3.0: {} estree-walker@0.6.1: {} @@ -58504,15 +58890,16 @@ snapshots: exif-parser@0.1.12: {} - exit@0.1.2: {} + exit-x@0.2.2: {} - expect@29.7.0: + expect@30.5.2: dependencies: - '@jest/expect-utils': 29.7.0 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 + '@jest/expect-utils': 30.5.2 + '@jest/get-type': 30.5.0 + jest-matcher-utils: 30.5.2 + jest-message-util: 30.5.1 + jest-mock: 30.5.2 + jest-util: 30.5.1 exponential-backoff@3.1.3: {} @@ -58520,11 +58907,14 @@ snapshots: dependencies: busboy: 1.6.0 - express-form-data@2.0.23: + express-form-data@3.0.1: dependencies: - connect-multiparty: 2.2.0 fs-extra: 9.1.0 + http-errors: 2.0.0 + multiparty: 4.2.3 + on-finished: 2.4.1 signal-exit: 3.0.7 + type-is: 2.1.0 express-rate-limit@7.5.1(express@4.21.2): dependencies: @@ -58569,6 +58959,39 @@ snapshots: utils-merge: 1.0.1 vary: 1.1.2 + express@5.2.1: + dependencies: + accepts: 2.0.0 + body-parser: 2.3.0 + content-disposition: 1.1.0 + content-type: 1.0.5 + cookie: 0.7.1 + cookie-signature: 1.2.2 + debug: 4.4.3 + depd: 2.0.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 2.1.1 + fresh: 2.0.0 + http-errors: 2.0.0 + merge-descriptors: 2.0.0 + mime-types: 3.0.2 + on-finished: 2.4.1 + once: 1.4.0 + parseurl: 1.3.3 + proxy-addr: 2.0.7 + qs: 6.16.0 + range-parser: 1.2.1 + router: 2.2.0 + send: 1.2.1 + serve-static: 2.2.1 + statuses: 2.0.1 + type-is: 2.1.0 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + exsolve@1.0.7: {} ext-list@2.2.2: @@ -58586,19 +59009,6 @@ snapshots: extend@3.0.2: {} - extract-zip@2.0.1: - dependencies: - debug: 4.4.3 - get-stream: 5.2.0 - yauzl: 2.10.0 - optionalDependencies: - '@types/yauzl': 2.10.3 - transitivePeerDependencies: - - supports-color - - extsprintf@1.4.1: - optional: true - fast-copy@3.0.2: {} fast-deep-equal@3.1.3: {} @@ -58641,23 +59051,27 @@ snapshots: strnum: 2.4.2 xml-naming: 0.3.0 + fastdom@1.0.12: + dependencies: + strictdom: 1.0.1 + fastest-levenshtein@1.0.16: {} fastq@1.19.1: dependencies: reusify: 1.1.0 - faye-websocket@0.11.4: - dependencies: - websocket-driver: 0.7.4 - fb-watchman@2.0.2: dependencies: bser: 2.1.1 - fd-slicer@1.1.0: - dependencies: - pend: 1.2.0 + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + + fdir@6.5.0(picomatch@4.0.7): + optionalDependencies: + picomatch: 4.0.7 fecha@4.2.3: {} @@ -58679,17 +59093,24 @@ snapshots: mime: 3.0.0 remedial: 1.0.8 - file-entry-cache@6.0.1: + file-entry-cache@8.0.0: dependencies: - flat-cache: 3.2.0 + flat-cache: 4.0.1 file-error@0.10.2: {} - file-loader@6.2.0(webpack@5.102.1): + file-loader@6.2.0(webpack@5.111.1(postcss@8.5.28)): + dependencies: + loader-utils: 2.0.4 + schema-utils: 3.3.0 + webpack: 5.111.1(postcss@8.5.28) + optional: true + + file-loader@6.2.0(webpack@5.111.1): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.102.1(esbuild@0.25.12)(webpack-cli@5.1.4) + webpack: 5.111.1(esbuild@0.25.12)(postcss@8.5.28)(webpack-cli@5.1.4) file-stream-rotator@0.6.1: dependencies: @@ -58727,6 +59148,17 @@ snapshots: statuses: 2.0.1 unpipe: 1.0.0 + finalhandler@2.1.1: + dependencies: + debug: 4.4.3 + encodeurl: 2.0.0 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + find-up@3.0.0: dependencies: locate-path: 3.0.0 @@ -58741,11 +59173,10 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - flat-cache@3.2.0: + flat-cache@4.0.1: dependencies: flatted: 3.3.3 keyv: 4.5.4 - rimraf: 3.0.2 flat@5.0.2: {} @@ -58766,7 +59197,7 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 - fork-ts-checker-webpack-plugin@9.1.0(typescript@5.9.3)(webpack@5.102.1): + fork-ts-checker-webpack-plugin@9.1.0(typescript@5.9.3)(webpack@5.111.1): dependencies: '@babel/code-frame': 7.27.1 chalk: 4.1.2 @@ -58781,7 +59212,7 @@ snapshots: semver: 7.7.3 tapable: 2.3.0 typescript: 5.9.3 - webpack: 5.102.1(esbuild@0.25.12)(webpack-cli@5.1.4) + webpack: 5.111.1(esbuild@0.25.12)(postcss@8.5.28)(webpack-cli@5.1.4) form-data-encoder@1.7.2: {} @@ -58794,12 +59225,12 @@ snapshots: mime-types: 2.1.35 safe-buffer: 5.2.1 - form-data@4.0.4: + form-data@4.0.6: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 es-set-tostringtag: 2.1.0 - hasown: 2.0.2 + hasown: 2.0.4 mime-types: 2.1.35 formdata-node@4.4.1: @@ -58825,7 +59256,7 @@ snapshots: '@paralleldrive/cuid2': 2.3.1 dezalgo: 1.0.4 once: 1.4.0 - qs: 6.11.2 + qs: 6.16.0 forwarded-parse@2.1.2: {} @@ -58835,12 +59266,20 @@ snapshots: fresh@0.5.2: {} + fresh@2.0.0: {} + fs-extra@10.1.0: dependencies: graceful-fs: 4.2.11 jsonfile: 6.2.0 universalify: 2.0.1 + fs-extra@11.3.1: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.2.0 + universalify: 2.0.1 + fs-extra@11.3.2: dependencies: graceful-fs: 4.2.11 @@ -58860,17 +59299,10 @@ snapshots: jsonfile: 6.2.0 universalify: 2.0.1 - fs-minipass@2.1.0: - dependencies: - minipass: 3.3.6 - fs-monkey@1.1.0: {} fs.realpath@1.0.0: {} - fsevents@2.3.2: - optional: true - fsevents@2.3.3: optional: true @@ -58887,23 +59319,12 @@ snapshots: functions-have-names@1.2.3: {} - gauge@4.0.4: - dependencies: - aproba: 2.1.0 - color-support: 1.1.3 - console-control-strings: 1.1.0 - has-unicode: 2.0.1 - signal-exit: 3.0.7 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wide-align: 1.1.5 - - gaxios@5.1.3(encoding@0.1.13): + gaxios@5.1.3: dependencies: extend: 3.0.2 https-proxy-agent: 5.0.1 is-stream: 2.0.1 - node-fetch: 2.7.0(encoding@0.1.13) + node-fetch: 2.7.0 transitivePeerDependencies: - encoding - supports-color @@ -58917,9 +59338,9 @@ snapshots: transitivePeerDependencies: - supports-color - gcp-metadata@5.3.0(encoding@0.1.13): + gcp-metadata@5.3.0: dependencies: - gaxios: 5.1.3(encoding@0.1.13) + gaxios: 5.1.3 json-bigint: 1.0.0 transitivePeerDependencies: - encoding @@ -58998,7 +59419,9 @@ snapshots: dependencies: is-glob: 4.0.3 - glob-to-regexp@0.4.1: {} + glob-to-regex.js@1.3.1(tslib@2.8.1): + dependencies: + tslib: 2.8.1 glob@10.4.5: dependencies: @@ -59009,6 +59432,12 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 + glob@13.0.6: + dependencies: + minimatch: 10.2.6 + minipass: 7.1.3 + path-scurry: 2.0.2 + glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -59018,14 +59447,6 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - glob@8.1.0: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.6 - once: 1.4.0 - global-agent@3.0.0: dependencies: boolean: 3.2.0 @@ -59041,12 +59462,12 @@ snapshots: min-document: 2.19.1 process: 0.11.10 - globals@13.24.0: - dependencies: - type-fest: 0.20.2 + globals@14.0.0: {} globals@15.15.0: {} + globals@16.5.0: {} + globalthis@1.0.4: dependencies: define-properties: 1.2.1 @@ -59061,23 +59482,17 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 - globby@13.2.2: - dependencies: - dir-glob: 3.0.1 - fast-glob: 3.3.3 - ignore: 5.3.2 - merge2: 1.4.1 - slash: 4.0.0 + globrex@0.1.2: {} - google-auth-library@8.9.0(encoding@0.1.13): + google-auth-library@8.9.0: dependencies: arrify: 2.0.1 base64-js: 1.5.1 ecdsa-sig-formatter: 1.0.11 fast-text-encoding: 1.0.6 - gaxios: 5.1.3(encoding@0.1.13) - gcp-metadata: 5.3.0(encoding@0.1.13) - gtoken: 6.1.2(encoding@0.1.13) + gaxios: 5.1.3 + gcp-metadata: 5.3.0 + gtoken: 6.1.2 jws: 4.0.0 lru-cache: 6.0.0 transitivePeerDependencies: @@ -59088,24 +59503,24 @@ snapshots: google-p12-pem@4.0.1: dependencies: - node-forge: 1.3.1 + node-forge: 1.4.0 - googleapis-common@6.0.4(encoding@0.1.13): + googleapis-common@6.0.4: dependencies: extend: 3.0.2 - gaxios: 5.1.3(encoding@0.1.13) - google-auth-library: 8.9.0(encoding@0.1.13) - qs: 6.11.2 + gaxios: 5.1.3 + google-auth-library: 8.9.0 + qs: 6.16.0 url-template: 2.0.8 uuid: 9.0.1 transitivePeerDependencies: - encoding - supports-color - googleapis@122.0.0(encoding@0.1.13): + googleapis@122.0.0: dependencies: - google-auth-library: 8.9.0(encoding@0.1.13) - googleapis-common: 6.0.4(encoding@0.1.13) + google-auth-library: 8.9.0 + googleapis-common: 6.0.4 transitivePeerDependencies: - encoding - supports-color @@ -59128,8 +59543,6 @@ snapshots: graceful-fs@4.2.11: {} - graphemer@1.4.0: {} - graphql-binding@2.5.2: dependencies: graphql: 14.7.0 @@ -59162,9 +59575,9 @@ snapshots: graphql@16.12.0: {} - gtoken@6.1.2(encoding@0.1.13): + gtoken@6.1.2: dependencies: - gaxios: 5.1.3(encoding@0.1.13) + gaxios: 5.1.3 google-p12-pem: 4.0.1 jws: 4.0.0 transitivePeerDependencies: @@ -59177,9 +59590,7 @@ snapshots: hachure-fill@0.5.2: {} - handle-thing@2.0.1: {} - - handlebars@4.7.8: + handlebars@4.7.10: dependencies: minimist: 1.2.8 neo-async: 2.6.2 @@ -59206,14 +59617,16 @@ snapshots: dependencies: has-symbols: 1.1.0 - has-unicode@2.0.1: {} - hash-it@6.0.0: {} hasown@2.0.2: dependencies: function-bind: 1.1.2 + hasown@2.0.4: + dependencies: + function-bind: 1.1.2 + he@1.2.0: {} heic-decode@2.1.0: @@ -59236,21 +59649,12 @@ snapshots: dependencies: lru-cache: 6.0.0 - hpack.js@2.1.6: - dependencies: - inherits: 2.0.4 - obuf: 1.1.2 - readable-stream: 2.3.8 - wbuf: 1.7.3 - hpagent@0.1.2: {} html-encoding-sniffer@4.0.0: dependencies: whatwg-encoding: 3.1.1 - html-entities@2.6.0: {} - html-escaper@2.0.2: {} html-minifier-terser@6.1.0: @@ -59271,7 +59675,7 @@ snapshots: htmlparser2: 8.0.2 selderee: 0.11.0 - html-webpack-plugin@5.6.4(webpack@5.102.1): + html-webpack-plugin@5.6.4(webpack@5.111.1): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -59279,7 +59683,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.3.0 optionalDependencies: - webpack: 5.102.1(esbuild@0.25.12)(webpack-cli@5.1.4) + webpack: 5.111.1(esbuild@0.25.12)(postcss@8.5.28)(webpack-cli@5.1.4) html2canvas@1.4.1: dependencies: @@ -59287,12 +59691,19 @@ snapshots: text-segmentation: 1.0.3 optional: true - htmlparser2@10.0.0: + htmlparser2@10.1.0: dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 domutils: 3.2.2 - entities: 6.0.1 + entities: 7.0.1 + + htmlparser2@12.0.0: + dependencies: + domelementtype: 3.0.0 + domhandler: 6.0.1 + domutils: 4.0.2 + entities: 8.1.0 htmlparser2@3.10.1: dependencies: @@ -59317,13 +59728,6 @@ snapshots: domutils: 3.2.2 entities: 4.5.0 - htmlparser2@9.1.0: - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - domutils: 3.2.2 - entities: 4.5.0 - http-assert@1.5.0: dependencies: deep-equal: 1.0.1 @@ -59331,23 +59735,6 @@ snapshots: http-cache-semantics@4.2.0: {} - http-deceiver@1.2.7: {} - - http-errors@1.6.3: - dependencies: - depd: 1.1.2 - inherits: 2.0.3 - setprototypeof: 1.1.0 - statuses: 1.5.0 - - http-errors@1.7.3: - dependencies: - depd: 1.1.2 - inherits: 2.0.4 - setprototypeof: 1.1.1 - statuses: 1.5.0 - toidentifier: 1.0.0 - http-errors@1.8.1: dependencies: depd: 1.1.2 @@ -59364,15 +59751,13 @@ snapshots: statuses: 2.0.1 toidentifier: 1.0.1 - http-parser-js@0.5.10: {} - - http-proxy-agent@5.0.0: + http-errors@2.0.1: dependencies: - '@tootallnate/once': 2.0.0 - agent-base: 6.0.2 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.2 + toidentifier: 1.0.1 http-proxy-agent@7.0.2: dependencies: @@ -59381,25 +59766,15 @@ snapshots: transitivePeerDependencies: - supports-color - http-proxy-middleware@2.0.9(@types/express@4.17.25): + http-proxy-middleware@4.2.0: dependencies: - '@types/http-proxy': 1.17.17 - http-proxy: 1.18.1 + debug: 4.4.3 + httpxy: 0.5.5 is-glob: 4.0.3 - is-plain-obj: 3.0.0 + is-plain-obj: 4.1.0 micromatch: 4.0.8 - optionalDependencies: - '@types/express': 4.17.25 - transitivePeerDependencies: - - debug - - http-proxy@1.18.1: - dependencies: - eventemitter3: 4.0.7 - follow-redirects: 1.15.11 - requires-port: 1.0.0 transitivePeerDependencies: - - debug + - supports-color http2-wrapper@1.0.3: dependencies: @@ -59422,17 +59797,15 @@ snapshots: transitivePeerDependencies: - supports-color + httpxy@0.5.5: {} + human-signals@2.1.0: {} humanize-ms@1.2.1: dependencies: ms: 2.1.3 - iconv-corefoundation@1.1.7: - dependencies: - cli-truncate: 2.1.0 - node-addon-api: 1.7.2 - optional: true + hyperdyperid@1.2.0: {} iconv-lite@0.4.24: dependencies: @@ -59442,21 +59815,25 @@ snapshots: dependencies: safer-buffer: 2.1.2 - icss-utils@5.1.0(postcss@8.5.6): + iconv-lite@0.7.3: + dependencies: + safer-buffer: 2.1.2 + + icss-utils@5.1.0(postcss@8.5.28): dependencies: - postcss: 8.5.6 + postcss: 8.5.28 ieee754@1.2.1: {} ignore@5.3.2: {} + ignore@7.0.12: {} + image-q@4.0.0: dependencies: '@types/node': 16.9.1 - image-size@1.2.1: - dependencies: - queue: 6.0.2 + image-size@2.0.4: {} immediate@3.0.6: {} @@ -59482,8 +59859,6 @@ snapshots: indent-string@4.0.0: {} - infer-owner@1.0.4: {} - inflation@2.1.0: {} inflight@1.0.6: @@ -59491,8 +59866,6 @@ snapshots: once: 1.4.0 wrappy: 1.0.2 - inherits@2.0.3: {} - inherits@2.0.4: {} install@0.13.0: {} @@ -59524,6 +59897,8 @@ snapshots: ipaddr.js@2.2.0: {} + ipaddr.js@2.5.0: {} + is-array-buffer@3.0.5: dependencies: call-bind: 1.0.8 @@ -59559,10 +59934,6 @@ snapshots: is-callable@1.2.7: {} - is-ci@3.0.1: - dependencies: - ci-info: 3.9.0 - is-class-hotfix@0.0.6: {} is-core-module@2.16.1: @@ -59580,7 +59951,7 @@ snapshots: call-bound: 1.0.4 has-tostringtag: 1.0.2 - is-docker@2.2.1: {} + is-docker@3.0.0: {} is-extglob@2.1.1: {} @@ -59614,14 +59985,18 @@ snapshots: dependencies: is-extglob: 2.1.1 - is-interactive@1.0.0: {} + is-in-ssh@1.0.0: {} - is-lambda@1.0.1: {} + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 is-map@2.0.3: {} is-negative-zero@2.0.3: {} + is-network-error@1.3.2: {} + is-number-object@1.1.1: dependencies: call-bound: 1.0.4 @@ -59631,11 +60006,9 @@ snapshots: is-obj@2.0.0: {} - is-path-inside@3.0.3: {} - is-plain-obj@1.1.0: {} - is-plain-obj@3.0.0: {} + is-plain-obj@4.1.0: {} is-plain-object@2.0.4: dependencies: @@ -59649,6 +60022,8 @@ snapshots: is-potential-custom-element-name@1.0.1: {} + is-promise@4.0.0: {} + is-reference@3.0.3: dependencies: '@types/estree': 1.0.8 @@ -59695,8 +60070,6 @@ snapshots: is-typedarray@1.0.0: {} - is-unicode-supported@0.1.0: {} - is-unsafe@2.0.2: {} is-weakmap@2.0.2: {} @@ -59710,9 +60083,9 @@ snapshots: call-bound: 1.0.4 get-intrinsic: 1.3.0 - is-wsl@2.2.0: + is-wsl@3.1.1: dependencies: - is-docker: 2.2.1 + is-inside-container: 1.0.0 isarray@1.0.0: {} @@ -59724,6 +60097,10 @@ snapshots: isexe@2.0.0: {} + isexe@3.1.5: {} + + isexe@4.0.0: {} + isobject@3.0.1: {} isobject@4.0.0: {} @@ -59734,16 +60111,6 @@ snapshots: istanbul-lib-coverage@3.2.2: {} - istanbul-lib-instrument@5.2.1: - dependencies: - '@babel/core': 7.28.5 - '@babel/parser': 7.28.5 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.2 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - istanbul-lib-instrument@6.0.3: dependencies: '@babel/core': 7.28.5 @@ -59760,11 +60127,11 @@ snapshots: make-dir: 4.0.0 supports-color: 7.2.0 - istanbul-lib-source-maps@4.0.1: + istanbul-lib-source-maps@5.0.6: dependencies: + '@jridgewell/trace-mapping': 0.3.31 debug: 4.4.3 istanbul-lib-coverage: 3.2.2 - source-map: 0.6.1 transitivePeerDependencies: - supports-color @@ -59787,79 +60154,80 @@ snapshots: filelist: 1.0.4 picocolors: 1.1.1 - jest-changed-files@29.7.0: + jest-changed-files@30.5.1: dependencies: execa: 5.1.1 - jest-util: 29.7.0 + jest-util: 30.5.1 p-limit: 3.1.0 - jest-circus@29.7.0: + jest-circus@30.5.2: dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 + '@jest/environment': 30.5.2 + '@jest/expect': 30.5.2 + '@jest/test-result': 30.5.2 + '@jest/types': 30.5.1 '@types/node': 24.13.6 chalk: 4.1.2 co: 4.6.0 dedent: 1.7.0 is-generator-fn: 2.1.0 - jest-each: 29.7.0 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 + jest-each: 30.5.2 + jest-matcher-utils: 30.5.2 + jest-message-util: 30.5.1 + jest-runtime: 30.5.2 + jest-snapshot: 30.5.2 + jest-util: 30.5.1 p-limit: 3.1.0 - pretty-format: 29.7.0 - pure-rand: 6.1.0 + pretty-format: 30.5.1 + pure-rand: 7.0.1 slash: 3.0.0 stack-utils: 2.0.6 transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)): + jest-cli@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 + '@jest/core': 30.5.2(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + '@jest/test-result': 30.5.2 + '@jest/types': 30.5.1 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) - exit: 0.1.2 + exit-x: 0.2.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) - jest-util: 29.7.0 - jest-validate: 29.7.0 + jest-config: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + jest-util: 30.5.1 + jest-validate: 30.5.1 yargs: 17.7.2 transitivePeerDependencies: - '@types/node' - babel-plugin-macros + - esbuild-register - supports-color - ts-node - jest-config@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)): + jest-config@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)): dependencies: '@babel/core': 7.28.5 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.5) + '@jest/get-type': 30.5.0 + '@jest/pattern': 30.5.0 + '@jest/test-sequencer': 30.5.2 + '@jest/types': 30.5.1 + babel-jest: 30.5.2(@babel/core@7.28.5) chalk: 4.1.2 - ci-info: 3.9.0 + ci-info: 4.3.1 deepmerge: 4.3.1 - glob: 7.2.3 + glob: 13.0.6 graceful-fs: 4.2.11 - jest-circus: 29.7.0 - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - micromatch: 4.0.8 + jest-circus: 30.5.2 + jest-docblock: 30.5.0 + jest-environment-node: 30.5.2 + jest-regex-util: 30.5.0 + jest-resolve: 30.5.1 + jest-runner: 30.5.2 + jest-util: 30.5.1 + jest-validate: 30.5.1 parse-json: 5.2.0 - pretty-format: 29.7.0 + pretty-format: 30.5.1 slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: @@ -59869,272 +60237,238 @@ snapshots: - babel-plugin-macros - supports-color - jest-diff@29.7.0: + jest-diff@30.5.2: dependencies: + '@jest/diff-sequences': 30.5.0 + '@jest/get-type': 30.5.0 chalk: 4.1.2 - diff-sequences: 29.6.3 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 + pretty-format: 30.5.1 - jest-docblock@29.7.0: + jest-docblock@30.5.0: dependencies: detect-newline: 3.1.0 - jest-each@29.7.0: + jest-each@30.5.2: dependencies: - '@jest/types': 29.6.3 + '@jest/get-type': 30.5.0 + '@jest/types': 30.5.1 chalk: 4.1.2 - jest-get-type: 29.6.3 - jest-util: 29.7.0 - pretty-format: 29.7.0 + jest-regex-util: 30.5.0 + jest-util: 30.5.1 + pretty-format: 30.5.1 - jest-environment-jsdom@30.2.0(bufferutil@4.0.9)(utf-8-validate@5.0.10): + jest-environment-jsdom@30.5.2(bufferutil@4.0.9)(utf-8-validate@5.0.10): dependencies: - '@jest/environment': 30.2.0 - '@jest/environment-jsdom-abstract': 30.2.0(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@jest/environment': 30.5.2 + '@jest/environment-jsdom-abstract': 30.5.2(@types/jsdom@21.1.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) '@types/jsdom': 21.1.7 - '@types/node': 24.13.6 jsdom: 26.1.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - jest-environment-jsdom@30.2.0(bufferutil@4.0.9)(utf-8-validate@6.0.5): + jest-environment-jsdom@30.5.2(bufferutil@4.0.9)(utf-8-validate@6.0.5): dependencies: - '@jest/environment': 30.2.0 - '@jest/environment-jsdom-abstract': 30.2.0(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)) + '@jest/environment': 30.5.2 + '@jest/environment-jsdom-abstract': 30.5.2(@types/jsdom@21.1.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)) '@types/jsdom': 21.1.7 - '@types/node': 24.13.6 jsdom: 26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - jest-environment-node@29.7.0: + jest-environment-node@30.5.2: dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 + '@jest/environment': 30.5.2 + '@jest/fake-timers': 30.5.2 + '@jest/types': 30.5.1 '@types/node': 24.13.6 - jest-mock: 29.7.0 - jest-util: 29.7.0 + jest-mock: 30.5.2 + jest-util: 30.5.1 + jest-validate: 30.5.1 - jest-fetch-mock@3.0.3(encoding@0.1.13): + jest-fetch-mock@3.0.3: dependencies: - cross-fetch: 3.2.0(encoding@0.1.13) + cross-fetch: 3.2.0 promise-polyfill: 8.3.0 transitivePeerDependencies: - encoding - jest-get-type@29.6.3: {} - - jest-haste-map@29.7.0: + jest-haste-map@30.5.1: dependencies: - '@jest/types': 29.6.3 - '@types/graceful-fs': 4.1.9 + '@jest/types': 30.5.1 + '@parcel/watcher': 2.6.0 '@types/node': 24.13.6 anymatch: 3.1.3 fb-watchman: 2.0.2 + fdir: 6.5.0(picomatch@4.0.3) graceful-fs: 4.2.11 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 - jest-worker: 29.7.0 - micromatch: 4.0.8 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.3 - - jest-leak-detector@29.7.0: - dependencies: - jest-get-type: 29.6.3 - pretty-format: 29.7.0 + jest-regex-util: 30.5.0 + jest-util: 30.5.1 + jest-worker: 30.5.1 + picomatch: 4.0.3 - jest-matcher-utils@29.7.0: + jest-leak-detector@30.5.1: dependencies: - chalk: 4.1.2 - jest-diff: 29.7.0 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 + '@jest/get-type': 30.5.0 + pretty-format: 30.5.1 - jest-message-util@29.7.0: + jest-matcher-utils@30.5.2: dependencies: - '@babel/code-frame': 7.27.1 - '@jest/types': 29.6.3 - '@types/stack-utils': 2.0.3 + '@jest/get-type': 30.5.0 chalk: 4.1.2 - graceful-fs: 4.2.11 - micromatch: 4.0.8 - pretty-format: 29.7.0 - slash: 3.0.0 - stack-utils: 2.0.6 + jest-diff: 30.5.2 + pretty-format: 30.5.1 - jest-message-util@30.2.0: + jest-message-util@30.5.1: dependencies: '@babel/code-frame': 7.27.1 - '@jest/types': 30.2.0 + '@jest/types': 30.5.1 '@types/stack-utils': 2.0.3 chalk: 4.1.2 graceful-fs: 4.2.11 - micromatch: 4.0.8 - pretty-format: 30.2.0 + jest-util: 30.5.1 + picomatch: 4.0.3 + pretty-format: 30.5.1 slash: 3.0.0 stack-utils: 2.0.6 - jest-mock@29.7.0: + jest-mock@30.5.2: dependencies: - '@jest/types': 29.6.3 + '@jest/expect-utils': 30.5.2 + '@jest/types': 30.5.1 '@types/node': 24.13.6 - jest-util: 29.7.0 + jest-util: 30.5.1 - jest-mock@30.2.0: - dependencies: - '@jest/types': 30.2.0 - '@types/node': 24.13.6 - jest-util: 30.2.0 + jest-regex-util@30.5.0: {} - jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): - optionalDependencies: - jest-resolve: 29.7.0 - - jest-regex-util@29.6.3: {} - - jest-regex-util@30.0.1: {} - - jest-resolve-dependencies@29.7.0: + jest-resolve-dependencies@30.5.2: dependencies: - jest-regex-util: 29.6.3 - jest-snapshot: 29.7.0 + jest-regex-util: 30.5.0 + jest-snapshot: 30.5.2 transitivePeerDependencies: - supports-color - jest-resolve@29.7.0: + jest-resolve@30.5.1: dependencies: chalk: 4.1.2 graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) - jest-util: 29.7.0 - jest-validate: 29.7.0 - resolve: 1.22.11 - resolve.exports: 2.0.3 + jest-haste-map: 30.5.1 + jest-util: 30.5.1 + jest-validate: 30.5.1 slash: 3.0.0 + unrs-resolver: 1.12.2 - jest-runner@29.7.0: + jest-runner@30.5.2: dependencies: - '@jest/console': 29.7.0 - '@jest/environment': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 + '@jest/console': 30.5.2 + '@jest/environment': 30.5.2 + '@jest/source-map': 30.5.2 + '@jest/test-result': 30.5.2 + '@jest/transform': 30.5.2 + '@jest/types': 30.5.1 '@types/node': 24.13.6 chalk: 4.1.2 emittery: 0.13.1 + exit-x: 0.2.2 graceful-fs: 4.2.11 - jest-docblock: 29.7.0 - jest-environment-node: 29.7.0 - jest-haste-map: 29.7.0 - jest-leak-detector: 29.7.0 - jest-message-util: 29.7.0 - jest-resolve: 29.7.0 - jest-runtime: 29.7.0 - jest-util: 29.7.0 - jest-watcher: 29.7.0 - jest-worker: 29.7.0 + jest-docblock: 30.5.0 + jest-environment-node: 30.5.2 + jest-haste-map: 30.5.1 + jest-leak-detector: 30.5.1 + jest-message-util: 30.5.1 + jest-resolve: 30.5.1 + jest-runtime: 30.5.2 + jest-util: 30.5.1 + jest-watcher: 30.5.2 + jest-worker: 30.5.1 p-limit: 3.1.0 - source-map-support: 0.5.13 transitivePeerDependencies: - supports-color - jest-runtime@29.7.0: + jest-runtime@30.5.2: dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/globals': 29.7.0 - '@jest/source-map': 29.6.3 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 + '@jest/environment': 30.5.2 + '@jest/fake-timers': 30.5.2 + '@jest/globals': 30.5.2 + '@jest/source-map': 30.5.2 + '@jest/test-result': 30.5.2 + '@jest/transform': 30.5.2 + '@jest/types': 30.5.1 '@types/node': 24.13.6 chalk: 4.1.2 - cjs-module-lexer: 1.4.3 + cjs-module-lexer: 2.2.1 collect-v8-coverage: 1.0.3 - glob: 7.2.3 + es-module-lexer: 2.3.2 + glob: 13.0.6 graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 + jest-haste-map: 30.5.1 + jest-message-util: 30.5.1 + jest-mock: 30.5.2 + jest-regex-util: 30.5.0 + jest-resolve: 30.5.1 + jest-snapshot: 30.5.2 + jest-util: 30.5.1 slash: 3.0.0 strip-bom: 4.0.0 transitivePeerDependencies: - supports-color - jest-snapshot@29.7.0: + jest-snapshot@30.5.2: dependencies: '@babel/core': 7.28.5 '@babel/generator': 7.28.5 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5) '@babel/types': 7.28.5 - '@jest/expect-utils': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 + '@jest/expect-utils': 30.5.2 + '@jest/get-type': 30.5.0 + '@jest/snapshot-utils': 30.5.1 + '@jest/transform': 30.5.2 + '@jest/types': 30.5.1 babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.5) chalk: 4.1.2 - expect: 29.7.0 + expect: 30.5.2 graceful-fs: 4.2.11 - jest-diff: 29.7.0 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - natural-compare: 1.4.0 - pretty-format: 29.7.0 + jest-diff: 30.5.2 + jest-matcher-utils: 30.5.2 + jest-message-util: 30.5.1 + jest-util: 30.5.1 + pretty-format: 30.5.1 semver: 7.7.3 + synckit: 0.11.13 transitivePeerDependencies: - supports-color - jest-util@29.7.0: - dependencies: - '@jest/types': 29.6.3 - '@types/node': 24.13.6 - chalk: 4.1.2 - ci-info: 3.9.0 - graceful-fs: 4.2.11 - picomatch: 2.3.1 - - jest-util@30.2.0: + jest-util@30.5.1: dependencies: - '@jest/types': 30.2.0 + '@jest/types': 30.5.1 '@types/node': 24.13.6 chalk: 4.1.2 ci-info: 4.3.1 graceful-fs: 4.2.11 picomatch: 4.0.3 - jest-validate@29.7.0: + jest-validate@30.5.1: dependencies: - '@jest/types': 29.6.3 + '@jest/get-type': 30.5.0 + '@jest/types': 30.5.1 camelcase: 6.3.0 chalk: 4.1.2 - jest-get-type: 29.6.3 leven: 3.1.0 - pretty-format: 29.7.0 + pretty-format: 30.5.1 - jest-watcher@29.7.0: + jest-watcher@30.5.2: dependencies: - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 + '@jest/test-result': 30.5.2 + '@jest/types': 30.5.1 '@types/node': 24.13.6 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 - jest-util: 29.7.0 + jest-util: 30.5.1 string-length: 4.0.2 jest-worker@27.5.1: @@ -60143,22 +60477,24 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 - jest-worker@29.7.0: + jest-worker@30.5.1: dependencies: '@types/node': 24.13.6 - jest-util: 29.7.0 + '@ungap/structured-clone': 1.3.0 + jest-util: 30.5.1 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)): + jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) - '@jest/types': 29.6.3 + '@jest/core': 30.5.2(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + '@jest/types': 30.5.1 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + jest-cli: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros + - esbuild-register - supports-color - ts-node @@ -60174,6 +60510,8 @@ snapshots: jiti@1.21.7: {} + jiti@2.7.0: {} + jose@4.15.9: {} jose@5.10.0: {} @@ -60195,7 +60533,11 @@ snapshots: argparse: 1.0.10 esprima: 4.0.1 - js-yaml@4.1.0: + js-yaml@4.3.2: + dependencies: + argparse: 2.0.1 + + js-yaml@5.4.3: dependencies: argparse: 2.0.1 @@ -60356,6 +60698,10 @@ snapshots: dependencies: commander: 8.3.0 + katex@0.16.47: + dependencies: + commander: 8.3.0 + keygrip@1.1.0: dependencies: tsscmp: 1.0.6 @@ -60368,11 +60714,9 @@ snapshots: kind-of@6.0.3: {} - kleur@3.0.3: {} - kleur@4.1.5: {} - known-css-properties@0.35.0: {} + known-css-properties@0.37.0: {} koa-bodyparser@4.4.1: dependencies: @@ -60442,18 +60786,14 @@ snapshots: kuler@2.0.0: {} - langium@3.3.1: + launch-editor@2.14.2: dependencies: - chevrotain: 11.0.3 - chevrotain-allstar: 0.3.1(chevrotain@11.0.3) - vscode-languageserver: 9.0.1 - vscode-languageserver-textdocument: 1.0.12 - vscode-uri: 3.0.8 + picocolors: 1.1.1 + shell-quote: 1.12.0 - launch-editor@2.12.0: + launder@1.7.2: dependencies: - picocolors: 1.1.1 - shell-quote: 1.8.3 + dayjs: 1.11.23 layout-base@1.0.2: {} @@ -60537,8 +60877,6 @@ snapshots: transitivePeerDependencies: - debug - loader-runner@4.3.1: {} - loader-utils@1.4.2: dependencies: big.js: 5.2.2 @@ -60650,11 +60988,6 @@ snapshots: lodash@4.17.21: {} - log-symbols@4.1.0: - dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 - logform@2.7.0: dependencies: '@colors/colors': 1.6.0 @@ -60698,8 +61031,6 @@ snapshots: dependencies: yallist: 4.0.0 - lru-cache@7.18.3: {} - machina@7.0.1: {} magic-string@0.25.9: @@ -60716,31 +61047,6 @@ snapshots: make-error@1.3.6: {} - make-fetch-happen@10.2.1: - dependencies: - agentkeepalive: 4.6.0 - cacache: 16.1.3 - http-cache-semantics: 4.2.0 - http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.1 - is-lambda: 1.0.1 - lru-cache: 7.18.3 - minipass: 3.3.6 - minipass-collect: 1.0.2 - minipass-fetch: 2.1.2 - minipass-flush: 1.0.5 - minipass-pipeline: 1.2.4 - negotiator: 0.6.4 - promise-retry: 2.0.1 - socks-proxy-agent: 7.0.0 - ssri: 9.0.1 - transitivePeerDependencies: - - supports-color - - makeerror@1.0.12: - dependencies: - tmpl: 1.0.5 - mammoth@1.11.0: dependencies: '@xmldom/xmldom': 0.8.11 @@ -60797,6 +61103,8 @@ snapshots: media-typer@0.3.0: {} + media-typer@1.1.1: {} + mem@4.3.0: dependencies: map-age-cleaner: 0.1.3 @@ -60807,36 +61115,57 @@ snapshots: dependencies: fs-monkey: 1.1.0 + memfs@4.80.0: + dependencies: + '@jsonjoy.com/fs-core': 4.80.0(tslib@2.8.1) + '@jsonjoy.com/fs-fsa': 4.80.0(tslib@2.8.1) + '@jsonjoy.com/fs-node': 4.80.0(tslib@2.8.1) + '@jsonjoy.com/fs-node-builtins': 4.80.0(tslib@2.8.1) + '@jsonjoy.com/fs-node-to-fsa': 4.80.0(tslib@2.8.1) + '@jsonjoy.com/fs-node-utils': 4.80.0(tslib@2.8.1) + '@jsonjoy.com/fs-print': 4.80.0(tslib@2.8.1) + '@jsonjoy.com/fs-snapshot': 4.80.0(tslib@2.8.1) + '@jsonjoy.com/json-pack': 1.21.0(tslib@2.8.1) + '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) + glob-to-regex.js: 1.3.1(tslib@2.8.1) + thingies: 2.6.1(tslib@2.8.1) + tree-dump: 1.1.0(tslib@2.8.1) + tslib: 2.8.1 + memory-pager@1.5.0: {} merge-descriptors@1.0.3: {} + merge-descriptors@2.0.0: {} + merge-stream@2.0.0: {} merge2@1.4.1: {} - mermaid@11.12.1: + mermaid@11.17.2: dependencies: - '@braintree/sanitize-url': 7.1.1 + '@braintree/sanitize-url': 7.1.2 '@iconify/utils': 3.0.2 - '@mermaid-js/parser': 0.6.3 + '@mermaid-js/parser': 1.2.1 '@types/d3': 7.4.3 - cytoscape: 3.33.1 - cytoscape-cose-bilkent: 4.1.0(cytoscape@3.33.1) - cytoscape-fcose: 2.2.0(cytoscape@3.33.1) + '@upsetjs/venn.js': 2.0.0 + cytoscape: 3.34.3 + cytoscape-cose-bilkent: 4.1.0(cytoscape@3.34.3) + cytoscape-fcose: 2.2.0(cytoscape@3.34.3) d3: 7.9.0 d3-sankey: 0.12.3 - dagre-d3-es: 7.0.13 - dayjs: 1.11.19 - dompurify: 3.3.0 - katex: 0.16.25 + dagre-d3-es: 7.0.14 + dayjs: 1.11.23 + dompurify: 3.4.16 + es-toolkit: 1.52.0 + fastdom: 1.0.12 + katex: 0.16.47 khroma: 2.1.0 - lodash-es: 4.17.21 marked: 16.4.2 roughjs: 4.6.6 stylis: 4.3.6 ts-dedent: 2.2.0 - uuid: 11.1.0 + uuid: 11.1.1 transitivePeerDependencies: - supports-color @@ -60855,6 +61184,10 @@ snapshots: dependencies: mime-db: 1.52.0 + mime-types@3.0.2: + dependencies: + mime-db: 1.54.0 + mime@1.6.0: {} mime@2.6.0: {} @@ -60875,27 +61208,27 @@ snapshots: min-indent@1.0.1: {} - mini-css-extract-plugin@2.9.4(webpack@5.102.1): + mini-css-extract-plugin@2.9.4(webpack@5.111.1): dependencies: schema-utils: 4.3.3 tapable: 2.3.0 - webpack: 5.102.1(esbuild@0.25.12)(webpack-cli@5.1.4) + webpack: 5.111.1(esbuild@0.25.12)(postcss@8.5.28)(webpack-cli@5.1.4) minimalistic-assert@1.0.1: {} - minimatch@10.1.1: + minimatch@10.2.6: dependencies: - '@isaacs/brace-expansion': 5.0.0 + brace-expansion: 5.0.12 minimatch@3.1.2: dependencies: brace-expansion: 1.1.12 - minimatch@5.1.6: + minimatch@3.1.5: dependencies: - brace-expansion: 2.0.2 + brace-expansion: 1.1.12 - minimatch@9.0.3: + minimatch@5.1.6: dependencies: brace-expansion: 2.0.2 @@ -60905,6 +61238,46 @@ snapshots: minimist@1.2.8: {} + minimizer-webpack-plugin@5.13.0(esbuild@0.25.12)(postcss@8.5.28)(webpack@5.111.1): + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + jest-worker: 27.5.1 + schema-utils: 4.5.0 + terser: 5.51.2 + webpack: 5.111.1(esbuild@0.25.12)(postcss@8.5.28)(webpack-cli@5.1.4) + optionalDependencies: + esbuild: 0.25.12 + postcss: 8.5.28 + + minimizer-webpack-plugin@5.13.0(esbuild@0.25.12)(sharp@0.35.5(@types/node@24.13.6))(webpack@5.111.1(esbuild@0.25.12)(sharp@0.35.5(@types/node@24.13.6))): + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + jest-worker: 27.5.1 + schema-utils: 4.5.0 + terser: 5.51.2 + webpack: 5.111.1(esbuild@0.25.12)(sharp@0.35.5(@types/node@24.13.6)) + optionalDependencies: + esbuild: 0.25.12 + sharp: 0.35.5(@types/node@24.13.6) + + minimizer-webpack-plugin@5.13.0(postcss@8.5.28)(webpack@5.111.1(postcss@8.5.28)): + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + jest-worker: 27.5.1 + schema-utils: 4.5.0 + terser: 5.51.2 + webpack: 5.111.1(postcss@8.5.28) + optionalDependencies: + postcss: 8.5.28 + + minimizer-webpack-plugin@5.13.0(webpack@5.111.1): + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + jest-worker: 27.5.1 + schema-utils: 4.5.0 + terser: 5.51.2 + webpack: 5.111.1 + minio@8.0.7: dependencies: async: 3.2.6 @@ -60921,42 +61294,9 @@ snapshots: through2: 4.0.2 xml2js: 0.6.2 - minipass-collect@1.0.2: - dependencies: - minipass: 3.3.6 - - minipass-fetch@2.1.2: - dependencies: - minipass: 3.3.6 - minipass-sized: 1.0.3 - minizlib: 2.1.2 - optionalDependencies: - encoding: 0.1.13 - - minipass-flush@1.0.5: - dependencies: - minipass: 3.3.6 - - minipass-pipeline@1.2.4: - dependencies: - minipass: 3.3.6 - - minipass-sized@1.0.3: - dependencies: - minipass: 3.3.6 - - minipass@3.3.6: - dependencies: - yallist: 4.0.0 - - minipass@5.0.0: {} - minipass@7.1.2: {} - minizlib@2.1.2: - dependencies: - minipass: 3.3.6 - yallist: 4.0.0 + minipass@7.1.3: {} minizlib@3.1.0: dependencies: @@ -60992,22 +61332,22 @@ snapshots: '@types/whatwg-url': 11.0.5 whatwg-url: 14.2.0 - mongodb@6.20.0(gcp-metadata@5.3.0(encoding@0.1.13))(snappy@7.3.3)(socks@2.8.7): + mongodb@6.20.0(gcp-metadata@5.3.0)(snappy@7.3.3)(socks@2.8.7): dependencies: '@mongodb-js/saslprep': 1.3.2 bson: 6.10.4 mongodb-connection-string-url: 3.0.2 optionalDependencies: - gcp-metadata: 5.3.0(encoding@0.1.13) + gcp-metadata: 5.3.0 snappy: 7.3.3 socks: 2.8.7 - morgan@1.10.1: + morgan@1.12.1: dependencies: basic-auth: 2.0.1 debug: 2.6.9 depd: 2.0.0 - on-finished: 2.3.0 + on-finished: 2.4.1 on-headers: 1.1.0 mri@1.2.0: {} @@ -61050,7 +61390,9 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 - nanoid@3.3.11: {} + nanoid@3.3.20: {} + + napi-postinstall@0.3.4: {} natural-compare@1.4.0: {} @@ -61058,6 +61400,10 @@ snapshots: negotiator@0.6.4: {} + negotiator@1.1.0: + dependencies: + content-type: 2.1.0 + neo-async@2.6.2: {} next-tick@1.1.0: {} @@ -61069,17 +61415,13 @@ snapshots: lower-case: 2.0.2 tslib: 2.8.1 - node-abi@3.80.0: + node-abi@4.36.0: dependencies: semver: 7.7.3 node-abort-controller@3.1.1: {} - node-addon-api@1.7.2: - optional: true - - node-addon-api@7.1.1: - optional: true + node-addon-api@7.1.1: {} node-api-version@0.2.1: dependencies: @@ -61087,11 +61429,9 @@ snapshots: node-domexception@1.0.0: {} - node-fetch@2.7.0(encoding@0.1.13): + node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 - optionalDependencies: - encoding: 0.1.13 node-fetch@3.3.2: dependencies: @@ -61099,7 +61439,7 @@ snapshots: fetch-blob: 3.2.0 formdata-polyfill: 4.0.10 - node-forge@1.3.1: {} + node-forge@1.4.0: {} node-gyp-build-optional-packages@5.2.2: dependencies: @@ -61107,33 +61447,30 @@ snapshots: node-gyp-build@4.8.4: {} - node-gyp@9.4.1: + node-gyp@12.4.0: dependencies: env-paths: 2.2.1 exponential-backoff: 3.1.3 - glob: 7.2.3 graceful-fs: 4.2.11 - make-fetch-happen: 10.2.1 - nopt: 6.0.0 - npmlog: 6.0.2 - rimraf: 3.0.2 + nopt: 9.0.0 + proc-log: 6.1.0 semver: 7.7.3 - tar: 6.2.1 - which: 2.0.2 - transitivePeerDependencies: - - supports-color + tar: 7.5.22 + tinyglobby: 0.2.17 + undici: 6.29.0 + which: 6.0.1 node-int64@0.4.0: {} - node-loader@2.0.0(webpack@5.102.1(esbuild@0.25.12)): + node-loader@2.0.0(webpack@5.111.1(esbuild@0.25.12)(sharp@0.35.5(@types/node@24.13.6))): dependencies: loader-utils: 2.0.4 - webpack: 5.102.1(esbuild@0.25.12) + webpack: 5.111.1(esbuild@0.25.12)(sharp@0.35.5(@types/node@24.13.6)) - node-loader@2.0.0(webpack@5.102.1): + node-loader@2.0.0(webpack@5.111.1): dependencies: loader-utils: 2.0.4 - webpack: 5.102.1(esbuild@0.25.12)(webpack-cli@5.1.4) + webpack: 5.111.1 node-localstorage@2.2.1: dependencies: @@ -61146,20 +61483,20 @@ snapshots: node-releases@2.0.47: {} - nodemailer@6.10.1: {} + nodemailer@9.1.1: {} nopt@1.0.10: dependencies: abbrev: 1.1.1 - nopt@6.0.0: - dependencies: - abbrev: 1.1.1 - nopt@8.1.0: dependencies: abbrev: 3.0.1 + nopt@9.0.0: + dependencies: + abbrev: 4.0.0 + normalize-path@3.0.0: {} normalize-range@0.1.2: {} @@ -61174,13 +61511,6 @@ snapshots: dependencies: path-key: 3.1.1 - npmlog@6.0.2: - dependencies: - are-we-there-yet: 3.0.1 - console-control-strings: 1.1.0 - gauge: 4.0.4 - set-blocking: 2.0.0 - nth-check@1.0.2: dependencies: boolbase: 1.0.0 @@ -61238,8 +61568,6 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.1.1 - obuf@1.1.2: {} - octokit@3.2.2: dependencies: '@octokit/app': 14.1.0 @@ -61254,16 +61582,12 @@ snapshots: '@octokit/types': 13.10.0 '@octokit/webhooks': 12.3.2 - oembed-providers@1.0.20260106: {} + oembed-providers@1.0.20260604: {} oidc-token-hash@5.2.0: {} omggif@1.0.10: {} - on-finished@2.3.0: - dependencies: - ee-first: 1.1.1 - on-finished@2.4.1: dependencies: ee-first: 1.1.1 @@ -61284,13 +61608,16 @@ snapshots: only@0.0.2: {} - open@8.4.2: + open@11.0.4: dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 - is-wsl: 2.2.0 + default-browser: 5.5.1 + define-lazy-prop: 3.0.0 + is-in-ssh: 1.0.0 + is-inside-container: 1.0.0 + powershell-utils: 0.2.1 + wsl-utils: 1.0.1 - openai@4.104.0(encoding@0.1.13)(ws@8.21.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.25.76): + openai@4.104.0(ws@8.21.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.25.76): dependencies: '@types/node': 18.19.130 '@types/node-fetch': 2.6.13 @@ -61298,7 +61625,7 @@ snapshots: agentkeepalive: 4.6.0 form-data-encoder: 1.7.2 formdata-node: 4.4.1 - node-fetch: 2.7.0(encoding@0.1.13) + node-fetch: 2.7.0 optionalDependencies: ws: 8.21.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) zod: 3.25.76 @@ -61325,18 +61652,6 @@ snapshots: type-check: 0.4.0 word-wrap: 1.2.5 - ora@5.4.1: - dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.9.2 - is-interactive: 1.0.0 - is-unicode-supported: 0.1.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - orderedmap@2.1.1: {} os-locale@3.1.0: @@ -61387,19 +61702,14 @@ snapshots: dependencies: p-limit: 3.1.0 - p-map@4.0.0: - dependencies: - aggregate-error: 3.1.0 - p-queue@7.3.4: dependencies: eventemitter3: 4.0.7 p-timeout: 5.1.0 - p-retry@4.6.2: + p-retry@8.0.1: dependencies: - '@types/retry': 0.12.0 - retry: 0.13.1 + is-network-error: 1.3.2 p-timeout@4.1.0: {} @@ -61522,10 +61832,17 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 + path-scurry@2.0.2: + dependencies: + lru-cache: 11.2.2 + minipass: 7.1.3 + path-to-regexp@0.1.12: {} path-to-regexp@6.3.0: {} + path-to-regexp@8.4.2: {} + path-type@4.0.0: {} pathe@2.0.3: {} @@ -61539,7 +61856,9 @@ snapshots: pako: 1.0.11 tslib: 1.14.1 - pdfjs-dist@2.12.313: {} + pdfjs-dist@6.2.108: + optionalDependencies: + '@napi-rs/canvas': 1.0.10 pe-library@0.4.1: {} @@ -61547,8 +61866,6 @@ snapshots: peek-readable@4.1.0: {} - pend@1.2.0: {} - performance-now@2.1.0: optional: true @@ -61584,6 +61901,8 @@ snapshots: picomatch@4.0.3: {} + picomatch@4.0.7: {} + pify@2.3.0: {} pirates@4.0.7: {} @@ -61612,13 +61931,20 @@ snapshots: dependencies: find-up: 3.0.0 - playwright-core@1.56.1: {} + pkijs@3.4.1: + dependencies: + '@noble/hashes': 1.8.0 + asn1js: 3.0.10 + bytestreamjs: 2.0.1 + pvtsutils: 1.3.6 + pvutils: 1.2.0 + tslib: 2.8.1 + + playwright-core@1.63.0: {} - playwright@1.56.1: + playwright@1.63.0: dependencies: - playwright-core: 1.56.1 - optionalDependencies: - fsevents: 2.3.2 + playwright-core: 1.63.0 plist@3.1.0: dependencies: @@ -61651,77 +61977,86 @@ snapshots: possible-typed-array-names@1.1.0: {} - postcss-import@15.1.0(postcss@8.5.6): + postcss-import@15.1.0(postcss@8.5.28): dependencies: - postcss: 8.5.6 + postcss: 8.5.28 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.11 - postcss-js@4.1.0(postcss@8.5.6): + postcss-js@4.1.0(postcss@8.5.28): dependencies: camelcase-css: 2.0.1 - postcss: 8.5.6 + postcss: 8.5.28 - postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)): + postcss-load-config@3.1.4(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)): dependencies: lilconfig: 2.1.0 yaml: 1.10.2 optionalDependencies: - postcss: 8.5.6 + postcss: 8.5.28 ts-node: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) - postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)): + postcss-load-config@4.0.2(postcss@8.5.16)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)): dependencies: lilconfig: 3.1.3 yaml: 2.8.1 optionalDependencies: - postcss: 8.5.6 + postcss: 8.5.16 ts-node: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) + optional: true - postcss-loader@7.3.4(postcss@8.5.6)(typescript@5.9.3)(webpack@5.102.1): + postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)): + dependencies: + lilconfig: 3.1.3 + yaml: 2.8.1 + optionalDependencies: + postcss: 8.5.28 + ts-node: 10.9.2(@types/node@24.13.6)(typescript@5.9.3) + + postcss-loader@7.3.4(postcss@8.5.28)(typescript@5.9.3)(webpack@5.111.1): dependencies: cosmiconfig: 8.3.6(typescript@5.9.3) jiti: 1.21.7 - postcss: 8.5.6 + postcss: 8.5.28 semver: 7.7.3 - webpack: 5.102.1(esbuild@0.25.12)(webpack-cli@5.1.4) + webpack: 5.111.1(esbuild@0.25.12)(postcss@8.5.28)(webpack-cli@5.1.4) transitivePeerDependencies: - typescript - postcss-modules-extract-imports@3.1.0(postcss@8.5.6): + postcss-modules-extract-imports@3.1.0(postcss@8.5.28): dependencies: - postcss: 8.5.6 + postcss: 8.5.28 - postcss-modules-local-by-default@4.2.0(postcss@8.5.6): + postcss-modules-local-by-default@4.2.0(postcss@8.5.28): dependencies: - icss-utils: 5.1.0(postcss@8.5.6) - postcss: 8.5.6 + icss-utils: 5.1.0(postcss@8.5.28) + postcss: 8.5.28 postcss-selector-parser: 7.1.0 postcss-value-parser: 4.2.0 - postcss-modules-scope@3.2.1(postcss@8.5.6): + postcss-modules-scope@3.2.1(postcss@8.5.28): dependencies: - postcss: 8.5.6 + postcss: 8.5.28 postcss-selector-parser: 7.1.0 - postcss-modules-values@4.0.0(postcss@8.5.6): + postcss-modules-values@4.0.0(postcss@8.5.28): dependencies: - icss-utils: 5.1.0(postcss@8.5.6) - postcss: 8.5.6 + icss-utils: 5.1.0(postcss@8.5.28) + postcss: 8.5.28 - postcss-nested@6.2.0(postcss@8.5.6): + postcss-nested@6.2.0(postcss@8.5.28): dependencies: - postcss: 8.5.6 + postcss: 8.5.28 postcss-selector-parser: 6.1.2 - postcss-safe-parser@6.0.0(postcss@8.5.6): + postcss-safe-parser@7.1.0(postcss@8.5.28): dependencies: - postcss: 8.5.6 + postcss: 8.5.28 - postcss-scss@4.0.9(postcss@8.5.6): + postcss-scss@4.0.9(postcss@8.5.28): dependencies: - postcss: 8.5.6 + postcss: 8.5.28 postcss-selector-parser@6.1.2: dependencies: @@ -61735,9 +62070,15 @@ snapshots: postcss-value-parser@4.2.0: {} - postcss@8.5.6: + postcss@8.5.16: dependencies: - nanoid: 3.3.11 + nanoid: 3.3.20 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + postcss@8.5.28: + dependencies: + nanoid: 3.3.20 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -61753,6 +62094,10 @@ snapshots: postgres@3.4.7: {} + postgres@3.4.9: {} + + powershell-utils@0.2.1: {} + prelude-ls@1.2.1: {} prettier-plugin-svelte@3.4.0(prettier@3.6.2)(svelte@4.2.20): @@ -61767,28 +62112,29 @@ snapshots: lodash: 4.17.21 renderkid: 3.0.0 - pretty-format@29.7.0: + pretty-format@30.2.0: dependencies: - '@jest/schemas': 29.6.3 + '@jest/schemas': 30.0.5 ansi-styles: 5.2.0 react-is: 18.3.1 - pretty-format@30.2.0: + pretty-format@30.5.1: dependencies: - '@jest/schemas': 30.0.5 + '@jest/react-is-18': react-is@18.3.1 + '@jest/react-is-19': react-is@19.3.0 + '@jest/schemas': 30.5.0 ansi-styles: 5.2.0 - react-is: 18.3.1 printj@1.1.2: {} + proc-log@6.1.0: {} + process-nextick-args@2.0.1: {} process@0.11.10: {} progress@2.0.3: {} - promise-inflight@1.0.1: {} - promise-polyfill@8.3.0: {} promise-retry@2.0.1: @@ -61796,11 +62142,6 @@ snapshots: err-code: 2.0.3 retry: 0.12.0 - prompts@2.4.2: - dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 - proper-lockfile@4.1.2: dependencies: graceful-fs: 4.2.11 @@ -61950,9 +62291,9 @@ snapshots: dependencies: escape-goat: 4.0.0 - puppeteer-core@25.11.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)(yauzl@2.10.0): + puppeteer-core@25.11.0(bufferutil@4.0.9)(utf-8-validate@6.0.5): dependencies: - '@puppeteer/browsers': 3.2.2(yauzl@2.10.0) + '@puppeteer/browsers': 3.2.2 chromium-bidi: 17.0.2(devtools-protocol@0.0.1680125) devtools-protocol: 0.0.1680125 typed-query-selector: 2.12.2 @@ -61964,13 +62305,13 @@ snapshots: - utf-8-validate - yauzl - puppeteer@25.11.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)(yauzl@2.10.0): + puppeteer@25.11.0(bufferutil@4.0.9)(utf-8-validate@6.0.5): dependencies: - '@puppeteer/browsers': 3.2.2(yauzl@2.10.0) + '@puppeteer/browsers': 3.2.2 chromium-bidi: 17.0.2(devtools-protocol@0.0.1680125) devtools-protocol: 0.0.1680125 lilconfig: 3.1.3 - puppeteer-core: 25.11.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)(yauzl@2.10.0) + puppeteer-core: 25.11.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) typed-query-selector: 2.12.2 transitivePeerDependencies: - bufferutil @@ -61978,7 +62319,13 @@ snapshots: - utf-8-validate - yauzl - pure-rand@6.1.0: {} + pure-rand@7.0.1: {} + + pvtsutils@1.3.6: + dependencies: + tslib: 2.8.1 + + pvutils@1.2.0: {} qrcode@1.5.4: dependencies: @@ -61986,15 +62333,14 @@ snapshots: pngjs: 5.0.0 yargs: 15.4.1 - qs@6.11.2: - dependencies: - side-channel: 1.1.0 - qs@6.13.0: dependencies: side-channel: 1.1.0 - qs@6.5.3: {} + qs@6.16.0: + dependencies: + es-define-property: 1.0.1 + side-channel: 1.1.1 quansync@0.2.11: {} @@ -62009,10 +62355,6 @@ snapshots: queue-microtask@1.2.3: {} - queue@6.0.2: - dependencies: - inherits: 2.0.4 - quick-lru@5.1.1: {} quick-lru@6.1.2: {} @@ -62024,12 +62366,10 @@ snapshots: random-bytes@1.0.0: {} - randombytes@2.1.0: - dependencies: - safe-buffer: 5.2.1 - range-parser@1.2.1: {} + range-parser@1.3.0: {} + rangetouch@2.0.1: {} raw-body@2.5.2: @@ -62039,8 +62379,17 @@ snapshots: iconv-lite: 0.4.24 unpipe: 1.0.0 + raw-body@3.0.2: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.1 + iconv-lite: 0.7.3 + unpipe: 1.0.0 + react-is@18.3.1: {} + react-is@19.3.0: {} + read-binary-file-arch@1.0.6: dependencies: debug: 4.4.3 @@ -62089,6 +62438,8 @@ snapshots: readdirp@4.1.2: {} + readdirp@5.1.1: {} + real-cancellable-promise@1.2.3: {} rechoir@0.8.0: @@ -62100,6 +62451,12 @@ snapshots: indent-string: 4.0.0 strip-indent: 3.0.0 + refa@0.12.1: + dependencies: + '@eslint-community/regexpp': 4.12.2 + + reflect-metadata@0.2.2: {} + reflect.getprototypeof@1.0.10: dependencies: call-bind: 1.0.8 @@ -62113,6 +62470,11 @@ snapshots: regenerator-runtime@0.13.11: {} + regexp-ast-analysis@0.7.1: + dependencies: + '@eslint-community/regexpp': 4.12.2 + refa: 0.12.1 + regexp.prototype.flags@1.5.4: dependencies: call-bind: 1.0.8 @@ -62122,8 +62484,6 @@ snapshots: gopd: 1.2.0 set-function-name: 2.0.2 - regexpp@3.2.0: {} - relateurl@0.2.7: {} remedial@1.0.8: {} @@ -62175,8 +62535,6 @@ snapshots: resolve-pkg-maps@1.0.0: {} - resolve.exports@2.0.3: {} - resolve@1.22.11: dependencies: is-core-module: 2.16.1 @@ -62187,15 +62545,8 @@ snapshots: dependencies: lowercase-keys: 2.0.0 - restore-cursor@3.1.0: - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - retry@0.12.0: {} - retry@0.13.1: {} - reusify@1.1.0: {} rfc6902@5.1.2: {} @@ -62207,10 +62558,6 @@ snapshots: dependencies: glob: 7.2.3 - rimraf@3.0.2: - dependencies: - glob: 7.2.3 - rimraf@5.0.10: dependencies: glob: 10.4.5 @@ -62240,8 +62587,20 @@ snapshots: points-on-curve: 0.2.0 points-on-path: 0.2.1 + router@2.2.0: + dependencies: + debug: 4.4.3 + depd: 2.0.0 + is-promise: 4.0.0 + parseurl: 1.3.3 + path-to-regexp: 8.4.2 + transitivePeerDependencies: + - supports-color + rrweb-cssom@0.8.0: {} + run-applescript@7.1.0: {} + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 @@ -62301,21 +62660,22 @@ snapshots: dependencies: truncate-utf8-bytes: 1.0.2 - sanitize-html@2.17.0: + sanitize-html@2.17.5: dependencies: deepmerge: 4.3.1 escape-string-regexp: 4.0.0 - htmlparser2: 8.0.2 + htmlparser2: 10.1.0 is-plain-object: 5.0.0 + launder: 1.7.2 parse-srcset: 1.0.2 - postcss: 8.5.6 + postcss: 8.5.28 - sass-loader@14.2.1(sass@1.93.3)(webpack@5.102.1): + sass-loader@14.2.1(sass@1.93.3)(webpack@5.111.1): dependencies: neo-async: 2.6.2 optionalDependencies: sass: 1.93.3 - webpack: 5.102.1(esbuild@0.25.12)(webpack-cli@5.1.4) + webpack: 5.111.1(esbuild@0.25.12)(postcss@8.5.28)(webpack-cli@5.1.4) sass@1.93.3: dependencies: @@ -62344,6 +62704,19 @@ snapshots: ajv-formats: 2.1.1 ajv-keywords: 5.1.0(ajv@8.17.1) + schema-utils@4.5.0: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 8.20.0 + ajv-formats: 3.0.1 + ajv-keywords: 5.1.0(ajv@8.20.0) + + scslre@0.3.0: + dependencies: + '@eslint-community/regexpp': 4.12.2 + refa: 0.12.1 + regexp-ast-analysis: 0.7.1 + scule@1.3.0: {} sdp-transform@2.15.0: {} @@ -62356,12 +62729,10 @@ snapshots: dependencies: parseley: 0.12.1 - select-hose@2.0.0: {} - - selfsigned@2.4.1: + selfsigned@5.5.0: dependencies: - '@types/node-forge': 1.3.14 - node-forge: 1.3.1 + '@peculiar/x509': 1.14.3 + pkijs: 3.4.1 semver-compare@1.0.0: optional: true @@ -62372,6 +62743,8 @@ snapshots: semver@7.7.3: {} + semver@7.8.5: {} + send@0.19.0: dependencies: debug: 2.6.9 @@ -62388,22 +62761,36 @@ snapshots: range-parser: 1.2.1 statuses: 2.0.1 + send@1.2.1: + dependencies: + debug: 4.4.3 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 2.0.0 + http-errors: 2.0.1 + mime-types: 3.0.2 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.2 + transitivePeerDependencies: + - supports-color + serialize-error@7.0.1: dependencies: type-fest: 0.13.1 optional: true - serialize-javascript@6.0.2: - dependencies: - randombytes: 2.1.0 + serialize-javascript@7.1.2: {} - serve-index@1.9.1: + serve-index@1.9.2: dependencies: accepts: 1.3.8 batch: 0.6.1 debug: 2.6.9 escape-html: 1.0.3 - http-errors: 1.6.3 + http-errors: 1.8.1 mime-types: 2.1.35 parseurl: 1.3.3 @@ -62414,6 +62801,15 @@ snapshots: parseurl: 1.3.3 send: 0.19.0 + serve-static@2.2.1: + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 1.2.1 + transitivePeerDependencies: + - supports-color + set-blocking@2.0.0: {} set-function-length@1.2.2: @@ -62440,46 +62836,44 @@ snapshots: setimmediate@1.0.5: {} - setprototypeof@1.1.0: {} - - setprototypeof@1.1.1: {} - setprototypeof@1.2.0: {} shallow-clone@3.0.1: dependencies: kind-of: 6.0.3 - sharp@0.34.5: + sharp@0.35.5(@types/node@24.13.6): dependencies: - '@img/colour': 1.0.0 + '@img/colour': 1.1.0 detect-libc: 2.1.2 - semver: 7.7.3 + semver: 7.8.5 optionalDependencies: - '@img/sharp-darwin-arm64': 0.34.5 - '@img/sharp-darwin-x64': 0.34.5 - '@img/sharp-libvips-darwin-arm64': 1.2.4 - '@img/sharp-libvips-darwin-x64': 1.2.4 - '@img/sharp-libvips-linux-arm': 1.2.4 - '@img/sharp-libvips-linux-arm64': 1.2.4 - '@img/sharp-libvips-linux-ppc64': 1.2.4 - '@img/sharp-libvips-linux-riscv64': 1.2.4 - '@img/sharp-libvips-linux-s390x': 1.2.4 - '@img/sharp-libvips-linux-x64': 1.2.4 - '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 - '@img/sharp-libvips-linuxmusl-x64': 1.2.4 - '@img/sharp-linux-arm': 0.34.5 - '@img/sharp-linux-arm64': 0.34.5 - '@img/sharp-linux-ppc64': 0.34.5 - '@img/sharp-linux-riscv64': 0.34.5 - '@img/sharp-linux-s390x': 0.34.5 - '@img/sharp-linux-x64': 0.34.5 - '@img/sharp-linuxmusl-arm64': 0.34.5 - '@img/sharp-linuxmusl-x64': 0.34.5 - '@img/sharp-wasm32': 0.34.5 - '@img/sharp-win32-arm64': 0.34.5 - '@img/sharp-win32-ia32': 0.34.5 - '@img/sharp-win32-x64': 0.34.5 + '@img/sharp-darwin-arm64': 0.35.5 + '@img/sharp-darwin-x64': 0.35.5 + '@img/sharp-freebsd-wasm32': 0.35.5 + '@img/sharp-libvips-darwin-arm64': 1.3.4 + '@img/sharp-libvips-darwin-x64': 1.3.4 + '@img/sharp-libvips-linux-arm': 1.3.4 + '@img/sharp-libvips-linux-arm64': 1.3.4 + '@img/sharp-libvips-linux-ppc64': 1.3.4 + '@img/sharp-libvips-linux-riscv64': 1.3.4 + '@img/sharp-libvips-linux-s390x': 1.3.4 + '@img/sharp-libvips-linux-x64': 1.3.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.3.4 + '@img/sharp-libvips-linuxmusl-x64': 1.3.4 + '@img/sharp-linux-arm': 0.35.5 + '@img/sharp-linux-arm64': 0.35.5 + '@img/sharp-linux-ppc64': 0.35.5 + '@img/sharp-linux-riscv64': 0.35.5 + '@img/sharp-linux-s390x': 0.35.5 + '@img/sharp-linux-x64': 0.35.5 + '@img/sharp-linuxmusl-arm64': 0.35.5 + '@img/sharp-linuxmusl-x64': 0.35.5 + '@img/sharp-webcontainers-wasm32': 0.35.5 + '@img/sharp-win32-arm64': 0.35.5 + '@img/sharp-win32-ia32': 0.35.5 + '@img/sharp-win32-x64': 0.35.5 + '@types/node': 24.13.6 shebang-command@1.2.0: dependencies: @@ -62493,13 +62887,18 @@ snapshots: shebang-regex@3.0.0: {} - shell-quote@1.8.3: {} + shell-quote@1.12.0: {} side-channel-list@1.0.0: dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 + side-channel-list@1.0.1: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-map@1.0.1: dependencies: call-bound: 1.0.4 @@ -62523,6 +62922,14 @@ snapshots: side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 + side-channel@1.1.1: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.1 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + signal-exit@3.0.7: {} signal-exit@4.1.0: {} @@ -62541,19 +62948,8 @@ snapshots: mrmime: 2.0.1 totalist: 3.0.1 - sisteransi@1.0.5: {} - slash@3.0.0: {} - slash@4.0.0: {} - - slice-ansi@3.0.0: - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 - optional: true - slice-ansi@5.0.0: dependencies: ansi-styles: 6.2.3 @@ -62571,7 +62967,7 @@ snapshots: dependencies: commander: 9.5.0 eventsource: 2.0.2 - morgan: 1.10.1 + morgan: 1.12.1 superagent: 8.1.2 validator: 13.15.22 transitivePeerDependencies: @@ -62600,20 +62996,6 @@ snapshots: snappyjs@0.7.0: {} - sockjs@0.3.24: - dependencies: - faye-websocket: 0.11.4 - uuid: 8.3.2 - websocket-driver: 0.7.4 - - socks-proxy-agent@7.0.0: - dependencies: - agent-base: 6.0.2 - debug: 4.4.3 - socks: 2.8.7 - transitivePeerDependencies: - - supports-color - socks@2.8.7: dependencies: ip-address: 10.1.0 @@ -62638,11 +63020,6 @@ snapshots: source-map-js@1.2.1: {} - source-map-support@0.5.13: - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 @@ -62658,27 +63035,6 @@ snapshots: dependencies: memory-pager: 1.5.0 - spdy-transport@3.0.0: - dependencies: - debug: 4.4.3 - detect-node: 2.1.0 - hpack.js: 2.1.6 - obuf: 1.1.2 - readable-stream: 3.6.2 - wbuf: 1.7.3 - transitivePeerDependencies: - - supports-color - - spdy@4.0.2: - dependencies: - debug: 4.4.3 - handle-thing: 2.0.1 - http-deceiver: 1.2.7 - select-hose: 2.0.0 - spdy-transport: 3.0.0 - transitivePeerDependencies: - - supports-color - split-on-first@1.1.0: {} sprintf-js@1.0.3: {} @@ -62686,10 +63042,6 @@ snapshots: sprintf-js@1.1.3: optional: true - ssri@9.0.1: - dependencies: - minipass: 3.3.6 - stable@0.1.8: {} stack-trace@0.0.10: {} @@ -62712,6 +63064,8 @@ snapshots: statuses@2.0.1: {} + statuses@2.0.2: {} + stop-iteration-iterator@1.1.0: dependencies: es-errors: 1.3.0 @@ -62743,6 +63097,8 @@ snapshots: strict-uri-encode@2.0.0: {} + strictdom@1.0.1: {} + string-length@4.0.2: dependencies: char-regex: 1.0.2 @@ -62848,7 +63204,7 @@ snapshots: stripe@17.7.0: dependencies: '@types/node': 24.13.6 - qs: 6.11.2 + qs: 6.16.0 striptags@3.2.0: {} @@ -62861,9 +63217,9 @@ snapshots: '@tokenizer/token': 0.3.0 peek-readable: 4.1.0 - style-loader@3.3.4(webpack@5.102.1): + style-loader@3.3.4(webpack@5.111.1): dependencies: - webpack: 5.102.1(esbuild@0.25.12)(webpack-cli@5.1.4) + webpack: 5.111.1(esbuild@0.25.12)(postcss@8.5.28)(webpack-cli@5.1.4) stylis@4.3.6: {} @@ -62889,11 +63245,11 @@ snapshots: cookiejar: 2.1.4 debug: 4.4.3 fast-safe-stringify: 2.1.1 - form-data: 4.0.4 + form-data: 4.0.6 formidable: 2.1.5 methods: 1.1.2 mime: 2.6.0 - qs: 6.11.2 + qs: 6.16.0 semver: 7.7.3 transitivePeerDependencies: - supports-color @@ -62908,14 +63264,14 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20): + svelte-check@3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.16)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.16)(sass@1.93.3)(svelte@4.2.20): dependencies: '@jridgewell/trace-mapping': 0.3.31 chokidar: 3.6.0 picocolors: 1.1.1 sade: 1.8.1 svelte: 4.2.20 - svelte-preprocess: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + svelte-preprocess: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.16)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.16)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - '@babel/core' @@ -62928,25 +63284,37 @@ snapshots: - stylus - sugarss - svelte-dev-helper@1.1.9: {} - - svelte-eslint-parser@0.33.1(svelte@4.2.20): + svelte-check@3.8.6(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20): dependencies: - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - postcss: 8.5.6 - postcss-scss: 4.0.9(postcss@8.5.6) - optionalDependencies: + '@jridgewell/trace-mapping': 0.3.31 + chokidar: 3.6.0 + picocolors: 1.1.1 + sade: 1.8.1 svelte: 4.2.20 + svelte-preprocess: 5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - '@babel/core' + - coffeescript + - less + - postcss + - postcss-load-config + - pug + - sass + - stylus + - sugarss - svelte-eslint-parser@0.43.0(svelte@4.2.20): + svelte-dev-helper@1.1.9: {} + + svelte-eslint-parser@1.8.1(svelte@4.2.20): dependencies: - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - postcss: 8.5.6 - postcss-scss: 4.0.9(postcss@8.5.6) + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + postcss: 8.5.28 + postcss-scss: 4.0.9(postcss@8.5.28) + postcss-selector-parser: 7.1.0 + semver: 7.7.3 optionalDependencies: svelte: 4.2.20 @@ -62961,7 +63329,22 @@ snapshots: svelte-dev-helper: 1.1.9 svelte-hmr: 0.14.12(svelte@4.2.20) - svelte-preprocess@5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.6)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3): + svelte-preprocess@5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.16)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.16)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3): + dependencies: + '@types/pug': 2.0.10 + detect-indent: 6.1.0 + magic-string: 0.30.21 + sorcery: 0.11.1 + strip-indent: 3.0.0 + svelte: 4.2.20 + optionalDependencies: + '@babel/core': 7.28.5 + postcss: 8.5.16 + postcss-load-config: 4.0.2(postcss@8.5.16)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + sass: 1.93.3 + typescript: 5.9.3 + + svelte-preprocess@5.1.4(@babel/core@7.28.5)(postcss-load-config@4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(postcss@8.5.28)(sass@1.93.3)(svelte@4.2.20)(typescript@5.9.3): dependencies: '@types/pug': 2.0.10 detect-indent: 6.1.0 @@ -62971,8 +63354,8 @@ snapshots: svelte: 4.2.20 optionalDependencies: '@babel/core': 7.28.5 - postcss: 8.5.6 - postcss-load-config: 4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + postcss: 8.5.28 + postcss-load-config: 4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) sass: 1.93.3 typescript: 5.9.3 @@ -63020,6 +63403,10 @@ snapshots: symbol-tree@3.2.4: {} + synckit@0.11.13: + dependencies: + '@pkgr/core': 0.3.6 + systeminformation@5.33.13: {} tailwindcss@3.4.18(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)): @@ -63038,11 +63425,11 @@ snapshots: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.1.1 - postcss: 8.5.6 - postcss-import: 15.1.0(postcss@8.5.6) - postcss-js: 4.1.0(postcss@8.5.6) - postcss-load-config: 4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) - postcss-nested: 6.2.0(postcss@8.5.6) + postcss: 8.5.28 + postcss-import: 15.1.0(postcss@8.5.28) + postcss-js: 4.1.0(postcss@8.5.28) + postcss-load-config: 4.0.2(postcss@8.5.28)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + postcss-nested: 6.2.0(postcss@8.5.28) postcss-selector-parser: 6.1.2 resolve: 1.22.11 sucrase: 3.35.0 @@ -63051,6 +63438,8 @@ snapshots: tapable@2.3.0: {} + tapable@2.3.3: {} + tar-stream@3.1.7: dependencies: b4a: 1.7.3 @@ -63060,16 +63449,7 @@ snapshots: - bare-abort-controller - react-native-b4a - tar@6.2.1: - dependencies: - chownr: 2.0.0 - fs-minipass: 2.1.0 - minipass: 5.0.0 - minizlib: 2.1.2 - mkdirp: 1.0.4 - yallist: 4.0.0 - - tar@7.5.2: + tar@7.5.22: dependencies: '@isaacs/fs-minipass': 4.0.1 chownr: 3.0.0 @@ -63077,13 +63457,13 @@ snapshots: minizlib: 3.1.0 yallist: 5.0.0 - telegraf@4.16.3(encoding@0.1.13): + telegraf@4.16.3: dependencies: '@telegraf/types': 7.1.0 abort-controller: 3.0.0 debug: 4.4.3 mri: 1.2.0 - node-fetch: 2.7.0(encoding@0.1.13) + node-fetch: 2.7.0 p-timeout: 4.1.0 safe-compare: 1.1.4 sandwich-stream: 2.0.2 @@ -63116,49 +63496,25 @@ snapshots: async-exit-hook: 2.0.1 fs-extra: 10.1.0 - terser-webpack-plugin@5.3.14(esbuild@0.25.12)(webpack@5.102.1(esbuild@0.25.12)): - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - jest-worker: 27.5.1 - schema-utils: 4.3.3 - serialize-javascript: 6.0.2 - terser: 5.44.1 - webpack: 5.102.1(esbuild@0.25.12) - optionalDependencies: - esbuild: 0.25.12 - - terser-webpack-plugin@5.3.14(esbuild@0.25.12)(webpack@5.102.1): + terser@5.44.1: dependencies: - '@jridgewell/trace-mapping': 0.3.31 - jest-worker: 27.5.1 - schema-utils: 4.3.3 - serialize-javascript: 6.0.2 - terser: 5.44.1 - webpack: 5.102.1(esbuild@0.25.12)(webpack-cli@5.1.4) - optionalDependencies: - esbuild: 0.25.12 + '@jridgewell/source-map': 0.3.11 + acorn: 8.15.0 + commander: 2.20.3 + source-map-support: 0.5.21 - terser-webpack-plugin@5.3.14(webpack@5.102.1): - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - jest-worker: 27.5.1 - schema-utils: 4.3.3 - serialize-javascript: 6.0.2 - terser: 5.44.1 - webpack: 5.102.1 - - terser@5.44.1: + terser@5.51.2: dependencies: '@jridgewell/source-map': 0.3.11 acorn: 8.15.0 commander: 2.20.3 source-map-support: 0.5.21 - test-exclude@6.0.0: + test-exclude@7.0.2: dependencies: '@istanbuljs/schema': 0.1.3 - glob: 7.2.3 - minimatch: 3.1.2 + glob: 10.4.5 + minimatch: 10.2.6 text-decoder@1.2.3: dependencies: @@ -63173,8 +63529,6 @@ snapshots: utrie: 1.0.2 optional: true - text-table@0.2.0: {} - thenify-all@1.6.0: dependencies: thenify: 3.3.1 @@ -63183,6 +63537,10 @@ snapshots: dependencies: any-promise: 1.3.0 + thingies@2.6.1(tslib@2.8.1): + dependencies: + tslib: 2.8.1 + thirty-two@1.0.2: {} through2@4.0.2: @@ -63193,6 +63551,10 @@ snapshots: timm@1.7.1: {} + tiny-async-pool@1.3.0: + dependencies: + semver: 5.7.2 + tiny-lru@11.3.4: {} tiny-typed-emitter@2.1.0: {} @@ -63201,6 +63563,11 @@ snapshots: tinyexec@1.0.2: {} + tinyglobby@0.2.17: + dependencies: + fdir: 6.5.0(picomatch@4.0.7) + picomatch: 4.0.7 + tippy.js@6.3.7: dependencies: '@popperjs/core': 2.11.8 @@ -63217,14 +63584,10 @@ snapshots: tmp@0.2.5: {} - tmpl@1.0.5: {} - to-regex-range@5.0.1: dependencies: is-number: 7.0.0 - toidentifier@1.0.0: {} - toidentifier@1.0.1: {} token-types@4.2.1: @@ -63246,6 +63609,10 @@ snapshots: dependencies: punycode: 2.3.1 + tree-dump@1.1.0(tslib@2.8.1): + dependencies: + tslib: 2.8.1 + tree-kill@1.2.2: {} triple-beam@1.4.1: {} @@ -63254,7 +63621,7 @@ snapshots: dependencies: utf8-byte-length: 1.0.5 - ts-api-utils@1.4.3(typescript@5.9.3): + ts-api-utils@2.5.0(typescript@5.9.3): dependencies: typescript: 5.9.3 @@ -63268,69 +63635,28 @@ snapshots: dependencies: tslib: 1.14.1 - ts-jest@29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3): - dependencies: - bs-logger: 0.2.6 - fast-json-stable-stringify: 2.1.0 - handlebars: 4.7.8 - jest: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) - json5: 2.2.3 - lodash.memoize: 4.1.2 - make-error: 1.3.6 - semver: 7.7.3 - type-fest: 4.41.0 - typescript: 5.9.3 - yargs-parser: 21.1.1 - optionalDependencies: - '@babel/core': 7.28.5 - '@jest/transform': 29.7.0 - '@jest/types': 30.2.0 - babel-jest: 29.7.0(@babel/core@7.28.5) - esbuild: 0.25.12 - jest-util: 30.2.0 - - ts-jest@29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.2.0)(jest@29.7.0(@types/node@24.13.6))(typescript@5.9.3): + ts-jest@29.4.14(@babel/core@7.28.5)(@jest/transform@30.5.2)(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.28.5))(esbuild@0.25.12)(jest-util@30.5.1)(jest@30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)))(typescript@5.9.3): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - handlebars: 4.7.8 - jest: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) + handlebars: 4.7.10 + jest: 30.5.2(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 - semver: 7.7.3 + semver: 7.8.5 type-fest: 4.41.0 typescript: 5.9.3 yargs-parser: 21.1.1 optionalDependencies: '@babel/core': 7.28.5 - '@jest/transform': 29.7.0 - '@jest/types': 30.2.0 - babel-jest: 29.7.0(@babel/core@7.28.5) + '@jest/transform': 30.5.2 + '@jest/types': 30.5.1 + babel-jest: 30.5.2(@babel/core@7.28.5) esbuild: 0.25.12 - jest-util: 30.2.0 + jest-util: 30.5.1 - ts-jest@29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0)(typescript@5.9.3): - dependencies: - bs-logger: 0.2.6 - fast-json-stable-stringify: 2.1.0 - handlebars: 4.7.8 - jest: 29.7.0(@types/node@24.13.6)(ts-node@10.9.2(@types/node@24.13.6)(typescript@5.9.3)) - json5: 2.2.3 - lodash.memoize: 4.1.2 - make-error: 1.3.6 - semver: 7.7.3 - type-fest: 4.41.0 - typescript: 5.9.3 - yargs-parser: 21.1.1 - optionalDependencies: - '@babel/core': 7.28.5 - '@jest/transform': 29.7.0 - '@jest/types': 30.2.0 - babel-jest: 29.7.0(@babel/core@7.28.5) - jest-util: 30.2.0 - - ts-loader@9.5.4(typescript@5.9.3)(webpack@5.102.1): + ts-loader@9.5.4(typescript@5.9.3)(webpack@5.111.1): dependencies: chalk: 4.1.2 enhanced-resolve: 5.18.3 @@ -63338,7 +63664,7 @@ snapshots: semver: 7.7.3 source-map: 0.7.6 typescript: 5.9.3 - webpack: 5.102.1(esbuild@0.25.12)(webpack-cli@5.1.4) + webpack: 5.111.1(esbuild@0.25.12)(postcss@8.5.28)(webpack-cli@5.1.4) ts-node-dev@2.0.0(@types/node@24.13.6)(typescript@5.9.3): dependencies: @@ -63407,6 +63733,10 @@ snapshots: tsscmp@1.0.6: {} + tsyringe@4.10.0: + dependencies: + tslib: 1.14.1 + turndown@7.2.2: dependencies: '@mixmark-io/domino': 2.2.0 @@ -63430,8 +63760,6 @@ snapshots: type-fest@0.13.1: optional: true - type-fest@0.20.2: {} - type-fest@0.21.3: {} type-fest@2.19.0: {} @@ -63443,6 +63771,12 @@ snapshots: media-typer: 0.3.0 mime-types: 2.1.35 + type-is@2.1.0: + dependencies: + content-type: 2.1.0 + media-typer: 1.1.1 + mime-types: 3.0.2 + type@2.7.3: {} typed-array-buffer@1.0.3: @@ -63488,6 +63822,17 @@ snapshots: dependencies: is-typedarray: 1.0.0 + typescript-eslint@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.71.1(@typescript-eslint/parser@8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/parser': 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.71.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.71.1(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + eslint: 9.39.5(jiti@2.7.0) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + typescript@5.9.3: {} ua-is-frozen@0.1.2: {} @@ -63522,19 +63867,11 @@ snapshots: undici-types@5.26.5: {} - undici-types@6.21.0: {} - undici-types@7.18.2: {} - undici@7.18.2: {} - - unique-filename@2.0.1: - dependencies: - unique-slug: 3.0.0 + undici@6.29.0: {} - unique-slug@3.0.0: - dependencies: - imurmurhash: 0.1.4 + undici@7.30.0: {} universal-github-app-jwt@1.2.0: dependencies: @@ -63547,13 +63884,52 @@ snapshots: universalify@2.0.1: {} + unpdf@1.8.1(@napi-rs/canvas@1.0.10): + optionalDependencies: + '@napi-rs/canvas': 1.0.10 + unpipe@1.0.0: {} + unrs-resolver@1.12.2: + dependencies: + napi-postinstall: 0.3.4 + optionalDependencies: + '@unrs/resolver-binding-android-arm-eabi': 1.12.2 + '@unrs/resolver-binding-android-arm64': 1.12.2 + '@unrs/resolver-binding-darwin-arm64': 1.12.2 + '@unrs/resolver-binding-darwin-x64': 1.12.2 + '@unrs/resolver-binding-freebsd-x64': 1.12.2 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.12.2 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.12.2 + '@unrs/resolver-binding-linux-arm64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-arm64-musl': 1.12.2 + '@unrs/resolver-binding-linux-loong64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-loong64-musl': 1.12.2 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-riscv64-musl': 1.12.2 + '@unrs/resolver-binding-linux-s390x-gnu': 1.12.2 + '@unrs/resolver-binding-linux-x64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-x64-musl': 1.12.2 + '@unrs/resolver-binding-openharmony-arm64': 1.12.2 + '@unrs/resolver-binding-wasm32-wasi': 1.12.2 + '@unrs/resolver-binding-win32-arm64-msvc': 1.12.2 + '@unrs/resolver-binding-win32-ia32-msvc': 1.12.2 + '@unrs/resolver-binding-win32-x64-msvc': 1.12.2 + unused-filename@4.0.1: dependencies: escape-string-regexp: 5.0.0 path-exists: 5.0.0 + unzipper@0.12.5: + dependencies: + bluebird: 3.7.2 + duplexer2: 0.1.4 + fs-extra: 11.3.1 + graceful-fs: 4.2.11 + node-int64: 0.4.0 + update-browserslist-db@1.2.3(browserslist@4.28.2): dependencies: browserslist: 4.28.2 @@ -63564,14 +63940,14 @@ snapshots: dependencies: punycode: 2.3.1 - url-loader@4.1.1(file-loader@6.2.0(webpack@5.102.1))(webpack@5.102.1): + url-loader@4.1.1(file-loader@6.2.0(webpack@5.111.1(postcss@8.5.28)))(webpack@5.111.1(postcss@8.5.28)): dependencies: loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.3.0 - webpack: 5.102.1 + webpack: 5.111.1(postcss@8.5.28) optionalDependencies: - file-loader: 6.2.0(webpack@5.102.1) + file-loader: 6.2.0(webpack@5.111.1(postcss@8.5.28)) url-parse@1.5.10: dependencies: @@ -63607,7 +63983,7 @@ snapshots: base64-arraybuffer: 1.0.2 optional: true - uuid@11.1.0: {} + uuid@11.1.1: {} uuid@3.4.0: {} @@ -63627,53 +64003,16 @@ snapshots: vary@1.1.2: {} - verror@1.10.1: - dependencies: - assert-plus: 1.0.0 - core-util-is: 1.0.2 - extsprintf: 1.4.1 - optional: true - - vscode-jsonrpc@8.2.0: {} - - vscode-languageserver-protocol@3.17.5: - dependencies: - vscode-jsonrpc: 8.2.0 - vscode-languageserver-types: 3.17.5 - - vscode-languageserver-textdocument@1.0.12: {} - - vscode-languageserver-types@3.17.5: {} - - vscode-languageserver@9.0.1: - dependencies: - vscode-languageserver-protocol: 3.17.5 - - vscode-uri@3.0.8: {} - w3c-keyname@2.2.8: {} w3c-xmlserializer@5.0.0: dependencies: xml-name-validator: 5.0.0 - walker@1.0.8: - dependencies: - makeerror: 1.0.12 - - watchpack@2.4.4: + watchpack@2.5.2: dependencies: - glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 - wbuf@1.7.3: - dependencies: - minimalistic-assert: 1.0.1 - - wcwidth@1.0.1: - dependencies: - defaults: 1.0.4 - web-push@3.6.7: dependencies: asn1.js: 5.4.1 @@ -63688,6 +64027,14 @@ snapshots: web-streams-polyfill@4.0.0-beta.3: {} + webcrypto-core@1.9.2: + dependencies: + '@peculiar/asn1-schema': 2.10.0 + '@peculiar/json-schema': 1.1.12 + '@peculiar/utils': 2.0.3 + asn1js: 3.0.10 + tslib: 2.8.1 + webdriver-bidi-protocol@0.4.3: {} webidl-conversions@3.0.1: {} @@ -63712,12 +64059,12 @@ snapshots: - bufferutil - utf-8-validate - webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(webpack-dev-server@4.15.2)(webpack@5.102.1): + webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(webpack-dev-server@6.0.0)(webpack@5.111.1): dependencies: '@discoveryjs/json-ext': 0.5.7 - '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.102.1) - '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.102.1) - '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack-dev-server@4.15.2)(webpack@5.102.1) + '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.111.1) + '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.111.1) + '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack-dev-server@6.0.0)(webpack@5.111.1) colorette: 2.0.20 commander: 10.0.1 cross-spawn: 7.0.6 @@ -63726,59 +64073,54 @@ snapshots: import-local: 3.2.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.102.1(esbuild@0.25.12)(webpack-cli@5.1.4) + webpack: 5.111.1(esbuild@0.25.12)(postcss@8.5.28)(webpack-cli@5.1.4) webpack-merge: 5.10.0 optionalDependencies: webpack-bundle-analyzer: 4.10.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) - webpack-dev-server: 4.15.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)(webpack-cli@5.1.4)(webpack@5.102.1) + webpack-dev-server: 6.0.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)(webpack-cli@5.1.4)(webpack@5.111.1) - webpack-dev-middleware@5.3.4(webpack@5.102.1): + webpack-dev-middleware@8.3.0(webpack@5.111.1): dependencies: - colorette: 2.0.20 - memfs: 3.5.3 - mime-types: 2.1.35 - range-parser: 1.2.1 + ansi-html-community: 0.0.8 + memfs: 4.80.0 + mime-types: 3.0.2 + range-parser: 1.3.0 schema-utils: 4.3.3 - webpack: 5.102.1(esbuild@0.25.12)(webpack-cli@5.1.4) + optionalDependencies: + webpack: 5.111.1(esbuild@0.25.12)(postcss@8.5.28)(webpack-cli@5.1.4) - webpack-dev-server@4.15.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)(webpack-cli@5.1.4)(webpack@5.102.1): + webpack-dev-server@6.0.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)(webpack-cli@5.1.4)(webpack@5.111.1): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 - '@types/express': 4.17.25 + '@types/express': 5.0.6 + '@types/express-serve-static-core': 5.1.3 '@types/serve-index': 1.9.4 - '@types/serve-static': 1.15.10 - '@types/sockjs': 0.3.36 + '@types/serve-static': 2.2.0 '@types/ws': 8.18.1 ansi-html-community: 0.0.8 bonjour-service: 1.3.0 - chokidar: 3.6.0 - colorette: 2.0.20 + chokidar: 5.0.0 compression: 1.8.1 connect-history-api-fallback: 2.0.0 - default-gateway: 6.0.3 - express: 4.21.2 + express: 5.2.1 graceful-fs: 4.2.11 - html-entities: 2.6.0 - http-proxy-middleware: 2.0.9(@types/express@4.17.25) - ipaddr.js: 2.2.0 - launch-editor: 2.12.0 - open: 8.4.2 - p-retry: 4.6.2 - rimraf: 3.0.2 + http-proxy-middleware: 4.2.0 + ipaddr.js: 2.5.0 + launch-editor: 2.14.2 + open: 11.0.4 + p-retry: 8.0.1 schema-utils: 4.3.3 - selfsigned: 2.4.1 - serve-index: 1.9.1 - sockjs: 0.3.24 - spdy: 4.0.2 - webpack-dev-middleware: 5.3.4(webpack@5.102.1) + selfsigned: 5.5.0 + serve-index: 1.9.2 + tinyglobby: 0.2.17 + webpack-dev-middleware: 8.3.0(webpack@5.111.1) ws: 8.21.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) optionalDependencies: - webpack: 5.102.1(esbuild@0.25.12)(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(webpack-dev-server@4.15.2)(webpack@5.102.1) + webpack: 5.111.1(esbuild@0.25.12)(postcss@8.5.28)(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(webpack-dev-server@6.0.0)(webpack@5.111.1) transitivePeerDependencies: - bufferutil - - debug - supports-color - utf-8-validate @@ -63793,117 +64135,161 @@ snapshots: source-list-map: 2.0.1 source-map: 0.6.1 - webpack-sources@3.3.3: {} + webpack-sources@3.6.0: {} - webpack@5.102.1: + webpack@5.111.1: dependencies: - '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 '@types/json-schema': 7.0.15 '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.15.0 - acorn-import-phases: 1.0.4(acorn@8.15.0) browserslist: 4.28.2 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.18.3 - es-module-lexer: 1.7.0 - eslint-scope: 5.1.1 + enhanced-resolve: 5.26.0 + es-module-lexer: 2.3.2 events: 3.3.0 - glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.1 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 4.3.3 + mime-db: 1.54.0 + minimizer-webpack-plugin: 5.13.0(webpack@5.111.1) + schema-utils: 4.5.0 tapable: 2.3.0 - terser-webpack-plugin: 5.3.14(webpack@5.102.1) - watchpack: 2.4.4 - webpack-sources: 3.3.3 + watchpack: 2.5.2 + webpack-sources: 3.6.0 transitivePeerDependencies: + - '@minify-html/node' + - '@napi-rs/image' - '@swc/core' + - '@swc/css' + - '@swc/html' + - clean-css + - cssnano + - csso - esbuild + - html-minifier-terser + - imagemin + - lightningcss + - postcss + - sharp + - svgo - uglify-js - webpack@5.102.1(esbuild@0.25.12): + webpack@5.111.1(esbuild@0.25.12)(postcss@8.5.28)(webpack-cli@5.1.4): dependencies: - '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 '@types/json-schema': 7.0.15 '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.15.0 - acorn-import-phases: 1.0.4(acorn@8.15.0) browserslist: 4.28.2 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.18.3 - es-module-lexer: 1.7.0 - eslint-scope: 5.1.1 + enhanced-resolve: 5.26.0 + es-module-lexer: 2.3.2 events: 3.3.0 - glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.1 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 4.3.3 + mime-db: 1.54.0 + minimizer-webpack-plugin: 5.13.0(esbuild@0.25.12)(postcss@8.5.28)(webpack@5.111.1) + schema-utils: 4.5.0 tapable: 2.3.0 - terser-webpack-plugin: 5.3.14(esbuild@0.25.12)(webpack@5.102.1(esbuild@0.25.12)) - watchpack: 2.4.4 - webpack-sources: 3.3.3 + watchpack: 2.5.2 + webpack-sources: 3.6.0 + optionalDependencies: + webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(webpack-dev-server@6.0.0)(webpack@5.111.1) transitivePeerDependencies: + - '@minify-html/node' + - '@napi-rs/image' - '@swc/core' + - '@swc/css' + - '@swc/html' + - clean-css + - cssnano + - csso - esbuild + - html-minifier-terser + - imagemin + - lightningcss + - postcss + - sharp + - svgo - uglify-js - webpack@5.102.1(esbuild@0.25.12)(webpack-cli@5.1.4): + webpack@5.111.1(esbuild@0.25.12)(sharp@0.35.5(@types/node@24.13.6)): dependencies: - '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 '@types/json-schema': 7.0.15 '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.15.0 - acorn-import-phases: 1.0.4(acorn@8.15.0) browserslist: 4.28.2 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.18.3 - es-module-lexer: 1.7.0 - eslint-scope: 5.1.1 + enhanced-resolve: 5.26.0 + es-module-lexer: 2.3.2 events: 3.3.0 - glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.1 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 4.3.3 + mime-db: 1.54.0 + minimizer-webpack-plugin: 5.13.0(esbuild@0.25.12)(sharp@0.35.5(@types/node@24.13.6))(webpack@5.111.1(esbuild@0.25.12)(sharp@0.35.5(@types/node@24.13.6))) + schema-utils: 4.5.0 tapable: 2.3.0 - terser-webpack-plugin: 5.3.14(esbuild@0.25.12)(webpack@5.102.1) - watchpack: 2.4.4 - webpack-sources: 3.3.3 - optionalDependencies: - webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(webpack-dev-server@4.15.2)(webpack@5.102.1) + watchpack: 2.5.2 + webpack-sources: 3.6.0 transitivePeerDependencies: + - '@minify-html/node' + - '@napi-rs/image' - '@swc/core' + - '@swc/css' + - '@swc/html' + - clean-css + - cssnano + - csso - esbuild + - html-minifier-terser + - imagemin + - lightningcss + - postcss + - sharp + - svgo - uglify-js - webrtc-adapter@9.0.6: + webpack@5.111.1(postcss@8.5.28): dependencies: - sdp: 3.2.1 + '@types/estree': 1.0.8 + '@types/json-schema': 7.0.15 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/wasm-edit': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + browserslist: 4.28.2 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.26.0 + es-module-lexer: 2.3.2 + events: 3.3.0 + graceful-fs: 4.2.11 + mime-db: 1.54.0 + minimizer-webpack-plugin: 5.13.0(postcss@8.5.28)(webpack@5.111.1(postcss@8.5.28)) + schema-utils: 4.5.0 + tapable: 2.3.0 + watchpack: 2.5.2 + webpack-sources: 3.6.0 + transitivePeerDependencies: + - '@minify-html/node' + - '@napi-rs/image' + - '@swc/core' + - '@swc/css' + - '@swc/html' + - clean-css + - cssnano + - csso + - esbuild + - html-minifier-terser + - imagemin + - lightningcss + - postcss + - sharp + - svgo + - uglify-js - websocket-driver@0.7.4: + webrtc-adapter@9.0.6: dependencies: - http-parser-js: 0.5.10 - safe-buffer: 5.2.1 - websocket-extensions: 0.1.4 - - websocket-extensions@0.1.4: {} + sdp: 3.2.1 websocket@1.0.35: dependencies: @@ -63981,9 +64367,13 @@ snapshots: dependencies: isexe: 2.0.0 - wide-align@1.1.5: + which@5.0.0: dependencies: - string-width: 4.2.3 + isexe: 3.1.5 + + which@6.0.1: + dependencies: + isexe: 4.0.0 wildcard@2.0.1: {} @@ -64056,10 +64446,10 @@ snapshots: imurmurhash: 0.1.4 slide: 1.1.6 - write-file-atomic@4.0.2: + write-file-atomic@5.0.1: dependencies: imurmurhash: 0.1.4 - signal-exit: 3.0.7 + signal-exit: 4.1.0 ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10): optionalDependencies: @@ -64076,6 +64466,11 @@ snapshots: bufferutil: 4.0.9 utf-8-validate: 6.0.5 + wsl-utils@1.0.1: + dependencies: + is-wsl: 3.1.1 + powershell-utils: 0.2.1 + xhr@2.6.0: dependencies: global: 4.4.0 @@ -64203,11 +64598,6 @@ snapshots: y18n: 5.0.8 yargs-parser: 22.0.0 - yauzl@2.10.0: - dependencies: - buffer-crc32: 0.2.13 - fd-slicer: 1.1.0 - yjs@13.6.27: dependencies: lib0: 0.2.114 From 6f29cfd0a77cf0b25c4fc1289988302fbaeaf6ab Mon Sep 17 00:00:00 2001 From: Artyom Savchenko Date: Wed, 7 Oct 2026 09:06:52 +0000 Subject: [PATCH 41/55] fix: keep platform-specific code after porting TraceX lint fixes TraceX lint fixes removed type assertions and imports that are still required by platform code (e.g. WithLookup in classHierarchyMixin calls, Person in pod-events-processor). Reverted those hunks and files that diverge from the TraceX pre-image, and adapted code to nodemailer 9 (SESv2) and postgres 3.4.9 (TransactionSql typing). Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- dev/tool/src/calendar.ts | 2 +- dev/tool/src/db.ts | 2 +- dev/tool/src/github.ts | 2 +- dev/tool/src/gmail.ts | 8 +- dev/tool/src/markup.ts | 4 +- dev/tool/src/telegram.ts | 3 +- .../core/packages/api-client/src/index.ts | 2 +- .../packages/api-client/src/storage/client.ts | 2 +- .../core/packages/api-client/src/types.ts | 16 +- .../src/__tests__/connection.test.ts | 4 +- .../core/src/__tests__/hierarchy.test.ts | 42 ++--- .../packages/core/src/__tests__/memdb.test.ts | 10 +- foundations/core/packages/core/src/classes.ts | 2 +- .../core/packages/core/src/hierarchy.ts | 36 ++-- foundations/core/packages/core/src/memdb.ts | 14 +- .../core/packages/core/src/operations.ts | 86 ++++----- foundations/core/packages/core/src/storage.ts | 22 +-- foundations/core/packages/core/src/utils.ts | 33 ++-- .../src/__tests__/context.test.ts | 2 +- .../src/__tests__/performance.test.ts | 6 +- .../core/packages/measurements/src/context.ts | 54 +++--- .../core/packages/measurements/src/metrics.ts | 38 ++-- .../platform/src/__tests__/i18n.test.ts | 2 +- .../core/packages/platform/src/event.ts | 10 +- .../core/packages/platform/src/i18n.ts | 20 +-- .../core/packages/platform/src/ident.ts | 2 +- .../core/packages/platform/src/metadata.ts | 6 +- .../core/packages/platform/src/platform.ts | 20 +-- .../core/packages/platform/src/resource.ts | 16 +- .../core/packages/platform/src/status.ts | 20 +-- .../core/packages/platform/src/testUtils.ts | 4 +- .../core/packages/postgres-base/src/index.ts | 58 +++---- .../query/src/__tests__/connection.ts | 14 +- .../query/src/__tests__/query.test.ts | 2 +- foundations/core/packages/query/src/index.ts | 13 +- .../retry/src/__test__/decorator.test.ts | 26 +-- .../packages/retry/src/__test__/retry.test.ts | 2 +- .../retry/src/__test__/retryable.test.ts | 2 +- .../core/packages/retry/src/decorator.ts | 2 +- foundations/core/packages/retry/src/delay.ts | 22 +-- foundations/core/packages/retry/src/retry.ts | 4 +- .../src/__tests__/markdown.test.ts | 57 +++++- .../core/packages/text-markdown/src/index.ts | 2 +- .../packages/text-markdown/src/serializer.ts | 53 +++--- .../core/packages/text/src/marks/colors.ts | 26 +-- .../text/src/markup/__tests__/utils.test.ts | 4 +- .../packages/collaboration/src/storage.ts | 2 +- .../core/src/__tests__/shared-integration.ts | 6 +- foundations/server/packages/core/src/index.ts | 4 +- foundations/server/packages/core/src/utils.ts | 10 +- .../server/packages/datalake/src/client.ts | 2 +- .../server/packages/kafka/src/index.ts | 12 +- .../middleware/src/guestPermissions.ts | 10 +- .../server/packages/middleware/src/lookup.ts | 2 +- .../packages/middleware/src/normalizeTx.ts | 2 +- .../middleware/src/spacePermissions.ts | 3 +- .../packages/middleware/src/spaceSecurity.ts | 3 +- .../src/tests/guestPermissions.test.ts | 10 +- .../src/tests/liveQuery.race.test.ts | 4 +- .../middleware/src/tests/txOrdering.test.ts | 14 +- .../packages/middleware/src/transient.ts | 2 +- .../server/packages/mongo/src/storage.ts | 18 +- .../server/packages/mongo/src/utils.ts | 4 +- .../server/packages/postgres/src/storage.ts | 8 +- .../server/packages/postgres/src/utils.ts | 22 +-- .../packages/server-storage/src/fallback.ts | 7 +- .../src/tests/aggregator.spec.ts | 2 +- .../server-storage/src/tests/memAdapters.ts | 2 +- .../src/__tests__/sessionManager.test.ts | 76 ++++---- .../server/packages/server/src/client.ts | 16 +- models/calendar/src/index.ts | 24 +-- models/card/src/index.ts | 28 +-- models/chunter/src/migration.ts | 2 +- models/controlled-documents/src/types.ts | 142 +++++++-------- models/core/src/core.ts | 52 +++--- models/core/src/migration.ts | 10 +- models/core/src/security.ts | 50 +++--- models/document/src/index.ts | 32 ++-- models/gmail/src/migration.ts | 2 +- models/notification/src/index.ts | 48 ++--- models/notification/src/migration.ts | 8 +- models/process/src/index.ts | 92 +++++----- models/products/src/index.ts | 24 +-- models/setting/src/index.ts | 2 +- models/task/src/index.ts | 50 +++--- models/tracker/src/types.ts | 104 +++++------ models/training/src/types.ts | 58 +++---- .../gantt/src/__tests__/pan-target.test.ts | 2 +- .../src/__tests__/tree-expand-store.test.ts | 4 +- .../src/__tests__/y-viewport-perf.test.ts | 2 +- packages/gantt/src/breakpoint.ts | 8 +- packages/gantt/src/cascade-popup-layout.ts | 2 +- packages/gantt/src/cascade-token.ts | 2 +- packages/gantt/src/confirm-gate.ts | 2 +- packages/gantt/src/cp-scheduler.ts | 8 +- packages/gantt/src/drag-controller.ts | 18 +- packages/gantt/src/drag-state.ts | 4 +- packages/gantt/src/flash-store.ts | 10 +- packages/gantt/src/gantt-view-options.ts | 14 +- packages/gantt/src/long-press.ts | 12 +- packages/gantt/src/pan-target.ts | 4 +- packages/gantt/src/pinch-zoom.ts | 44 ++--- packages/gantt/src/pointer-classify.ts | 2 +- packages/gantt/src/sidebar-columns.ts | 8 +- packages/gantt/src/time-scale.ts | 8 +- packages/gantt/src/toolbar-overflow.ts | 2 +- packages/gantt/src/tree-expand-store.ts | 8 +- packages/gantt/src/types.ts | 164 +++++++++--------- packages/gantt/src/viewport.ts | 12 +- packages/gantt/src/working-days.ts | 30 ++-- packages/gantt/src/y-viewport.ts | 10 +- packages/gantt/src/zoom-dropdown.ts | 6 +- packages/gantt/src/zoom.ts | 12 +- packages/importer/src/huly/cards.ts | 4 +- packages/importer/src/importer/importer.ts | 8 +- .../src/components/DocPopup.svelte | 16 +- .../src/components/ObjectPopup.svelte | 2 +- packages/presentation/src/index.ts | 4 +- packages/presentation/src/pipeline.ts | 32 ++-- .../ui/src/components/FilterButton.svelte | 8 +- .../src/components/FilterCategoryPopup.svelte | 12 +- packages/ui/src/components/Header.svelte | 2 +- packages/ui/src/components/ListView.svelte | 6 +- .../ui/src/components/ModeSelector.svelte | 16 +- .../ui/src/components/internal/Root.svelte | 10 +- packages/ui/src/location.ts | 4 +- packages/ui/src/types.ts | 2 +- packages/ui/src/utils.ts | 34 ++-- .../ActivityMessageTemplate.svelte | 16 +- .../DocUpdateMessageHeader.svelte | 2 +- plugins/activity/src/index.ts | 14 +- .../src/stores/largestFiles.ts | 4 +- plugins/billing-resources/src/utils.ts | 3 +- plugins/bitrix/src/sync.ts | 4 +- .../src/components/CalendarSelector.svelte | 4 +- .../src/components/CalendarSettings.svelte | 8 +- .../src/components/VisibilityEditor.svelte | 4 +- .../src/__tests__/cardTableFormatter.test.ts | 28 +-- .../src/__tests__/tagFormatter.test.ts | 4 +- plugins/card-resources/src/card.ts | 2 +- .../src/components/CardArrayEditor.svelte | 2 +- .../src/components/CardAttributeEditor.svelte | 4 +- .../src/components/CardVersionSelector.svelte | 4 +- .../src/components/ColoredCardIcon.svelte | 2 +- .../src/components/CreateCardPopupFull.svelte | 10 +- .../components/CreateCardPopupSimple.svelte | 8 +- .../src/components/EditCard.svelte | 2 +- .../src/components/EditCardNew.svelte | 4 +- .../components/EditCardTableOfContents.svelte | 26 +-- .../src/components/NewCardForm.svelte | 12 +- .../src/components/TagsEditor.svelte | 14 +- .../src/components/TypeSelector.svelte | 6 +- .../navigator-next/NavigatorCard.svelte | 4 +- .../NavigatorCardsSection.svelte | 2 +- .../navigator/CardHeaderButton.svelte | 6 +- .../components/navigator/CreateSpace.svelte | 24 +-- .../components/navigator/TypesSelector.svelte | 6 +- .../components/settings/GeneralSection.svelte | 12 +- .../settings/ManageMasterTagsContent.svelte | 10 +- .../components/settings/TagsSection.svelte | 4 +- .../settings/VersioningSetting.svelte | 6 +- .../settings/view/ViewSetting.svelte | 26 +-- .../settings/view/ViewSettingButton.svelte | 2 +- plugins/card-resources/src/index.ts | 2 +- plugins/card-resources/src/tagFormatter.ts | 4 +- plugins/card-resources/src/utils.ts | 9 +- .../components/EditChannelSettingsTab.svelte | 4 +- .../src/components/chat/ChannelAside.svelte | 6 +- plugins/chunter/src/index.ts | 32 ++-- .../src/components/AccountArrayEditor.svelte | 4 +- .../src/components/ChannelsEditor.svelte | 2 +- .../src/components/ContactList.svelte | 2 +- .../src/components/EditPerson.svelte | 8 +- .../src/components/SpaceMembers.svelte | 2 +- .../src/components/TranslationSettings.svelte | 4 +- .../src/components/UserBoxList.svelte | 4 +- plugins/contact-resources/src/index.ts | 2 +- plugins/contact-resources/src/utils.ts | 14 +- plugins/contact/src/utils.ts | 2 +- .../src/components/DocumentTemplates.svelte | 2 +- .../src/components/EditDocPanel.svelte | 24 +-- .../src/components/NewDocumentHeader.svelte | 4 +- .../create-doc/QmsTemplateWizard.svelte | 8 +- .../create-doc/steps/LocationStep.svelte | 14 +- .../src/docTableFormatter.ts | 8 +- .../src/plugin.ts | 2 +- .../src/utils.ts | 18 +- plugins/controlled-documents/src/docutils.ts | 30 ++-- plugins/controlled-documents/src/utils.ts | 2 +- .../src/formatter/utils.ts | 2 +- .../src/markdown/tableBuilder.ts | 4 +- .../src/model/headerGenerator.ts | 4 +- plugins/converter/src/plugin.ts | 2 +- .../src/components/ExportSettings.svelte | 2 +- .../src/components/Form.svelte | 8 +- .../src/components/LoginApp.svelte | 4 +- .../src/components/LoginAppBase.svelte | 2 +- .../src/components/LoginForm.svelte | 4 +- .../src/components/SelectWorkspace.svelte | 8 +- .../src/components/SignupForm.svelte | 2 +- .../src/components/Settings.svelte | 8 +- .../src/components/CollaboratorEditor.svelte | 2 +- plugins/notification-resources/src/utils.ts | 12 +- plugins/notification/src/index.ts | 2 +- .../ProcessesHeaderExtension.svelte | 2 +- .../src/components/ProcessesSection.svelte | 4 +- .../components/settings/ProcessEditor.svelte | 16 +- .../settings/ProcesssSetting.svelte | 4 +- plugins/process-resources/src/exporter.ts | 12 +- plugins/process-resources/src/utils.ts | 4 +- plugins/process/src/index.ts | 4 +- .../CreateProductVersion.svelte | 12 +- .../product-version/EditProductVersion.svelte | 2 +- .../src/components/AssociationEditor.svelte | 10 +- .../src/components/Backup.svelte | 44 ++--- .../src/components/ClassAttributesList.svelte | 30 ++-- .../src/components/CreateAttribute.svelte | 8 +- .../components/CreateAttributePopup.svelte | 8 +- .../src/components/CreateRelation.svelte | 6 +- .../src/components/EditAttribute.svelte | 30 ++-- .../src/components/EditRelation.svelte | 2 +- .../src/components/General.svelte | 12 +- .../GuestPermissionsSettings.svelte | 38 ++-- .../src/components/InviteSetting.svelte | 18 +- .../src/components/OfficeSettings.svelte | 4 +- .../src/components/Profile.svelte | 6 +- .../src/components/RelationSetting.svelte | 12 +- .../src/components/Spaces.svelte | 2 +- .../src/components/UserRoleSelect.svelte | 2 +- .../WorkspacePermissionEditor.svelte | 4 +- .../src/components/WorkspaceSettings.svelte | 2 +- .../socialIds/SocialIdsEditor.svelte | 4 +- .../src/inviteSettingsUtils.ts | 10 +- plugins/setting/src/index.ts | 2 +- plugins/survey-resources/src/utils.ts | 6 +- .../src/components/extension/embed/embed.ts | 4 +- .../extension/embed/providers/drive.ts | 2 +- .../extension/qms/qmsInlineCommentMark.ts | 4 +- .../src/components/extension/reference.ts | 11 +- .../decorations/tableDragMarkerDecoration.ts | 6 +- .../src/components/extension/todo/todo.ts | 4 +- plugins/text-editor-resources/src/index.ts | 2 +- .../src/components/CreateIssue.svelte | 62 +++---- .../SetParentIssueActionPopup.svelte | 4 +- .../src/components/issues/KanbanView.svelte | 8 +- .../issues/edit/ControlPanel.svelte | 4 +- .../components/issues/edit/EditIssue.svelte | 12 +- .../issues/edit/QueryIssuesList.svelte | 4 +- .../milestones/EditMilestone.svelte | 2 +- .../components/projects/CreateProject.svelte | 32 ++-- plugins/tracker-resources/src/index.ts | 2 +- .../src/components/Settings.svelte | 2 +- .../src/__tests__/objectIterator.test.ts | 2 +- plugins/view-resources/src/actionImpl.ts | 16 +- .../src/components/ClassAttributeBar.svelte | 4 +- .../src/components/RelationEditor.svelte | 6 +- .../src/components/RelationshipTable.svelte | 44 ++--- .../src/components/ValueSelector.svelte | 14 +- .../src/components/ViewOptions.svelte | 4 +- .../src/components/ViewOptionsButton.svelte | 6 +- .../src/components/ViewletSetting.svelte | 42 ++--- .../components/ViewletSettingButton.svelte | 4 +- .../src/components/filter/FilterBar.svelte | 2 +- .../src/components/filter/FilterButton.svelte | 6 +- .../src/components/list/List.svelte | 10 +- .../masterDetail/MasterDetailBrowser.svelte | 2 +- .../masterDetail/MasterDetailView.svelte | 2 +- .../relation/AddRelationPopup.svelte | 6 +- plugins/view-resources/src/utils.ts | 24 +-- plugins/view-resources/src/viewletUtils.ts | 2 +- plugins/view/src/types.ts | 42 ++--- .../src/components/SelectWorkspaceMenu.svelte | 14 +- .../src/components/Workbench.svelte | 32 ++-- plugins/workbench/src/types.ts | 2 +- pods/authProviders/src/utils.ts | 2 +- pods/preview/src/server.ts | 6 +- pods/server/src/server_http.ts | 4 +- .../activity-resources/src/index.ts | 6 +- .../activity-resources/src/references.ts | 13 +- server-plugins/activity/src/index.ts | 2 +- .../calendar-resources/src/index.ts | 22 +-- server-plugins/gmail-resources/src/index.ts | 2 +- server-plugins/hr-resources/src/index.ts | 2 +- .../src/__tests__/push.test.ts | 2 +- .../notification-resources/src/index.ts | 16 +- server-plugins/notification/src/index.ts | 18 +- server-plugins/process-resources/src/index.ts | 2 +- server-plugins/process/src/index.ts | 2 +- server-plugins/time/src/index.ts | 2 +- server-plugins/tracker-resources/src/index.ts | 2 +- server/account-service/src/index.ts | 2 +- .../account/src/__tests__/operations.test.ts | 20 +-- server/account/src/__tests__/utils.test.ts | 5 +- server/account/src/operations.ts | 60 +++---- server/account/src/serviceOperations.ts | 2 +- server/account/src/utils.ts | 14 +- server/backup/src/backup.ts | 20 +-- server/backup/src/restore.ts | 6 +- server/backup/src/storage.ts | 2 +- server/backup/src/utils.ts | 36 ++-- server/indexer/src/indexer/indexer.ts | 8 +- server/tool/src/index.ts | 2 +- server/tool/src/initializer.ts | 2 +- .../pod-analytics-collector/src/server.ts | 2 +- services/calendar/pod-calendar/src/sync.ts | 4 +- .../src/__tests__/workspace-exporter.test.ts | 10 +- services/export/pod-export/src/converter.ts | 33 ++-- services/export/pod-export/src/server.ts | 6 +- .../src/workspace/attachment-exporter.ts | 8 +- .../src/workspace/relation-exporter.ts | 2 +- services/github/pod-github/src/client.ts | 4 +- .../src/markdown/__tests__/markup.test.ts | 2 +- .../src/markdown/__tests__/textmodel.test.ts | 2 +- services/github/pod-github/src/server.ts | 2 +- .../src/sync/__tests__/pullrequests.test.ts | 4 +- .../github/pod-github/src/sync/comments.ts | 2 +- .../github/pod-github/src/sync/issueBase.ts | 2 +- .../pod-github/src/sync/pullrequests.ts | 5 +- services/github/pod-github/src/worker.ts | 4 +- services/gmail/pod-gmail/src/config.ts | 2 +- services/gmail/pod-gmail/src/gmail.ts | 2 +- .../gmail/pod-gmail/src/gmailController.ts | 4 +- services/gmail/pod-gmail/src/main.ts | 7 +- services/love/src/workspaceClient.ts | 2 +- .../mail-common/src/__tests__/thread.test.ts | 2 +- services/mail/mail-common/src/utils.ts | 1 - .../src/__tests__/utils.test.ts | 4 +- .../mail/pod-mail-worker/src/handlerMta.ts | 1 - services/mail/pod-mail/package.json | 2 +- services/mail/pod-mail/src/transport.ts | 6 +- .../src/__tests__/worker.test.ts | 4 +- .../pod-events-processor/src/worker.ts | 8 +- .../stripe/__tests__/provider.test.ts | 2 +- .../stripe/__tests__/webhook.test.ts | 2 +- services/print/pod-print/src/server.ts | 4 +- services/rating/src/calculator.ts | 18 +- .../pod-telegram-bot/src/workspace.ts | 4 +- .../telegram/pod-telegram/src/telegram.ts | 2 +- services/telegram/pod-telegram/src/utils.ts | 4 +- .../telegram/pod-telegram/src/workspace.ts | 2 +- services/worker/src/activities.ts | 2 +- services/worker/src/db.ts | 2 +- 342 files changed, 2090 insertions(+), 2014 deletions(-) diff --git a/dev/tool/src/calendar.ts b/dev/tool/src/calendar.ts index 349db35fed..19444f3bef 100644 --- a/dev/tool/src/calendar.ts +++ b/dev/tool/src/calendar.ts @@ -66,7 +66,7 @@ export async function performCalendarAccountMigrations (db: Db, region: string | const oldNewIds = new Map(allWorkpaces.map((it) => [it.dataId ?? it.uuid, it])) const workspaceProvider: WorkspaceInfoProvider = { getWorkspaceInfo: async (workspaceUuid: WorkspaceUuid) => { - const ws = oldNewIds.get(workspaceUuid) ?? byId.get(workspaceUuid) + const ws = oldNewIds.get(workspaceUuid as any) ?? byId.get(workspaceUuid as any) if (ws == null) { console.error('No workspace found for token', workspaceUuid) return undefined diff --git a/dev/tool/src/db.ts b/dev/tool/src/db.ts index 772d770dfc..ca7ef74934 100644 --- a/dev/tool/src/db.ts +++ b/dev/tool/src/db.ts @@ -479,7 +479,7 @@ export async function moveAccountDbFromMongoToPG ( invite.expiresOn = -1 } - if (["USER'", 'ADMIN'].includes(invite.role)) { + if (["USER'", 'ADMIN'].includes(invite.role as any)) { invite.role = AccountRole.User } diff --git a/dev/tool/src/github.ts b/dev/tool/src/github.ts index 8c7bf5122d..ad18191747 100644 --- a/dev/tool/src/github.ts +++ b/dev/tool/src/github.ts @@ -145,7 +145,7 @@ export async function performGithubAccountMigrations ( if (systemAccounts.includes(account._id as any)) { ;(socialKeyByAccount as any)[account._id] = account._id } else { - socialKeyByAccount[account._id] = buildSocialIdString(getSocialKeyByOldEmail(account.email)) + socialKeyByAccount[account._id] = buildSocialIdString(getSocialKeyByOldEmail(account.email)) as any } } diff --git a/dev/tool/src/gmail.ts b/dev/tool/src/gmail.ts index 9301511692..76756ba2b4 100644 --- a/dev/tool/src/gmail.ts +++ b/dev/tool/src/gmail.ts @@ -87,7 +87,7 @@ export async function performGmailAccountMigrations ( const oldNewIds = new Map(allWorkpaces.map((it) => [it.dataId ?? it.uuid, it])) const workspaceProvider: WorkspaceInfoProvider = { getWorkspaceInfo: async (workspaceUuid: WorkspaceUuid) => { - const ws = oldNewIds.get(workspaceUuid) ?? byId.get(workspaceUuid) + const ws = oldNewIds.get(workspaceUuid as any) ?? byId.get(workspaceUuid as any) if (ws == null) { console.error('No workspace found for token', workspaceUuid) return undefined @@ -128,7 +128,7 @@ async function migrateGmailIntegrations ( for (const token of allTokens) { try { - const ws = await workspaceProvider.getWorkspaceInfo(token.workspace) + const ws = await workspaceProvider.getWorkspaceInfo(token.workspace as any) if (ws == null) { continue } @@ -222,7 +222,7 @@ async function migrateGmailHistory ( for (const history of allHistories) { try { - const ws = await workspaceProvider.getWorkspaceInfo(history.workspace) + const ws = await workspaceProvider.getWorkspaceInfo(history.workspace as any) if (ws == null) { continue } @@ -295,7 +295,7 @@ async function getSociaKeysMap ( if (systemAccounts.includes(account._id as any)) { ;(socialKeyByAccount as any)[account._id] = account._id } else { - socialKeyByAccount[account._id] = buildSocialIdString(getSocialKeyByOldEmail(account.email)) + socialKeyByAccount[account._id] = buildSocialIdString(getSocialKeyByOldEmail(account.email)) as any } } return socialKeyByAccount diff --git a/dev/tool/src/markup.ts b/dev/tool/src/markup.ts index d47d7b4ba8..6c98c4d9a7 100644 --- a/dev/tool/src/markup.ts +++ b/dev/tool/src/markup.ts @@ -299,7 +299,7 @@ export async function restoreControlledDocContentForDoc ( } const data = await storageAdapter.read(ctx, wsIds, currentYdocId) - const buffer = Buffer.concat(data) + const buffer = Buffer.concat(data as any) await storageAdapter.put(ctx, wsIds, ydocId, buffer, 'application/ydoc', buffer.length) } catch (err: any) { console.error('failed to restore content for', doc._class, doc._id, err) @@ -359,7 +359,7 @@ export async function restoreMarkupRefsMongo ( try { const buffer = await storageAdapter.read(ctx, wsIds, ydocId) - const ydoc = yDocFromBuffer(Buffer.concat(buffer)) + const ydoc = yDocFromBuffer(Buffer.concat(buffer as any)) const jsonId = await saveCollabJson(ctx, storageAdapter, wsIds, collabId, ydoc) await collection.updateOne({ _id: doc._id }, { $set: { [attributeName]: jsonId } }) diff --git a/dev/tool/src/telegram.ts b/dev/tool/src/telegram.ts index 4e339dd277..147e53dccc 100644 --- a/dev/tool/src/telegram.ts +++ b/dev/tool/src/telegram.ts @@ -21,6 +21,7 @@ import { DOMAIN_TELEGRAM } from '@hcengineering/model-telegram' import { getMongoClient, getWorkspaceMongoDB } from '@hcengineering/mongo' import { type StorageAdapter } from '@hcengineering/server-core' import telegram, { type SharedTelegramMessage, type SharedTelegramMessages } from '@hcengineering/telegram' +import { type Document, type UpdateFilter } from 'mongodb' const LastMessages = 'last-msgs' @@ -86,7 +87,7 @@ export async function clearTelegramHistory ( $set: { items: 0 } - } + } as unknown as UpdateFilter ), workspaceDB.collection(DOMAIN_ATTACHMENT).deleteMany({ attachedToClass: telegram.class.Message diff --git a/foundations/core/packages/api-client/src/index.ts b/foundations/core/packages/api-client/src/index.ts index 136511a1f9..2379b838de 100644 --- a/foundations/core/packages/api-client/src/index.ts +++ b/foundations/core/packages/api-client/src/index.ts @@ -16,7 +16,7 @@ export * from './client' export * from './markup/types' export * from './socket' -export type * from './types' +export * from './types' export * from './rest' export * from './config' export * from './utils' diff --git a/foundations/core/packages/api-client/src/storage/client.ts b/foundations/core/packages/api-client/src/storage/client.ts index b628d8b742..025d7d8ac5 100644 --- a/foundations/core/packages/api-client/src/storage/client.ts +++ b/foundations/core/packages/api-client/src/storage/client.ts @@ -173,7 +173,7 @@ async function toBuffer (data: Buffer | string | Readable): Promise { for await (const chunk of data) { chunks.push(chunk) } - return Buffer.concat(chunks) + return Buffer.concat(chunks as any) } else { throw new TypeError('Unsupported data type') } diff --git a/foundations/core/packages/api-client/src/types.ts b/foundations/core/packages/api-client/src/types.ts index 607e98145f..086d7af464 100644 --- a/foundations/core/packages/api-client/src/types.ts +++ b/foundations/core/packages/api-client/src/types.ts @@ -47,9 +47,9 @@ type WithPropertyType = { /** @public */ export type WithMarkup = WithPropertyType< - WithPropertyType, - CollaborativeDoc, - MarkupContent +WithPropertyType, +CollaborativeDoc, +MarkupContent > /** @@ -65,11 +65,11 @@ export type PlatformClient = { close: () => Promise } & FindOperations & - DocOperations & - CollectionOperations & - MixinOperations & - MarkupOperations & - AsyncDisposable +DocOperations & +CollectionOperations & +MixinOperations & +MarkupOperations & +AsyncDisposable /** * @public diff --git a/foundations/core/packages/client-resources/src/__tests__/connection.test.ts b/foundations/core/packages/client-resources/src/__tests__/connection.test.ts index ec33251c2b..7fb4f195be 100644 --- a/foundations/core/packages/client-resources/src/__tests__/connection.test.ts +++ b/foundations/core/packages/client-resources/src/__tests__/connection.test.ts @@ -303,7 +303,7 @@ describe('connect function', () => { mockWebSockets.push(mockWs) const client = connect('ws://localhost:3333', handler, workspaceId, userId, { - socketFactory: (url: string) => mockWs + socketFactory: (url: string) => mockWs as any }) connections.push(client) @@ -333,7 +333,7 @@ describe('connect function', () => { const mockWs = new MockWebSocket('ws://localhost:3333') const client = connect('ws://localhost:3333', handler, workspaceId, userId, { - socketFactory: (url: string) => mockWs + socketFactory: (url: string) => mockWs as any }) connections.push(client) diff --git a/foundations/core/packages/core/src/__tests__/hierarchy.test.ts b/foundations/core/packages/core/src/__tests__/hierarchy.test.ts index 18ef686d1c..b6cdf4c507 100644 --- a/foundations/core/packages/core/src/__tests__/hierarchy.test.ts +++ b/foundations/core/packages/core/src/__tests__/hierarchy.test.ts @@ -15,7 +15,7 @@ import type { AnyAttribute, Class, Doc, Obj, Ref } from '../classes' import { ClassifierKind, DOMAIN_MODEL } from '../classes' -import type { MixinUpdate, TxCreateDoc } from '../tx' +import type { TxCreateDoc } from '../tx' import { TxFactory } from '../tx' import core from '../component' import { Hierarchy } from '../hierarchy' @@ -62,7 +62,7 @@ describe('hierarchy', () => { const data = hierarchy.getClass(core.class.TxCreateDoc) expect(data).toMatchObject((txes.find((p) => p.objectId === core.class.TxCreateDoc) as TxCreateDoc).attributes) const notExistClass = 'class:test.MyClass' as Ref> - expect(() => hierarchy.getClass(notExistClass)).toThrow(`class not found: ${notExistClass}`) + expect(() => hierarchy.getClass(notExistClass)).toThrowError('class not found: ' + notExistClass) }) it('getDomain', async () => { @@ -78,10 +78,10 @@ describe('hierarchy', () => { const hierarchy = prepare() hierarchy.as(txes[0], test.mixin.TestMixin) - expect(spyProxy).toHaveBeenCalledTimes(1) + expect(spyProxy).toBeCalledTimes(1) hierarchy.as(txes[0], test.mixin.TestMixin) - expect(spyProxy).toHaveBeenCalledTimes(1) + expect(spyProxy).toBeCalledTimes(1) spyProxy.mockReset() spyProxy.mockRestore() @@ -90,20 +90,20 @@ describe('hierarchy', () => { it('should call static methods', async () => { const spyToDoc = jest.spyOn(Proxy, '_toDoc') Hierarchy.toDoc(txes[0]) - expect(spyToDoc).toHaveBeenCalledTimes(1) + expect(spyToDoc).toBeCalledTimes(1) spyToDoc.mockReset() spyToDoc.mockRestore() const spyMixinClass = jest.spyOn(Proxy, '_mixinClass') Hierarchy.mixinClass(txes[0]) - expect(spyMixinClass).toHaveBeenCalledTimes(1) + expect(spyMixinClass).toBeCalledTimes(1) spyMixinClass.mockImplementationOnce(() => undefined).mockImplementationOnce(() => test.mixin.TestMixin) let result = Hierarchy.mixinOrClass(txes[0]) expect(result).toStrictEqual(txes[0]._class) result = Hierarchy.mixinOrClass(txes[0]) expect(result).toStrictEqual(test.mixin.TestMixin) - expect(spyMixinClass).toHaveBeenCalledTimes(3) + expect(spyMixinClass).toBeCalledTimes(3) spyMixinClass.mockReset() spyMixinClass.mockRestore() @@ -364,7 +364,7 @@ describe('hierarchy', () => { expect(withStateInterface._id).toBe(test.interface.WithState) // Should throw for non-existent - expect(() => hierarchy.getClassOrInterface('class:NonExistent' as Ref>)).toThrow( + expect(() => hierarchy.getClassOrInterface('class:NonExistent' as Ref>)).toThrowError( 'class not found: class:NonExistent' ) }) @@ -377,12 +377,12 @@ describe('hierarchy', () => { expect(withStateInterface._id).toBe(test.interface.WithState) // Should throw for non-existent interface - expect(() => hierarchy.getInterface('interface:NonExistent' as any)).toThrow( + expect(() => hierarchy.getInterface('interface:NonExistent' as any)).toThrowError( 'interface not found: interface:NonExistent' ) // Should throw for class (not interface) - expect(() => hierarchy.getInterface(core.class.Space as any)).toThrow() + expect(() => hierarchy.getInterface(core.class.Space as any)).toThrowError() }) it('should handle isMixin correctly', async () => { @@ -525,7 +525,7 @@ describe('hierarchy', () => { const hierarchy = prepare() // Should throw for non-existent attribute - expect(() => hierarchy.getAttribute(core.class.Space, 'nonExistentAttr')).toThrow( + expect(() => hierarchy.getAttribute(core.class.Space, 'nonExistentAttr')).toThrowError( 'attribute not found: nonExistentAttr' ) }) @@ -607,14 +607,16 @@ describe('hierarchy', () => { const hierarchy = prepare() // Should throw for non-existent class - expect(() => hierarchy.getAncestors('class:NonExistent' as any)).toThrow('ancestors not found: class:NonExistent') + expect(() => hierarchy.getAncestors('class:NonExistent' as any)).toThrowError( + 'ancestors not found: class:NonExistent' + ) }) it('should handle getDescendants error case', async () => { const hierarchy = prepare() // Should throw for non-existent class - expect(() => hierarchy.getDescendants('class:NonExistent' as any)).toThrow( + expect(() => hierarchy.getDescendants('class:NonExistent' as any)).toThrowError( 'descendants not found: class:NonExistent' ) }) @@ -623,7 +625,7 @@ describe('hierarchy', () => { const hierarchy = prepare() // Should throw for class without domain - expect(() => hierarchy.getDomain('class:NonExistent' as any)).toThrow('domain not found: class:NonExistent') + expect(() => hierarchy.getDomain('class:NonExistent' as any)).toThrowError('domain not found: class:NonExistent') }) it('should handle static hasMixin correctly', async () => { @@ -814,11 +816,11 @@ describe('hierarchy', () => { // Create a TxMixin transaction const txFactory = new TxFactory(core.account.System) const mixinTx = txFactory.createTxMixin( - core.class.Space, - core.class.Class, + core.class.Space as any, + core.class.Class as any, core.space.Model, test.mixin.TestMixin, - { arr: ['test'] } as unknown as MixinUpdate, Class> + { arr: ['test'] } ) // Apply the mixin transaction @@ -990,7 +992,7 @@ describe('hierarchy', () => { } } - const result = hierarchy.updateLookupMixin(test.class.Task, doc as any, options) + const result = hierarchy.updateLookupMixin(test.class.Task, doc as any, options as any) expect(result).toBeDefined() expect(result.$lookup).toBeDefined() }) @@ -1027,7 +1029,7 @@ describe('hierarchy', () => { } } - const result = hierarchy.updateLookupMixin(test.class.Task, doc as any, options) + const result = hierarchy.updateLookupMixin(test.class.Task, doc as any, options as any) expect(result).toBeDefined() }) @@ -1089,7 +1091,7 @@ describe('hierarchy', () => { } } - const result = hierarchy.updateLookupMixin(test.class.Task, doc as any, options) + const result = hierarchy.updateLookupMixin(test.class.Task, doc as any, options as any) expect(result).toBeDefined() expect(result.$lookup?.space).toBeNull() }) diff --git a/foundations/core/packages/core/src/__tests__/memdb.test.ts b/foundations/core/packages/core/src/__tests__/memdb.test.ts index 13dba37778..a9b2c34515 100644 --- a/foundations/core/packages/core/src/__tests__/memdb.test.ts +++ b/foundations/core/packages/core/src/__tests__/memdb.test.ts @@ -13,7 +13,7 @@ // limitations under the License. // -import type { Client, DomainParams, DomainRequestOptions, DomainResult } from '..' +import { type Client, type DomainParams, type DomainRequestOptions, type DomainResult } from '..' import type { Class, Doc, Obj, OperationDomain, Ref, Space } from '../classes' import core from '../component' import { Hierarchy } from '../hierarchy' @@ -31,7 +31,7 @@ import { SortingOrder, type WithLookup } from '../storage' -import type { Tx } from '../tx' +import { type Tx } from '../tx' import { genMinModel, test, type TestMixin } from './minmodel' const txes = genMinModel() @@ -204,7 +204,7 @@ describe('memdb', () => { }) expect(second.length).toBe(2) const incorrectId = await model.findAll(core.class.Class, { - _id: `${txes[1].objectId}test` as Ref> + _id: (txes[1].objectId + 'test') as Ref> }) expect(incorrectId.length).toBe(0) const result = await model.findAll(core.class.Class, { @@ -378,7 +378,7 @@ describe('memdb', () => { } ) expect(r.length).toEqual(1) - expect((r[0].$associations?.[`${association._id}_b`][0] as any)?._id).toEqual(second) + expect((r[0].$associations?.[association._id + '_b'][0] as any)?._id).toEqual(second) }) it('check deep associations', async () => { @@ -567,7 +567,7 @@ describe('memdb', () => { expect(results.length).toEqual(2) const attached = results[0].$lookup?.attachedTo expect(attached).toBeDefined() - expect(Hierarchy.mixinOrClass(attached!)).toEqual(test.mixin.TaskMixinTodos) + expect(Hierarchy.mixinOrClass(attached as Doc)).toEqual(test.mixin.TaskMixinTodos) }) it('createDoc for AttachedDoc', async () => { diff --git a/foundations/core/packages/core/src/classes.ts b/foundations/core/packages/core/src/classes.ts index 415676f8ae..11049aa3fe 100644 --- a/foundations/core/packages/core/src/classes.ts +++ b/foundations/core/packages/core/src/classes.ts @@ -17,7 +17,7 @@ import type { Asset, IntlString, Plugin } from '@hcengineering/platform' import { Tx } from '.' import type { DocumentQuery } from './storage' -import type { WorkspaceDataId, WorkspaceUuid } from './utils' +import { type WorkspaceDataId, type WorkspaceUuid } from './utils' /** * @public diff --git a/foundations/core/packages/core/src/hierarchy.ts b/foundations/core/packages/core/src/hierarchy.ts index d2bd0370e5..32d055c7a4 100644 --- a/foundations/core/packages/core/src/hierarchy.ts +++ b/foundations/core/packages/core/src/hierarchy.ts @@ -13,7 +13,7 @@ // limitations under the License. // -import type { FindOptions, Lookup, ToClassRefT, WithLookup } from '.' +import { type FindOptions, type Lookup, type ToClassRefT, type WithLookup } from '.' import type { AnyAttribute, Class, Classifier, Doc, Domain, Interface, Mixin, Obj, Ref } from './classes' import { ClassifierKind } from './classes' import { clone as deepClone } from './clone' @@ -37,7 +37,7 @@ export class Hierarchy { private createMixinProxyHandler (mixin: Ref>): ProxyHandler { const value = this.getClass(mixin) - const ancestor = this.getClass(value.extends!) + const ancestor = this.getClass(value.extends as Ref>) const ancestorProxy = ancestor.kind === ClassifierKind.MIXIN ? this.getMixinProxyHandler(ancestor._id) : null return _createMixinProxy(value, ancestorProxy) } @@ -187,7 +187,7 @@ export class Hierarchy { getAncestors (_class: Ref): Ref[] { const result = this.ancestors.get(_class) if (result === undefined) { - throw new Error(`ancestors not found: ${_class}`) + throw new Error('ancestors not found: ' + _class) } return result } @@ -195,7 +195,7 @@ export class Hierarchy { getClass(_class: Ref>): Class { const data = this.classifiers.get(_class) if (data === undefined || this.isInterface(data)) { - throw new Error(`class not found: ${_class}`) + throw new Error('class not found: ' + _class) } return data } @@ -217,7 +217,7 @@ export class Hierarchy { getClassOrInterface (_class: Ref>): Class { const data = this.classifiers.get(_class) if (data === undefined) { - throw new Error(`class not found: ${_class}`) + throw new Error('class not found: ' + _class) } return data } @@ -225,7 +225,7 @@ export class Hierarchy { getInterface (_interface: Ref>): Interface { const data = this.classifiers.get(_interface) if (data === undefined || !this.isInterface(data)) { - throw new Error(`interface not found: ${_interface}`) + throw new Error('interface not found: ' + _interface) } return data } @@ -374,7 +374,7 @@ export class Hierarchy { const result: Ref>[] = [] const toVisit = [...extendsOrImplements] while (toVisit.length > 0) { - const ref = toVisit.shift()! + const ref = toVisit.shift() as Ref> if (ref === from) { return true } @@ -387,7 +387,7 @@ export class Hierarchy { getDescendants(_class: Ref>): Ref>[] { const data = this.descendants.get(_class) if (data === undefined) { - throw new Error(`descendants not found: ${_class}`) + throw new Error('descendants not found: ' + _class) } return data } @@ -409,12 +409,14 @@ export class Hierarchy { if (add) { this.descendants.set(cls, [_class]) } - } else if (add) { - list.push(_class) } else { - const pos = list.indexOf(_class) - if (pos !== -1) { - list.splice(pos, 1) + if (add) { + list.push(_class) + } else { + const pos = list.indexOf(_class) + if (pos !== -1) { + list.splice(pos, 1) + } } } } @@ -426,7 +428,7 @@ export class Hierarchy { const ancestorList: Ref[] = [] while (cl.length > 0) { - const classifier = cl.shift()! + const classifier = cl.shift() as Ref if (addNew(visited, classifier)) { ancestorList.push(classifier) cl.push(...this.ancestorsOf(classifier)) @@ -536,7 +538,7 @@ export class Hierarchy { let result: Ref> = _class for (const ancestor of ancestors) { try { - const { domain } = this.getClass(ancestor) + const domain = this.getClass(ancestor).domain if (domain === baseDomain) { result = ancestor } @@ -548,7 +550,7 @@ export class Hierarchy { getAttribute (classifier: Ref, name: string): AnyAttribute { const attr = this.findAttribute(classifier, name) if (attr === undefined) { - throw new Error(`attribute not found: ${name}`) + throw new Error('attribute not found: ' + name) } return attr } @@ -557,7 +559,7 @@ export class Hierarchy { const list = [classifier] const visited = new Set>() while (list.length > 0) { - const cl = list.shift()! + const cl = list.shift() as Ref if (addNew(visited, cl)) { const attribute = this.attributes.get(cl)?.get(name) if (attribute !== undefined) { diff --git a/foundations/core/packages/core/src/memdb.ts b/foundations/core/packages/core/src/memdb.ts index 6df62f3bbc..5a0896e919 100644 --- a/foundations/core/packages/core/src/memdb.ts +++ b/foundations/core/packages/core/src/memdb.ts @@ -18,7 +18,7 @@ import { type Lookup, type MeasureContext, type ReverseLookups, getObjectValue } import type { Class, Doc, Ref } from './classes' import core from './component' -import type { Hierarchy } from './hierarchy' +import { type Hierarchy } from './hierarchy' import { checkMixinKey, matchQuery, resultSort } from './query' import type { AssociationQuery, @@ -142,7 +142,7 @@ export abstract class MemDb extends TxProcessor implements Storage { for (const doc of docs) { const result: LookupData = {} await this.getLookupValue(_class, doc, lookup, result) - withLookup.push({ ...doc, $lookup: result }) + withLookup.push(Object.assign({}, doc, { $lookup: result })) } return withLookup } @@ -151,7 +151,7 @@ export abstract class MemDb extends TxProcessor implements Storage { const withLookup: WithLookup[] = [] for (const doc of docs) { const result = await this.getAssociationValue(doc, associations) - withLookup.push({ ...doc, $associations: result }) + withLookup.push(Object.assign({}, doc, { $associations: result })) } return withLookup } @@ -187,7 +187,7 @@ export abstract class MemDb extends TxProcessor implements Storage { let result: WithLookup[] const baseClass = this.hierarchy.getBaseClass(_class) if ( - Object.hasOwn(query, '_id') && + Object.prototype.hasOwnProperty.call(query, '_id') && (typeof query._id === 'string' || query._id?.$in !== undefined || query._id === undefined || query._id === null) ) { result = this.getByIdQuery(query, baseClass) @@ -235,7 +235,7 @@ export abstract class MemDb extends TxProcessor implements Storage { let result: WithLookup[] const baseClass = this.hierarchy.getBaseClass(_class) if ( - Object.hasOwn(query, '_id') && + Object.prototype.hasOwnProperty.call(query, '_id') && (typeof query._id === 'string' || query._id?.$in !== undefined || query._id === undefined || query._id === null) ) { result = this.getByIdQuery(query, baseClass) @@ -254,7 +254,9 @@ export abstract class MemDb extends TxProcessor implements Storage { result = result.slice(0, options?.limit) return toFindResult( - result.map((it) => (baseClass !== _class ? this.hierarchy.as(it, _class) : it)) as WithLookup[], + result.map((it) => { + return baseClass !== _class ? this.hierarchy.as(it, _class) : it + }) as WithLookup[], total ) } diff --git a/foundations/core/packages/core/src/operations.ts b/foundations/core/packages/core/src/operations.ts index 778c5111a7..697ffb5655 100644 --- a/foundations/core/packages/core/src/operations.ts +++ b/foundations/core/packages/core/src/operations.ts @@ -24,7 +24,7 @@ import type { Space, Timestamp } from './classes' -import type { Client } from './client' +import { type Client } from './client' import core from './component' import type { DocumentQuery, @@ -56,7 +56,7 @@ export class TxOperations implements Omit { constructor ( readonly client: Client, readonly user: PersonId, - readonly isDerived = false + readonly isDerived: boolean = false ) { this.txFactory = new TxFactory(user, isDerived) } @@ -76,7 +76,7 @@ export class TxOperations implements Omit { findAll( _class: Ref>, query: DocumentQuery, - options?: FindOptions + options?: FindOptions | undefined ): Promise> { return this.client.findAll(_class, query, options) } @@ -100,7 +100,7 @@ export class TxOperations implements Omit { findOne( _class: Ref>, query: DocumentQuery, - options?: FindOptions + options?: FindOptions | undefined ): Promise | undefined> { return this.client.findOne(_class, query, options) } @@ -158,7 +158,7 @@ export class TxOperations implements Omit { modifiedBy ) await this.tx(tx) - return tx.objectId + return tx.objectId as unknown as Ref

} async updateCollection( @@ -368,7 +368,7 @@ export class TxOperations implements Omit { async mixinDiffUpdate ( doc: Doc, - raw: MixinData>, + raw: Doc | Data, mixin: Ref>>, modifiedBy: PersonId, modifiedOn: Timestamp @@ -376,7 +376,7 @@ export class TxOperations implements Omit { // We need to update fields if they are different. if (!this.getHierarchy().hasMixin(doc, mixin)) { - await this.createMixin(doc._id, doc._class, doc.space, mixin, raw, modifiedOn, modifiedBy) + await this.createMixin(doc._id, doc._class, doc.space, mixin, raw as MixinData, modifiedOn, modifiedBy) TxProcessor.applyUpdate(this.getHierarchy().as(doc, mixin), raw) return doc } @@ -507,17 +507,17 @@ export class ApplyOperations extends TxOperations { super(txClient, ops.user, isDerived ?? false) } - match(_class: Ref>, query: DocumentQuery): this { + match(_class: Ref>, query: DocumentQuery): ApplyOperations { this.matches.push({ _class, query }) return this } - notMatch(_class: Ref>, query: DocumentQuery): this { + notMatch(_class: Ref>, query: DocumentQuery): ApplyOperations { this.notMatches.push({ _class, query }) return this } - async commit (notify = true, extraNotify: Ref>[] = []): Promise { + async commit (notify: boolean = true, extraNotify: Ref>[] = []): Promise { if ( this.txes.length === 1 && this.matches.length === 0 && @@ -574,7 +574,7 @@ export class ApplyOperations extends TxOperations { } // Apply for this will reuse, same apply context. - apply (scope?: string, measure?: string): this { + apply (scope?: string, measure?: string): ApplyOperations { return this } } @@ -622,7 +622,7 @@ export async function updateAttribute ( _class: Ref>, attribute: { key: string, attr: AnyAttribute }, value: any, - saveModified = false, + saveModified: boolean = false, analyticsProps: Record = {} ): Promise { const doc = object @@ -630,7 +630,7 @@ export async function updateAttribute ( if ((doc as any)[attributeKey] === value) return const modifiedOn = saveModified ? doc.modifiedOn : Date.now() const modifiedBy = attribute.key === 'modifiedBy' ? value : saveModified ? doc.modifiedBy : undefined - const { attr } = attribute + const attr = attribute.attr const baseAnalyticsProps = { objectClass: _class, @@ -649,37 +649,39 @@ export async function updateAttribute ( modifiedBy ) Analytics.handleEvent('ChangeAttribute', { ...baseAnalyticsProps, value }) - } else if (client.getHierarchy().isDerived(attribute.attr.type._class, core.class.ArrOf)) { - const oldValue: any[] = (object as any)[attributeKey] ?? [] - const val: any[] = Array.isArray(value) ? value : [value] - const toPull = oldValue.filter((it: any) => !val.includes(it)) - - const toPush = val.filter((it) => !oldValue.includes(it)) - if (toPull.length > 0) { - await client.update(object, { $pull: { [attributeKey]: { $in: toPull } } }, false, modifiedOn, modifiedBy) - Analytics.handleEvent('RemoveCollectionItems', { - ...baseAnalyticsProps, - removed: toPull - }) - } - if (toPush.length > 0) { - await client.update( - object, - { $push: { [attributeKey]: { $each: toPush, $position: 0 } } }, - false, - modifiedOn, - modifiedBy - ) - Analytics.handleEvent('AddCollectionItems', { + } else { + if (client.getHierarchy().isDerived(attribute.attr.type._class, core.class.ArrOf)) { + const oldValue: any[] = (object as any)[attributeKey] ?? [] + const val: any[] = Array.isArray(value) ? value : [value] + const toPull = oldValue.filter((it: any) => !val.includes(it)) + + const toPush = val.filter((it) => !oldValue.includes(it)) + if (toPull.length > 0) { + await client.update(object, { $pull: { [attributeKey]: { $in: toPull } } }, false, modifiedOn, modifiedBy) + Analytics.handleEvent('RemoveCollectionItems', { + ...baseAnalyticsProps, + removed: toPull + }) + } + if (toPush.length > 0) { + await client.update( + object, + { $push: { [attributeKey]: { $each: toPush, $position: 0 } } }, + false, + modifiedOn, + modifiedBy + ) + Analytics.handleEvent('AddCollectionItems', { + ...baseAnalyticsProps, + added: toPush + }) + } + } else { + await client.update(object, { [attributeKey]: value }, false, modifiedOn, modifiedBy) + Analytics.handleEvent('SetCollectionItems', { ...baseAnalyticsProps, - added: toPush + value }) } - } else { - await client.update(object, { [attributeKey]: value }, false, modifiedOn, modifiedBy) - Analytics.handleEvent('SetCollectionItems', { - ...baseAnalyticsProps, - value - }) } } diff --git a/foundations/core/packages/core/src/storage.ts b/foundations/core/packages/core/src/storage.ts index 375c146f78..95d9aaaff1 100644 --- a/foundations/core/packages/core/src/storage.ts +++ b/foundations/core/packages/core/src/storage.ts @@ -22,17 +22,17 @@ import { VersionableDoc } from './versioning' export type ArraySizeSelector = | { - $gt: number - } + $gt: number + } | { - $lt: number - } + $lt: number + } | { - $gte: number - } + $gte: number + } | { - $lte: number - } + $lte: number + } /** * @public @@ -272,7 +272,7 @@ export interface DomainResult { /** * @public */ - +// eslint-disable-next-line @typescript-eslint/no-empty-interface export interface TxResult {} /** @@ -312,8 +312,8 @@ export interface SearchResultDoc { emojiIcon?: string score?: number doc: Pick & - Partial> & - Partial> + Partial> & + Partial> } /** diff --git a/foundations/core/packages/core/src/utils.ts b/foundations/core/packages/core/src/utils.ts index d71d7807e6..568c34a415 100644 --- a/foundations/core/packages/core/src/utils.ts +++ b/foundations/core/packages/core/src/utils.ts @@ -48,11 +48,11 @@ import { type WorkspaceMode } from './classes' import core from './component' -import type { Hierarchy } from './hierarchy' -import type { TxOperations } from './operations' +import { type Hierarchy } from './hierarchy' +import { type TxOperations } from './operations' import { isPredicate } from './predicate' -import type { Branding, BrandingMap } from './server' -import type { DocumentQuery, FindResult } from './storage' +import { type Branding, type BrandingMap } from './server' +import { type DocumentQuery, type FindResult } from './storage' import { DOMAIN_TX, type Tx, type TxCreateDoc, type TxCUD, TxProcessor, type TxUpdateDoc } from './tx' function toHex (value: number, chars: number): string { @@ -80,7 +80,7 @@ function count (): string { * @public * @returns */ -export function generateId (join = ''): Ref { +export function generateId (join: string = ''): Ref { return (timestamp() + join + random + join + count()) as Ref } @@ -292,9 +292,9 @@ export class DocManager implements IDocManager { */ export class RateLimiter { - idCounter = 0 + idCounter: number = 0 processingQueue = new Map>() - last = 0 + last: number = 0 rate: number queue: (() => Promise)[] = [] @@ -557,8 +557,9 @@ export function includesAny (arr1: string[] | null | undefined, arr2: string[] | export const isEnum = (e: T) => - (token: any): token is T[keyof T] => - typeof token === 'string' && Object.values(e as Record).includes(token) + (token: any): token is T[keyof T] => { + return typeof token === 'string' && Object.values(e as Record).includes(token) + } export async function checkPermission ( client: TxOperations, @@ -590,7 +591,7 @@ async function hasPermission ( _space: Ref, space?: TypedSpace ): Promise { - space ??= await client.findOne(core.class.TypedSpace, { _id: _space }) + space = space ?? (await client.findOne(core.class.TypedSpace, { _id: _space })) const type = await client .getModel() .findOne(core.class.SpaceType, { _id: space?.type }, { lookup: { _id: { roles: core.class.Role } } }) @@ -625,7 +626,7 @@ export function getRoleAttributeLabel (roleName: string): IntlString { export function getFullTextIndexableAttributes ( hierarchy: Hierarchy, clazz: Ref>, - skipDocs = false + skipDocs: boolean = false ): AnyAttribute[] { const allAttributes = hierarchy.getAllAttributes(clazz) const result: AnyAttribute[] = [] @@ -872,9 +873,9 @@ export function pluginFilterTx ( * @public */ export class TimeRateLimiter { - idCounter = 0 - active = 0 - last = 0 + idCounter: number = 0 + active: number = 0 + last: number = 0 rate: number period: number executions: { time: number, running: boolean }[] = [] @@ -882,7 +883,7 @@ export class TimeRateLimiter { queue: (() => Promise)[] = [] notify: (() => void)[] = [] - constructor (rate: number, period = 1000) { + constructor (rate: number, period: number = 1000) { this.rate = rate this.period = period } @@ -1005,7 +1006,7 @@ export function toRank (str: string | undefined): Rank | undefined { if (str.startsWith('0|')) { return str } - return `0|${str.replaceAll(/[-:_]/g, '').toLowerCase()}` + return '0|' + str.replaceAll(/[-:_]/g, '').toLowerCase() } /** diff --git a/foundations/core/packages/measurements/src/__tests__/context.test.ts b/foundations/core/packages/measurements/src/__tests__/context.test.ts index 818ecbd616..349b18230e 100644 --- a/foundations/core/packages/measurements/src/__tests__/context.test.ts +++ b/foundations/core/packages/measurements/src/__tests__/context.test.ts @@ -344,7 +344,7 @@ describe('context', () => { it('should wrap method with context', async () => { class TestClass { @withContext('testOperation', { service: 'test' }) - async testMethod (ctx: MeasureContext, value: number): Promise { + async testMethod(ctx: MeasureContext, value: number): Promise { return value * 2 } } diff --git a/foundations/core/packages/measurements/src/__tests__/performance.test.ts b/foundations/core/packages/measurements/src/__tests__/performance.test.ts index fdb6065973..c05308ef04 100644 --- a/foundations/core/packages/measurements/src/__tests__/performance.test.ts +++ b/foundations/core/packages/measurements/src/__tests__/performance.test.ts @@ -202,7 +202,7 @@ describe('performance', () => { // Helper functions -async function simulateWork (durationMs: number): Promise { +async function simulateWork(durationMs: number): Promise { const end = performance.now() + durationMs while (performance.now() < end) { // Busy wait to simulate work @@ -211,7 +211,7 @@ async function simulateWork (durationMs: number): Promise { } } -async function deepNestedExecution ( +async function deepNestedExecution( ctx: MeasureContext, depth: number, workMs: number, @@ -227,7 +227,7 @@ async function deepNestedExecution ( }) } -async function simulateAPIRequest (ctx: MeasureContext | null, requestId: number): Promise { +async function simulateAPIRequest(ctx: MeasureContext | null, requestId: number): Promise { const method = ['GET', 'POST', 'PUT'][requestId % 3] const endpoint = `/api/resource/${requestId % 10}` diff --git a/foundations/core/packages/measurements/src/context.ts b/foundations/core/packages/measurements/src/context.ts index 9a8688635c..4f364a3956 100644 --- a/foundations/core/packages/measurements/src/context.ts +++ b/foundations/core/packages/measurements/src/context.ts @@ -19,7 +19,7 @@ const errorPrinter = ({ message, stack, ...rest }: Error): object => ({ stack, ...rest }) -function replacer (value: any): any { +function replacer(value: any): any { return value instanceof Error ? errorPrinter(value) : value } @@ -75,11 +75,11 @@ export class MeasureMetricsContext implements MeasureContext { st = platformNow() contextData: object = {} - private done (value?: number, override?: boolean): void { + private done(value?: number, override?: boolean): void { updateMeasure(this.metrics, this.st, this.params, this.fullParams, (spend) => {}, value, override) } - constructor ( + constructor( name: string, params: ParamsType, fullParams: FullParamsType | (() => FullParamsType) = {}, @@ -106,7 +106,7 @@ export class MeasureMetricsContext implements MeasureContext { this.logger = logger ?? (this.logParams != null ? consoleLogger(this.logParams ?? {}) : noParamsLogger) } - measure (name: string, value: number, override?: boolean): void { + measure(name: string, value: number, override?: boolean): void { const c = new MeasureMetricsContext( '#' + name, {}, @@ -121,7 +121,7 @@ export class MeasureMetricsContext implements MeasureContext { c.done(value, override) } - newChild ( + newChild( name: string, params: ParamsType, opt?: { @@ -182,7 +182,7 @@ export class MeasureMetricsContext implements MeasureContext { } } - extractMeta (): Record { + extractMeta(): Record { return {} } @@ -200,28 +200,28 @@ export class MeasureMetricsContext implements MeasureContext { } } - error (message: string, args?: Record): void { + error(message: string, args?: Record): void { this.logger.error(message, { ...this.params, ...args, ...(this.logParams ?? {}) }) } - info (message: string, args?: Record): void { + info(message: string, args?: Record): void { this.logger.info(message, { ...this.params, ...args, ...(this.logParams ?? {}) }) } - warn (message: string, args?: Record): void { + warn(message: string, args?: Record): void { this.logger.warn(message, { ...this.params, ...args, ...(this.logParams ?? {}) }) } - debug (message: string, args?: Record): void { + debug(message: string, args?: Record): void { if (this.logLevel !== 'debug') return this.logger.debug(message, { ...this.params, ...args, ...(this.logParams ?? {}) }) } - end (): void { + end(): void { this.done() } - getParams (): ParamsType { + getParams(): ParamsType { return this.params } } @@ -234,14 +234,14 @@ export class NoMetricsContext implements MeasureContext { private readonly logLevel: MeasureLogLevel - constructor (logger?: MeasureLogger, logLevel: MeasureLogLevel = 'info') { + constructor(logger?: MeasureLogger, logLevel: MeasureLogLevel = 'info') { this.logger = logger ?? consoleLogger({}) this.logLevel = logLevel } - measure (name: string, value: number, override?: boolean): void {} + measure(name: string, value: number, override?: boolean): void {} - newChild ( + newChild( name: string, params: ParamsType, opt?: { @@ -268,7 +268,7 @@ export class NoMetricsContext implements MeasureContext { return r instanceof Promise ? r : Promise.resolve(r) } - extractMeta (): Record { + extractMeta(): Record { return {} } @@ -292,26 +292,26 @@ export class NoMetricsContext implements MeasureContext { return r instanceof Promise ? r : Promise.resolve(r) } - error (message: string, args?: Record): void { + error(message: string, args?: Record): void { this.logger.error(message, { ...args }) } - info (message: string, args?: Record): void { + info(message: string, args?: Record): void { this.logger.info(message, { ...args }) } - warn (message: string, args?: Record): void { + warn(message: string, args?: Record): void { this.logger.warn(message, { ...args }) } - debug (message: string, args?: Record): void { + debug(message: string, args?: Record): void { if (this.logLevel !== 'debug') return this.logger.debug(message, { ...args }) } - end (): void {} + end(): void {} - getParams (): ParamsType { + getParams(): ParamsType { return {} } } @@ -319,7 +319,7 @@ export class NoMetricsContext implements MeasureContext { /** * Allow to use decorator for context enabled functions */ -export function withContext (name: string, params: ParamsType = {}, options?: WithOptions): any { +export function withContext(name: string, params: ParamsType = {}, options?: WithOptions): any { return (target: any, propertyKey: string, descriptor: PropertyDescriptor): PropertyDescriptor => { const originalMethod = descriptor.value descriptor.value = function (...args: any[]): Promise { @@ -338,13 +338,13 @@ export function withContext (name: string, params: ParamsType = {}, options?: Wi let operationProfiling = false -export function setOperationLogProfiling (value: boolean): void { +export function setOperationLogProfiling(value: boolean): void { operationProfiling = value } let globalId: number = 0 -export function registerOperationLog (ctx: MeasureContext): { opLogMetrics?: Metrics, op?: OperationLog } { +export function registerOperationLog(ctx: MeasureContext): { opLogMetrics?: Metrics; op?: OperationLog } { if (!operationProfiling) { return {} } @@ -364,7 +364,7 @@ export function registerOperationLog (ctx: MeasureContext): { opLogMetrics?: Met return { opLogMetrics, op } } -export function updateOperationLog (opLogMetrics: Metrics | undefined, op: OperationLog | undefined): void { +export function updateOperationLog(opLogMetrics: Metrics | undefined, op: OperationLog | undefined): void { if (!operationProfiling) { return } @@ -386,7 +386,7 @@ export function updateOperationLog (opLogMetrics: Metrics | undefined, op: Opera } } -export function addOperation ( +export function addOperation( ctx: MeasureContext, name: string, params: ParamsType, diff --git a/foundations/core/packages/measurements/src/metrics.ts b/foundations/core/packages/measurements/src/metrics.ts index 695dc0372a..0d25f68ebb 100644 --- a/foundations/core/packages/measurements/src/metrics.ts +++ b/foundations/core/packages/measurements/src/metrics.ts @@ -12,7 +12,7 @@ export const globals: Metrics = newMetrics() * @public * @returns */ -export function newMetrics (): Metrics { +export function newMetrics(): Metrics { return { operations: 0, value: 0, @@ -22,7 +22,7 @@ export function newMetrics (): Metrics { } } -function getUpdatedTopResult ( +function getUpdatedTopResult( current: Metrics['topResult'], time: number, params: FullParamsType @@ -59,7 +59,7 @@ function getUpdatedTopResult ( * Measure with tree expansion. Operation counter will be added only to leaf's. * @public */ -export function measure ( +export function measure( metrics: Metrics, params: ParamsType, fullParams: FullParamsType | (() => FullParamsType) = {}, @@ -70,7 +70,7 @@ export function measure ( updateMeasure(metrics, st, params, fullParams, endOp) } } -export function updateMeasure ( +export function updateMeasure( metrics: Metrics, st: number, params: ParamsType, @@ -145,7 +145,7 @@ export function updateMeasure ( /** * @public */ -export function childMetrics (root: Metrics, path: string[]): Metrics { +export function childMetrics(root: Metrics, path: string[]): Metrics { const segments = path let oop = root for (const p of segments) { @@ -159,7 +159,7 @@ export function childMetrics (root: Metrics, path: string[]): Metrics { /** * @public */ -export function metricsAggregate (m: Metrics, limit: number = -1, roundMath: boolean = false): Metrics { +export function metricsAggregate(m: Metrics, limit: number = -1, roundMath: boolean = false): Metrics { let ms = aggregateMetrics(m.measurements, limit) // Use child overage, if there is no top level value specified. @@ -200,7 +200,7 @@ export function metricsAggregate (m: Metrics, limit: number = -1, roundMath: boo } } -function aggregateMetrics (m: Record, limit: number = -1): Record { +function aggregateMetrics(m: Record, limit: number = -1): Record { const result: Record = {} for (const [k, v] of Object.entries(m).sort((a, b) => b[1].value - a[1].value)) { result[k] = metricsAggregate(v, limit) @@ -208,14 +208,14 @@ function aggregateMetrics (m: Record, limit: number = -1): Reco return result } -function toLen (val: string, sep: string, len: number): string { +function toLen(val: string, sep: string, len: number): string { while (val.length < len) { val += sep } return val } -function printMetricsChildren (params: Record, offset: number, length: number): string { +function printMetricsChildren(params: Record, offset: number, length: number): string { let r = '' if (Object.keys(params).length > 0) { r += '\n' + toLen('', ' ', offset) @@ -227,7 +227,7 @@ function printMetricsChildren (params: Record, offset: number, return r } -function printMetricsParams ( +function printMetricsParams( params: Record>, offset: number, length: number @@ -250,7 +250,7 @@ function printMetricsParams ( return r } -function toString (name: string, m: Metrics, offset: number, length: number): string { +function toString(name: string, m: Metrics, offset: number, length: number): string { let r = `${toLen('', ' ', offset)}${toLen(name, '-', length - offset)}: avg ${ Math.round((m.value / (m.operations > 0 ? m.operations : 1)) * 100) / 100 } total: ${Math.round(m.value * 100) / 100} ops: ${m.operations}`.trim() @@ -259,7 +259,7 @@ function toString (name: string, m: Metrics, offset: number, length: number): st return r } -function toJson (m: Metrics): any { +function toJson(m: Metrics): any { const obj: any = { $total: m.value, $ops: m.operations @@ -284,20 +284,20 @@ function toJson (m: Metrics): any { /** * @public */ -export function metricsToString (metrics: Metrics, name = 'System', length: number): string { +export function metricsToString(metrics: Metrics, name = 'System', length: number): string { return toString(name, metricsAggregate(metrics, 50, true), 0, length) } -export function metricsToJson (metrics: Metrics): any { +export function metricsToJson(metrics: Metrics): any { return toJson(metricsAggregate(metrics)) } -function printMetricsParamsRows ( +function printMetricsParamsRows( params: Record>, offset: number ): (string | number)[][] { const r: (string | number)[][] = [] - function joinP (key: string, data: Record): (string | number)[][] { + function joinP(key: string, data: Record): (string | number)[][] { return Object.entries(data).map(([k, vv]) => [ offset, `${key}=${k}`, @@ -312,7 +312,7 @@ function printMetricsParamsRows ( return r } -function printMetricsChildrenRows (params: Record, offset: number): (string | number)[][] { +function printMetricsChildrenRows(params: Record, offset: number): (string | number)[][] { const r: (string | number)[][] = [] if (Object.keys(params).length > 0) { Object.entries(params).forEach(([k, vv]) => r.push(...toStringRows(k, vv, offset))) @@ -320,7 +320,7 @@ function printMetricsChildrenRows (params: Record, offset: numb return r } -function toStringRows (name: string, m: Metrics, offset: number): (number | string)[][] { +function toStringRows(name: string, m: Metrics, offset: number): (number | string)[][] { const r: (number | string)[][] = [ [ offset, @@ -338,6 +338,6 @@ function toStringRows (name: string, m: Metrics, offset: number): (number | stri /** * @public */ -export function metricsToRows (metrics: Metrics, name = 'System'): (number | string)[][] { +export function metricsToRows(metrics: Metrics, name = 'System'): (number | string)[][] { return toStringRows(name, metricsAggregate(metrics, 50, true), 0) } diff --git a/foundations/core/packages/platform/src/__tests__/i18n.test.ts b/foundations/core/packages/platform/src/__tests__/i18n.test.ts index 9b2b04d21d..05840a8d90 100644 --- a/foundations/core/packages/platform/src/__tests__/i18n.test.ts +++ b/foundations/core/packages/platform/src/__tests__/i18n.test.ts @@ -21,7 +21,7 @@ import { Severity, Status } from '../status' import { addStringsLoader, loadPluginStrings, translate, translateCB } from '../i18n' import { addEventListener, PlatformEvent, removeEventListener } from '../event' -function translateCBAsync ( +function translateCBAsync( message: IntlString, params: Record, language: string | undefined diff --git a/foundations/core/packages/platform/src/event.ts b/foundations/core/packages/platform/src/event.ts index 138dbe6087..ff6231d295 100644 --- a/foundations/core/packages/platform/src/event.ts +++ b/foundations/core/packages/platform/src/event.ts @@ -33,7 +33,7 @@ const eventListeners = new Map() * @param event - * @param listener - */ -export function addEventListener (event: string, listener: EventListener): void { +export function addEventListener(event: string, listener: EventListener): void { const listeners = eventListeners.get(event) if (listeners !== undefined) { listeners.push(listener) @@ -47,7 +47,7 @@ export function addEventListener (event: string, listener: EventListener): void * @param event - * @param listener - */ -export function removeEventListener (event: string, listener: EventListener): void { +export function removeEventListener(event: string, listener: EventListener): void { const listeners = eventListeners.get(event) if (listeners !== undefined) { listeners.splice(listeners.indexOf(listener), 1) @@ -57,7 +57,7 @@ export function removeEventListener (event: string, listener: EventListener): vo /** * @public */ -export async function broadcastEvent (event: string, data: any): Promise { +export async function broadcastEvent(event: string, data: any): Promise { const listeners = eventListeners.get(event) if (listeners !== undefined) { const promises = listeners.map(async (listener) => { @@ -72,7 +72,7 @@ export async function broadcastEvent (event: string, data: any): Promise { * @param status - * @returns */ -export async function setPlatformStatus (status: Status): Promise { +export async function setPlatformStatus(status: Status): Promise { if (status.severity === Severity.ERROR) { console.trace('Platform Error Status', status) } @@ -85,7 +85,7 @@ export async function setPlatformStatus (status: Status): Promise { * @param promise - * @returns */ -export async function monitor (status: Status, promise: Promise): Promise { +export async function monitor(status: Status, promise: Promise): Promise { void setPlatformStatus(status) // eslint-disable-line no-void try { const result = await promise diff --git a/foundations/core/packages/platform/src/i18n.ts b/foundations/core/packages/platform/src/i18n.ts index e4658b087b..9db5214f45 100644 --- a/foundations/core/packages/platform/src/i18n.ts +++ b/foundations/core/packages/platform/src/i18n.ts @@ -39,7 +39,7 @@ const englishTranslationsForMissing = new Map() * @param plugin - * @param loader - */ -export function addStringsLoader (plugin: Plugin, loader: Loader): void { +export function addStringsLoader(plugin: Plugin, loader: Loader): void { loaders.set(plugin, loader) } @@ -47,7 +47,7 @@ export function addStringsLoader (plugin: Plugin, loader: Loader): void { * Perform load of all internationalization sources for all plugins available. * @public */ -export async function loadPluginStrings (locale: string, force: boolean = false): Promise { +export async function loadPluginStrings(locale: string, force: boolean = false): Promise { if (force) { cache.clear() } @@ -64,14 +64,14 @@ export async function loadPluginStrings (locale: string, force: boolean = false) } } -async function setStatus (status: Status, skipError?: boolean): Promise { +async function setStatus(status: Status, skipError?: boolean): Promise { if (skipError !== true) { await setPlatformStatus(status) } } /** Notify platform and return a Status for load/resolve paths that do not use the per-message format cache. */ -async function pipelineErrorToStatus (err: unknown, skipError?: boolean): Promise { +async function pipelineErrorToStatus(err: unknown, skipError?: boolean): Promise { const status = unknownError(err) await setStatus(status, skipError) return status @@ -80,7 +80,7 @@ async function pipelineErrorToStatus (err: unknown, skipError?: boolean): Promis /** * On compile/resolve failure: cache failure for this intl id, notify platform, return `message` as UI fallback. */ -async function handleIntlPipelineFailure ( +async function handleIntlPipelineFailure( err: unknown, message: IntlString, localeCache: Map, @@ -92,7 +92,7 @@ async function handleIntlPipelineFailure ( return message } -async function loadTranslationsForComponent ( +async function loadTranslationsForComponent( plugin: Plugin, locale: string, skipError?: boolean @@ -115,7 +115,7 @@ async function loadTranslationsForComponent ( } } -function getCachedTranslation (id: _IdInfo, locale: string): IntlString | Status | undefined { +function getCachedTranslation(id: _IdInfo, locale: string): IntlString | Status | undefined { const localtTanslations = translations.get(locale) if (localtTanslations === undefined) { return undefined @@ -134,7 +134,7 @@ function getCachedTranslation (id: _IdInfo, locale: string): IntlString | Status } } -async function getTranslation ( +async function getTranslation( id: _IdInfo, locale: string, skipError?: boolean @@ -180,7 +180,7 @@ async function getTranslation ( * @param params - * @returns */ -export async function translate

> ( +export async function translate

>( message: IntlString

, params: P, language?: string, @@ -236,7 +236,7 @@ export async function translate

> ( /** * Will do a translation in case language file already in cache, a translate is called and Promise is returned overwise */ -export function translateCB

> ( +export function translateCB

>( message: IntlString

, params: P, language: string | undefined, diff --git a/foundations/core/packages/platform/src/ident.ts b/foundations/core/packages/platform/src/ident.ts index 52caa1d9ff..06199b8a1d 100644 --- a/foundations/core/packages/platform/src/ident.ts +++ b/foundations/core/packages/platform/src/ident.ts @@ -30,7 +30,7 @@ export interface _IdInfo { /** * @internal */ -export function _parseId (id: Id): _IdInfo { +export function _parseId(id: Id): _IdInfo { const path = id.split(_ID_SEPARATOR) if (path.length < 3) { throw new PlatformError(new Status(Severity.ERROR, platform.status.InvalidId, { id })) diff --git a/foundations/core/packages/platform/src/metadata.ts b/foundations/core/packages/platform/src/metadata.ts index df8774f7e8..df7ba9c788 100644 --- a/foundations/core/packages/platform/src/metadata.ts +++ b/foundations/core/packages/platform/src/metadata.ts @@ -40,7 +40,7 @@ const metadata = new Map, any>() * @param id - * @returns */ -export function getMetadata (id: Metadata): T | undefined { +export function getMetadata(id: Metadata): T | undefined { return metadata.get(id) } @@ -49,7 +49,7 @@ export function getMetadata (id: Metadata): T | undefined { * @param id - * @param value - */ -export function setMetadata (id: Metadata, value: T): void { +export function setMetadata(id: Metadata, value: T): void { metadata.set(id, value) } @@ -58,7 +58,7 @@ export function setMetadata (id: Metadata, value: T): void { * @param ids - * @param data - */ -export function loadMetadata>> (ids: X, data: ExtractType): void { +export function loadMetadata>>(ids: X, data: ExtractType): void { for (const key in ids) { const id = ids[key] const resource = data[key] diff --git a/foundations/core/packages/platform/src/platform.ts b/foundations/core/packages/platform/src/platform.ts index 241a31dfb4..c34887c725 100644 --- a/foundations/core/packages/platform/src/platform.ts +++ b/foundations/core/packages/platform/src/platform.ts @@ -75,7 +75,7 @@ export const _ID_SEPARATOR = ':' */ export const _EmbeddedId = 'embedded' -function identify (result: Record, prefix: string, namespace: Record): Namespace { +function identify(result: Record, prefix: string, namespace: Record): Namespace { for (const key in namespace) { const value = namespace[key] if (typeof result[key] === 'string') { @@ -90,7 +90,7 @@ function identify (result: Record, prefix: string, namespace: Recor /** * @public */ -export function getEmbeddedLabel (str: string): IntlString { +export function getEmbeddedLabel(str: string): IntlString { return (_EmbeddedId + _ID_SEPARATOR + _EmbeddedId + _ID_SEPARATOR + str) as IntlString } @@ -102,7 +102,7 @@ export function getEmbeddedLabel (str: string): IntlString { * @param namespace - * @returns */ -export function plugin (plugin: Plugin, namespace: N): N { +export function plugin(plugin: Plugin, namespace: N): N { return identify({}, plugin, namespace) as N } @@ -115,7 +115,7 @@ export function plugin (plugin: Plugin, namespace: N): N { * @param merge - * @returns */ -export function mergeIds (plugin: Plugin, ns: N, merge: M): N & M { +export function mergeIds(plugin: Plugin, ns: N, merge: M): N & M { return identify({ ...ns }, plugin, merge) as N & M } @@ -148,17 +148,17 @@ export default plugin(platformId, { ExpiredLink: '' as StatusCode, UnknownMethod: '' as StatusCode<{ method: string }>, InternalServerError: '' as StatusCode, - MaintenanceWarning: '' as StatusCode<{ time: number, message?: string }>, + MaintenanceWarning: '' as StatusCode<{ time: number; message?: string }>, MaintenanceWarningTime: '' as IntlString, AccountNotFound: '' as StatusCode<{ account?: string }>, - AccountMismatch: '' as StatusCode<{ account?: string, requiredAccount?: string }>, + AccountMismatch: '' as StatusCode<{ account?: string; requiredAccount?: string }>, AccountNotConfirmed: '' as StatusCode, - WorkspaceNotFound: '' as StatusCode<{ workspaceUuid?: string, workspaceName?: string, workspaceUrl?: string }>, + WorkspaceNotFound: '' as StatusCode<{ workspaceUuid?: string; workspaceName?: string; workspaceUrl?: string }>, WorkspaceArchived: '' as StatusCode<{ workspaceUuid: string }>, WorkspaceMigration: '' as StatusCode<{ workspaceUuid: string }>, - SocialIdNotFound: '' as StatusCode<{ value?: string, type?: string, _id?: string }>, - SocialIdNotConfirmed: '' as StatusCode<{ socialId: string, type: string }>, - SocialIdAlreadyConfirmed: '' as StatusCode<{ socialId: string, type: string }>, + SocialIdNotFound: '' as StatusCode<{ value?: string; type?: string; _id?: string }>, + SocialIdNotConfirmed: '' as StatusCode<{ socialId: string; type: string }>, + SocialIdAlreadyConfirmed: '' as StatusCode<{ socialId: string; type: string }>, IntegrationExists: '' as StatusCode, IntegrationAlreadyExists: '' as StatusCode, IntegrationNotFound: '' as StatusCode, diff --git a/foundations/core/packages/platform/src/resource.ts b/foundations/core/packages/platform/src/resource.ts index 890c8306b0..9ede59c780 100644 --- a/foundations/core/packages/platform/src/resource.ts +++ b/foundations/core/packages/platform/src/resource.ts @@ -46,7 +46,7 @@ const locations = new Map>() * @param plugin - * @param module - */ -export function addLocation (plugin: Plugin, module: PluginLoader): void { +export function addLocation(plugin: Plugin, module: PluginLoader): void { locations.set(plugin, module) } @@ -54,11 +54,11 @@ export function addLocation (plugin: Plugin, module: Plugin * @public * return list of registred plugins. */ -export function getPlugins (): Plugin[] { +export function getPlugins(): Plugin[] { return Array.from(locations.keys()) } -function getLocation (plugin: Plugin): PluginLoader { +function getLocation(plugin: Plugin): PluginLoader { const location = locations.get(plugin) if (location === undefined) { throw new PlatformError( @@ -72,7 +72,7 @@ function getLocation (plugin: Plugin): PluginLoader { const loading = new Map>() -function loadPlugin (id: Plugin): Resources | Promise { +function loadPlugin(id: Plugin): Resources | Promise { let pluginLoader = loading.get(id) if (pluginLoader === undefined) { const status = new Status(Severity.INFO, platform.status.LoadingPlugin, { @@ -109,7 +109,7 @@ const cachedResource = new Map() * @param resource - * @returns */ -export async function getResource (resource: Resource): Promise { +export async function getResource(resource: Resource): Promise { const cached = cachedResource.get(resource) if (cached !== undefined) { return cached @@ -133,7 +133,7 @@ export async function getResource (resource: Resource): Promise { * @param resource - * @returns */ -export function getResourceP (resource: Resource): T | Promise { +export function getResourceP(resource: Resource): T | Promise { return cachedResource.get(resource) ?? getResource(resource) } @@ -142,7 +142,7 @@ export function getResourceP (resource: Resource): T | Promise { * @param resource - * @returns */ -export function getResourceC (resource: Resource | undefined, callback: (resource: T | undefined) => void): void { +export function getResourceC(resource: Resource | undefined, callback: (resource: T | undefined) => void): void { if (resource === undefined) { callback(undefined) return @@ -164,7 +164,7 @@ export function getResourceC (resource: Resource | undefined, callback: (r /** * @public */ -export function getResourcePlugin (resource: Resource): Plugin { +export function getResourcePlugin(resource: Resource): Plugin { const info = _parseId(resource) return info.component } diff --git a/foundations/core/packages/platform/src/status.ts b/foundations/core/packages/platform/src/status.ts index 201723b5e8..b17136b9b6 100644 --- a/foundations/core/packages/platform/src/status.ts +++ b/foundations/core/packages/platform/src/status.ts @@ -41,7 +41,7 @@ export class Status

= any> { readonly code: StatusCode

readonly params: P - constructor (severity: Severity, code: StatusCode

, params: P) { + constructor(severity: Severity, code: StatusCode

, params: P) { this.severity = severity this.code = code this.params = params @@ -55,7 +55,7 @@ export class Status

= any> { export class PlatformError

> extends Error { readonly status: Status

- constructor (status: Status

) { + constructor(status: Status

) { super(`${status.severity}: ${status.code} ${JSON.stringify(status.params)}`) this.status = status } @@ -84,11 +84,11 @@ export const UNAUTHORIZED = new Status(Severity.ERROR, platform.status.Unauthori * @param message - * @returns */ -export function unknownStatus (message: string): Status { +export function unknownStatus(message: string): Status { return new Status(Severity.ERROR, platform.status.UnknownError, { message }) } -function isStatusLike (err: unknown): err is Pick { +function isStatusLike(err: unknown): err is Pick { if (typeof err !== 'object' || err === null) return false const o = err as Record return ( @@ -96,22 +96,22 @@ function isStatusLike (err: unknown): err is Pick ({ ...obj, @@ -17,7 +17,7 @@ const langs = ['en', 'ru'] * @param loader - * @returns */ -export function makeLocalesTest (loader: Loader) { +export function makeLocalesTest(loader: Loader) { return async () => { const [target, ...rest] = await Promise.all(langs.map(loader)) const matcher = makeLocaleMatcher(target) diff --git a/foundations/core/packages/postgres-base/src/index.ts b/foundations/core/packages/postgres-base/src/index.ts index d7ec7f4ba5..70f8ef5f38 100644 --- a/foundations/core/packages/postgres-base/src/index.ts +++ b/foundations/core/packages/postgres-base/src/index.ts @@ -30,7 +30,7 @@ export interface DBClient { raw: () => postgres.Sql } -export function createDBClient (client: postgres.Sql, release: () => void = () => {}): DBClient { +export function createDBClient(client: postgres.Sql, release: () => void = () => {}): DBClient { return { execute: (query, parameters) => client.unsafe(query, doFetchTypes ? parameters : convertArrayParams(parameters), getPrepare()), @@ -45,7 +45,7 @@ export function createDBClient (client: postgres.Sql, release: () => void = () = } } -export function convertArrayParams (params?: unknown[]): any[] | undefined { +export function convertArrayParams(params?: unknown[]): any[] | undefined { if (params === undefined) return undefined return params.map((param) => { @@ -74,7 +74,7 @@ export function convertArrayParams (params?: unknown[]): any[] | undefined { }) } -export async function retryTxn ( +export async function retryTxn( pool: postgres.Sql, operation: (client: postgres.TransactionSql) => Promise ): Promise { @@ -87,7 +87,7 @@ export async function retryTxn ( /** * @public */ -export async function shutdownPostgres (): Promise { +export async function shutdownPostgres(): Promise { for (const c of connections.values()) { c.close(true) } @@ -108,7 +108,7 @@ class PostgresClientReferenceImpl { mgr: ConnectionMgr - constructor ( + constructor( readonly connectionString: string, client: postgres.Sql, readonly onclose: () => void @@ -118,15 +118,15 @@ class PostgresClientReferenceImpl { this.mgr = new ConnectionMgr(createDBClient(this.client)) } - url (): string { + url(): string { return this.connectionString } - getClient (): postgres.Sql { + getClient(): postgres.Sql { return this.client } - close (force: boolean = false): void { + close(force: boolean = false): void { this.count-- if (this.count === 0 || force) { if (force) { @@ -141,25 +141,25 @@ class PostgresClientReferenceImpl { } } - addRef (): void { + addRef(): void { this.count++ } } export class ClientRef implements PostgresClientReference { id = ++clId - constructor ( + constructor( readonly client: PostgresClientReferenceImpl, readonly mgr: ConnectionMgr ) { clientRefs.set(this.id, this) } - url (): string { + url(): string { return this.client.url() } closed = false - async getClient (): Promise { + async getClient(): Promise { if (!this.closed) { return this.client.getClient() } else { @@ -167,7 +167,7 @@ export class ClientRef implements PostgresClientReference { } } - close (): void { + close(): void { // Do not allow double close of mongo connection client if (!this.closed) { clientRefs.delete(this.id) @@ -178,11 +178,11 @@ export class ClientRef implements PostgresClientReference { } export let dbExtraOptions: Partial> = {} -export function setDBExtraOptions (options: Partial>): void { +export function setDBExtraOptions(options: Partial>): void { dbExtraOptions = options } -export function getPrepare (): { prepare: boolean } { +export function getPrepare(): { prepare: boolean } { return { prepare: dbExtraOptions.prepare ?? false } } @@ -194,7 +194,7 @@ const connections = new Map() * Initialize a connection to DB * @public */ -export function getDBClient ( +export function getDBClient( connectionString: string, database?: string, serviceName: string = 'transactor' @@ -219,8 +219,8 @@ export function getDBClient ( }, debug: false, notice: false, - onnotice (notice) {}, - onparameter (key, value) {}, + onnotice(notice) {}, + onparameter(key, value) {}, ...dbExtraOptions, ...extraOptions, fetch_types: doFetchTypes @@ -242,14 +242,14 @@ class ConnectionInfo { released: boolean = false - constructor ( + constructor( readonly connectionId: string, protected readonly client: DBClient, readonly managed: boolean, readonly mgrId: string ) {} - async withReserve (action: (reservedClient: DBClient) => Promise, forced: boolean = false): Promise { + async withReserve(action: (reservedClient: DBClient) => Promise, forced: boolean = false): Promise { let reserved: DBClient | undefined // Check if we have at least one available connection and reserve one more if required. @@ -258,7 +258,7 @@ class ConnectionInfo { reserved = await this.client.reserve() } } else { - reserved = this.available.shift() + reserved = this.available.shift() as DBClient } try { @@ -284,7 +284,7 @@ class ConnectionInfo { } } - release (): void { + release(): void { for (const c of [...this.available]) { c.release() } @@ -294,9 +294,9 @@ class ConnectionInfo { export class ConnectionMgr { private readonly connections = new Map() - constructor (protected readonly client: DBClient) {} + constructor(protected readonly client: DBClient) {} - async write (id: string | undefined, mgrId: string, fn: (client: DBClient) => Promise): Promise { + async write(id: string | undefined, mgrId: string, fn: (client: DBClient) => Promise): Promise { const backoffInterval = 25 // millis const maxTries = 5 let tries = 0 @@ -345,7 +345,7 @@ export class ConnectionMgr { } } - async retry (id: string | undefined, mgrId: string, fn: (client: DBClient) => Promise): Promise { + async retry(id: string | undefined, mgrId: string, fn: (client: DBClient) => Promise): Promise { const backoffInterval = 25 // millis const maxTries = 5 let tries = 0 @@ -390,7 +390,7 @@ export class ConnectionMgr { } } - release (id: string): void { + release(id: string): void { const conn = this.connections.get(id) if (conn !== undefined) { conn.released = true @@ -399,7 +399,7 @@ export class ConnectionMgr { } } - close (mgrId?: string): void { + close(mgrId?: string): void { const cnts = this.connections for (const [k, conn] of Array.from(cnts.entries())) { if (mgrId !== undefined && conn.mgrId !== mgrId) { @@ -414,7 +414,7 @@ export class ConnectionMgr { } } - getConnection (id: string, mgrId: string, managed: boolean = true): ConnectionInfo { + getConnection(id: string, mgrId: string, managed: boolean = true): ConnectionInfo { let conn = this.connections.get(id) if (conn === undefined) { conn = new ConnectionInfo(id, this.client, managed, mgrId) @@ -425,7 +425,7 @@ export class ConnectionMgr { return conn } - private isRetryableError (err: any): boolean { + private isRetryableError(err: any): boolean { const msg: string = err?.message ?? '' return ( diff --git a/foundations/core/packages/query/src/__tests__/connection.ts b/foundations/core/packages/query/src/__tests__/connection.ts index e97e3da683..d217ff4ea0 100644 --- a/foundations/core/packages/query/src/__tests__/connection.ts +++ b/foundations/core/packages/query/src/__tests__/connection.ts @@ -52,13 +52,13 @@ import core, { import { genMinModel } from './minmodel' export async function connect (handler: (tx: Tx) => void): Promise< - Client & - BackupClient & - FulltextStorage & { - isConnected: () => boolean - loadModel: (last: Timestamp, hash?: string) => Promise - pushHandler: (handler: TxHandler) => void - } +Client & +BackupClient & +FulltextStorage & { + isConnected: () => boolean + loadModel: (last: Timestamp, hash?: string) => Promise + pushHandler: (handler: TxHandler) => void +} > { const txes = genMinModel() diff --git a/foundations/core/packages/query/src/__tests__/query.test.ts b/foundations/core/packages/query/src/__tests__/query.test.ts index 7fea01fed4..bd6ea9526c 100644 --- a/foundations/core/packages/query/src/__tests__/query.test.ts +++ b/foundations/core/packages/query/src/__tests__/query.test.ts @@ -930,7 +930,7 @@ describe('query', () => { const pp = await new Promise((resolve) => { liveQuery.query( test.class.ParticipantsHolder, - { participants: 'a' }, + { participants: 'a' as Ref }, (result) => { if (attempt > 0) { resolvePpv(result) diff --git a/foundations/core/packages/query/src/index.ts b/foundations/core/packages/query/src/index.ts index 9433028b15..4ad4e1d9f4 100644 --- a/foundations/core/packages/query/src/index.ts +++ b/foundations/core/packages/query/src/index.ts @@ -464,7 +464,7 @@ export class LiveQuery implements WithTx, Client { query: _query, result: result.then((docs) => new ResultArray(docs, this.getHierarchy())), total: 0, - options, + options: options as FindOptions, callbacks: new Map(), refresh: reduceCalls(() => this.doRefresh(q)), refreshId: 0 @@ -1084,17 +1084,12 @@ export class LiveQuery implements WithTx, Client { lookup: ReverseLookups, result: LookupData ): Promise { - const reverseLookup = lookup._id - if (reverseLookup === undefined) { - return - } - - for (const key of Object.keys(reverseLookup)) { + for (const key in lookup._id) { if ((doc as any)[key] === undefined || (doc as any)[key] === 0) { continue } - const value = reverseLookup[key] + const value = lookup._id[key] let _class: Ref> let attr = 'attachedTo' @@ -1438,7 +1433,7 @@ export class LiveQuery implements WithTx, Client { const result: [string, string, string?][] = [] const hierarchy = this.client.getHierarchy() if (lookup._id !== undefined) { - for (const key of Object.keys(lookup._id)) { + for (const key in lookup._id) { const value = (lookup._id as any)[key] const [valueClass, reverseLookupKey] = Array.isArray(value) ? value : [value, 'attachedTo'] const clazz = hierarchy.isMixin(valueClass) ? hierarchy.getBaseClass(valueClass) : valueClass diff --git a/foundations/core/packages/retry/src/__test__/decorator.test.ts b/foundations/core/packages/retry/src/__test__/decorator.test.ts index 557661d011..8a6d81692b 100644 --- a/foundations/core/packages/retry/src/__test__/decorator.test.ts +++ b/foundations/core/packages/retry/src/__test__/decorator.test.ts @@ -54,7 +54,7 @@ describe('Retryable decorator', () => { callCount = 0 @Retryable(mockOptions) - async testMethod (param1: string, param2: number): Promise { + async testMethod(param1: string, param2: number): Promise { this.callCount++ if (this.callCount === 1) { throw error @@ -87,7 +87,7 @@ describe('Retryable decorator', () => { callCount = 0 @Retryable() - async testMethod (): Promise { + async testMethod(): Promise { this.callCount++ if (this.callCount === 1) { throw new Error('network error') @@ -108,7 +108,7 @@ describe('Retryable decorator', () => { private counter = 0 @Retryable(mockOptions) - async incrementAndGet (): Promise { + async incrementAndGet(): Promise { if (this.counter === 0) { this.counter++ throw new Error('network error') @@ -117,7 +117,7 @@ describe('Retryable decorator', () => { return this.counter } - getCounter (): number { + getCounter(): number { return this.counter } } @@ -140,7 +140,7 @@ describe('Retryable decorator', () => { logger: mockLogger, isRetryable: retryAllErrors }) - async alwaysFailingMethod (): Promise { + async alwaysFailingMethod(): Promise { throw new Error('Persistent failure') } } @@ -163,7 +163,7 @@ describe('Retryable decorator', () => { // Create a class with an async method that fails then resolves class TestService { @Retryable(mockOptions) - async delayedMethod (): Promise { + async delayedMethod(): Promise { return await new Promise((resolve, reject) => { resolutionCount++ if (resolutionCount === 1) { @@ -195,7 +195,7 @@ describe('Retryable decorator', () => { logger: mockLogger, isRetryable: retryAllErrors }) - async unstableMethod (): Promise { + async unstableMethod(): Promise { callCount++ if (callCount < 4) { // Succeed on the 4th attempt @@ -235,7 +235,7 @@ describe('Retryable decorator', () => { }), isRetryable: retryAllErrors }) - async delayingMethod (): Promise { + async delayingMethod(): Promise { callCount++ if (callCount < 4) { throw new Error(`Attempt ${callCount} failed`) @@ -274,7 +274,7 @@ describe('Retryable decorator', () => { }), isRetryable: retryAllErrors }) - async method (): Promise { + async method(): Promise { callCount++ if (callCount < 3) { throw new Error(`Attempt ${callCount} failed`) @@ -299,7 +299,7 @@ describe('Retryable decorator', () => { }), isRetryable: retryAllErrors }) - async method (): Promise { + async method(): Promise { callCount++ if (callCount < 4) { throw new Error(`Attempt ${callCount} failed`) @@ -319,7 +319,7 @@ describe('Retryable decorator', () => { class TestService { @Retryable(mockOptions) - nonAsyncMethod (input: string): string { + nonAsyncMethod(input: string): string { callCount++ if (callCount === 1) { throw new Error('Sync error') @@ -344,7 +344,7 @@ describe('Retryable decorator', () => { // eslint-disable-next-line @typescript-eslint/no-extraneous-class class TestService { @Retryable(mockOptions) - static async staticMethod (input: string): Promise { + static async staticMethod(input: string): Promise { callCount++ if (callCount === 1) { throw new Error('Static method error') @@ -372,7 +372,7 @@ describe('Retryable decorator', () => { return err instanceof Error && err.message.includes('Please retry') } }) - async conditionalRetryMethod (): Promise { + async conditionalRetryMethod(): Promise { this.callCount++ if (this.callCount === 1) { throw new Error('Please retry this') // should be retried diff --git a/foundations/core/packages/retry/src/__test__/retry.test.ts b/foundations/core/packages/retry/src/__test__/retry.test.ts index 7118520e46..c8df6134d0 100644 --- a/foundations/core/packages/retry/src/__test__/retry.test.ts +++ b/foundations/core/packages/retry/src/__test__/retry.test.ts @@ -315,7 +315,7 @@ describe('Using retry in class methods', () => { class TestService { counter = 0 - async unstableFunction (): Promise { + async unstableFunction(): Promise { this.counter++ if (this.counter < 3) { throw new Error(`network error ${this.counter}`) diff --git a/foundations/core/packages/retry/src/__test__/retryable.test.ts b/foundations/core/packages/retry/src/__test__/retryable.test.ts index 8814cc8008..65062d49bb 100644 --- a/foundations/core/packages/retry/src/__test__/retryable.test.ts +++ b/foundations/core/packages/retry/src/__test__/retryable.test.ts @@ -151,7 +151,7 @@ describe('retryNetworkErrors', () => { /** * Helper function to create an Error object with a status property */ -function createErrorWithStatus (status: number): Error { +function createErrorWithStatus(status: number): Error { const error: any = new Error(`HTTP Error ${status}`) error.status = status return error diff --git a/foundations/core/packages/retry/src/decorator.ts b/foundations/core/packages/retry/src/decorator.ts index cb6080e0ae..f51fd0527a 100644 --- a/foundations/core/packages/retry/src/decorator.ts +++ b/foundations/core/packages/retry/src/decorator.ts @@ -21,7 +21,7 @@ import { type RetryOptions, DEFAULT_RETRY_OPTIONS, withRetry } from './retry' * @param operationName - Name of the operation for logging (defaults to method name) * @returns Method decorator */ -export function Retryable (options: Partial = DEFAULT_RETRY_OPTIONS): MethodDecorator { +export function Retryable(options: Partial = DEFAULT_RETRY_OPTIONS): MethodDecorator { return function (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) { const originalMethod = descriptor.value as (...args: any[]) => any diff --git a/foundations/core/packages/retry/src/delay.ts b/foundations/core/packages/retry/src/delay.ts index 5adbd17d36..4826a598ef 100644 --- a/foundations/core/packages/retry/src/delay.ts +++ b/foundations/core/packages/retry/src/delay.ts @@ -17,21 +17,21 @@ export const DelayStrategyFactory = { /** * Create a fixed delay strategy */ - fixed (options: FixedDelayOptions): DelayStrategy { + fixed(options: FixedDelayOptions): DelayStrategy { return new FixedDelayStrategy(options) }, /** * Create an exponential backoff delay strategy */ - exponentialBackoff (options: ExponentialBackoffOptions): DelayStrategy { + exponentialBackoff(options: ExponentialBackoffOptions): DelayStrategy { return new ExponentialBackoffStrategy(options) }, /** * Create a Fibonacci delay strategy */ - fibonacci (options: FibonacciDelayOptions): DelayStrategy { + fibonacci(options: FibonacciDelayOptions): DelayStrategy { return new FibonacciDelayStrategy(options) } } @@ -54,12 +54,12 @@ export class FixedDelayStrategy implements DelayStrategy { private readonly delayMs: number private readonly jitter: number - constructor (options: FixedDelayOptions) { + constructor(options: FixedDelayOptions) { this.delayMs = options.delayMs this.jitter = options.jitter ?? 0 } - getDelay (_attempt: number): number { + getDelay(_attempt: number): number { if (this.jitter > 0) { const jitterAmount = this.delayMs * this.jitter * (Math.random() * 2 - 1) return Math.max(0, this.delayMs + jitterAmount) @@ -88,14 +88,14 @@ export class ExponentialBackoffStrategy implements DelayStrategy { private readonly backoffFactor: number private readonly jitter: number - constructor (options: ExponentialBackoffOptions) { + constructor(options: ExponentialBackoffOptions) { this.initialDelayMs = options.initialDelayMs this.maxDelayMs = options.maxDelayMs this.backoffFactor = options.backoffFactor this.jitter = options.jitter ?? 0 } - getDelay (attempt: number): number { + getDelay(attempt: number): number { const baseDelay = Math.min(this.initialDelayMs * Math.pow(this.backoffFactor, attempt - 1), this.maxDelayMs) if (this.jitter > 0) { @@ -124,7 +124,7 @@ export class FibonacciDelayStrategy implements DelayStrategy { // Cache for Fibonacci numbers to improve performance private readonly fibCache: Map - constructor (options: FibonacciDelayOptions) { + constructor(options: FibonacciDelayOptions) { this.baseDelayMs = options.baseDelayMs this.maxDelayMs = options.maxDelayMs this.jitter = options.jitter ?? 0 @@ -134,7 +134,7 @@ export class FibonacciDelayStrategy implements DelayStrategy { ]) } - private fibonacci (n: number): number { + private fibonacci(n: number): number { // Return from cache if available if (this.fibCache.has(n)) { return this.fibCache.get(n) as number @@ -150,7 +150,7 @@ export class FibonacciDelayStrategy implements DelayStrategy { return result } - getDelay (attempt: number): number { + getDelay(attempt: number): number { const fibNumber = this.fibonacci(attempt + 1) const baseDelay = Math.min(fibNumber * this.baseDelayMs, this.maxDelayMs) @@ -166,6 +166,6 @@ export class FibonacciDelayStrategy implements DelayStrategy { /** * Promise-based sleep function */ -export function sleep (ms: number): Promise { +export function sleep(ms: number): Promise { return new Promise((resolve) => setTimeout(resolve, ms)) } diff --git a/foundations/core/packages/retry/src/retry.ts b/foundations/core/packages/retry/src/retry.ts index 692b602660..5df6936a09 100644 --- a/foundations/core/packages/retry/src/retry.ts +++ b/foundations/core/packages/retry/src/retry.ts @@ -54,7 +54,7 @@ export const DEFAULT_RETRY_OPTIONS: RetryOptions = { * @returns The result of the operation * @throws The last error encountered after all retries have been exhausted */ -export async function withRetry ( +export async function withRetry( operation: () => Promise, options: Partial = {}, operationName: string = 'operation' @@ -117,7 +117,7 @@ export async function withRetry ( * @param operationName - Name of the operation for logging * @returns A wrapped function that applies retry logic */ -export function createRetryableFunction Promise> ( +export function createRetryableFunction Promise>( fn: T, options: Partial = {}, operationName: string = 'operation' diff --git a/foundations/core/packages/text-markdown/src/__tests__/markdown.test.ts b/foundations/core/packages/text-markdown/src/__tests__/markdown.test.ts index 3139baa128..7861452564 100644 --- a/foundations/core/packages/text-markdown/src/__tests__/markdown.test.ts +++ b/foundations/core/packages/text-markdown/src/__tests__/markdown.test.ts @@ -16,7 +16,7 @@ import { MarkupNode, MarkupNodeType, MarkupMarkType } from '@hcengineering/text-core' import { markdownToMarkup, markupToMarkdown } from '..' -import { isMarkdownsEquals } from '../compare' +import { isMarkdownsEquals, normalizeMarkdown } from '../compare' const refUrl: string = 'ref://' const imageUrl: string = 'http://localhost' @@ -1195,4 +1195,59 @@ describe('markdownToMarkup -> markupToMarkdown', () => { expect(serialized).toEqualMarkdown(alternate ?? markdown) }) }) + +describe('normalizeMarkdown', () => { + it('handles null and undefined inputs', () => { + expect(normalizeMarkdown(null as any)).toBe('') + expect(normalizeMarkdown(undefined as any)).toBe('') + expect(normalizeMarkdown('')).toBe('') + }) + + it('handles non-string inputs', () => { + expect(normalizeMarkdown(123 as any)).toBe('') + expect(normalizeMarkdown({} as any)).toBe('') + expect(normalizeMarkdown([] as any)).toBe('') + }) + + it('normalizes line endings', () => { + expect(normalizeMarkdown('line1\r\nline2\rline3\nline4')).toBe('line1\nline2\nline3\nline4') + }) + + it('removes trailing whitespace and empty lines', () => { + expect(normalizeMarkdown('line1 \n \nline2 \n\n\nline3')).toBe('line1\nline2\nline3') + }) + + it('normalizes HTML tag attributes', () => { + const input = 'test' + const expected = 'test' + expect(normalizeMarkdown(input)).toBe(expected) + }) + + it('handles void elements correctly', () => { + expect(normalizeMarkdown('')).toBe('') + expect(normalizeMarkdown('
')).toBe('
') + expect(normalizeMarkdown('


')).toBe('
') + }) + + it('handles non-void elements correctly', () => { + expect(normalizeMarkdown('
')).toBe('
') + expect(normalizeMarkdown('')).toBe('') + }) + + it('sorts attributes alphabetically', () => { + const input = 'test' + const expected = 'test' + expect(normalizeMarkdown(input)).toBe(expected) + }) + + it('handles attributes without values', () => { + expect(normalizeMarkdown('')).toBe('') + }) + + it('handles mixed content', () => { + const input = 'Text before\r\ntest \n\nText after ' + const expected = 'Text before\ntest\nText after' + expect(normalizeMarkdown(input)).toBe(expected) + }) +}) }) diff --git a/foundations/core/packages/text-markdown/src/index.ts b/foundations/core/packages/text-markdown/src/index.ts index 8c867525c4..7618c5548b 100644 --- a/foundations/core/packages/text-markdown/src/index.ts +++ b/foundations/core/packages/text-markdown/src/index.ts @@ -38,7 +38,7 @@ export function markupToMarkdown (markup: MarkupNode, options?: MarkdownOptions) } /** @public */ -export function markdownToMarkup (markdown: string | undefined, options?: MarkdownOptions): MarkupNode { +export function markdownToMarkup (markdown: string, options?: MarkdownOptions): MarkupNode { const refUrl = options?.refUrl ?? 'ref://' const imageUrl = options?.imageUrl ?? 'image://' diff --git a/foundations/core/packages/text-markdown/src/serializer.ts b/foundations/core/packages/text-markdown/src/serializer.ts index 39b0dc0d6e..dd204f3d79 100644 --- a/foundations/core/packages/text-markdown/src/serializer.ts +++ b/foundations/core/packages/text-markdown/src/serializer.ts @@ -172,14 +172,8 @@ export const storeNodes: Record = { state.write('') }, - /* - * URL components are encoded with encodeURIComponent and HTML attributes use htmlEsc below. - * The rule cannot follow these context-specific sanitizers through Markdown string assembly. - */ - /* eslint-disable secure-coding/no-improper-sanitization */ image: (state, node) => { const attrs = nodeAttrs(node) - const fileId = attrs['file-id'] == null ? '' : encodeURIComponent(String(attrs['file-id'])) if (attrs.token != null && attrs['file-id'] != null) { // Convert image to token format state.write( @@ -187,12 +181,11 @@ export const storeNodes: Record = { state.esc(`${attrs.alt ?? ''}`) + '](' + (state.imageUrl + - fileId + - '?file=' + - fileId + - (attrs.width != null ? '&width=' + encodeURIComponent(String(attrs.width)) : '') + - (attrs.height != null ? '&height=' + encodeURIComponent(String(attrs.height)) : '') + - (attrs.token != null ? '&token=' + encodeURIComponent(String(attrs.token)) : '')) + + `${attrs['file-id']}` + + `?file=${attrs['file-id']}` + + (attrs.width != null ? '&width=' + state.esc(`${attrs.width}`) : '') + + (attrs.height != null ? '&height=' + state.esc(`${attrs.height}`) : '') + + (attrs.token != null ? '&token=' + state.esc(`${attrs.token}`) : '')) + (attrs.title != null ? ' ' + state.quote(`${attrs.title}`) : '') + ')' ) @@ -213,28 +206,24 @@ export const storeNodes: Record = { if (attrs.width != null || attrs.height != null) { state.write( '' + (attrs.width != null ? ` width="${state.esc(`${attrs.width}`)}"` : '') + + (attrs.height != null ? ` height="${state.esc(`${attrs.height}`)}"` : '') + + ` src="${state.esc(`${attrs.src}`)}"` + + (attrs.alt != null ? ` alt="${state.esc(`${attrs.alt}`)}"` : '') + + (attrs.title != null ? '>' + state.quote(`${attrs.title}`) + '' : '>') ) } else { state.write( '![' + state.esc(`${attrs.alt ?? ''}`) + '](' + - encodeURI(String(attrs.src ?? '')) + + state.esc(`${attrs.src}`) + (attrs.title != null ? ' ' + state.quote(`${attrs.title}`) : '') + ')' ) } } }, - /* eslint-enable secure-coding/no-improper-sanitization */ reference: (state, node) => { const attrs = nodeAttrs(node) let url = state.refUrl @@ -380,8 +369,12 @@ export const storeMarks: Record = { escape: true }, code: { - open: (state, mark, parent, index) => backticksFor(false), - close: (state, mark, parent, index) => backticksFor(true), + open: (state, mark, parent, index) => { + return backticksFor(false) + }, + close: (state, mark, parent, index) => { + return backticksFor(true) + }, mixable: false, expelEnclosingWhitespace: false, escape: false @@ -411,7 +404,7 @@ export const storeMarks: Record = { } const styleAttrs = Object.entries(attrs) .map(([key, value]) => { - const kebabKey = key.replace(/[A-Z]/gv, (letter) => `-${letter.toLowerCase()}`) + const kebabKey = key.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`) return `${kebabKey}: ${value}` }) .join('; ') @@ -722,13 +715,9 @@ export class MarkdownState implements IState { // leading and trailing accordingly. const node = state?.node if (this.isText(node) && this.isMarksHasExpelEnclosingWhitespace(state)) { - const text = node?.text ?? '' - const leadMatch = text.match(/^\s*/)?.[0] ?? '' - const textWithoutLeading = text.slice(leadMatch.length) - const trailMatch = textWithoutLeading.match(/\s*$/)?.[0] ?? '' - const innerMatch = textWithoutLeading.slice(0, textWithoutLeading.length - trailMatch.length) - - if (leadMatch !== '' || trailMatch !== '') { + const match = /^(\s*)(.*?)(\s*)$/m.exec(node?.text ?? '') + if (match !== null) { + const [leadMatch, innerMatch, trailMatch] = [match[1], match[2], match[3]] leading += leadMatch state.trailing = trailMatch this.adjustLeadingTextNode(leadMatch, trailMatch, state, innerMatch, node as MarkupNode) diff --git a/foundations/core/packages/text/src/marks/colors.ts b/foundations/core/packages/text/src/marks/colors.ts index 3c68a476a6..a29f83a49f 100644 --- a/foundations/core/packages/text/src/marks/colors.ts +++ b/foundations/core/packages/text/src/marks/colors.ts @@ -69,19 +69,19 @@ export const BackgroundColor = Extension.create({ return { setBackgroundColor: (backgroundColor: string) => - ({ commands }) => { - return this.options.types - .map((type) => commands.updateAttributes(type, { backgroundColor })) - .every((response) => response) - }, + ({ commands }) => { + return this.options.types + .map((type) => commands.updateAttributes(type, { backgroundColor })) + .every((response) => response) + }, unsetBackgroundColor: () => - ({ commands }) => { - return this.options.types - .map((type) => commands.resetAttributes(type, 'backgroundColor')) - .every((response) => response) - } + ({ commands }) => { + return this.options.types + .map((type) => commands.resetAttributes(type, 'backgroundColor')) + .every((response) => response) + } } } }) @@ -128,9 +128,9 @@ export const TextColor = Extension.create({ return { setTextColor: (color: string) => - ({ chain }) => { - return chain().setMark('textStyle', { color }).run() - }, + ({ chain }) => { + return chain().setMark('textStyle', { color }).run() + }, unsetTextColor: () => diff --git a/foundations/core/packages/text/src/markup/__tests__/utils.test.ts b/foundations/core/packages/text/src/markup/__tests__/utils.test.ts index 6a4b55e6ee..1fb1554f17 100644 --- a/foundations/core/packages/text/src/markup/__tests__/utils.test.ts +++ b/foundations/core/packages/text/src/markup/__tests__/utils.test.ts @@ -284,7 +284,7 @@ describe('pmNodeToJSON', () => { const json: MarkupNode = { type: MarkupNodeType.paragraph, - attrs: { textAlign: null }, + attrs: { textAlign: null as any }, content: [nodeText('Hello, world!')] } expect(pmNodeToJSON(node)).toEqual(json) @@ -310,7 +310,7 @@ describe('jsonToPmNode', () => { content: [ { type: MarkupNodeType.paragraph, - attrs: { textAlign: null }, + attrs: { textAlign: null as any }, content: [ { type: MarkupNodeType.text, diff --git a/foundations/server/packages/collaboration/src/storage.ts b/foundations/server/packages/collaboration/src/storage.ts index efe678d71e..e0dc833f3d 100644 --- a/foundations/server/packages/collaboration/src/storage.ts +++ b/foundations/server/packages/collaboration/src/storage.ts @@ -105,7 +105,7 @@ export async function loadCollabJson ( } const buffer = await storageAdapter.read(ctx, wsIds, blobId) - return Buffer.concat(buffer).toString() + return Buffer.concat(buffer as any).toString() } /** @public */ diff --git a/foundations/server/packages/core/src/__tests__/shared-integration.ts b/foundations/server/packages/core/src/__tests__/shared-integration.ts index ecc7978f86..777927422c 100644 --- a/foundations/server/packages/core/src/__tests__/shared-integration.ts +++ b/foundations/server/packages/core/src/__tests__/shared-integration.ts @@ -135,14 +135,14 @@ export function runSharedIntegrationTests (adapterName: string, getContext: () = await operations.updateDoc(taskPlugin.class.Task, '' as Ref, taskId, { $push: { arr: 10 } - }) + } as any) let task: any = await client.findOne(taskPlugin.class.Task, { _id: taskId }) expect(task?.arr).toEqual([10]) await operations.updateDoc(taskPlugin.class.Task, '' as Ref, taskId, { $push: { arr: 20 } - }) + } as any) task = await client.findOne(taskPlugin.class.Task, { _id: taskId }) expect(task?.arr).toEqual([10, 20]) @@ -160,7 +160,7 @@ export function runSharedIntegrationTests (adapterName: string, getContext: () = await operations.updateDoc(taskPlugin.class.Task, '' as Ref, taskId, { $pull: { arr: 3 } - }) + } as any) const task: any = await client.findOne(taskPlugin.class.Task, { _id: taskId }) expect(task?.arr).toEqual([1, 2, 4, 5]) diff --git a/foundations/server/packages/core/src/index.ts b/foundations/server/packages/core/src/index.ts index d94ed44006..e79fee2d6b 100644 --- a/foundations/server/packages/core/src/index.ts +++ b/foundations/server/packages/core/src/index.ts @@ -15,10 +15,10 @@ // export type { StorageAdapter } from '@hcengineering/storage' -export type * from './adapter' +export * from './adapter' export * from './base' export * from './benchmark' -export type * from './configuration' +export * from './configuration' export * from './limitter' export * from './mem' export * from './pagination' diff --git a/foundations/server/packages/core/src/utils.ts b/foundations/server/packages/core/src/utils.ts index dcdbeadcc0..c9586d9149 100644 --- a/foundations/server/packages/core/src/utils.ts +++ b/foundations/server/packages/core/src/utils.ts @@ -197,11 +197,11 @@ export class SessionDataImpl implements SessionData { _contextCache: Map | undefined, readonly modelDb: ModelDb, readonly socialStringsToUsers: Map< - PersonId, - { - accontUuid: AccountUuid - role: AccountRole - } + PersonId, + { + accontUuid: AccountUuid + role: AccountRole + } >, readonly service: string, readonly grant?: PermissionsGrant diff --git a/foundations/server/packages/datalake/src/client.ts b/foundations/server/packages/datalake/src/client.ts index 99fee800de..db128038df 100644 --- a/foundations/server/packages/datalake/src/client.ts +++ b/foundations/server/packages/datalake/src/client.ts @@ -490,7 +490,7 @@ async function toBuffer (data: Buffer | string | Readable): Promise { for await (const chunk of data) { chunks.push(chunk) } - return Buffer.concat(chunks) + return Buffer.concat(chunks as any) } else { throw new TypeError('Unsupported data type') } diff --git a/foundations/server/packages/kafka/src/index.ts b/foundations/server/packages/kafka/src/index.ts index 4e241e757d..d35c81b43c 100644 --- a/foundations/server/packages/kafka/src/index.ts +++ b/foundations/server/packages/kafka/src/index.ts @@ -295,8 +295,7 @@ class PlatformQueueConsumerImpl implements ConsumerHandle { await this.doSubscribe() await this.cc.run({ - eachMessage: async (payload) => { - const { message } = payload + eachMessage: async ({ topic, message, pause, heartbeat }) => { const msgKey = message.key?.toString() ?? '' const msgData = JSON.parse(message.value?.toString() ?? '{}') const meta = JSON.parse(message.headers?.meta?.toString() ?? '{}') @@ -310,12 +309,7 @@ class PlatformQueueConsumerImpl implements ConsumerHandle { await this.ctx.with( 'handle-msg', {}, - (ctx) => - this.onMessage( - ctx, - { workspace, value: msgData }, - { heartbeat: () => payload.heartbeat(), pause: () => payload.pause() } - ), + (ctx) => this.onMessage(ctx, { workspace, value: msgData }, { heartbeat, pause }), {}, { meta @@ -324,7 +318,7 @@ class PlatformQueueConsumerImpl implements ConsumerHandle { break } catch (err: any) { this.ctx.error('failed to process message', { err, msgKey, msgData, workspace }) - await payload.heartbeat() + await heartbeat() await new Promise((resolve) => setTimeout(resolve, to * retryDelay)) if (to < maxRetryDelay) { to++ diff --git a/foundations/server/packages/middleware/src/guestPermissions.ts b/foundations/server/packages/middleware/src/guestPermissions.ts index 916a901746..b4779c77de 100644 --- a/foundations/server/packages/middleware/src/guestPermissions.ts +++ b/foundations/server/packages/middleware/src/guestPermissions.ts @@ -66,7 +66,7 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle const role = (group.role as AccountRole | undefined) ?? (Array.isArray(group.roles) && group.roles.length > 0 ? (group.roles[0] as AccountRole) : undefined) ?? - AccountRole.Guest + AccountRole.Guest) as AccountRole const permissions = (group.permissions ?? []) as Ref[] const disabled = new Set>((group.disabledPermissions ?? []) as Ref[]) const current = rolePermissions.get(role) ?? new Set>() @@ -79,9 +79,11 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle } const classPermissions = allPermissionIds.size > 0 - ? await this.findAll(ctx, core.class.ClassPermission, { - _id: { $in: Array.from(allPermissionIds) as Ref[] } - }) + ? await this.findAll( + ctx, + core.class.ClassPermission as Ref>, + { _id: { $in: Array.from(allPermissionIds) } } as any + ) : [] const permissionToClass = new Map, Ref>>( classPermissions diff --git a/foundations/server/packages/middleware/src/lookup.ts b/foundations/server/packages/middleware/src/lookup.ts index 7a1128dc61..ebf3aaf096 100644 --- a/foundations/server/packages/middleware/src/lookup.ts +++ b/foundations/server/packages/middleware/src/lookup.ts @@ -116,7 +116,7 @@ export class LookupMiddleware extends BaseMiddleware implements Middleware { if (typeof v === 'string' || typeof v === 'number' || typeof v === 'boolean') { if ((_doc as any)[k] === v) { if (!cloned) { - _doc = { ...doc } + _doc = { ...doc } as any cloned = true } // eslint-disable-next-line @typescript-eslint/no-dynamic-delete diff --git a/foundations/server/packages/middleware/src/normalizeTx.ts b/foundations/server/packages/middleware/src/normalizeTx.ts index ec9d3a0fc3..b85ceab684 100644 --- a/foundations/server/packages/middleware/src/normalizeTx.ts +++ b/foundations/server/packages/middleware/src/normalizeTx.ts @@ -121,7 +121,7 @@ export class NormalizeTxMiddleware extends BaseMiddleware implements Middleware createdBy: createdBy as PersonId | undefined, createdOn, objectSpace: objectSpace as Ref, - meta + meta: meta as Record | undefined } return baseTx } diff --git a/foundations/server/packages/middleware/src/spacePermissions.ts b/foundations/server/packages/middleware/src/spacePermissions.ts index 3637605c72..6acd7f1634 100644 --- a/foundations/server/packages/middleware/src/spacePermissions.ts +++ b/foundations/server/packages/middleware/src/spacePermissions.ts @@ -27,6 +27,7 @@ import core, { type TxCreateDoc, type TxMixin, TxProcessor, + type TxRemoveDoc, type TxUpdateDoc, type TypedSpace, type MeasureContext, @@ -304,7 +305,7 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle } private handleRemove (tx: TxCUD): void { - const removeTx = tx + const removeTx = tx as TxRemoveDoc if (!this.context.hierarchy.isDerived(removeTx.objectClass, core.class.Space)) return if (removeTx._class !== core.class.TxCreateDoc) return // eslint-disable-next-line @typescript-eslint/no-dynamic-delete diff --git a/foundations/server/packages/middleware/src/spaceSecurity.ts b/foundations/server/packages/middleware/src/spaceSecurity.ts index eead4288f2..4c8bd4223e 100644 --- a/foundations/server/packages/middleware/src/spaceSecurity.ts +++ b/foundations/server/packages/middleware/src/spaceSecurity.ts @@ -45,6 +45,7 @@ import core, { type TxCreateDoc, type TxCUD, TxProcessor, + type TxRemoveDoc, type TxUpdateDoc, type TxWorkspaceEvent, WorkspaceEvent @@ -359,7 +360,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } private handleRemove (tx: TxCUD): void { - const removeTx = tx + const removeTx = tx as TxRemoveDoc if (!this.context.hierarchy.isDerived(removeTx.objectClass, core.class.Space)) return if (removeTx._class !== core.class.TxRemoveDoc) return this.removeSpace(tx.objectId) diff --git a/foundations/server/packages/middleware/src/tests/guestPermissions.test.ts b/foundations/server/packages/middleware/src/tests/guestPermissions.test.ts index 4d42784c68..762de8348d 100644 --- a/foundations/server/packages/middleware/src/tests/guestPermissions.test.ts +++ b/foundations/server/packages/middleware/src/tests/guestPermissions.test.ts @@ -80,14 +80,14 @@ function makePipelineContext (findAll?: FindAllFn): PipelineContext { workspace: { uuid: 'test-workspace' as any, url: 'test', dataId: 'test' as any }, hierarchy, modelDb: model, - branding: null, + branding: null as any, adapterManager: {} as any, storageAdapter: {} as any, contextVars: {}, lastTx: '', lastHash: '', broadcastEvent: async () => {} - } + } as any } function makeMiddleware ( @@ -678,7 +678,7 @@ describe('GuestPermissionsMiddleware', () => { modifiedOn: Date.now(), modifiedBy: GUEST_SOCIAL, createdBy: GUEST_SOCIAL - } + } as any ] } return [] @@ -707,7 +707,7 @@ describe('GuestPermissionsMiddleware', () => { modifiedOn: Date.now(), modifiedBy: GUEST_SOCIAL, createdBy: GUEST_SOCIAL - } + } as any ] } return [] @@ -737,7 +737,7 @@ describe('GuestPermissionsMiddleware', () => { modifiedOn: Date.now(), modifiedBy: otherSocial, createdBy: otherSocial - } + } as any ] } return [] diff --git a/foundations/server/packages/middleware/src/tests/liveQuery.race.test.ts b/foundations/server/packages/middleware/src/tests/liveQuery.race.test.ts index fa10c09bbe..a6d2c1a15b 100644 --- a/foundations/server/packages/middleware/src/tests/liveQuery.race.test.ts +++ b/foundations/server/packages/middleware/src/tests/liveQuery.race.test.ts @@ -180,7 +180,7 @@ describe('LiveQuery Race Condition Tests', () => { workspace: { uuid: 'test-workspace' as any, url: 'test', dataId: 'test' as any }, hierarchy, modelDb: model, - branding: null, + branding: null as any, adapterManager: {} as any, storageAdapter: {} as any, contextVars: {}, @@ -350,7 +350,7 @@ describe('LiveQuery with TxOrderingMiddleware - Solution', () => { workspace: { uuid: 'test-workspace' as any, url: 'test', dataId: 'test' as any }, hierarchy, modelDb: model, - branding: null, + branding: null as any, adapterManager: {} as any, storageAdapter: {} as any, contextVars: {}, diff --git a/foundations/server/packages/middleware/src/tests/txOrdering.test.ts b/foundations/server/packages/middleware/src/tests/txOrdering.test.ts index 62e044cbba..cc082759b1 100644 --- a/foundations/server/packages/middleware/src/tests/txOrdering.test.ts +++ b/foundations/server/packages/middleware/src/tests/txOrdering.test.ts @@ -88,7 +88,7 @@ describe('TxOrderingMiddleware', () => { workspace: { uuid: 'test-workspace' as any, url: 'test', dataId: 'test' as any }, hierarchy, modelDb: model, - branding: null, + branding: null as any, adapterManager: {} as any, storageAdapter: {} as any, contextVars: {}, @@ -222,7 +222,7 @@ describe('TxOrderingMiddleware', () => { workspace: { uuid: 'test-workspace' as any, url: 'test', dataId: 'test' as any }, hierarchy: new Hierarchy(), modelDb: new ModelDb(new Hierarchy()), - branding: null, + branding: null as any, adapterManager: {} as any, storageAdapter: {} as any, contextVars: {}, @@ -324,7 +324,7 @@ describe('TxOrderingMiddleware', () => { workspace: { uuid: 'test-workspace' as any, url: 'test', dataId: 'test' as any }, hierarchy: new Hierarchy(), modelDb: new ModelDb(new Hierarchy()), - branding: null, + branding: null as any, adapterManager: {} as any, storageAdapter: {} as any, contextVars: {}, @@ -353,7 +353,7 @@ describe('TxOrderingMiddleware', () => { describe('TxOrderingMiddleware Integration', () => { it('should work with provideTx flow', async () => { const ctx = new MeasureMetricsContext('test', {}) - ctx.contextData = { broadcast: { txes: [], queue: [], sessions: {} } } + ctx.contextData = { broadcast: { txes: [], queue: [], sessions: {} } } as any const hierarchy = new Hierarchy() const model = new ModelDb(hierarchy) @@ -375,7 +375,7 @@ describe('TxOrderingMiddleware Integration', () => { workspace: { uuid: 'test-workspace' as any, url: 'test', dataId: 'test' as any }, hierarchy, modelDb: model, - branding: null, + branding: null as any, adapterManager: {} as any, storageAdapter: {} as any, contextVars: {}, @@ -392,10 +392,10 @@ describe('TxOrderingMiddleware Integration', () => { const txFactory = new TxFactory(core.account.System) const docId = generateId() - const tx1 = txFactory.createTxUpdateDoc('test:class' as any, 'test:space' as any, docId, {}) + const tx1 = txFactory.createTxUpdateDoc('test:class' as any, 'test:space' as any, docId as any, {} as any) tx1.modifiedOn = 102 - const tx2 = txFactory.createTxUpdateDoc('test:class' as any, 'test:space' as any, docId, {}) + const tx2 = txFactory.createTxUpdateDoc('test:class' as any, 'test:space' as any, docId as any, {} as any) tx2.modifiedOn = 101 // Process in parallel - they should be serialized diff --git a/foundations/server/packages/middleware/src/transient.ts b/foundations/server/packages/middleware/src/transient.ts index 614e0d9ad8..b4038ee867 100644 --- a/foundations/server/packages/middleware/src/transient.ts +++ b/foundations/server/packages/middleware/src/transient.ts @@ -55,7 +55,7 @@ export class TransientMiddleware extends BaseMiddleware implements Middleware { // Need to find all classes with TTL enabled const classes = context.modelDb.findAllSync(core.mixin.TransientTTL, {}) for (const cl of classes) { - this.ttlValues.set(cl._id, cl.ttl) + this.ttlValues.set(cl._id as Ref>, cl.ttl) } this.dbProvider = context.adapterManager?.getAdapter?.(DOMAIN_TRANSIENT, true) diff --git a/foundations/server/packages/mongo/src/storage.ts b/foundations/server/packages/mongo/src/storage.ts index 26fac8e03e..0e219e073e 100644 --- a/foundations/server/packages/mongo/src/storage.ts +++ b/foundations/server/packages/mongo/src/storage.ts @@ -1030,10 +1030,10 @@ abstract class MongoAdapterBase implements DbAdapter { private collectSort( options: - | (FindOptions & { - domain?: Domain | undefined // Allow to find for Doc's in specified domain only. - }) - | undefined, + | (FindOptions & { + domain?: Domain | undefined // Allow to find for Doc's in specified domain only. + }) + | undefined, _class: Ref> ): Sort | undefined { if (options?.sort === undefined) { @@ -1089,10 +1089,10 @@ abstract class MongoAdapterBase implements DbAdapter { private calcProjection( options: - | (FindOptions & { - domain?: Domain | undefined // Allow to find for Doc's in specified domain only. - }) - | undefined, + | (FindOptions & { + domain?: Domain | undefined // Allow to find for Doc's in specified domain only. + }) + | undefined, _class: Ref> ): Projection | undefined { if (options?.projection === undefined) { @@ -1553,7 +1553,7 @@ class MongoAdapter extends MongoAdapterBase { modifiedOn: tx.modifiedOn, '%hash%': this.curHash() } - }, + } as unknown as UpdateFilter, { returnDocument: 'after', includeResultMetadata: true } ) this.handleEvent(domain, 'read', 1) diff --git a/foundations/server/packages/mongo/src/utils.ts b/foundations/server/packages/mongo/src/utils.ts index 59944a500d..f1fc4105c4 100644 --- a/foundations/server/packages/mongo/src/utils.ts +++ b/foundations/server/packages/mongo/src/utils.ts @@ -169,7 +169,7 @@ export class DBCollectionHelper implements DomainHelperOperations { collection(domain: Domain): Collection { let info = this.collections.get(domain) if (info === undefined) { - info = this.db.collection(domain) + info = this.db.collection(domain as string) this.collections.set(domain, info) } return info @@ -177,7 +177,7 @@ export class DBCollectionHelper implements DomainHelperOperations { async create (domain: Domain): Promise { if (this.collections.get(domain) === undefined) { - const coll = this.db.collection(domain) + const coll = this.db.collection(domain as string) this.collections.set(domain, coll) while (true) { diff --git a/foundations/server/packages/postgres/src/storage.ts b/foundations/server/packages/postgres/src/storage.ts index 0e0966112c..2850c4bcc4 100644 --- a/foundations/server/packages/postgres/src/storage.ts +++ b/foundations/server/packages/postgres/src/storage.ts @@ -111,7 +111,7 @@ import { simpleEscape, toWithLookup } from './utils' -async function* createCursorGenerator ( +async function * createCursorGenerator ( client: postgres.Sql, sql: string, params: any, @@ -850,9 +850,9 @@ abstract class PostgresAdapterBase implements DbAdapter { shouldCreate: boolean = true ): | { - obj: any - key: string - } + obj: any + key: string + } | undefined { const path = fullPath.split('.') for (let i = 0; i < path.length; i++) { diff --git a/foundations/server/packages/postgres/src/utils.ts b/foundations/server/packages/postgres/src/utils.ts index 333dceaa77..c747437137 100644 --- a/foundations/server/packages/postgres/src/utils.ts +++ b/foundations/server/packages/postgres/src/utils.ts @@ -73,9 +73,9 @@ export async function createTables ( loadedTables = loadedTables.size === 0 ? new Set( - ( - await ctx.with('load-table', {}, () => - client.unsafe(` + ( + await ctx.with('load-table', {}, () => + client.unsafe(` SELECT table_name FROM information_schema.tables WHERE table_schema NOT IN ('pg_catalog', 'information_schema') @@ -83,9 +83,9 @@ export async function createTables ( AND table_name NOT LIKE 'cluster_%' AND table_name NOT LIKE 'kv_%' AND table_name NOT LIKE 'node_%'`) - ) - ).map((it) => it.table_name) - ) + ) + ).map((it) => it.table_name) + ) : loadedTables console.log('load-table', platformNowDiff(t)) @@ -105,7 +105,7 @@ export async function createTables ( if (domainsToCreate.length > 0) { await retryTxn(client, async (client) => { for (const domain of domainsToCreate) { - await ctx.with('create-table', {}, () => createTable(client, domain)) + await ctx.with('create-table', {}, () => createTable(client as unknown as postgres.Sql, domain)) loadedDomains.add(url + domain) } }) @@ -273,9 +273,9 @@ export function parseUpdate ( ops: DocumentUpdate | MixinUpdate, schemaFields: SchemaAndFields ): { - extractedFields: Partial - remainingData: Partial -} { + extractedFields: Partial + remainingData: Partial + } { const extractedFields: Partial = {} const remainingData: Partial = {} @@ -424,7 +424,7 @@ export function filterProjection (data: any, projection: Projecti // Determine if this is an inclusion or exclusion projection // Exclusion: has any field with value 0 // Inclusion: has any field with value 1 - const projectionValues = Object.values(projection) + const projectionValues = Object.values(projection as any) const hasExclusion = projectionValues.some((v) => v === 0) const hasInclusion = projectionValues.some((v) => v === 1 || typeof v === 'object') diff --git a/foundations/server/packages/server-storage/src/fallback.ts b/foundations/server/packages/server-storage/src/fallback.ts index 7d6f22f4a9..354adff9c8 100644 --- a/foundations/server/packages/server-storage/src/fallback.ts +++ b/foundations/server/packages/server-storage/src/fallback.ts @@ -77,11 +77,8 @@ export class FallbackStorageAdapter implements StorageAdapter, StorageAdapterEx next: async () => { while (true) { if (iterator === undefined && adapters.length > 0) { - const nextProvider = adapters.shift() - if (nextProvider !== undefined) { - provider = nextProvider - iterator = await provider.adapter.listStream(ctx, wsIds) - } + provider = adapters.shift() as NamedStorageAdapter + iterator = await provider.adapter.listStream(ctx, wsIds) } if (iterator === undefined) { return [] diff --git a/foundations/server/packages/server-storage/src/tests/aggregator.spec.ts b/foundations/server/packages/server-storage/src/tests/aggregator.spec.ts index 02c322116c..8d75460c5f 100644 --- a/foundations/server/packages/server-storage/src/tests/aggregator.spec.ts +++ b/foundations/server/packages/server-storage/src/tests/aggregator.spec.ts @@ -47,7 +47,7 @@ describe('aggregator tests', () => { const stat2 = await aggr.stat(testCtx, wsIds1, 'test') expect(stat2?.provider).toEqual('mem2') - const dta = Buffer.concat(await aggr.read(testCtx, wsIds1, 'test')).toString() + const dta = Buffer.concat((await aggr.read(testCtx, wsIds1, 'test')) as any).toString() expect(dta).toEqual('data2') }) }) diff --git a/foundations/server/packages/server-storage/src/tests/memAdapters.ts b/foundations/server/packages/server-storage/src/tests/memAdapters.ts index f0a9161c2c..a298a667e2 100644 --- a/foundations/server/packages/server-storage/src/tests/memAdapters.ts +++ b/foundations/server/packages/server-storage/src/tests/memAdapters.ts @@ -99,7 +99,7 @@ export class MemStorageAdapter implements StorageAdapter { }) }) } - const data = Buffer.concat(buffer) + const data = Buffer.concat(buffer as any) const dataId = getDataId(wsIds) const dta = { _class: core.class.Blob, diff --git a/foundations/server/packages/server/src/__tests__/sessionManager.test.ts b/foundations/server/packages/server/src/__tests__/sessionManager.test.ts index 7b134eaa59..77b51af923 100644 --- a/foundations/server/packages/server/src/__tests__/sessionManager.test.ts +++ b/foundations/server/packages/server/src/__tests__/sessionManager.test.ts @@ -244,7 +244,7 @@ describe('TSessionManager', () => { it('should count regular users correctly', () => { const mockSession = { session: { - getUser: jest.fn().mockReturnValue('user-uuid-123') + getUser: jest.fn().mockReturnValue('user-uuid-123' as AccountUuid) } } @@ -279,17 +279,17 @@ describe('TSessionManager', () => { }, { session: { - getUser: jest.fn().mockReturnValue('user-1') + getUser: jest.fn().mockReturnValue('user-1' as AccountUuid) } }, { session: { - getUser: jest.fn().mockReturnValue('b6996120-416f-49cd-841e-e4a5d2e49c9b') + getUser: jest.fn().mockReturnValue('b6996120-416f-49cd-841e-e4a5d2e49c9b' as AccountUuid) } }, { session: { - getUser: jest.fn().mockReturnValue('user-2') + getUser: jest.fn().mockReturnValue('user-2' as AccountUuid) } } ] @@ -322,7 +322,7 @@ describe('TSessionManager', () => { [ 'session-3', { - session: { getUser: jest.fn().mockReturnValue('other-user') } + session: { getUser: jest.fn().mockReturnValue('other-user' as AccountUuid) } } ] ]) @@ -339,7 +339,7 @@ describe('TSessionManager', () => { [ 'session-1', { - session: { getUser: jest.fn().mockReturnValue('other-user') } + session: { getUser: jest.fn().mockReturnValue('other-user' as AccountUuid) } } ] ]) @@ -368,7 +368,7 @@ describe('TSessionManager', () => { const now = Date.now() const mockSession = { session: { - getUser: jest.fn().mockReturnValue('user-1'), + getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), lastRequest: now, requests: new Map() }, @@ -398,7 +398,7 @@ describe('TSessionManager', () => { sessionManager.sessions.set('ws-healthy', { session: { - getUser: jest.fn().mockReturnValue('user-healthy'), + getUser: jest.fn().mockReturnValue('user-healthy' as AccountUuid), lastRequest: now, requests: new Map() } @@ -415,7 +415,7 @@ describe('TSessionManager', () => { // Add 1 hung session and 2 healthy sessions (33% hung, above 25% warn threshold) sessionManager.sessions.set('ws-hung', { session: { - getUser: jest.fn().mockReturnValue('user-hung'), + getUser: jest.fn().mockReturnValue('user-hung' as AccountUuid), lastRequest: longTimeAgo, requests: new Map() } @@ -423,7 +423,7 @@ describe('TSessionManager', () => { sessionManager.sessions.set('ws-healthy-1', { session: { - getUser: jest.fn().mockReturnValue('user-1'), + getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), lastRequest: now, requests: new Map() } @@ -431,7 +431,7 @@ describe('TSessionManager', () => { sessionManager.sessions.set('ws-healthy-2', { session: { - getUser: jest.fn().mockReturnValue('user-2'), + getUser: jest.fn().mockReturnValue('user-2' as AccountUuid), lastRequest: now, requests: new Map() } @@ -467,7 +467,7 @@ describe('TSessionManager', () => { sessionManager.sessions.set('ws-1', { session: { - getUser: jest.fn().mockReturnValue('user-1'), + getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), lastRequest: now, requests } @@ -482,7 +482,7 @@ describe('TSessionManager', () => { describe('checkRate', () => { it('should check rate limit for regular user', () => { const mockSession = { - getUser: jest.fn().mockReturnValue('user-1'), + getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), token: { extra: {} }, workspace: { uuid: 'ws-1' as WorkspaceUuid } } as any @@ -520,7 +520,7 @@ describe('TSessionManager', () => { 'session-1', { session: { - getUser: jest.fn().mockReturnValue('user-1'), + getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), current: { find: 10, tx: 5 }, mins5: { find: 50, tx: 25 }, total: { find: 100, tx: 50 } @@ -554,7 +554,7 @@ describe('TSessionManager', () => { 'session-1', { session: { - getUser: jest.fn().mockReturnValue('user-1'), + getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), current: { find: 0, tx: 0 }, mins5: { find: 0, tx: 0 }, total: { find: 0, tx: 0 } @@ -569,7 +569,7 @@ describe('TSessionManager', () => { 'session-2', { session: { - getUser: jest.fn().mockReturnValue('user-1'), // Same user + getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), // Same user current: { find: 0, tx: 0 }, mins5: { find: 0, tx: 0 }, total: { find: 0, tx: 0 } @@ -584,7 +584,7 @@ describe('TSessionManager', () => { 'session-3', { session: { - getUser: jest.fn().mockReturnValue('user-2'), // Different user + getUser: jest.fn().mockReturnValue('user-2' as AccountUuid), // Different user current: { find: 0, tx: 0 }, mins5: { find: 0, tx: 0 }, total: { find: 0, tx: 0 } @@ -875,7 +875,7 @@ describe('TSessionManager', () => { 'session-1', { session: { - getUser: jest.fn().mockReturnValue('user-1'), + getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), getUserSocialIds: jest.fn().mockReturnValue(['social-1', 'social-2']), getRawAccount: jest.fn().mockReturnValue({ role: AccountRole.User }) } @@ -903,7 +903,7 @@ describe('TSessionManager', () => { sessionManager.workspaces.set('ws-1' as WorkspaceUuid, mockWorkspace as any) const extraSession = { - getUser: jest.fn().mockReturnValue('user-extra'), + getUser: jest.fn().mockReturnValue('user-extra' as AccountUuid), getUserSocialIds: jest.fn().mockReturnValue(['social-extra']), getRawAccount: jest.fn().mockReturnValue({ role: AccountRole.User }) } as any @@ -947,7 +947,7 @@ describe('TSessionManager', () => { it('should handle rate limiting edge cases', () => { const mockSession = { - getUser: jest.fn().mockReturnValue('user-1'), + getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), token: { extra: {} }, workspace: { uuid: 'ws-1' as WorkspaceUuid } } as any @@ -1082,17 +1082,17 @@ describe('TSessionManager', () => { }, { session: { - getUser: jest.fn().mockReturnValue('regular-user-1') + getUser: jest.fn().mockReturnValue('regular-user-1' as AccountUuid) } }, { session: { - getUser: jest.fn().mockReturnValue('b6996120-416f-49cd-841e-e4a5d2e49c9b') + getUser: jest.fn().mockReturnValue('b6996120-416f-49cd-841e-e4a5d2e49c9b' as AccountUuid) } }, { session: { - getUser: jest.fn().mockReturnValue('regular-user-2') + getUser: jest.fn().mockReturnValue('regular-user-2' as AccountUuid) } }, { @@ -1115,14 +1115,14 @@ describe('TSessionManager', () => { const workspaceId = 'ws-broadcast' as WorkspaceUuid const mockSession1 = { session: { - getUser: jest.fn().mockReturnValue('user-1'), + getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), broadcast: jest.fn() }, socket: { id: 'socket-1' } } const mockSession2 = { session: { - getUser: jest.fn().mockReturnValue('user-2'), + getUser: jest.fn().mockReturnValue('user-2' as AccountUuid), broadcast: jest.fn() }, socket: { id: 'socket-2' } @@ -1158,7 +1158,7 @@ describe('TSessionManager', () => { } const mockSession2 = { session: { - getUser: jest.fn().mockReturnValue('user-2'), + getUser: jest.fn().mockReturnValue('user-2' as AccountUuid), broadcast: jest.fn() }, socket: { id: 'socket-2' } @@ -1194,7 +1194,7 @@ describe('TSessionManager', () => { } const mockSession2 = { session: { - getUser: jest.fn().mockReturnValue('user-2'), + getUser: jest.fn().mockReturnValue('user-2' as AccountUuid), broadcast: jest.fn() }, socket: { id: 'socket-2' } @@ -1222,7 +1222,7 @@ describe('TSessionManager', () => { const workspaceId = 'ws-broadcast' as WorkspaceUuid const mockSession = { session: { - getUser: jest.fn().mockReturnValue('user-1'), + getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), broadcast: jest.fn() }, socket: { id: 'socket-1' } @@ -1356,7 +1356,7 @@ describe('TSessionManager', () => { it('should broadcast to all sessions', () => { const mockSession1 = { session: { - getUser: jest.fn().mockReturnValue('user-1'), + getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), binaryMode: false, useCompression: false }, @@ -1366,7 +1366,7 @@ describe('TSessionManager', () => { } const mockSession2 = { session: { - getUser: jest.fn().mockReturnValue('user-2'), + getUser: jest.fn().mockReturnValue('user-2' as AccountUuid), binaryMode: false, useCompression: false }, @@ -1404,7 +1404,7 @@ describe('TSessionManager', () => { } const mockSession2 = { session: { - getUser: jest.fn().mockReturnValue('user-2'), + getUser: jest.fn().mockReturnValue('user-2' as AccountUuid), binaryMode: false, useCompression: false }, @@ -1441,7 +1441,7 @@ describe('TSessionManager', () => { } const mockSession2 = { session: { - getUser: jest.fn().mockReturnValue('user-2'), + getUser: jest.fn().mockReturnValue('user-2' as AccountUuid), binaryMode: false, useCompression: false }, @@ -1467,7 +1467,7 @@ describe('TSessionManager', () => { it('should not broadcast if workspace in maintenance', () => { const mockSession = { session: { - getUser: jest.fn().mockReturnValue('user-1'), + getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), binaryMode: false, useCompression: false }, @@ -1494,7 +1494,7 @@ describe('TSessionManager', () => { const requestId = 'req-123' const mockPipeline = {} as any const mockSession = { - getUser: jest.fn().mockReturnValue('user-1'), + getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), getRawAccount: jest.fn().mockReturnValue({ primarySocialId: 'social-1' as any }), workspace: { uuid: 'ws-1' as WorkspaceUuid }, binaryMode: true, @@ -1536,7 +1536,7 @@ describe('TSessionManager', () => { sendPong: jest.fn() } as any const mockSession = { - getUser: jest.fn().mockReturnValue('user-1'), + getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), getRawAccount: jest.fn().mockReturnValue({ primarySocialId: 'social-1' as any }), workspace: { uuid: 'ws-1' as WorkspaceUuid }, requests: new Map() @@ -1684,7 +1684,7 @@ describe('TSessionManager', () => { 'session-1', { session: { - getUser: jest.fn().mockReturnValue('user-1'), + getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), current: { find: 5, tx: 3 }, mins5: { find: 50, tx: 30 } } @@ -1720,7 +1720,7 @@ describe('TSessionManager', () => { const mockSession = { session: { - getUser: jest.fn().mockReturnValue('user-hung'), + getUser: jest.fn().mockReturnValue('user-hung' as AccountUuid), lastRequest: longTimeAgo, lastPing: longTimeAgo, requests: new Map(), @@ -1751,7 +1751,7 @@ describe('TSessionManager', () => { const mockSession = { session: { - getUser: jest.fn().mockReturnValue('user-idle'), + getUser: jest.fn().mockReturnValue('user-idle' as AccountUuid), lastRequest: idleTime, lastPing: idleTime, requests: new Map(), diff --git a/foundations/server/packages/server/src/client.ts b/foundations/server/packages/server/src/client.ts index 10eff3be1e..3f3700d5b2 100644 --- a/foundations/server/packages/server/src/client.ts +++ b/foundations/server/packages/server/src/client.ts @@ -342,10 +342,10 @@ export class ClientSession implements Session { ctx: ClientSessionCtx, tx: Tx ): Promise<{ - result: TxResult - broadcastPromise: Promise - asyncsPromise: Promise | undefined - }> { + result: TxResult + broadcastPromise: Promise + asyncsPromise: Promise | undefined + }> { this.lastRequest = Date.now() this.total.tx++ this.current.tx++ @@ -541,10 +541,10 @@ export class ClientSession implements Session { domain: OperationDomain, params: DomainParams ): Promise<{ - result: DomainResult - broadcastPromise: Promise - asyncsPromise: Promise | undefined - }> { + result: DomainResult + broadcastPromise: Promise + asyncsPromise: Promise | undefined + }> { this.lastRequest = Date.now() this.total.find++ this.current.find++ diff --git a/models/calendar/src/index.ts b/models/calendar/src/index.ts index c4be096ab5..887a29048f 100644 --- a/models/calendar/src/index.ts +++ b/models/calendar/src/index.ts @@ -104,44 +104,44 @@ export class TEvent extends TAttachedDoc implements Event { declare space: Ref @Prop(TypeRef(calendar.class.Calendar), calendar.string.Calendar) - calendar!: Ref + calendar!: Ref eventId!: string @Prop(TypeString(), calendar.string.Title) @Index(IndexKind.FullText) - title!: string + title!: string @Prop(TypeMarkup(), calendar.string.Description) @Index(IndexKind.FullText) - description!: Markup + description!: Markup @Prop(TypeString(), calendar.string.Location, { icon: calendar.icon.Location }) @Index(IndexKind.FullText) - location?: string + location?: string @Prop(TypeBoolean(), calendar.string.AllDay) @ReadOnly() - allDay!: boolean + allDay!: boolean @Prop(TypeDate(DateRangeMode.DATETIME), calendar.string.Date) - date!: Timestamp + date!: Timestamp @Prop(TypeDate(DateRangeMode.DATETIME), calendar.string.DueTo) - dueDate!: Timestamp + dueDate!: Timestamp @Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: number + attachments?: number @Prop(ArrOf(TypeRef(contact.class.Contact)), calendar.string.Participants) - participants!: Ref[] + participants!: Ref[] @Prop(ArrOf(TypeTimestamp()), calendar.string.Reminders) - reminders?: number[] + reminders?: number[] @Prop(ArrOf(TypeString()), calendar.string.ExternalParticipants) @Index(IndexKind.Indexed) - externalParticipants?: string[] + externalParticipants?: string[] access!: AccessLevel @@ -150,7 +150,7 @@ export class TEvent extends TAttachedDoc implements Event { timeZone?: string @Index(IndexKind.Indexed) - user!: PersonId + user!: PersonId blockTime!: boolean } diff --git a/models/card/src/index.ts b/models/card/src/index.ts index 9b63775b1e..8726893bb5 100644 --- a/models/card/src/index.ts +++ b/models/card/src/index.ts @@ -99,10 +99,10 @@ export class TMasterTag extends TClass implements MasterTag { removed?: boolean @Prop(TypeBoolean(), card.string.SingleColumn) - singleColumn?: boolean + singleColumn?: boolean @Prop(TypeBoolean(), card.string.BaseType) - baseType?: boolean + baseType?: boolean } @Model(card.class.Tag, core.class.Mixin) @@ -124,36 +124,36 @@ export class TCard extends TDoc implements Card { @Prop(TypeString(), core.string.Name) @Index(IndexKind.FullText) - title!: string + title!: string @Prop(TypeCollaborativeDoc(), card.string.Content) - content!: MarkupBlobRef + content!: MarkupBlobRef blobs!: Blobs @Prop(TypeRef(card.class.Card), card.string.Parent) - parent?: Ref | null + parent?: Ref | null @Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: number + attachments?: number @Prop(TypeRank(), core.string.Rank) @Hidden() - rank!: Rank + rank!: Rank @Prop(Collection(time.class.ToDo), getEmbeddedLabel('Action Items')) - todos?: CollectionSize + todos?: CollectionSize @Prop(TypeString(), view.string.Icon) @Hidden() - icon?: Asset + icon?: Asset @Prop(TypeNumber(), view.string.Color) @Hidden() - color?: number + color?: number @Hidden() - readonly?: boolean + readonly?: boolean children?: number @@ -161,17 +161,17 @@ export class TCard extends TDoc implements Card { @Hidden() @ReadOnly() - peerId?: string + peerId?: string @Prop(Collection(chunter.class.ChatMessage), chunter.string.Comments) - comments?: number + comments?: number } @Model(card.class.CardSpace, core.class.TypedSpace, DOMAIN_SPACE) @UX(core.string.Space) export class TCardSpace extends TTypedSpace implements CardSpace { @Prop(ArrOf(TypeRef(card.class.MasterTag)), card.string.MasterTags) - types!: Ref[] + types!: Ref[] } @Model(card.class.MasterTagEditorSection, core.class.Doc, DOMAIN_MODEL) diff --git a/models/chunter/src/migration.ts b/models/chunter/src/migration.ts index 02d8bfc0df..87ed38f030 100644 --- a/models/chunter/src/migration.ts +++ b/models/chunter/src/migration.ts @@ -172,7 +172,7 @@ async function removeBacklinks (client: MigrationClient): Promise { } await client.deleteMany(DOMAIN_ACTIVITY, { _class: activity.class.DocUpdateMessage, - objectClass: 'chunter:class:Backlink' + objectClass: 'chunter:class:Backlink' as Ref> }) } diff --git a/models/controlled-documents/src/types.ts b/models/controlled-documents/src/types.ts index 695f1ae266..ec58da6fd3 100644 --- a/models/controlled-documents/src/types.ts +++ b/models/controlled-documents/src/types.ts @@ -116,7 +116,7 @@ export class TDocumentSpaceType extends TSpaceType implements DocumentSpaceType declare targetClass: Ref> @Prop(TypeBoolean(), getEmbeddedLabel('Projects')) - projects!: boolean + projects!: boolean } @Model(documents.class.DocumentSpaceTypeDescriptor, core.class.SpaceTypeDescriptor) @@ -140,23 +140,23 @@ export class TProject extends TDoc implements Project { @Prop(TypeString(), documents.string.Name) @Index(IndexKind.FullText) @ReadOnly() - name!: string + name!: string @Prop(TypeBoolean(), documents.string.Readonly) @ReadOnly() @Hidden() - readonly!: boolean + readonly!: boolean } @Model(documents.class.DocumentMeta, core.class.Doc, DOMAIN_DOCUMENTS) @UX(documents.string.ControlledDocument, documents.icon.Document) export class TDocumentMeta extends TDoc implements DocumentMeta { @Prop(Collection(documents.class.Document), documents.string.Documents) - documents!: CollectionSize + documents!: CollectionSize @Prop(TypeString(), documents.string.Title) @Index(IndexKind.FullText) - title!: string + title!: string } @Model(documents.class.ProjectMeta, core.class.Doc, DOMAIN_DOCUMENTS) @@ -164,31 +164,31 @@ export class TDocumentMeta extends TDoc implements DocumentMeta { export class TProjectMeta extends TDoc implements ProjectMeta { @Prop(TypeRef(documents.class.Project), documents.string.Project) @Index(IndexKind.Indexed) - project!: Ref + project!: Ref @Prop(TypeRef(documents.class.DocumentMeta), documents.string.Document) @Index(IndexKind.Indexed) @Hidden() - meta!: Ref + meta!: Ref @Prop(ArrOf(TypeRef(documents.class.DocumentMeta)), documents.string.Path) - path!: Ref[] + path!: Ref[] @Prop(TypeRef(documents.class.DocumentMeta), documents.string.Parent) @Index(IndexKind.Indexed) - parent!: Ref + parent!: Ref // @Prop(TypeRef(documents.class.Document), documents.string.Document) // @Index(IndexKind.Indexed) // head!: Ref @Prop(Collection(documents.class.ProjectDocument), documents.string.Documents) - documents!: CollectionSize + documents!: CollectionSize @Prop(TypeRank(), core.string.Rank) @Index(IndexKind.Indexed) @Hidden() - rank!: Rank + rank!: Rank } @Model(documents.class.ProjectDocument, core.class.AttachedDoc, DOMAIN_DOCUMENTS) @@ -210,15 +210,15 @@ export class TProjectDocument extends TAttachedDoc implements ProjectDocument { @Prop(TypeRef(documents.class.Project), documents.string.Project) @Index(IndexKind.Indexed) - project!: Ref + project!: Ref @Prop(TypeRef(documents.class.Project), documents.string.Project) @Hidden() - initial!: Ref + initial!: Ref @Prop(TypeRef(documents.class.Document), documents.string.Document) @Index(IndexKind.Indexed) - document!: Ref + document!: Ref } @Model(documents.class.Document, core.class.Doc, DOMAIN_DOCUMENTS) @@ -231,64 +231,64 @@ export class TDocument extends TDoc implements Document { @Prop(TypeRef(documents.mixin.DocumentTemplate), documents.string.DocumentTemplate) @Hidden() - template?: Ref + template?: Ref @Prop(TypeString(), documents.string.Title) @Index(IndexKind.FullText) - title!: string + title!: string @Prop(TypeString(), documents.string.Title) @Index(IndexKind.FullText) - code!: string + code!: string @Prop(TypeString(), documents.string.Code) @Index(IndexKind.FullText) - prefix!: string + prefix!: string @Prop(TypeNumber(), documents.string.Number) @Hidden() - seqNumber!: number + seqNumber!: number @Prop(TypeNumber(), documents.string.Major) - major!: number + major!: number @Prop(TypeNumber(), documents.string.Minor) - minor!: number + minor!: number @Prop(TypeRef(documents.class.DocumentCategory), documents.string.Category) - category?: Ref + category?: Ref @Prop(TypeRef(contact.mixin.Employee), documents.string.Author) - author?: Ref + author?: Ref @Prop(TypeRef(contact.mixin.Employee), documents.string.Owner) - owner?: Ref + owner?: Ref @Prop(TypeDocumentState(), documents.string.Status) - state!: DocumentState + state!: DocumentState @Prop(TypeCollaborativeDoc(), documents.string.CollaborativeDocument) - content!: MarkupBlobRef | null + content!: MarkupBlobRef | null @Prop(Collection(tags.class.TagReference), documents.string.Labels) - labels?: CollectionSize + labels?: CollectionSize @Prop(TypeString(), documents.string.MetaAbstract) @Index(IndexKind.FullText) - abstract?: string + abstract?: string @Prop(TypeNumber(), documents.string.Number) @Hidden() - commentSequence!: number + commentSequence!: number @Prop(Collection(documents.class.DocumentComment), chunter.string.Comments) - comments?: CollectionSize + comments?: CollectionSize @Prop(Collection(documents.class.DocumentSnapshot), documents.string.Snapshots) - snapshots?: CollectionSize + snapshots?: CollectionSize @Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: CollectionSize + attachments?: CollectionSize } @Model(documents.class.HierarchyDocument, documents.class.Document) @@ -297,16 +297,16 @@ export class THierarchyDocument extends TDocument implements HierarchyDocument { @Prop(TypeRef(documents.class.DocumentMeta), core.string.AttachedTo) @Index(IndexKind.Indexed) @Hidden() - attachedTo!: Ref + attachedTo!: Ref @Prop(TypeRef(core.class.Class), core.string.AttachedToClass) @Index(IndexKind.Indexed) @Hidden() - attachedToClass!: Ref> + attachedToClass!: Ref> @Prop(TypeString(), core.string.Collection) @Hidden() - collection!: 'documents' + collection!: 'documents' } @Mixin(documents.mixin.DocumentTemplate, documents.class.Document) @@ -314,44 +314,44 @@ export class THierarchyDocument extends TDocument implements HierarchyDocument { export class TDocumentTemplate extends TDocument implements DocumentTemplate { @Prop(TypeNumber(), core.string.Collection) @Hidden() - sequence!: number + sequence!: number @Prop(TypeString(), documents.string.DocumentPrefix) @Index(IndexKind.FullText) - docPrefix!: string + docPrefix!: string } @Mixin(documents.mixin.DocumentTraining, documents.class.Document) @UX(training.string.Training, training.icon.Training) export class TDocumentTraining extends TDocument implements DocumentTraining { @Prop(TypeBoolean(), documents.string.DocumentTrainingEnabled, { defaultValue: false }) - enabled: boolean = false + enabled: boolean = false @Prop(TypeRef(training.class.Training), training.string.Training, { defaultValue: null }) - training: Ref | null = null + training: Ref | null = null @Prop(ArrOf(TypeRef(core.class.Role)), training.string.TrainingRequestRoles, { defaultValue: [] }) - roles: Array> = [] + roles: Array> = [] @Prop(ArrOf(TypeRef(contact.mixin.Employee)), training.string.TrainingRequestTrainees, { defaultValue: [] }) - trainees: TrainingRequest['trainees'] = [] + trainees: TrainingRequest['trainees'] = [] @Prop(TypeNumber(), training.string.TrainingRequestMaxAttempts, { defaultValue: null }) - maxAttempts: TrainingRequest['maxAttempts'] = null + maxAttempts: TrainingRequest['maxAttempts'] = null @Prop(TypeNumber(), documents.string.DocumentTrainingDueDays, { defaultValue: null }) - dueDays: number | null = null + dueDays: number | null = null } @Mixin(documents.mixin.DocumentAttachment, attachment.class.Attachment) export class TDocumentAttachment extends TAttachment implements DocumentAttachment { @Prop(TypeString(), getEmbeddedLabel('State')) @Hidden() - state?: DocumentAttachmentState + state?: DocumentAttachmentState @Prop(TypeRecord(), getEmbeddedLabel('DeletedIn')) @Hidden() - deletedIn?: { major: number, minor: number } + deletedIn?: { major: number, minor: number } } @Model(documents.class.DocumentCategory, core.class.Doc, DOMAIN_DOCUMENTS) @@ -364,18 +364,18 @@ export class TDocumentCategory extends TDoc implements DocumentCategory { @Prop(TypeString(), documents.string.Code) @Index(IndexKind.FullText) - code!: string + code!: string @Prop(TypeString(), documents.string.Title) @Index(IndexKind.FullText) - title!: string + title!: string @Prop(TypeMarkup(), documents.string.Description) @Index(IndexKind.FullText) - description?: string + description?: string @Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: CollectionSize + attachments?: CollectionSize } @Model(documents.class.ControlledDocument, documents.class.HierarchyDocument) @@ -390,39 +390,39 @@ export class TDocumentCategory extends TDoc implements DocumentCategory { export class TControlledDocument extends THierarchyDocument implements ControlledDocument { @Prop(Collection(documents.class.DocumentRequest), documents.string.Requests) @Hidden() - requests!: CollectionSize + requests!: CollectionSize @Prop(ArrOf(TypeRef(contact.mixin.Employee)), documents.string.Reviewers) - reviewers!: Ref[] + reviewers!: Ref[] @Prop(ArrOf(TypeRef(contact.mixin.Employee)), documents.string.Approvers) - approvers!: Ref[] + approvers!: Ref[] @Prop(ArrOf(TypeRef(contact.mixin.Employee)), documents.string.ExternalApprovers) - externalApprovers!: Ref[] + externalApprovers!: Ref[] @Prop(ArrOf(TypeRef(contact.mixin.Employee)), documents.string.CoAuthors) - coAuthors!: Ref[] + coAuthors!: Ref[] @Prop(TypeNumber(), documents.string.ReviewInterval) - reviewInterval?: number + reviewInterval?: number @Prop(TypeControlledDocumentState(), documents.string.ControlledStatus) - controlledState?: ControlledDocumentState + controlledState?: ControlledDocumentState @Prop(TypeDate(DateRangeMode.DATE), documents.string.EffectiveDate) - effectiveDate?: Timestamp + effectiveDate?: Timestamp @Prop(TypeDate(DateRangeMode.DATE), documents.string.PlannedEffectiveDate) @Hidden() - plannedEffectiveDate!: Timestamp + plannedEffectiveDate!: Timestamp @Prop(TypeRef(documents.class.Document), documents.string.ChangeControl) @Hidden() - changeControl!: Ref + changeControl!: Ref @Prop(Collection(time.class.ToDo), getEmbeddedLabel('Action Items')) - todos?: CollectionSize + todos?: CollectionSize } @Model(documents.class.ChangeControl, core.class.Doc, DOMAIN_DOCUMENTS) @@ -430,50 +430,50 @@ export class TControlledDocument extends THierarchyDocument implements Controlle export class TChangeControl extends TDoc implements ChangeControl { @Prop(TypeString(), documents.string.Description) @Index(IndexKind.FullText) - description!: string + description!: string @Prop(TypeString(), documents.string.Reason) @Index(IndexKind.FullText) - reason!: string + reason!: string @Prop(TypeString(), documents.string.ImpactAnalysis) - impact!: string + impact!: string @Prop(ArrOf(TypeRef(documents.class.Document)), documents.string.ImpactedDocuments) - impactedDocuments!: Ref[] + impactedDocuments!: Ref[] } @Model(documents.class.DocumentSnapshot, core.class.AttachedDoc, DOMAIN_DOCUMENTS) @UX(documents.string.Snapshot) export class TDocumentSnapshot extends TAttachedDoc implements DocumentSnapshot { @Prop(TypeString(), documents.string.Name) - name?: string + name?: string @Prop(TypeCollaborativeDoc(), documents.string.CollaborativeDocument) @Hidden() - content!: MarkupBlobRef | null + content!: MarkupBlobRef | null @Prop(TypeDocumentState(), documents.string.Status) - state?: DocumentState + state?: DocumentState } @Model(documents.class.ControlledDocumentSnapshot, documents.class.DocumentSnapshot) @UX(documents.string.ControlledSnapshot) export class TControlledDocumentSnapshot extends TDocumentSnapshot implements ControlledDocumentSnapshot { @Prop(TypeControlledDocumentState(), documents.string.Status) - controlledState!: ControlledDocumentState + controlledState!: ControlledDocumentState } @Model(documents.class.DocumentComment, chunter.class.ChatMessage) export class TDocumentComment extends TChatMessage implements DocumentComment { @Prop(TypeString(), documents.string.ID) - nodeId?: string + nodeId?: string @Prop(TypeBoolean(), documents.string.Resolve) - resolved?: boolean + resolved?: boolean @Prop(TypeNumber(), documents.string.Index) - index?: number + index?: number } @Model(documents.class.DocumentRequest, request.class.Request) diff --git a/models/core/src/core.ts b/models/core/src/core.ts index 8aa7eb1d49..2839685927 100644 --- a/models/core/src/core.ts +++ b/models/core/src/core.ts @@ -89,7 +89,7 @@ export class TObj implements Obj { @Prop(TypeRef(core.class.Class), core.string.ClassLabel) @Index(IndexKind.Indexed) @Hidden() - _class!: Ref> + _class!: Ref> } @Model(core.class.Doc, core.class.Obj) @@ -98,29 +98,29 @@ export class TDoc extends TObj implements Doc { @Prop(TypeRef(core.class.Doc), core.string.Id) @Hidden() // @Index(IndexKind.Indexed) // - automatically indexed by default. - _id!: Ref + _id!: Ref @Prop(TypeRef(core.class.Space), core.string.Space) @Index(IndexKind.Indexed) @Hidden() - space!: Ref + space!: Ref @Prop(TypeTimestamp(), core.string.ModifiedDate) @Index(IndexKind.Indexed) - modifiedOn!: Timestamp + modifiedOn!: Timestamp @Prop(TypePersonId(), core.string.ModifiedBy) @Index(IndexKind.Indexed) - modifiedBy!: PersonId + modifiedBy!: PersonId @Prop(TypePersonId(), core.string.CreatedBy) @Index(IndexKind.Indexed) - createdBy!: PersonId + createdBy!: PersonId @Prop(TypeTimestamp(), core.string.CreatedDate) @ReadOnly() @Index(IndexKind.IndexedDsc) - createdOn!: Timestamp + createdOn!: Timestamp } @Model(core.class.AttachedDoc, core.class.Doc) @@ -128,16 +128,16 @@ export class TAttachedDoc extends TDoc implements AttachedDoc { @Prop(TypeRef(core.class.Doc), core.string.AttachedTo) @Index(IndexKind.Indexed) @Hidden() - attachedTo!: Ref + attachedTo!: Ref @Prop(TypeRef(core.class.Class), core.string.AttachedToClass) @Index(IndexKind.Indexed) @Hidden() - attachedToClass!: Ref> + attachedToClass!: Ref> @Prop(TypeString(), core.string.Collection) @Hidden() - collection!: string + collection!: string } @Model(core.class.Association, core.class.Doc, DOMAIN_MODEL) @@ -169,16 +169,16 @@ export class TRelation extends TDoc implements Relation { export class TRelationMetadata extends TDoc implements RelationMetadata { @Prop(TypeRef(core.class.Class), core.string.Class) @Index(IndexKind.Indexed) - sourceClass!: Ref> + sourceClass!: Ref> @Prop(TypeRef(core.class.Class), core.string.TargetClass) - targetClass!: Ref> + targetClass!: Ref> @Prop(TypeString(), core.string.ClassPropertyLabel) - field!: string + field!: string @Prop(TypeString(), core.string.Description) - direction?: 'forward' | 'inverse' + direction?: 'forward' | 'inverse' } @Model(core.class.Blob, core.class.Doc, DOMAIN_BLOB) @@ -187,27 +187,27 @@ export class TBlob extends TDoc implements Blob { @Prop(TypeString(), core.string.Blob) @ReadOnly() // @Index(IndexKind.Indexed) - provider!: string + provider!: string @Prop(TypeString(), core.string.BlobContentType) @ReadOnly() - contentType!: string + contentType!: string @Prop(TypeString(), core.string.BlobStorageId) @ReadOnly() - storageId!: string + storageId!: string @Prop(TypeString(), core.string.BlobEtag) @ReadOnly() - etag!: string + etag!: string @Prop(TypeString(), core.string.BlobVersion) @ReadOnly() - version!: string + version!: string @Prop(TypeFileSize(), core.string.BlobSize) @ReadOnly() - size!: number + size!: number } @UX(core.string.ClassLabel) @@ -216,7 +216,7 @@ export class TClass extends TDoc implements Class { kind!: ClassifierKind @Prop(TypeIntlString(), core.string.ClassPropertyLabel) - label!: IntlString + label!: IntlString extends!: Ref> domain!: Domain @@ -381,16 +381,16 @@ export class TFullTextSearchContext extends TDoc implements FullTextSearchContex @MMixin(core.mixin.ConfigurationElement, core.class.Class) export class TConfigurationElement extends TClass implements ConfigurationElement { @Prop(TypeIntlString(), core.string.Private) - title!: IntlString + title!: IntlString @Prop(TypeIntlString(), core.string.Private) - group!: IntlString + group!: IntlString } @Model(core.class.Configuration, core.class.Doc, DOMAIN_CONFIGURATION) export class TConfiguration extends TDoc implements Configuration { @Prop(TypeBoolean(), core.string.Private) - enabled!: boolean + enabled!: boolean } @MMixin(core.mixin.IndexConfiguration, core.class.Class) @@ -415,14 +415,14 @@ export class TTypeRank extends TType {} @MMixin(core.mixin.TransientConfiguration, core.class.Class) export class TTransientConfiguration extends TClass implements TransientConfiguration { @Prop(TypeBoolean(), core.string.Private) - broadcastOnly!: boolean + broadcastOnly!: boolean } @Model(core.class.Sequence, core.class.Doc, DOMAIN_SEQUENCE) export class TSequence extends TDoc implements Sequence { @Prop(TypeRef(core.class.Class), core.string.AttachedTo) @Index(IndexKind.Indexed) - attachedTo!: Ref> + attachedTo!: Ref> sequence!: number } diff --git a/models/core/src/migration.ts b/models/core/src/migration.ts index 6ea1daf8f6..e259d04abc 100644 --- a/models/core/src/migration.ts +++ b/models/core/src/migration.ts @@ -367,7 +367,7 @@ export async function getSocialKeyByOldAccount (client: MigrationClient): Promis if (systemAccounts.includes(account._id)) { socialKeyByAccount[account._id] = account._id } else { - socialKeyByAccount[account._id] = buildSocialIdString(getSocialKeyByOldEmail(account.email)) + socialKeyByAccount[account._id] = buildSocialIdString(getSocialKeyByOldEmail(account.email)) as any } } @@ -526,8 +526,8 @@ async function migrateAccounts (client: MigrationClient): Promise { accountUuidBySocialKey ) const update: MigrateUpdate = { - members: newMembers, - owners: newOwners + members: newMembers as any, + owners: newOwners as any } const type = spaceTypesById.get((space as TypedSpace).type) @@ -594,7 +594,7 @@ async function migrateAccounts (client: MigrationClient): Promise { objectClass: spaceType._class, objectSpace: spaceType.space, operations: { - members: newMembers + members: newMembers as any }, modifiedOn: Date.now(), createdBy: core.account.ConfigUser, @@ -843,7 +843,7 @@ async function processMigrateJsonForDoc ( const stat = await storageAdapter.stat(client.ctx, wsIds, currentYdocId) if (stat !== undefined) { const data = await storageAdapter.read(client.ctx, wsIds, currentYdocId) - const buffer = Buffer.concat(data) + const buffer = Buffer.concat(data as any) await storageAdapter.put(client.ctx, wsIds, ydocId, buffer, 'application/ydoc', buffer.length) } }) diff --git a/models/core/src/security.ts b/models/core/src/security.ts index 7dc576ac05..be3c300db4 100644 --- a/models/core/src/security.ts +++ b/models/core/src/security.ts @@ -62,31 +62,31 @@ import { TAttachedDoc, TClass, TDoc } from './core' export class TSpace extends TDoc implements Space { @Prop(TypeString(), core.string.Name) @Index(IndexKind.FullText) - name!: string + name!: string @Prop(TypeString(), core.string.Description) @Index(IndexKind.FullText) - description!: string + description!: string @Prop(TypeBoolean(), core.string.Private) - private!: boolean + private!: boolean @Prop(TypeBoolean(), core.string.Archived) @Index(IndexKind.Indexed) - archived!: boolean + archived!: boolean @Prop(ArrOf(TypeAccountUuid()), core.string.Members) @Index(IndexKind.Indexed) - members!: AccountUuid[] + members!: AccountUuid[] @Prop(ArrOf(TypeAccountUuid()), core.string.Owners) - owners?: AccountUuid[] + owners?: AccountUuid[] @Prop(TypeBoolean(), core.string.AutoJoin) - autoJoin?: boolean + autoJoin?: boolean @Prop(ArrOf(TypeString()), core.string.AutoJoinGuests) - autoJoinForRoles?: AccountRole[] + autoJoinForRoles?: AccountRole[] } @Model(core.class.SystemSpace, core.class.Space) @@ -97,7 +97,7 @@ export class TSystemSpace extends TSpace implements Space {} @UX(core.string.TypedSpace, undefined, undefined, 'name') export class TTypedSpace extends TSpace implements TypedSpace { @Prop(TypeRef(core.class.SpaceType), core.string.SpaceType) - type!: Ref + type!: Ref } @Model(core.class.SpaceTypeDescriptor, core.class.Doc, DOMAIN_MODEL) @@ -115,25 +115,25 @@ export class TSpaceTypeDescriptor extends TDoc implements SpaceTypeDescriptor { export class TSpaceType extends TDoc implements SpaceType { @Prop(TypeString(), core.string.Name) @Index(IndexKind.FullText) - name!: string + name!: string @Prop(TypeString(), core.string.ShortDescription) - shortDescription?: string + shortDescription?: string @Prop(TypeRef(core.class.SpaceTypeDescriptor), core.string.Descriptor) - descriptor!: Ref + descriptor!: Ref @Prop(TypeRef(core.class.Class), core.string.TargetClass) - targetClass!: Ref> + targetClass!: Ref> @Prop(Collection(core.class.Role), core.string.Roles) - roles!: CollectionSize + roles!: CollectionSize @Prop(ArrOf(TypeAccountUuid()), core.string.Members) - members!: AccountUuid[] + members!: AccountUuid[] @Prop(TypeBoolean(), core.string.AutoJoin) - autoJoin?: boolean + autoJoin?: boolean } @Model(core.class.Role, core.class.AttachedDoc, DOMAIN_MODEL) @@ -155,10 +155,10 @@ export class TRole extends TAttachedDoc implements Role { @Prop(TypeString(), core.string.Name) @Index(IndexKind.FullText) - name!: string + name!: string @Prop(ArrOf(TypeRef(core.class.Permission)), core.string.Permission) - permissions!: Ref[] + permissions!: Ref[] } @Model(core.class.Permission, core.class.Doc, DOMAIN_MODEL) @@ -202,23 +202,23 @@ export class TTxAccessLevel extends TClass implements TxAccessLevel { @Model(core.class.ModulePermissionGroup, core.class.Doc, DOMAIN_MODEL) export class TModulePermissionGroup extends TDoc implements ModulePermissionGroup { @Prop(TypeRef(core.class.Doc), core.string.AttachedTo) - application!: Ref + application!: Ref @Prop(TypeString(), core.string.Roles) - role!: AccountRole + role!: AccountRole @Prop(ArrOf(TypeRef(core.class.Permission)), core.string.Permission) - permissions!: Ref[] + permissions!: Ref[] @Prop(ArrOf(TypeRef(core.class.Permission)), core.string.Permission) - disabledPermissions?: Ref[] + disabledPermissions?: Ref[] @Prop(TypeRef(core.class.Class), core.string.Class) - spaceClass!: Ref> + spaceClass!: Ref> @Prop(TypeBoolean(), core.string.Name) - enabled!: boolean + enabled!: boolean @Prop(TypeNumber(), core.string.Order) - order?: number + order?: number } diff --git a/models/document/src/index.ts b/models/document/src/index.ts index 4bb77741d3..380a7efffd 100644 --- a/models/document/src/index.ts +++ b/models/document/src/index.ts @@ -71,13 +71,13 @@ export const DOMAIN_DOCUMENT = 'document' as Domain export class TDocument extends TDoc implements Document, Todoable { @Prop(TypeString(), document.string.Name) @Index(IndexKind.FullText) - title!: string + title!: string @Prop(TypeCollaborativeDoc(), document.string.Document) - content!: MarkupBlobRef | null + content!: MarkupBlobRef | null @Prop(TypeRef(document.class.Document), document.string.ParentDocument) - parent!: Ref + parent!: Ref @Prop(TypeRef(core.class.Space), core.string.Space) @Index(IndexKind.Indexed) @@ -86,41 +86,41 @@ export class TDocument extends TDoc implements Document, Todoable { @Prop(TypeAccountUuid(), document.string.LockedBy) @Hidden() - lockedBy?: AccountUuid + lockedBy?: AccountUuid @Prop(Collection(attachment.class.Embedding), attachment.string.Embeddings) - embeddings?: number + embeddings?: number @Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: number + attachments?: number @Prop(Collection(chunter.class.ChatMessage), chunter.string.Comments) - comments?: number + comments?: number @Prop(Collection(tags.class.TagReference), document.string.Labels) - labels?: number + labels?: number @Prop(Collection(activity.class.ActivityReference), document.string.Backlinks) @Hidden() - references!: number + references!: number @Prop(TypeString(), document.string.Icon) @Hidden() @Index(IndexKind.FullText) - icon?: Asset + icon?: Asset @Prop(TypeNumber(), document.string.Color) @Hidden() @Index(IndexKind.FullText) - color?: number + color?: number @Prop(Collection(time.class.ToDo), getEmbeddedLabel('Action Items')) - todos?: CollectionSize + todos?: CollectionSize @Prop(TypeRank(), core.string.Rank) @Index(IndexKind.Indexed) @Hidden() - rank!: Rank + rank!: Rank } @Model(document.class.DocumentSnapshot, core.class.Doc, DOMAIN_DOCUMENT) @@ -133,14 +133,14 @@ export class TDocumentSnapshot extends TDoc implements DocumentSnapshot { @Prop(TypeString(), document.string.Name) @Index(IndexKind.FullText) - title!: string + title!: string @Prop(TypeCollaborativeDoc(), document.string.Document) @ReadOnly() - content!: MarkupBlobRef + content!: MarkupBlobRef @Prop(TypeRef(document.class.Document), document.string.ParentDocument) - parent!: Ref + parent!: Ref } @Model(document.class.Teamspace, core.class.TypedSpace) diff --git a/models/gmail/src/migration.ts b/models/gmail/src/migration.ts index c6787fa702..90abbac9ed 100644 --- a/models/gmail/src/migration.ts +++ b/models/gmail/src/migration.ts @@ -33,7 +33,7 @@ async function migrateSettings (client: MigrationClient): Promise { DOMAIN_PREFERENCE, { _class: 'notification:class:NotificationSetting' as Ref>, - attachedTo: 'notification:providers:EmailNotification' + attachedTo: 'notification:providers:EmailNotification' as Ref }, { _class: notification.class.NotificationTypeSetting, diff --git a/models/notification/src/index.ts b/models/notification/src/index.ts index f4c00832ad..ac808504f4 100644 --- a/models/notification/src/index.ts +++ b/models/notification/src/index.ts @@ -171,7 +171,7 @@ export class TNotificationProviderSetting extends TPreference implements Notific @UX(notification.string.Collaborators) export class TCollaborators extends TDoc implements Collaborators { @Prop(CollectionType(core.class.Collaborator), notification.string.Collaborators) - collaborators!: CollectionSize + collaborators!: CollectionSize } @Mixin(notification.mixin.NotificationObjectPresenter, core.class.Class) @@ -193,31 +193,31 @@ export class TNotificationContextPresenter extends TClass implements Notificatio export class TDocNotifyContext extends TDoc implements DocNotifyContext { @Prop(TypeAccountUuid(), core.string.Account) @Index(IndexKind.Indexed) - user!: AccountUuid + user!: AccountUuid @Prop(TypeRef(core.class.Doc), core.string.Object) @Index(IndexKind.Indexed) - objectId!: Ref + objectId!: Ref @Prop(TypeRef(core.class.Class), core.string.Class) - objectClass!: Ref> + objectClass!: Ref> @Prop(TypeRef(core.class.Space), core.string.Space) - objectSpace!: Ref + objectSpace!: Ref declare space: Ref @Prop(TypeDate(), core.string.Date) - lastViewedTimestamp?: Timestamp + lastViewedTimestamp?: Timestamp @Prop(TypeDate(), core.string.Date) - lastUpdateTimestamp?: Timestamp + lastUpdateTimestamp?: Timestamp @Prop(TypeBoolean(), notification.string.Pinned) - isPinned!: boolean + isPinned!: boolean @Prop(TypeBoolean(), view.string.Hide) - hidden!: boolean + hidden!: boolean tx?: Ref> } @@ -226,18 +226,18 @@ export class TDocNotifyContext extends TDoc implements DocNotifyContext { export class TInboxNotification extends TDoc implements InboxNotification { @Prop(TypeRef(notification.class.DocNotifyContext), core.string.AttachedTo) @Index(IndexKind.Indexed) - docNotifyContext!: Ref + docNotifyContext!: Ref @Prop(TypeAccountUuid(), core.string.Account) @Index(IndexKind.Indexed) - user!: AccountUuid + user!: AccountUuid @Prop(TypeBoolean(), core.string.Boolean) // @Index(IndexKind.Indexed) - isViewed!: boolean + isViewed!: boolean @Prop(TypeBoolean(), core.string.Boolean) - archived!: boolean + archived!: boolean objectId!: Ref objectClass!: Ref> @@ -255,30 +255,30 @@ export class TInboxNotification extends TDoc implements InboxNotification { @Model(notification.class.ActivityInboxNotification, notification.class.InboxNotification) export class TActivityInboxNotification extends TInboxNotification implements ActivityInboxNotification { @Prop(TypeRef(activity.class.ActivityMessage), core.string.AttachedTo) - attachedTo!: Ref + attachedTo!: Ref @Prop(TypeRef(activity.class.ActivityMessage), core.string.AttachedToClass) - attachedToClass!: Ref> + attachedToClass!: Ref> } @Model(notification.class.CommonInboxNotification, notification.class.InboxNotification) export class TCommonInboxNotification extends TInboxNotification implements CommonInboxNotification { @Prop(TypeIntlString(), core.string.String) - header?: IntlString + header?: IntlString @Prop(TypeRef(core.class.Doc), core.string.Object) - headerObjectId?: Ref + headerObjectId?: Ref @Prop(TypeRef(core.class.Doc), core.string.Class) - headerObjectClass?: Ref> + headerObjectClass?: Ref> @Prop(TypeIntlString(), notification.string.Message) - message?: IntlString + message?: IntlString headerIcon?: Asset @Prop(TypeMarkup(), notification.string.Message) - messageHtml?: Markup + messageHtml?: Markup props?: Record icon?: Asset @@ -288,10 +288,10 @@ export class TCommonInboxNotification extends TInboxNotification implements Comm @Model(notification.class.MentionInboxNotification, notification.class.CommonInboxNotification) export class TMentionInboxNotification extends TCommonInboxNotification implements MentionInboxNotification { @Prop(TypeRef(core.class.Doc), core.string.Object) - mentionedIn!: Ref + mentionedIn!: Ref @Prop(TypeRef(core.class.Doc), core.string.Class) - mentionedInClass!: Ref> + mentionedInClass!: Ref> } @Model(notification.class.ReactionInboxNotification, notification.class.CommonInboxNotification) @@ -299,10 +299,10 @@ export class TReactionInboxNotification extends TCommonInboxNotification impleme emoji!: string ref!: Ref @Prop(TypeRef(activity.class.ActivityMessage), core.string.AttachedTo) - attachedTo!: Ref + attachedTo!: Ref @Prop(TypeRef(activity.class.ActivityMessage), core.string.AttachedToClass) - attachedToClass!: Ref> + attachedToClass!: Ref> } @Model(notification.class.ActivityNotificationViewlet, core.class.Doc, DOMAIN_MODEL) diff --git a/models/notification/src/migration.ts b/models/notification/src/migration.ts index 8ae9c36e3c..5bc85e0183 100644 --- a/models/notification/src/migration.ts +++ b/models/notification/src/migration.ts @@ -584,7 +584,7 @@ export async function migrateSettings (client: MigrationClient): Promise { DOMAIN_PREFERENCE, { _class: 'notification:class:NotificationSetting' as Ref>, - attachedTo: 'notification:providers:BrowserNotification' + attachedTo: 'notification:providers:BrowserNotification' as Ref }, { _class: notification.class.NotificationTypeSetting, @@ -596,7 +596,7 @@ export async function migrateSettings (client: MigrationClient): Promise { DOMAIN_PREFERENCE, { _class: 'notification:class:NotificationSetting' as Ref>, - attachedTo: 'notification:providers:PlatformNotification' + attachedTo: 'notification:providers:PlatformNotification' as Ref }, { _class: notification.class.NotificationTypeSetting, @@ -656,7 +656,7 @@ export const notificationOperation: MigrateOperation = { state: 'delete-invalid-notifications', mode: 'upgrade', func: async (client) => { - await removeNotifications(client, { attachedToClass: 'chunter:class:Comment' }) + await removeNotifications(client, { attachedToClass: 'chunter:class:Comment' as Ref> }) } }, { @@ -664,7 +664,7 @@ export const notificationOperation: MigrateOperation = { mode: 'upgrade', func: async (client) => { await client.deleteMany(DOMAIN_NOTIFICATION, { _class: 'notification:class:DocUpdates' as Ref> }) - await client.deleteMany(DOMAIN_TX, { objectClass: 'notification:class:DocUpdates' }) + await client.deleteMany(DOMAIN_TX, { objectClass: 'notification:class:DocUpdates' as Ref> }) } }, { diff --git a/models/process/src/index.ts b/models/process/src/index.ts index a3e7632a41..4017d9373e 100644 --- a/models/process/src/index.ts +++ b/models/process/src/index.ts @@ -89,31 +89,31 @@ const DOMAIN_PROCESS_LOG = 'process-log' as Domain @Model(process.class.Process, core.class.Doc, DOMAIN_MODEL) export class TProcess extends TDoc implements Process { @Prop(TypeString(), core.string.Name) - name!: string + name!: string @Prop(TypeString(), core.string.Description) - description!: string + description!: string @Prop(TypeRef(card.class.MasterTag), card.string.MasterTag) - masterTag!: Ref + masterTag!: Ref @Prop(TypeRef(process.class.State), process.string.NewState) - initState!: Ref + initState!: Ref @Prop(TypeBoolean(), process.string.ParallelExecutionForbidden) - parallelExecutionForbidden?: boolean + parallelExecutionForbidden?: boolean @Prop(TypeBoolean(), process.string.StartAutomatically) - autoStart: boolean | undefined + autoStart: boolean | undefined @Prop(TypeBoolean(), process.string.AutomationOnly) - automationOnly: boolean | undefined + automationOnly: boolean | undefined @Prop(TypeRecord(), process.string.RequiredSlots) - requiredSlots?: Record + requiredSlots?: Record @Prop(TypeRecord(), process.string.Bindings) - bindings?: Record + bindings?: Record context!: Record } @@ -140,64 +140,64 @@ export class TTrigger extends TDoc implements Trigger { @Model(process.class.Transition, core.class.Doc, DOMAIN_MODEL) export class TTransition extends TDoc implements Transition { @Prop(TypeRef(process.class.Process), process.string.Process) - process!: Ref + process!: Ref @Prop(TypeRef(process.class.State), process.string.From) - from!: Ref | null + from!: Ref | null @Prop(TypeRef(process.class.State), process.string.To) - to!: Ref + to!: Ref @Prop(TypeAny(process.component.ActionsPresenter, process.string.Actions), process.string.Actions) - actions!: Step[] + actions!: Step[] @Prop(TypeRef(process.class.Trigger), process.string.Trigger) - trigger!: Ref + trigger!: Ref triggerParams!: Record @Prop(TypeRank(), core.string.Rank) @Hidden() - rank!: Rank + rank!: Rank } @Model(process.class.ExecutionLog, core.class.Doc, DOMAIN_PROCESS_LOG) export class TExecutionLog extends TDoc implements ExecutionLog { @Prop(TypeRef(process.class.Execution), process.string.Execution) - execution!: Ref + execution!: Ref @Prop(TypeRef(process.class.Process), process.string.Process) - process!: Ref + process!: Ref @Prop(TypeRef(card.class.Card), card.string.Card) - card!: Ref + card!: Ref @Prop(TypeRef(process.class.Transition), process.string.Transition) - transition?: Ref + transition?: Ref @Prop(TypeAny(process.component.LogActionPresenter, process.string.LogAction), process.string.LogAction) - action!: ExecutionLogAction + action!: ExecutionLogAction } @Model(process.class.Execution, core.class.Doc, DOMAIN_PROCESS) export class TExecution extends TDoc implements Execution { @Prop(TypeRef(process.class.Process), process.string.Process) @ReadOnly() - process!: Ref + process!: Ref @Prop(TypeRef(process.class.State), process.string.Step) @ReadOnly() - currentState!: Ref + currentState!: Ref rollback!: Tx[][] @Prop(TypeRef(card.class.Card), card.string.Card) @ReadOnly() - card!: Ref + card!: Ref @Prop(TypeAny(process.component.ErrorPresenter, process.string.Error), process.string.Error) @ReadOnly() - error?: ExecutionError[] | null + error?: ExecutionError[] | null parentId?: Ref @@ -212,30 +212,30 @@ export class TExecution extends TDoc implements Execution { @UX(process.string.ToDo) export class TProcessToDo extends TToDo implements ProcessToDo { @Prop(TypeRef(process.class.Execution), process.string.Execution) - execution!: Ref + execution!: Ref @Prop(TypeBoolean(), process.string.Rollback) - withRollback!: boolean + withRollback!: boolean @Prop(TypeBoolean(), process.string.AskRequired) - askRequired?: boolean + askRequired?: boolean } @Model(process.class.ApproveRequest, process.class.ProcessToDo) @UX(process.string.ApproveRequest) export class TApproveRequest extends TProcessToDo implements ApproveRequest { @Prop(TypeBoolean(), process.string.IsApproved) - approved?: boolean + approved?: boolean @Prop(TypeString(), process.string.RejectionReason) - reason?: string + reason?: string group!: string card!: Ref @Prop(TypeString(), process.string.ActionType) - actionType?: 'approve' | 'review' + actionType?: 'approve' | 'review' } @Model(process.class.Method, core.class.Doc, DOMAIN_MODEL) @@ -261,14 +261,14 @@ export class TMethod extends TDoc implements Method { export class TState extends TDoc implements State { @Prop(TypeRef(process.class.Process), process.string.Process) @ReadOnly() - process!: Ref + process!: Ref @Prop(TypeString(), core.string.Name) - title!: string + title!: string @Prop(TypeRank(), core.string.Rank) @Hidden() - rank!: Rank + rank!: Rank } @Model(process.class.ProcessCustomEvent, core.class.Doc, DOMAIN_TRANSIENT) @@ -276,10 +276,10 @@ export class TProcessCustomEvent extends TDoc implements ProcessCustomEvent { eventType!: string @Prop(TypeRef(process.class.Execution), process.string.Execution) - execution!: Ref + execution!: Ref @Prop(TypeRef(card.class.Card), card.string.Card) - card!: Ref + card!: Ref } @Model(process.class.EventButton, core.class.Doc, DOMAIN_PROCESS) @@ -289,48 +289,48 @@ export class TEventButton extends TDoc implements EventButton { eventType!: string @Prop(TypeRef(process.class.Execution), process.string.Execution) - execution!: Ref + execution!: Ref @Prop(TypeRef(card.class.Card), card.string.Card) - card!: Ref + card!: Ref } @Model(process.class.ProcessFunction, core.class.Doc, DOMAIN_MODEL) export class TProcessFunction extends TDoc implements ProcessFunction { @Prop(TypeRef(core.class.Class), getEmbeddedLabel('To')) - to?: Ref> + to?: Ref> @Prop(TypeRef(core.class.Class), getEmbeddedLabel('Of')) - of!: Ref>> + of!: Ref>> @Prop(TypeString(), getEmbeddedLabel('Category')) - category: AttributeCategory | undefined + category: AttributeCategory | undefined @Prop(TypeIntlString(), getEmbeddedLabel('Label')) - label!: IntlString + label!: IntlString editor?: AnyComponent presenter?: AnyComponent @Prop(TypeBoolean(), getEmbeddedLabel('AllowMany')) - allowMany?: boolean + allowMany?: boolean @Prop(TypeString(), getEmbeddedLabel('Type')) - type!: 'transform' | 'reduce' | 'context' | 'convert' + type!: 'transform' | 'reduce' | 'context' | 'convert' } @Model(process.class.UpdateCriteriaComponent, core.class.Doc, DOMAIN_MODEL) export class TUpdateCriteriaComponent extends TDoc implements UpdateCriteriaComponent { @Prop(TypeString(), getEmbeddedLabel('Category')) - category!: AttributeCategory + category!: AttributeCategory editor!: AnyComponent @Prop(TypeRef(core.class.Class), getEmbeddedLabel('Of')) - of!: Ref>> + of!: Ref>> @Prop(TypeRecord(), getEmbeddedLabel('Props')) - props!: Record + props!: Record } export * from './migration' diff --git a/models/products/src/index.ts b/models/products/src/index.ts index 9ada160deb..bfd8efe585 100644 --- a/models/products/src/index.ts +++ b/models/products/src/index.ts @@ -94,20 +94,20 @@ export class TProduct extends TExternalSpace implements Product { @Prop(TypeMarkup(), products.string.Description) @Index(IndexKind.FullText) - fullDescription?: string + fullDescription?: string @Prop(TypeString(), products.string.Icon) @Index(IndexKind.FullText) @Hidden() - icon?: Asset + icon?: Asset @Prop(TypeNumber(), products.string.Color) @Index(IndexKind.FullText) @Hidden() - color?: number + color?: number @Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: CollectionSize + attachments?: CollectionSize } @Model(products.class.ProductVersion, documents.class.Project) @@ -119,31 +119,31 @@ export class TProductVersion extends TProject implements ProductVersion { @Prop(TypeNumber(), products.string.Major) @ReadOnly() - major!: number + major!: number @Prop(TypeNumber(), products.string.Minor) @ReadOnly() - minor!: number + minor!: number @Prop(TypeNumber(), products.string.Patch) @ReadOnly() - patch!: number + patch!: number @Prop(TypeString(), products.string.Codename) - codename?: string + codename?: string @Prop(TypeMarkup(), products.string.Description) @Index(IndexKind.FullText) - description!: Markup + description!: Markup @Prop(TypeRef(products.class.ProductVersion), products.string.ProductVersionParent) @Index(IndexKind.Indexed) @ReadOnly() - parent!: Ref + parent!: Ref @Prop(TypeProductVersionState(), products.string.ProductVersionState) @ReadOnly() - state!: ProductVersionState + state!: ProductVersionState @Prop( TypeAny( @@ -154,7 +154,7 @@ export class TProductVersion extends TProject implements ProductVersion { products.string.ChangeControl ) @ReadOnly() - changeControl?: Ref + changeControl?: Ref } @Mixin(products.mixin.ProductTypeData, products.class.Product) diff --git a/models/setting/src/index.ts b/models/setting/src/index.ts index 1ea9ec6207..f0c0038ea8 100644 --- a/models/setting/src/index.ts +++ b/models/setting/src/index.ts @@ -121,7 +121,7 @@ export class TInviteSettings extends TConfiguration implements InviteSettings { @UX(setting.string.RoleCapabilitySettings) export class TRoleCapabilitySettings extends TConfiguration implements RoleCapabilitySettings { @Prop(TypeRecord(), setting.string.RoleCapabilitySettings) - roleByCapability!: Record + roleByCapability!: Record } @Model(setting.class.OfficeSettings, core.class.Configuration, DOMAIN_SETTING) diff --git a/models/task/src/index.ts b/models/task/src/index.ts index cbff7cc8de..9259c85798 100644 --- a/models/task/src/index.ts +++ b/models/task/src/index.ts @@ -96,46 +96,46 @@ export const DOMAIN_TASK = 'task' as Domain export class TTask extends TAttachedDoc implements Task { @Prop(TypeRef(core.class.Status), task.string.TaskState, { _id: task.attribute.State }) @Index(IndexKind.Indexed) - status!: Ref + status!: Ref @Prop(TypeRef(task.class.TaskType), task.string.TaskType) @Index(IndexKind.Indexed) @ReadOnly() - kind!: Ref + kind!: Ref @Prop(TypeString(), task.string.TaskNumber) @Index(IndexKind.FullText) @Hidden() - number!: number + number!: number @Prop(TypeRef(contact.mixin.Employee), task.string.TaskAssignee) - assignee!: Ref | null + assignee!: Ref | null @Prop(TypeDate(), task.string.DueDate, { editor: task.component.DueDateEditor }) - dueDate!: Timestamp | null + dueDate!: Timestamp | null @Prop(TypeRank(), task.string.Rank) @Index(IndexKind.IndexedDsc) @Hidden() - rank!: Rank + rank!: Rank @Prop(Collection(tags.class.TagReference, task.string.TaskLabels), task.string.TaskLabels) - labels?: number + labels?: number @Prop(Collection(chunter.class.ChatMessage), chunter.string.Comments) - comments?: number + comments?: number @Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: number + attachments?: number @Prop(TypeBoolean(), getEmbeddedLabel('isDone')) @Hidden() - isDone?: boolean + isDone?: boolean @Prop(TypeString(), task.string.Identifier) @ReadOnly() @Index(IndexKind.Indexed) - identifier!: string + identifier!: string } @Mixin(task.mixin.KanbanCard, core.class.Class) @@ -179,52 +179,52 @@ export class TProjectType extends TSpaceType implements ProjectType { @Prop(TypeString(), task.string.Description) @Index(IndexKind.FullText) - description!: string + description!: string @Prop(ArrOf(TypeRef(task.class.TaskType)), getEmbeddedLabel('Tasks')) - tasks!: Ref[] + tasks!: Ref[] @Prop(ArrOf(TypeRecord()), getEmbeddedLabel('Project statuses')) - statuses!: ProjectStatus[] + statuses!: ProjectStatus[] @Prop(TypeRef(core.class.Class), getEmbeddedLabel('Target Class')) declare targetClass: Ref> @Prop(TypeBoolean(), getEmbeddedLabel('Classic')) - classic!: boolean + classic!: boolean } @Model(task.class.TaskType, core.class.Doc, DOMAIN_MODEL) export class TTaskType extends TDoc implements TaskType { @Prop(TypeString(), getEmbeddedLabel('Name')) - name!: string + name!: string @Prop(TypeRef(task.class.TaskTypeDescriptor), getEmbeddedLabel('Descriptor')) - descriptor!: Ref + descriptor!: Ref @Prop(TypeRef(task.class.ProjectType), getEmbeddedLabel('Task class')) - parent!: Ref // Base class for task + parent!: Ref // Base class for task @Prop(TypeString(), getEmbeddedLabel('Kind')) - kind!: TaskTypeKind + kind!: TaskTypeKind @Prop(ArrOf(TypeRef(task.class.TaskType)), getEmbeddedLabel('Parent')) - allowedAsChildOf!: Ref[] // In case of specified, task type is for sub-tasks + allowedAsChildOf!: Ref[] // In case of specified, task type is for sub-tasks @Prop(TypeRef(core.class.Class), getEmbeddedLabel('Task class')) - ofClass!: Ref> // Base class for task + ofClass!: Ref> // Base class for task @Prop(TypeRef(core.class.Class), getEmbeddedLabel('Task target class')) - targetClass!: Ref> // Class or Mixin mixin to hold all user defined attributes. + targetClass!: Ref> // Class or Mixin mixin to hold all user defined attributes. @Prop(ArrOf(TypeRef(core.class.Status)), getEmbeddedLabel('Task statuses')) - statuses!: Ref[] + statuses!: Ref[] @Prop(TypeRef(core.class.Class), getEmbeddedLabel('Task status class')) - statusClass!: Ref> + statusClass!: Ref> @Prop(TypeRef(core.class.StatusCategory), getEmbeddedLabel('Task status categories')) - statusCategories!: Ref[] + statusCategories!: Ref[] } @Model(task.class.ProjectTypeDescriptor, core.class.SpaceTypeDescriptor, DOMAIN_MODEL) diff --git a/models/tracker/src/types.ts b/models/tracker/src/types.ts index bc4588bf4d..853e19450c 100644 --- a/models/tracker/src/types.ts +++ b/models/tracker/src/types.ts @@ -126,17 +126,17 @@ export class TTypeMilestoneStatus extends TType {} export class TProject extends TTaskProject implements Project { @Prop(TypeString(), tracker.string.ProjectIdentifier) @Index(IndexKind.FullText) - identifier!: IntlString + identifier!: IntlString @Prop(TypeNumber(), tracker.string.Number) @Hidden() - sequence!: number + sequence!: number @Prop(TypeRef(tracker.class.IssueStatus), tracker.string.DefaultIssueStatus) - defaultIssueStatus?: Ref + defaultIssueStatus?: Ref @Prop(TypeRef(contact.mixin.Employee), tracker.string.DefaultAssignee) - defaultAssignee!: Ref + defaultAssignee!: Ref declare defaultTimeReportDay: TimeReportDayType @@ -154,7 +154,7 @@ export class TProject extends TTaskProject implements Project { @UX(tracker.string.RelatedIssues) export class TRelatedIssueTarget extends TDoc implements RelatedIssueTarget { @Prop(TypeRef(tracker.class.Project), tracker.string.Project) - target!: Ref + target!: Ref rule!: RelatedClassRule | RelatedSpaceRule } @@ -191,11 +191,11 @@ export class TIssue extends TTask implements Issue { @Prop(TypeString(), tracker.string.Title) @Index(IndexKind.FullText) - title!: string + title!: string @Prop(TypeCollaborativeDoc(), tracker.string.Description) @Index(IndexKind.FullText) - description!: MarkupBlobRef | null + description!: MarkupBlobRef | null @Prop(TypeRef(tracker.class.IssueStatus), tracker.string.Status, { _id: tracker.attribute.IssueStatus, @@ -208,7 +208,7 @@ export class TIssue extends TTask implements Issue { iconComponent: tracker.activity.PriorityIcon }) @Index(IndexKind.Indexed) - priority!: IssuePriority + priority!: IssuePriority @Prop(TypeNumber(), tracker.string.Number) @Index(IndexKind.FullText) @@ -221,17 +221,17 @@ export class TIssue extends TTask implements Issue { @Prop(TypeRef(tracker.class.Component), tracker.string.Component, { icon: tracker.icon.Component }) @Index(IndexKind.Indexed) - component!: Ref | null + component!: Ref | null @Prop(Collection(tracker.class.Issue), tracker.string.SubIssues) - subIssues!: number + subIssues!: number @Prop(ArrOf(TypeRef(core.class.TypeRelatedDocument)), tracker.string.BlockedBy) - blockedBy!: RelatedDocument[] + blockedBy!: RelatedDocument[] @Prop(ArrOf(TypeRef(core.class.TypeRelatedDocument)), tracker.string.RelatedTo) @Index(IndexKind.Indexed) - relations!: RelatedDocument[] + relations!: RelatedDocument[] parents!: IssueParentInfo[] @@ -261,20 +261,20 @@ export class TIssue extends TTask implements Issue { @Prop(TypeRef(tracker.class.Milestone), tracker.string.Milestone, { icon: tracker.icon.Milestone }) @Index(IndexKind.Indexed) - milestone!: Ref | null + milestone!: Ref | null @Prop(TypeEstimation(), tracker.string.Estimation) - estimation!: number + estimation!: number @Prop(TypeReportedTime(), tracker.string.ReportedTime) - reportedTime!: number + reportedTime!: number @Prop(TypeRemainingTime(), tracker.string.RemainingTime) @ReadOnly() - remainingTime!: number + remainingTime!: number @Prop(Collection(tracker.class.TimeSpendReport), tracker.string.TimeSpendReports) - reports!: number + reports!: number declare childInfo: IssueChildInfo[] @@ -310,49 +310,49 @@ export class TIssue extends TTask implements Issue { export class TIssueTemplate extends TDoc implements IssueTemplate { @Prop(TypeString(), tracker.string.Title) @Index(IndexKind.FullText) - title!: string + title!: string @Prop(TypeMarkup(), tracker.string.Description) @Index(IndexKind.FullText) - description!: Markup + description!: Markup @Prop(TypeIssuePriority(), tracker.string.Priority) - priority!: IssuePriority + priority!: IssuePriority @Prop(TypeRef(contact.class.Person), tracker.string.Assignee) - assignee!: Ref | null + assignee!: Ref | null @Prop(TypeRef(tracker.class.Component), tracker.string.Component) - component!: Ref | null + component!: Ref | null @Prop(ArrOf(TypeRef(tags.class.TagElement)), tracker.string.Labels) - labels?: Ref[] + labels?: Ref[] @Prop(TypeRef(task.class.TaskType), task.string.TaskType) - kind?: Ref + kind?: Ref declare space: Ref @Prop(TypeDate(DateRangeMode.DATETIME), tracker.string.DueDate) - dueDate!: Timestamp | null + dueDate!: Timestamp | null @Prop(TypeRef(tracker.class.Milestone), tracker.string.Milestone) - milestone!: Ref | null + milestone!: Ref | null @Prop(TypeEstimation(), tracker.string.Estimation) - estimation!: number + estimation!: number @Prop(ArrOf(TypeRef(tracker.class.IssueTemplate)), tracker.string.IssueTemplate) - children!: IssueTemplateChild[] + children!: IssueTemplateChild[] @Prop(Collection(chunter.class.ChatMessage), tracker.string.Comments) - comments!: number + comments!: number @Prop(Collection(attachment.class.Attachment), tracker.string.Attachments) - attachments!: number + attachments!: number @Prop(ArrOf(TypeRef(core.class.TypeRelatedDocument)), tracker.string.RelatedTo) - relations!: RelatedDocument[] + relations!: RelatedDocument[] } /** * @public @@ -365,16 +365,16 @@ export class TTimeSpendReport extends TAttachedDoc implements TimeSpendReport { declare attachedTo: Ref @Prop(TypeRef(contact.mixin.Employee), contact.string.Employee) - employee!: Ref + employee!: Ref @Prop(TypeDate(), tracker.string.TimeSpendReportDate) - date!: Timestamp | null + date!: Timestamp | null @Prop(TypeNumber(), tracker.string.TimeSpendReportValue) - value!: number + value!: number @Prop(TypeString(), tracker.string.TimeSpendReportDescription) - description!: string + description!: string } /** @@ -390,13 +390,13 @@ export class TIssueRelation extends TAttachedDoc implements IssueRelation { @Prop(TypeRef(tracker.class.Issue), tracker.string.Issue) @Index(IndexKind.Indexed) - target!: Ref + target!: Ref @Prop(TypeString(), tracker.string.GanttDependency) - kind!: DependencyKind + kind!: DependencyKind @Prop(TypeNumber(), tracker.string.GanttLag) - lag!: number + lag!: number } /** * @public @@ -407,19 +407,19 @@ export class TIssueRelation extends TAttachedDoc implements IssueRelation { export class TComponent extends TDoc implements Component { @Prop(TypeString(), tracker.string.Title) @Index(IndexKind.FullText) - label!: string + label!: string @Prop(TypeMarkup(), tracker.string.Description) - description?: Markup + description?: Markup @Prop(TypeRef(contact.mixin.Employee), tracker.string.ComponentLead) - lead!: Ref | null + lead!: Ref | null @Prop(Collection(chunter.class.ChatMessage), chunter.string.Comments) - comments!: number + comments!: number @Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: number + attachments?: number @Prop(TypeNumber(), tracker.string.Color) color?: number @@ -435,26 +435,26 @@ export class TComponent extends TDoc implements Component { export class TMilestone extends TDoc implements Milestone { @Prop(TypeString(), tracker.string.Title) // @Index(IndexKind.FullText) - label!: string + label!: string @Prop(TypeMarkup(), tracker.string.Description) - description?: Markup + description?: Markup @Prop(TypeMilestoneStatus(), tracker.string.Status) @Index(IndexKind.Indexed) - status!: MilestoneStatus + status!: MilestoneStatus @Prop(Collection(chunter.class.ChatMessage), chunter.string.Comments) - comments!: number + comments!: number @Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, { shortLabel: attachment.string.Files }) - attachments?: number + attachments?: number @Prop(TypeDate(), tracker.string.StartDate) - startDate!: Timestamp | null + startDate!: Timestamp | null @Prop(TypeDate(), tracker.string.TargetDate) - targetDate!: Timestamp + targetDate!: Timestamp @Prop(TypeNumber(), tracker.string.Color) color?: number @@ -480,10 +480,10 @@ export class TProjectTargetPreference extends TPreference implements ProjectTarg declare attachedTo: Ref @Prop(TypeDate(), tracker.string.LastUpdated) - usedOn!: Timestamp + usedOn!: Timestamp @Prop(TypeRecord(), getEmbeddedLabel('Properties')) - props?: { key: string, value: any }[] + props?: { key: string, value: any }[] } @Mixin(tracker.mixin.ClassicProjectTypeData, tracker.class.Project) diff --git a/models/training/src/types.ts b/models/training/src/types.ts index 6bc50cf55e..b06f61bc4d 100644 --- a/models/training/src/types.ts +++ b/models/training/src/types.ts @@ -89,55 +89,55 @@ export class TTraining extends TDoc implements Training { @Prop(TypeString(), training.string.TrainingTitle) @Index(IndexKind.FullText) - title!: string + title!: string @Prop(TypeString(), core.string.Id) @Index(IndexKind.FullText) - code!: string + code!: string @Prop(TypeNumber(), training.string.Revision) @Index(IndexKind.Indexed) - revision!: number + revision!: number @Prop(TypeRef(contact.mixin.Employee), training.string.TrainingAuthor, { editor: training.component.EmployeeEditor }) - author!: Ref + author!: Ref @Prop(TypeRef(contact.mixin.Employee), training.string.Owner, { editor: training.component.EmployeeEditor }) - owner!: Ref + owner!: Ref @Prop(TypeTrainingState(), training.string.State) - state!: TrainingState + state!: TrainingState @Prop(TypeMarkup(), core.string.Description, { defaultValue: 0 }) @Index(IndexKind.Indexed) - description: Markup = '' + description: Markup = '' @Prop(Collection(attachments.class.Attachment), attachments.string.Attachments, { defaultValue: 0 }) - attachments: CollectionSize = 0 + attachments: CollectionSize = 0 @Prop(TypePercentage(), training.string.TrainingPassingScore, { defaultValue: 100 }) @Index(IndexKind.Indexed) - passingScore: Percentage = 100 + passingScore: Percentage = 100 @Prop(TypeTimestamp(), training.string.TrainingReleasedOn, { defaultValue: null }) @Index(IndexKind.Indexed) - releasedOn: Timestamp | null = null + releasedOn: Timestamp | null = null @Prop(TypeRef(contact.mixin.Employee), training.string.TrainingReleasedBy, { defaultValue: null, editor: training.component.EmployeeEditor }) - releasedBy: Ref | null = null + releasedBy: Ref | null = null @Prop(Collection(questions.class.Question), training.string.TrainingQuestions, { defaultValue: 0 }) - questions: CollectionSize> = 0 + questions: CollectionSize> = 0 @Prop(Collection(training.class.TrainingRequest), training.string.TrainingRequests, { defaultValue: 0 }) - requests: CollectionSize = 0 + requests: CollectionSize = 0 } @Model(training.class.TrainingRequest, core.class.AttachedDoc, DOMAIN_TRAINING) @@ -166,37 +166,37 @@ export class TTrainingRequest extends TAttachedDoc implements TrainingRequest { editor: training.component.EmployeeEditor }) @Index(IndexKind.Indexed) - owner!: Ref + owner!: Ref @Prop(ArrOf(TypeRef(contact.mixin.Employee)), training.string.TrainingRequestTrainees, { editor: training.component.TrainingRequestTraineesEditor }) - trainees: Ref[] = [] + trainees: Ref[] = [] @Prop(TypeTimestamp(), training.string.TrainingRequestDueDate, { defaultValue: null, editor: training.component.TrainingRequestDueDateEditor }) @Index(IndexKind.Indexed) - dueDate: Timestamp | null = null + dueDate: Timestamp | null = null @Prop(TypeNumber(), training.string.TrainingRequestMaxAttempts, { defaultValue: null, editor: training.component.TrainingRequestMaxAttemptsEditor }) - maxAttempts: number | null = null + maxAttempts: number | null = null @Prop(Collection(training.class.TrainingAttempt), training.string.TrainingAttempts, { defaultValue: 0 }) - attempts: CollectionSize = 0 + attempts: CollectionSize = 0 @Prop(TypeTimestamp(), training.string.TrainingRequestCanceledDate, { defaultValue: null }) - canceledOn: Timestamp | null = null + canceledOn: Timestamp | null = null @Prop(TypeRef(contact.mixin.Employee), training.string.TrainingRequestCanceledBy, { defaultValue: null, editor: training.component.EmployeeEditor }) - canceledBy: Ref | null = null + canceledBy: Ref | null = null } @Model(training.class.TrainingAttempt, core.class.AttachedDoc, DOMAIN_TRAINING) @@ -225,38 +225,38 @@ export class TTrainingAttempt extends TAttachedDoc implements TrainingAttempt { editor: training.component.EmployeeEditor }) @Index(IndexKind.Indexed) - owner!: Ref + owner!: Ref @Prop(TypeNumber(), training.string.TrainingAttempt, { defaultValue: 1 }) @Index(IndexKind.Indexed) - seqNumber: number = 1 + seqNumber: number = 1 @Prop(TypeTrainingAttemptState(), training.string.State) @Index(IndexKind.Indexed) - state: TrainingAttemptState = TrainingAttemptState.Draft + state: TrainingAttemptState = TrainingAttemptState.Draft @Prop(Collection(questions.class.Answer), questions.string.Answers, { defaultValue: 0 }) - answers: CollectionSize> = 0 + answers: CollectionSize> = 0 @Prop(TypeTimestamp(), training.string.TrainingAttemptSubmittedDate, { defaultValue: null }) @Index(IndexKind.Indexed) - submittedOn: Timestamp | null = null + submittedOn: Timestamp | null = null @Prop(TypeRef(contact.mixin.Employee), training.string.TrainingAttemptSubmittedBy, { defaultValue: null, editor: training.component.EmployeeEditor }) - submittedBy: Ref | null = null + submittedBy: Ref | null = null @Prop(TypePercentage(), questions.string.Score, { defaultValue: null }) @Index(IndexKind.Indexed) - score: Percentage | null = null + score: Percentage | null = null @Prop(TypeNumber(), training.string.TrainingAttemptAssessmentsTotal, { defaultValue: null }) - assessmentsTotal: number | null = null + assessmentsTotal: number | null = null @Prop(TypeNumber(), training.string.TrainingAttemptAssessmentsPassed, { defaultValue: null }) - assessmentsPassed: number | null = null + assessmentsPassed: number | null = null } @Mixin(training.mixin.TrainingsTypeData, core.class.TypedSpace) diff --git a/packages/gantt/src/__tests__/pan-target.test.ts b/packages/gantt/src/__tests__/pan-target.test.ts index 213a69e56d..f8e961fb0e 100644 --- a/packages/gantt/src/__tests__/pan-target.test.ts +++ b/packages/gantt/src/__tests__/pan-target.test.ts @@ -5,7 +5,7 @@ import { shouldPromoteCanvasPan, shouldStartCanvasPan } from '../pan-target' -function targetWithClosest (matches: Set): Pick { +function targetWithClosest(matches: Set): Pick { return { closest: (selector: string) => { for (const part of selector.split(',').map((s) => s.trim())) { diff --git a/packages/gantt/src/__tests__/tree-expand-store.test.ts b/packages/gantt/src/__tests__/tree-expand-store.test.ts index e37475af91..e65e862396 100644 --- a/packages/gantt/src/__tests__/tree-expand-store.test.ts +++ b/packages/gantt/src/__tests__/tree-expand-store.test.ts @@ -5,10 +5,10 @@ import { createTreeExpandStore } from '../tree-expand-store' -function makeStorage (): Storage { +function makeStorage(): Storage { const map = new Map() return { - get length (): number { + get length(): number { return map.size }, clear: () => { diff --git a/packages/gantt/src/__tests__/y-viewport-perf.test.ts b/packages/gantt/src/__tests__/y-viewport-perf.test.ts index e89d384670..8eb273b166 100644 --- a/packages/gantt/src/__tests__/y-viewport-perf.test.ts +++ b/packages/gantt/src/__tests__/y-viewport-perf.test.ts @@ -21,7 +21,7 @@ interface SynthRow { height: number } -function genRows (count: number, rowHeight: number): SynthRow[] { +function genRows(count: number, rowHeight: number): SynthRow[] { const rows: SynthRow[] = new Array(count) for (let i = 0; i < count; i++) { rows[i] = { id: `row-${i}`, y: i * rowHeight, height: rowHeight } diff --git a/packages/gantt/src/breakpoint.ts b/packages/gantt/src/breakpoint.ts index d5a01c088d..2b14c91fa6 100644 --- a/packages/gantt/src/breakpoint.ts +++ b/packages/gantt/src/breakpoint.ts @@ -25,21 +25,21 @@ export type LayoutMode = 'phone' | 'tablet' | 'desktop' export const PHONE_MAX_WIDTH = 640 export const TABLET_MAX_WIDTH = 1024 -export function detectLayoutMode (width: number): LayoutMode { +export function detectLayoutMode(width: number): LayoutMode { if (!Number.isFinite(width) || width <= 0) return 'phone' if (width <= PHONE_MAX_WIDTH) return 'phone' if (width <= TABLET_MAX_WIDTH) return 'tablet' return 'desktop' } -export function isPhone (mode: LayoutMode): boolean { +export function isPhone(mode: LayoutMode): boolean { return mode === 'phone' } -export function isTablet (mode: LayoutMode): boolean { +export function isTablet(mode: LayoutMode): boolean { return mode === 'tablet' } -export function isDesktop (mode: LayoutMode): boolean { +export function isDesktop(mode: LayoutMode): boolean { return mode === 'desktop' } diff --git a/packages/gantt/src/cascade-popup-layout.ts b/packages/gantt/src/cascade-popup-layout.ts index f9dd6723c9..8232aa18d0 100644 --- a/packages/gantt/src/cascade-popup-layout.ts +++ b/packages/gantt/src/cascade-popup-layout.ts @@ -26,7 +26,7 @@ export interface CascadePopupLayoutInput { bodyMaxHeight: number } -export function computeCascadeBodyHeight (input: CascadePopupLayoutInput): number { +export function computeCascadeBodyHeight(input: CascadePopupLayoutInput): number { const desired = input.rowCount * input.rowHeight + input.barTopPadding + input.bodyVerticalPadding + input.bodyBottomSafety return Math.min(desired, input.bodyMaxHeight) diff --git a/packages/gantt/src/cascade-token.ts b/packages/gantt/src/cascade-token.ts index 00a964f88e..0fa4622a95 100644 --- a/packages/gantt/src/cascade-token.ts +++ b/packages/gantt/src/cascade-token.ts @@ -55,7 +55,7 @@ let counter = 0 * for human-readable tx-logs, while the trailing `:` segment * identifies the cascade instance. */ -export function newCascadeToken (prefix: string = 'gantt-cascade'): string { +export function newCascadeToken(prefix: string = 'gantt-cascade'): string { counter = (counter + 1) | 0 return `${prefix}:${Date.now()}-${counter}` } diff --git a/packages/gantt/src/confirm-gate.ts b/packages/gantt/src/confirm-gate.ts index ca04625d19..3946b8f6be 100644 --- a/packages/gantt/src/confirm-gate.ts +++ b/packages/gantt/src/confirm-gate.ts @@ -37,7 +37,7 @@ export interface ConfirmGate { } /** Create an independent gate. One per mounted GanttView. */ -export function createConfirmGate (): ConfirmGate { +export function createConfirmGate(): ConfirmGate { let confirming = false return { setConfirming: (value: boolean): void => { diff --git a/packages/gantt/src/cp-scheduler.ts b/packages/gantt/src/cp-scheduler.ts index afda1cb25f..2fdefc3e8a 100644 --- a/packages/gantt/src/cp-scheduler.ts +++ b/packages/gantt/src/cp-scheduler.ts @@ -26,10 +26,10 @@ export class DebouncedRecompute { private handle: ReturnType | null = null - constructor (private readonly delayMs: number) {} + constructor(private readonly delayMs: number) {} /** Replace any pending run with a new one `delayMs` from now. */ - schedule (run: () => void): void { + schedule(run: () => void): void { this.cancel() this.handle = setTimeout(() => { this.handle = null @@ -38,7 +38,7 @@ export class DebouncedRecompute { } /** Drop a pending run, if any. Idempotent. */ - cancel (): void { + cancel(): void { if (this.handle !== null) { clearTimeout(this.handle) this.handle = null @@ -46,7 +46,7 @@ export class DebouncedRecompute { } /** True while a run is queued. */ - get pending (): boolean { + get pending(): boolean { return this.handle !== null } } diff --git a/packages/gantt/src/drag-controller.ts b/packages/gantt/src/drag-controller.ts index 9f76c0d0ef..fb8027b25f 100644 --- a/packages/gantt/src/drag-controller.ts +++ b/packages/gantt/src/drag-controller.ts @@ -18,7 +18,7 @@ import type { TimeScale } from './time-scale' * threaded through unchanged so commitDrag (in GanttView.svelte) can route * to the right update field. */ -export function reduce ( +export function reduce( state: DragState, event: DragEvent, timeScale: TimeScale @@ -28,12 +28,12 @@ export function reduce } -function reduceImpl (state: DragState, event: DragEvent, timeScale: TimeScale): DragState { +function reduceImpl(state: DragState, event: DragEvent, timeScale: TimeScale): DragState { switch (state.kind) { case 'idle': return reduceFromIdle(state, event) @@ -50,7 +50,7 @@ function reduceImpl (state: DragState, event: DragEvent, timeScale: TimeScale): } } -function reduceFromIdle (state: DragState & { kind: 'idle' }, event: DragEvent): DragState { +function reduceFromIdle(state: DragState & { kind: 'idle' }, event: DragEvent): DragState { if (event.type === 'mouseenter-bar') { return { kind: 'hover-bar', issueId: event.issueId, edge: event.edge } } @@ -123,7 +123,7 @@ function reduceFromIdle (state: DragState & { kind: 'idle' }, event: DragEvent): return state } -function reduceFromHover (state: DragState & { kind: 'hover-bar' }, event: DragEvent, timeScale: TimeScale): DragState { +function reduceFromHover(state: DragState & { kind: 'hover-bar' }, event: DragEvent, timeScale: TimeScale): DragState { if (event.type === 'mouseleave-bar') { return { kind: 'idle' } } @@ -171,7 +171,7 @@ function reduceFromHover (state: DragState & { kind: 'hover-bar' }, event: DragE return state } -function reduceFromActive (state: DragState, event: DragEvent, timeScale: TimeScale): DragState { +function reduceFromActive(state: DragState, event: DragEvent, timeScale: TimeScale): DragState { if (event.type === 'mouseup' || event.type === 'cancel') { return { kind: 'idle' } } @@ -236,7 +236,7 @@ function reduceFromActive (state: DragState, event: DragEvent, timeScale: TimeSc return state } -function reduceFromConnector ( +function reduceFromConnector( state: DragState & { kind: 'connector-drawing' | 'connector-target-hover' }, event: DragEvent ): DragState { @@ -276,6 +276,6 @@ function reduceFromConnector ( } /** Convenience helper used by later tasks to clamp a date to a UTC midnight. */ -export function snapDate (t: number): number { +export function snapDate(t: number): number { return snapToUtcMidnight(t) } diff --git a/packages/gantt/src/drag-state.ts b/packages/gantt/src/drag-state.ts index fde6da7eea..ac24f5ea89 100644 --- a/packages/gantt/src/drag-state.ts +++ b/packages/gantt/src/drag-state.ts @@ -1,6 +1,6 @@ import type { DragState, DragTarget } from './types' -export function activeDragTargetId (state: DragState): string | null { +export function activeDragTargetId(state: DragState): string | null { if (!('target' in state)) return null const target = state.target @@ -10,7 +10,7 @@ export function activeDragTargetId (state: DragState): string | null { return id !== undefined ? String(id) : null } -function isDragTarget (target: unknown): target is DragTarget { +function isDragTarget(target: unknown): target is DragTarget { return ( typeof target === 'object' && target !== null && diff --git a/packages/gantt/src/flash-store.ts b/packages/gantt/src/flash-store.ts index fc4eb650f1..8b4ae81b37 100644 --- a/packages/gantt/src/flash-store.ts +++ b/packages/gantt/src/flash-store.ts @@ -29,21 +29,21 @@ export interface FlashStore { const timers = new WeakMap>>() -export function createFlashStore (): FlashStore { +export function createFlashStore(): FlashStore { let value = new Set() const subs = new Set<(value: Set) => void>() const store: FlashStore = { - subscribe (run) { + subscribe(run) { subs.add(run) run(value) return () => { subs.delete(run) } }, - get () { + get() { return value }, - set (next) { + set(next) { value = next for (const fn of subs) fn(value) } @@ -52,7 +52,7 @@ export function createFlashStore (): FlashStore { return store } -export function flashIssues (ids: string[], durationMs: number, store: FlashStore): void { +export function flashIssues(ids: string[], durationMs: number, store: FlashStore): void { const perStoreTimers = timers.get(store) ?? new Map>() timers.set(store, perStoreTimers) diff --git a/packages/gantt/src/gantt-view-options.ts b/packages/gantt/src/gantt-view-options.ts index ce875b2d48..551b606c02 100644 --- a/packages/gantt/src/gantt-view-options.ts +++ b/packages/gantt/src/gantt-view-options.ts @@ -29,11 +29,11 @@ export interface GanttSavedViewOptions { ganttShowSubIssueProgress?: boolean } -function isZoomLevel (v: unknown): v is ZoomLevel { +function isZoomLevel(v: unknown): v is ZoomLevel { return typeof v === 'string' && (ZOOM_LEVELS as readonly string[]).includes(v) } -function isValidIsoDate (v: unknown): v is string { +function isValidIsoDate(v: unknown): v is string { if (typeof v !== 'string' || !ISO_DATE_RE.test(v)) return false const t = Date.parse(v + 'T00:00:00Z') return Number.isFinite(t) @@ -42,12 +42,12 @@ function isValidIsoDate (v: unknown): v is string { const BAR_COLOR_MODES: readonly BarColorMode[] = ['status', 'priority', 'assignee', 'component', 'milestone', 'none'] /** Type-guard for a persisted bar-colour mode. Exported so GanttView can reuse it. */ -export function isBarColorMode (v: unknown): v is BarColorMode { +export function isBarColorMode(v: unknown): v is BarColorMode { return typeof v === 'string' && (BAR_COLOR_MODES as readonly string[]).includes(v) } /** Read the Gantt-specific keys back out of a (possibly mixed) viewOptions blob. */ -export function extractGanttSavedView (raw: Record | undefined): GanttSavedViewOptions { +export function extractGanttSavedView(raw: Record | undefined): GanttSavedViewOptions { if (raw == null) return { zoomLevel: 'week' } const zoom = isZoomLevel(raw.ganttZoomLevel) ? raw.ganttZoomLevel : 'week' const out: GanttSavedViewOptions = { zoomLevel: zoom } @@ -76,7 +76,7 @@ export function extractGanttSavedView (raw: Record | undefined) * `ganttPanAnchorDate` in the base is dropped — pinning the time window * unchecked must clear a previously-saved anchor. */ -export function mergeGanttSavedView ( +export function mergeGanttSavedView( base: Record | undefined, opts: GanttSavedViewOptions ): Record { @@ -108,7 +108,7 @@ export function mergeGanttSavedView ( } /** Format a millisecond timestamp as 'YYYY-MM-DD' (UTC). */ -export function isoDateForTimestamp (t: number): string { +export function isoDateForTimestamp(t: number): string { const d = new Date(t) const yyyy = d.getUTCFullYear().toString().padStart(4, '0') const mm = (d.getUTCMonth() + 1).toString().padStart(2, '0') @@ -117,7 +117,7 @@ export function isoDateForTimestamp (t: number): string { } /** Parse 'YYYY-MM-DD' to UTC-midnight ms. Returns NaN on malformed input. */ -export function timestampForIsoDate (iso: string): number { +export function timestampForIsoDate(iso: string): number { if (!ISO_DATE_RE.test(iso)) return Number.NaN return Date.parse(iso + 'T00:00:00Z') } diff --git a/packages/gantt/src/long-press.ts b/packages/gantt/src/long-press.ts index 3a835f361a..b0c79da0ca 100644 --- a/packages/gantt/src/long-press.ts +++ b/packages/gantt/src/long-press.ts @@ -29,21 +29,21 @@ export const MOVE_THRESHOLD_PX = 10 export type LongPressState = | { kind: 'idle' } - | { kind: 'pending', startedAt: number, x: number, y: number } + | { kind: 'pending'; startedAt: number; x: number; y: number } | { kind: 'fired' } | { kind: 'cancelled' } export type LongPressEvent = - | { type: 'start', now: number, x: number, y: number } - | { type: 'tick', now: number } - | { type: 'move', now: number, x: number, y: number } + | { type: 'start'; now: number; x: number; y: number } + | { type: 'tick'; now: number } + | { type: 'move'; now: number; x: number; y: number } | { type: 'cancel' } -export function initial (): LongPressState { +export function initial(): LongPressState { return { kind: 'idle' } } -export function reduceLongPress (state: LongPressState, event: LongPressEvent): LongPressState { +export function reduceLongPress(state: LongPressState, event: LongPressEvent): LongPressState { switch (event.type) { case 'start': if (state.kind === 'pending') return state // second start while pending is a no-op diff --git a/packages/gantt/src/pan-target.ts b/packages/gantt/src/pan-target.ts index 8c48473432..3f5fc33de9 100644 --- a/packages/gantt/src/pan-target.ts +++ b/packages/gantt/src/pan-target.ts @@ -24,11 +24,11 @@ export const PAN_EXCLUDED_SELECTOR = [ '.bar-resize-handle' ].join(', ') -export function shouldStartCanvasPan (target: Pick | null): boolean { +export function shouldStartCanvasPan(target: Pick | null): boolean { if (target === null) return false return target.closest(PAN_EXCLUDED_SELECTOR) === null } -export function shouldPromoteCanvasPan (dx: number, dy: number, threshold = 3): boolean { +export function shouldPromoteCanvasPan(dx: number, dy: number, threshold = 3): boolean { return Math.abs(dx) > threshold || Math.abs(dy) > threshold } diff --git a/packages/gantt/src/pinch-zoom.ts b/packages/gantt/src/pinch-zoom.ts index cd16518277..669a5dc154 100644 --- a/packages/gantt/src/pinch-zoom.ts +++ b/packages/gantt/src/pinch-zoom.ts @@ -28,36 +28,36 @@ export interface Point { export type PinchState = | { kind: 'idle' } - | { kind: 'single', id: number, x: number, y: number } + | { kind: 'single'; id: number; x: number; y: number } | { - kind: 'pinch' - idA: number - idB: number - a: Point - b: Point - center: Point - initialDistance: number - currentDistance: number - initialPxPerDay: number - } + kind: 'pinch' + idA: number + idB: number + a: Point + b: Point + center: Point + initialDistance: number + currentDistance: number + initialPxPerDay: number + } export type PinchEvent = - | { type: 'down', id: number, x: number, y: number, pxPerDay: number } - | { type: 'move', id: number, x: number, y: number } - | { type: 'up', id: number } + | { type: 'down'; id: number; x: number; y: number; pxPerDay: number } + | { type: 'move'; id: number; x: number; y: number } + | { type: 'up'; id: number } | { type: 'cancel' } -export function initial (): PinchState { +export function initial(): PinchState { return { kind: 'idle' } } -export function computeDistance (a: Point, b: Point): number { +export function computeDistance(a: Point, b: Point): number { const dx = b.x - a.x const dy = b.y - a.y return Math.sqrt(dx * dx + dy * dy) } -export function computeCenter (a: Point, b: Point): Point { +export function computeCenter(a: Point, b: Point): Point { return { x: (a.x + b.x) / 2, y: (a.y + b.y) / 2 } } @@ -69,7 +69,7 @@ export function computeCenter (a: Point, b: Point): Point { * * Defensive: non-finite or zero ratios are treated as "no change". */ -export function computePxPerDayFromRatio (initialPpd: number, ratio: number): number { +export function computePxPerDayFromRatio(initialPpd: number, ratio: number): number { if (!Number.isFinite(ratio) || ratio <= 0) return initialPpd if (!Number.isFinite(initialPpd) || initialPpd <= 0) return MIN_PPD const next = initialPpd * ratio @@ -78,7 +78,7 @@ export function computePxPerDayFromRatio (initialPpd: number, ratio: number): nu return next } -export function reducePinch (state: PinchState, event: PinchEvent): PinchState { +export function reducePinch(state: PinchState, event: PinchEvent): PinchState { switch (event.type) { case 'down': return onDown(state, event) @@ -91,7 +91,7 @@ export function reducePinch (state: PinchState, event: PinchEvent): PinchState { } } -function onDown (state: PinchState, event: Extract): PinchState { +function onDown(state: PinchState, event: Extract): PinchState { if (state.kind === 'idle') { return { kind: 'single', id: event.id, x: event.x, y: event.y } } @@ -115,7 +115,7 @@ function onDown (state: PinchState, event: Extract return state } -function onMove (state: PinchState, event: Extract): PinchState { +function onMove(state: PinchState, event: Extract): PinchState { if (state.kind === 'single') { if (state.id !== event.id) return state return { ...state, x: event.x, y: event.y } @@ -129,7 +129,7 @@ function onMove (state: PinchState, event: Extract return state } -function onUp (state: PinchState, event: Extract): PinchState { +function onUp(state: PinchState, event: Extract): PinchState { if (state.kind === 'single') { if (state.id !== event.id) return state return { kind: 'idle' } diff --git a/packages/gantt/src/pointer-classify.ts b/packages/gantt/src/pointer-classify.ts index e91e3d96b4..5603fe6c77 100644 --- a/packages/gantt/src/pointer-classify.ts +++ b/packages/gantt/src/pointer-classify.ts @@ -24,7 +24,7 @@ export type PointerKind = PointerEvent['pointerType'] | 'mouse' | 'touch' | 'pen export type PointerAction = 'tap' | 'drag' | 'resize' | 'connector' export type PointerDecision = 'allow' | 'long-press' | 'block' -export function classifyPointer (mode: LayoutMode, pointerType: PointerKind, action: PointerAction): PointerDecision { +export function classifyPointer(mode: LayoutMode, pointerType: PointerKind, action: PointerAction): PointerDecision { if (mode === 'phone') { // Phone is strictly read-only regardless of input device. Only `tap` // (open Quick-Info / activate Sidebar drawer) is allowed. diff --git a/packages/gantt/src/sidebar-columns.ts b/packages/gantt/src/sidebar-columns.ts index 5aa138ef40..24410512ae 100644 --- a/packages/gantt/src/sidebar-columns.ts +++ b/packages/gantt/src/sidebar-columns.ts @@ -93,7 +93,7 @@ const KNOWN_SET: ReadonlySet = new Set(ALL_COLUMN_KEYS) * unknown keys, deduplicates, and falls back to {@link DEFAULT_COLUMNS} * when the input shape is wrong or the resulting list would be empty. */ -export function parseColumns (raw: unknown): SidebarColumnKey[] { +export function parseColumns(raw: unknown): SidebarColumnKey[] { if (!Array.isArray(raw)) return [...DEFAULT_COLUMNS] const seen = new Set() const out: SidebarColumnKey[] = [] @@ -120,7 +120,7 @@ export function parseColumns (raw: unknown): SidebarColumnKey[] { * the defaults so a partially-written blob can never leave a column * width-less. */ -export function parseWidths (raw: unknown): Record { +export function parseWidths(raw: unknown): Record { const out: Record = { ...DEFAULT_WIDTHS } if (raw == null || typeof raw !== 'object' || Array.isArray(raw)) return out for (const [key, value] of Object.entries(raw as Record)) { @@ -132,7 +132,7 @@ export function parseWidths (raw: unknown): Record { } /** Clamp + round a width value so persisted/dragged values stay sane. */ -export function clampWidth (px: number): number { +export function clampWidth(px: number): number { if (!Number.isFinite(px)) return MIN_WIDTH const rounded = Math.round(px) if (rounded < MIN_WIDTH) return MIN_WIDTH @@ -150,7 +150,7 @@ export function clampWidth (px: number): number { * coerced to {@link DEFAULT_WIDTHS} for that column — matches the * defensive parsing contract in {@link parseColumns}. */ -export function computeTotalWidth (cols: readonly SidebarColumnKey[], widths: Record): number { +export function computeTotalWidth(cols: readonly SidebarColumnKey[], widths: Record): number { let sum = 0 for (const c of cols) { const override = widths[c] diff --git a/packages/gantt/src/time-scale.ts b/packages/gantt/src/time-scale.ts index 94017e690e..ae17adf095 100644 --- a/packages/gantt/src/time-scale.ts +++ b/packages/gantt/src/time-scale.ts @@ -15,7 +15,7 @@ const PX_PER_DAY: Record = { } /** Snap any Timestamp (ms) to the start of its UTC day. */ -export function snapToUtcMidnight (t: number): number { +export function snapToUtcMidnight(t: number): number { const d = new Date(t) return Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate()) } @@ -30,7 +30,7 @@ export function snapToUtcMidnight (t: number): number { * * `null`/`undefined` (unscheduled / no deadline) map to `null`. */ -export function toGanttDay (t: number | null | undefined): number | null { +export function toGanttDay(t: number | null | undefined): number | null { return t == null ? null : snapToUtcMidnight(t) } @@ -45,7 +45,7 @@ export interface TimeScale { ticks: (range: [number, number]) => Tick[] } -export function createTimeScale (zoom: ZoomLevel, origin: number, pxPerDayOverride?: number): TimeScale { +export function createTimeScale(zoom: ZoomLevel, origin: number, pxPerDayOverride?: number): TimeScale { const pxPerDay = pxPerDayOverride ?? PX_PER_DAY[zoom] const originSnapped = snapToUtcMidnight(origin) @@ -192,7 +192,7 @@ export function createTimeScale (zoom: ZoomLevel, origin: number, pxPerDayOverri } /** ISO 8601 week number for a UTC date. */ -function isoWeekNumber (d: Date): number { +function isoWeekNumber(d: Date): number { const target = new Date(Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate())) const dayNum = (target.getUTCDay() + 6) % 7 target.setUTCDate(target.getUTCDate() - dayNum + 3) diff --git a/packages/gantt/src/toolbar-overflow.ts b/packages/gantt/src/toolbar-overflow.ts index 75011c7c6d..51f30e89b2 100644 --- a/packages/gantt/src/toolbar-overflow.ts +++ b/packages/gantt/src/toolbar-overflow.ts @@ -77,7 +77,7 @@ export interface ToolbarOverflowResult { * it is, see `ganttToolbarHiddenTiers` — so the arithmetic * neither reserves its width nor a gap for it. */ -export function computeToolbarOverflow ( +export function computeToolbarOverflow( present: readonly ToolbarTier[], widths: Readonly>>, available: number, diff --git a/packages/gantt/src/tree-expand-store.ts b/packages/gantt/src/tree-expand-store.ts index bf37353626..55636355c6 100644 --- a/packages/gantt/src/tree-expand-store.ts +++ b/packages/gantt/src/tree-expand-store.ts @@ -47,7 +47,7 @@ export interface TreeExpandStore { subscribe: (cb: (collapsed: Set) => void) => () => void } -function readPersisted (storage: Storage, key: string): Set { +function readPersisted(storage: Storage, key: string): Set { try { const raw = storage.getItem(key) if (raw === null || raw === '') return new Set() @@ -63,7 +63,7 @@ function readPersisted (storage: Storage, key: string): Set { } } -function writePersisted (storage: Storage, key: string, value: Set): void { +function writePersisted(storage: Storage, key: string, value: Set): void { try { storage.setItem(key, JSON.stringify([...value])) } catch { @@ -78,12 +78,12 @@ function writePersisted (storage: Storage, key: string, value: Set): voi * key would not be observed without a manual reload (acceptable since the * user typically has a single Gantt tab open per project). */ -export function createTreeExpandStore (projectId: string, storage: Storage): TreeExpandStore { +export function createTreeExpandStore(projectId: string, storage: Storage): TreeExpandStore { const key = KEY_PREFIX + projectId let current: Set = readPersisted(storage, key) const listeners = new Set<(c: Set) => void>() - function commit (next: Set): void { + function commit(next: Set): void { current = next writePersisted(storage, key, current) for (const cb of listeners) cb(current) diff --git a/packages/gantt/src/types.ts b/packages/gantt/src/types.ts index fc2dff173b..2cb740c7a1 100644 --- a/packages/gantt/src/types.ts +++ b/packages/gantt/src/types.ts @@ -113,75 +113,75 @@ export interface DragTarget { */ export type DragState = | { kind: 'idle' } - | { kind: 'hover-bar', issueId: string, edge: 'left' | 'right' | 'body' | 'none' } + | { kind: 'hover-bar'; issueId: string; edge: 'left' | 'right' | 'body' | 'none' } | { - kind: 'dragging-body' - target: TTarget - originStart: number - originEnd: number - cursorStartX: number - previewStart: number - previewEnd: number - /** Bulk co-drag state: other selected issues being shifted in sync. */ - coDrag?: { - members: Array<{ issueId: string, originStart: number, originEnd: number }> - minDeltaMs: number - maxDeltaMs: number - anchorDeltaMs: number + kind: 'dragging-body' + target: TTarget + originStart: number + originEnd: number + cursorStartX: number + previewStart: number + previewEnd: number + /** Bulk co-drag state: other selected issues being shifted in sync. */ + coDrag?: { + members: Array<{ issueId: string; originStart: number; originEnd: number }> + minDeltaMs: number + maxDeltaMs: number + anchorDeltaMs: number + } } - } | { - kind: 'resizing-left' - target: TTarget - originStart: number - originEnd: number - cursorStartX: number - previewStart: number - } + kind: 'resizing-left' + target: TTarget + originStart: number + originEnd: number + cursorStartX: number + previewStart: number + } | { - kind: 'resizing-right' - target: TTarget - originStart: number - originEnd: number - cursorStartX: number - previewEnd: number - } + kind: 'resizing-right' + target: TTarget + originStart: number + originEnd: number + cursorStartX: number + previewEnd: number + } | { - kind: 'dragging-unscheduled' - target: TTarget - /** Anchor date the drag was started from (defaults to today at UTC midnight). */ - originStart: number - /** originStart + 1 day; used for ghost-outline / commit symmetry with dragging-body. */ - originEnd: number - cursorStartX: number - previewStart: number - previewEnd: number - /** + kind: 'dragging-unscheduled' + target: TTarget + /** Anchor date the drag was started from (defaults to today at UTC midnight). */ + originStart: number + /** originStart + 1 day; used for ghost-outline / commit symmetry with dragging-body. */ + originEnd: number + cursorStartX: number + previewStart: number + previewEnd: number + /** * True once the cursor has been over the canvas during the drag and a real * canvas-X has been observed. Guards against the click-without-drag case * where mouseup fires before the user has moved over the canvas — committing * such a "drag" would schedule the issue to today silently. `commitDrag` * treats `dragging-unscheduled && !hasCanvasTarget` as a no-op. */ - hasCanvasTarget: boolean - } + hasCanvasTarget: boolean + } | { - kind: 'connector-drawing' - /** Source item the user is drawing the dependency from. */ - source: TNode - /** Pixel x/y of the connector-dot on the source bar (where the curve starts). */ - originPx: { x: number, y: number } - /** Live cursor x/y in canvas-content coordinates (where the curve ends). */ - cursorPx: { x: number, y: number } - } + kind: 'connector-drawing' + /** Source item the user is drawing the dependency from. */ + source: TNode + /** Pixel x/y of the connector-dot on the source bar (where the curve starts). */ + originPx: { x: number; y: number } + /** Live cursor x/y in canvas-content coordinates (where the curve ends). */ + cursorPx: { x: number; y: number } + } | { - kind: 'connector-target-hover' - source: TNode - originPx: { x: number, y: number } - cursorPx: { x: number, y: number } - /** Candidate target item under the pointer. */ - target: TNode - } + kind: 'connector-target-hover' + source: TNode + originPx: { x: number; y: number } + cursorPx: { x: number; y: number } + /** Candidate target item under the pointer. */ + target: TNode + } /** * Input events fed into the drag-controller reducer. @@ -202,40 +202,40 @@ export type DragState = - | { type: 'mouseenter-bar', issueId: string, edge: 'left' | 'right' | 'body' } + | { type: 'mouseenter-bar'; issueId: string; edge: 'left' | 'right' | 'body' } | { type: 'mouseleave-bar' } | { - type: 'mousedown-bar' - target: TTarget - /** Start / end dates of the target at mousedown; reducer stores these + type: 'mousedown-bar' + target: TTarget + /** Start / end dates of the target at mousedown; reducer stores these * as `originStart` / `originEnd` and adds the cursor-delta to compute * previews. Captured here at the dispatch boundary so the doc-agnostic * reducer doesn't need to know which field on `target.doc` to read. */ - originStart: number - originEnd: number - edge: 'left' | 'right' | 'body' - cursorX: number - /** Bulk co-drag state: other selected issues to shift in sync. */ - coDrag?: { - members: Array<{ issueId: string, originStart: number, originEnd: number }> - minDeltaMs: number - maxDeltaMs: number + originStart: number + originEnd: number + edge: 'left' | 'right' | 'body' + cursorX: number + /** Bulk co-drag state: other selected issues to shift in sync. */ + coDrag?: { + members: Array<{ issueId: string; originStart: number; originEnd: number }> + minDeltaMs: number + maxDeltaMs: number + } } - } - | { type: 'mousedown-unscheduled', target: TTarget, cursorX: number } - | { type: 'mousemove', cursorX: number, canvasX?: number } + | { type: 'mousedown-unscheduled'; target: TTarget; cursorX: number } + | { type: 'mousemove'; cursorX: number; canvasX?: number } | { type: 'mouseup' } | { type: 'cancel' } | { - type: 'mousedown-connector' - source: TNode - originPx: { x: number, y: number } - cursorPx: { x: number, y: number } - } + type: 'mousedown-connector' + source: TNode + originPx: { x: number; y: number } + cursorPx: { x: number; y: number } + } | { - type: 'mousemove-connector' - cursorPx: { x: number, y: number } - /** Bar under the cursor right now, or null when over empty canvas. */ - hoveredBar: TNode | null - } + type: 'mousemove-connector' + cursorPx: { x: number; y: number } + /** Bar under the cursor right now, or null when over empty canvas. */ + hoveredBar: TNode | null + } | { type: 'mouseup-connector' } diff --git a/packages/gantt/src/viewport.ts b/packages/gantt/src/viewport.ts index 266faaadce..087e174a03 100644 --- a/packages/gantt/src/viewport.ts +++ b/packages/gantt/src/viewport.ts @@ -8,7 +8,7 @@ import { isWorkingDay } from './working-days' const DAY_MS = 86_400_000 -export function computeCanvasViewportWidth ( +export function computeCanvasViewportWidth( scrollerClientWidth: number, sidebarWidth: number, resizeCellWidth: number @@ -16,22 +16,22 @@ export function computeCanvasViewportWidth ( return Math.max(1, scrollerClientWidth - sidebarWidth - resizeCellWidth) } -export function computeCanvasRenderWidth (dataRangeWidth: number, viewportWidth: number): number { +export function computeCanvasRenderWidth(dataRangeWidth: number, viewportWidth: number): number { return Math.max(1, dataRangeWidth, viewportWidth) } -export function computeAdaptivePxPerDay (basePxPerDay: number, dataRangeWidth: number, viewportWidth: number): number { +export function computeAdaptivePxPerDay(basePxPerDay: number, dataRangeWidth: number, viewportWidth: number): number { if (basePxPerDay <= 0 || dataRangeWidth <= 0 || viewportWidth <= 0) return basePxPerDay if (dataRangeWidth >= viewportWidth) return basePxPerDay return basePxPerDay * (viewportWidth / dataRangeWidth) } -export function computeTickViewport ( +export function computeTickViewport( viewportLeft: number, viewportRight: number, dataRangeWidth: number, overscan: number = 100 -): { left: number, right: number } { +): { left: number; right: number } { const maxRight = Math.max(1, dataRangeWidth) return { left: Math.min(Math.max(0, viewportLeft - overscan), maxRight), @@ -47,7 +47,7 @@ export function computeTickViewport ( * viewport ranges; the default 366 covers a full year on screen, which is * already beyond the supported zoom-out scenarios. */ -export function nonWorkingDaysInRange ( +export function nonWorkingDaysInRange( fromMs: number, toMs: number, cfg: WorkingCalendar | undefined, diff --git a/packages/gantt/src/working-days.ts b/packages/gantt/src/working-days.ts index ddf5c4ae57..116dca9096 100644 --- a/packages/gantt/src/working-days.ts +++ b/packages/gantt/src/working-days.ts @@ -20,11 +20,11 @@ const DAY_MS = 86_400_000 * a start move by calendar DAY rather than raw milliseconds (stored issues can * reach the scheduler with a time-of-day on the cascade-commit path). */ -export function utcMidnight (t: number): number { +export function utcMidnight(t: number): number { return Math.floor(t / DAY_MS) * DAY_MS } -function holidayHas (cfg: WorkingCalendar, midnight: number): boolean { +function holidayHas(cfg: WorkingCalendar, midnight: number): boolean { // Linear scan — typical configs have ≤ 30 entries. Switch to Set if // a very large holiday set would become slow; current usage is well below. for (const h of cfg.holidays) { @@ -38,7 +38,7 @@ function holidayHas (cfg: WorkingCalendar, midnight: number): boolean { * before comparing weekday and holiday entries — so any time-of-day on a * working date is still a working day. */ -export function isWorkingDay (t: number, cfg: WorkingCalendar): boolean { +export function isWorkingDay(t: number, cfg: WorkingCalendar): boolean { const midnight = utcMidnight(t) if (holidayHas(cfg, midnight)) return false const date = new Date(midnight) @@ -54,7 +54,7 @@ export function isWorkingDay (t: number, cfg: WorkingCalendar): boolean { * 60 calendar-day iterations as a safety bail when no working days are * configured (weekdayMask = 0 + no holidays granting any day). */ -export function nextWorkingDay (t: number, cfg: WorkingCalendar): number { +export function nextWorkingDay(t: number, cfg: WorkingCalendar): number { let cur = utcMidnight(t) for (let i = 0; i < 60; i++) { if (isWorkingDay(cur, cfg)) return cur @@ -71,7 +71,7 @@ export function nextWorkingDay (t: number, cfg: WorkingCalendar): number { * Safety: aborts after `|n| × 7 + 60` iterations to guard against * non-progressing loops when all weekdays are non-working. */ -export function addWorkingDays (t: number, n: number, cfg: WorkingCalendar): number { +export function addWorkingDays(t: number, n: number, cfg: WorkingCalendar): number { if (n === 0) return t const step = n > 0 ? DAY_MS : -DAY_MS let remaining = Math.abs(n) @@ -92,7 +92,7 @@ export function addWorkingDays (t: number, n: number, cfg: WorkingCalendar): num * * Used by critical-path slack rendering and by potential UI summaries. */ -export function workingDaysBetween (a: number, b: number, cfg: WorkingCalendar): number { +export function workingDaysBetween(a: number, b: number, cfg: WorkingCalendar): number { const sign = a <= b ? 1 : -1 const start = utcMidnight(Math.min(a, b)) const end = utcMidnight(Math.max(a, b)) @@ -113,7 +113,7 @@ export function workingDaysBetween (a: number, b: number, cfg: WorkingCalendar): * equals `utcMidnight(to)` whenever `to` falls on a working day and `from` * is UTC-midnight-normalized. */ -export function workingDayDelta (from: number, to: number, cfg: WorkingCalendar): number { +export function workingDayDelta(from: number, to: number, cfg: WorkingCalendar): number { const a = utcMidnight(from) const b = utcMidnight(to) if (a === b) return 0 @@ -140,49 +140,49 @@ export function workingDayDelta (from: number, to: number, cfg: WorkingCalendar) * +1-day (causing FS-anchored successors to be scheduled one day too early * relative to CPM). */ -export function fsAnchor (predDue: number, lag: number, cfg: WorkingCalendar | undefined): number { +export function fsAnchor(predDue: number, lag: number, cfg: WorkingCalendar | undefined): number { if (cfg === undefined) return predDue + (1 + lag) * DAY_MS return addWorkingDays(predDue, 1 + lag, cfg) } /** Start-to-Start anchor: successor starts `lag` working days after `predStart`. */ -export function ssAnchor (predStart: number, lag: number, cfg: WorkingCalendar | undefined): number { +export function ssAnchor(predStart: number, lag: number, cfg: WorkingCalendar | undefined): number { if (cfg === undefined) return predStart + lag * DAY_MS return addWorkingDays(predStart, lag, cfg) } /** Finish-to-Finish anchor: successor finishes `lag` working days after `predDue`. */ -export function ffAnchor (predDue: number, lag: number, cfg: WorkingCalendar | undefined): number { +export function ffAnchor(predDue: number, lag: number, cfg: WorkingCalendar | undefined): number { if (cfg === undefined) return predDue + lag * DAY_MS return addWorkingDays(predDue, lag, cfg) } /** Start-to-Finish anchor: successor finishes `lag` working days after `predStart`. */ -export function sfAnchor (predStart: number, lag: number, cfg: WorkingCalendar | undefined): number { +export function sfAnchor(predStart: number, lag: number, cfg: WorkingCalendar | undefined): number { if (cfg === undefined) return predStart + lag * DAY_MS return addWorkingDays(predStart, lag, cfg) } /** Inverse of {@link fsAnchor} for backward (pull-predecessor) traversal. */ -export function fsReverseAnchor (succStart: number, lag: number, cfg: WorkingCalendar | undefined): number { +export function fsReverseAnchor(succStart: number, lag: number, cfg: WorkingCalendar | undefined): number { if (cfg === undefined) return succStart - (1 + lag) * DAY_MS return addWorkingDays(succStart, -(1 + lag), cfg) } /** Inverse of {@link ssAnchor}. */ -export function ssReverseAnchor (succStart: number, lag: number, cfg: WorkingCalendar | undefined): number { +export function ssReverseAnchor(succStart: number, lag: number, cfg: WorkingCalendar | undefined): number { if (cfg === undefined) return succStart - lag * DAY_MS return addWorkingDays(succStart, -lag, cfg) } /** Inverse of {@link ffAnchor}. */ -export function ffReverseAnchor (succDue: number, lag: number, cfg: WorkingCalendar | undefined): number { +export function ffReverseAnchor(succDue: number, lag: number, cfg: WorkingCalendar | undefined): number { if (cfg === undefined) return succDue - lag * DAY_MS return addWorkingDays(succDue, -lag, cfg) } /** Inverse of {@link sfAnchor}. */ -export function sfReverseAnchor (succDue: number, lag: number, cfg: WorkingCalendar | undefined): number { +export function sfReverseAnchor(succDue: number, lag: number, cfg: WorkingCalendar | undefined): number { if (cfg === undefined) return succDue - lag * DAY_MS return addWorkingDays(succDue, -lag, cfg) } diff --git a/packages/gantt/src/y-viewport.ts b/packages/gantt/src/y-viewport.ts index f77256ff15..4dde0fc9f5 100644 --- a/packages/gantt/src/y-viewport.ts +++ b/packages/gantt/src/y-viewport.ts @@ -49,7 +49,7 @@ export interface YViewportInput { /** Output of {@link computeYViewport}. */ export interface YViewportSnapshot { /** Inclusive `startIndex`, exclusive `endIndex` of the rendered slice. */ - visibleRange: { startIndex: number, endIndex: number } + visibleRange: { startIndex: number; endIndex: number } /** Total scrollable height in pixels (`rowCount × rowHeight`). */ totalSize: number /** Spacer height above the first rendered row, in pixels. */ @@ -65,7 +65,7 @@ const DEFAULT_OVERSCAN = 5 * non-positive `rowHeight` (returns the full range) and negative scrollTop * (rubber-band → clamp to 0). */ -export function computeYViewport (input: YViewportInput): YViewportSnapshot { +export function computeYViewport(input: YViewportInput): YViewportSnapshot { const { rowCount, rowHeight, viewportHeight } = input const overscan = input.overscan ?? DEFAULT_OVERSCAN @@ -108,7 +108,7 @@ export function computeYViewport (input: YViewportInput): YViewportSnapshot { } /** Pixel-y of a given row index. Clamps negative indices to 0. */ -export function rowIndexToY (index: number, rowHeight: number): number { +export function rowIndexToY(index: number, rowHeight: number): number { return Math.max(0, index) * rowHeight } @@ -116,7 +116,7 @@ export function rowIndexToY (index: number, rowHeight: number): number { * Pixel-y → row index (floor). Clamps to `[0, totalRows-1]`. Returns 0 for * an empty list or non-positive `rowHeight` (defensive). */ -export function yToRowIndex (y: number, rowHeight: number, totalRows: number): number { +export function yToRowIndex(y: number, rowHeight: number, totalRows: number): number { if (totalRows <= 0 || rowHeight <= 0 || !Number.isFinite(rowHeight)) return 0 if (y <= 0) return 0 const idx = Math.floor(y / rowHeight) @@ -129,7 +129,7 @@ export function yToRowIndex (y: number, rowHeight: number, totalRows: number): n * rows whose `[y, y + height)` intersects `bounds`. Used by the sidebar and * arrow layer when the canvas already emits rows in their layout-y space. */ -export function sliceVisibleRows (rows: readonly T[], bounds: YBounds): T[] { +export function sliceVisibleRows(rows: readonly T[], bounds: YBounds): T[] { if (rows.length === 0) return [] const out: T[] = [] for (const r of rows) { diff --git a/packages/gantt/src/zoom-dropdown.ts b/packages/gantt/src/zoom-dropdown.ts index d965149358..21f31fc601 100644 --- a/packages/gantt/src/zoom-dropdown.ts +++ b/packages/gantt/src/zoom-dropdown.ts @@ -43,7 +43,7 @@ export const MAX_VISIBLE_DAYS = 999 * that preset (the user wheeled exactly back onto a preset). * - Else return `'custom'`. */ -export function dropdownSelectionForPxPerDay (userPxPerDay: number | null, zoom: ZoomLevel): DropdownSelection { +export function dropdownSelectionForPxPerDay(userPxPerDay: number | null, zoom: ZoomLevel): DropdownSelection { if (userPxPerDay === null) return zoom if (!Number.isFinite(userPxPerDay) || userPxPerDay <= 0) return 'custom' const levels: ZoomLevel[] = ['day', 'week', 'month', 'quarter'] @@ -61,7 +61,7 @@ export function dropdownSelectionForPxPerDay (userPxPerDay: number | null, zoom: * Always returns at least `MIN_VISIBLE_DAYS` (1) and defends against * NaN, zero or negative inputs so the UI never displays nonsense. */ -export function visibleDaysFromPxPerDay (viewportWidth: number, pxPerDay: number): number { +export function visibleDaysFromPxPerDay(viewportWidth: number, pxPerDay: number): number { if (!Number.isFinite(viewportWidth) || viewportWidth <= 0) return MIN_VISIBLE_DAYS if (!Number.isFinite(pxPerDay) || pxPerDay <= 0) return MIN_VISIBLE_DAYS const raw = Math.round(viewportWidth / pxPerDay) @@ -78,7 +78,7 @@ export function visibleDaysFromPxPerDay (viewportWidth: number, pxPerDay: number * - Returns `MIN_PPD` for invalid viewport widths so the caller can * still apply the result without further error handling. */ -export function pxPerDayFromVisibleDays (viewportWidth: number, days: number): number { +export function pxPerDayFromVisibleDays(viewportWidth: number, days: number): number { if (!Number.isFinite(viewportWidth) || viewportWidth <= 0) return MIN_PPD let clamped: number if (!Number.isFinite(days)) { diff --git a/packages/gantt/src/zoom.ts b/packages/gantt/src/zoom.ts index 243b908f1e..bce0ba39af 100644 --- a/packages/gantt/src/zoom.ts +++ b/packages/gantt/src/zoom.ts @@ -31,7 +31,7 @@ export const ZOOM_PX_PER_DAY: Record = { } /** Clamp px/day to the supported continuous range. */ -export function clampPxPerDay (ppd: number): number { +export function clampPxPerDay(ppd: number): number { if (Number.isNaN(ppd)) return MIN_PPD if (ppd <= 0) return MIN_PPD if (ppd < MIN_PPD) return MIN_PPD @@ -46,7 +46,7 @@ export function clampPxPerDay (ppd: number): number { * pixel range. Bump the factor for the low-density bands so users feel * the same responsiveness at every zoom level. */ -export function adaptiveWheelFactor (currentPpd: number): number { +export function adaptiveWheelFactor(currentPpd: number): number { if (!Number.isFinite(currentPpd) || currentPpd <= 0) return 0.012 if (currentPpd < 4) return 0.012 return 0.006 @@ -66,7 +66,7 @@ export function adaptiveWheelFactor (currentPpd: number): number { * `adaptiveWheelFactor` is used. Callers that need a fixed sensitivity * (e.g. tests) can pass an explicit factor. */ -export function applyWheelZoom (currentPpd: number, deltaY: number, factor?: number): number { +export function applyWheelZoom(currentPpd: number, deltaY: number, factor?: number): number { if (!Number.isFinite(currentPpd) || currentPpd <= 0) return clampPxPerDay(MIN_PPD) if (!Number.isFinite(deltaY) || deltaY === 0) return clampPxPerDay(currentPpd) const f = factor ?? adaptiveWheelFactor(currentPpd) @@ -81,7 +81,7 @@ export function applyWheelZoom (currentPpd: number, deltaY: number, factor?: num * relative to the scroller, the current scrollLeft, and the old/new * px-per-day values. Origin is implicit (cancels out). */ -export function cursorAnchoredScrollLeft ( +export function cursorAnchoredScrollLeft( cursorX: number, oldScrollLeft: number, oldPpd: number, @@ -113,7 +113,7 @@ export function cursorAnchoredScrollLeft ( * `createTimeScale(zoom, origin, pxPerDayOverride)` API: callers don't * need a new tick generator. */ -export function pxPerDayToTickZoom (ppd: number): ZoomLevel { +export function pxPerDayToTickZoom(ppd: number): ZoomLevel { if (!Number.isFinite(ppd) || ppd <= 0) return 'quarter' if (ppd > 20) return 'day' if (ppd > 7) return 'week' @@ -122,6 +122,6 @@ export function pxPerDayToTickZoom (ppd: number): ZoomLevel { } /** Inverse of `pxPerDayToTickZoom` for the toolbar "active preset" highlight. */ -export function presetForPxPerDay (ppd: number): ZoomLevel { +export function presetForPxPerDay(ppd: number): ZoomLevel { return pxPerDayToTickZoom(ppd) } diff --git a/packages/importer/src/huly/cards.ts b/packages/importer/src/huly/cards.ts index eed7ebff77..26994d1bf7 100644 --- a/packages/importer/src/huly/cards.ts +++ b/packages/importer/src/huly/cards.ts @@ -338,7 +338,7 @@ export class CardsProcessor { return { _class: card.class.MasterTag, props: { - _id: this.metadataRegistry.getRef(filePath), + _id: this.metadataRegistry.getRef(filePath) as Ref, space: core.space.Model, extends: parentMasterTagId ?? card.class.Card, label: ('embedded:embedded:' + title) as IntlString, @@ -407,7 +407,7 @@ export class CardsProcessor { return { _class: card.class.Tag, props: { - _id: this.metadataRegistry.getRef(filePath), + _id: this.metadataRegistry.getRef(filePath) as Ref, space: core.space.Model, extends: parentTagId ?? masterTagId, label: ('embedded:embedded:' + title) as IntlString, diff --git a/packages/importer/src/importer/importer.ts b/packages/importer/src/importer/importer.ts index 64b0489820..3d3562edb0 100644 --- a/packages/importer/src/importer/importer.ts +++ b/packages/importer/src/importer/importer.ts @@ -1145,7 +1145,7 @@ export class WorkspaceImporter { documents.mixin.DocumentTemplate, undefined, parentProjectDocumentId, - templateId, + templateId as unknown as Ref, template.docPrefix, template.code ?? '', template.title, @@ -1228,7 +1228,7 @@ export class WorkspaceImporter { requests: 0, labels: 0 }, - template.id + template.id as unknown as Ref ) await ops.createMixin(template.id, documents.class.Document, spaceId, documents.mixin.DocumentTemplate, { @@ -1420,7 +1420,7 @@ export class WorkspaceImporter { _id as Ref | undefined ) } else { - await this.client.createDoc(_class, props.space, props, _id) + await this.client.createDoc(_class, props.space, props as Data>, _id) } } @@ -1446,7 +1446,7 @@ export class WorkspaceImporter { _class, space, mixinClass, - data + data as Data> ) } } diff --git a/packages/presentation/src/components/DocPopup.svelte b/packages/presentation/src/components/DocPopup.svelte index fb12ff9ba8..fa09225a2e 100644 --- a/packages/presentation/src/components/DocPopup.svelte +++ b/packages/presentation/src/components/DocPopup.svelte @@ -105,7 +105,7 @@ let selection = 0 let list: ListView - function handleSelection(evt: Event | undefined, objects: Doc[], selection: number): void { + function handleSelection (evt: Event | undefined, objects: Doc[], selection: number): void { const item = objects[selection] if (item === undefined) { return @@ -114,7 +114,7 @@ select(item) } - function select(item: Doc): void { + function select (item: Doc): void { onSelect?.(item) if (!multiSelect) { if (allowDeselect) { @@ -128,7 +128,7 @@ } } - function onKeydown(key: KeyboardEvent): void { + function onKeydown (key: KeyboardEvent): void { if (key.code === 'ArrowUp') { key.stopPropagation() key.preventDefault() @@ -147,7 +147,7 @@ } const manager = createFocusManager() - async function onCreate(): Promise { + async function onCreate (): Promise { if (create === undefined) { return } @@ -172,13 +172,13 @@ } } } - function toAny(obj: any): any { + function toAny (obj: any): any { return obj } const forbiddenDeselectItemIds = new Set(disallowDeselect) - function getGroup(doc: Doc, groupBy: any): any { + function getGroup (doc: Doc, groupBy: any): any { if (created.find((it) => it._id === doc._id) !== undefined) { return '_created' } @@ -188,7 +188,7 @@ return getObjectValue(groupBy, toAny(doc)) } - function findObjectPresenter(_class: Ref>): void { + function findObjectPresenter (_class: Ref>): void { const presenterMixin = getClient().getHierarchy().classHierarchyMixin(_class, view.mixin.ObjectPresenter) if (presenterMixin?.presenter !== undefined) { getResource(presenterMixin.presenter) @@ -201,7 +201,7 @@ } } - function isHasVersions(isVersionable: boolean, doc: Doc): VersionableDoc | undefined { + function isHasVersions (isVersionable: boolean, doc: Doc): VersionableDoc | undefined { if (!isVersionable) return const vDoc = doc as VersionableDoc if (vDoc.baseId === undefined) return diff --git a/packages/presentation/src/components/ObjectPopup.svelte b/packages/presentation/src/components/ObjectPopup.svelte index b254268297..5e651b0176 100644 --- a/packages/presentation/src/components/ObjectPopup.svelte +++ b/packages/presentation/src/components/ObjectPopup.svelte @@ -160,7 +160,7 @@ } } - async function searchSpotlight(search: string): Promise { + async function searchSpotlight (search: string): Promise { return (await searchFor('spotlight', search, category, 50)).items } diff --git a/packages/presentation/src/index.ts b/packages/presentation/src/index.ts index 1e21076eb1..305753389b 100644 --- a/packages/presentation/src/index.ts +++ b/packages/presentation/src/index.ts @@ -55,7 +55,7 @@ export { default as Image } from './components/Image.svelte' export { default as IconWithEmoji } from './components/IconWithEmoji.svelte' export { default as ObjectNode } from './components/markup/ObjectNode.svelte' export { default } from './plugin' -export type * from './types' +export * from './types' export * from './utils' export * from './file' export * from './filetypes' @@ -71,7 +71,7 @@ export * from './search' export * from './image' export * from './preview' export * from './sound' -export type * from './stats' +export * from './stats' export * from './drawing' export * from './drawingUtils' export * from './drawingColors' diff --git a/packages/presentation/src/pipeline.ts b/packages/presentation/src/pipeline.ts index d363ae9357..20f1e341df 100644 --- a/packages/presentation/src/pipeline.ts +++ b/packages/presentation/src/pipeline.ts @@ -203,10 +203,10 @@ export class PresentationPipelineImpl implements PresentationPipeline { options: FindOptions | undefined, refresh: () => void ): Promise<{ - unsubscribe: () => void - query?: DocumentQuery - options?: FindOptions - }> { + unsubscribe: () => void + query?: DocumentQuery + options?: FindOptions + }> { return this.head !== undefined ? await this.head.subscribe(_class, query, options, refresh) : { unsubscribe: () => {} } @@ -283,10 +283,10 @@ export abstract class BasePresentationMiddleware { options: FindOptions | undefined, refresh: () => void ): Promise<{ - unsubscribe: () => void - query?: DocumentQuery - options?: FindOptions - }> { + unsubscribe: () => void + query?: DocumentQuery + options?: FindOptions + }> { return await this.provideSubscribe(_class, query, options, refresh) } @@ -344,10 +344,10 @@ export abstract class BasePresentationMiddleware { options: FindOptions | undefined, refresh: () => void ): Promise<{ - unsubscribe: () => void - query?: DocumentQuery - options?: FindOptions - }> { + unsubscribe: () => void + query?: DocumentQuery + options?: FindOptions + }> { if (this.next !== undefined) { return await this.next.subscribe(_class, query, options, refresh) } @@ -400,10 +400,10 @@ export class OptimizeQueryMiddleware extends BasePresentationMiddleware implemen options: FindOptions | undefined, refresh: () => void ): Promise<{ - unsubscribe: () => void - query?: DocumentQuery - options?: FindOptions - }> { + unsubscribe: () => void + query?: DocumentQuery + options?: FindOptions + }> { return await this.provideSubscribe(_class, query, options, refresh) } diff --git a/packages/ui/src/components/FilterButton.svelte b/packages/ui/src/components/FilterButton.svelte index 0c71b3f64f..420b1b8d18 100644 --- a/packages/ui/src/components/FilterButton.svelte +++ b/packages/ui/src/components/FilterButton.svelte @@ -36,24 +36,24 @@ change: ActiveFilter[] }>() - function clearFilters(): void { + function clearFilters (): void { dispatch('change', []) } - function addFilter(filter: ActiveFilter): void { + function addFilter (filter: ActiveFilter): void { // Remove any existing filter for the same category and add the new one const filtered = activeFilters.filter((f) => f.categoryId !== filter.categoryId) dispatch('change', [...filtered, filter]) } - function removeFilter(categoryId: string): void { + function removeFilter (categoryId: string): void { dispatch( 'change', activeFilters.filter((f) => f.categoryId !== categoryId) ) } - function showFilterPopup(e: MouseEvent): void { + function showFilterPopup (e: MouseEvent): void { const target = eventToHTMLElement(e) showPopup( FilterCategoryPopup, diff --git a/packages/ui/src/components/FilterCategoryPopup.svelte b/packages/ui/src/components/FilterCategoryPopup.svelte index 335ae8a487..7139878c7f 100644 --- a/packages/ui/src/components/FilterCategoryPopup.svelte +++ b/packages/ui/src/components/FilterCategoryPopup.svelte @@ -30,17 +30,17 @@ let selectedCategory: FilterCategory | null = null let view: 'categories' | 'options' = 'categories' - function selectCategory(category: FilterCategory): void { + function selectCategory (category: FilterCategory): void { selectedCategory = category view = 'options' } - function goBackToCategories(): void { + function goBackToCategories (): void { selectedCategory = null view = 'categories' } - function selectOption(option: FilterOption): void { + function selectOption (option: FilterOption): void { if (selectedCategory === null) return const filter: ActiveFilter = { @@ -53,17 +53,17 @@ dispatch('close') } - function clearCategoryFilter(): void { + function clearCategoryFilter (): void { if (selectedCategory === null) return onFilterRemove(selectedCategory.id) dispatch('close') } - function isActive(categoryId: string): boolean { + function isActive (categoryId: string): boolean { return activeFilters.some((f) => f.categoryId === categoryId) } - function isOptionSelected(optionId: string): boolean { + function isOptionSelected (optionId: string): boolean { if (selectedCategory === null) return false return activeFilters.some((f) => f.categoryId === selectedCategory?.id && f.optionId === optionId) } diff --git a/packages/ui/src/components/Header.svelte b/packages/ui/src/components/Header.svelte index 5da56ca694..c58ca2d26c 100644 --- a/packages/ui/src/components/Header.svelte +++ b/packages/ui/src/components/Header.svelte @@ -86,7 +86,7 @@ if (closeButton) window.removeEventListener('keydown', _close) }) - function _close(ev: KeyboardEvent): void { + function _close (ev: KeyboardEvent): void { if (closeButton && ev.key === 'Escape' && closeOnEscape) { ev.preventDefault() ev.stopPropagation() diff --git a/packages/ui/src/components/ListView.svelte b/packages/ui/src/components/ListView.svelte index 4e9ffde6b3..c1e98444ee 100644 --- a/packages/ui/src/components/ListView.svelte +++ b/packages/ui/src/components/ListView.svelte @@ -37,13 +37,13 @@ let oldSelection = Date.now() - function onRow(item: number): void { + function onRow (item: number): void { if (updateSelection(item)) { dispatch('on-select', item) } } - function updateSelection(item: number): boolean { + function updateSelection (item: number): boolean { const now = Date.now() if (now - oldSelection >= 25) { selection = item @@ -53,7 +53,7 @@ return false } - export function select(pos: number): void { + export function select (pos: number): void { if (pos < 0) { pos = 0 } diff --git a/packages/ui/src/components/ModeSelector.svelte b/packages/ui/src/components/ModeSelector.svelte index 4d8661b9e1..48f14fcd25 100644 --- a/packages/ui/src/components/ModeSelector.svelte +++ b/packages/ui/src/components/ModeSelector.svelte @@ -11,15 +11,15 @@ $: modeList = props.config != null ? props.config.map((c) => { - return { - id: c[0], - labelIntl: c[1], - labelParams: c[2], - action: () => { - props.onChange(c[0]) - } + return { + id: c[0], + labelIntl: c[1], + labelParams: c[2], + action: () => { + props.onChange(c[0]) } - }) + } + }) : [] diff --git a/packages/ui/src/components/internal/Root.svelte b/packages/ui/src/components/internal/Root.svelte index 2aea7bfddd..3ef85713c2 100644 --- a/packages/ui/src/components/internal/Root.svelte +++ b/packages/ui/src/components/internal/Root.svelte @@ -25,23 +25,23 @@ let application: AnyComponent | undefined - function updateAppFocused(isFocused: boolean): void { + function updateAppFocused (isFocused: boolean): void { const isFocusedCurrent = $isAppFocusedStore const isFocusedNew = isFocused && !document.hidden && document.hasFocus() if (isFocusedCurrent !== isFocusedNew) { isAppFocusedStore.set(isFocusedNew) } } - function visibilityChangeHandler(): void { + function visibilityChangeHandler (): void { updateAppFocused(!document.hidden) } - function handleWindowFocus(): void { + function handleWindowFocus (): void { updateAppFocused(true) } - function handleWindowBlur(): void { + function handleWindowBlur (): void { updateAppFocused(false) } - function handleWindowBeforeUnload(): void { + function handleWindowBeforeUnload (): void { // Many text inputs across the platform rely on the blur event to persist state, // but they don’t account for cases where the tab is forcefully closed, navigated away from, or destroyed. // Handling beforeunload for every input individually is impractical, diff --git a/packages/ui/src/location.ts b/packages/ui/src/location.ts index 18a4f362da..6db8076650 100644 --- a/packages/ui/src/location.ts +++ b/packages/ui/src/location.ts @@ -14,7 +14,7 @@ // import { Analytics } from '@hcengineering/analytics' -import { clone } from '@hcengineering/core' +import { clone, type Ref, type Space } from '@hcengineering/core' import { type Plugin } from '@hcengineering/platform' import { derived, get, writable } from 'svelte/store' @@ -245,7 +245,7 @@ export function restoreLocation (loc: PlatformLocation, app: Plugin): void { const newLocation: PlatformLocation = JSON.parse(last) if (newLocation.path[1] === loc.path[1] && newLocation.path[3] != null) { - loc.path[3] = newLocation.path[3] + loc.path[3] = newLocation.path[3] as Ref loc.path[4] = newLocation.path[4] if (loc.path[4] == null) { loc.path.length = 4 diff --git a/packages/ui/src/types.ts b/packages/ui/src/types.ts index 18e16b457b..61ea5aa497 100644 --- a/packages/ui/src/types.ts +++ b/packages/ui/src/types.ts @@ -240,7 +240,7 @@ export const posAlignment = [ export type PopupPosAlignment = (typeof posAlignment)[number] export function isPopupPosAlignment (x: any): x is PopupPosAlignment { - return typeof x === 'string' && posAlignment.includes(x as PopupPosAlignment) + return typeof x === 'string' && (posAlignment as typeof posAlignment).includes(x as PopupPosAlignment) } export type PopupAlignment = PopupPosAlignment | PopupPositionElement | null diff --git a/packages/ui/src/utils.ts b/packages/ui/src/utils.ts index 4c4888efbd..e3e8326994 100644 --- a/packages/ui/src/utils.ts +++ b/packages/ui/src/utils.ts @@ -326,17 +326,17 @@ export class DebouncedCaller { export const testing = (localStorage.getItem('#platform.testing.enabled') ?? 'false') === 'true' export const rootBarExtensions = writable< - Array< - [ - 'left' | 'right', - { - id: string - component: AnyComponent | AnySvelteComponent - props?: Record - order: number - } - ] - > +Array< +[ + 'left' | 'right', + { + id: string + component: AnyComponent | AnySvelteComponent + props?: Record + order: number + } +] +> >([]) export async function formatDuration (duration: number, language: string): Promise { @@ -389,12 +389,12 @@ export function removeRootBarComponent (id: string): void { } export const navFooterExtensions = writable< - Array<{ - id: string - component: AnyComponent | AnySvelteComponent - props?: Record - order: number - }> +Array<{ + id: string + component: AnyComponent | AnySvelteComponent + props?: Record + order: number +}> >([]) export function pushNavFooterComponent (component: AnyComponent, order?: number): void { diff --git a/plugins/activity-resources/src/components/activity-message/ActivityMessageTemplate.svelte b/plugins/activity-resources/src/components/activity-message/ActivityMessageTemplate.svelte index 6d90a8bd2e..34e98a6af9 100644 --- a/plugins/activity-resources/src/components/activity-message/ActivityMessageTemplate.svelte +++ b/plugins/activity-resources/src/components/activity-message/ActivityMessageTemplate.svelte @@ -87,7 +87,7 @@ menuActions = res }) - function scrollToMessage(): void { + function scrollToMessage (): void { if (element != null && shouldScroll) { element.scrollIntoView({ behavior: 'auto', block: 'end' }) shouldScroll = false @@ -98,15 +98,15 @@ setTimeout(scrollToMessage, 100) } - function handleActionsOpened(): void { + function handleActionsOpened (): void { isActionsOpened = true } - function handleActionsClosed(): void { + function handleActionsClosed (): void { isActionsOpened = false } - function handleAnimationEnd(event: AnimationEvent): void { + function handleAnimationEnd (event: AnimationEvent): void { const name = event.animationName.split('-').pop() if (name === 'highlight') { clearMessageInLocation() @@ -120,17 +120,17 @@ $: readonly = readonly || $restrictionStore.disableComments - function canDisplayShort(type: ActivityMessageViewType, isSaved: boolean): boolean { + function canDisplayShort (type: ActivityMessageViewType, isSaved: boolean): boolean { return type === 'short' && !isSaved && (message.replies ?? 0) === 0 } $: isShort = canDisplayShort(type, isSaved) - function isInside(x: number, y: number, rect: DOMRect): boolean { + function isInside (x: number, y: number, rect: DOMRect): boolean { return x >= rect.left && y >= rect.top && x <= rect.right && y <= rect.bottom } - function isTextClicked(element: HTMLElement | null, x: number, y: number): boolean { + function isTextClicked (element: HTMLElement | null, x: number, y: number): boolean { if (element == null) { return false } @@ -152,7 +152,7 @@ return false } - function handleContextMenu(event: MouseEvent): void { + function handleContextMenu (event: MouseEvent): void { if (readonly) return const showCustomPopup = !isTextClicked(event.target as HTMLElement, event.clientX, event.clientY) if (showCustomPopup) { diff --git a/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessageHeader.svelte b/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessageHeader.svelte index 062dbdb21b..20a2275b1c 100644 --- a/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessageHeader.svelte +++ b/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessageHeader.svelte @@ -41,7 +41,7 @@ linkData = data }) - function getTitle(attributeModel: AttributeModel): IntlString | undefined { + function getTitle (attributeModel: AttributeModel): IntlString | undefined { const isTextType = getIsTextType(attributeModel) if (!isTextType) { diff --git a/plugins/activity/src/index.ts b/plugins/activity/src/index.ts index 54df4aba3f..92ff57b0cb 100644 --- a/plugins/activity/src/index.ts +++ b/plugins/activity/src/index.ts @@ -137,12 +137,12 @@ export interface DocAttributeUpdates { export type DocUpdateAction = 'create' | 'update' | 'remove' export type DocUpdateMessageViewletAttributesConfig = Record< - string, - { - presenter?: AnyComponent - icon?: Asset - iconPresenter?: AnyComponent - } +string, +{ + presenter?: AnyComponent + icon?: Asset + iconPresenter?: AnyComponent +} > /** @@ -351,7 +351,7 @@ export default plugin(activityId, { function: { ShouldScrollToActivity: '' as Resource<() => boolean>, ActivityMessageTooltipProvider: '' as Resource< - (client: Client, doc?: Doc | null) => Promise + (client: Client, doc?: Doc | null) => Promise > }, backreference: { diff --git a/plugins/billing-resources/src/stores/largestFiles.ts b/plugins/billing-resources/src/stores/largestFiles.ts index 8399c7b3cc..c86bafb436 100644 --- a/plugins/billing-resources/src/stores/largestFiles.ts +++ b/plugins/billing-resources/src/stores/largestFiles.ts @@ -14,7 +14,7 @@ // import attachment, { type Attachment } from '@hcengineering/attachment' -import { type Client, SortingOrder } from '@hcengineering/core' +import { type Class, type Client, type Ref, SortingOrder } from '@hcengineering/core' import drive, { type File as DriveFile, type FileVersion } from '@hcengineering/drive' import { type LargestFileRow, type LargestFileRowRef, mergeBySizeDesc, topBySize } from './largestFilesLogic' @@ -82,7 +82,7 @@ export async function fetchLargestFiles (client: Client, limit: number): Promise {}, { limit, - lookup: { file: drive.class.FileVersion } + lookup: { file: drive.class.FileVersion as unknown as Ref> } } ) ]) diff --git a/plugins/billing-resources/src/utils.ts b/plugins/billing-resources/src/utils.ts index 0a5a55eec1..2398b2f87c 100644 --- a/plugins/billing-resources/src/utils.ts +++ b/plugins/billing-resources/src/utils.ts @@ -29,6 +29,7 @@ import drive, { type File as DriveFile } from '@hcengineering/drive' import { type Account, type AttachedDoc, + type Class, type Doc, type Ref, type UsageStatus, @@ -203,7 +204,7 @@ export async function deleteFilesBatch ( throw new Error('Attachment is missing parent reference') } await client.removeCollection( - ref._class, + ref._class as Ref>, ref.space, ref._id as Ref, ref.attachedTo, diff --git a/plugins/bitrix/src/sync.ts b/plugins/bitrix/src/sync.ts index effc1c97b1..5f98643a58 100644 --- a/plugins/bitrix/src/sync.ts +++ b/plugins/bitrix/src/sync.ts @@ -1,5 +1,5 @@ import attachment, { Attachment } from '@hcengineering/attachment' -import contact, { Channel, Contact } from '@hcengineering/contact' +import contact, { Channel, Contact, Employee } from '@hcengineering/contact' import core, { PersonId, ApplyOperations, @@ -990,7 +990,7 @@ async function synchronizeUsers ( // } // ) } else if (account != null) { - const emp = employees.get(account.person) + const emp = employees.get(account.person as unknown as Ref) if (emp !== undefined && !ops.client.getHierarchy().hasMixin(emp, bitrix.mixin.BitrixSyncDoc)) { await ops.client.createMixin(emp._id, emp._class, emp.space, bitrix.mixin.BitrixSyncDoc, { type: 'employee', diff --git a/plugins/calendar-resources/src/components/CalendarSelector.svelte b/plugins/calendar-resources/src/components/CalendarSelector.svelte index 72b6179220..948f83c0d1 100644 --- a/plugins/calendar-resources/src/components/CalendarSelector.svelte +++ b/plugins/calendar-resources/src/components/CalendarSelector.svelte @@ -38,7 +38,7 @@ setCalendar(calendars, preference) }) - function setCalendar(calendars: Calendar[], primary: PrimaryCalendar | undefined): void { + function setCalendar (calendars: Calendar[], primary: PrimaryCalendar | undefined): void { if (value) return if (!calendarsLoaded || !prefsLoaded) return const target = getPrimaryCalendar(calendars, primary, getCurrentAccount().uuid) @@ -54,7 +54,7 @@ $: selected = value !== undefined ? items.find((p) => p._id === value) : undefined - function change(id: Ref) { + function change (id: Ref) { if (value !== id) { dispatch('change', { _id: id }) value = id diff --git a/plugins/calendar-resources/src/components/CalendarSettings.svelte b/plugins/calendar-resources/src/components/CalendarSettings.svelte index a37dfb938b..cefee8447c 100644 --- a/plugins/calendar-resources/src/components/CalendarSettings.svelte +++ b/plugins/calendar-resources/src/components/CalendarSettings.svelte @@ -32,14 +32,14 @@ return (c as ExternalCalendar).externalUser ?? 'HULY' }) - async function changeHidden(calendar: Calendar, value: boolean): Promise { + async function changeHidden (calendar: Calendar, value: boolean): Promise { if (value === undefined) return await client.update(calendar, { hidden: value }) } - async function changeVisibility(calendar: Calendar, value: Visibility): Promise { + async function changeVisibility (calendar: Calendar, value: Visibility): Promise { if (value === undefined) return await client.update(calendar, { visibility: value @@ -59,12 +59,12 @@ setPrimaryCalendar(calendars, pref) }) - function setPrimaryCalendar(calendars: Calendar[], pref: PrimaryCalendar | undefined): void { + function setPrimaryCalendar (calendars: Calendar[], pref: PrimaryCalendar | undefined): void { if (!prefsLoaded || !calendarsLoaded) return primaryCalendar = getPrimaryCalendar(calendars, pref, getCurrentAccount().uuid) } - async function changePrimary(e: CustomEvent): Promise { + async function changePrimary (e: CustomEvent): Promise { if (e.detail === undefined) return if (pref !== undefined) { if (pref.attachedTo === e.detail._id) return diff --git a/plugins/calendar-resources/src/components/VisibilityEditor.svelte b/plugins/calendar-resources/src/components/VisibilityEditor.svelte index 5fb5b21154..edad997be2 100644 --- a/plugins/calendar-resources/src/components/VisibilityEditor.svelte +++ b/plugins/calendar-resources/src/components/VisibilityEditor.svelte @@ -57,14 +57,14 @@ $: selected = value !== undefined ? items.find((item) => item.id === value) : undefined - function change(val: Visibility): void { + function change (val: Visibility): void { if (value !== val) { dispatch('change', val) value = val } } - function openPopup(ev: MouseEvent): void { + function openPopup (ev: MouseEvent): void { if (!opened) { opened = true closeTooltip() diff --git a/plugins/card-resources/src/__tests__/cardTableFormatter.test.ts b/plugins/card-resources/src/__tests__/cardTableFormatter.test.ts index 4b8be8dda4..0b4ea26a26 100644 --- a/plugins/card-resources/src/__tests__/cardTableFormatter.test.ts +++ b/plugins/card-resources/src/__tests__/cardTableFormatter.test.ts @@ -78,7 +78,7 @@ describe('cardTableFormatter.formatCardValue (markup)', () => { buildMarkupAttr('richtext'), card, buildHierarchy(), - cardPlugin.class.Card, + cardPlugin.class.Card as Ref>, 'en' ) @@ -108,7 +108,7 @@ describe('cardTableFormatter.formatCardValue (markup)', () => { buildMarkupAttr('richtext'), card, buildHierarchy(), - cardPlugin.class.Card, + cardPlugin.class.Card as Ref>, 'en' ) @@ -125,7 +125,7 @@ describe('cardTableFormatter.formatCardValue (markup)', () => { buildMarkupAttr('richtext'), card, buildHierarchy(), - cardPlugin.class.Card, + cardPlugin.class.Card as Ref>, 'en' ) @@ -141,7 +141,7 @@ describe('cardTableFormatter.formatCardValue (markup)', () => { buildMarkupAttr('richtext'), card, buildHierarchy(), - cardPlugin.class.Card, + cardPlugin.class.Card as Ref>, 'en' ) @@ -158,7 +158,7 @@ describe('cardTableFormatter.formatCardValue (markup)', () => { buildMarkupAttr('richtext'), card, buildHierarchy(), - cardPlugin.class.Card, + cardPlugin.class.Card as Ref>, 'en' ) @@ -197,7 +197,13 @@ describe('cardTableFormatter.formatCardValue (markup)', () => { isLookup: false } as unknown as AttributeModel - const result = await formatCardValue(attr, castDoc, buildHierarchy(), cardPlugin.class.Card, 'en') + const result = await formatCardValue( + attr, + castDoc, + buildHierarchy(), + cardPlugin.class.Card as Ref>, + 'en' + ) expect(result).toBe('mixin value') }) @@ -243,7 +249,7 @@ describe('cardTableFormatter.formatCardValue (markup)', () => { buildMarkupAttr('richtext'), card, buildHierarchy(), - cardPlugin.class.Card, + cardPlugin.class.Card as Ref>, 'en' ) @@ -270,7 +276,7 @@ describe('cardTableFormatter.formatCardValue (markup)', () => { buildMarkupAttr('richtext'), card, buildHierarchy(), - cardPlugin.class.Card, + cardPlugin.class.Card as Ref>, 'en' ) @@ -336,7 +342,7 @@ describe('cardTableFormatter.formatCardValue (markup)', () => { getAllAttributes: jest.fn(() => new Map()) } as unknown as Hierarchy - const result = await formatCardValue(attr, card, hierarchy, cardPlugin.class.Card, 'en') + const result = await formatCardValue(attr, card, hierarchy, cardPlugin.class.Card as Ref>, 'en') expect(result).not.toMatch(/<[^>]+>/) expect(result).not.toContain('\n') @@ -365,7 +371,7 @@ describe('cardTableFormatter.formatCardValue (markup)', () => { getAllAttributes: jest.fn(() => new Map()) } as unknown as Hierarchy - const result = await formatCardValue(attr, card, hierarchy, cardPlugin.class.Card, 'en') + const result = await formatCardValue(attr, card, hierarchy, cardPlugin.class.Card as Ref>, 'en') expect(result).toBeUndefined() }) @@ -388,7 +394,7 @@ describe('cardTableFormatter.formatCardValue (markup)', () => { isLookup: false } as unknown as AttributeModel - const result = await formatCardValue(attr, card, buildHierarchy(), cardPlugin.class.Card, 'en') + const result = await formatCardValue(attr, card, buildHierarchy(), cardPlugin.class.Card as Ref>, 'en') expect(result).toBeUndefined() }) diff --git a/plugins/card-resources/src/__tests__/tagFormatter.test.ts b/plugins/card-resources/src/__tests__/tagFormatter.test.ts index 3119bec466..266a036e3a 100644 --- a/plugins/card-resources/src/__tests__/tagFormatter.test.ts +++ b/plugins/card-resources/src/__tests__/tagFormatter.test.ts @@ -144,7 +144,7 @@ describe('tagFormatter.formatTagValue', () => { hasMixin: jest.fn(() => true) } as unknown as Hierarchy - const result = await formatTagValue(attr, card, hierarchy, card._class, 'en') + const result = await formatTagValue(attr, card as unknown as Doc, hierarchy, card._class as Ref>, 'en') expect(result).toBe('Tag A') }) @@ -167,7 +167,7 @@ describe('tagFormatter.formatTagValue', () => { isDerived: jest.fn((cls: Ref>, target: Ref>) => cls === target) } as unknown as Hierarchy - const result = await formatTagValue(attr, tagDoc, hierarchy, tagDoc._class, 'en') + const result = await formatTagValue(attr, tagDoc, hierarchy, tagDoc._class as any, 'en') expect(result).toBe('Important') }) }) diff --git a/plugins/card-resources/src/card.ts b/plugins/card-resources/src/card.ts index 8808d53a3c..a1b5aee1bb 100644 --- a/plugins/card-resources/src/card.ts +++ b/plugins/card-resources/src/card.ts @@ -18,7 +18,7 @@ import { type Heading } from '@hcengineering/text-editor' export async function getCardSections (card: Card): Promise { const client = getClient() - const sections: CompactModeCardSection[] = client + const sections: CardSection[] = client .getModel() .findAllSync(cardPlugin.class.CardSection, {}) .sort((a, b) => a.order - b.order) diff --git a/plugins/card-resources/src/components/CardArrayEditor.svelte b/plugins/card-resources/src/components/CardArrayEditor.svelte index acd349d9a8..b7c3d3d6b5 100644 --- a/plugins/card-resources/src/components/CardArrayEditor.svelte +++ b/plugins/card-resources/src/components/CardArrayEditor.svelte @@ -67,7 +67,7 @@ ) } - function toArray(value: Ref[] | Ref | undefined): Ref[] { + function toArray (value: Ref[] | Ref | undefined): Ref[] { if (Array.isArray(value)) { return value } diff --git a/plugins/card-resources/src/components/CardAttributeEditor.svelte b/plugins/card-resources/src/components/CardAttributeEditor.svelte index b16d8eec4a..47158c15a7 100644 --- a/plugins/card-resources/src/components/CardAttributeEditor.svelte +++ b/plugins/card-resources/src/components/CardAttributeEditor.svelte @@ -51,12 +51,12 @@ let masterTagAttributes: MasterTagAttributes - function collapseAll(): void { + function collapseAll (): void { masterTagAttributes.collapse() tagAttributes.forEach((tag) => tag.collapse()) } - function expandAll(): void { + function expandAll (): void { masterTagAttributes.expand() tagAttributes.forEach((tag) => tag.expand()) } diff --git a/plugins/card-resources/src/components/CardVersionSelector.svelte b/plugins/card-resources/src/components/CardVersionSelector.svelte index 16d37dc832..1e7d165c5c 100644 --- a/plugins/card-resources/src/components/CardVersionSelector.svelte +++ b/plugins/card-resources/src/components/CardVersionSelector.svelte @@ -56,14 +56,14 @@ } }) - function navigateTo(_id: Ref): void { + function navigateTo (_id: Ref): void { const loc = getCurrentLocation() loc.path[2] = cardId loc.path[3] = _id navigate(loc) } - function selectHandler(e: CustomEvent): void { + function selectHandler (e: CustomEvent): void { const val = e.detail if (val != null) { navigateTo(val) diff --git a/plugins/card-resources/src/components/ColoredCardIcon.svelte b/plugins/card-resources/src/components/ColoredCardIcon.svelte index 09cacb349a..88def1302f 100644 --- a/plugins/card-resources/src/components/ColoredCardIcon.svelte +++ b/plugins/card-resources/src/components/ColoredCardIcon.svelte @@ -33,7 +33,7 @@ $: color = clazz.background ?? 0 $: platformColor = getPlatformColorDef(color, $themeStore.dark) - function getIconStyle(platformColor: any): string { + function getIconStyle (platformColor: any): string { return ` box-shadow: 0 2px 3px 0 ${platformColor.color}; ` diff --git a/plugins/card-resources/src/components/CreateCardPopupFull.svelte b/plugins/card-resources/src/components/CreateCardPopupFull.svelte index b934acd7d2..a70fd9ed26 100644 --- a/plugins/card-resources/src/components/CreateCardPopupFull.svelte +++ b/plugins/card-resources/src/components/CreateCardPopupFull.svelte @@ -48,7 +48,7 @@ const me = getCurrentEmployee() const _id = generateId() - function getCreateCardExtension(_type: Ref | null): CreateCardExtension | undefined { + function getCreateCardExtension (_type: Ref | null): CreateCardExtension | undefined { if (_type == null) return undefined return client @@ -118,7 +118,7 @@ } } - function handleCancel(): void { + function handleCancel (): void { dispatch('close') } @@ -126,7 +126,7 @@ $: void updateLabel($languageStore, type) - async function updateLabel(lang: string, _type: Ref | null): Promise { + async function updateLabel (lang: string, _type: Ref | null): Promise { const createString = await translate(presentation.string.Create, {}, lang) if (_type == null) { label = createString @@ -138,7 +138,7 @@ label = `${createString} ${typeString}` } - function openSelectUsersPopup(): void { + function openSelectUsersPopup (): void { showPopup( SelectUsersPopup, { @@ -158,7 +158,7 @@ ) } - function handleChange(event: CustomEvent<{ data: Partial>, space?: Ref }>): void { + function handleChange (event: CustomEvent<{ data: Partial>, space?: Ref }>): void { data = { ...data, ...event.detail.data diff --git a/plugins/card-resources/src/components/CreateCardPopupSimple.svelte b/plugins/card-resources/src/components/CreateCardPopupSimple.svelte index 004fb33250..f5f4247340 100644 --- a/plugins/card-resources/src/components/CreateCardPopupSimple.svelte +++ b/plugins/card-resources/src/components/CreateCardPopupSimple.svelte @@ -36,7 +36,7 @@ const hierarchy = client.getHierarchy() const _id = generateId() - function getCreateCardExtension(_type: Ref | null): CreateCardExtension | undefined { + function getCreateCardExtension (_type: Ref | null): CreateCardExtension | undefined { if (_type == null) return undefined return client @@ -66,7 +66,7 @@ let creating = false - async function okAction(): Promise { + async function okAction (): Promise { if (_space === undefined || type == null) return try { @@ -92,7 +92,7 @@ } } - function handleCancel(): void { + function handleCancel (): void { dispatch('close') } @@ -100,7 +100,7 @@ $: void updateLabel($languageStore, type) - async function updateLabel(lang: string, _type: Ref | null): Promise { + async function updateLabel (lang: string, _type: Ref | null): Promise { const createString = await translate(presentation.string.Create, {}, lang) if (_type == null) { label = createString diff --git a/plugins/card-resources/src/components/EditCard.svelte b/plugins/card-resources/src/components/EditCard.svelte index fd44c87874..f063e894f0 100644 --- a/plugins/card-resources/src/components/EditCard.svelte +++ b/plugins/card-resources/src/components/EditCard.svelte @@ -27,7 +27,7 @@ export let embedded: boolean = false export let allowClose: boolean = true - export function canClose(): boolean { + export function canClose (): boolean { return false } diff --git a/plugins/card-resources/src/components/EditCardNew.svelte b/plugins/card-resources/src/components/EditCardNew.svelte index fd87a4d6a1..31b6a25d17 100644 --- a/plugins/card-resources/src/components/EditCardNew.svelte +++ b/plugins/card-resources/src/components/EditCardNew.svelte @@ -161,12 +161,12 @@ $: _readonly = (readonly || doc?.readonly || doc?.readonlyFields?.includes('title')) ?? false $: updatePermissionForbidden = doc && !canChangeDoc(doc?._class, doc?.space, $permissionsStore) - function setLayout(mode: 'auto' | '1' | '2'): void { + function setLayout (mode: 'auto' | '1' | '2'): void { if (doc === undefined) return setViewMode(doc?._class, mode) } - function showViewPopup(ev: MouseEvent): void { + function showViewPopup (ev: MouseEvent): void { if (doc === undefined) return const items: DropdownIntlItem[] = [ { diff --git a/plugins/card-resources/src/components/EditCardTableOfContents.svelte b/plugins/card-resources/src/components/EditCardTableOfContents.svelte index 79c51c4909..f35c6c3eb1 100644 --- a/plugins/card-resources/src/components/EditCardTableOfContents.svelte +++ b/plugins/card-resources/src/components/EditCardTableOfContents.svelte @@ -67,7 +67,7 @@ let renderTopSections = defaults?.defaultSection !== communication.ids.CardMessagesSection - export function scrollDown(): void { + export function scrollDown (): void { if (scrollDiv == null) return const lastTocItem = toc[toc.length - 1] if (lastTocItem === undefined) return @@ -76,11 +76,11 @@ void navigate() } - export function editLastMessage(): void { + export function editLastMessage (): void { sectionRef[messagesId]?.editLastMessage?.() } - export function hideScrollBar(): void { + export function hideScrollBar (): void { hideBar = true if (timer != null) { clearTimeout(timer) @@ -90,12 +90,12 @@ }, 1000) } - function getBottomOffset(): number { + function getBottomOffset (): number { if (scrollDiv == null) return 0 return Math.max(0, Math.floor(scrollDiv.scrollHeight - scrollDiv.scrollTop - scrollDiv.clientHeight)) } - async function navigate(): Promise { + async function navigate (): Promise { if (selectedToc === undefined) return if (selectedToc.id !== messagesId && !renderTopSections) { renderTopSections = true @@ -115,7 +115,7 @@ isScrollInitialized = true } - function updateToc(sections: CardSection[], subTocBySection: Record): void { + function updateToc (sections: CardSection[], subTocBySection: Record): void { if (sections.length === 0) return toc = getCardToc(sections, subTocBySection) @@ -127,7 +127,7 @@ } } - function handleNavigationClick(heading: Heading): void { + function handleNavigationClick (heading: Heading): void { if (heading.group !== messagesId) { renderTopSections = true } @@ -135,7 +135,7 @@ void navigate() } - function handleSectionLoaded(_id: Ref): void { + function handleSectionLoaded (_id: Ref): void { const wasLoaded = sectionLoaded[_id] === true sectionLoaded[_id] = true if (!wasLoaded && selectedToc?.group === _id) { @@ -143,12 +143,12 @@ } } - function handleChangeNavigation(section: Ref, id: string): void { + function handleChangeNavigation (section: Ref, id: string): void { if (selectedToc?.group !== section) return selectedToc = toc.find((it) => it.group === section && it.id === id) } - function handleAction(section: Ref, action: CardSectionAction): void { + function handleAction (section: Ref, action: CardSectionAction): void { if (action.id === 'toc') { subTocBySection[section] = action.toc subTocBySection = subTocBySection @@ -164,7 +164,7 @@ } } - function handleScroll(): void { + function handleScroll (): void { if (scrollDiv == null || showOverlay) return const allLoaded = renderTopSections @@ -200,7 +200,7 @@ bottomOffset = getBottomOffset() } - function handleScrollDown(): void { + function handleScrollDown (): void { const ref = sectionRef[messagesId] if (ref?.scrollDown != null) { ref.scrollDown() @@ -209,7 +209,7 @@ } } - function canScrollDown(): boolean { + function canScrollDown (): boolean { const ref = sectionRef[messagesId] if (ref === undefined) return false diff --git a/plugins/card-resources/src/components/NewCardForm.svelte b/plugins/card-resources/src/components/NewCardForm.svelte index 4c25ddc97b..708f5f57d9 100644 --- a/plugins/card-resources/src/components/NewCardForm.svelte +++ b/plugins/card-resources/src/components/NewCardForm.svelte @@ -65,7 +65,7 @@ let description: Markup = EmptyMarkup let initialized = false - function initializeFromDraft(draft: CardDraft): void { + function initializeFromDraft (draft: CardDraft): void { title = draft.title description = draft.description if (draft.type !== undefined) { @@ -102,12 +102,12 @@ $: extension = type != null ? client - .getModel() - .findAllSync(card.mixin.CreateCardExtension, {}) - .find((it) => hierarchy.isDerived(type, it._id)) + .getModel() + .findAllSync(card.mixin.CreateCardExtension, {}) + .find((it) => hierarchy.isDerived(type, it._id)) : undefined - async function okAction(): Promise { + async function okAction (): Promise { if (space === undefined || type == null) return try { @@ -182,7 +182,7 @@ draftController.remove() } - function expand(): void { + function expand (): void { const prevExpanded = isExpanded isExpanded = true if (!prevExpanded) { diff --git a/plugins/card-resources/src/components/TagsEditor.svelte b/plugins/card-resources/src/components/TagsEditor.svelte index 5e3c87fb65..e5c88a66b4 100644 --- a/plugins/card-resources/src/components/TagsEditor.svelte +++ b/plugins/card-resources/src/components/TagsEditor.svelte @@ -42,14 +42,14 @@ $: activeTags = tags.filter((tag) => hierarchy.hasMixin(doc, tag._id)) - async function removeTag(tagId: string): Promise { + async function removeTag (tagId: string): Promise { await client.update(doc, { $unset: { [tagId]: true } }) } $: ancestors = hierarchy.getAncestors(doc._class) $: possibleMixins = getPossibleMixins(doc._class, tags) - function getPossibleMixins(_class: Ref>, tags: Tag[]): Tag[] { + function getPossibleMixins (_class: Ref>, tags: Tag[]): Tag[] { const res: Tag[] = [] for (const p of tags) { try { @@ -65,7 +65,7 @@ return res } $: dropdownItems = possibleMixins.map((mixin) => ({ id: mixin._id, label: mixin.label })) - function add(e: MouseEvent): void { + function add (e: MouseEvent): void { showPopup( SelectPopup, { @@ -80,20 +80,20 @@ ) } - function isRemoveable(mixinId: Ref>, activeTags: Tag[]): boolean { + function isRemoveable (mixinId: Ref>, activeTags: Tag[]): boolean { const desc = hierarchy.getDescendants(mixinId) return !desc.some((p) => hierarchy.hasMixin(doc, p) && p !== mixinId) } - function checkForbiddenPermission(permission: Ref, permissionsStore: PermissionsStore): boolean { + function checkForbiddenPermission (permission: Ref, permissionsStore: PermissionsStore): boolean { return checkMyPermission(permission, doc.space as Ref, permissionsStore) } - function checkRemovePermission(permissionsStore: PermissionsStore): boolean { + function checkRemovePermission (permissionsStore: PermissionsStore): boolean { return checkForbiddenPermission(card.permission.ForbidRemoveTag, permissionsStore) } - function checkAddPermission(permissionsStore: PermissionsStore): boolean { + function checkAddPermission (permissionsStore: PermissionsStore): boolean { return checkForbiddenPermission(card.permission.ForbidAddTag, permissionsStore) } diff --git a/plugins/card-resources/src/components/TypeSelector.svelte b/plugins/card-resources/src/components/TypeSelector.svelte index 619ccf196f..586efe801b 100644 --- a/plugins/card-resources/src/components/TypeSelector.svelte +++ b/plugins/card-resources/src/components/TypeSelector.svelte @@ -39,7 +39,7 @@ return roots === undefined || roots.includes(getRootType(hierarchy, type)) } - function isSelectableClass(_class: Class, roots: Ref[] | undefined, skipBaseTypes: boolean): boolean { + function isSelectableClass (_class: Class, roots: Ref[] | undefined, skipBaseTypes: boolean): boolean { if (_class.label === undefined) return false if (_class.kind !== ClassifierKind.CLASS) return false if ((_class as MasterTag).removed === true) return false @@ -48,7 +48,7 @@ return true } - function filterClasses( + function filterClasses ( root: Ref, roots: Ref[] | undefined, skipBaseTypes: boolean @@ -87,7 +87,7 @@ return result } - function getIconProps(tag: MasterTag): Pick { + function getIconProps (tag: MasterTag): Pick { return { icon: tag.icon === view.ids.IconWithEmoji ? IconWithEmoji : (tag.icon ?? card.icon.MasterTag), iconProps: tag.icon === view.ids.IconWithEmoji ? { icon: tag.color } : {} diff --git a/plugins/card-resources/src/components/navigator-next/NavigatorCard.svelte b/plugins/card-resources/src/components/navigator-next/NavigatorCard.svelte index 25af5a581c..52a69406c9 100644 --- a/plugins/card-resources/src/components/navigator-next/NavigatorCard.svelte +++ b/plugins/card-resources/src/components/navigator-next/NavigatorCard.svelte @@ -42,7 +42,7 @@ let activeAction: string | undefined = undefined - function toggleFavoriteCard(): void { + function toggleFavoriteCard (): void { if (favorite !== undefined) { void client.remove(favorite) } else { @@ -81,7 +81,7 @@ } ] - function getCardTitle(card: Card): string { + function getCardTitle (card: Card): string { if ((card?.parentInfo?.length ?? 0) === 0) return card.title const parent = card.parentInfo[card.parentInfo.length - 1] if (parent != null) { diff --git a/plugins/card-resources/src/components/navigator-next/NavigatorCardsSection.svelte b/plugins/card-resources/src/components/navigator-next/NavigatorCardsSection.svelte index 71608875cf..dc00b18395 100644 --- a/plugins/card-resources/src/components/navigator-next/NavigatorCardsSection.svelte +++ b/plugins/card-resources/src/components/navigator-next/NavigatorCardsSection.svelte @@ -127,7 +127,7 @@ $: sortedCards = filteredCards $: empty = sortedCards.length === 0 - function filterCards(cards: Card[], favorites: FavoriteCard[]): Card[] { + function filterCards (cards: Card[], favorites: FavoriteCard[]): Card[] { return cards.filter((it) => !favorites.some((fav) => fav.attachedTo === it._id)) } diff --git a/plugins/card-resources/src/components/navigator/CardHeaderButton.svelte b/plugins/card-resources/src/components/navigator/CardHeaderButton.svelte index 7d197cf2a2..864dc8acb6 100644 --- a/plugins/card-resources/src/components/navigator/CardHeaderButton.svelte +++ b/plugins/card-resources/src/components/navigator/CardHeaderButton.svelte @@ -39,7 +39,7 @@ } } - async function navigateToCard(cardId: string): Promise { + async function navigateToCard (cardId: string): Promise { const loc = getCurrentLocation() loc.path[3] = cardId loc.path.length = 4 @@ -55,7 +55,7 @@ }) } - async function newTeamspace(): Promise { + async function newTeamspace (): Promise { showPopup(CreateSpace, {}, 'top') } @@ -80,7 +80,7 @@ } ] - function addButtonClicked(ev: MouseEvent): void { + function addButtonClicked (ev: MouseEvent): void { pressed = true showPopup(Menu, { actions: globalActions }, ev.target as HTMLElement, () => { pressed = false diff --git a/plugins/card-resources/src/components/navigator/CreateSpace.svelte b/plugins/card-resources/src/components/navigator/CreateSpace.svelte index bfb934de95..37a9d8a1f1 100644 --- a/plugins/card-resources/src/components/navigator/CreateSpace.svelte +++ b/plugins/card-resources/src/components/navigator/CreateSpace.svelte @@ -66,7 +66,7 @@ let rolesAssignment = getRolesAssignment(roles) $: rolesAssignment = getRolesAssignment(roles) - function getRolesAssignment(roles: Role[]): RolesAssignment { + function getRolesAssignment (roles: Role[]): RolesAssignment { if (space === undefined || roles === undefined) { return {} } @@ -81,7 +81,7 @@ return res } - function getCurrentRolesAssignment(): RolesAssignment { + function getCurrentRolesAssignment (): RolesAssignment { if (space === undefined) { return {} } @@ -101,7 +101,7 @@ return res } - async function handleSave(): Promise { + async function handleSave (): Promise { if (isNew) { await create() } else { @@ -109,17 +109,17 @@ } } - function normalizeAutoJoinForRoles(roles: AccountRole[]): AccountRole[] | undefined { + function normalizeAutoJoinForRoles (roles: AccountRole[]): AccountRole[] | undefined { return roles.length > 0 ? [...roles] : undefined } let autoJoinForRoles: AccountRole[] = space?.autoJoinForRoles != null ? hierarchy.clone(space.autoJoinForRoles) : [] - function setGuestAutoJoin(enabled: boolean): void { + function setGuestAutoJoin (enabled: boolean): void { autoJoinForRoles = setWorkspaceGuestAutoJoinRoles(autoJoinForRoles, enabled) } - function getData(): Data { + function getData (): Data { return { name, description: '', @@ -135,7 +135,7 @@ } } - async function update(): Promise { + async function update (): Promise { if (space === undefined) { return } @@ -150,7 +150,7 @@ close() } - async function create(): Promise { + async function create (): Promise { const data = getData() const id = await client.createDoc(card.class.CardSpace, core.space.Space, data) @@ -162,18 +162,18 @@ close(id) } - function close(id?: Ref): void { + function close (id?: Ref): void { dispatch('close', id) } - function handleOwnersChanged(newOwners: AccountUuid[]): void { + function handleOwnersChanged (newOwners: AccountUuid[]): void { owners = newOwners const newMembersSet = new Set([...members, ...newOwners]) members = Array.from(newMembersSet) } - function handleMembersChanged(newMembers: AccountUuid[]): void { + function handleMembersChanged (newMembers: AccountUuid[]): void { const newMembersSet = new Set(newMembers) const removedMembersSet = new Set(members.filter((m) => !newMembersSet.has(m))) @@ -196,7 +196,7 @@ $: membersPersons = members.map((m) => $employeeRefByAccountUuidStore.get(m)).filter(notEmpty) - function handleRoleAssignmentChanged(roleId: Ref, newMembers: AccountUuid[]): void { + function handleRoleAssignmentChanged (roleId: Ref, newMembers: AccountUuid[]): void { if (rolesAssignment === undefined) { rolesAssignment = {} } diff --git a/plugins/card-resources/src/components/navigator/TypesSelector.svelte b/plugins/card-resources/src/components/navigator/TypesSelector.svelte index 99da196b32..ab5c0cbdb4 100644 --- a/plugins/card-resources/src/components/navigator/TypesSelector.svelte +++ b/plugins/card-resources/src/components/navigator/TypesSelector.svelte @@ -32,7 +32,7 @@ const client = getClient() const hierarchy = client.getHierarchy() - function buildHierarchy(): NestedSelectItem[] { + function buildHierarchy (): NestedSelectItem[] { const rootTags = hierarchy.getDescendants(card.class.Card) const items: NestedSelectItem[] = [] @@ -59,7 +59,7 @@ ) } - function getChildrenNodes(parentId: Ref>): NestedSelectItem[] { + function getChildrenNodes (parentId: Ref>): NestedSelectItem[] { const descendants = hierarchy.getDescendants(parentId) const items: NestedSelectItem[] = [] @@ -80,7 +80,7 @@ ) } - function getIconProps(tag: MasterTag): { icon: any, iconProps: any } { + function getIconProps (tag: MasterTag): { icon: any, iconProps: any } { return { icon: tag.icon === view.ids.IconWithEmoji ? IconWithEmoji : (tag.icon ?? card.icon.MasterTag), iconProps: tag.icon === view.ids.IconWithEmoji ? { icon: tag.color } : {} diff --git a/plugins/card-resources/src/components/settings/GeneralSection.svelte b/plugins/card-resources/src/components/settings/GeneralSection.svelte index 0f0b227612..24a64e2ad1 100644 --- a/plugins/card-resources/src/components/settings/GeneralSection.svelte +++ b/plugins/card-resources/src/components/settings/GeneralSection.svelte @@ -73,7 +73,7 @@ }) } - function setIcon(): void { + function setIcon (): void { showPopup( IconPicker, { icon: masterTag.icon, color: masterTag.color, showEmoji: true, showColor: false }, @@ -105,7 +105,7 @@ ) } - async function handleExport(): Promise { + async function handleExport (): Promise { const str = await exportModule(masterTag._id) const blob = new Blob([str], { type: 'application/json' }) const url = URL.createObjectURL(blob) @@ -117,7 +117,7 @@ document.body.removeChild(link) } - function getTagStyle(color: ColorDefinition): string { + function getTagStyle (color: ColorDefinition): string { return ` background: ${color.color + '33'}; border: 1px solid ${color.color + '66'}; @@ -125,7 +125,7 @@ ` } - async function enableVersioning(): Promise { + async function enableVersioning (): Promise { if (h.isMixin(masterTag._id)) return showPopup(MessageBox, { label: card.string.EnableVersioning, @@ -148,13 +148,13 @@ }) } - function versioningSetting(): void { + function versioningSetting (): void { showPopup(VersioningSetting, { masterTag: masterTag._id }) } - function duplicateSetting(): void { + function duplicateSetting (): void { showPopup(DuplicateSetting, { masterTag: masterTag._id }) diff --git a/plugins/card-resources/src/components/settings/ManageMasterTagsContent.svelte b/plugins/card-resources/src/components/settings/ManageMasterTagsContent.svelte index 754b88a4c8..6385afa55e 100644 --- a/plugins/card-resources/src/components/settings/ManageMasterTagsContent.svelte +++ b/plugins/card-resources/src/components/settings/ManageMasterTagsContent.svelte @@ -39,7 +39,7 @@ let visibleSecondNav: boolean = true let selectedTagId: Ref | undefined - function handleLocationChanged({ path }: Location): void { + function handleLocationChanged ({ path }: Location): void { if (path[3] !== 'types' || path[4] === undefined) { selectedTagId = undefined } else { @@ -58,7 +58,7 @@ title: string } - function selectSubItem(editorId: AnyComponent | undefined, objId: Ref | undefined): void { + function selectSubItem (editorId: AnyComponent | undefined, objId: Ref | undefined): void { if (editorId !== undefined && objId !== undefined) { selectedSubObjectId = objId void getResource(editorId) @@ -83,13 +83,13 @@ masterTag = res[0] }) - function handleSubEditorOpen(event: CustomEvent): void { + function handleSubEditorOpen (event: CustomEvent): void { if (Array.isArray(event.detail)) { subEditorParamas = event.detail } } - function getBreadcrumbs(tag: Ref | undefined, subEditorParams: SubEditorParams[]): BreadcrumbItem[] { + function getBreadcrumbs (tag: Ref | undefined, subEditorParams: SubEditorParams[]): BreadcrumbItem[] { if (tag === undefined) return [] const toAncestors = hierarchy.getAncestors(card.class.Card) const ancestors = hierarchy.getAncestors(tag) @@ -115,7 +115,7 @@ }, 500) }) - function handleSelect(e: CustomEvent): void { + function handleSelect (e: CustomEvent): void { const id = items[e.detail]?.id if (id !== undefined) { const isSub = subEditorParamas.find((it) => it.id === id) diff --git a/plugins/card-resources/src/components/settings/TagsSection.svelte b/plugins/card-resources/src/components/settings/TagsSection.svelte index d24c9d664d..11d55529a9 100644 --- a/plugins/card-resources/src/components/settings/TagsSection.svelte +++ b/plugins/card-resources/src/components/settings/TagsSection.svelte @@ -35,7 +35,7 @@ getDescendants(masterTag._id) }) - function getDescendants(id: Ref>): void { + function getDescendants (id: Ref>): void { const desc = hierarchy.getDescendants(id) const filtered: Ref>[] = [] for (const _id of desc) { @@ -48,7 +48,7 @@ descendants = filtered } - function open(_class: Ref>): void { + function open (_class: Ref>): void { const loc = getCurrentLocation() loc.path[4] = _class navigate(loc) diff --git a/plugins/card-resources/src/components/settings/VersioningSetting.svelte b/plugins/card-resources/src/components/settings/VersioningSetting.svelte index 6364fb109d..a58231c944 100644 --- a/plugins/card-resources/src/components/settings/VersioningSetting.svelte +++ b/plugins/card-resources/src/components/settings/VersioningSetting.svelte @@ -80,7 +80,7 @@ const relationsA = associations.filter((it) => targets.has(it.classB)) const relationsB = associations.filter((it) => targets.has(it.classA)) - async function save(): Promise { + async function save (): Promise { if (current?._id === masterTag) { await client.updateMixin(masterTag, card.class.MasterTag, core.space.Model, core.mixin.VersionableClass, { excludedRelations: [...excludedRelations], @@ -99,7 +99,7 @@ dispatch('close') } - function propertiesSelected(event: CustomEvent): void { + function propertiesSelected (event: CustomEvent): void { const selectedProperties = event.detail as string[] allProperties.forEach((it) => { if (!selectedProperties.includes(it.id)) { @@ -111,7 +111,7 @@ excludedProperties = excludedProperties } - function mixinsSelected(event: CustomEvent): void { + function mixinsSelected (event: CustomEvent): void { const selectedMixins = event.detail as string[] mixins.forEach((it) => { if (!selectedMixins.includes(it)) { diff --git a/plugins/card-resources/src/components/settings/view/ViewSetting.svelte b/plugins/card-resources/src/components/settings/view/ViewSetting.svelte index 4f736a57ed..eb3ba92261 100644 --- a/plugins/card-resources/src/components/settings/view/ViewSetting.svelte +++ b/plugins/card-resources/src/components/settings/view/ViewSetting.svelte @@ -60,7 +60,7 @@ order?: number } - function getObjectConfig(_class: Ref>, param: string): AttributeConfig { + function getObjectConfig (_class: Ref>, param: string): AttributeConfig { const clazz = hierarchy.getClass(_class) return { type: 'attribute', @@ -72,11 +72,11 @@ } } - function getAssociationLabel(client: TxOperations, param: string): IntlString { + function getAssociationLabel (client: TxOperations, param: string): IntlString { return getKeyLabel(client, viewlet.attachTo, param, undefined) } - function getBaseConfig(viewlet: Viewlet): Config[] { + function getBaseConfig (viewlet: Viewlet): Config[] { const lookup = buildConfigLookup(hierarchy, viewlet.attachTo, viewlet.config, viewlet.options?.lookup) const result: Config[] = [] const clazz = hierarchy.getClass(viewlet.attachTo) @@ -139,7 +139,7 @@ return result } - function getValue(name: string, type: Type, attrClass: Ref>): string { + function getValue (name: string, type: Type, attrClass: Ref>): string { const presenter = hierarchy.classHierarchyMixin(attrClass, view.mixin.AttributePresenter)?.presenter if (presenter !== undefined) { return name @@ -150,7 +150,7 @@ return name } - function processAttribute(attribute: AnyAttribute, result: Config[], useMixinProxy = false): void { + function processAttribute (attribute: AnyAttribute, result: Config[], useMixinProxy = false): void { if (attribute.hidden === true || attribute.label === undefined) return if (viewlet.configOptions?.hiddenKeys?.includes(attribute.name)) return if (hierarchy.isDerived(attribute.type._class, core.class.Collection)) return @@ -203,15 +203,15 @@ } } - function getKey(value: string | BuildModelKey | undefined): string | undefined { + function getKey (value: string | BuildModelKey | undefined): string | undefined { return typeof value === 'string' ? value : value?.key } - function isAttribute(val: Config): val is AttributeConfig { + function isAttribute (val: Config): val is AttributeConfig { return val.type === 'attribute' } - function isExist(result: Config[], newValue: Config): boolean { + function isExist (result: Config[], newValue: Config): boolean { if (!isAttribute(newValue)) return false const newValueKey = getKey(newValue.value) if (newValueKey === undefined) return false @@ -230,7 +230,7 @@ return false } - async function getConfig(viewlet: Viewlet): Promise { + async function getConfig (viewlet: Viewlet): Promise { const result = getBaseConfig(viewlet) if (viewlet.configOptions?.strict !== true) { const allAttributes = hierarchy.getAllAttributes(viewlet.attachTo) @@ -249,7 +249,7 @@ await addAssociations(result, viewlet.attachTo) } - async function addAssociations( + async function addAssociations ( result: Config[], _class: Ref>, parents: AssociationQuery[] = [] @@ -280,11 +280,11 @@ } } - function getParentsString(parents: AssociationQuery[]): string { + function getParentsString (parents: AssociationQuery[]): string { return parents.map(([assocId, direction]) => `$associations.${assocId}_${direction === 1 ? 'a' : 'b'}`).join('.') } - async function processAssociation( + async function processAssociation ( association: Association, direction: 'a' | 'b', result: Config[], @@ -333,7 +333,7 @@ } } - async function addAssociationAttributes( + async function addAssociationAttributes ( result: Config[], targetClass: Ref>, associationKey: string, diff --git a/plugins/card-resources/src/components/settings/view/ViewSettingButton.svelte b/plugins/card-resources/src/components/settings/view/ViewSettingButton.svelte index 82653c8a7a..306d096b70 100644 --- a/plugins/card-resources/src/components/settings/view/ViewSettingButton.svelte +++ b/plugins/card-resources/src/components/settings/view/ViewSettingButton.svelte @@ -32,7 +32,7 @@ let btn: HTMLButtonElement let pressed: boolean = false - function clickHandler(): void { + function clickHandler (): void { pressed = true closeTooltip() showPopup( diff --git a/plugins/card-resources/src/index.ts b/plugins/card-resources/src/index.ts index 7815b63750..95b4d58fa1 100644 --- a/plugins/card-resources/src/index.ts +++ b/plugins/card-resources/src/index.ts @@ -99,7 +99,7 @@ export { default as CardTagsColored } from './components/CardTagsColored.svelte' export { default as CardPathPresenter } from './components/CardPathPresenter.svelte' export { default as CardTimestamp } from './components/CardTimestamp.svelte' -export type * from './types' +export * from './types' export { getCardIconInfo, openCardInSidebar } from './utils' export default async (): Promise => ({ diff --git a/plugins/card-resources/src/tagFormatter.ts b/plugins/card-resources/src/tagFormatter.ts index 0ea7a85e09..3cc099ac02 100644 --- a/plugins/card-resources/src/tagFormatter.ts +++ b/plugins/card-resources/src/tagFormatter.ts @@ -51,7 +51,9 @@ export function getCardTagMixins (card: Card, hierarchy: Hierarchy): Array hierarchy.getClass(m).kind === ClassifierKind.MIXIN && hierarchy.hasMixin(card, m)) + .filter((m) => hierarchy.getClass(m).kind === ClassifierKind.MIXIN && hierarchy.hasMixin(card, m)) as Array< + Ref> + > } /** diff --git a/plugins/card-resources/src/utils.ts b/plugins/card-resources/src/utils.ts index bcf232e555..9167e99af1 100644 --- a/plugins/card-resources/src/utils.ts +++ b/plugins/card-resources/src/utils.ts @@ -19,6 +19,7 @@ import communication from '@hcengineering/communication' import { type PermissionsStore } from '@hcengineering/contact' import core, { AccountRole, + type Class, type ClassPermission, type Client, type Data, @@ -420,7 +421,7 @@ async function generateLocation (loc: Location, id: string): Promise>, view.mixin.ObjectPanel) const component = objectPanel?.component ?? view.component.EditDoc return { @@ -502,7 +503,7 @@ export async function cardReferenceObjectProvider ( const baseId = object.baseId ?? object._id if (object.isLatest === true) return object - return (await client.findOne(object._class, { baseId, isLatest: true })) ?? object + return (await client.findOne(object._class, { baseId, isLatest: true } as any)) ?? object } export async function getCardLink (doc: Card): Promise { @@ -628,9 +629,9 @@ export function getFirstCreatableSubtype (hierarchy: Hierarchy, type: Ref) ) - }) + }) as Ref | undefined } export async function createChildCard (object: Card): Promise { diff --git a/plugins/chunter-resources/src/components/EditChannelSettingsTab.svelte b/plugins/chunter-resources/src/components/EditChannelSettingsTab.svelte index c292f2613a..01c6c6efb6 100644 --- a/plugins/chunter-resources/src/components/EditChannelSettingsTab.svelte +++ b/plugins/chunter-resources/src/components/EditChannelSettingsTab.svelte @@ -32,7 +32,7 @@ let autoJoinForRoles: AccountRole[] = channel.autoJoinForRoles != null ? hierarchy.clone(channel.autoJoinForRoles) : [] - function normalizeAutoJoinForRoles(roles: AccountRole[]): AccountRole[] | undefined { + function normalizeAutoJoinForRoles (roles: AccountRole[]): AccountRole[] | undefined { return roles.length > 0 ? [...roles] : undefined } @@ -43,7 +43,7 @@ }) } - function setGuestAutoJoin(enabled: boolean): void { + function setGuestAutoJoin (enabled: boolean): void { autoJoinForRoles = setWorkspaceGuestAutoJoinRoles(autoJoinForRoles, enabled) void persistAutoJoin() } diff --git a/plugins/chunter-resources/src/components/chat/ChannelAside.svelte b/plugins/chunter-resources/src/components/chat/ChannelAside.svelte index 8eeb0ec69a..39f925a442 100644 --- a/plugins/chunter-resources/src/components/chat/ChannelAside.svelte +++ b/plugins/chunter-resources/src/components/chat/ChannelAside.svelte @@ -52,7 +52,7 @@ : [] $: updateMembers(object) - function updateMembers(object: Channel | undefined): void { + function updateMembers (object: Channel | undefined): void { if (object === undefined) { members = new Set() return @@ -61,11 +61,11 @@ members = new Set(object.members.map((account) => $employeeRefByAccountUuidStore.get(account)).filter(notEmpty)) } - function getAccountsByPersons(persons: Ref[]): AccountUuid[] { + function getAccountsByPersons (persons: Ref[]): AccountUuid[] { return persons.map((person) => $employeeByIdStore.get(person as Ref)?.personUuid).filter(notEmpty) } - async function changeMembers(personRefs: Ref[], object?: Channel): Promise { + async function changeMembers (personRefs: Ref[], object?: Channel): Promise { if (object === undefined) { return } diff --git a/plugins/chunter/src/index.ts b/plugins/chunter/src/index.ts index de7c42f511..0bd96810fe 100644 --- a/plugins/chunter/src/index.ts +++ b/plugins/chunter/src/index.ts @@ -236,24 +236,24 @@ export default plugin(chunterId, { CanTranslateMessage: '' as Resource<(doc?: Doc | Doc[]) => Promise>, CanSummarizeMessages: '' as Resource<(doc?: Doc | Doc[]) => Promise>, OpenThreadInSidebar: '' as Resource< - ( - _id: Ref, - msg?: ActivityMessage, - doc?: Doc, - selectedId?: Ref, - props?: Record, - force?: boolean - ) => Promise + ( + _id: Ref, + msg?: ActivityMessage, + doc?: Doc, + selectedId?: Ref, + props?: Record, + force?: boolean + ) => Promise >, OpenChannelInSidebar: '' as Resource< - ( - _id: Ref, - _class: Ref>, - doc?: Doc, - thread?: Ref, - newTab?: boolean, - selectedMessageId?: Ref - ) => Promise + ( + _id: Ref, + _class: Ref>, + doc?: Doc, + thread?: Ref, + newTab?: boolean, + selectedMessageId?: Ref + ) => Promise > } }) diff --git a/plugins/contact-resources/src/components/AccountArrayEditor.svelte b/plugins/contact-resources/src/components/AccountArrayEditor.svelte index 327d739afe..b404809450 100644 --- a/plugins/contact-resources/src/components/AccountArrayEditor.svelte +++ b/plugins/contact-resources/src/components/AccountArrayEditor.svelte @@ -64,7 +64,7 @@ .filter(notEmpty) ) - function onUpdate(evt: CustomEvent[]>): void { + function onUpdate (evt: CustomEvent[]>): void { if (timer !== null) { clearTimeout(timer) } @@ -121,7 +121,7 @@ const hierarchy = client.getHierarchy() const me = getCurrentEmployee() - function sort(a: Contact, b: Contact): number { + function sort (a: Contact, b: Contact): number { if (me === a._id) { return -1 } diff --git a/plugins/contact-resources/src/components/ChannelsEditor.svelte b/plugins/contact-resources/src/components/ChannelsEditor.svelte index e589fe6c78..892b3c5892 100644 --- a/plugins/contact-resources/src/components/ChannelsEditor.svelte +++ b/plugins/contact-resources/src/components/ChannelsEditor.svelte @@ -96,7 +96,7 @@ } } - function _open(ev: any) { + function _open (ev: any) { if (ev.detail.presenter !== undefined) { if (allowOpen) { closeTooltip() diff --git a/plugins/contact-resources/src/components/ContactList.svelte b/plugins/contact-resources/src/components/ContactList.svelte index ed99cf89e0..73191b952f 100644 --- a/plugins/contact-resources/src/components/ContactList.svelte +++ b/plugins/contact-resources/src/components/ContactList.svelte @@ -48,7 +48,7 @@ const dispatch = createEventDispatcher() - async function addPerson(evt: Event): Promise { + async function addPerson (evt: Event): Promise { showPopup( UsersPopup, { diff --git a/plugins/contact-resources/src/components/EditPerson.svelte b/plugins/contact-resources/src/components/EditPerson.svelte index a76ddc9583..84fada6b61 100644 --- a/plugins/contact-resources/src/components/EditPerson.svelte +++ b/plugins/contact-resources/src/components/EditPerson.svelte @@ -45,20 +45,20 @@ $: setName(object) - function setName(object: Person): void { + function setName (object: Person): void { firstName = getFirstName(object.name) lastName = getLastName(object.name) } const dispatch = createEventDispatcher() - async function firstNameChange(): Promise { + async function firstNameChange (): Promise { await client.update(object, { name: combineName(firstName, getLastName(object.name)) }) } - async function lastNameChange(): Promise { + async function lastNameChange (): Promise { await client.update(object, { name: combineName(getFirstName(object.name), lastName) }) @@ -77,7 +77,7 @@ const sendOpen = () => dispatch('open', { ignoreKeys: ['comments', 'name', 'channels', 'city'] }) onMount(sendOpen) - async function onAvatarDone(): Promise { + async function onAvatarDone (): Promise { if (object.avatar != null) { await avatarEditor.removeAvatar(object.avatar) } diff --git a/plugins/contact-resources/src/components/SpaceMembers.svelte b/plugins/contact-resources/src/components/SpaceMembers.svelte index 8c42622096..746aae678b 100644 --- a/plugins/contact-resources/src/components/SpaceMembers.svelte +++ b/plugins/contact-resources/src/components/SpaceMembers.svelte @@ -50,7 +50,7 @@ $: isSearch = search.trim().length let members: Set> = new Set>() - async function getUsers(accounts: AccountUuid[], search: string): Promise { + async function getUsers (accounts: AccountUuid[], search: string): Promise { const employeeRefs = accounts.map((acc) => $employeeRefByAccountUuidStore.get(acc)).filter(notEmpty) const query: DocumentQuery = isSearch > 0 ? { name: { $like: '%' + search + '%' } } : { _id: { $in: employeeRefs } } diff --git a/plugins/contact-resources/src/components/TranslationSettings.svelte b/plugins/contact-resources/src/components/TranslationSettings.svelte index 8bff0033fc..e66f0e19f3 100644 --- a/plugins/contact-resources/src/components/TranslationSettings.svelte +++ b/plugins/contact-resources/src/components/TranslationSettings.svelte @@ -32,7 +32,7 @@ $: settings = $translationStore $: enabled = settings?.enabled ?? false - async function toggle(data: Partial>): Promise { + async function toggle (data: Partial>): Promise { if (settings != null) { await client.update(settings, data) } else { @@ -45,7 +45,7 @@ } } - async function changeEnable(): Promise { + async function changeEnable (): Promise { enabled = !enabled await toggle({ enabled }) } diff --git a/plugins/contact-resources/src/components/UserBoxList.svelte b/plugins/contact-resources/src/components/UserBoxList.svelte index 4fe6212e9a..1d82450ac1 100644 --- a/plugins/contact-resources/src/components/UserBoxList.svelte +++ b/plugins/contact-resources/src/components/UserBoxList.svelte @@ -43,7 +43,7 @@ export let sort: ((a: Person, b: Person) => number) | undefined = undefined - function filter(items: Ref[] | undefined): Ref[] { + function filter (items: Ref[] | undefined): Ref[] { return (items ?? []).filter((it, idx, arr) => arr.indexOf(it) === idx) } @@ -55,7 +55,7 @@ const dispatch = createEventDispatcher() - async function addPerson(evt: Event): Promise { + async function addPerson (evt: Event): Promise { const popupProps: any = { _class, label, diff --git a/plugins/contact-resources/src/index.ts b/plugins/contact-resources/src/index.ts index 39f53965c9..f3fe477a2c 100644 --- a/plugins/contact-resources/src/index.ts +++ b/plugins/contact-resources/src/index.ts @@ -312,7 +312,7 @@ async function kickEmployee (doc: Person): Promise { if (doc.personUuid != null) { const leaveWorkspace = await getResource(login.function.LeaveWorkspace) - await leaveWorkspace(doc.personUuid) + await leaveWorkspace(doc.personUuid as AccountUuid) } } }) diff --git a/plugins/contact-resources/src/utils.ts b/plugins/contact-resources/src/utils.ts index 3d02d6a97d..5384ab6f31 100644 --- a/plugins/contact-resources/src/utils.ts +++ b/plugins/contact-resources/src/utils.ts @@ -204,11 +204,11 @@ export async function getRefs ( const filteredRefs = docUpdates !== undefined && inboxNotificationsByContext !== undefined ? refs.filter((channel) => { - const docUpdate = docUpdates.get(channel._id) - return docUpdate != null - ? inboxNotificationsByContext.get(docUpdate._id)?.some(({ isViewed }) => !isViewed) - : (channel.items ?? 0) > 0 - }) + const docUpdate = docUpdates.get(channel._id) + return docUpdate != null + ? inboxNotificationsByContext.get(docUpdate._id)?.some(({ isViewed }) => !isViewed) + : (channel.items ?? 0) > 0 + }) : refs const result = Array.from(new Set(filteredRefs.map((p) => p.attachedTo))) FilterQuery.results.set(filter.index, result) @@ -342,7 +342,7 @@ async function generateLocation (loc: Location, id: Ref): Promise>, view.mixin.ObjectPanel) const component = objectPanel?.component ?? view.component.EditDoc return { @@ -433,7 +433,7 @@ export function getAnonymousRefs ( return [] } const ref = byAccount.get(readOnlyGuestAccountUuid) - return ref !== undefined ? [ref] : [] + return ref !== undefined ? [ref as unknown as Ref] : [] } /** diff --git a/plugins/contact/src/utils.ts b/plugins/contact/src/utils.ts index 835dc8ab1c..eceb5ae392 100644 --- a/plugins/contact/src/utils.ts +++ b/plugins/contact/src/utils.ts @@ -247,7 +247,7 @@ export async function findContacts ( */ export async function findPerson (client: Client, name: string, channels: AttachedData[]): Promise { const result = await findContacts(client, contact.class.Person, name, channels) - return result.contacts + return result.contacts as Person[] } const SEP = ',' diff --git a/plugins/controlled-documents-resources/src/components/DocumentTemplates.svelte b/plugins/controlled-documents-resources/src/components/DocumentTemplates.svelte index f7c495757f..7f0ca45156 100644 --- a/plugins/controlled-documents-resources/src/components/DocumentTemplates.svelte +++ b/plugins/controlled-documents-resources/src/components/DocumentTemplates.svelte @@ -41,7 +41,7 @@ $permissionsStore ) - function showCreateDialog(): void { + function showCreateDialog (): void { showPopup(documents.component.QmsTemplateWizard, { _class: documents.class.ControlledDocument }) } diff --git a/plugins/controlled-documents-resources/src/components/EditDocPanel.svelte b/plugins/controlled-documents-resources/src/components/EditDocPanel.svelte index 66f91f2fbd..8d692546e4 100644 --- a/plugins/controlled-documents-resources/src/components/EditDocPanel.svelte +++ b/plugins/controlled-documents-resources/src/components/EditDocPanel.svelte @@ -105,7 +105,7 @@ const notificationClient = getResource(notification.function.GetInboxNotificationsClient).then((res) => res()) $: read(_id) - function read(_id: Ref): void { + function read (_id: Ref): void { if (lastId !== _id) { const prev = lastId lastId = _id @@ -171,7 +171,7 @@ selectedTab = tabs.findIndex((tab) => tab.label === documentRes.string.ContentTab) } - function onSendDocRequest(requestClass: Ref>): void { + function onSendDocRequest (requestClass: Ref>): void { if ($controlledDocument == null) { return } @@ -190,7 +190,7 @@ showPopup(TeamPopup, teamPopupData, 'center') } - async function completeReviewRequest(ev: MouseEvent): Promise { + async function completeReviewRequest (ev: MouseEvent): Promise { showPopup( SignatureDialog, { confirmationTitle: documentRes.string.ConfirmReviewCompletion }, @@ -207,7 +207,7 @@ ) } - async function changeApprovalRequestState(ev: MouseEvent, isRejection: boolean): Promise { + async function changeApprovalRequestState (ev: MouseEvent, isRejection: boolean): Promise { showPopup(SignatureDialog, { isRejection }, eventToHTMLElement(ev), async (res) => { if (!res) return @@ -231,7 +231,7 @@ }) } - async function onCreateNewDraft(): Promise { + async function onCreateNewDraft (): Promise { if (creating) return creating = true @@ -274,7 +274,7 @@ } } - async function onEditDocument(): Promise { + async function onEditDocument (): Promise { if ($controlledDocument != null && $canCreateNewSnapshot && $isProjectEditable) { try { await createDocumentSnapshotAndEdit(client, $controlledDocument) @@ -287,7 +287,7 @@ } let titleElement: HTMLElement - function showVersions(): void { + function showVersions (): void { isTitlePressed = true showPopup(DocumentVersionsPopup, {}, titleElement, () => { isTitlePressed = false @@ -324,7 +324,7 @@ allowClose={withClose && !embedded} {embedded} printHeader={false} - adaptive="autoExtra" + adaptive={'autoExtra'} overflowExtra hideSearch on:close @@ -336,9 +336,9 @@ { project = e.detail @@ -460,7 +460,7 @@ {#if $editorMode === 'comparing'} {:else} - + {/if} diff --git a/plugins/controlled-documents-resources/src/components/NewDocumentHeader.svelte b/plugins/controlled-documents-resources/src/components/NewDocumentHeader.svelte index 539edf1526..ae38fef9fd 100644 --- a/plugins/controlled-documents-resources/src/components/NewDocumentHeader.svelte +++ b/plugins/controlled-documents-resources/src/components/NewDocumentHeader.svelte @@ -47,11 +47,11 @@ } } - function newDocument(): void { + function newDocument (): void { showPopup(documents.component.QmsDocumentWizard, { _class: documents.class.ControlledDocument }) } - function dropdownItemSelected(res?: SelectPopupValueType['id']): void { + function dropdownItemSelected (res?: SelectPopupValueType['id']): void { if (res == null) return if (res === documents.string.DocumentTemplate) { diff --git a/plugins/controlled-documents-resources/src/components/create-doc/QmsTemplateWizard.svelte b/plugins/controlled-documents-resources/src/components/create-doc/QmsTemplateWizard.svelte index b76192b2c6..69e13bde40 100644 --- a/plugins/controlled-documents-resources/src/components/create-doc/QmsTemplateWizard.svelte +++ b/plugins/controlled-documents-resources/src/components/create-doc/QmsTemplateWizard.svelte @@ -124,17 +124,17 @@ let canProceed: false // Note: determined by individual steps const isLoading = false - function getCurrentStepComponent(currentStep: TemplateWizardStep): AnySvelteComponent { + function getCurrentStepComponent (currentStep: TemplateWizardStep): AnySvelteComponent { return stepComponents[currentStep] } - function handleStepChanged(e: CustomEvent): void { + function handleStepChanged (e: CustomEvent): void { currentStepUpdated(e.detail) } let submitted = false - async function handleSubmit(): Promise { + async function handleSubmit (): Promise { if ($locationStep.space === undefined || $locationStep.project === undefined) { return } @@ -196,7 +196,7 @@ $: space = $locationStep.space - async function handleClose(): Promise { + async function handleClose (): Promise { showPopup( MessageBox, { diff --git a/plugins/controlled-documents-resources/src/components/create-doc/steps/LocationStep.svelte b/plugins/controlled-documents-resources/src/components/create-doc/steps/LocationStep.svelte index cd0c0f36ac..7dd94b7ffe 100644 --- a/plugins/controlled-documents-resources/src/components/create-doc/steps/LocationStep.svelte +++ b/plugins/controlled-documents-resources/src/components/create-doc/steps/LocationStep.svelte @@ -50,19 +50,19 @@ $: void selectProject(spaceRef) $: locationStepUpdated({ project: projectRef }) - async function selectProject(spaceRef: Ref | undefined): Promise { + async function selectProject (spaceRef: Ref | undefined): Promise { projectRef = spaceRef !== undefined ? await getLatestProjectId(spaceRef) : undefined } - async function fetchSpace(id: Ref | undefined): Promise { + async function fetchSpace (id: Ref | undefined): Promise { space = id === undefined ? undefined : await client.findOne(documents.class.DocumentSpace, { _id: id }) } - async function fetchSpaceType(id: Ref | undefined): Promise { + async function fetchSpaceType (id: Ref | undefined): Promise { spaceType = id === undefined ? undefined : await client.findOne(documents.class.DocumentSpaceType, { _id: id }, {}) } - function handleParentSelected(doc: Doc): void { + function handleParentSelected (doc: Doc): void { let parent: Ref | undefined if (hierarchy.isDerived(doc._class, documents.class.DocumentSpace)) { @@ -74,7 +74,7 @@ locationStepUpdated({ parent }) } - function handleProjectSelected(value: Ref | undefined): void { + function handleProjectSelected (value: Ref | undefined): void { projectRef = value } @@ -110,8 +110,8 @@ { diff --git a/plugins/controlled-documents-resources/src/docTableFormatter.ts b/plugins/controlled-documents-resources/src/docTableFormatter.ts index a266dad568..19bc1feefe 100644 --- a/plugins/controlled-documents-resources/src/docTableFormatter.ts +++ b/plugins/controlled-documents-resources/src/docTableFormatter.ts @@ -104,7 +104,9 @@ export async function formatControlledDocumentValue ( // Translate label to determine which field to extract let labelText = '' if (typeof attr.label === 'string') { - labelText = isIntlString(attr.label) ? await translate(attr.label, {}, language) : attr.label + labelText = isIntlString(attr.label) + ? await translate(attr.label as unknown as IntlString, {}, language) + : attr.label } else { labelText = await translate(attr.label, {}, language) } @@ -208,7 +210,9 @@ export async function formatControlledDocumentValue ( // Translate label to determine which field to extract for template let labelText = '' if (typeof attr.label === 'string') { - labelText = isIntlString(attr.label) ? await translate(attr.label, {}, language) : attr.label + labelText = isIntlString(attr.label) + ? await translate(attr.label as unknown as IntlString, {}, language) + : attr.label } else { labelText = await translate(attr.label, {}, language) } diff --git a/plugins/controlled-documents-resources/src/plugin.ts b/plugins/controlled-documents-resources/src/plugin.ts index 467ebe2650..b31480831c 100644 --- a/plugins/controlled-documents-resources/src/plugin.ts +++ b/plugins/controlled-documents-resources/src/plugin.ts @@ -260,7 +260,7 @@ export default mergeIds(documentsId, documents, { ControlledDocumentTitleProvider: '' as Resource<(client: Client, ref: Ref, doc?: Doc) => Promise>, DocumentMetaTitleProvider: '' as Resource<(client: Client, ref: Ref, doc?: Doc) => Promise>, DocumentMetaReferenceVersionsProvider: '' as Resource< - (client: Client, ref: Ref, doc?: Doc) => Promise + (client: Client, ref: Ref, doc?: Doc) => Promise > } }) diff --git a/plugins/controlled-documents-resources/src/utils.ts b/plugins/controlled-documents-resources/src/utils.ts index 9f6883049e..d7cc3609d1 100644 --- a/plugins/controlled-documents-resources/src/utils.ts +++ b/plugins/controlled-documents-resources/src/utils.ts @@ -353,11 +353,11 @@ export async function updateExternalApproversAccess ( removedPersons.length === 0 ? [] : await client.findAll(core.class.Collaborator, { - attachedTo: controlledDoc._id, - attachedToClass: controlledDoc._class, - collection: 'collaborators', - collaborator: { $in: removedPersonUuids } - }) + attachedTo: controlledDoc._id, + attachedToClass: controlledDoc._class, + collection: 'collaborators', + collaborator: { $in: removedPersonUuids } + }) const projectDocs = await client.findAll(documents.class.ProjectDocument, { document: controlledDoc._id }) @@ -501,7 +501,9 @@ export async function rejectRequest ( }) } -export type ControlledStatesTags = Record +export type ControlledStatesTags = { + [K in ControlledDocumentState]: DocumentStateTagType +} export const controlledStatesTags: ControlledStatesTags = { [ControlledDocumentState.InReview]: 'inProgress', @@ -512,7 +514,9 @@ export const controlledStatesTags: ControlledStatesTags = { [ControlledDocumentState.ToReview]: 'effective' } -export type StatesTags = Record +export type StatesTags = { + [K in DocumentState]: DocumentStateTagType +} export const statesTags: StatesTags = { [DocumentState.Draft]: 'draft', diff --git a/plugins/controlled-documents/src/docutils.ts b/plugins/controlled-documents/src/docutils.ts index 1e335e09bb..ecdca27339 100644 --- a/plugins/controlled-documents/src/docutils.ts +++ b/plugins/controlled-documents/src/docutils.ts @@ -206,11 +206,11 @@ export async function createControlledDocMetadata ( specTitle: string, metaId?: Ref ): Promise<{ - success: boolean - seqNumber: number - documentMetaId: Ref - projectDocumentId: Ref -}> { + success: boolean + seqNumber: number + documentMetaId: Ref + projectDocumentId: Ref + }> { const projectId = project ?? documents.ids.NoProject const ops = client.apply('create-qms-document') @@ -370,12 +370,12 @@ export async function createDocumentTemplateMetadata ( specTitle: string, metaId?: Ref ): Promise<{ - success: boolean - seqNumber: number - code: string - documentMetaId: Ref - projectDocumentId: Ref -}> { + success: boolean + seqNumber: number + code: string + documentMetaId: Ref + projectDocumentId: Ref + }> { const projectId = project ?? documents.ids.NoProject const incResult = await client.updateDoc( @@ -476,10 +476,10 @@ export async function createNewFolder ( parent: Ref | undefined, title: string ): Promise<{ - success: boolean - documentMetaId: Ref - projectDocumentId: Ref -}> { + success: boolean + documentMetaId: Ref + projectDocumentId: Ref + }> { const projectId = project ?? documents.ids.NoProject const ops = client.apply() diff --git a/plugins/controlled-documents/src/utils.ts b/plugins/controlled-documents/src/utils.ts index 8a8dd3a4d7..35b3b845b1 100644 --- a/plugins/controlled-documents/src/utils.ts +++ b/plugins/controlled-documents/src/utils.ts @@ -56,7 +56,7 @@ import { * @public */ export const genRanks = (count: number): Generator => - (function* () { + (function * () { const sys = new LexoNumeralSystem36() const base = 36 const max = base ** 6 diff --git a/plugins/converter-resources/src/formatter/utils.ts b/plugins/converter-resources/src/formatter/utils.ts index d62f3ffdac..56f1f0283f 100644 --- a/plugins/converter-resources/src/formatter/utils.ts +++ b/plugins/converter-resources/src/formatter/utils.ts @@ -141,7 +141,7 @@ export async function formatSingleValue ( const isRef = attrType?._class === core.class.RefTo if (isRef) { if (attrType.to !== undefined && hierarchy.isDerived(attrType.to, contact.mixin.Employee)) { - const name = await loadPersonNameByRef(value, hierarchy, userCache) + const name = await loadPersonNameByRef(value as any, hierarchy, userCache as any) return name } } diff --git a/plugins/converter-resources/src/markdown/tableBuilder.ts b/plugins/converter-resources/src/markdown/tableBuilder.ts index 3820630c01..30297054cf 100644 --- a/plugins/converter-resources/src/markdown/tableBuilder.ts +++ b/plugins/converter-resources/src/markdown/tableBuilder.ts @@ -74,7 +74,7 @@ async function preloadRefLookups ( const refDocs = await client.findAll(targetClass, { _id: { $in: ids as any } }) const byId = new Map() for (const d of refDocs) { - byId.set(d._id, d) + byId.set(d._id as string, d) } for (const doc of docs) { @@ -135,7 +135,7 @@ function collectRelationshipDocsForRefPreload ( ): Doc[] { const byId = new Map() const add = (d: Doc | undefined): void => { - if (d !== undefined) byId.set(d._id, d) + if (d !== undefined) byId.set(d._id as string, d) } for (const o of props.objects) add(o) diff --git a/plugins/converter-resources/src/model/headerGenerator.ts b/plugins/converter-resources/src/model/headerGenerator.ts index 23dd01e557..78eb02c614 100644 --- a/plugins/converter-resources/src/model/headerGenerator.ts +++ b/plugins/converter-resources/src/model/headerGenerator.ts @@ -14,7 +14,7 @@ // import type { Class, Doc, Hierarchy, Ref } from '@hcengineering/core' -import { translate } from '@hcengineering/platform' +import { translate, type IntlString } from '@hcengineering/platform' import type { AttributeModel } from '@hcengineering/view' import { isIntlString } from '../formatter/utils' @@ -61,7 +61,7 @@ export async function generateHeaders ( if (attr.label.startsWith('custom')) { label = await resolveCustomAttributeLabel(attr.label, firstDocClass, hierarchy, language) } else if (isIntlString(attr.label)) { - label = await translate(attr.label, {}, language) + label = await translate(attr.label as unknown as IntlString, {}, language) } else { label = attr.label } diff --git a/plugins/converter/src/plugin.ts b/plugins/converter/src/plugin.ts index 90aa3f3111..9c2a4d286e 100644 --- a/plugins/converter/src/plugin.ts +++ b/plugins/converter/src/plugin.ts @@ -35,7 +35,7 @@ export const converterPlugin = plugin(converterId, { CopyAsMarkdownTable: '' as Resource, CopyRelationshipAsMarkdown: '' as Resource, BuildMarkdownTableFromMetadata: '' as Resource< - (docs: Doc[], metadata: BuildMarkdownTableMetadata, client: Client) => Promise + (docs: Doc[], metadata: BuildMarkdownTableMetadata, client: Client) => Promise >, BuildMarkdownTableFromDocs: '' as Resource< (docs: Doc[], props: CopyAsMarkdownTableProps, client: Client) => Promise diff --git a/plugins/export-resources/src/components/ExportSettings.svelte b/plugins/export-resources/src/components/ExportSettings.svelte index c1679dd1a3..2611b36a9f 100644 --- a/plugins/export-resources/src/components/ExportSettings.svelte +++ b/plugins/export-resources/src/components/ExportSettings.svelte @@ -43,7 +43,7 @@ let selectedDetailLevel: string = 'everything' let isExporting = false - async function exportData(): Promise { + async function exportData (): Promise { if (isExporting) return try { diff --git a/plugins/login-resources/src/components/Form.svelte b/plugins/login-resources/src/components/Form.svelte index 5b8f7f42fb..396d3d08ec 100644 --- a/plugins/login-resources/src/components/Form.svelte +++ b/plugins/login-resources/src/components/Form.svelte @@ -52,7 +52,7 @@ export let actionButtonDataId: string | undefined = undefined export let secondaryButtonDataId: string | undefined = undefined - const validate = makeSequential(async function validateAsync(language: string): Promise { + const validate = makeSequential(async function validateAsync (language: string): Promise { if (ignoreInitialValidation || isLoading) return true for (const field of fields) { @@ -93,7 +93,7 @@ return true }) - export function invalidate(): void { + export function invalidate (): void { void validate($themeStore.language) } @@ -108,7 +108,7 @@ let inAction = false - function performAction(action: Action): void { + function performAction (action: Action): void { if (inAction) return for (const field of fields) { @@ -121,7 +121,7 @@ } onMount(() => (ignoreInitialValidation = false)) - function trim(field: string): void { + function trim (field: string): void { object[field] = (object[field] as string).trim() } diff --git a/plugins/login-resources/src/components/LoginApp.svelte b/plugins/login-resources/src/components/LoginApp.svelte index f063df0184..2af6f572bd 100644 --- a/plugins/login-resources/src/components/LoginApp.svelte +++ b/plugins/login-resources/src/components/LoginApp.svelte @@ -65,7 +65,7 @@ onDestroy(location.subscribe(updatePageLoc)) - function updatePageLoc(loc: Location): void { + function updatePageLoc (loc: Location): void { const token = getMetadata(presentation.metadata.Token) page = (loc.path[1] as Pages) ?? (token != null ? 'selectWorkspace' : 'login') if (page === 'join' && loc.query?.autoJoin !== undefined) { @@ -93,7 +93,7 @@ tfaToken = loc.query?.token ?? undefined } - async function chooseToken(): Promise { + async function chooseToken (): Promise { if (page === 'auth') { // token handled by auth page return diff --git a/plugins/login-resources/src/components/LoginAppBase.svelte b/plugins/login-resources/src/components/LoginAppBase.svelte index 3f0691f707..30f031e72c 100644 --- a/plugins/login-resources/src/components/LoginAppBase.svelte +++ b/plugins/login-resources/src/components/LoginAppBase.svelte @@ -46,7 +46,7 @@ $: activeTheme = $loginTheme // themeStyle resolves to override theme vars when override is active, otherwise to store theme vars - function onDevThemeChange(e: Event): void { + function onDevThemeChange (e: Event): void { const v = (e.target as HTMLSelectElement).value as LoginThemeName // set local override and apply accent class immediately (no store change) setLoginTheme(v) diff --git a/plugins/login-resources/src/components/LoginForm.svelte b/plugins/login-resources/src/components/LoginForm.svelte index c3d9009045..02b752ec4b 100644 --- a/plugins/login-resources/src/components/LoginForm.svelte +++ b/plugins/login-resources/src/components/LoginForm.svelte @@ -52,7 +52,7 @@ }) }) - function changeMethod(event: CustomEvent): void { + function changeMethod (event: CustomEvent): void { method = event.detail } @@ -70,7 +70,7 @@ } } - async function guestLogin(): Promise { + async function guestLogin (): Promise { let status = new Status(Severity.INFO, login.status.ConnectingToServer, {}) const [loginStatus, result] = await doLoginAsGuest() status = loginStatus diff --git a/plugins/login-resources/src/components/SelectWorkspace.svelte b/plugins/login-resources/src/components/SelectWorkspace.svelte index 590e4a9312..357e7a3015 100644 --- a/plugins/login-resources/src/components/SelectWorkspace.svelte +++ b/plugins/login-resources/src/components/SelectWorkspace.svelte @@ -61,14 +61,14 @@ let flagToUpdateWorkspaces = false - async function loadAccount(): Promise { + async function loadAccount (): Promise { accountPromise = getAccount() account = await accountPromise isReadOnlyGuest = await isReadOnlyGuestAccount(account) } // eslint-disable-next-line @typescript-eslint/no-unused-vars - const updateWorkspaces = reduceCalls(async function updateWorkspaces(_time?: number): Promise { + const updateWorkspaces = reduceCalls(async function updateWorkspaces (_time?: number): Promise { try { workspaces = await getWorkspaces() } catch (e) { @@ -84,7 +84,7 @@ void loadAccount() }) - async function select(workspaceUrl: string): Promise { + async function select (workspaceUrl: string): Promise { status = new Status(Severity.INFO, login.status.ConnectingToServer, {}) const [loginStatus, result] = await selectWorkspace(workspaceUrl) @@ -117,7 +117,7 @@ navigateToWorkspace(workspaceUrl, result, navigateUrl) } - async function _getWorkspaces(): Promise { + async function _getWorkspaces (): Promise { try { const res = await getWorkspaces() diff --git a/plugins/login-resources/src/components/SignupForm.svelte b/plugins/login-resources/src/components/SignupForm.svelte index 9a897e63b5..d0eaba04dd 100644 --- a/plugins/login-resources/src/components/SignupForm.svelte +++ b/plugins/login-resources/src/components/SignupForm.svelte @@ -126,7 +126,7 @@ } } - function handleStep(event: CustomEvent): void { + function handleStep (event: CustomEvent): void { step = event.detail } diff --git a/plugins/love-resources/src/components/Settings.svelte b/plugins/love-resources/src/components/Settings.svelte index 805f04df57..17d70f25e2 100644 --- a/plugins/love-resources/src/components/Settings.svelte +++ b/plugins/love-resources/src/components/Settings.svelte @@ -9,7 +9,7 @@ const client = getClient() - async function saveMicPreference(myPreferences: DevicesPreference | undefined, value: boolean): Promise { + async function saveMicPreference (myPreferences: DevicesPreference | undefined, value: boolean): Promise { if (myPreferences !== undefined) { await client.update(myPreferences, { micEnabled: !value }) } else { @@ -24,7 +24,7 @@ } } - async function saveCamPreference(myPreferences: DevicesPreference | undefined, value: boolean): Promise { + async function saveCamPreference (myPreferences: DevicesPreference | undefined, value: boolean): Promise { if (myPreferences !== undefined) { await client.update(myPreferences, { camEnabled: !value }) } else { @@ -39,7 +39,7 @@ } } - async function saveNoiseCancellationPreference( + async function saveNoiseCancellationPreference ( myPreferences: DevicesPreference | undefined, value: boolean ): Promise { @@ -58,7 +58,7 @@ await liveKitClient.applyNoiseCancellation(value) } - async function saveSpeakingWhileMutedPreference( + async function saveSpeakingWhileMutedPreference ( myPreferences: DevicesPreference | undefined, value: boolean ): Promise { diff --git a/plugins/notification-resources/src/components/CollaboratorEditor.svelte b/plugins/notification-resources/src/components/CollaboratorEditor.svelte index 2a0e1c62f1..c12341e401 100644 --- a/plugins/notification-resources/src/components/CollaboratorEditor.svelte +++ b/plugins/notification-resources/src/components/CollaboratorEditor.svelte @@ -37,7 +37,7 @@ $: accounts = collaborators.map((c) => c.collaborator) - async function change(res: AccountUuid[]): Promise { + async function change (res: AccountUuid[]): Promise { const toAdd: AccountUuid[] = res.filter((a) => !accounts.includes(a)) const toRemove: Collaborator[] = collaborators.filter((a) => !res.includes(a.collaborator)) for (const account of toAdd) { diff --git a/plugins/notification-resources/src/utils.ts b/plugins/notification-resources/src/utils.ts index 3949a667ce..3246ac25e7 100644 --- a/plugins/notification-resources/src/utils.ts +++ b/plugins/notification-resources/src/utils.ts @@ -659,12 +659,12 @@ export async function selectInboxContext ( object?._id === objectId ? (object as ThreadMessage) : await client.findOne( - chunter.class.ThreadMessage, - { - _id: objectId as Ref - }, - { projection: { _id: 1, attachedTo: 1 } } - ) + chunter.class.ThreadMessage, + { + _id: objectId as Ref + }, + { projection: { _id: 1, attachedTo: 1 } } + ) void navigateToInboxDoc( linkProviders, diff --git a/plugins/notification/src/index.ts b/plugins/notification/src/index.ts index a6dfeda6cb..4a81d64179 100644 --- a/plugins/notification/src/index.ts +++ b/plugins/notification/src/index.ts @@ -44,7 +44,7 @@ import { PersonSpace } from '@hcengineering/contact' import { Readable, Writable } from './types' -export type * from './types' +export * from './types' export const DOMAIN_NOTIFICATION = 'notification' as Domain export const DOMAIN_DOC_NOTIFY = 'notification-dnc' as Domain diff --git a/plugins/process-resources/src/components/ProcessesHeaderExtension.svelte b/plugins/process-resources/src/components/ProcessesHeaderExtension.svelte index 9e5bde53d5..e43273da29 100644 --- a/plugins/process-resources/src/components/ProcessesHeaderExtension.svelte +++ b/plugins/process-resources/src/components/ProcessesHeaderExtension.svelte @@ -100,7 +100,7 @@ $: rollbacks = docs.filter((d) => d.rollback.length > 0) - function isRequest(todo: ProcessToDo): todo is ApproveRequest { + function isRequest (todo: ProcessToDo): todo is ApproveRequest { return todo._class === process.class.ApproveRequest } diff --git a/plugins/process-resources/src/components/ProcessesSection.svelte b/plugins/process-resources/src/components/ProcessesSection.svelte index b9aacac9a0..ec2ede6192 100644 --- a/plugins/process-resources/src/components/ProcessesSection.svelte +++ b/plugins/process-resources/src/components/ProcessesSection.svelte @@ -37,7 +37,7 @@ const client = getClient() - async function add(): Promise { + async function add (): Promise { const initState = generateId() const id = await client.createDoc(process.class.Process, core.space.Model, { name: await translate(process.string.NewProcess, {}), @@ -81,7 +81,7 @@ } ) - function handleSelect(id: Ref): void { + function handleSelect (id: Ref): void { const loc = getCurrentLocation() loc.path[5] = process.component.ProcessEditor loc.path[6] = id diff --git a/plugins/process-resources/src/components/settings/ProcessEditor.svelte b/plugins/process-resources/src/components/settings/ProcessEditor.svelte index e24ef387e1..3716151c9c 100644 --- a/plugins/process-resources/src/components/settings/ProcessEditor.svelte +++ b/plugins/process-resources/src/components/settings/ProcessEditor.svelte @@ -95,13 +95,13 @@ } ) - async function saveName(): Promise { + async function saveName (): Promise { if (value !== undefined) { await client.update(value, { name: value.name }) } } - async function deleteProcess(): Promise { + async function deleteProcess (): Promise { if (value === undefined) return // to do handle on server trigger await client.remove(value) @@ -111,7 +111,7 @@ navigate(loc) } - async function handleDelete(): Promise { + async function handleDelete (): Promise { if (value === undefined) return const execution = await client.findOne(process.class.Execution, { process: value?._id }) if (execution !== undefined) { @@ -129,7 +129,7 @@ defineSeparators('spaceTypeEditor', secondNavSeparators) - function handleContext(): void { + function handleContext (): void { $settingsStore = { id: value?._id, component: ContextEditor, @@ -137,11 +137,11 @@ } } - function handleSettings(): void { + function handleSettings (): void { showPopup(ProcesssSetting, { value }) } - function handleBindings(): void { + function handleBindings (): void { showPopup(BindingsEditor, { process: value }) } @@ -160,7 +160,7 @@ } ] - function onExportSelected(event: CustomEvent): void { + function onExportSelected (event: CustomEvent): void { if (event.detail === EXPORT_WITH_SLOTS) { handleExport(true) } else if (event.detail === EXPORT_WITHOUT_SLOTS) { @@ -168,7 +168,7 @@ } } - function handleExport(withSlots: boolean): void { + function handleExport (withSlots: boolean): void { if (value === undefined) return const str = JSON.stringify( exportProcess(value, withSlots).docs.map((doc) => { diff --git a/plugins/process-resources/src/components/settings/ProcesssSetting.svelte b/plugins/process-resources/src/components/settings/ProcesssSetting.svelte index 9061150762..845e2053b9 100644 --- a/plugins/process-resources/src/components/settings/ProcesssSetting.svelte +++ b/plugins/process-resources/src/components/settings/ProcesssSetting.svelte @@ -24,13 +24,13 @@ const client = getClient() const dispatch = createEventDispatcher() - async function saveRestriction(e: CustomEvent): Promise { + async function saveRestriction (e: CustomEvent): Promise { if (value !== undefined) { await client.update(value, { parallelExecutionForbidden: e.detail }) } } - async function saveAutoStart(e: CustomEvent): Promise { + async function saveAutoStart (e: CustomEvent): Promise { if (value !== undefined) { await client.update(value, { autoStart: e.detail }) } diff --git a/plugins/process-resources/src/exporter.ts b/plugins/process-resources/src/exporter.ts index f9f9a9f0b5..2cce2783f8 100644 --- a/plugins/process-resources/src/exporter.ts +++ b/plugins/process-resources/src/exporter.ts @@ -95,7 +95,7 @@ function processToSlot (proc: Process, memberOf?: string): SlotModel { function unknownToSlot (id: string, memberOf?: string): SlotModel { return { slotKind: 'unknown', - _class: core.class.Obj, + _class: core.class.Obj as any, label: id as any, name: id, memberOf @@ -148,7 +148,7 @@ function processParams ( } continue } - const attr = h.findAttribute(masterTag, key) + const attr = h.findAttribute(masterTag as any, key) if (attr !== undefined) { processType(attr.type, docs, required, m, h) } @@ -171,12 +171,12 @@ function scanDSL ( ): void { // Detect @attr references for (const m of dsl.matchAll(/\$\{@([a-zA-Z0-9_]+)/g)) { - const attr = h.findAttribute(masterTag, m[1]) + const attr = h.findAttribute(masterTag as any, m[1]) if (attr !== undefined) processType(attr.type, docs, required, model, h) } // Detect inline 24-char hex IDs for (const match of dsl.matchAll(/[0-9a-fA-F]{24}/g)) { - const obj = h.findAttribute(masterTag, match[0]) ?? model.findObject(match[0] as any) + const obj = h.findAttribute(masterTag as any, match[0]) ?? model.findObject(match[0] as any) if ((obj as any)?.type !== undefined) { processType((obj as any).type, docs, required, model, h) } @@ -437,7 +437,7 @@ function replaceIdInJson (json: string, id: string, replacement: string): string export function denormalizeIds (docs: Doc[], masterTag: Ref, bindings?: Record): Doc[] { const idMap: Record = { __PROCESS__: generateId(), - __MASTER_TAG__: masterTag + __MASTER_TAG__: masterTag as string } // Map slot placeholders to bound IDs @@ -738,7 +738,7 @@ function mergeAttributeSlotMeta (meta: SlotModel, model: AttributeSlotModel): vo ;(meta as any).type = model.type meta._class = model.type._class } else if (typeof model.type === 'string') { - meta._class = model.type + meta._class = model.type as any } if (model.label !== undefined) meta.label = model.label } diff --git a/plugins/process-resources/src/utils.ts b/plugins/process-resources/src/utils.ts index d3e3ce9961..bbbea56c54 100644 --- a/plugins/process-resources/src/utils.ts +++ b/plugins/process-resources/src/utils.ts @@ -122,7 +122,7 @@ export function getContextMasterTag ( const assoc = model.findObject(context.association) if (assoc === undefined) return const targetClass = context.direction === 'A' ? assoc.classA : assoc.classB - if (context.key === '_id') return targetClass + if (context.key === '_id') return targetClass as Ref const nested = h.findAttribute(targetClass, context.key) return (nested?.type as RefTo)?.to } @@ -304,7 +304,7 @@ export function getContext ( if (includeConvertible) { const funcs = client.getModel().findAllSync(process.class.ProcessFunction, { type: 'convert', to: target }) for (const func of funcs) { - const convContext = getContext(client, _process, func.of, category, attr, false) + const convContext = getContext(client, _process, func.of as Ref>>, category, attr, false) if ( convContext.attributes.length > 0 || Object.keys(convContext.executionContext).length > 0 || diff --git a/plugins/process/src/index.ts b/plugins/process/src/index.ts index 74fc7dc35e..9568ea8602 100644 --- a/plugins/process/src/index.ts +++ b/plugins/process/src/index.ts @@ -158,7 +158,7 @@ export interface ApproveRequest extends ProcessToDo { export type MethodParams = { [P in keyof T]?: ObjQueryType | string } & DocumentUpdate & - Record +Record export interface State extends Doc { process: Ref @@ -237,7 +237,7 @@ export interface UpdateCriteriaComponent extends Doc { export * from './dslContext' export * from './errors' -export type * from './types' +export * from './types' export * from './utils' export default plugin(processId, { diff --git a/plugins/products-resources/src/components/product-version/CreateProductVersion.svelte b/plugins/products-resources/src/components/product-version/CreateProductVersion.svelte index 8ca4edd84e..dd05046f52 100644 --- a/plugins/products-resources/src/components/product-version/CreateProductVersion.svelte +++ b/plugins/products-resources/src/components/product-version/CreateProductVersion.svelte @@ -70,7 +70,7 @@ $: updateSeverity(parent, severity) - function updateSeverity(parent: ProductVersion | null | undefined, severity: Severity): void { + function updateSeverity (parent: ProductVersion | null | undefined, severity: Severity): void { if (parent != null) { object.major = severity === 'major' ? parent.major + 1 : parent.major object.minor = severity === 'minor' ? parent.minor + 1 : 0 @@ -82,15 +82,15 @@ } } - function formatProductVersion(object: ProductVersionDraft): string { + function formatProductVersion (object: ProductVersionDraft): string { return `${object.major}.${object.minor}.${object.patch}` } - function formatProductVersionName(object: ProductVersionDraft): string { + function formatProductVersionName (object: ProductVersionDraft): string { return `${formatProductVersion(object)}` + (object.codename != null ? ` ${object.codename}` : '') } - async function handleOkAction(): Promise { + async function handleOkAction (): Promise { if (space === undefined) { return } @@ -120,7 +120,7 @@ dispatch('close', id) } - async function handleClose(): Promise { + async function handleClose (): Promise { const noChanges = deepEqual(object, createDefaultObject()) if (noChanges) { dispatch('close') @@ -141,7 +141,7 @@ } } - function createDefaultObject(): ProductVersionDraft { + function createDefaultObject (): ProductVersionDraft { return { readonly: false, major: 1, diff --git a/plugins/products-resources/src/components/product-version/EditProductVersion.svelte b/plugins/products-resources/src/components/product-version/EditProductVersion.svelte index 4ca41bc11c..ad77c4fed3 100644 --- a/plugins/products-resources/src/components/product-version/EditProductVersion.svelte +++ b/plugins/products-resources/src/components/product-version/EditProductVersion.svelte @@ -44,7 +44,7 @@ let lastId: Ref = _id $: read(_id) - function read(_id: Ref): void { + function read (_id: Ref): void { if (lastId !== _id) { const prev = lastId lastId = _id diff --git a/plugins/setting-resources/src/components/AssociationEditor.svelte b/plugins/setting-resources/src/components/AssociationEditor.svelte index dcf8b660c4..473b890232 100644 --- a/plugins/setting-resources/src/components/AssociationEditor.svelte +++ b/plugins/setting-resources/src/components/AssociationEditor.svelte @@ -49,7 +49,7 @@ .map((p) => p.attachTo) ) - function filterClasses( + function filterClasses ( descendants: Set>>, viewlets: Set>>, exclude: Ref>[] @@ -102,7 +102,7 @@ $: classA = isEmptyClass(classARef) ? undefined : hierarchy.getClass(classARef as Ref>) $: classB = isEmptyClass(classBRef) ? undefined : hierarchy.getClass(classBRef as Ref>) - function isEmptyClass(ref: Ref> | undefined): boolean { + function isEmptyClass (ref: Ref> | undefined): boolean { return ref === undefined || ref !== '' } @@ -110,7 +110,7 @@ $: fill(association) - function fill(association: Association | Data): void { + function fill (association: Association | Data): void { classBRef = !isEmptyClass(association.classB) ? association.classB : undefined classARef = !isEmptyClass(association.classA) ? association.classA : undefined nameA = association.nameA @@ -118,13 +118,13 @@ automationOnly = association.automationOnly ?? false } - function isAssociation(data: Data | Association): data is Association { + function isAssociation (data: Data | Association): data is Association { return (data as Association)._id !== undefined } const dispatch = createEventDispatcher() - async function save(): Promise { + async function save (): Promise { if (classBRef === undefined || classARef === undefined) { return } diff --git a/plugins/setting-resources/src/components/Backup.svelte b/plugins/setting-resources/src/components/Backup.svelte index 1ba4a81e0c..5ee991314b 100644 --- a/plugins/setting-resources/src/components/Backup.svelte +++ b/plugins/setting-resources/src/components/Backup.svelte @@ -41,22 +41,22 @@ const workspaceId = workspaceDataId ?? workspaceUuid let backupInfo: - | { - files: { name: string, size: number }[] - extraBlobs: { name: string, size: number, contentType: string }[] - extraBlobsTotal?: number - error?: string - info?: BackupInfo - } - | undefined + | { + files: { name: string, size: number }[] + extraBlobs: { name: string, size: number, contentType: string }[] + extraBlobsTotal?: number + error?: string + info?: BackupInfo + } + | undefined $: fileSizes = new Map(backupInfo?.files?.map((it) => [it.name, it.size ?? 0])) - function formatDate(timestamp: number): string { + function formatDate (timestamp: number): string { return new Date(timestamp).toLocaleString() } - function getSize(size: number): string { + function getSize (size: number): string { const mbSize = size / (1024 * 1024) if (size < 1024) { @@ -69,7 +69,7 @@ return `${Math.round(mbSize * 100) / 100}Mb` } - function getSnapshotSummary(snapshot: BackupSnapshot): string { + function getSnapshotSummary (snapshot: BackupSnapshot): string { let size = 0 Object.values(snapshot.domains).forEach((domain) => { @@ -80,7 +80,7 @@ return getSize(size) } - function getBackupSize(files: { name: string, size: number }[]): string { + function getBackupSize (files: { name: string, size: number }[]): string { let size = 0 files.forEach((file) => { @@ -90,7 +90,7 @@ return getSize(size) } - async function updateBackupInfo(): Promise { + async function updateBackupInfo (): Promise { if (owner && backupUrl !== '') { try { const response = await fetch(`${backupUrl}/${workspaceId}/index.json`, { @@ -111,7 +111,7 @@ void updateBackupInfo() }) - function formatAgoHours(timestamp: number): string { + function formatAgoHours (timestamp: number): string { const date = new Date(timestamp) const now = new Date() const diffMs = now.getTime() - date.getTime() @@ -127,11 +127,11 @@ return '' } - function getBackupFileUrl(filename: string): string { + function getBackupFileUrl (filename: string): string { return `${backupUrl}/${workspaceId}/${filename}` } - async function doDownload(downloadUrl: string, filename?: string): Promise { + async function doDownload (downloadUrl: string, filename?: string): Promise { const a = document.createElement('a') try { const response = await fetch(downloadUrl, { @@ -160,11 +160,11 @@ } } - async function downloadFile(filename: string): Promise { + async function downloadFile (filename: string): Promise { const url = getBackupFileUrl(filename) await doDownload(url, filename) } - async function downloadBlobFile(filename: string): Promise { + async function downloadBlobFile (filename: string): Promise { const url = getFileUrl(filename) await doDownload(url, filename) } @@ -176,7 +176,7 @@ let scriptCopied = false let tokenCopied = false - function copyToken(): void { + function copyToken (): void { void copyTextToClipboard(token).then(() => { tokenCopied = true setTimeout(() => { @@ -185,12 +185,12 @@ }) } - function backupArchiveName(): string { + function backupArchiveName (): string { const date = new Date().toISOString().slice(0, 10) return `huly-backup-${workspaceId}-${date}.zip` } - async function downloadFullBackup(): Promise { + async function downloadFullBackup (): Promise { if (downloading) { return } @@ -233,7 +233,7 @@ } } - function copyBackupScript(): void { + function copyBackupScript (): void { const files = collectBackupFileNames(backupInfo) const script = generateBackupScript({ baseUrl: downloadBase, diff --git a/plugins/setting-resources/src/components/ClassAttributesList.svelte b/plugins/setting-resources/src/components/ClassAttributesList.svelte index 77094a4c47..e65ab2cfc9 100644 --- a/plugins/setting-resources/src/components/ClassAttributesList.svelte +++ b/plugins/setting-resources/src/components/ClassAttributesList.svelte @@ -52,12 +52,12 @@ export let showAll: boolean = false export let attributeMapper: - | { - component: AnySvelteComponent - label: IntlString - props: Record - } - | undefined = undefined + | { + component: AnySvelteComponent + label: IntlString + props: Record + } + | undefined = undefined const dispatch = createEventDispatcher() @@ -74,7 +74,7 @@ }) $: attributes = getCustomAttributes(_class) - function getCustomAttributes(_class: Ref>): AnyAttribute[] { + function getCustomAttributes (_class: Ref>): AnyAttribute[] { const cl = hierarchy.getClass(_class) const to = showAll ? ofClass : _class === ofClass && !notUseOfClass ? core.class.Doc : cl.extends const attributes = Array.from(hierarchy.getAllAttributes(_class, to).values()).sort((a, b) => { @@ -91,15 +91,15 @@ attributes = getCustomAttributes(_class) }) - function update(): void { + function update (): void { attributes = getCustomAttributes(_class) } - export async function editAttribute(attribute: AnyAttribute, exist: boolean): Promise { + export async function editAttribute (attribute: AnyAttribute, exist: boolean): Promise { showPopup(EditAttribute, { attribute, exist }, 'top', update) } - export async function overrideAttribute(source: AnyAttribute): Promise { + export async function overrideAttribute (source: AnyAttribute): Promise { const newSeq = await client.createDoc(core.class.CustomSequence, core.space.Workspace, { prefix: '', sequence: 0, @@ -116,7 +116,7 @@ } } - export async function removeAttribute(attribute: AnyAttribute, exist: boolean): Promise { + export async function removeAttribute (attribute: AnyAttribute, exist: boolean): Promise { showPopup( MessageBox, { @@ -131,7 +131,7 @@ ) } - async function showMenu(ev: MouseEvent, attribute: AnyAttribute): Promise { + async function showMenu (ev: MouseEvent, attribute: AnyAttribute): Promise { hovered = attribute._id const exist = (await client.findOne(attribute.attributeOf, { [attribute.name]: { $exists: true } })) !== undefined const actions: Action[] = [ @@ -177,7 +177,7 @@ }) } - function getAttrType(type: Type): IntlString | undefined { + function getAttrType (type: Type): IntlString | undefined { switch (type._class) { case core.class.RefTo: return client.getHierarchy().getClass((type as RefTo).to)?.label @@ -192,7 +192,7 @@ } } - function toRank(str: string | undefined): Rank | undefined { + function toRank (str: string | undefined): Rank | undefined { if (str === undefined) return if (str.startsWith('0|')) { return str @@ -200,7 +200,7 @@ return '0|' + str.replaceAll(/[-:_]/g, '').toLowerCase() } - async function moveHadler(e: CustomEvent): Promise { + async function moveHadler (e: CustomEvent): Promise { const { item, prev, next } = e.detail const rank = makeRank(prev?.rank ?? toRank(prev?._id), next?.rank ?? toRank(next?._id)) await client.update(item, { rank }) diff --git a/plugins/setting-resources/src/components/CreateAttribute.svelte b/plugins/setting-resources/src/components/CreateAttribute.svelte index 9ec990e18c..d07b0c100d 100644 --- a/plugins/setting-resources/src/components/CreateAttribute.svelte +++ b/plugins/setting-resources/src/components/CreateAttribute.svelte @@ -61,7 +61,7 @@ const client = getClient() const hierarchy = client.getHierarchy() - async function save(): Promise { + async function save (): Promise { if (type === undefined) return const data: Data = { @@ -86,7 +86,7 @@ clearSettingsStore() } - function getTypes(): DropdownIntlItem[] { + function getTypes (): DropdownIntlItem[] { const descendants = hierarchy.getDescendants(core.class.Type) const res: DropdownIntlItem[] = [] for (const descendant of descendants) { @@ -106,7 +106,7 @@ $: selectType(selectedType) - function selectType(type: Ref>> | undefined): void { + function selectType (type: Ref>> | undefined): void { if (type === undefined) return const _class = hierarchy.getClass(type) const editor = hierarchy.as(_class, view.mixin.ObjectEditor) @@ -129,7 +129,7 @@ extra = e.detail?.extra ?? extra } } - function setIcon(): void { + function setIcon (): void { showPopup(IconPicker, { icon, showEmoji: false, showColor: false }, 'top', async (res) => { if (res !== undefined) { icon = res.icon diff --git a/plugins/setting-resources/src/components/CreateAttributePopup.svelte b/plugins/setting-resources/src/components/CreateAttributePopup.svelte index 6106bd4d6a..35c0d62833 100644 --- a/plugins/setting-resources/src/components/CreateAttributePopup.svelte +++ b/plugins/setting-resources/src/components/CreateAttributePopup.svelte @@ -60,7 +60,7 @@ const dispatch = createEventDispatcher() - async function save(): Promise { + async function save (): Promise { if (type === undefined) return const data: Data = { @@ -84,7 +84,7 @@ dispatch('close') } - function getTypes(): DropdownIntlItem[] { + function getTypes (): DropdownIntlItem[] { const descendants = hierarchy.getDescendants(core.class.Type) const res: DropdownIntlItem[] = [] for (const descendant of descendants) { @@ -103,7 +103,7 @@ $: selectType(selectedType) - function selectType(type: Ref>> | undefined): void { + function selectType (type: Ref>> | undefined): void { if (type === undefined) return const _class = hierarchy.getClass(type) const editor = hierarchy.as(_class, view.mixin.ObjectEditor) @@ -127,7 +127,7 @@ } } - function setIcon(): void { + function setIcon (): void { showPopup(IconPicker, { icon, showEmoji: false, showColor: false }, 'top', async (res) => { if (res !== undefined) { icon = res.icon diff --git a/plugins/setting-resources/src/components/CreateRelation.svelte b/plugins/setting-resources/src/components/CreateRelation.svelte index 68bd62fca5..d616ffb526 100644 --- a/plugins/setting-resources/src/components/CreateRelation.svelte +++ b/plugins/setting-resources/src/components/CreateRelation.svelte @@ -39,7 +39,7 @@ .map((p) => p.attachTo) ) - function filterClasses( + function filterClasses ( descendants: Set>>, viewlets: Set>>, exclude: Ref>[] @@ -98,7 +98,7 @@ let nameB: string = '' let automationOnly = false - async function save(): Promise { + async function save (): Promise { if (classBRef === undefined || classARef === undefined) { return } @@ -132,7 +132,7 @@ $: classA = getAClass(aClass) - function getAClass(aClass: Ref> | undefined): DropdownIntlItem | undefined { + function getAClass (aClass: Ref> | undefined): DropdownIntlItem | undefined { if (aClass === undefined) { return undefined } diff --git a/plugins/setting-resources/src/components/EditAttribute.svelte b/plugins/setting-resources/src/components/EditAttribute.svelte index 89b64de821..7a113f6b16 100644 --- a/plugins/setting-resources/src/components/EditAttribute.svelte +++ b/plugins/setting-resources/src/components/EditAttribute.svelte @@ -67,7 +67,7 @@ name = p }) - async function save(): Promise { + async function save (): Promise { if (disabled) { return } @@ -106,7 +106,7 @@ clearSettingsStore() } - function getTypes(): DropdownIntlItem[] { + function getTypes (): DropdownIntlItem[] { const descendants = hierarchy.getDescendants(core.class.Type) const res: DropdownIntlItem[] = [] for (const descendant of descendants) { @@ -126,7 +126,7 @@ $: selectedType && selectType(selectedType) - function selectType(type: Ref>>): void { + function selectType (type: Ref>>): void { const _class = hierarchy.getClass(type) const editor = hierarchy.as(_class, view.mixin.ObjectEditor) if (editor.editor !== undefined) { @@ -149,7 +149,7 @@ } } - async function remove(evt: MouseEvent): Promise { + async function remove (evt: MouseEvent): Promise { const impl = await getResource(view.actionImpl.Delete) await impl(attribute, evt, { afterDelete: () => { @@ -158,13 +158,13 @@ }) } - async function hide(): Promise { + async function hide (): Promise { const value = !attribute.hidden attribute.hidden = value await client.update(attribute, { hidden: value }) } - function setIcon(): void { + function setIcon (): void { showPopup(IconPicker, { icon, showEmoji: false, showColor: false }, 'top', async (res) => { if (res !== undefined) { icon = res.icon @@ -176,11 +176,11 @@ client.getModel().findObject(getAttributePermissionRef(attribute, false)) !== undefined || client.getModel().findObject(getAttributePermissionRef(attribute, true)) !== undefined - function getAttributePermissionRef(attr: AnyAttribute, forbidden: boolean): Ref { + function getAttributePermissionRef (attr: AnyAttribute, forbidden: boolean): Ref { return `${attr._id}_${forbidden ? 'forbidden' : 'allowed'}` as Ref } - function changeRestricted(): void { + function changeRestricted (): void { showPopup( MessageBox, { @@ -239,7 +239,7 @@ {#if attribute.isCustom} - + {/if} {/if} @@ -264,9 +264,9 @@
@@ -283,8 +283,8 @@ item.id === association?.type)?.label ?? ('' as IntlString) - async function remove(): Promise { + async function remove (): Promise { showPopup(MessageBox, { label: view.string.DeleteObject, message: view.string.DeleteObjectConfirm, diff --git a/plugins/setting-resources/src/components/General.svelte b/plugins/setting-resources/src/components/General.svelte index 2467cb2492..9aaee0ad0a 100644 --- a/plugins/setting-resources/src/components/General.svelte +++ b/plugins/setting-resources/src/components/General.svelte @@ -65,7 +65,7 @@ void loadWorkspaceName() - async function loadWorkspaceName(): Promise { + async function loadWorkspaceName (): Promise { const res = await accountClient.getWorkspaceInfo() workspaceUrl = res.url @@ -75,7 +75,7 @@ loading = false } - async function handleEditName(): Promise { + async function handleEditName (): Promise { if (editNameDisabled) { return } @@ -87,12 +87,12 @@ isEditingName = !isEditingName } - function handleCancelEditName(): void { + function handleCancelEditName (): void { name = oldName isEditingName = false } - async function handleDelete(): Promise { + async function handleDelete (): Promise { showPopup(MessageBox, { label: settingsRes.string.DeleteWorkspace, message: settingsRes.string.DeleteWorkspaceConfirm, @@ -118,7 +118,7 @@ } ) - async function handleAvatarDone(): Promise { + async function handleAvatarDone (): Promise { const existing = await client.findOne(settingsRes.class.WorkspaceSetting, { _id: settingsRes.ids.WorkspaceSetting }) if (existing !== undefined) { const avatar = await avatarEditor.createAvatar() @@ -153,7 +153,7 @@ } ) - async function changePasswordAgingRules(val: number | undefined): Promise { + async function changePasswordAgingRules (val: number | undefined): Promise { passwordAgingRule = val !== undefined ? Math.max(val, 1) : undefined await accountClient.updatePasswordAgingRule(passwordAgingRule) } diff --git a/plugins/setting-resources/src/components/GuestPermissionsSettings.svelte b/plugins/setting-resources/src/components/GuestPermissionsSettings.svelte index 1e809f5bcd..2c828b786e 100644 --- a/plugins/setting-resources/src/components/GuestPermissionsSettings.svelte +++ b/plugins/setting-resources/src/components/GuestPermissionsSettings.svelte @@ -117,9 +117,9 @@ $: workspaceApplications = client .getModel() .findAllSync(workbench.class.Application, { - hidden: false, - _id: { $nin: excludedApplicationIds } - }) + hidden: false, + _id: { $nin: excludedApplicationIds } + }) .filter((app) => !hiddenApplicationIds.includes(app._id)) $: applicationsMap = new Map, Application>( @@ -140,23 +140,23 @@ /** Anonymous (read-only guest) module rows are view-only until workspace allows anonymous guests. */ $: anonymousModulePermissionsReadOnly = guestPermissionsTab === 'anonymous' && !allowReadOnlyGuests - function getApplicationLabel(applicationId: Ref): IntlString { + function getApplicationLabel (applicationId: Ref): IntlString { return applicationsMap.get(applicationId)?.label ?? getEmbeddedLabel(applicationId) } - function getApplication(applicationId: Ref): Application | undefined { + function getApplication (applicationId: Ref): Application | undefined { return applicationsMap.get(applicationId) } - function getDisabledPermissions(group: ModulePermissionGroup): Set> { + function getDisabledPermissions (group: ModulePermissionGroup): Set> { return new Set(group.disabledPermissions ?? []) } - function isPermissionActive(group: ModulePermissionGroup, permissionId: Ref): boolean { + function isPermissionActive (group: ModulePermissionGroup, permissionId: Ref): boolean { return !getDisabledPermissions(group).has(permissionId) } - async function togglePermission( + async function togglePermission ( group: ModulePermissionGroup, permissionId: Ref, enabled: boolean @@ -174,44 +174,44 @@ } as any) } - async function toggleModule(group: ModulePermissionGroup, enabled: boolean): Promise { + async function toggleModule (group: ModulePermissionGroup, enabled: boolean): Promise { if (anonymousModulePermissionsReadOnly) return await client.updateDoc(core.class.ModulePermissionGroup, core.space.Model, group._id, { enabled } as any) } - function isModuleEnabled(group: ModulePermissionGroup): boolean { + function isModuleEnabled (group: ModulePermissionGroup): boolean { return group.enabled ?? true } - function getPermissionLabel(permissionId: Ref): IntlString { + function getPermissionLabel (permissionId: Ref): IntlString { return permissionsMap.get(permissionId)?.label ?? getEmbeddedLabel(permissionId) } - function onAccessToggle(group: ModulePermissionGroup, ev: Event): void { + function onAccessToggle (group: ModulePermissionGroup, ev: Event): void { const e = ev as CustomEvent void toggleModule(group, e.detail) } - function onPermissionToggle(group: ModulePermissionGroup, permissionId: Ref, ev: Event): void { + function onPermissionToggle (group: ModulePermissionGroup, permissionId: Ref, ev: Event): void { const e = ev as CustomEvent void togglePermission(group, permissionId, e.detail) } - function handleAccessToggle(group: ModulePermissionGroup): (ev: Event) => void { + function handleAccessToggle (group: ModulePermissionGroup): (ev: Event) => void { return (ev: Event) => { onAccessToggle(group, ev) } } - function handlePermissionToggle(group: ModulePermissionGroup, permissionId: Ref): (ev: Event) => void { + function handlePermissionToggle (group: ModulePermissionGroup, permissionId: Ref): (ev: Event) => void { return (ev: Event) => { onPermissionToggle(group, permissionId, ev) } } - async function handleToggleReadonlyAccess(e: CustomEvent): Promise { + async function handleToggleReadonlyAccess (e: CustomEvent): Promise { const enabled = e.detail const guestUserInfo = await accountClient.updateAllowReadOnlyGuests(enabled) allowReadOnlyGuests = enabled @@ -241,16 +241,16 @@ } } - async function handleToggleGuestSignUp(e: CustomEvent): Promise { + async function handleToggleGuestSignUp (e: CustomEvent): Promise { await accountClient.updateAllowGuestSignUp(e.detail) allowGuestSignUp = e.detail } - function onReadonlyGuestsToggle(e: CustomEvent): void { + function onReadonlyGuestsToggle (e: CustomEvent): void { void handleToggleReadonlyAccess(e) } - function onGuestSignUpToggle(e: CustomEvent): void { + function onGuestSignUpToggle (e: CustomEvent): void { void handleToggleGuestSignUp(e) } diff --git a/plugins/setting-resources/src/components/InviteSetting.svelte b/plugins/setting-resources/src/components/InviteSetting.svelte index 95b6164185..73982e95e6 100644 --- a/plugins/setting-resources/src/components/InviteSetting.svelte +++ b/plugins/setting-resources/src/components/InviteSetting.svelte @@ -79,7 +79,7 @@ }) } - function applyInviteSettings(set: InviteSettings[]): void { + function applyInviteSettings (set: InviteSettings[]): void { existingInviteSettings = set const state = resolveInviteSettings(set[0]) expTime = state.expirationTime @@ -93,12 +93,12 @@ $: query.query(setting.class.InviteSettings, {}, applyInviteSettings) - function normalizeValues(): void { + function normalizeValues (): void { expTime = Math.max(1, expTime) limit = noLimit ? -1 : Math.max(1, limit ?? 1) } - async function setInviteSettings(): Promise { + async function setInviteSettings (): Promise { if (inviteLimitInvalid) return normalizeValues() const savedLimit = limit ?? -1 @@ -138,12 +138,12 @@ } } - async function autoSaveIfValid(): Promise { + async function autoSaveIfValid (): Promise { if (loading || inviteLimitInvalid) return await setInviteSettings() } - function handleNoLimitChange(e: CustomEvent): void { + function handleNoLimitChange (e: CustomEvent): void { noLimit = e.detail if (noLimit) { limit = -1 @@ -153,20 +153,20 @@ void autoSaveIfValid() } - function handleExpTimeChange(): void { + function handleExpTimeChange (): void { void autoSaveIfValid() } - function handleLimitChange(): void { + function handleLimitChange (): void { void autoSaveIfValid() } - function handleDefaultInviteRoleSelected(e: CustomEvent): void { + function handleDefaultInviteRoleSelected (e: CustomEvent): void { defaultInviteRole = e.detail void autoSaveIfValid() } - function handleGeneratorRolesSelected(e: CustomEvent): void { + function handleGeneratorRolesSelected (e: CustomEvent): void { if (e.detail != null) { inviteLinkGeneratorRoles = [...e.detail] } diff --git a/plugins/setting-resources/src/components/OfficeSettings.svelte b/plugins/setting-resources/src/components/OfficeSettings.svelte index 7e61e7b97d..27afde9299 100644 --- a/plugins/setting-resources/src/components/OfficeSettings.svelte +++ b/plugins/setting-resources/src/components/OfficeSettings.svelte @@ -35,7 +35,7 @@ loading = false }) - async function toggleDefaultTranscription(e: CustomEvent): Promise { + async function toggleDefaultTranscription (e: CustomEvent): Promise { const enabled = e.detail defaultStartWithTranscription = enabled const newSettings = { @@ -55,7 +55,7 @@ } } - async function toggleDefaultRecording(e: CustomEvent): Promise { + async function toggleDefaultRecording (e: CustomEvent): Promise { const enabled = e.detail defaultStartWithRecording = enabled const newSettings = { diff --git a/plugins/setting-resources/src/components/Profile.svelte b/plugins/setting-resources/src/components/Profile.svelte index 2f5bd79d33..cf6f1173e5 100644 --- a/plugins/setting-resources/src/components/Profile.svelte +++ b/plugins/setting-resources/src/components/Profile.svelte @@ -64,7 +64,7 @@ } let avatarEditor: EditableAvatar - async function onAvatarDone(): Promise { + async function onAvatarDone (): Promise { if ($myEmployeeStore === undefined) return if ($myEmployeeStore.avatar != null) { @@ -76,7 +76,7 @@ const manager = createFocusManager() - async function leave(): Promise { + async function leave (): Promise { showPopup(MessageBox, { label: setting.string.Leave, message: setting.string.LeaveDescr, @@ -111,7 +111,7 @@ }) } - async function nameChange(): Promise { + async function nameChange (): Promise { if ($myEmployeeStore !== undefined) { await client.diffUpdate($myEmployeeStore, { name: combineName(firstName, lastName) diff --git a/plugins/setting-resources/src/components/RelationSetting.svelte b/plugins/setting-resources/src/components/RelationSetting.svelte index 2b18e0709d..a6a56bfb5e 100644 --- a/plugins/setting-resources/src/components/RelationSetting.svelte +++ b/plugins/setting-resources/src/components/RelationSetting.svelte @@ -34,7 +34,7 @@ $: filtered = filterAssociations(associations, _classes, exclude) - function filterAssociations( + function filterAssociations ( associations: Association[], _classes: Ref>[], exclude: Ref>[] @@ -63,7 +63,7 @@ return res } - function createRelation(): void { + function createRelation (): void { selected = { classA: '' as Ref>, classB: '' as Ref>, @@ -73,16 +73,16 @@ } } - function isAssociation(data: Data | Association | undefined): data is Association { + function isAssociation (data: Data | Association | undefined): data is Association { return (data as Association)?._id !== undefined } - function getClassLabel(_class: Ref>): IntlString | undefined { + function getClassLabel (_class: Ref>): IntlString | undefined { const _classLabel = client.getModel().findObject(_class) return _classLabel?.label } - async function getLabel(association: Association): Promise { + async function getLabel (association: Association): Promise { const aLabel = getClassLabel(association.classA) const bLabel = getClassLabel(association.classB) const aClass = aLabel !== undefined ? await translate(aLabel, {}) : undefined @@ -92,7 +92,7 @@ defineSeparators('workspaceSettings', twoPanelsSeparators) - async function remove(val: Association | Data | undefined): Promise { + async function remove (val: Association | Data | undefined): Promise { if (isAssociation(val)) { showPopup(MessageBox, { label: view.string.DeleteObject, diff --git a/plugins/setting-resources/src/components/Spaces.svelte b/plugins/setting-resources/src/components/Spaces.svelte index 602467fe24..39774c118f 100644 --- a/plugins/setting-resources/src/components/Spaces.svelte +++ b/plugins/setting-resources/src/components/Spaces.svelte @@ -69,7 +69,7 @@ } } - async function handleRoleAssignmentChanged(roleId: Ref, newMembers: AccountUuid[]): Promise { + async function handleRoleAssignmentChanged (roleId: Ref, newMembers: AccountUuid[]): Promise { await client.updateMixin(space._id, space._class, core.space.Space, spaceType.targetClass, { [roleId]: newMembers }) diff --git a/plugins/setting-resources/src/components/UserRoleSelect.svelte b/plugins/setting-resources/src/components/UserRoleSelect.svelte index 81c65dda71..7294db9da9 100644 --- a/plugins/setting-resources/src/components/UserRoleSelect.svelte +++ b/plugins/setting-resources/src/components/UserRoleSelect.svelte @@ -36,7 +36,7 @@ ? allInviteRoleItems.filter((item) => item.id !== AccountRole.Owner && item.id !== AccountRole.Maintainer) : allInviteRoleItems - function handleSelected(e: CustomEvent): void { + function handleSelected (e: CustomEvent): void { dispatch('selected', e.detail) } diff --git a/plugins/setting-resources/src/components/WorkspacePermissionEditor.svelte b/plugins/setting-resources/src/components/WorkspacePermissionEditor.svelte index 49225b2a3d..ce65e4c628 100644 --- a/plugins/setting-resources/src/components/WorkspacePermissionEditor.svelte +++ b/plugins/setting-resources/src/components/WorkspacePermissionEditor.svelte @@ -35,7 +35,7 @@ void loadPermissions() }) - async function loadPermissions(): Promise { + async function loadPermissions (): Promise { try { const result = await accountClient.getWorkspaceUsersWithPermission({ permission @@ -48,7 +48,7 @@ } } - async function handleUsersChange(newUsers: AccountUuid[]): Promise { + async function handleUsersChange (newUsers: AccountUuid[]): Promise { const currentUsers = new Set(users) const updatedUsers = new Set(newUsers) diff --git a/plugins/setting-resources/src/components/WorkspaceSettings.svelte b/plugins/setting-resources/src/components/WorkspaceSettings.svelte index 603d7f9012..c5be61c103 100644 --- a/plugins/setting-resources/src/components/WorkspaceSettings.svelte +++ b/plugins/setting-resources/src/components/WorkspaceSettings.svelte @@ -70,7 +70,7 @@ }, 500) }) - function selectCategory(id: string): void { + function selectCategory (id: string): void { clearSettingsStore() const loc = getCurrentResolvedLocation() loc.path[3] = categoryName diff --git a/plugins/setting-resources/src/components/socialIds/SocialIdsEditor.svelte b/plugins/setting-resources/src/components/socialIds/SocialIdsEditor.svelte index d3a05a6005..afbcb4c5e4 100644 --- a/plugins/setting-resources/src/components/socialIds/SocialIdsEditor.svelte +++ b/plugins/setting-resources/src/components/socialIds/SocialIdsEditor.svelte @@ -53,14 +53,14 @@ }) .filter(notEmpty) - function handleAdd(ev: MouseEvent): void { + function handleAdd (ev: MouseEvent): void { showPopup(Menu, { actions: addActions }, ev.target as HTMLElement) } $: onlyHuly = socialIds.filter((it) => it.type === SocialIdType.HULY).length === 1 $: onlyLogin = socialIds.filter((it) => loginSocialTypes.includes(it.type)).length === 1 - function handleAccountUpdated(): void { + function handleAccountUpdated (): void { account = getCurrentAccount() } diff --git a/plugins/setting-resources/src/inviteSettingsUtils.ts b/plugins/setting-resources/src/inviteSettingsUtils.ts index 4fc05c5a92..d6d29454c4 100644 --- a/plugins/setting-resources/src/inviteSettingsUtils.ts +++ b/plugins/setting-resources/src/inviteSettingsUtils.ts @@ -26,7 +26,7 @@ const numericAccountRoles = new Set(Object.values(AccountRole).filter((v export function normalizeInviteRole (value: string | AccountRole | undefined, fallback: AccountRole): AccountRole { if (value !== undefined && typeof value === 'number' && numericAccountRoles.has(value)) { - return value + return value as AccountRole } if (typeof value === 'string') { const n = value.toLowerCase() @@ -91,13 +91,13 @@ export function resolveInviteSettings (doc: InviteSettings | undefined): Resolve expirationTime: doc.expirationTime, emailMask: doc.emailMask, limit: doc.limit, - defaultInviteRole: normalizeInviteRole(doc.defaultInviteRole, metaRole), + defaultInviteRole: normalizeInviteRole(doc.defaultInviteRole as string | AccountRole | undefined, metaRole), inviteLinkGeneratorRoles: doc.inviteLinkGeneratorRoles != null && doc.inviteLinkGeneratorRoles.length > 0 ? normalizeInviteRoles( - doc.inviteLinkGeneratorRoles, - DEFAULT_INVITE_LINK_GENERATOR_ROLES - ) + doc.inviteLinkGeneratorRoles as Array, + DEFAULT_INVITE_LINK_GENERATOR_ROLES + ) : [...DEFAULT_INVITE_LINK_GENERATOR_ROLES], noLimit: doc.limit === -1 } diff --git a/plugins/setting/src/index.ts b/plugins/setting/src/index.ts index 52f303683f..d7a65ffeac 100644 --- a/plugins/setting/src/index.ts +++ b/plugins/setting/src/index.ts @@ -33,7 +33,7 @@ import { type Integration as AccountIntegration } from '@hcengineering/account-c import { SpaceTypeCreator, SpaceTypeEditor } from './spaceTypeEditor' -export type * from './spaceTypeEditor' +export * from './spaceTypeEditor' export * from './utils' export * from './analytics' diff --git a/plugins/survey-resources/src/utils.ts b/plugins/survey-resources/src/utils.ts index 60c870051d..85348f57a2 100644 --- a/plugins/survey-resources/src/utils.ts +++ b/plugins/survey-resources/src/utils.ts @@ -13,7 +13,7 @@ // limitations under the License. // -import { clone, type Client, type Doc, type Ref } from '@hcengineering/core' +import { clone, type Class, type Client, type Doc, type Ref } from '@hcengineering/core' import survey, { surveyId, type Poll, type PollData, type Survey } from '@hcengineering/survey' import { getClient, MessageBox } from '@hcengineering/presentation' import { @@ -52,7 +52,7 @@ export async function generateSurveyLocation (loc: Location, id: Ref): P const appComponent = loc.path[0] ?? '' const workspace = loc.path[1] ?? '' - const objectPanel = client.getHierarchy().classHierarchyMixin(doc._class, view.mixin.ObjectPanel) + const objectPanel = client.getHierarchy().classHierarchyMixin(doc._class as Ref>, view.mixin.ObjectPanel) const component = objectPanel?.component ?? view.component.EditDoc return { @@ -80,7 +80,7 @@ export async function generatePollLocation (loc: Location, id: Ref): Promi const workspace = loc.path[1] ?? '' const appId = loc.path[2] ?? '' - const objectPanel = client.getHierarchy().classHierarchyMixin(doc._class, view.mixin.ObjectPanel) + const objectPanel = client.getHierarchy().classHierarchyMixin(doc._class as Ref>, view.mixin.ObjectPanel) const component = objectPanel?.component ?? view.component.EditDoc return { diff --git a/plugins/text-editor-resources/src/components/extension/embed/embed.ts b/plugins/text-editor-resources/src/components/extension/embed/embed.ts index 6d56c07e71..9ce13bb8ca 100644 --- a/plugins/text-editor-resources/src/components/extension/embed/embed.ts +++ b/plugins/text-editor-resources/src/components/extension/embed/embed.ts @@ -15,7 +15,7 @@ import { getMetadata, translate } from '@hcengineering/platform' import { type ActionContext, copyTextToClipboard } from '@hcengineering/presentation' -import { EmbedNode as BaseEmbedNode } from '@hcengineering/text' +import { EmbedNode as BaseEmbedNode, type ReferenceNodeProps } from '@hcengineering/text' import textEditor from '@hcengineering/text-editor' import { type Editor, type Range } from '@tiptap/core' import { Fragment, type Node, type ResolvedPos, Slice } from '@tiptap/pm/model' @@ -247,7 +247,7 @@ function getNodeUrl (node?: Node | null): string | undefined { return link?.attrs.href ?? undefined } case 'reference': { - return buildReferenceUrl(node.attrs) + return buildReferenceUrl(node.attrs as ReferenceNodeProps) } case 'embed': { return node.attrs.src diff --git a/plugins/text-editor-resources/src/components/extension/embed/providers/drive.ts b/plugins/text-editor-resources/src/components/extension/embed/providers/drive.ts index 1d35e5002d..a850be0666 100644 --- a/plugins/text-editor-resources/src/components/extension/embed/providers/drive.ts +++ b/plugins/text-editor-resources/src/components/extension/embed/providers/drive.ts @@ -64,7 +64,7 @@ export const DriveEmbedProvider: EmbedNodeProviderConstructor const pos = typeof getPos === 'function' ? getPos() : 0 setLoadingState(editor.view, pos, loading) } - const renderer = new SvelteRenderer(FilePreview, { + const renderer = new SvelteRenderer(FilePreview as any, { element: root, props: { file: version.file, diff --git a/plugins/text-editor-resources/src/components/extension/qms/qmsInlineCommentMark.ts b/plugins/text-editor-resources/src/components/extension/qms/qmsInlineCommentMark.ts index 7cecda3b80..728e202385 100644 --- a/plugins/text-editor-resources/src/components/extension/qms/qmsInlineCommentMark.ts +++ b/plugins/text-editor-resources/src/components/extension/qms/qmsInlineCommentMark.ts @@ -105,7 +105,7 @@ export const QMSInlineCommentMark = Mark.create({ return { [qmsInlineCommentMarkName]: { default: null, - parseHTML: (el) => el.getAttribute(qmsInlineCommentMarkName) + parseHTML: (el) => (el as HTMLSpanElement).getAttribute(qmsInlineCommentMarkName) } } }, @@ -115,7 +115,7 @@ export const QMSInlineCommentMark = Mark.create({ { tag: `span[${qmsInlineCommentMarkName}]`, getAttrs: (el) => { - const value = el.getAttribute(qmsInlineCommentMarkName)?.trim() + const value = (el as HTMLSpanElement).getAttribute(qmsInlineCommentMarkName)?.trim() if (value === null || value === undefined || value.length === 0) { return false } diff --git a/plugins/text-editor-resources/src/components/extension/reference.ts b/plugins/text-editor-resources/src/components/extension/reference.ts index 53cf7dbbdf..b4adc49b02 100644 --- a/plugins/text-editor-resources/src/components/extension/reference.ts +++ b/plugins/text-editor-resources/src/components/extension/reference.ts @@ -418,10 +418,7 @@ async function getReferenceTooltip ( const client = getClient() const hierarchy = client.getHierarchy() - const mixin = hierarchy.classHierarchyMixin( - objectclass, - view.mixin.ObjectTooltip - ) + const mixin = hierarchy.classHierarchyMixin(objectclass as Ref>, view.mixin.ObjectTooltip) if (mixin?.provider !== undefined) { const providerFn = await getResource(mixin.provider) @@ -492,8 +489,8 @@ export async function getReferenceObject ( return message } - const referenceObjectProvider = hierarchy.classHierarchyMixin( - objectclass, + const referenceObjectProvider = hierarchy.classHierarchyMixin( + objectclass as Ref>, view.mixin.ReferenceObjectProvider ) const referenceObjectProviderFn = @@ -644,7 +641,7 @@ function createEmojiElement (emojiCode: number | number[] | Ref): HTMLElem color: 'black' }) - const value = parseEmoji(emojiCode) + const value = parseEmoji(emojiCode as any) if (value !== undefined) { root.textContent = value return root diff --git a/plugins/text-editor-resources/src/components/extension/table/decorations/tableDragMarkerDecoration.ts b/plugins/text-editor-resources/src/components/extension/table/decorations/tableDragMarkerDecoration.ts index 82cef6e443..5eb134d067 100644 --- a/plugins/text-editor-resources/src/components/extension/table/decorations/tableDragMarkerDecoration.ts +++ b/plugins/text-editor-resources/src/components/extension/table/decorations/tableDragMarkerDecoration.ts @@ -110,7 +110,7 @@ function createRowDragMarker (): DragMarkerHTMLElement { export type DropMarkerHTMLElement = HTMLElement export function getDropMarker (): DropMarkerHTMLElement | null { - return document.getElementById(dropMarkerId) + return document.getElementById(dropMarkerId) as DropMarkerHTMLElement } export function hideDropMarker (element: DropMarkerHTMLElement): void { @@ -136,11 +136,11 @@ export function updateRowDropMarker (element: DropMarkerHTMLElement, top: number export type DragMarkerHTMLElement = HTMLElement export function getColDragMarker (): DragMarkerHTMLElement | null { - return document.getElementById(colDragMarkerId) + return document.getElementById(colDragMarkerId) as DragMarkerHTMLElement } export function getRowDragMarker (): DragMarkerHTMLElement | null { - return document.getElementById(rowDragMarkerId) + return document.getElementById(rowDragMarkerId) as DragMarkerHTMLElement } export function getDragMarker (element: DragMarkerHTMLElement): void { diff --git a/plugins/text-editor-resources/src/components/extension/todo/todo.ts b/plugins/text-editor-resources/src/components/extension/todo/todo.ts index 4f5c5946ad..6970c51100 100644 --- a/plugins/text-editor-resources/src/components/extension/todo/todo.ts +++ b/plugins/text-editor-resources/src/components/extension/todo/todo.ts @@ -242,7 +242,9 @@ export function TodoItemPastePlugin (editor: Editor): Plugin if (!isTagParseRule(rule)) { return rule } - const tagRule = rule + // Strange conversion to be ok for both typescript and eslint + // Is ok because rule with 'tag' property is already TagParseRule + const tagRule: TagParseRule = rule as any if (tagRule.node !== 'todoItem') { return rule } diff --git a/plugins/text-editor-resources/src/index.ts b/plugins/text-editor-resources/src/index.ts index ccff77869b..c6857677f6 100644 --- a/plugins/text-editor-resources/src/index.ts +++ b/plugins/text-editor-resources/src/index.ts @@ -45,7 +45,7 @@ export { SmartPasteExtension as TransformPastedContentExtension } from './compon export { getReferenceFromUrl, getReferenceLabel, getTargetObjectFromUrl } from './components/extension/reference' export { TodoItemExtension, TodoListExtension } from './components/extension/todo/todo' -export type * from '@hcengineering/presentation/src/types' +export * from '@hcengineering/presentation/src/types' export { default as Collaboration } from './components/Collaboration.svelte' export { default as CollaborationDiffViewer } from './components/CollaborationDiffViewer.svelte' export { default as CollaborativeAttributeBox } from './components/CollaborativeAttributeBox.svelte' diff --git a/plugins/tracker-resources/src/components/CreateIssue.svelte b/plugins/tracker-resources/src/components/CreateIssue.svelte index 57933573ea..e724a2a38c 100644 --- a/plugins/tracker-resources/src/components/CreateIssue.svelte +++ b/plugins/tracker-resources/src/components/CreateIssue.svelte @@ -144,7 +144,7 @@ let template: IssueTemplate | undefined = undefined const templateQuery = createQuery() - function objectChange(object: IssueDraft, empty: any): void { + function objectChange (object: IssueDraft, empty: any): void { if (shouldSaveDraft) { draftController.save(object, empty) } @@ -165,7 +165,7 @@ parentIssue = undefined } - function getDefaultObjectFromDraft(): IssueDraft | undefined { + function getDefaultObjectFromDraft (): IssueDraft | undefined { if (draft == null) { return } @@ -182,7 +182,7 @@ } } - function getDefaultObject(id: Ref | undefined = undefined, ignoreOriginal = false): IssueDraft { + function getDefaultObject (id: Ref | undefined = undefined, ignoreOriginal = false): IssueDraft { const base: IssueDraft = { _id: id ?? generateId(), title: '', @@ -262,7 +262,7 @@ object.space = _space } - function resetObject(): void { + function resetObject (): void { templateId = undefined template = undefined object = getDefaultObject(undefined, true) @@ -278,7 +278,7 @@ templateQuery.unsubscribe() } - function tagAsRef(tag: TagElement): TagReference { + function tagAsRef (tag: TagElement): TagReference { return { _class: tags.class.TagReference, _id: generateId(), @@ -294,7 +294,7 @@ } } - async function updateTemplate(template: IssueTemplate): Promise { + async function updateTemplate (template: IssueTemplate): Promise { if (object.template?.template === template._id) { return } @@ -323,11 +323,11 @@ labels: p.labels !== undefined ? p.labels - .map((p) => { - const val = tagElements.get(p) - return val !== undefined ? tagAsRef(val) : undefined - }) - .filter((p) => p !== undefined) + .map((p) => { + const val = tagElements.get(p) + return val !== undefined ? tagAsRef(val) : undefined + }) + .filter((p) => p !== undefined) : [], status: currentProject?.defaultIssueStatus } @@ -345,11 +345,11 @@ object.labels = labels !== undefined ? labels - .map((p) => { - const val = tagElements.get(p) - return val !== undefined ? tagAsRef(val) : undefined - }) - .filter((p) => p !== undefined) + .map((p) => { + const val = tagElements.get(p) + return val !== undefined ? tagAsRef(val) : undefined + }) + .filter((p) => p !== undefined) : [] if (object.kind !== undefined) { @@ -381,19 +381,19 @@ const docCreateManager = DocCreateExtensionManager.create(tracker.class.Issue) - function updateIssueStatusId(object: IssueDraft, currentProject: Project | undefined): void { + function updateIssueStatusId (object: IssueDraft, currentProject: Project | undefined): void { if (currentProject?.defaultIssueStatus !== undefined && object.status === undefined) { object.status = currentProject.defaultIssueStatus } } - function resetDefaultAssigneeId(): void { + function resetDefaultAssigneeId (): void { if (!isAssigneeTouched && !(object.assignee == null) && object.assignee === currentProject?.defaultAssignee) { object = { ...object, assignee: assignee ?? null } } } - function updateAssigneeId(object: IssueDraft, currentProject: Project | undefined): void { + function updateAssigneeId (object: IssueDraft, currentProject: Project | undefined): void { if (!isAssigneeTouched && object.assignee == null && currentProject !== undefined) { if (currentProject.defaultAssignee !== undefined) { object.assignee = currentProject.defaultAssignee @@ -402,23 +402,23 @@ } } } - function clearParentIssue(): void { + function clearParentIssue (): void { object.parentIssue = undefined parentQuery.unsubscribe() parentIssue = undefined } - function getTitle(value: string): string { + function getTitle (value: string): string { return value.trim() } let subIssuesComponent: SubIssues - export function canClose(): boolean { + export function canClose (): boolean { return true } - export function onOutsideClick(): void { + export function onOutsideClick (): void { if (shouldSaveDraft) { draftController.save(object, empty) } @@ -430,7 +430,7 @@ preferences = res }) - async function updateCurrentProjectPref(currentProject: Ref): Promise { + async function updateCurrentProjectPref (currentProject: Ref): Promise { if (me?.role === AccountRole.ReadOnlyGuest || me?.role === AccountRole.Guest) return const spacePreferences = await client.findOne(tracker.class.ProjectTargetPreference, { attachedTo: currentProject }) if (spacePreferences === undefined) { @@ -452,7 +452,7 @@ void updateCurrentProjectPref(_space) } - async function createIssue(): Promise { + async function createIssue (): Promise { const _id: Ref = generateId() if ( !canSave || @@ -612,7 +612,7 @@ } } - async function setParentIssue(): Promise { + async function setParentIssue (): Promise { showPopup( SetParentIssueActionPopup, { value: { ...object, space: _space, attachedTo: parentIssue?._id } }, @@ -642,10 +642,10 @@ object.milestone = milestoneId } - function addTagRef(tag: TagElement): void { + function addTagRef (tag: TagElement): void { object.labels = [...object.labels, tagAsRef(tag)] } - function handleTemplateChange(evt: CustomEvent>): void { + function handleTemplateChange (evt: CustomEvent>): void { if (templateId == null) { templateId = evt.detail return @@ -672,7 +672,7 @@ ) } - async function showConfirmationDialog(): Promise { + async function showConfirmationDialog (): Promise { draftController.save(object, empty) const isFormEmpty = draft === undefined @@ -703,14 +703,14 @@ let attachments: Map, Attachment> = new Map, Attachment>() - function isMemberOfProject(project: Project | undefined): boolean { + function isMemberOfProject (project: Project | undefined): boolean { if (project == null) return false const members = project.members if (!Array.isArray(members)) return true return members.includes(me.uuid) } - async function findDefaultSpace(): Promise { + async function findDefaultSpace (): Promise { let targetRef: Ref | undefined if (relatedTo !== undefined) { const targets = await client.findAll(tracker.class.RelatedIssueTarget, {}) diff --git a/plugins/tracker-resources/src/components/SetParentIssueActionPopup.svelte b/plugins/tracker-resources/src/components/SetParentIssueActionPopup.svelte index dc0a083964..be8a0bbb33 100644 --- a/plugins/tracker-resources/src/components/SetParentIssueActionPopup.svelte +++ b/plugins/tracker-resources/src/components/SetParentIssueActionPopup.svelte @@ -36,7 +36,7 @@ sort: { modifiedOn: SortingOrder.Descending } } - async function onClose({ detail: parentIssue }: CustomEvent): Promise { + async function onClose ({ detail: parentIssue }: CustomEvent): Promise { const vv = Array.isArray(value) ? value : [value] for (const docValue of vv) { if ( @@ -70,7 +70,7 @@ $: selected = !Array.isArray(value) ? ('attachedTo' in value ? value.attachedTo : undefined) : undefined $: ignoreObjects = getIgnoreObjects(value) - function getIgnoreObjects(issues: Issue | AttachedData | Issue[] | IssueDraft): Ref[] { + function getIgnoreObjects (issues: Issue | AttachedData | Issue[] | IssueDraft): Ref[] { if (!Array.isArray(issues)) { const own = '_id' in issues ? issues._id : undefined const childs = 'childInfo' in issues ? issues.childInfo.map((c) => c.childId) : [] diff --git a/plugins/tracker-resources/src/components/issues/KanbanView.svelte b/plugins/tracker-resources/src/components/issues/KanbanView.svelte index 83db1781a5..e999b92db5 100644 --- a/plugins/tracker-resources/src/components/issues/KanbanView.svelte +++ b/plugins/tracker-resources/src/components/issues/KanbanView.svelte @@ -119,7 +119,7 @@ $: queryNoLookup = getCategoryQueryNoLookup(resultQuery) - function toIssue(object: any): WithLookup { + function toIssue (object: any): WithLookup { return object as WithLookup } @@ -208,7 +208,7 @@ const queryId = generateId() - function update(): void { + function update (): void { void updateTaskKanbanCategories( client, viewlet, @@ -244,7 +244,7 @@ const fullFilled: Record = {} - function getHeader(_class: Ref>, groupByKey: string): void { + function getHeader (_class: Ref>, groupByKey: string): void { if (groupByKey === noCategory) { headerComponent = undefined } else { @@ -269,7 +269,7 @@ } } - async function shouldShowFooter( + async function shouldShowFooter ( config: (string | BuildModelKey)[], reports: number, estimations: number, diff --git a/plugins/tracker-resources/src/components/issues/edit/ControlPanel.svelte b/plugins/tracker-resources/src/components/issues/edit/ControlPanel.svelte index 7a8d60a61d..8bbfad89d2 100644 --- a/plugins/tracker-resources/src/components/issues/edit/ControlPanel.svelte +++ b/plugins/tracker-resources/src/components/issues/edit/ControlPanel.svelte @@ -76,7 +76,7 @@ let keys: KeyedAttribute[] = [] - function updateKeys(_class: Ref>, ignoreKeys: string[]): void { + function updateKeys (_class: Ref>, ignoreKeys: string[]): void { const filtredKeys = getFiltredKeys(hierarchy, _class, ignoreKeys) keys = filtredKeys.filter((key) => !isCollectionAttr(hierarchy, key)) } @@ -91,7 +91,7 @@ const allowedCollections = ['collaborators'] - function getMixinKeys(mixin: Ref>): KeyedAttribute[] { + function getMixinKeys (mixin: Ref>): KeyedAttribute[] { const mixinClass = hierarchy.getClass(mixin) const filtredKeys = getFiltredKeys( hierarchy, diff --git a/plugins/tracker-resources/src/components/issues/edit/EditIssue.svelte b/plugins/tracker-resources/src/components/issues/edit/EditIssue.svelte index 5d057838ae..ce3d4bfa1d 100644 --- a/plugins/tracker-resources/src/components/issues/edit/EditIssue.svelte +++ b/plugins/tracker-resources/src/components/issues/edit/EditIssue.svelte @@ -103,7 +103,7 @@ $: read(issueId) - function read(_id?: Ref): void { + function read (_id?: Ref): void { if (_id && lastId && lastId !== _id) { const prev = lastId lastId = _id @@ -139,7 +139,7 @@ $: hasParentIssue = issue?.attachedTo !== tracker.ids.NoParent let saved = false - async function save(): Promise { + async function save (): Promise { if (issue === undefined || !canSave) { return } @@ -152,14 +152,14 @@ } } - function showContextMenu(ev: MouseEvent): void { + function showContextMenu (ev: MouseEvent): void { if (issue !== undefined) { showMenu(ev, { object: issue, excludedActions: [view.action.Open] }) } } const manager = createFocusManager() - export function canClose(): boolean { + export function canClose (): boolean { if (descriptionBox.isFocused()) { return false } @@ -172,7 +172,7 @@ $: descriptionKey = hierarchy.getAttribute(tracker.class.Issue, 'description') - function getEditorFooter( + function getEditorFooter ( _class?: Ref> ): { footer: AnyComponent, props?: Record } | undefined { if (_class === undefined) { @@ -194,7 +194,7 @@ $: projectType = taskType?.parent !== undefined ? $typeStore.get(taskType.parent) : undefined - async function unsetParentIssue(): Promise { + async function unsetParentIssue (): Promise { if (issue === undefined || readonly) return await client.update(issue, { attachedTo: tracker.ids.NoParent }) diff --git a/plugins/tracker-resources/src/components/issues/edit/QueryIssuesList.svelte b/plugins/tracker-resources/src/components/issues/edit/QueryIssuesList.svelte index fa3b1a41f0..2104c7b3fd 100644 --- a/plugins/tracker-resources/src/components/issues/edit/QueryIssuesList.svelte +++ b/plugins/tracker-resources/src/components/issues/edit/QueryIssuesList.svelte @@ -48,7 +48,7 @@ let viewOptions: ViewOptions | undefined export let focusIndex = -1 - function openNewIssueDialog(): void { + function openNewIssueDialog (): void { showPopup(tracker.component.CreateIssue, { space: object.space, ...createParams, shouldSaveDraft }, 'top') } @@ -93,7 +93,7 @@ } ) - function updateConfiguration(configurationRaw: Viewlet[], preference: ViewletPreference[]): void { + function updateConfiguration (configurationRaw: Viewlet[], preference: ViewletPreference[]): void { const newConfigurations: Record>, Viewlet['config']> = {} for (const v of configurationRaw) { diff --git a/plugins/tracker-resources/src/components/milestones/EditMilestone.svelte b/plugins/tracker-resources/src/components/milestones/EditMilestone.svelte index 15b0959544..55cd7fb56c 100644 --- a/plugins/tracker-resources/src/components/milestones/EditMilestone.svelte +++ b/plugins/tracker-resources/src/components/milestones/EditMilestone.svelte @@ -53,7 +53,7 @@ } await client.update(object, { startDate }) } - async function changeTargetDate(value: number | null | undefined): Promise { + async function changeTargetDate (value: number | null | undefined): Promise { if (value === null || value === undefined) return // Keep the range non-inverted — clamp the start back if it now sits // after the target. diff --git a/plugins/tracker-resources/src/components/projects/CreateProject.svelte b/plugins/tracker-resources/src/components/projects/CreateProject.svelte index 0122faaef0..3fc689fd3c 100644 --- a/plugins/tracker-resources/src/components/projects/CreateProject.svelte +++ b/plugins/tracker-resources/src/components/projects/CreateProject.svelte @@ -101,21 +101,21 @@ const dispatch = createEventDispatcher() - function normalizeAutoJoinForRoles(roles: AccountRole[]): AccountRole[] | undefined { + function normalizeAutoJoinForRoles (roles: AccountRole[]): AccountRole[] | undefined { return roles.length > 0 ? [...roles] : undefined } - function autoJoinRolesEqual(a: AccountRole[] | undefined, b: AccountRole[] | undefined): boolean { + function autoJoinRolesEqual (a: AccountRole[] | undefined, b: AccountRole[] | undefined): boolean { return deepEqual([...(a ?? [])].sort(), [...(b ?? [])].sort()) } - function setGuestAutoJoin(enabled: boolean): void { + function setGuestAutoJoin (enabled: boolean): void { autoJoinForRoles = setWorkspaceGuestAutoJoinRoles(autoJoinForRoles, enabled) } $: isNew = project == null - async function handleSave(): Promise { + async function handleSave (): Promise { if (isNew) { await createProject() } else { @@ -125,7 +125,7 @@ let identifier: string = project?.identifier ?? 'TSK' - function getProjectData(): Omit, 'type'> { + function getProjectData (): Omit, 'type'> { return { name, description, @@ -146,7 +146,7 @@ } } - function getRolesAssignment(): RolesAssignment { + function getRolesAssignment (): RolesAssignment { if (project === undefined || typeType?.targetClass === undefined || roles === undefined) { return {} } @@ -160,7 +160,7 @@ }, {}) } - async function updateProject(): Promise { + async function updateProject (): Promise { if (!project || typeType?.targetClass === undefined) { return } @@ -250,7 +250,7 @@ $: setDefaultMembers(typeType) - function setDefaultMembers(typeType: ProjectType | undefined): void { + function setDefaultMembers (typeType: ProjectType | undefined): void { if (typeType === undefined) return if (membersChanged) return if (project !== undefined) return @@ -259,7 +259,7 @@ members = typeType.members } - function findTaskTypes(typeId: Ref): TaskType[] { + function findTaskTypes (typeId: Ref): TaskType[] { return Array.from($taskTypeStore.values()).filter( (it) => it.parent === typeId && it.ofClass === tracker.class.Issue ) @@ -270,7 +270,7 @@ defaultStatus = sts?.[0] } - async function createProject(): Promise { + async function createProject (): Promise { const projectId = generateId() const projectData = getProjectData() if (typeId !== undefined && typeType !== undefined) { @@ -302,7 +302,7 @@ } } - function chooseIcon(ev: MouseEvent): void { + function chooseIcon (ev: MouseEvent): void { const update = (result: any) => { if (result !== undefined && result !== null) { icon = result.icon @@ -313,7 +313,7 @@ showPopup(IconPicker, { icon, color }, 'top', update, update) } - function close(id?: Ref): void { + function close (id?: Ref): void { dispatch('close', id) } @@ -323,7 +323,7 @@ projectsIdentifiers = new Set(res.map(({ identifier }) => identifier)) }) - function handleTypeChange(evt: CustomEvent>): void { + function handleTypeChange (evt: CustomEvent>): void { typeId = evt.detail defaultStatus = undefined } @@ -353,14 +353,14 @@ rolesQuery.unsubscribe() } - function handleOwnersChanged(newOwners: AccountUuid[]): void { + function handleOwnersChanged (newOwners: AccountUuid[]): void { owners = newOwners const newMembersSet = new Set([...members, ...newOwners]) members = Array.from(newMembersSet) } - function handleMembersChanged(newMembers: AccountUuid[]): void { + function handleMembersChanged (newMembers: AccountUuid[]): void { membersChanged = true // If a member was removed we need to remove it from any roles assignments as well const newMembersSet = new Set(newMembers) @@ -375,7 +375,7 @@ members = newMembers } - function handleRoleAssignmentChanged(roleId: Ref, newMembers: AccountUuid[]): void { + function handleRoleAssignmentChanged (roleId: Ref, newMembers: AccountUuid[]): void { if (rolesAssignment === undefined) { rolesAssignment = {} } diff --git a/plugins/tracker-resources/src/index.ts b/plugins/tracker-resources/src/index.ts index 8857c551d3..0dc6d9d682 100644 --- a/plugins/tracker-resources/src/index.ts +++ b/plugins/tracker-resources/src/index.ts @@ -280,7 +280,7 @@ async function deleteIssue (issue: Issue | Issue[]): Promise { const deletingFromTargetIssuePage = objs.some((obj) => obj._id === target?._id) try { - await deleteObjects(getClient(), objs) + await deleteObjects(getClient(), objs as unknown as Doc[]) } catch (err: any) { Analytics.handleError(err) } diff --git a/plugins/training-resources/src/components/Settings.svelte b/plugins/training-resources/src/components/Settings.svelte index 602458496a..8c46007132 100644 --- a/plugins/training-resources/src/components/Settings.svelte +++ b/plugins/training-resources/src/components/Settings.svelte @@ -71,7 +71,7 @@ ) } - async function onChange(roleId: Ref, members: AccountUuid[]): Promise { + async function onChange (roleId: Ref, members: AccountUuid[]): Promise { if (space === null || spaceType === null) { return } diff --git a/plugins/view-resources/src/__tests__/objectIterator.test.ts b/plugins/view-resources/src/__tests__/objectIterator.test.ts index 5997aa25c6..5d59223a73 100644 --- a/plugins/view-resources/src/__tests__/objectIterator.test.ts +++ b/plugins/view-resources/src/__tests__/objectIterator.test.ts @@ -99,7 +99,7 @@ describe('ObjectIterator', () => { }) it('should return undefined for empty array', async () => { - mockObjects = [] + mockObjects = [] as any const query: DocumentQuery = { key: 'value' } const _class: Ref> = { id: 'class1' } as any const iterator = new ObjectIterator(_class, storeAdapter, { query }) diff --git a/plugins/view-resources/src/actionImpl.ts b/plugins/view-resources/src/actionImpl.ts index e539130edf..92f492df0b 100644 --- a/plugins/view-resources/src/actionImpl.ts +++ b/plugins/view-resources/src/actionImpl.ts @@ -345,10 +345,10 @@ async function Open ( doc: Doc, evt: Event, props: - | { - component?: AnyComponent - } - | undefined + | { + component?: AnyComponent + } + | undefined ): Promise { evt.preventDefault() const d = Array.isArray(doc) ? doc[0] : doc @@ -364,10 +364,10 @@ async function OpenInNewTab ( doc: Doc, evt: Event, props: - | { - component?: AnyComponent - } - | undefined + | { + component?: AnyComponent + } + | undefined ): Promise { evt.preventDefault() const d = Array.isArray(doc) ? doc[0] : doc diff --git a/plugins/view-resources/src/components/ClassAttributeBar.svelte b/plugins/view-resources/src/components/ClassAttributeBar.svelte index d214117207..63f8a20e58 100644 --- a/plugins/view-resources/src/components/ClassAttributeBar.svelte +++ b/plugins/view-resources/src/components/ClassAttributeBar.svelte @@ -36,7 +36,7 @@ let keys: KeyedAttribute[] = [] - function updateKeys(_class: Ref>, ignoreKeys: string[], to: Ref> | undefined): void { + function updateKeys (_class: Ref>, ignoreKeys: string[], to: Ref> | undefined): void { const filtredKeys = getFiltredKeys(hierarchy, _class, ignoreKeys, to) keys = filtredKeys .filter((key) => !isCollectionAttr(hierarchy, key) || allowedCollections.includes(key.key)) @@ -58,7 +58,7 @@ $: label = showLabel ?? hierarchy.getClass(_class).label - function getCollapsed(_class: Ref>, nonEmpty?: KeyedAttribute): boolean { + function getCollapsed (_class: Ref>, nonEmpty?: KeyedAttribute): boolean { return nonEmpty === undefined } diff --git a/plugins/view-resources/src/components/RelationEditor.svelte b/plugins/view-resources/src/components/RelationEditor.svelte index d9e69290be..7b22f314f8 100644 --- a/plugins/view-resources/src/components/RelationEditor.svelte +++ b/plugins/view-resources/src/components/RelationEditor.svelte @@ -36,7 +36,7 @@ }) } - function getCreate(): ObjectCreate | undefined { + function getCreate (): ObjectCreate | undefined { const factory = client.getHierarchy().classHierarchyMixin(_class, view.mixin.ObjectFactory) if (factory) { const usePopup = isBaseCardTypeWithSubtypes() @@ -49,7 +49,7 @@ } } - function isBaseCardTypeWithSubtypes(): boolean { + function isBaseCardTypeWithSubtypes (): boolean { const hierarchy = client.getHierarchy() if (!hierarchy.isDerived(_class, card.class.Card)) return false @@ -104,7 +104,7 @@ : !p.key.includes('$lookup') && !p.key.startsWith('@') ) - async function onContextMenu(ev: MouseEvent, doc: Doc): Promise { + async function onContextMenu (ev: MouseEvent, doc: Doc): Promise { const q = direction === 'B' ? { docA: object._id, docB: doc._id, association: association._id } diff --git a/plugins/view-resources/src/components/RelationshipTable.svelte b/plugins/view-resources/src/components/RelationshipTable.svelte index c265460505..0078847925 100644 --- a/plugins/view-resources/src/components/RelationshipTable.svelte +++ b/plugins/view-resources/src/components/RelationshipTable.svelte @@ -118,12 +118,12 @@ $: sortingFunction = (config.find((it) => typeof it !== 'string' && it.sortingKey === _sortKey) as BuildModelKey) ?.sortingFunction - function getSort(sortKey: string | string[]) { + function getSort (sortKey: string | string[]) { return Array.isArray(sortKey) ? sortKey.reduce((acc: Record, val) => { - acc[val] = sortOrder - return acc - }, {}) + acc[val] = sortOrder + return acc + }, {}) : { ...(options?.sort ?? {}), [sortKey]: sortOrder } } @@ -213,7 +213,7 @@ gtotal = total } - function changeSorting(key: string | string[]): void { + function changeSorting (key: string | string[]): void { if (key === '') { return } @@ -248,20 +248,20 @@ return { ...attribute.props, space: object.space, ...readonlyParams } } - function getValue(attribute: AttributeModel, object: Doc): any { + function getValue (attribute: AttributeModel, object: Doc): any { return getAttributeValue(attribute, object, client.getHierarchy()) } - function showContextMenu(ev: MouseEvent, object: Doc | undefined): void { + function showContextMenu (ev: MouseEvent, object: Doc | undefined): void { if (object === undefined) return showMenu(ev, { object }) } - function onChange(value: any, doc: Doc, key: string, attribute: AnyAttribute): void { + function onChange (value: any, doc: Doc, key: string, attribute: AnyAttribute): void { updateAttribute(client, doc, _class, { key, attr: attribute }, value) } - function getOnChange(doc: Doc, attribute: AttributeModel) { + function getOnChange (doc: Doc, attribute: AttributeModel) { const attr = attribute.attribute if (attr === undefined) return if (attribute.collectionAttr) return @@ -279,7 +279,7 @@ let model: AttributeModel[] | undefined let modelOptions: BuildModelOptions | undefined - const updateModelOptions = reduceCalls(async function updateModelOptions( + const updateModelOptions = reduceCalls(async function updateModelOptions ( client: TxOperations, _class: Ref>, config: Array, @@ -293,7 +293,7 @@ }) $: void updateModelOptions(client, _class, config, lookup) - async function build(modelOptions: BuildModelOptions): Promise { + async function build (modelOptions: BuildModelOptions): Promise { isBuildingModel = true const res = await buildModel(modelOptions) res.sort((a, b) => { @@ -311,7 +311,7 @@ permissionsStore = await getResource(contact.store.Permissions) }) - function canChangeAttr( + function canChangeAttr ( object: Doc, attr: AnyAttribute | undefined, permissionsStore: PermissionsStore | undefined @@ -337,7 +337,7 @@ rowCount: number } - function getView(objects: Doc[], model: AttributeModel[] | undefined): RowModel[] { + function getView (objects: Doc[], model: AttributeModel[] | undefined): RowModel[] { if (model === undefined) return [] const res: RowModel[] = [] for (const obj of objects) { @@ -348,14 +348,14 @@ $: viewModel = getView(objects, model) - function getOwnAttributes(model: AttributeModel[], associationId?: string): AttributeModel[] { + function getOwnAttributes (model: AttributeModel[], associationId?: string): AttributeModel[] { return model.filter((attr) => { if (associationId) return attr.key.startsWith(associationId) && !attr.key.startsWith(`${associationId}.${assoc}`) return !attr.key.startsWith(assoc) }) } - function createLeafResult(doc: Doc | undefined, attrs: AttributeModel[], parent: Doc | undefined): WalkResult { + function createLeafResult (doc: Doc | undefined, attrs: AttributeModel[], parent: Doc | undefined): WalkResult { return { rowCount: 1, rows: [ @@ -371,7 +371,7 @@ } } - function processBranches( + function processBranches ( doc: Doc | undefined, model: AttributeModel[], associations: string[], @@ -402,7 +402,7 @@ return branchesByRelation } - function distributeExtraRows(totalRows: number, existingRows: number): number[] { + function distributeExtraRows (totalRows: number, existingRows: number): number[] { const diff = totalRows - existingRows const extraPerRow = new Array(existingRows).fill(0) @@ -419,7 +419,7 @@ return extraPerRow } - function mergeRows( + function mergeRows ( doc: Doc | undefined, ownAttrs: AttributeModel[], branchesByRelation: Map, @@ -505,7 +505,7 @@ } } - function isAssociationKey(key: string): boolean { + function isAssociationKey (key: string): boolean { // A valid association key ends with `$associations.{assocId}_{direction}` // Sub-field keys like `$associations.assocId_b.fieldName` should NOT be treated as associations const parts = key.split('.') @@ -522,7 +522,7 @@ return lastAssocIdx + 1 === parts.length - 1 } - function getAssociations(model: AttributeModel[], associationId?: string): string[] { + function getAssociations (model: AttributeModel[], associationId?: string): string[] { return model .filter((p) => { if (!isAssociationKey(p.key)) return false @@ -539,7 +539,7 @@ .map((p) => p.key) } - function walk( + function walk ( doc: WithLookup | undefined, model: AttributeModel[], associationId?: string, @@ -563,7 +563,7 @@ return res } - function clickHandler(e: MouseEvent, cell: CellModel): void { + function clickHandler (e: MouseEvent, cell: CellModel): void { if (cell.parentObject === undefined) return const parts = cell.attribute.key.split('$associations.') let association = parts.pop() diff --git a/plugins/view-resources/src/components/ValueSelector.svelte b/plugins/view-resources/src/components/ValueSelector.svelte index 78c5541ada..1c9045ed4b 100644 --- a/plugins/view-resources/src/components/ValueSelector.svelte +++ b/plugins/view-resources/src/components/ValueSelector.svelte @@ -18,12 +18,12 @@ export let attribute: string export let searchField: string export let values: - | Array<{ - icon?: Asset - label: IntlString - id: string | number - }> - | undefined = undefined + | Array<{ + icon?: Asset + label: IntlString + id: string | number + }> + | undefined = undefined export let fillQuery: Record | undefined export let docMatches: string[] | undefined @@ -80,7 +80,7 @@ let docMatch = true - function updateQuery( + function updateQuery ( query: DocumentQuery | undefined, value: Doc | Doc[], fillQuery: Record | undefined diff --git a/plugins/view-resources/src/components/ViewOptions.svelte b/plugins/view-resources/src/components/ViewOptions.svelte index cc01bb1946..ee94f92d0e 100644 --- a/plugins/view-resources/src/components/ViewOptions.svelte +++ b/plugins/view-resources/src/components/ViewOptions.svelte @@ -57,7 +57,7 @@ } }) - function selectGrouping(value: string, i: number) { + function selectGrouping (value: string, i: number) { groups[i] = value if (value === noCategory) { groups.length = i + 1 @@ -72,7 +72,7 @@ }) } - function getItems(groupBy: DropdownIntlItem[], i: number, current: string[]): DropdownIntlItem[] { + function getItems (groupBy: DropdownIntlItem[], i: number, current: string[]): DropdownIntlItem[] { const notAllowed = current.slice(0, i) return groupBy.filter((p) => !notAllowed.includes(p.id as string)) } diff --git a/plugins/view-resources/src/components/ViewOptionsButton.svelte b/plugins/view-resources/src/components/ViewOptionsButton.svelte index bc06ce0868..81ae676c97 100644 --- a/plugins/view-resources/src/components/ViewOptionsButton.svelte +++ b/plugins/view-resources/src/components/ViewOptionsButton.svelte @@ -43,7 +43,7 @@ let btn: HTMLButtonElement let pressed: boolean = false - function getGroupingCustomAttributes(h: Hierarchy, _class: Ref>): string[] { + function getGroupingCustomAttributes (h: Hierarchy, _class: Ref>): string[] { const customAttributes = [...h.getOwnAttributes(_class).values()] .filter( (attr) => attr.isCustom && !attr.isHidden && [core.class.RefTo, core.class.EnumOf].includes(attr.type._class) @@ -52,7 +52,7 @@ return customAttributes } - function getCustomSortingAttributes(h: Hierarchy, _class: Ref>): OrderOption[] { + function getCustomSortingAttributes (h: Hierarchy, _class: Ref>): OrderOption[] { const sortableTypes: Ref>>[] = [ core.class.EnumOf, core.class.TypeString, @@ -69,7 +69,7 @@ return customSortableAttributes } - async function clickHandler(): Promise { + async function clickHandler (): Promise { if (viewlet === undefined) { return } diff --git a/plugins/view-resources/src/components/ViewletSetting.svelte b/plugins/view-resources/src/components/ViewletSetting.svelte index bf0ca7920d..4ee033794b 100644 --- a/plugins/view-resources/src/components/ViewletSetting.svelte +++ b/plugins/view-resources/src/components/ViewletSetting.svelte @@ -95,7 +95,7 @@ order?: number } - function getObjectConfig(_class: Ref>, param: string): AttributeConfig { + function getObjectConfig (_class: Ref>, param: string): AttributeConfig { const clazz = hierarchy.getClass(_class) return { type: 'attribute', @@ -107,11 +107,11 @@ } } - function getAssociationLabel(client: TxOperations, param: string): IntlString { + function getAssociationLabel (client: TxOperations, param: string): IntlString { return getKeyLabel(client, viewlet.attachTo, param, undefined) } - function getBaseConfig(viewlet: Viewlet): Config[] { + function getBaseConfig (viewlet: Viewlet): Config[] { const config = defaultConfig ?? viewlet.config const lookup = buildConfigLookup(hierarchy, viewlet.attachTo, config, viewlet.options?.lookup) const result: Config[] = [] @@ -177,7 +177,7 @@ return result } - function getValue(name: string, type: Type, attrClass: Ref>): string { + function getValue (name: string, type: Type, attrClass: Ref>): string { const presenter = hierarchy.classHierarchyMixin(attrClass, view.mixin.AttributePresenter)?.presenter if (presenter !== undefined) { return name @@ -188,7 +188,7 @@ return name } - function processAttribute(attribute: AnyAttribute, result: Config[], useMixinProxy = false): void { + function processAttribute (attribute: AnyAttribute, result: Config[], useMixinProxy = false): void { if (attribute.hidden || attribute.label === undefined) return if (viewlet.configOptions?.hiddenKeys?.includes(attribute.name)) return if (hierarchy.isDerived(attribute.type._class, core.class.Collection)) return @@ -244,15 +244,15 @@ } } - function isAttribute(val: Config): val is AttributeConfig { + function isAttribute (val: Config): val is AttributeConfig { return val.type === 'attribute' } - function getKey(value: string | BuildModelKey | undefined): string | undefined { + function getKey (value: string | BuildModelKey | undefined): string | undefined { return typeof value === 'string' ? value : value?.key } - function getAttributeKey(key: string): string { + function getAttributeKey (key: string): string { if (key.startsWith('$lookup.')) { return key.slice('$lookup.'.length) } @@ -260,11 +260,11 @@ return dotIndex === -1 ? key : key.slice(dotIndex + 1) } - function isSourceAttribute(sourceClass: Ref>, key: string): boolean { + function isSourceAttribute (sourceClass: Ref>, key: string): boolean { return hierarchy.getAllAttributes(sourceClass).has(getAttributeKey(key)) } - function syncConfigOrder( + function syncConfigOrder ( sourceClass: Ref>, previousSourceConfig: Array, sourceConfig: Array, @@ -313,7 +313,7 @@ return synced } - function isExist(result: Config[], newValue: Config): boolean { + function isExist (result: Config[], newValue: Config): boolean { if (!isAttribute(newValue)) return false const newValueKey = getKey(newValue.value) if (newValueKey === undefined) return false @@ -332,11 +332,11 @@ return false } - function getParentsString(parents: AssociationQuery[]): string { + function getParentsString (parents: AssociationQuery[]): string { return parents.map(([assocId, direction]) => `$associations.${assocId}_${direction === 1 ? 'a' : 'b'}`).join('.') } - async function processAssociation( + async function processAssociation ( association: Association, direction: 'a' | 'b', result: Config[], @@ -387,7 +387,7 @@ } } - async function addAssociationAttributes( + async function addAssociationAttributes ( result: Config[], targetClass: Ref>, associationKey: string, @@ -429,7 +429,7 @@ } } - async function getConfig(viewlet: Viewlet, preference: ViewletPreference | undefined): Promise { + async function getConfig (viewlet: Viewlet, preference: ViewletPreference | undefined): Promise { const result = getBaseConfig(viewlet) if (viewlet.configOptions?.strict !== true) { @@ -452,7 +452,7 @@ return preference === undefined ? result : setStatus(result, preference) } - async function upsertViewletPreference( + async function upsertViewletPreference ( viewletId: Ref, config: Array ): Promise { @@ -471,7 +471,7 @@ } } - async function syncChildViewletPreferences( + async function syncChildViewletPreferences ( sourceViewlet: Viewlet, previousSourceConfig: Array, sourceConfig: Array @@ -491,7 +491,7 @@ } } - async function addAssociations( + async function addAssociations ( result: Config[], _class: Ref>, preference: ViewletPreference | undefined, @@ -523,7 +523,7 @@ } } - async function save(viewletId: Ref, items: Array): Promise { + async function save (viewletId: Ref, items: Array): Promise { const configValues = items.filter( (p) => p.value !== undefined && @@ -548,14 +548,14 @@ } } - async function restoreDefault(viewletId: Ref): Promise { + async function restoreDefault (viewletId: Ref): Promise { const preference = preferences.find((p) => p.attachedTo === viewletId) if (preference !== undefined) { await client.remove(preference) } } - function setStatus(result: Config[], preference: ViewletPreference): Config[] { + function setStatus (result: Config[], preference: ViewletPreference): Config[] { for (const key of result) { if (!isAttribute(key)) continue const index = preference.config.findIndex((p) => deepEqual(p, key.value)) diff --git a/plugins/view-resources/src/components/ViewletSettingButton.svelte b/plugins/view-resources/src/components/ViewletSettingButton.svelte index 48c9e87cfe..10c9ff5c89 100644 --- a/plugins/view-resources/src/components/ViewletSettingButton.svelte +++ b/plugins/view-resources/src/components/ViewletSettingButton.svelte @@ -73,7 +73,7 @@ }) } - function getDefaults(viewOptions: ViewOptionsModel): ViewOptions { + function getDefaults (viewOptions: ViewOptionsModel): ViewOptions { const res: ViewOptions = { groupBy: [viewOptions.groupBy[0] ?? defaultOptions.groupBy[0]], orderBy: viewOptions.orderBy?.[0] ?? defaultOptions.orderBy @@ -84,7 +84,7 @@ return res } - function getDefaultOptions(): ViewOptions { + function getDefaultOptions (): ViewOptions { if (defaultViewOptions != null) return defaultViewOptions return viewlet?.viewOptions != null ? getDefaults(viewlet.viewOptions) : defaultOptions diff --git a/plugins/view-resources/src/components/filter/FilterBar.svelte b/plugins/view-resources/src/components/filter/FilterBar.svelte index 4f94788b8c..85fba9e11f 100644 --- a/plugins/view-resources/src/components/filter/FilterBar.svelte +++ b/plugins/view-resources/src/components/filter/FilterBar.svelte @@ -109,7 +109,7 @@ visible = hierarchy.classHierarchyMixin(_class, view.mixin.ClassFilters) !== undefined } - function selectedFilterChanged( + function selectedFilterChanged ( selectedFilter: FilteredView | undefined, filters: Filter[], activeViewlet: Record | null>, diff --git a/plugins/view-resources/src/components/filter/FilterButton.svelte b/plugins/view-resources/src/components/filter/FilterButton.svelte index 905db2f5ff..7b4f418be6 100644 --- a/plugins/view-resources/src/components/filter/FilterButton.svelte +++ b/plugins/view-resources/src/components/filter/FilterButton.svelte @@ -36,7 +36,7 @@ } }) - function load(_class: Ref> | undefined): void { + function load (_class: Ref> | undefined): void { const key = getFilterKey(_class) const items = localStorage.getItem(key) if (items !== null) { @@ -44,7 +44,7 @@ } } - function save(_class: Ref> | undefined, p: Filter[]): void { + function save (_class: Ref> | undefined, p: Filter[]): void { const key = getFilterKey(_class) localStorage.setItem(key, JSON.stringify(p)) } @@ -66,7 +66,7 @@ _class = undefined }) - function add(e: MouseEvent): void { + function add (e: MouseEvent): void { const target = eventToHTMLElement(e) showPopup( FilterTypePopup, diff --git a/plugins/view-resources/src/components/list/List.svelte b/plugins/view-resources/src/components/list/List.svelte index 0937e88979..859779d70f 100644 --- a/plugins/view-resources/src/components/list/List.svelte +++ b/plugins/view-resources/src/components/list/List.svelte @@ -178,7 +178,7 @@ $: docs = [...fastDocs, ...slowDocs.filter((it) => !fastQueryIds.has(it._id))] - function getProjection(fields: string[], query: DocumentQuery, _class: Ref>): Record { + function getProjection (fields: string[], query: DocumentQuery, _class: Ref>): Record { const res: Record = {} for (const f of fields) { /* @@ -203,7 +203,7 @@ return res } - function noLookup(query: DocumentQuery): DocumentQuery { + function noLookup (query: DocumentQuery): DocumentQuery { const newQuery: DocumentQuery = {} for (const [k, v] of Object.entries(query)) { if (!k.startsWith('$lookup.')) { @@ -213,7 +213,7 @@ return newQuery } - function noLookupSortingOptions(options: FindOptions): FindOptions { + function noLookupSortingOptions (options: FindOptions): FindOptions { const { lookup, sort, ...resultOptions } = options return resultOptions } @@ -222,12 +222,12 @@ $: dispatch('content', docs) - function uncheckAll(): void { + function uncheckAll (): void { dispatch('check', { docs, value: false }) selectedObjectIds = [] } - export function select(offset: 2 | -2 | 1 | -1 | 0, of?: Doc, noScroll?: boolean): void { + export function select (offset: 2 | -2 | 1 | -1 | 0, of?: Doc, noScroll?: boolean): void { if (of !== undefined || offset !== 0) { listCategories?.select(offset, of, undefined, noScroll) } diff --git a/plugins/view-resources/src/components/masterDetail/MasterDetailBrowser.svelte b/plugins/view-resources/src/components/masterDetail/MasterDetailBrowser.svelte index 96f1eaec0f..8644c303e1 100644 --- a/plugins/view-resources/src/components/masterDetail/MasterDetailBrowser.svelte +++ b/plugins/view-resources/src/components/masterDetail/MasterDetailBrowser.svelte @@ -71,7 +71,7 @@ ) } - function onSelected(e: CustomEvent): void { + function onSelected (e: CustomEvent): void { dispatch('select', e.detail) if (syncWithLocationQuery) return parentQuery = { [parentKey]: e.detail } diff --git a/plugins/view-resources/src/components/masterDetail/MasterDetailView.svelte b/plugins/view-resources/src/components/masterDetail/MasterDetailView.svelte index d1cc016e7c..3ff938ae86 100644 --- a/plugins/view-resources/src/components/masterDetail/MasterDetailView.svelte +++ b/plugins/view-resources/src/components/masterDetail/MasterDetailView.svelte @@ -47,7 +47,7 @@ detailView = results.find((v) => v._id === views[1].view) } - async function selected(e: CustomEvent): Promise { + async function selected (e: CustomEvent): Promise { const views: MasterDetailConfig[] = viewlet?.masterDetailOptions?.views ?? [] if (detailView === undefined) return if (detailView?._id === view.viewlet.Document) { diff --git a/plugins/view-resources/src/components/relation/AddRelationPopup.svelte b/plugins/view-resources/src/components/relation/AddRelationPopup.svelte index 524278f1f7..6bbf559b50 100644 --- a/plugins/view-resources/src/components/relation/AddRelationPopup.svelte +++ b/plugins/view-resources/src/components/relation/AddRelationPopup.svelte @@ -25,7 +25,7 @@ const h = client.getHierarchy() const dispatch = createEventDispatcher() - function getCommonClass(value: Doc | Doc[]): Ref> | undefined { + function getCommonClass (value: Doc | Doc[]): Ref> | undefined { if (Array.isArray(value)) { if (value.length === 0) { return undefined @@ -49,7 +49,7 @@ $: items = getItems(value) - function getItems(value: Doc | Doc[]): Item[] { + function getItems (value: Doc | Doc[]): Item[] { const _class = getCommonClass(value) if (_class === undefined) return [] const descendants = h.getDescendants(_class) @@ -79,7 +79,7 @@ let selected: Item | undefined = undefined - async function save(): Promise { + async function save (): Promise { if (selected === undefined || target === undefined) return const objects = Array.isArray(value) ? value : [value] for (const obj of objects) { diff --git a/plugins/view-resources/src/utils.ts b/plugins/view-resources/src/utils.ts index afc787fafd..29e1f6c160 100644 --- a/plugins/view-resources/src/utils.ts +++ b/plugins/view-resources/src/utils.ts @@ -169,7 +169,7 @@ export class AggregationManager implements IAggregationManager (res) => { const first = this.docs === undefined this.docs = res - this.mgr = new DocManager(res) + this.mgr = new DocManager(res as T[]) this.setStore(this.mgr) if (!first) { this.lqCallback() @@ -789,7 +789,7 @@ export async function deleteObjects (client: TxOperations, objects: Doc[], skipC } export function getMixinStyle (id: Ref>, selected: boolean, black: boolean): string { - const color = getPlatformColorForText(id, black) + const color = getPlatformColorForText(id as string, black) return ` color: ${selected ? '#fff' : 'var(--caption-color)'}; background: ${color + (selected ? 'ff' : '33')}; @@ -912,9 +912,9 @@ export function categorizeFields ( useAsCollection: string[], useAsAttribute: string[] ): { - attributes: CategoryKey[] - collections: CategoryKey[] -} { + attributes: CategoryKey[] + collections: CategoryKey[] + } { const result = { attributes: [] as CategoryKey[], collections: [] as CategoryKey[] @@ -1143,9 +1143,9 @@ export function getCategorySpaces (categories: CategoryType[]): Array categories .filter((it) => typeof it === 'object') .reduce>>((arr, val) => { - val.values.forEach((it) => arr.add(it.space)) - return arr - }, new Set()) + val.values.forEach((it) => arr.add(it.space)) + return arr + }, new Set()) ) } @@ -1781,10 +1781,10 @@ export async function getDocAttrsInfo ( allowedCollections: string[] = [], collectionArrays: string[] = [] ): Promise<{ - keys: KeyedAttribute[] - inplaceAttributes: string[] - editors: Array<{ key: KeyedAttribute, editor: AnyComponent, category: AttributeCategory }> -}> { + keys: KeyedAttribute[] + inplaceAttributes: string[] + editors: Array<{ key: KeyedAttribute, editor: AnyComponent, category: AttributeCategory }> + }> { const client = getClient() const hierarchy = client.getHierarchy() diff --git a/plugins/view-resources/src/viewletUtils.ts b/plugins/view-resources/src/viewletUtils.ts index 771c14f9ab..315000e490 100644 --- a/plugins/view-resources/src/viewletUtils.ts +++ b/plugins/view-resources/src/viewletUtils.ts @@ -31,7 +31,7 @@ export function getViewletSpecialActions (client: Client, viewlet: Viewlet): Res if (actions == null || actions.length === 0) { actions = model.findAllSync(view.class.ViewletViewAction, { descriptor: viewlet.descriptor - }) + }) as ViewletViewAction[] } if (actions == null || actions.length === 0) { diff --git a/plugins/view/src/types.ts b/plugins/view/src/types.ts index 54e7c90ed5..a9e2649de0 100644 --- a/plugins/view/src/types.ts +++ b/plugins/view/src/types.ts @@ -350,12 +350,12 @@ export interface ListHeaderExtra extends Class { * @public */ export type SortFunc = Resource< - ( - client: TxOperations, - values: PrimitiveType[], - space: Ref | undefined, - viewletDescriptorId?: Ref - ) => Promise +( + client: TxOperations, + values: PrimitiveType[], + space: Ref | undefined, + viewletDescriptorId?: Ref +) => Promise > /** @@ -369,12 +369,12 @@ export interface ClassSortFuncs extends Class { * @public */ export type GetAllValuesFunc = Resource< - ( - query: DocumentQuery | undefined, - onUpdate: () => void, - queryId: Ref, - attr: AnyAttribute - ) => Promise +( + query: DocumentQuery | undefined, + onUpdate: () => void, + queryId: Ref, + attr: AnyAttribute +) => Promise > /** @@ -431,13 +431,13 @@ export type AggregationManagerResource = Resource> * @public */ export type CreateAggregationManagerFunc = Resource< - ( - client: Client, - lqCallback: () => void, - setStore: (manager: DocManager) => void, - categorizingFunc: (doc: any, target: any) => boolean, - _class: Ref> - ) => IAggregationManager +( + client: Client, + lqCallback: () => void, + setStore: (manager: DocManager) => void, + categorizingFunc: (doc: any, target: any) => boolean, + _class: Ref> +) => IAggregationManager > /** @@ -771,7 +771,7 @@ export interface ViewOption { * @public */ export type ViewOptionsAction = Resource< - (value: any, query: FindOptions | undefined) => FindOptions +(value: any, query: FindOptions | undefined) => FindOptions > /** @@ -811,7 +811,7 @@ export interface CategoryOption extends ViewOption { * @public */ export type ViewQueryAction = Resource< - (value: any, query: DocumentQuery) => DocumentQuery | Promise> +(value: any, query: DocumentQuery) => DocumentQuery | Promise> > /** diff --git a/plugins/workbench-resources/src/components/SelectWorkspaceMenu.svelte b/plugins/workbench-resources/src/components/SelectWorkspaceMenu.svelte index 5eb723ed8f..360e22e099 100644 --- a/plugins/workbench-resources/src/components/SelectWorkspaceMenu.svelte +++ b/plugins/workbench-resources/src/components/SelectWorkspaceMenu.svelte @@ -69,7 +69,7 @@ return locationToUrl(loc) } - async function clickHandler(e: MouseEvent, wsUrl: string): Promise { + async function clickHandler (e: MouseEvent, wsUrl: string): Promise { if (!e.metaKey && !e.ctrlKey) { e.preventDefault() closePopup() @@ -94,7 +94,7 @@ let activeElement: HTMLElement const btns: HTMLElement[] = [] - function focusTarget(target: HTMLElement): void { + function focusTarget (target: HTMLElement): void { activeElement = target } @@ -147,11 +147,11 @@ $: activeSessions = (data?.statistics?.activeSessions as Record< - string, - Array<{ - userId: string - data?: Record - }> + string, + Array<{ + userId: string + data?: Record + }> >) ?? {} diff --git a/plugins/workbench-resources/src/components/Workbench.svelte b/plugins/workbench-resources/src/components/Workbench.svelte index 5767413110..2375768991 100644 --- a/plugins/workbench-resources/src/components/Workbench.svelte +++ b/plugins/workbench-resources/src/components/Workbench.svelte @@ -188,7 +188,7 @@ let hiddenAside: boolean = true $deviceInfo.navigator.visible = !hiddenNavigator - async function toggleNav(): Promise { + async function toggleNav (): Promise { $deviceInfo.navigator.visible = !$deviceInfo.navigator.visible if (!$deviceInfo.navigator.float) { hiddenNavigator = !$deviceInfo.navigator.visible @@ -226,7 +226,7 @@ } ) - async function initCurrentTab(tabs: WorkbenchTab[]): Promise { + async function initCurrentTab (tabs: WorkbenchTab[]): Promise { const tab = tabs.find((t) => t._id === $tabIdStore) const loc = getCurrentLocation() const tabLoc = tab ? getTabLocation(tab) : undefined @@ -366,7 +366,7 @@ let windowWorkspaceName = '' - async function updateWindowTitle(loc: Location): Promise { + async function updateWindowTitle (loc: Location): Promise { let wsUrl = loc.path[1] const ws = $workspacesStore.find((it) => it.url === wsUrl) if (ws !== undefined) { @@ -383,7 +383,7 @@ void broadcastEvent(workbench.event.NotifyTitle, document.title) } - async function getWindowTitle(loc: Location): Promise { + async function getWindowTitle (loc: Location): Promise { if (loc.fragment == null) return const hierarchy = client.getHierarchy() const [, id, _class] = decodeURIComponent(loc.fragment).split('|') @@ -400,7 +400,7 @@ } } - async function resolveShortLink(loc: Location): Promise { + async function resolveShortLink (loc: Location): Promise { let locationResolver = currentApplication?.locationResolver if (loc.path[2] != null && loc.path[2].trim().length > 0) { const app = apps.find((p) => p.alias === loc.path[2]) @@ -414,7 +414,7 @@ } } - function mergeLoc(loc: Location, resolved: ResolvedLocation): Location { + function mergeLoc (loc: Location, resolved: ResolvedLocation): Location { const resolvedApp = resolved.loc.path[2] const resolvedSpace = resolved.loc.path[3] const resolvedSpecial = resolved.loc.path[4] @@ -469,7 +469,7 @@ return loc } - async function syncLoc(loc: Location): Promise { + async function syncLoc (loc: Location): Promise { accessDeniedStore.set(false) const originalLoc = JSON.stringify(loc) if ($tabIdStore !== $prevTabIdStore) { @@ -594,7 +594,7 @@ } } - async function setOpenPanelFocus(fragment: string): Promise { + async function setOpenPanelFocus (fragment: string): Promise { const props = decodeURIComponent(fragment).split('|') if (props.length >= 3) { @@ -637,7 +637,7 @@ }) } - function clear(level: number): void { + function clear (level: number): void { switch (level) { case 1: currentAppAlias = undefined @@ -659,7 +659,7 @@ } } - async function updateSpace(spaceId?: Ref): Promise { + async function updateSpace (spaceId?: Ref): Promise { if (spaceId === currentSpace) return clear(2) currentSpace = spaceId @@ -673,7 +673,7 @@ createItemLabel = currentView?.createItemLabel } - function setSpaceSpecial(spaceSpecial: string | undefined): void { + function setSpaceSpecial (spaceSpecial: string | undefined): void { if (currentSpecial !== undefined && spaceSpecial === currentSpecial) return clear(3) if (spaceSpecial === undefined) return @@ -683,7 +683,7 @@ } } - function getSpecialComponent(id: string): SpecialNavModel | undefined { + function getSpecialComponent (id: string): SpecialNavModel | undefined { const sp = navigatorModel?.specials?.find((x) => x.id === id) if (sp !== undefined) { if (sp.accessLevel !== undefined && !hasAccountRole(account, sp.accessLevel)) { @@ -779,7 +779,7 @@ subscribeMobile(setTheme) }) - function checkInbox(popups: CompAndProps[]) { + function checkInbox (popups: CompAndProps[]) { if (inboxPopup !== undefined) { const exists = popups.find((p) => p.id === inboxPopup?.id) if (!exists) { @@ -789,7 +789,7 @@ } let supportStatus: SupportStatus | undefined = undefined - function handleSupportStatusChanged(status: SupportStatus) { + function handleSupportStatusChanged (status: SupportStatus) { supportStatus = status } @@ -806,7 +806,7 @@ }) let supportWidgetLoading = false - async function handleToggleSupportWidget(): Promise { + async function handleToggleSupportWidget (): Promise { const timer = setTimeout(() => { supportWidgetLoading = true }, 100) @@ -860,7 +860,7 @@ ? !client.getHierarchy().as($myEmployeeStore, contact.mixin.Employee).active : false - function isExcludedApp(alias: string): boolean { + function isExcludedApp (alias: string): boolean { const me = getCurrentAccount() if (me.role === AccountRole.ReadOnlyGuest || me.role === AccountRole.Guest) { diff --git a/plugins/workbench/src/types.ts b/plugins/workbench/src/types.ts index 5f02b02eda..f15bf52081 100644 --- a/plugins/workbench/src/types.ts +++ b/plugins/workbench/src/types.ts @@ -177,7 +177,7 @@ export interface SpecialNavModel { spaceClass?: Ref> checkIsDisabled?: Resource<() => Promise> notificationsCountProvider?: Resource< - (inboxNotificationsByContext: Map, InboxNotification[]>) => number + (inboxNotificationsByContext: Map, InboxNotification[]>) => number > navigationModel?: ParentsNavigationModel queryBuilder?: Resource<() => Promise>> diff --git a/pods/authProviders/src/utils.ts b/pods/authProviders/src/utils.ts index 896da631c1..32f86c812c 100644 --- a/pods/authProviders/src/utils.ts +++ b/pods/authProviders/src/utils.ts @@ -87,7 +87,7 @@ export async function handleProviderAuth ( email, first, last, - state.inviteId, + state.inviteId as any, socialKey, signUpDisabled ) diff --git a/pods/preview/src/server.ts b/pods/preview/src/server.ts index 8278ae6786..32fa7d67f0 100644 --- a/pods/preview/src/server.ts +++ b/pods/preview/src/server.ts @@ -165,10 +165,10 @@ export async function createServer (ctx: MeasureContext, config: Config): Promis const wrapRequest = (ctx: MeasureContext, name: string, fn: AsyncRequestHandler) => - (req: RequestWithAuth, res: Response, next: NextFunction) => { + (req: RequestWithAuth, res: Response, next: NextFunction) => { // eslint-disable-next-line @typescript-eslint/no-floating-promises - handleRequest(ctx, name, fn, req, res, next) - } + handleRequest(ctx, name, fn, req, res, next) + } app.use(morgan('short', { stream: new LogStream() })) diff --git a/pods/server/src/server_http.ts b/pods/server/src/server_http.ts index 33c5ded0fb..8c0b66bd47 100644 --- a/pods/server/src/server_http.ts +++ b/pods/server/src/server_http.ts @@ -445,7 +445,7 @@ export function startHttpServer ( if (Array.isArray(data)) { sessions.broadcastAll(ctx, ws, data as Tx[]) } else { - sessions.broadcastAll(ctx, ws, [data]) + sessions.broadcastAll(ctx, ws, [data as unknown as Tx]) } res.end() }) @@ -535,7 +535,7 @@ export function startHttpServer ( if (msg instanceof Buffer) { buff = msg } else if (Array.isArray(msg)) { - buff = Buffer.concat(msg) + buff = Buffer.concat(msg as any) } if (buff !== undefined) { doSessionOp( diff --git a/server-plugins/activity-resources/src/index.ts b/server-plugins/activity-resources/src/index.ts index 34adc03eed..f73c7372e4 100644 --- a/server-plugins/activity-resources/src/index.ts +++ b/server-plugins/activity-resources/src/index.ts @@ -342,7 +342,7 @@ export async function generateDocUpdateMessages ( await control.findAll(ctx, core.class.TxCreateDoc, { objectId: tx.attachedTo }, { limit: 1 }) )[0] - doc = createTx !== undefined ? TxProcessor.createDoc2Doc(createTx) : undefined + doc = createTx !== undefined ? TxProcessor.createDoc2Doc(createTx as TxCreateDoc) : undefined } if (doc !== undefined) { objectCache?.docs?.set(tx.attachedTo, doc) @@ -417,8 +417,8 @@ async function ActivityMessagesHandler (_txes: TxCUD[], control: TriggerCon tx.space === core.space.DerivedTx ? [] : await control.ctx.with('generateDocUpdateMessages', {}, (ctx) => - generateDocUpdateMessages(ctx, tx, control, [], cache) - ) + generateDocUpdateMessages(ctx, tx, control, [], cache) + ) const messages = txes.map((messageTx) => TxProcessor.createDoc2Doc(messageTx as TxCreateDoc)) diff --git a/server-plugins/activity-resources/src/references.ts b/server-plugins/activity-resources/src/references.ts index df6bcd6f05..8d4251487a 100644 --- a/server-plugins/activity-resources/src/references.ts +++ b/server-plugins/activity-resources/src/references.ts @@ -33,6 +33,7 @@ import core, { type TxCUD, TxFactory, TxProcessor, + type TxRemoveDoc, type TxUpdateDoc, type Type, getClassCollaborators @@ -287,7 +288,7 @@ async function getCreateReferencesTxes ( if (blobId != null && blobId !== '') { try { const buffer = await storage.read(ctx, control.workspace, blobId) - const markup = Buffer.concat(buffer).toString() + const markup = Buffer.concat(buffer as any).toString() const attrReferences = getReferencesData(srcDocId, srcDocClass, attachedDocId, attachedDocClass, markup) refs.push(...attrReferences) } catch { @@ -334,7 +335,7 @@ async function getUpdateReferencesTxes ( const blobId = (updatedDoc as any)[attr.name] as Ref if (blobId != null) { const buffer = await storage.read(ctx, control.workspace, blobId) - const markup = Buffer.concat(buffer).toString() + const markup = Buffer.concat(buffer as any).toString() const attrReferences = getReferencesData(srcDocId, srcDocClass, attachedDocId, attachedDocClass, markup) references.push(...attrReferences) } @@ -564,9 +565,9 @@ function guessReferenceObj ( hierarchy: Hierarchy, tx: TxCUD ): { - objectId: Ref - objectClass: Ref> -} { + objectId: Ref + objectClass: Ref> + } { // Try to guess reference target Tx for TxCollectionCUD txes based on collaborators availability if (tx.attachedToClass !== undefined && tx.attachedTo !== undefined) { if (hierarchy.isDerived(tx.objectClass, activity.class.ActivityMessage)) { @@ -673,7 +674,7 @@ async function ActivityReferenceUpdate (tx: TxCUD, control: TriggerControl) } async function ActivityReferenceRemove (tx: TxCUD, control: TriggerControl): Promise { - const ctx = tx + const ctx = tx as TxRemoveDoc const attributes = control.hierarchy.getAllAttributes(ctx.objectClass) let hasMarkdown = false diff --git a/server-plugins/activity/src/index.ts b/server-plugins/activity/src/index.ts index 4595ec6d18..f28fffb55b 100644 --- a/server-plugins/activity/src/index.ts +++ b/server-plugins/activity/src/index.ts @@ -17,7 +17,7 @@ import { Plugin, Resource, plugin } from '@hcengineering/platform' import type { TriggerFunc } from '@hcengineering/server-core' import { Presenter } from '@hcengineering/server-notification' -export type * from './types' +export * from './types' export * from './utils' /** diff --git a/server-plugins/calendar-resources/src/index.ts b/server-plugins/calendar-resources/src/index.ts index 1fc94b0901..512a420391 100644 --- a/server-plugins/calendar-resources/src/index.ts +++ b/server-plugins/calendar-resources/src/index.ts @@ -57,16 +57,16 @@ interface ScheduledNotificationMessage { type TimeMachineMessage = | { - type: 'schedule' - id: string - targetDate: number - topic: string - data: ScheduledNotificationMessage - } + type: 'schedule' + id: string + targetDate: number + topic: string + data: ScheduledNotificationMessage + } | { - type: 'cancel' - id: string - } + type: 'cancel' + id: string + } type TimeMachineScheduleMessage = Extract @@ -294,7 +294,7 @@ async function OnEvent (txes: Tx[], control: TriggerControl): Promise { } else if (ctx._class === core.class.TxUpdateDoc) { result.push(...(await onEventUpdate(ctx as TxUpdateDoc, control))) } else if (ctx._class === core.class.TxRemoveDoc) { - result.push(...(await onRemoveEvent(ctx, control))) + result.push(...(await onRemoveEvent(ctx as TxRemoveDoc, control))) } else if (ctx._class === core.class.TxMixin) { result.push(...(await onEventMixin(ctx as TxMixin, control))) } @@ -499,7 +499,7 @@ async function onEventCreate (ctx: TxCreateDoc, control: TriggerControl): const events = await control.findAll(control.ctx, calendar.class.Event, { eventId: event.eventId }) const access = AccessLevel.Reader for (const part of event.participants) { - const socialIds = await getSocialIds(control, part) + const socialIds = await getSocialIds(control, part as Ref) if (socialIds.length === 0) continue const socialStrings = socialIds.map((si) => si._id) if (socialStrings.includes(event.user ?? event.createdBy ?? event.modifiedBy)) continue diff --git a/server-plugins/gmail-resources/src/index.ts b/server-plugins/gmail-resources/src/index.ts index 0362fd7a16..d8fbbf0c4c 100644 --- a/server-plugins/gmail-resources/src/index.ts +++ b/server-plugins/gmail-resources/src/index.ts @@ -261,7 +261,7 @@ async function processEmailNotifications (control: TriggerControl, notifications // Fallback to regular findAll if lowLevel fails control.ctx.warn('processEmailNotifications: Raw find all failed', { employeeId: employee._id, err }) const emailsResult = await control.findAll(control.ctx, contact.class.SocialIdentity, emailQuery) - emails = emailsResult + emails = emailsResult as SocialIdentity[] } if (emails.length === 0) { diff --git a/server-plugins/hr-resources/src/index.ts b/server-plugins/hr-resources/src/index.ts index daaf9a5e86..ca96cd8497 100644 --- a/server-plugins/hr-resources/src/index.ts +++ b/server-plugins/hr-resources/src/index.ts @@ -359,7 +359,7 @@ async function sendEmailNotifications ( const notificationControl = await getNotificationProviderControl(control.ctx, control) for (const contact of contacts.values()) { - const socialStrings = await getSocialStrings(control, contact) + const socialStrings = await getSocialStrings(control, contact as Ref) const allowed = isAllowed(control, socialStrings, type, provider, notificationControl) if (!allowed) { contacts.delete(contact) diff --git a/server-plugins/notification-resources/src/__tests__/push.test.ts b/server-plugins/notification-resources/src/__tests__/push.test.ts index febef70e72..9c42fdb968 100644 --- a/server-plugins/notification-resources/src/__tests__/push.test.ts +++ b/server-plugins/notification-resources/src/__tests__/push.test.ts @@ -44,7 +44,7 @@ describe('OnInboxNotificationCreate', () => { notification.class.CommonInboxNotification, 'space-1' as Ref, { user, isViewed, docNotifyContext: 'ctx', objectId: 'obj', objectClass: core.class.Doc } as any - ) + ) as TxCreateDoc beforeEach(() => { send = jest.fn().mockResolvedValue(undefined) diff --git a/server-plugins/notification-resources/src/index.ts b/server-plugins/notification-resources/src/index.ts index 50a8cde039..0ac5aa1491 100644 --- a/server-plugins/notification-resources/src/index.ts +++ b/server-plugins/notification-resources/src/index.ts @@ -501,7 +501,7 @@ export async function getTranslatedNotificationContent ( } else if (control.hierarchy.isDerived(_class, notification.class.MentionInboxNotification)) { return await mentionInboxNotificationToText(data as Data, control) } else if (control.hierarchy.isDerived(_class, notification.class.CommonInboxNotification)) { - return await commonInboxNotificationToText(data) + return await commonInboxNotificationToText(data as Data) } return { title: '', body: '' } @@ -786,8 +786,8 @@ export async function createCollabDocInfo ( const filteredCollaborators = !space.private ? collaborators : collaborators.filter( - (it) => - space.members.includes(it) || + (it) => + space.members.includes(it) || currentRes.some((tx) => { if (tx._class === core.class.TxUpdateDoc) { const updateTx = tx as TxUpdateDoc @@ -798,7 +798,7 @@ export async function createCollabDocInfo ( } return false }) - ) + ) const targets = new Set(filteredCollaborators) // user is not collaborator of himself, but we should notify user of changes related to users account (mentions, comments etc) @@ -867,10 +867,10 @@ async function getTxCollabs ( cache: Map, Collaborator[]>, doc: Doc ): Promise<{ - added: AccountUuid[] - removed: AccountUuid[] - result: AccountUuid[] -}> { + added: AccountUuid[] + removed: AccountUuid[] + result: AccountUuid[] + }> { const { hierarchy } = control const mixin = getClassCollaborators(control.modelDb, hierarchy, doc._class) if (mixin === undefined) return { added: [], removed: [], result: [] } diff --git a/server-plugins/notification/src/index.ts b/server-plugins/notification/src/index.ts index 9f8254bbe7..b1cf23a14f 100644 --- a/server-plugins/notification/src/index.ts +++ b/server-plugins/notification/src/index.ts @@ -49,15 +49,15 @@ export interface TextPresenter extends Class { * @public */ export type TypeMatchFunc = Resource< - ( - tx: Tx, - doc: Doc, - person: Ref, - socialIds: PersonId[], - type: NotificationType, - control: TriggerControl, - account: AccountUuid - ) => boolean | Promise +( + tx: Tx, + doc: Doc, + person: Ref, + socialIds: PersonId[], + type: NotificationType, + control: TriggerControl, + account: AccountUuid +) => boolean | Promise > /** diff --git a/server-plugins/process-resources/src/index.ts b/server-plugins/process-resources/src/index.ts index 407e226e1a..4791dec4d0 100644 --- a/server-plugins/process-resources/src/index.ts +++ b/server-plugins/process-resources/src/index.ts @@ -327,7 +327,7 @@ export async function OnExecutionDone (txes: Tx[], control: TriggerControl): Pro const todosWithWorkslots = new Set(workslots.map((workslot) => workslot.attachedTo as string)) for (const todo of todos) { - if (todosWithWorkslots.has(todo._id)) continue + if (todosWithWorkslots.has(todo._id as string)) continue res.push(control.txFactory.createTxRemoveDoc(todo._class, todo.space, todo._id)) } } diff --git a/server-plugins/process/src/index.ts b/server-plugins/process/src/index.ts index 57f929a936..d5b4f8c25b 100644 --- a/server-plugins/process/src/index.ts +++ b/server-plugins/process/src/index.ts @@ -5,7 +5,7 @@ import { Execution, Method, ProcessFunction, Trigger } from '@hcengineering/proc import { TriggerFunc } from '@hcengineering/server-core' import { ExecuteFunc, ProcessControl, RollbackFunc, TransformFunc } from './types' -export type * from './types' +export * from './types' /** * @public diff --git a/server-plugins/time/src/index.ts b/server-plugins/time/src/index.ts index fa18717191..bd90da1424 100644 --- a/server-plugins/time/src/index.ts +++ b/server-plugins/time/src/index.ts @@ -50,7 +50,7 @@ export default plugin(serverTimeId, { function: { IssueToDoFactory: '' as Resource<(tx: Tx, control: TriggerControl) => Promise>, IssueToDoDone: '' as Resource< - (control: TriggerControl, workslots: WorkSlot[], todo: ToDo, isDerived: boolean) => Promise + (control: TriggerControl, workslots: WorkSlot[], todo: ToDo, isDerived: boolean) => Promise > }, trigger: { diff --git a/server-plugins/tracker-resources/src/index.ts b/server-plugins/tracker-resources/src/index.ts index cbd8d3c9a0..ab3e82cf52 100644 --- a/server-plugins/tracker-resources/src/index.ts +++ b/server-plugins/tracker-resources/src/index.ts @@ -396,7 +396,7 @@ async function doIssueUpdate (updateTx: TxUpdateDoc, control: TriggerCont const [newParent] = await control.findAll( control.ctx, tracker.class.Issue, - { _id: updateTx.operations.attachedTo }, + { _id: updateTx.operations.attachedTo as Ref }, { limit: 1 } ) diff --git a/server/account-service/src/index.ts b/server/account-service/src/index.ts index c02d79e311..d8fafce9d6 100644 --- a/server/account-service/src/index.ts +++ b/server/account-service/src/index.ts @@ -33,7 +33,7 @@ import { migrateFromOldAccounts } from './migration/migration' import { startWorkspaceMemberUnreadConsumer } from './unread' export * from './migration/utils' -export type * from './migration/types' +export * from './migration/types' const AUTH_TOKEN_COOKIE = 'account-metadata-Token' diff --git a/server/account/src/__tests__/operations.test.ts b/server/account/src/__tests__/operations.test.ts index 866560219d..a5a5676b2b 100644 --- a/server/account/src/__tests__/operations.test.ts +++ b/server/account/src/__tests__/operations.test.ts @@ -122,7 +122,7 @@ describe('account operations', () => { socialId: { findOne: jest.fn() }, - generatePersonUuid: jest.fn().mockResolvedValue('generated-person-uuid') + generatePersonUuid: jest.fn().mockResolvedValue('generated-person-uuid' as PersonUuid) } as unknown as AccountDB const mockToken = 'test-token' @@ -1133,7 +1133,7 @@ describe('account operations', () => { return undefined }) // Reset the mock for each test - ;(mockDb.generatePersonUuid as jest.Mock).mockResolvedValue('generated-person-uuid') + ;(mockDb.generatePersonUuid as jest.Mock).mockResolvedValue('generated-person-uuid' as PersonUuid) }) test('should create basic access link', async () => { @@ -2064,8 +2064,8 @@ describe('account operations', () => { email: mockEmail, invite: mockInvite, workspace: mockWorkspace - }) - jest.spyOn(utils, 'doJoinByInvite').mockResolvedValue(joinResult) + } as any) + jest.spyOn(utils, 'doJoinByInvite').mockResolvedValue(joinResult as any) ;(mockDb.person.findOne as jest.Mock).mockResolvedValue(mockPerson) const result = await confirm(mockCtx, mockDb, mockBranding, mockToken) @@ -2544,7 +2544,7 @@ describe('account operations', () => { email: mockEmail, invite: mockInvite, workspace: mockWorkspace - }) + } as any) jest.spyOn(utils, 'signUpByEmail').mockResolvedValue({ account: mockAccountId, socialId: mockSocialId._id @@ -2606,13 +2606,13 @@ describe('account operations', () => { email: mockEmail, invite: mockInvite, workspace: mockWorkspace - }) + } as any) jest.spyOn(utils, 'signUpByEmail').mockResolvedValue({ account: mockAccountId, socialId: mockSocialId._id }) jest.spyOn(utils, 'sendEmailConfirmation').mockResolvedValue() - jest.spyOn(utils, 'doJoinByInvite').mockResolvedValue(joinResult) + jest.spyOn(utils, 'doJoinByInvite').mockResolvedValue(joinResult as any) ;(getMetadata as jest.Mock).mockReturnValue('') // No mail service configured const result = await signUpJoin(mockCtx, mockDb, mockBranding, mockToken, baseParams) @@ -3166,7 +3166,7 @@ describe('account operations', () => { const mockEmail = 'user@example.com' ;(mockDb.socialId.findOne as jest.Mock).mockResolvedValue({ value: mockEmail }) - jest.spyOn(utils, 'getWorkspaceInvite').mockResolvedValue(mockInvite) + jest.spyOn(utils, 'getWorkspaceInvite').mockResolvedValue(mockInvite as any) jest.spyOn(utils, 'checkInvite').mockResolvedValue(mockInvite.workspaceUuid) jest.spyOn(utils, 'getWorkspaceById').mockResolvedValue(mockWorkspace as any) ;(mockDb.getWorkspaceRole as jest.Mock).mockResolvedValue(AccountRole.User) @@ -3193,7 +3193,7 @@ describe('account operations', () => { const mockEmail = 'user@example.com' ;(mockDb.socialId.findOne as jest.Mock).mockResolvedValue({ value: mockEmail }) - jest.spyOn(utils, 'getWorkspaceInvite').mockResolvedValue(mockInvite) + jest.spyOn(utils, 'getWorkspaceInvite').mockResolvedValue(mockInvite as any) jest.spyOn(utils, 'checkInvite').mockResolvedValue(mockInvite.workspaceUuid) jest.spyOn(utils, 'getWorkspaceById').mockResolvedValue(mockWorkspace as any) ;(mockDb.getWorkspaceRole as jest.Mock).mockResolvedValue(null) @@ -3534,7 +3534,7 @@ describe('merge specified persons', () => { await expect( mergeSpecifiedPersons(mockCtx, mockDb, mockBranding, 'test-token', { - primaryPerson: readOnlyGuestAccountUuid, + primaryPerson: readOnlyGuestAccountUuid as PersonUuid, secondaryPerson }) ).rejects.toThrow(PlatformError) diff --git a/server/account/src/__tests__/utils.test.ts b/server/account/src/__tests__/utils.test.ts index 0bd1a0561b..0d1243f02c 100644 --- a/server/account/src/__tests__/utils.test.ts +++ b/server/account/src/__tests__/utils.test.ts @@ -70,6 +70,7 @@ import { isPasswordChangedSince, setWorkspaceMemberUnread } from '../utils' +// eslint-disable-next-line import/no-named-default import platform, { getMetadata, PlatformError, Severity, Status } from '@hcengineering/platform' import { decodeTokenVerbose, generateToken, TokenError } from '@hcengineering/server-token' import { randomBytes } from 'crypto' @@ -1958,7 +1959,7 @@ describe('account utils', () => { const mockSocialId = { key: 'email:test@example.com' as PersonId } ;(mockDb.socialId.findOne as jest.Mock).mockResolvedValue(mockSocialId) - const result = await getSocialIdByKey(mockDb, 'email:test@example.com') + const result = await getSocialIdByKey(mockDb, 'email:test@example.com' as PersonId) expect(result).toEqual(mockSocialId) expect(mockDb.socialId.findOne).toHaveBeenCalledWith({ key: 'email:test@example.com' }) }) @@ -1966,7 +1967,7 @@ describe('account utils', () => { test('should return null when social id not found', async () => { ;(mockDb.socialId.findOne as jest.Mock).mockResolvedValue(null) - const result = await getSocialIdByKey(mockDb, 'nonexistent') + const result = await getSocialIdByKey(mockDb, 'nonexistent' as PersonId) expect(result).toBeNull() }) }) diff --git a/server/account/src/operations.ts b/server/account/src/operations.ts index ba3c04d9aa..494459b229 100644 --- a/server/account/src/operations.ts +++ b/server/account/src/operations.ts @@ -285,10 +285,10 @@ export async function login ( account: existingAccount.uuid, token: isConfirmed ? generateToken( - existingAccount.tfaSecret != null ? NIL_UUID : existingAccount.uuid, - undefined, - existingAccount.tfaSecret != null ? { ...extraToken, tfaAccount: existingAccount.uuid } : extraToken - ) + existingAccount.tfaSecret != null ? NIL_UUID : existingAccount.uuid, + undefined, + existingAccount.tfaSecret != null ? { ...extraToken, tfaAccount: existingAccount.uuid } : extraToken + ) : undefined, name: getPersonName(person), socialId: emailSocialId._id, @@ -583,10 +583,10 @@ export async function validateOtp ( const _token = isConfirmed ? generateToken( - targetAccount?.tfaSecret != null ? NIL_UUID : emailSocialId.personUuid, - undefined, - targetAccount?.tfaSecret != null ? { ...extraToken, tfaAccount: emailSocialId.personUuid } : extraToken - ) + targetAccount?.tfaSecret != null ? NIL_UUID : emailSocialId.personUuid, + undefined, + targetAccount?.tfaSecret != null ? { ...extraToken, tfaAccount: emailSocialId.personUuid } : extraToken + ) : undefined return { @@ -740,11 +740,11 @@ export async function createInvite ( // TODO: Temporary solution to prevent spam using sendInvite const invitesSend = new Map< - string, - { - lastSend: number - totalSend: number - } +string, +{ + lastSend: number + totalSend: number +} >() export async function sendInvite ( @@ -2370,23 +2370,23 @@ export async function getLoginWithWorkspaceInfo ( isSystem || isDocGuest ? [] : userWorkspaces.map((it, idx) => [ - it.uuid, - { - url: it.url, - dataId: it.dataId, - mode: it.status.mode, - endpoint: getWorkspaceEndpoint(info, it.uuid, it.region), - role: roles.get(it.uuid) ?? null, - version: { - versionMajor: it.status.versionMajor, - versionMinor: it.status.versionMinor, - versionPatch: it.status.versionPatch - }, - progress: it.status.processingProgress, - branding: it.branding, - passwordAgingRule: it.passwordAgingRule - } - ]) + it.uuid, + { + url: it.url, + dataId: it.dataId, + mode: it.status.mode, + endpoint: getWorkspaceEndpoint(info, it.uuid, it.region), + role: roles.get(it.uuid) ?? null, + version: { + versionMajor: it.status.versionMajor, + versionMinor: it.status.versionMinor, + versionPatch: it.status.versionPatch + }, + progress: it.status.processingProgress, + branding: it.branding, + passwordAgingRule: it.passwordAgingRule + } + ]) ), socialIds } diff --git a/server/account/src/serviceOperations.ts b/server/account/src/serviceOperations.ts index f2c201212b..f13af03345 100644 --- a/server/account/src/serviceOperations.ts +++ b/server/account/src/serviceOperations.ts @@ -240,7 +240,7 @@ export async function updateWorkspaceRoleBySocialKey ( const { extra } = decodeTokenVerbose(ctx, token) verifyAllowedServices(['workspace', 'tool'], extra) - const socialId = await getSocialIdByKey(db, socialKey.toLowerCase()) + const socialId = await getSocialIdByKey(db, socialKey.toLowerCase() as PersonId) if (socialId == null) { throw new PlatformError(new Status(Severity.ERROR, platform.status.AccountNotFound, {})) } diff --git a/server/account/src/utils.ts b/server/account/src/utils.ts index f77d7de207..6020df3aab 100644 --- a/server/account/src/utils.ts +++ b/server/account/src/utils.ts @@ -393,7 +393,7 @@ export function getAllTransactors (kind: EndpointKind): string[] { export function hashWithSalt (password: string, salt: Buffer): Buffer { // remove "as any" when types in node will be fixed - return pbkdf2Sync(password, salt, 1000, 32, 'sha256') + return pbkdf2Sync(password, salt as any, 1000, 32, 'sha256') } export function verifyPassword (password: string, hash?: Buffer | null, salt?: Buffer | null): boolean { @@ -402,7 +402,7 @@ export function verifyPassword (password: string, hash?: Buffer | null, salt?: B } // remove "as any" when types in node will be fixed - return Buffer.compare(hash, hashWithSalt(password, salt)) === 0 + return Buffer.compare(hash as any, hashWithSalt(password, salt) as any) === 0 } // 0 or negative value means no limit @@ -945,15 +945,15 @@ export async function updateAllowReadOnlyGuests ( return undefined } - let guestPerson = await db.person.findOne({ uuid: readOnlyGuestAccountUuid }) + let guestPerson = await db.person.findOne({ uuid: readOnlyGuestAccountUuid as PersonUuid }) if (guestPerson == null) { await db.person.insertOne({ - uuid: readOnlyGuestAccountUuid, + uuid: readOnlyGuestAccountUuid as PersonUuid, firstName: 'Anonymous', lastName: 'Guest' }) - await createAccount(db, readOnlyGuestAccountUuid, true) - guestPerson = await db.person.findOne({ uuid: readOnlyGuestAccountUuid }) + await createAccount(db, readOnlyGuestAccountUuid as PersonUuid, true) + guestPerson = await db.person.findOne({ uuid: readOnlyGuestAccountUuid as PersonUuid }) } const roleInWorkspace = await db.getWorkspaceRole(readOnlyGuestAccountUuid, workspace) if (roleInWorkspace == null) { @@ -965,7 +965,7 @@ export async function updateAllowReadOnlyGuests ( throw new PlatformError(new Status(Severity.ERROR, platform.status.InternalServerError, {})) } const guestSocialIds = await db.socialId.find({ - personUuid: readOnlyGuestAccountUuid, + personUuid: readOnlyGuestAccountUuid as PersonUuid, verifiedOn: { $gt: 0 } }) diff --git a/server/backup/src/backup.ts b/server/backup/src/backup.ts index 66c2080be0..59542f2cd4 100644 --- a/server/backup/src/backup.ts +++ b/server/backup/src/backup.ts @@ -399,34 +399,34 @@ export async function backup ( st = Date.now() } const serverDocHash = doTrimHash(hash) as string - const currentHash = doTrimHash(digest.get(id) ?? oldHash.get(id as Ref)) + const currentHash = doTrimHash(digest.get(id as Ref) ?? oldHash.get(id as Ref)) if (currentHash !== undefined) { - const oldD = digest.get(id) - if (digest.delete(id)) { + const oldD = digest.get(id as Ref) + if (digest.delete(id as Ref)) { if (oldD !== undefined) { same.set(id as Ref, oldD) } oldHash.set(id as Ref, currentHash) } if (currentHash !== serverDocHash) { - if (changes.updated.has(id)) { + if (changes.updated.has(id as Ref)) { removeFromNeedRetrieve(needRetrieve, id as Ref) } - changes.updated.set(id, serverDocHash) + changes.updated.set(id as Ref, serverDocHash) needRetrieve.set(id as Ref, { size, contentType, hash }) changed++ - } else if (changes.updated.has(id)) { + } else if (changes.updated.has(id as Ref)) { // We have same - changes.updated.delete(id) + changes.updated.delete(id as Ref) removeFromNeedRetrieve(needRetrieve, id as Ref) processed -= 1 } } else { - if (domain === DOMAIN_BLOB && changes.added.has(id)) { + if (domain === DOMAIN_BLOB && changes.added.has(id as Ref)) { // We need to clean old need retrieve in case of duplicates. removeFromNeedRetrieve(needRetrieve, id as Ref) } - changes.added.set(id, serverDocHash) + changes.added.set(id as Ref, serverDocHash) needRetrieve.set(id as Ref, { size, contentType, hash }) changed++ } @@ -838,7 +838,7 @@ export async function backup ( } }) - const finalBuffer = Buffer.concat(buffers) + const finalBuffer = Buffer.concat(buffers as any) if (finalBuffer.length !== blob.size) { ctx.error('download blob size mismatch', { _id: blob._id, diff --git a/server/backup/src/restore.ts b/server/backup/src/restore.ts index c9fb1a5dcd..535f3a2a09 100644 --- a/server/backup/src/restore.ts +++ b/server/backup/src/restore.ts @@ -372,7 +372,7 @@ export async function restore ( } }) stream.on('end', () => { - const bf = Buffer.concat(chunks) + const bf = Buffer.concat(chunks as any) const d = blobs.get(name) if (d === undefined) { blobs.set(name, { doc: undefined, buffer: bf }) @@ -399,7 +399,7 @@ export async function restore ( } }) stream.on('end', () => { - const bf = Buffer.concat(chunks) + const bf = Buffer.concat(chunks as any) let doc: Doc try { doc = JSON.parse(bf.toString()) as Doc @@ -537,7 +537,7 @@ export async function restore ( }) stream.on('end', () => { try { - const obj = JSON.parse(Buffer.concat(chunks).toString()) + const obj = JSON.parse(Buffer.concat(chunks as any).toString()) processed.add(objKey) collectedObjects.push(obj) } catch (err) { diff --git a/server/backup/src/storage.ts b/server/backup/src/storage.ts index da58527dd7..4dd706d1a5 100644 --- a/server/backup/src/storage.ts +++ b/server/backup/src/storage.ts @@ -99,7 +99,7 @@ class AdapterStorage implements BackupStorage { async loadFile (name: string): Promise { const data = await this.client.read(this.ctx, this.wsIds, join(this.root, name)) - return Buffer.concat(data) + return Buffer.concat(data as any) } async write (name: string): Promise { diff --git a/server/backup/src/utils.ts b/server/backup/src/utils.ts index 80e109a7fb..c6c8896a8c 100644 --- a/server/backup/src/utils.ts +++ b/server/backup/src/utils.ts @@ -22,6 +22,7 @@ import core, { MeasureContext, MeasureMetricsContext, Ref, + type Space, type Blob } from '@hcengineering/core' import { @@ -296,7 +297,7 @@ export async function backupFind ( } }) stream.on('end', () => { - const bf = Buffer.concat(chunks) + const bf = Buffer.concat(chunks as any) console.log('>>>>>>>>>>>') console.log(JSON.stringify(JSON.parse(bf.toString()), undefined, 2)) console.log('>>>>>>>>>>>') @@ -654,7 +655,7 @@ export async function compactBackup ( const name = headers.name ?? '' processed++ // We found blob data - if (requiredDocs.has(name)) { + if (requiredDocs.has(name as Ref)) { const chunks: Buffer[] = [] stream.on('data', (chunk) => { if (Buffer.isBuffer(chunk)) { @@ -662,7 +663,7 @@ export async function compactBackup ( } }) stream.on('end', () => { - const bf = Buffer.concat(chunks) + const bf = Buffer.concat(chunks as any) const d = blobs.get(name) if (d === undefined) { blobs.set(name, { doc: undefined, buffer: bf }) @@ -686,7 +687,10 @@ export async function compactBackup ( }) } }) - } else if (name.endsWith('.json') && requiredDocs.has(name.substring(0, name.length - 5))) { + } else if ( + name.endsWith('.json') && + requiredDocs.has(name.substring(0, name.length - 5) as Ref) + ) { const chunks: Buffer[] = [] const bname = name.substring(0, name.length - 5) stream.on('data', (chunk) => { @@ -695,7 +699,7 @@ export async function compactBackup ( } }) stream.on('end', () => { - const bf = Buffer.concat(chunks) + const bf = Buffer.concat(chunks as any) let doc: Doc try { doc = JSON.parse(bf.toString()) as Doc @@ -1007,13 +1011,13 @@ export async function loadDigest ( gunzipSync(new Uint8Array(await storage.loadFile(d.snapshot))).toString() ) for (const [k, v] of Object.entries(dChanges.added)) { - result.set(k, v) + result.set(k as Ref, v) } for (const [k, v] of Object.entries(dChanges.updated)) { - result.set(k, v) + result.set(k as Ref, v) } for (const d of dChanges.removed) { - result.delete(d) + result.delete(d as Ref>) } } catch (err: any) { ctx.warn('failed to load digest', { snapshot: d.snapshot, ...(msg ?? {}) }) @@ -1028,20 +1032,20 @@ export async function loadDigest ( const added = dataBlob.splice(0, addedCount) for (const it of added) { const [k, v] = it.split(';') - result.set(k, v) + result.set(k as Ref, v) } const updatedCount = parseInt(dataBlob.shift() ?? '0') const updated = dataBlob.splice(0, updatedCount) for (const it of updated) { const [k, v] = it.split(';') - result.set(k, v) + result.set(k as Ref, v) } const removedCount = parseInt(dataBlob.shift() ?? '0') const removed = dataBlob.splice(0, removedCount) for (const k of removed) { - result.delete(k) + result.delete(k as Ref) } } catch (err: any) { ctx.warn('digest is broken', { domain, err: err.message, snapshot, ...(msg ?? {}) }) @@ -1098,7 +1102,7 @@ export async function verifyDigest ( }) stream.on('end', () => { try { - const bf = Buffer.concat(chunks) + const bf = Buffer.concat(chunks as any) const doc = JSON.parse(bf.toString()) as Doc if (doc._class === core.class.Blob || doc._class === 'core:class:BlobData') { const data = migradeBlobData(doc as Blob, '') @@ -1205,7 +1209,7 @@ export async function updateDigest ( for (const it of added) { const [k, v] = it.split(';') if (validDocs.has(k as any)) { - changes.added.set(k, v) + changes.added.set(k as Ref, v) } else { lmodified = true } @@ -1216,7 +1220,7 @@ export async function updateDigest ( for (const it of updated) { const [k, v] = it.split(';') if (validDocs.has(k as any)) { - changes.updated.set(k, v) + changes.updated.set(k as Ref, v) } else { lmodified = true } @@ -1224,7 +1228,7 @@ export async function updateDigest ( const removedCount = parseInt(dataBlob.shift() ?? '0') const removed = dataBlob.splice(0, removedCount) - changes.removed = removed + changes.removed = removed as Ref[] if (addedCount === 0 && removedCount === 0 && updatedCount === 0) { // Empty digest, need to clean digestToRemove.add(snapshot) @@ -1340,7 +1344,7 @@ export async function verifyDocsFromSnapshot ( } }) stream.on('end', () => { - const bf = Buffer.concat(chunks) + const bf = Buffer.concat(chunks as any) let doc: Doc try { doc = JSON.parse(bf.toString()) as Doc diff --git a/server/indexer/src/indexer/indexer.ts b/server/indexer/src/indexer/indexer.ts index c7144e20bf..b3eb28258f 100644 --- a/server/indexer/src/indexer/indexer.ts +++ b/server/indexer/src/indexer/indexer.ts @@ -97,7 +97,7 @@ import { import { markdownToMarkup } from '@hcengineering/text-markdown' import { type HulylakeWorkspaceClient } from '@hcengineering/hulylake-client' -export type * from './types' +export * from './types' export * from './utils' const printThresholdMs = 2500 @@ -973,7 +973,7 @@ export class FullTextIndexPipeline implements FullTextPipeline { if (value !== undefined && value !== '') { try { const readable = await this.storageAdapter?.read(ctx, this.workspace, value) - const markup = Buffer.concat(readable).toString() + const markup = Buffer.concat(readable as any).toString() let textContent = markupToText(markup) textContent = textContent .split(/ +|\t+|\f+/) @@ -1172,7 +1172,9 @@ export class FullTextIndexPipeline implements FullTextPipeline { indexedDoc: IndexedDoc ): Promise { if (docInfo !== undefined) { - let textContent = Buffer.concat(await this.storageAdapter?.read(ctx, this.workspace, docInfo._id)).toString() + let textContent = Buffer.concat( + (await this.storageAdapter?.read(ctx, this.workspace, docInfo._id)) as any + ).toString() textContent = textContent .split(/ +|\t+|\f+/) diff --git a/server/tool/src/index.ts b/server/tool/src/index.ts index 67f39f93f8..4b5b5ac2fd 100644 --- a/server/tool/src/index.ts +++ b/server/tool/src/index.ts @@ -183,7 +183,7 @@ export async function updateModel ( for (const op of migrateOperations) { const st = platformNow() await ctx.with(op[0], {}, async () => { - await op[1].upgrade(migrateState, async () => connection, mode) + await op[1].upgrade(migrateState, async () => connection as any, mode) }) const tdelta = platformNowDiff(st) if (tdelta > 0) { diff --git a/server/tool/src/initializer.ts b/server/tool/src/initializer.ts index ee73d1fe64..8f08dd4763 100644 --- a/server/tool/src/initializer.ts +++ b/server/tool/src/initializer.ts @@ -239,7 +239,7 @@ export class WorkspaceInitializer { if (_id === undefined || space === undefined) { throw new Error('Update step must have _id and space') } - await this.client.updateDoc(step._class, space, _id, props) + await this.client.updateDoc(step._class, space, _id as Ref, props) } private async processBulkUpdate(step: BulkUpdateStep, vars: Record): Promise { diff --git a/services/analytics-collector/pod-analytics-collector/src/server.ts b/services/analytics-collector/pod-analytics-collector/src/server.ts index 2b5e9d010b..f579130b92 100644 --- a/services/analytics-collector/pod-analytics-collector/src/server.ts +++ b/services/analytics-collector/pod-analytics-collector/src/server.ts @@ -67,7 +67,7 @@ function isContentValid (body: any[]): boolean { } function getRecordsByType (event: AnalyticEvent): Record { - switch (event.event) { + switch (event.event as AnalyticEventType) { case AnalyticEventType.SetTag: return { event: '$set', diff --git a/services/calendar/pod-calendar/src/sync.ts b/services/calendar/pod-calendar/src/sync.ts index 619acff0d5..b998817407 100644 --- a/services/calendar/pod-calendar/src/sync.ts +++ b/services/calendar/pod-calendar/src/sync.ts @@ -293,7 +293,7 @@ export class IncomingSyncManager { const exists = await this.client.findOne(calendar.class.Event, { eventId: event.id, calendar: _calendar._id - }) + })) as Event | undefined if (exists === undefined) { await this.saveExtEvent(event, accessRole, _calendar) } else { @@ -313,7 +313,7 @@ export class IncomingSyncManager { const diff = this.getDiff( { ...data, - recurringEventId: event.recurringEventId, + recurringEventId: event.recurringEventId as Ref, originalStartTime: parseEventDate(event.originalStartTime), isCancelled: event.status === 'cancelled' }, diff --git a/services/export/pod-export/src/__tests__/workspace-exporter.test.ts b/services/export/pod-export/src/__tests__/workspace-exporter.test.ts index ca9a77a736..7873797622 100644 --- a/services/export/pod-export/src/__tests__/workspace-exporter.test.ts +++ b/services/export/pod-export/src/__tests__/workspace-exporter.test.ts @@ -202,7 +202,7 @@ function createMockTxOperations ( createDoc: jest.fn( async (classRef: Ref>, space: Ref, data: any, id?: Ref): Promise> => { const docId = id ?? generateId() - createdDocs.push({ _id: docId, _class: classRef, space, ...data }) + createdDocs.push({ _id: docId, _class: classRef, space, ...data } as unknown as Doc) return docId } ), @@ -225,7 +225,7 @@ function createMockTxOperations ( attachedToClass, collection, ...data - }) + } as unknown as Doc) return docId } ), @@ -602,7 +602,7 @@ describe('CrossWorkspaceExporter', () => { const result = await exporter.export({ sourceWorkspace: createWorkspaceIds('source-ws'), targetWorkspace: createWorkspaceIds('target-ws'), - sourceQuery: { _id: SOURCE_DOC_1 }, + sourceQuery: { _id: SOURCE_DOC_1 } as any, _class: mockDocClass, includeChildren: false }) @@ -674,7 +674,7 @@ describe('CrossWorkspaceExporter', () => { const result = await exporter.export({ sourceWorkspace: createWorkspaceIds('source-ws'), targetWorkspace: createWorkspaceIds('target-ws'), - sourceQuery: { _id: SOURCE_DOC_1 }, + sourceQuery: { _id: SOURCE_DOC_1 } as any, _class: mockDocClass, includeChildren: true }) @@ -738,7 +738,7 @@ describe('CrossWorkspaceExporter', () => { const result = await exporter.export({ sourceWorkspace: createWorkspaceIds('source-ws'), targetWorkspace: createWorkspaceIds('target-ws'), - sourceQuery: { _id: SOURCE_DOC_2 }, + sourceQuery: { _id: SOURCE_DOC_2 as any }, _class: mockDocClass, relations }) diff --git a/services/export/pod-export/src/converter.ts b/services/export/pod-export/src/converter.ts index 32a951de6a..a1c0928553 100644 --- a/services/export/pod-export/src/converter.ts +++ b/services/export/pod-export/src/converter.ts @@ -362,7 +362,7 @@ export class UnifiedConverter { return '' } - const markup = Buffer.concat(buffer).toString() + const markup = Buffer.concat(buffer as any).toString() // const markdown = await markupToMarkdown(markup, '', '') return markup // todo: test it is a markdown } catch (err) { @@ -405,17 +405,26 @@ export class UnifiedConverter { } // Create attachments with getData callbacks - const resolved = attachments.map((att): UnifiedAttachment => ({ - id: att._id, - name: att.name, - size: att.size, - contentType: att.type, - getData: async () => { - try { - const buffer = await this.storage.read(this.context, this.wsIds, att.file) - - if (buffer === undefined) { - this.context.warn(`Attachment not found: ${att._id}`) + const resolved = attachments.map( + (att): UnifiedAttachment => ({ + id: att._id, + name: att.name, + size: att.size, + contentType: att.type, + getData: async () => { + try { + const buffer = await this.storage.read(this.context, this.wsIds, att.file) + + if (buffer === undefined) { + this.context.warn(`Attachment not found: ${att._id}`) + return Buffer.from([]) + } + + return Buffer.concat(buffer as any) + } catch (err) { + this.context.warn(`Failed to read attachment: ${att._id}`, { + error: err instanceof Error ? err.message : String(err) + }) return Buffer.from([]) } diff --git a/services/export/pod-export/src/server.ts b/services/export/pod-export/src/server.ts index 30f0b9133e..b0dae8fc4c 100644 --- a/services/export/pod-export/src/server.ts +++ b/services/export/pod-export/src/server.ts @@ -15,7 +15,7 @@ // import { getClient, isWorkspaceLoginInfo } from '@hcengineering/account-client' -import client from '@hcengineering/client' +import client, { ClientSocket } from '@hcengineering/client' import core, { AccountRole, AccountUuid, @@ -174,7 +174,7 @@ const normalizeRelations = (input: unknown): RelationDefinition[] | undefined => } if (typeof value === 'string') { - result.push({ field: key, class: value, direction: 'forward' }) + result.push({ field: key, class: value as Ref>, direction: 'forward' }) continue } @@ -662,7 +662,7 @@ async function createPlatformClient (token: string): Promise { headers: { 'User-Agent': process.env.SERVICE_ID } - }) as never + }) as never as ClientSocket }) const endpoint = await getTransactorEndpoint(token) diff --git a/services/export/pod-export/src/workspace/attachment-exporter.ts b/services/export/pod-export/src/workspace/attachment-exporter.ts index 52ddf94026..a52a65b78d 100644 --- a/services/export/pod-export/src/workspace/attachment-exporter.ts +++ b/services/export/pod-export/src/workspace/attachment-exporter.ts @@ -107,9 +107,9 @@ export class AttachmentExporter { } try { - const blobBuffers = await this.storage.read(this.context, this.sourceWorkspace, blobRef) + const blobBuffers = await this.storage.read(this.context, this.sourceWorkspace, blobRef as string) if (blobBuffers !== undefined && blobBuffers.length > 0) { - const sourceBlob = await this.storage.stat(this.context, this.sourceWorkspace, blobRef) + const sourceBlob = await this.storage.stat(this.context, this.sourceWorkspace, blobRef as string) if (sourceBlob !== undefined) { const totalSize = blobBuffers.reduce((sum, buf) => sum + buf.length, 0) const combinedBuffer = Buffer.concat(blobBuffers) @@ -165,9 +165,9 @@ export class AttachmentExporter { } try { - const blobBuffers = await this.storage.read(this.context, this.sourceWorkspace, blobRef) + const blobBuffers = await this.storage.read(this.context, this.sourceWorkspace, blobRef as string) if (blobBuffers !== undefined && blobBuffers.length > 0) { - const sourceBlob = await this.storage.stat(this.context, this.sourceWorkspace, blobRef) + const sourceBlob = await this.storage.stat(this.context, this.sourceWorkspace, blobRef as string) if (sourceBlob !== undefined) { const totalSize = blobBuffers.reduce((sum, buf) => sum + buf.length, 0) const combinedBuffer = Buffer.concat(blobBuffers) diff --git a/services/export/pod-export/src/workspace/relation-exporter.ts b/services/export/pod-export/src/workspace/relation-exporter.ts index cde2ee2ec2..cfebb471e7 100644 --- a/services/export/pod-export/src/workspace/relation-exporter.ts +++ b/services/export/pod-export/src/workspace/relation-exporter.ts @@ -188,7 +188,7 @@ export class RelationExporter { } await this.exportRelatedDocument( - ref, + ref as Ref, relation.class, conflictStrategy, includeAttachments, diff --git a/services/github/pod-github/src/client.ts b/services/github/pod-github/src/client.ts index 2e5ffe7c7d..184ac89290 100644 --- a/services/github/pod-github/src/client.ts +++ b/services/github/pod-github/src/client.ts @@ -3,7 +3,7 @@ // // -import client from '@hcengineering/client' +import client, { ClientSocket } from '@hcengineering/client' import clientResources from '@hcengineering/client-resources' import { Client, ClientConnectEvent, systemAccountUuid, WorkspaceUuid, type MeasureContext } from '@hcengineering/core' import { setMetadata } from '@hcengineering/platform' @@ -26,7 +26,7 @@ export async function createPlatformClient ( headers: { 'User-Agent': config.ServiceID } - }) as never + }) as never as ClientSocket }) const token = generateToken(systemAccountUuid, workspace, { service: 'github', mode: 'github' }) diff --git a/services/github/pod-github/src/markdown/__tests__/markup.test.ts b/services/github/pod-github/src/markdown/__tests__/markup.test.ts index 68ce317f38..39d162cb99 100644 --- a/services/github/pod-github/src/markdown/__tests__/markup.test.ts +++ b/services/github/pod-github/src/markdown/__tests__/markup.test.ts @@ -13,7 +13,7 @@ // limitations under the License. // -/* global describe, expect, it */ +/* eslint-env jest */ import { setMetadata } from '@hcengineering/platform' import serverCore from '@hcengineering/server-core' import { jsonToHTML, htmlToJSON } from '@hcengineering/text' diff --git a/services/github/pod-github/src/markdown/__tests__/textmodel.test.ts b/services/github/pod-github/src/markdown/__tests__/textmodel.test.ts index 009c82a29d..5f87b733c3 100644 --- a/services/github/pod-github/src/markdown/__tests__/textmodel.test.ts +++ b/services/github/pod-github/src/markdown/__tests__/textmodel.test.ts @@ -13,7 +13,7 @@ // limitations under the License. // -/* global describe, expect, it */ +/* eslint-env jest */ import { MarkupMarkType, MarkupNode, diff --git a/services/github/pod-github/src/server.ts b/services/github/pod-github/src/server.ts index ca8d9543e6..05a0b123bb 100644 --- a/services/github/pod-github/src/server.ts +++ b/services/github/pod-github/src/server.ts @@ -52,7 +52,7 @@ export async function start (ctx: MeasureContext, brandingMap: BrandingMap): Pro const localWebhookUrl = `http://localhost:${port}${path}` // See https://github.com/octokit/webhooks.js/#createnodemiddleware for all options - const middleware = createNodeMiddleware(octokitApp.webhooks, { path }) + const middleware = createNodeMiddleware(octokitApp.webhooks as any, { path }) const app = express() diff --git a/services/github/pod-github/src/sync/__tests__/pullrequests.test.ts b/services/github/pod-github/src/sync/__tests__/pullrequests.test.ts index f6fa19896e..129acb7c47 100644 --- a/services/github/pod-github/src/sync/__tests__/pullrequests.test.ts +++ b/services/github/pod-github/src/sync/__tests__/pullrequests.test.ts @@ -47,7 +47,7 @@ describe('PullRequestSyncManager', () => { it('should handle undefined reviewRequests gracefully', async () => { const prData: Partial = { - reviewRequests: undefined, + reviewRequests: undefined as any, latestReviews: { nodes: [], totalCount: 0 } } @@ -138,7 +138,7 @@ describe('PullRequestSyncManager', () => { it('should handle undefined latestReviews', async () => { const prData: Partial = { reviewRequests: { nodes: [], totalCount: 0 }, - latestReviews: undefined + latestReviews: undefined as any } const result = await manager.getReviewers(prData as PullRequestExternalData) diff --git a/services/github/pod-github/src/sync/comments.ts b/services/github/pod-github/src/sync/comments.ts index 7fdee5bdad..10e8f506dd 100644 --- a/services/github/pod-github/src/sync/comments.ts +++ b/services/github/pod-github/src/sync/comments.ts @@ -459,7 +459,7 @@ export class CommentSyncManager implements DocSyncManager { const upd: DocumentUpdate = { parent: (result?.data.html_url?.split('#')?.[0] ?? '').toLowerCase(), url: (result?.data.url ?? '').toLowerCase(), - external: result?.data, + external: result?.data as CommentExternalData, current: result?.data, repository: repo._id, needSync: githubSyncVersion diff --git a/services/github/pod-github/src/sync/issueBase.ts b/services/github/pod-github/src/sync/issueBase.ts index c57856ce19..deebe65627 100644 --- a/services/github/pod-github/src/sync/issueBase.ts +++ b/services/github/pod-github/src/sync/issueBase.ts @@ -297,7 +297,7 @@ export abstract class IssueSyncManagerBase { {}, async (ctx) => { await this.client.createMixin( - existing._id, + existing._id as Ref, existing._class, existing.space, github.mixin.GithubIssue, diff --git a/services/github/pod-github/src/sync/pullrequests.ts b/services/github/pod-github/src/sync/pullrequests.ts index fc56adfb74..8c4bd577ce 100644 --- a/services/github/pod-github/src/sync/pullrequests.ts +++ b/services/github/pod-github/src/sync/pullrequests.ts @@ -479,7 +479,7 @@ export class PullRequestSyncManager extends IssueSyncManagerBase implements DocS accountGH, { ...pullRequestData, - status: (await guessStatus(pullRequestExternal, statuses))._id + status: (await guessStatus(pullRequestExternal, statuses))._id as Ref }, pullRequestExternal, info.repository as Ref, @@ -917,7 +917,8 @@ export class PullRequestSyncManager extends IssueSyncManagerBase implements DocS // We need to update status in case category are different const stInstance = - statuses.find((it) => it._id === status) ?? (await this.client.findOne(core.class.Status, { _id: status })) + statuses.find((it) => it._id === status) ?? + ((await this.client.findOne(core.class.Status, { _id: status })) as Status) let gs: IssueStatus | undefined if (pullRequestExternal.merged) { diff --git a/services/github/pod-github/src/worker.ts b/services/github/pod-github/src/worker.ts index ce7165338c..969c6b8373 100644 --- a/services/github/pod-github/src/worker.ts +++ b/services/github/pod-github/src/worker.ts @@ -1434,8 +1434,8 @@ export class GithubWorker implements IntegrationManager { const docsMap = new Map, Doc>(externalDocs.map((it) => [it._id as Ref, it])) const orderedSyncInfo = [...syncInfo] orderedSyncInfo.sort((a, b) => { - const adoc = docsMap.get(a._id) - const bdoc = docsMap.get(a._id) + const adoc = docsMap.get(a._id as Ref) + const bdoc = docsMap.get(a._id as Ref) return (bdoc?.createdOn ?? 0) - (adoc?.createdOn ?? 0) }) diff --git a/services/gmail/pod-gmail/src/config.ts b/services/gmail/pod-gmail/src/config.ts index 94f1a55d5c..ebdf9ff17f 100644 --- a/services/gmail/pod-gmail/src/config.ts +++ b/services/gmail/pod-gmail/src/config.ts @@ -61,7 +61,7 @@ const config: Config = (() => { const versionStr = process.env[envMap.Version] ?? 'v1' let version: IntegrationVersion if (versionStr === IntegrationVersion.V1 || versionStr === IntegrationVersion.V2) { - version = versionStr + version = versionStr as IntegrationVersion } else { throw new Error(`Invalid version: ${versionStr}. Must be 'v1' or 'v2'.`) } diff --git a/services/gmail/pod-gmail/src/gmail.ts b/services/gmail/pod-gmail/src/gmail.ts index 3d6e795044..2c9a9e8313 100644 --- a/services/gmail/pod-gmail/src/gmail.ts +++ b/services/gmail/pod-gmail/src/gmail.ts @@ -335,7 +335,7 @@ export class GmailClient { }) await this.workspace.subscribeMessages() for (const message of newMessages) { - await this.createMessage(message) + await this.createMessage(message as NewMessage) } } diff --git a/services/gmail/pod-gmail/src/gmailController.ts b/services/gmail/pod-gmail/src/gmailController.ts index 234f189ea7..30457bdbdc 100644 --- a/services/gmail/pod-gmail/src/gmailController.ts +++ b/services/gmail/pod-gmail/src/gmailController.ts @@ -56,8 +56,8 @@ export class GmailController { private readonly credentials: ProjectCredentials private readonly clients: Map> = new Map< - PersonId, - Map + PersonId, + Map >() private readonly personIdByEmail = new Map() diff --git a/services/gmail/pod-gmail/src/main.ts b/services/gmail/pod-gmail/src/main.ts index 2f228086f6..8bff7a73de 100644 --- a/services/gmail/pod-gmail/src/main.ts +++ b/services/gmail/pod-gmail/src/main.ts @@ -112,10 +112,9 @@ export const main = async (): Promise => { try { ctx.info('Signin code request received') const code = req.query.code as string - const parsedState = JSON.parse(decode64(req.query.state as string)) as State - state = parsedState - await gmailController.createClient(parsedState, code) - res.redirect(parsedState.redirectURL) + state = JSON.parse(decode64(req.query.state as string)) as unknown as State + await gmailController.createClient(state, code) + res.redirect(state.redirectURL) } catch (err: any) { ctx.error('Failed to process signin code', { message: err.message }) if (state !== undefined) { diff --git a/services/love/src/workspaceClient.ts b/services/love/src/workspaceClient.ts index d4cf530806..c397c201a1 100644 --- a/services/love/src/workspaceClient.ts +++ b/services/love/src/workspaceClient.ts @@ -527,7 +527,7 @@ export class WorkspaceClient { try { const socialIds = await this.client.findAll(contact.class.SocialIdentity, { attachedTo: personRef }, { limit: 1 }) if (socialIds.length > 0) { - return socialIds[0]._id + return socialIds[0]._id as PersonId } } catch (err: any) { this.ctx.error('[WorkspaceClient.getPersonIdByPersonRef] Failed', { diff --git a/services/mail/mail-common/src/__tests__/thread.test.ts b/services/mail/mail-common/src/__tests__/thread.test.ts index 15c45c8183..70374e0f21 100644 --- a/services/mail/mail-common/src/__tests__/thread.test.ts +++ b/services/mail/mail-common/src/__tests__/thread.test.ts @@ -48,7 +48,7 @@ describe('ThreadLookupService', () => { setValue: jest.fn(), deleteKey: jest.fn(), listKeys: jest.fn() - } + } as unknown as jest.Mocked }) afterEach(() => { diff --git a/services/mail/mail-common/src/utils.ts b/services/mail/mail-common/src/utils.ts index 00acbab0fa..97c8cacf50 100644 --- a/services/mail/mail-common/src/utils.ts +++ b/services/mail/mail-common/src/utils.ts @@ -30,7 +30,6 @@ import { MessageExtra, MessageID } from '@hcengineering/communication-types' import { CreateMessageEvent } from '@hcengineering/communication-sdk-types' import { generateMessageId } from '@hcengineering/communication-shared' -// eslint-disable-next-line secure-coding/no-redos-vulnerable-regex const NAME_EMAIL_PATTERN = /^(?:"?([^"<]+)"?\s*)?<([^>]+)>$/ const NAME_SEGMENT_REGEX = /[\s,;]+/ diff --git a/services/mail/pod-mail-worker/src/__tests__/utils.test.ts b/services/mail/pod-mail-worker/src/__tests__/utils.test.ts index 42e3e38636..deacb9fc83 100644 --- a/services/mail/pod-mail-worker/src/__tests__/utils.test.ts +++ b/services/mail/pod-mail-worker/src/__tests__/utils.test.ts @@ -92,7 +92,7 @@ describe('utils.ts', () => { headers: [['Content-Type', 'text/html; charset=utf-8']], contents: '

This is an HTML email

' } - } + } as any // Mock readEml to return HTML content ;(readEml as jest.Mock).mockImplementation((content, callback) => { @@ -125,7 +125,7 @@ describe('utils.ts', () => { contents: '--boundary\r\nContent-Type: text/plain\r\n\r\nText part\r\n--boundary\r\nContent-Type: text/html\r\n\r\n

HTML part

\r\n--boundary--' } - } + } as any // Mock readEml to return both text and HTML content ;(readEml as jest.Mock).mockImplementation((content, callback) => { diff --git a/services/mail/pod-mail-worker/src/handlerMta.ts b/services/mail/pod-mail-worker/src/handlerMta.ts index 4c4f5a267a..d1e70a2b61 100644 --- a/services/mail/pod-mail-worker/src/handlerMta.ts +++ b/services/mail/pod-mail-worker/src/handlerMta.ts @@ -133,7 +133,6 @@ function extractContactName ( email: string ): { firstName: string, lastName: string } { // Match name part that appears before an email in angle brackets - // eslint-disable-next-line secure-coding/no-redos-vulnerable-regex const nameMatch = fromHeader.match(/^\s*"?([^"<]+?)"?\s*<.+?>/) const encodedName = nameMatch?.[1].trim() ?? '' const name = encodedName.length > 0 ? decodeEncodedWords(ctx, encodedName) : '' diff --git a/services/mail/pod-mail/package.json b/services/mail/pod-mail/package.json index 4cbd65d159..24bf51dbaf 100644 --- a/services/mail/pod-mail/package.json +++ b/services/mail/pod-mail/package.json @@ -53,7 +53,7 @@ "typescript": "^5.9.3" }, "dependencies": { - "@aws-sdk/client-ses": "^3.1107.0", + "@aws-sdk/client-sesv2": "^3.1121.0", "@hcengineering/analytics": "workspace:^0.7.19", "@hcengineering/analytics-service": "workspace:^0.7.19", "@hcengineering/core": "workspace:^0.7.26", diff --git a/services/mail/pod-mail/src/transport.ts b/services/mail/pod-mail/src/transport.ts index 40c0815503..88d96e3339 100644 --- a/services/mail/pod-mail/src/transport.ts +++ b/services/mail/pod-mail/src/transport.ts @@ -13,7 +13,7 @@ // limitations under the License. // import nodemailer, { type Transporter } from 'nodemailer' -import * as aws from '@aws-sdk/client-ses' +import { SESv2Client, SendEmailCommand } from '@aws-sdk/client-sesv2' import { type Config, type SmtpConfig, type SesConfig, getTlsSettings } from './config' @@ -39,7 +39,7 @@ function smtp (config: SmtpConfig): Transporter { function ses (config: SesConfig): Transporter { console.log('Using AWS SES config') - const ses = new aws.SES({ + const sesClient = new SESv2Client({ region: config.Region, credentials: { accessKeyId: config.AccessKey, @@ -48,7 +48,7 @@ function ses (config: SesConfig): Transporter { }) return nodemailer.createTransport({ - SES: { ses, aws } + SES: { sesClient, SendEmailCommand } }) } diff --git a/services/notification/pod-events-processor/src/__tests__/worker.test.ts b/services/notification/pod-events-processor/src/__tests__/worker.test.ts index f6da3970d7..79a32c7fd6 100644 --- a/services/notification/pod-events-processor/src/__tests__/worker.test.ts +++ b/services/notification/pod-events-processor/src/__tests__/worker.test.ts @@ -70,7 +70,7 @@ describe('handleScheduledNotification', () => { kind: 'eventReminder', id: 'timer-workslot-1', eventId: 'workslot-1' as any, - eventClass: time.class.WorkSlot, + eventClass: time.class.WorkSlot as any, shiftMs: 1000, targetDate: 1_000_000 } @@ -88,7 +88,7 @@ describe('handleScheduledNotification', () => { // -------------------------------------------------------------------------------- it('returns early for non-eventReminder messages (e.g. legacy todoReminder messages)', async () => { const legacy = { ...workSlotMessage, kind: 'todoReminder' as any } - await handleScheduledNotification(ctx, workspaceUuid, legacy, control) + await handleScheduledNotification(ctx, workspaceUuid, legacy as any, control) expect(getClient).not.toHaveBeenCalled() expect(control.heartbeat).not.toHaveBeenCalled() diff --git a/services/notification/pod-events-processor/src/worker.ts b/services/notification/pod-events-processor/src/worker.ts index 01896ff6cf..4658b96925 100644 --- a/services/notification/pod-events-processor/src/worker.ts +++ b/services/notification/pod-events-processor/src/worker.ts @@ -14,7 +14,7 @@ // import calendar from '@hcengineering/calendar' -import contact, { type PersonSpace } from '@hcengineering/contact' +import contact, { type Person, type PersonSpace } from '@hcengineering/contact' import core, { type AccountUuid, type Class, @@ -66,7 +66,7 @@ export async function handleScheduledNotification ( const { client } = bundle await control.heartbeat() - const event = await client.findOne(msg.eventClass, { _id: msg.eventId }) + const event = (await client.findOne(msg.eventClass, { _id: msg.eventId })) as MinimalEvent | undefined if (event === undefined) return await control.heartbeat() @@ -183,9 +183,9 @@ async function resolveReminderTarget ( const isToDoBacked = event.attachedToClass != null && hierarchy.isDerived(event.attachedToClass, time.class.ToDo) if (isToDoBacked && event.attachedTo != null && event.attachedToClass != null) { - const todo = await client.findOne(event.attachedToClass, { + const todo = (await client.findOne(event.attachedToClass as Ref>, { _id: event.attachedTo as Ref - }) + })) as ToDo | undefined if (todo === undefined) return undefined if (todo.doneOn != null) return undefined diff --git a/services/payment/pod-payment/src/providers/stripe/__tests__/provider.test.ts b/services/payment/pod-payment/src/providers/stripe/__tests__/provider.test.ts index 43104cca3a..914cfc0131 100644 --- a/services/payment/pod-payment/src/providers/stripe/__tests__/provider.test.ts +++ b/services/payment/pod-payment/src/providers/stripe/__tests__/provider.test.ts @@ -302,7 +302,7 @@ describe('StripeProvider', () => { // eslint-disable-next-line @typescript-eslint/consistent-type-assertions const res = {} as Response - const handleStripeWebhookSpy = jest.spyOn(webhookModule, 'handleStripeWebhook').mockResolvedValue(undefined) + const handleStripeWebhookSpy = jest.spyOn(webhookModule, 'handleStripeWebhook').mockResolvedValue(undefined as any) handler(req, res) diff --git a/services/payment/pod-payment/src/providers/stripe/__tests__/webhook.test.ts b/services/payment/pod-payment/src/providers/stripe/__tests__/webhook.test.ts index 88637d5dbf..4718cbd0bd 100644 --- a/services/payment/pod-payment/src/providers/stripe/__tests__/webhook.test.ts +++ b/services/payment/pod-payment/src/providers/stripe/__tests__/webhook.test.ts @@ -46,7 +46,7 @@ describe('handleStripeWebhook', () => { } res = { - status: statusMock + status: statusMock as unknown as any } jest.clearAllMocks() diff --git a/services/print/pod-print/src/server.ts b/services/print/pod-print/src/server.ts index 606b0f59fa..0dfc4309db 100644 --- a/services/print/pod-print/src/server.ts +++ b/services/print/pod-print/src/server.ts @@ -145,11 +145,11 @@ function parsePrintOptions (query: Request['query']): PrintOptions { const kind = query.kind as PrintOptions['kind'] const orientation = query.orientation as PrintOptions['orientation'] - if (kind !== undefined && !validKinds.includes(kind)) { + if (kind !== undefined && !validKinds.includes(kind as any)) { throw new ApiError(400, `Invalid print kind: ${kind}`) } - if (orientation !== undefined && !validPageOrientations.includes(orientation)) { + if (orientation !== undefined && !validPageOrientations.includes(orientation as any)) { throw new ApiError(400, `Invalid page orientation: ${orientation}`) } diff --git a/services/rating/src/calculator.ts b/services/rating/src/calculator.ts index 40e2ea5a0c..85e29840bb 100644 --- a/services/rating/src/calculator.ts +++ b/services/rating/src/calculator.ts @@ -237,7 +237,7 @@ export class RatingCalculator { const newState: MigrationState = { _id: generateId(), _class: core.class.MigrationState, - plugin: ratingId, + plugin: ratingId as string, state: 'v1', modifiedOn: Date.now(), modifiedBy: systemAccount.primarySocialId, @@ -595,7 +595,7 @@ export class RatingCalculator { } ) for (const p of parents) { - parentCache.set(p._id, p) + parentCache.set(p._id as Ref, p) if (p.createdBy != null) { personIds.add(p.createdBy) } @@ -623,7 +623,7 @@ export class RatingCalculator { } case core.class.TxRemoveDoc: { this.updatePersonStats(sysRating, tx.createdOn ?? tx.modifiedOn, 'delete', tx.objectClass) - await this.handleRatingDelete(ctx, tx, txAuthors) + await this.handleRatingDelete(ctx, tx as TxRemoveDoc, txAuthors) break } } @@ -675,12 +675,12 @@ export class RatingCalculator { } notifications = new Map< - AccountUuid, - { - oldRating: number - newRating: number - person: PersonRating - } + AccountUuid, + { + oldRating: number + newRating: number + person: PersonRating + } >() private async flushUpdates ( diff --git a/services/telegram-bot/pod-telegram-bot/src/workspace.ts b/services/telegram-bot/pod-telegram-bot/src/workspace.ts index 7685369170..d7893f7454 100644 --- a/services/telegram-bot/pod-telegram-bot/src/workspace.ts +++ b/services/telegram-bot/pod-telegram-bot/src/workspace.ts @@ -119,7 +119,7 @@ export class WorkspaceClient { } if (hierarchy.isDerived(objectClass, core.class.Space)) { - const space = await this.client.findOne(objectClass, { _id: objectId, members: account }) + const space = await this.client.findOne(objectClass, { _id: objectId as Ref, members: account }) return space !== undefined } @@ -282,7 +282,7 @@ export class WorkspaceClient { } async getPersons (_ids: AccountUuid[]): Promise { - return await this.client.findAll(contact.class.Person, { personUuid: { $in: _ids } }) + return (await this.client.findAll(contact.class.Person, { personUuid: { $in: _ids } })) as Person[] } async sendMessage ( diff --git a/services/telegram/pod-telegram/src/telegram.ts b/services/telegram/pod-telegram/src/telegram.ts index 2ecb69ce7d..34d9e96ebc 100644 --- a/services/telegram/pod-telegram/src/telegram.ts +++ b/services/telegram/pod-telegram/src/telegram.ts @@ -314,7 +314,7 @@ class TelegramConnection { getToken (): string | undefined { // TODO: Need recheck // eslint-disable-next-line @typescript-eslint/no-confusing-void-expression - return (this.client.session.save() as never) ?? undefined + return (this.client.session.save() as never as string) ?? undefined } } diff --git a/services/telegram/pod-telegram/src/utils.ts b/services/telegram/pod-telegram/src/utils.ts index f7d2dc267a..04b0c29719 100644 --- a/services/telegram/pod-telegram/src/utils.ts +++ b/services/telegram/pod-telegram/src/utils.ts @@ -1,4 +1,4 @@ -import client from '@hcengineering/client' +import client, { ClientSocket } from '@hcengineering/client' import { Client } from '@hcengineering/core' import { setMetadata } from '@hcengineering/platform' import { createClient, getTransactorEndpoint } from '@hcengineering/server-client' @@ -62,7 +62,7 @@ export async function createPlatformClient (token: string): Promise { headers: { 'User-Agent': config.ServiceID } - }) as never + }) as never as ClientSocket }) const endpoint = await getTransactorEndpoint(token) diff --git a/services/telegram/pod-telegram/src/workspace.ts b/services/telegram/pod-telegram/src/workspace.ts index fc8c15bee9..17c6ed7a38 100644 --- a/services/telegram/pod-telegram/src/workspace.ts +++ b/services/telegram/pod-telegram/src/workspace.ts @@ -639,7 +639,7 @@ export class WorkspaceWorker { const res: Buffer[] = [] for (const attachment of attachments) { const chunks = await this.storageAdapter.read(this.ctx, this.workspace as any, attachment.file) // TODO: FIXME <--WorkspaceIds - const buffer = Buffer.concat(chunks) + const buffer = Buffer.concat(chunks as unknown as Uint8Array[]) if (buffer.length > 0) { res.push( Object.assign(buffer, { diff --git a/services/worker/src/activities.ts b/services/worker/src/activities.ts index 735a5cd35c..fef9aad9a4 100644 --- a/services/worker/src/activities.ts +++ b/services/worker/src/activities.ts @@ -11,7 +11,7 @@ export async function SendTimeEvent ( const SERVICE_NAME = 'time-machine' const queue = getPlatformQueue(SERVICE_NAME, config.QueueRegion) - const producer = queue.getProducer(ctx, topic) + const producer = queue.getProducer(ctx, topic as any) await producer.send(ctx, ws, [data]) } diff --git a/services/worker/src/db.ts b/services/worker/src/db.ts index 577d97aef4..5c32fbd30a 100644 --- a/services/worker/src/db.ts +++ b/services/worker/src/db.ts @@ -91,7 +91,7 @@ export class TimeMachineDB { async deleteEvents (events: DelayedEventRecord[]): Promise { if (events.length === 0) return - await this.client.begin(async (sql: postgres.Sql) => { + await this.client.begin(async (sql) => { for (const event of events) { await sql` DELETE FROM time_machine.delayed_events From 694c07728b8d2c70042532d6ed4418a442c162ae Mon Sep 17 00:00:00 2001 From: Artyom Savchenko Date: Wed, 7 Oct 2026 09:13:17 +0000 Subject: [PATCH 42/55] fix: repair syntax broken by partial revert of assertion hunks guestPermissions.ts and pod-calendar sync.ts lost an opening parenthesis and pod-export converter.ts was reverted incorrectly; restored valid code. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- .../middleware/src/guestPermissions.ts | 3 +- services/calendar/pod-calendar/src/sync.ts | 2 +- services/export/pod-export/src/converter.ts | 33 +++++++------------ 3 files changed, 14 insertions(+), 24 deletions(-) diff --git a/foundations/server/packages/middleware/src/guestPermissions.ts b/foundations/server/packages/middleware/src/guestPermissions.ts index b4779c77de..ac038ee824 100644 --- a/foundations/server/packages/middleware/src/guestPermissions.ts +++ b/foundations/server/packages/middleware/src/guestPermissions.ts @@ -63,8 +63,7 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle const allPermissionIds = new Set>() for (const group of docs as any[]) { if (group.enabled === false) continue - const role = - (group.role as AccountRole | undefined) ?? + const role = ((group.role as AccountRole | undefined) ?? (Array.isArray(group.roles) && group.roles.length > 0 ? (group.roles[0] as AccountRole) : undefined) ?? AccountRole.Guest) as AccountRole const permissions = (group.permissions ?? []) as Ref[] diff --git a/services/calendar/pod-calendar/src/sync.ts b/services/calendar/pod-calendar/src/sync.ts index b998817407..2a5c9a794e 100644 --- a/services/calendar/pod-calendar/src/sync.ts +++ b/services/calendar/pod-calendar/src/sync.ts @@ -290,7 +290,7 @@ export class IncomingSyncManager { if (event.id != null) { const _calendar = this.getEventCalendar(calendarId, event) if (_calendar !== undefined) { - const exists = await this.client.findOne(calendar.class.Event, { + const exists = (await this.client.findOne(calendar.class.Event, { eventId: event.id, calendar: _calendar._id })) as Event | undefined diff --git a/services/export/pod-export/src/converter.ts b/services/export/pod-export/src/converter.ts index a1c0928553..32a951de6a 100644 --- a/services/export/pod-export/src/converter.ts +++ b/services/export/pod-export/src/converter.ts @@ -362,7 +362,7 @@ export class UnifiedConverter { return '' } - const markup = Buffer.concat(buffer as any).toString() + const markup = Buffer.concat(buffer).toString() // const markdown = await markupToMarkdown(markup, '', '') return markup // todo: test it is a markdown } catch (err) { @@ -405,26 +405,17 @@ export class UnifiedConverter { } // Create attachments with getData callbacks - const resolved = attachments.map( - (att): UnifiedAttachment => ({ - id: att._id, - name: att.name, - size: att.size, - contentType: att.type, - getData: async () => { - try { - const buffer = await this.storage.read(this.context, this.wsIds, att.file) - - if (buffer === undefined) { - this.context.warn(`Attachment not found: ${att._id}`) - return Buffer.from([]) - } - - return Buffer.concat(buffer as any) - } catch (err) { - this.context.warn(`Failed to read attachment: ${att._id}`, { - error: err instanceof Error ? err.message : String(err) - }) + const resolved = attachments.map((att): UnifiedAttachment => ({ + id: att._id, + name: att.name, + size: att.size, + contentType: att.type, + getData: async () => { + try { + const buffer = await this.storage.read(this.context, this.wsIds, att.file) + + if (buffer === undefined) { + this.context.warn(`Attachment not found: ${att._id}`) return Buffer.from([]) } From 2ae00df5863d7b7d04a8666354ba665bdcdfec46 Mon Sep 17 00:00:00 2001 From: Artyom Savchenko Date: Wed, 7 Oct 2026 09:21:49 +0000 Subject: [PATCH 43/55] test: replace Jest matcher aliases removed in Jest 30 toThrowError -> toThrow, toBeCalledTimes -> toHaveBeenCalledTimes. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- .../core/src/__tests__/hierarchy.test.ts | 26 +++++++++---------- .../src/markdown/__tests__/textmodel.test.ts | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/foundations/core/packages/core/src/__tests__/hierarchy.test.ts b/foundations/core/packages/core/src/__tests__/hierarchy.test.ts index b6cdf4c507..cf0d467ad4 100644 --- a/foundations/core/packages/core/src/__tests__/hierarchy.test.ts +++ b/foundations/core/packages/core/src/__tests__/hierarchy.test.ts @@ -62,7 +62,7 @@ describe('hierarchy', () => { const data = hierarchy.getClass(core.class.TxCreateDoc) expect(data).toMatchObject((txes.find((p) => p.objectId === core.class.TxCreateDoc) as TxCreateDoc).attributes) const notExistClass = 'class:test.MyClass' as Ref> - expect(() => hierarchy.getClass(notExistClass)).toThrowError('class not found: ' + notExistClass) + expect(() => hierarchy.getClass(notExistClass)).toThrow('class not found: ' + notExistClass) }) it('getDomain', async () => { @@ -78,10 +78,10 @@ describe('hierarchy', () => { const hierarchy = prepare() hierarchy.as(txes[0], test.mixin.TestMixin) - expect(spyProxy).toBeCalledTimes(1) + expect(spyProxy).toHaveBeenCalledTimes(1) hierarchy.as(txes[0], test.mixin.TestMixin) - expect(spyProxy).toBeCalledTimes(1) + expect(spyProxy).toHaveBeenCalledTimes(1) spyProxy.mockReset() spyProxy.mockRestore() @@ -90,20 +90,20 @@ describe('hierarchy', () => { it('should call static methods', async () => { const spyToDoc = jest.spyOn(Proxy, '_toDoc') Hierarchy.toDoc(txes[0]) - expect(spyToDoc).toBeCalledTimes(1) + expect(spyToDoc).toHaveBeenCalledTimes(1) spyToDoc.mockReset() spyToDoc.mockRestore() const spyMixinClass = jest.spyOn(Proxy, '_mixinClass') Hierarchy.mixinClass(txes[0]) - expect(spyMixinClass).toBeCalledTimes(1) + expect(spyMixinClass).toHaveBeenCalledTimes(1) spyMixinClass.mockImplementationOnce(() => undefined).mockImplementationOnce(() => test.mixin.TestMixin) let result = Hierarchy.mixinOrClass(txes[0]) expect(result).toStrictEqual(txes[0]._class) result = Hierarchy.mixinOrClass(txes[0]) expect(result).toStrictEqual(test.mixin.TestMixin) - expect(spyMixinClass).toBeCalledTimes(3) + expect(spyMixinClass).toHaveBeenCalledTimes(3) spyMixinClass.mockReset() spyMixinClass.mockRestore() @@ -364,7 +364,7 @@ describe('hierarchy', () => { expect(withStateInterface._id).toBe(test.interface.WithState) // Should throw for non-existent - expect(() => hierarchy.getClassOrInterface('class:NonExistent' as Ref>)).toThrowError( + expect(() => hierarchy.getClassOrInterface('class:NonExistent' as Ref>)).toThrow( 'class not found: class:NonExistent' ) }) @@ -377,12 +377,12 @@ describe('hierarchy', () => { expect(withStateInterface._id).toBe(test.interface.WithState) // Should throw for non-existent interface - expect(() => hierarchy.getInterface('interface:NonExistent' as any)).toThrowError( + expect(() => hierarchy.getInterface('interface:NonExistent' as any)).toThrow( 'interface not found: interface:NonExistent' ) // Should throw for class (not interface) - expect(() => hierarchy.getInterface(core.class.Space as any)).toThrowError() + expect(() => hierarchy.getInterface(core.class.Space as any)).toThrow() }) it('should handle isMixin correctly', async () => { @@ -525,7 +525,7 @@ describe('hierarchy', () => { const hierarchy = prepare() // Should throw for non-existent attribute - expect(() => hierarchy.getAttribute(core.class.Space, 'nonExistentAttr')).toThrowError( + expect(() => hierarchy.getAttribute(core.class.Space, 'nonExistentAttr')).toThrow( 'attribute not found: nonExistentAttr' ) }) @@ -607,7 +607,7 @@ describe('hierarchy', () => { const hierarchy = prepare() // Should throw for non-existent class - expect(() => hierarchy.getAncestors('class:NonExistent' as any)).toThrowError( + expect(() => hierarchy.getAncestors('class:NonExistent' as any)).toThrow( 'ancestors not found: class:NonExistent' ) }) @@ -616,7 +616,7 @@ describe('hierarchy', () => { const hierarchy = prepare() // Should throw for non-existent class - expect(() => hierarchy.getDescendants('class:NonExistent' as any)).toThrowError( + expect(() => hierarchy.getDescendants('class:NonExistent' as any)).toThrow( 'descendants not found: class:NonExistent' ) }) @@ -625,7 +625,7 @@ describe('hierarchy', () => { const hierarchy = prepare() // Should throw for class without domain - expect(() => hierarchy.getDomain('class:NonExistent' as any)).toThrowError('domain not found: class:NonExistent') + expect(() => hierarchy.getDomain('class:NonExistent' as any)).toThrow('domain not found: class:NonExistent') }) it('should handle static hasMixin correctly', async () => { diff --git a/services/github/pod-github/src/markdown/__tests__/textmodel.test.ts b/services/github/pod-github/src/markdown/__tests__/textmodel.test.ts index 5f87b733c3..3064cb372c 100644 --- a/services/github/pod-github/src/markdown/__tests__/textmodel.test.ts +++ b/services/github/pod-github/src/markdown/__tests__/textmodel.test.ts @@ -869,7 +869,7 @@ A list of closed updated issues` ], type: MarkupNodeType.doc } - expect(() => serializeMessage(node, 'ref://', 'http://')).toThrowError( + expect(() => serializeMessage(node, 'ref://', 'http://')).toThrow( 'Token type `textqwe` not supported by Markdown renderer' ) }) From 309d3fbfb044c7f505d97d2237f9bcd98288a05e Mon Sep 17 00:00:00 2001 From: Artyom Savchenko Date: Wed, 7 Oct 2026 09:28:45 +0000 Subject: [PATCH 44/55] fix: use ISql in account postgres collection for postgres 3.4.9 The ISql import was lost while merging; withRetry and find now accept ISql as in TraceX so TransactionSql is accepted. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- server/account/src/collections/postgres/postgres.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/server/account/src/collections/postgres/postgres.ts b/server/account/src/collections/postgres/postgres.ts index 19fa2e9bbb..fa38a34a55 100644 --- a/server/account/src/collections/postgres/postgres.ts +++ b/server/account/src/collections/postgres/postgres.ts @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. // -import { type Sql, type TransactionSql } from 'postgres' +import { ISql, type Sql } from 'postgres' import { type Data, type Version, @@ -289,7 +289,7 @@ export class PostgresDbCollection< return result[0]?.exists === true } - async find (query: Query, sort?: Sort, limit?: number, client?: Sql): Promise { + async find (query: Query, sort?: Sort, limit?: number, client?: ISql): Promise { const sqlChunks: string[] = [this.buildSelectClause()] const [whereClause, whereValues] = this.buildWhereClause(query) @@ -781,13 +781,13 @@ export class PostgresAccountDB implements AccountDB { } } - withRetry = async (callback: (client: TransactionSql) => Promise): Promise => { + withRetry = async (operation: (client: ISql) => Promise): Promise => { let attempt = 0 let delay = this.retryOptions.initialDelayMs while (true) { try { - return (await this.client.begin(callback)) as T + return (await this.client.begin(async (client) => await operation(client as unknown as ISql))) as T } catch (err: any) { attempt++ From 2346fb2f6e4d765f0c1ebf7ce8d61eed63562b4e Mon Sep 17 00:00:00 2001 From: Artem Savchenko Date: Wed, 7 Oct 2026 16:31:10 +0700 Subject: [PATCH 45/55] Update lock file Signed-off-by: Artem Savchenko --- common/config/rush/pnpm-lock.yaml | 228 ++++++++++++++++++++++++++++-- 1 file changed, 217 insertions(+), 11 deletions(-) diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 640812fe0b..62a3a14b91 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -39771,9 +39771,9 @@ importers: ../../services/mail/pod-mail: dependencies: - '@aws-sdk/client-ses': - specifier: ^3.1107.0 - version: 3.1137.0 + '@aws-sdk/client-sesv2': + specifier: ^3.1121.0 + version: 3.1147.0 '@hcengineering/analytics': specifier: workspace:^0.7.19 version: link:../../../foundations/core/packages/analytics @@ -41823,46 +41823,82 @@ packages: resolution: {integrity: sha512-ppiYnDyy2qCDT3PIV83XJwAi0BhVUZ/jOHxUgC5tlMCaFeKRL8PVVub8A0pUMkF1yvZtzNOp3ClbmTCcIa9w3g==} engines: {node: '>=20.0.0'} - '@aws-sdk/client-ses@3.1137.0': - resolution: {integrity: sha512-Jc1rSvHYW78ElD1z4fXCw0YNF6eExMWvCIFi23OcC0qbsznSXH9utDx98Ula0mWs9UzC0Qk93AqReCl5qXy+Qw==} + '@aws-sdk/client-sesv2@3.1147.0': + resolution: {integrity: sha512-Fv2buzcD/rPu3DA2dRoFlUKPc6vhHTPVr8La+4C+XS+qk3hSvwRPDQOYy1wmb02wCl7MgOkoIkTJZ7NZx2IMPw==} engines: {node: '>=20.0.0'} '@aws-sdk/core@3.978.0': resolution: {integrity: sha512-2yX9LUmxPklVjSGTb8dfnWRJSiFQ3TeH2nn7G1mdKHTfnabzF0+gfrS8rYfLWmZrQ8A3mEcxMJjRc51dL5KWaA==} engines: {node: '>=20.0.0'} + '@aws-sdk/core@3.978.1': + resolution: {integrity: sha512-LbY9aGsEiznDWmUc30Nwv3aIX/+dbwTx8KfS0yOC3NPYMO+O91e6jkT1azf34FwjOndq8/Q+RcVVZz5xnerwdg==} + engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-env@3.972.71': resolution: {integrity: sha512-JN+JHruYZw3GUZB8YGAlDk4wTDPOEAEEdEzj5nS0xodWR4smzHsN7PnK2j6IeOsDIj2aqua5DSbhXl9Gtf90FQ==} engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-env@3.972.72': + resolution: {integrity: sha512-xTKO/FWJPozTIXbozVnVGoNBhaGba8TBcx+KyUjRVeOlXE+dUc7GTR1cLvu0uTdIdmemzaFbqqCshXeZA1fZew==} + engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-http@3.972.73': resolution: {integrity: sha512-uyYYnJOnlis8uQzaYGPd7N1JoioCoNpXgnkXYixsWJXHXgXyYi8WXJSDfofxJeWfQIGWLe2Nwyq60Uc7MZdVOg==} engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-http@3.972.74': + resolution: {integrity: sha512-u91E/hT8f4d1xy0Jl7VG4nVKJ3lxbrZkoBTeSVoJdWBiSEUMwMS/9+e0H/aJVQV//Lt5wuzP+E69v4aRSsNTmw==} + engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-ini@3.973.16': resolution: {integrity: sha512-i++ly+0Uxa+u3ebSSyr0S/3CFhFJDxCXT3+Zj+mW2bXenEx5bKGCdTIKFu39SgXBNhWDjex/8cXUx9MUTMCrTw==} engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-ini@3.973.17': + resolution: {integrity: sha512-ged4KXdBkvIC81bLvNHHuQKdKak/VXhQTR1NWYTTqW0474nlmsxy9O/vlgTIohDDWH3xpBdtVMZRyjb+DnocDA==} + engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-login@3.972.78': resolution: {integrity: sha512-eUtswnXu0+Ii9ieRK+0L7aPFV3Z/dnW2VntJzjBP9xs8s+8p5nBNuymIXtXwZ+5r5+XJP3e32nMkuZ/r0HozEA==} engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-login@3.972.79': + resolution: {integrity: sha512-L+Z85anONJd8MaiuraO4wRxATCdEejBZ3K3eymzWI5JPXa9sOS9CkIm72PBKqXKX+Z9p9NGMX5AIMXm0LEflgw==} + engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-node@3.972.83': resolution: {integrity: sha512-jdso7ejzfRnatxMUZK4S/U6KbaDPCvfIV4XL+IQAPFDBt5rj5Fq595euqlK8Le4lNCMFR9oUpt+1l0aMgaayOQ==} engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-node@3.972.84': + resolution: {integrity: sha512-oHt854odINVwzwsh+c5x69j0ajm4DbqqqVJ+O1ECsCIZeMDAbzFpXItaqP7UZstJj/ATdTk/KFSH0LaNAgV+kA==} + engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-process@3.972.71': resolution: {integrity: sha512-lYmXJa4gvq4xN1lrT5NiP5vIYYKcGWAdj8y+8o6dlcateB5eF3Dn8DtmjjHKfMBrTPAMr2pebIiX/UOj8c1/UA==} engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-process@3.972.72': + resolution: {integrity: sha512-rLIp2xbMjX/k9/od7APpqq1ZgXXnV0pOL1Th3ZsL8Wu0TRtBsDTVS8iPqcfRFcHakFxPvR04OSTv2ka2qOb/2A==} + engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-sso@3.973.15': resolution: {integrity: sha512-6Jhcf4v0pSFdjk1EW2kvzuEBKD+UZ2uNcHUIglKKLndD20YhvkL2kdmDOV5/j4mYuWWwe/a1FQ1aomU86/Cg5Q==} engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-sso@3.973.16': + resolution: {integrity: sha512-IGihaJfFZYacJJr/odqILCoK7W/mvrZ7cuK7ECn3sAu4vLC6u0V8bS7mCGbdugJ8Aum2tnvqmx0F2MRFp2rn9g==} + engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-web-identity@3.972.77': resolution: {integrity: sha512-uylIQSUWpfLuH2LovxEEfwzJGM/SabLOfLMg6YXu/E8jJEKUdpdILCVCQCdFvHyu/7dLJOHPMfrSwduxO56NkQ==} engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-web-identity@3.972.78': + resolution: {integrity: sha512-/y9WvNtlcPBGLR0qc1a+9J/xtYZfVczvLUOuXaVWylzttH7ewsxwHtjmiJSolNrVSDorIxHGHMU61CbonRkmwA==} + engines: {node: '>=20.0.0'} + '@aws-sdk/lib-storage@3.1137.0': resolution: {integrity: sha512-cR6ASsKeOv2WkfFEdSneGHTx6D1aGcHbNTyowznyrxatIftPBdY8YPPAimN7Xed3NvPM+8K5fFSkXaXzuEhxMA==} engines: {node: '>=20.0.0'} @@ -41877,6 +41913,10 @@ packages: resolution: {integrity: sha512-mooq9Q+jLa18VoM7HouczmslZU60iiB0aKc/Ztnq/luIL1ud0z4DnYprLR/ZO1gp331S9tJctM1HZr7u6YKBXQ==} engines: {node: '>=20.0.0'} + '@aws-sdk/nested-clients@3.997.46': + resolution: {integrity: sha512-oRxtBcka/JGHGs9l9p9IVajGoTP8vTPmoAzdHGy4Qcy9P5vPnDf6nhIeM/COQNY9k/OahImTRaLkHftoXvfcmQ==} + engines: {node: '>=20.0.0'} + '@aws-sdk/s3-request-presigner@3.1137.0': resolution: {integrity: sha512-OJQwS0qt5fQMoZSccncZQBLLvSZ3Jw7Lo+E3MYBNNPRnUkvJxn5LeY246K+1QvoL9o8zHpYVPa7YgCL+zf+xtg==} engines: {node: '>=20.0.0'} @@ -41885,18 +41925,34 @@ packages: resolution: {integrity: sha512-L+2xZTye/2T96f3lwCws0Zw6GG2JHZW9e8FpVgGBeeExSKyeoZ6CWRpBml/7DNiK/O26jrgPM9F+Ay8VkgzUWQ==} engines: {node: '>=20.0.0'} + '@aws-sdk/signature-v4-multi-region@3.996.47': + resolution: {integrity: sha512-Zk08macMvQTHzQJCLJVkOlviVoqwYMrpXv4lmLN7b7sAbiMoOK7Go0NYdR5UeF+MW8LIbRmwrNy9u/5VvX1U5g==} + engines: {node: '>=20.0.0'} + '@aws-sdk/token-providers@3.1129.0': resolution: {integrity: sha512-Sbl3rpzQdsG4ZK2zh0JWUYyZPKKorJlVOddA2T0DVbKJFrsW8J6wgnslxxUH04+WaBMr4A1HzJZvZX0xUvkniA==} engines: {node: '>=20.0.0'} + '@aws-sdk/token-providers@3.1138.0': + resolution: {integrity: sha512-GpyAr0DD63YOEmYFM6Df+gJuIgC92MMTiBK4FTKfxii5MJ9ge20epR7LyroulscYlG89J+ZB2ivFDPjvfQhzdw==} + engines: {node: '>=20.0.0'} + '@aws-sdk/types@3.974.5': resolution: {integrity: sha512-LkwLL2BLbC6wNNm4JaH9mbEqBMdOZCct6VAYqhdN4U1xrWM+fUJQEfbHwQgDypapOWTRtlk25akb5afM0P8CIQ==} engines: {node: '>=20.0.0'} + '@aws-sdk/types@3.974.6': + resolution: {integrity: sha512-v/clNZzZnDxGyvpHMOGpJKVXFAExJzUNAAjaWGdcx8QAcXLGwTaOkw33p5SHAi0YAioK32xB3hWwOekRVfmfKg==} + engines: {node: '>=20.0.0'} + '@aws-sdk/xml-builder@3.972.40': resolution: {integrity: sha512-wlFmCIGUlwF4zx/kncw+bmxTQh1HeSJq4mYV/V5cZUSJadDP3kXvGW8Rn21cimj/7y9ju+47oYWXi97vF7czaA==} engines: {node: '>=20.0.0'} + '@aws-sdk/xml-builder@3.972.41': + resolution: {integrity: sha512-ctjVSyCMegrWfXlx6VqzSBFI6UqmQ5ZlnfMhdLIiWmhoH8UAQxSCP5N3OpG7X3k4LnS7ou74C4mt20+bfTW2aQ==} + engines: {node: '>=20.0.0'} + '@aws/lambda-invoke-store@0.3.0': resolution: {integrity: sha512-sl4Bm6yiMNYrZKkqqDFWN0UfnWhlS8ivKxrYl+6t0gCLrqr8y3B2IqZZbFRkfaVVp7C/baApyh71P+LeE1A2sQ==} engines: {node: '>=18.0.0'} @@ -44378,6 +44434,10 @@ packages: resolution: {integrity: sha512-dLcOUxz8YCv1RZUMKq6GbyUf95pLbrqh34bPvpCZ1+CByFF31BEAFewZjsGCnVsZTKdThNENfGyAgk2TJqVwSw==} engines: {node: '>=18.0.0'} + '@smithy/core@3.35.1': + resolution: {integrity: sha512-i4YPS4B6ts7bjn7UwLnGjiZdprOvHvgGobFZsYK3GIY3E5hIqtj0rReU69BcTpGp+fvtraSNXeG1l+jtJvF55w==} + engines: {node: '>=18.0.0'} + '@smithy/credential-provider-imds@4.5.2': resolution: {integrity: sha512-A9uSdn72ozbRUSit0eib0TW7nXuNPlaeM0zcGkJ+nE6tFcSDbnmtwoxbTCFBukVQcszDAyvsd7+rTduPTXpygg==} engines: {node: '>=18.0.0'} @@ -44410,6 +44470,10 @@ packages: resolution: {integrity: sha512-CgB6HHWer/vrKps24ulRIbpcpb7K4xAU7SkZ7YHzBPlwHsvsrCJFEXK421s+cJzX+ZrqtA/TuU5w1HzI7k9N8A==} engines: {node: '>=18.0.0'} + '@smithy/types@4.19.0': + resolution: {integrity: sha512-r7jh49VJxGerfAcTQA6gXcKc+98zOp/tqRwzYjgOE+iSQsP6cEU1hq2QzbuipmP68QtYdY9wKEhiCQZIzHgZ4Q==} + engines: {node: '>=18.0.0'} + '@smithy/types@4.8.1': resolution: {integrity: sha512-N0Zn0OT1zc+NA+UVfkYqQzviRh5ucWwO7mBV3TmHHprMnfcJNfhlPicDkBHi0ewbh+y3evR6cNAW0Raxvb01NA==} engines: {node: '>=18.0.0'} @@ -52301,15 +52365,16 @@ snapshots: '@smithy/types': 4.18.0 tslib: 2.8.1 - '@aws-sdk/client-ses@3.1137.0': + '@aws-sdk/client-sesv2@3.1147.0': dependencies: - '@aws-sdk/core': 3.978.0 - '@aws-sdk/credential-provider-node': 3.972.83 - '@aws-sdk/types': 3.974.5 - '@smithy/core': 3.34.1 + '@aws-sdk/core': 3.978.1 + '@aws-sdk/credential-provider-node': 3.972.84 + '@aws-sdk/signature-v4-multi-region': 3.996.47 + '@aws-sdk/types': 3.974.6 + '@smithy/core': 3.35.1 '@smithy/fetch-http-handler': 5.8.0 '@smithy/node-http-handler': 4.12.1 - '@smithy/types': 4.18.0 + '@smithy/types': 4.19.0 tslib: 2.8.1 '@aws-sdk/core@3.978.0': @@ -52323,6 +52388,17 @@ snapshots: bowser: 2.12.1 tslib: 2.8.1 + '@aws-sdk/core@3.978.1': + dependencies: + '@aws-sdk/types': 3.974.6 + '@aws-sdk/xml-builder': 3.972.41 + '@aws/lambda-invoke-store': 0.3.0 + '@smithy/core': 3.35.1 + '@smithy/signature-v4': 5.7.3 + '@smithy/types': 4.19.0 + bowser: 2.12.1 + tslib: 2.8.1 + '@aws-sdk/credential-provider-env@3.972.71': dependencies: '@aws-sdk/core': 3.978.0 @@ -52331,6 +52407,14 @@ snapshots: '@smithy/types': 4.18.0 tslib: 2.8.1 + '@aws-sdk/credential-provider-env@3.972.72': + dependencies: + '@aws-sdk/core': 3.978.1 + '@aws-sdk/types': 3.974.6 + '@smithy/core': 3.35.1 + '@smithy/types': 4.19.0 + tslib: 2.8.1 + '@aws-sdk/credential-provider-http@3.972.73': dependencies: '@aws-sdk/core': 3.978.0 @@ -52341,6 +52425,16 @@ snapshots: '@smithy/types': 4.18.0 tslib: 2.8.1 + '@aws-sdk/credential-provider-http@3.972.74': + dependencies: + '@aws-sdk/core': 3.978.1 + '@aws-sdk/types': 3.974.6 + '@smithy/core': 3.35.1 + '@smithy/fetch-http-handler': 5.8.0 + '@smithy/node-http-handler': 4.12.1 + '@smithy/types': 4.19.0 + tslib: 2.8.1 + '@aws-sdk/credential-provider-ini@3.973.16': dependencies: '@aws-sdk/core': 3.978.0 @@ -52357,6 +52451,22 @@ snapshots: '@smithy/types': 4.18.0 tslib: 2.8.1 + '@aws-sdk/credential-provider-ini@3.973.17': + dependencies: + '@aws-sdk/core': 3.978.1 + '@aws-sdk/credential-provider-env': 3.972.72 + '@aws-sdk/credential-provider-http': 3.972.74 + '@aws-sdk/credential-provider-login': 3.972.79 + '@aws-sdk/credential-provider-process': 3.972.72 + '@aws-sdk/credential-provider-sso': 3.973.16 + '@aws-sdk/credential-provider-web-identity': 3.972.78 + '@aws-sdk/nested-clients': 3.997.46 + '@aws-sdk/types': 3.974.6 + '@smithy/core': 3.35.1 + '@smithy/credential-provider-imds': 4.5.2 + '@smithy/types': 4.19.0 + tslib: 2.8.1 + '@aws-sdk/credential-provider-login@3.972.78': dependencies: '@aws-sdk/core': 3.978.0 @@ -52366,6 +52476,15 @@ snapshots: '@smithy/types': 4.18.0 tslib: 2.8.1 + '@aws-sdk/credential-provider-login@3.972.79': + dependencies: + '@aws-sdk/core': 3.978.1 + '@aws-sdk/nested-clients': 3.997.46 + '@aws-sdk/types': 3.974.6 + '@smithy/core': 3.35.1 + '@smithy/types': 4.19.0 + tslib: 2.8.1 + '@aws-sdk/credential-provider-node@3.972.83': dependencies: '@aws-sdk/credential-provider-env': 3.972.71 @@ -52380,6 +52499,20 @@ snapshots: '@smithy/types': 4.18.0 tslib: 2.8.1 + '@aws-sdk/credential-provider-node@3.972.84': + dependencies: + '@aws-sdk/credential-provider-env': 3.972.72 + '@aws-sdk/credential-provider-http': 3.972.74 + '@aws-sdk/credential-provider-ini': 3.973.17 + '@aws-sdk/credential-provider-process': 3.972.72 + '@aws-sdk/credential-provider-sso': 3.973.16 + '@aws-sdk/credential-provider-web-identity': 3.972.78 + '@aws-sdk/types': 3.974.6 + '@smithy/core': 3.35.1 + '@smithy/credential-provider-imds': 4.5.2 + '@smithy/types': 4.19.0 + tslib: 2.8.1 + '@aws-sdk/credential-provider-process@3.972.71': dependencies: '@aws-sdk/core': 3.978.0 @@ -52388,6 +52521,14 @@ snapshots: '@smithy/types': 4.18.0 tslib: 2.8.1 + '@aws-sdk/credential-provider-process@3.972.72': + dependencies: + '@aws-sdk/core': 3.978.1 + '@aws-sdk/types': 3.974.6 + '@smithy/core': 3.35.1 + '@smithy/types': 4.19.0 + tslib: 2.8.1 + '@aws-sdk/credential-provider-sso@3.973.15': dependencies: '@aws-sdk/core': 3.978.0 @@ -52398,6 +52539,16 @@ snapshots: '@smithy/types': 4.18.0 tslib: 2.8.1 + '@aws-sdk/credential-provider-sso@3.973.16': + dependencies: + '@aws-sdk/core': 3.978.1 + '@aws-sdk/nested-clients': 3.997.46 + '@aws-sdk/token-providers': 3.1138.0 + '@aws-sdk/types': 3.974.6 + '@smithy/core': 3.35.1 + '@smithy/types': 4.19.0 + tslib: 2.8.1 + '@aws-sdk/credential-provider-web-identity@3.972.77': dependencies: '@aws-sdk/core': 3.978.0 @@ -52407,6 +52558,15 @@ snapshots: '@smithy/types': 4.18.0 tslib: 2.8.1 + '@aws-sdk/credential-provider-web-identity@3.972.78': + dependencies: + '@aws-sdk/core': 3.978.1 + '@aws-sdk/nested-clients': 3.997.46 + '@aws-sdk/types': 3.974.6 + '@smithy/core': 3.35.1 + '@smithy/types': 4.19.0 + tslib: 2.8.1 + '@aws-sdk/lib-storage@3.1137.0(@aws-sdk/client-s3@3.1137.0)': dependencies: '@aws-sdk/client-s3': 3.1137.0 @@ -52437,6 +52597,17 @@ snapshots: '@smithy/types': 4.18.0 tslib: 2.8.1 + '@aws-sdk/nested-clients@3.997.46': + dependencies: + '@aws-sdk/core': 3.978.1 + '@aws-sdk/signature-v4-multi-region': 3.996.47 + '@aws-sdk/types': 3.974.6 + '@smithy/core': 3.35.1 + '@smithy/fetch-http-handler': 5.8.0 + '@smithy/node-http-handler': 4.12.1 + '@smithy/types': 4.19.0 + tslib: 2.8.1 + '@aws-sdk/s3-request-presigner@3.1137.0': dependencies: '@aws-sdk/core': 3.978.0 @@ -52453,6 +52624,13 @@ snapshots: '@smithy/types': 4.18.0 tslib: 2.8.1 + '@aws-sdk/signature-v4-multi-region@3.996.47': + dependencies: + '@aws-sdk/types': 3.974.6 + '@smithy/signature-v4': 5.7.3 + '@smithy/types': 4.19.0 + tslib: 2.8.1 + '@aws-sdk/token-providers@3.1129.0': dependencies: '@aws-sdk/core': 3.978.0 @@ -52462,16 +52640,35 @@ snapshots: '@smithy/types': 4.18.0 tslib: 2.8.1 + '@aws-sdk/token-providers@3.1138.0': + dependencies: + '@aws-sdk/core': 3.978.1 + '@aws-sdk/nested-clients': 3.997.46 + '@aws-sdk/types': 3.974.6 + '@smithy/core': 3.35.1 + '@smithy/types': 4.19.0 + tslib: 2.8.1 + '@aws-sdk/types@3.974.5': dependencies: '@smithy/types': 4.18.0 tslib: 2.8.1 + '@aws-sdk/types@3.974.6': + dependencies: + '@smithy/types': 4.19.0 + tslib: 2.8.1 + '@aws-sdk/xml-builder@3.972.40': dependencies: '@smithy/types': 4.18.0 tslib: 2.8.1 + '@aws-sdk/xml-builder@3.972.41': + dependencies: + '@smithy/types': 4.19.0 + tslib: 2.8.1 + '@aws/lambda-invoke-store@0.3.0': {} '@babel/code-frame@7.27.1': @@ -55321,6 +55518,11 @@ snapshots: '@smithy/types': 4.18.0 tslib: 2.8.1 + '@smithy/core@3.35.1': + dependencies: + '@smithy/types': 4.19.0 + tslib: 2.8.1 + '@smithy/credential-provider-imds@4.5.2': dependencies: '@smithy/core': 3.34.1 @@ -55368,6 +55570,10 @@ snapshots: dependencies: tslib: 2.8.1 + '@smithy/types@4.19.0': + dependencies: + tslib: 2.8.1 + '@smithy/types@4.8.1': dependencies: tslib: 2.8.1 From 34118e72297181e6c85ab818bdb7113b8fa8d33d Mon Sep 17 00:00:00 2001 From: Artyom Savchenko Date: Wed, 7 Oct 2026 09:38:50 +0000 Subject: [PATCH 46/55] chore: disable no-generated-empty-object-type for legacy code Rule entry taken from TraceX 39ed46d086; platform code still uses NonNullable and Data that resolve to {}. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- .../platform-rig/profiles/legacy-compatibility-rules.json | 1 + 1 file changed, 1 insertion(+) diff --git a/foundations/utils/packages/platform-rig/profiles/legacy-compatibility-rules.json b/foundations/utils/packages/platform-rig/profiles/legacy-compatibility-rules.json index 2c2f34dbb2..e80da3a213 100644 --- a/foundations/utils/packages/platform-rig/profiles/legacy-compatibility-rules.json +++ b/foundations/utils/packages/platform-rig/profiles/legacy-compatibility-rules.json @@ -17,6 +17,7 @@ "@typescript-eslint/no-empty-function", "@typescript-eslint/no-empty-object-type", "@typescript-eslint/no-explicit-any", + "@typescript-eslint/no-generated-empty-object-type", "@typescript-eslint/no-import-type-side-effects", "@typescript-eslint/no-inferrable-types", "@typescript-eslint/no-magic-numbers", From 0cc8c5df0a3d7dab2d347300867f09bcd576f44d Mon Sep 17 00:00:00 2001 From: Artyom Savchenko Date: Wed, 7 Oct 2026 09:55:29 +0000 Subject: [PATCH 47/55] chore: remove unused imports flagged by ESLint 9 Files reverted to platform code during the lint-fix port kept imports that typescript-eslint 8 reports as unused. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- models/document/src/index.ts | 2 +- models/task/src/index.ts | 7 +------ packages/ui/src/location.ts | 4 ++-- plugins/controlled-documents-resources/src/utils.ts | 1 - .../src/components/extension/reference.ts | 2 +- pods/server/src/server_http.ts | 1 - server-plugins/activity-resources/src/references.ts | 2 +- server/account/src/operations.ts | 2 +- services/gmail/pod-gmail/src/gmail.ts | 1 - 9 files changed, 7 insertions(+), 15 deletions(-) diff --git a/models/document/src/index.ts b/models/document/src/index.ts index 380a7efffd..29ae90faf1 100644 --- a/models/document/src/index.ts +++ b/models/document/src/index.ts @@ -50,7 +50,7 @@ import { createPublicLinkAction } from '@hcengineering/model-guest' import { generateClassNotificationTypes } from '@hcengineering/model-notification' import presentation from '@hcengineering/model-presentation' import tracker from '@hcengineering/model-tracker' -import view, { actionTemplates, createAction } from '@hcengineering/model-view' +import view, { createAction } from '@hcengineering/model-view' import workbench from '@hcengineering/model-workbench' import notification from '@hcengineering/notification' import { type Asset, getEmbeddedLabel } from '@hcengineering/platform' diff --git a/models/task/src/index.ts b/models/task/src/index.ts index 9259c85798..acc6091160 100644 --- a/models/task/src/index.ts +++ b/models/task/src/index.ts @@ -54,12 +54,7 @@ import core, { TTypedSpace } from '@hcengineering/model-core' import { createPublicLinkAction } from '@hcengineering/model-guest' -import view, { - classPresenter, - createAction, - template, - actionTemplates as viewTemplates -} from '@hcengineering/model-view' +import view, { classPresenter, createAction, template } from '@hcengineering/model-view' import { getEmbeddedLabel, type Asset, type IntlString, type Resource } from '@hcengineering/platform' import setting from '@hcengineering/setting' import tags from '@hcengineering/tags' diff --git a/packages/ui/src/location.ts b/packages/ui/src/location.ts index 6db8076650..18a4f362da 100644 --- a/packages/ui/src/location.ts +++ b/packages/ui/src/location.ts @@ -14,7 +14,7 @@ // import { Analytics } from '@hcengineering/analytics' -import { clone, type Ref, type Space } from '@hcengineering/core' +import { clone } from '@hcengineering/core' import { type Plugin } from '@hcengineering/platform' import { derived, get, writable } from 'svelte/store' @@ -245,7 +245,7 @@ export function restoreLocation (loc: PlatformLocation, app: Plugin): void { const newLocation: PlatformLocation = JSON.parse(last) if (newLocation.path[1] === loc.path[1] && newLocation.path[3] != null) { - loc.path[3] = newLocation.path[3] as Ref + loc.path[3] = newLocation.path[3] loc.path[4] = newLocation.path[4] if (loc.path[4] == null) { loc.path.length = 4 diff --git a/plugins/controlled-documents-resources/src/utils.ts b/plugins/controlled-documents-resources/src/utils.ts index d7cc3609d1..538c54228a 100644 --- a/plugins/controlled-documents-resources/src/utils.ts +++ b/plugins/controlled-documents-resources/src/utils.ts @@ -34,7 +34,6 @@ import documents, { type DocumentValidationState, ProjectDocumentTree, compareDocumentVersions, - emptyBundle, getDocumentName, getFirstRank, transferDocuments diff --git a/plugins/text-editor-resources/src/components/extension/reference.ts b/plugins/text-editor-resources/src/components/extension/reference.ts index b4adc49b02..d657c99f74 100644 --- a/plugins/text-editor-resources/src/components/extension/reference.ts +++ b/plugins/text-editor-resources/src/components/extension/reference.ts @@ -24,7 +24,7 @@ import Suggestion, { type SuggestionKeyDownProps, type SuggestionOptions, type S import { type Blob, type Class, type Doc, type Ref } from '@hcengineering/core' import { getMetadata, getResource, translate } from '@hcengineering/platform' import presentation, { createQuery, getBlobRef, getClient, MessageBox } from '@hcengineering/presentation' -import view, { type ObjectTooltip, type ReferenceObjectProvider } from '@hcengineering/view' +import view from '@hcengineering/view' import activity, { type ActivityMessage } from '@hcengineering/activity' import contact from '@hcengineering/contact' import { parseLocation, showPopup, tooltip, type LabelAndProps, type Location, fromCodePoint } from '@hcengineering/ui' diff --git a/pods/server/src/server_http.ts b/pods/server/src/server_http.ts index 8c0b66bd47..4934d907f3 100644 --- a/pods/server/src/server_http.ts +++ b/pods/server/src/server_http.ts @@ -34,7 +34,6 @@ import { doSessionOp, getFile, getFileRange, - getStatistics, processRequest, wipeStatistics, type BlobResponse, diff --git a/server-plugins/activity-resources/src/references.ts b/server-plugins/activity-resources/src/references.ts index 8d4251487a..227c57e65a 100644 --- a/server-plugins/activity-resources/src/references.ts +++ b/server-plugins/activity-resources/src/references.ts @@ -48,7 +48,7 @@ import { getReceiversInfo, type NotificationProviderControl } from '@hcengineering/server-notification-resources' -import { areEqualJson, extractReferences, jsonToMarkup, markupToJSON } from '@hcengineering/text-core' +import { areEqualJson, jsonToMarkup, markupToJSON } from '@hcengineering/text-core' export function isDocMentioned (doc: Ref, content: string): boolean { const references = [] diff --git a/server/account/src/operations.ts b/server/account/src/operations.ts index 494459b229..b4b8993aa9 100644 --- a/server/account/src/operations.ts +++ b/server/account/src/operations.ts @@ -48,7 +48,7 @@ import { import { randomUUID } from 'crypto' import { isAdminEmail } from './admin' import { accountPlugin } from './plugin' -import { type AccountServiceMethods, getServiceMethods } from './serviceOperations' +import { type AccountServiceMethods } from './serviceOperations' import { AccountEventType, type MailboxSecret, diff --git a/services/gmail/pod-gmail/src/gmail.ts b/services/gmail/pod-gmail/src/gmail.ts index 2c9a9e8313..1513b9183c 100644 --- a/services/gmail/pod-gmail/src/gmail.ts +++ b/services/gmail/pod-gmail/src/gmail.ts @@ -39,7 +39,6 @@ import { MailRecipient, type SyncOptions, getChannel, - getMailHeaders, isSyncedMessage } from '@hcengineering/mail-common' import chat from '@hcengineering/chat' From bc4ba6904b2263b06356443338ddd7522f65f8a2 Mon Sep 17 00:00:00 2001 From: Artyom Savchenko Date: Wed, 7 Oct 2026 10:16:00 +0000 Subject: [PATCH 48/55] fix: satisfy new ESLint rules in query and text-markdown query: iterate Object.keys instead of for-in over lookup._id (as in TraceX). text-markdown: keep existing serializer behaviour, suppress the secure-coding sanitization/ReDoS rules locally with a reason. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01HPLCg6hGQ7M1o7rwY3mZEU --- foundations/core/packages/query/src/index.ts | 2 +- foundations/core/packages/text-markdown/src/serializer.ts | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/foundations/core/packages/query/src/index.ts b/foundations/core/packages/query/src/index.ts index 4ad4e1d9f4..f082461d44 100644 --- a/foundations/core/packages/query/src/index.ts +++ b/foundations/core/packages/query/src/index.ts @@ -1433,7 +1433,7 @@ export class LiveQuery implements WithTx, Client { const result: [string, string, string?][] = [] const hierarchy = this.client.getHierarchy() if (lookup._id !== undefined) { - for (const key in lookup._id) { + for (const key of Object.keys(lookup._id)) { const value = (lookup._id as any)[key] const [valueClass, reverseLookupKey] = Array.isArray(value) ? value : [value, 'attachedTo'] const clazz = hierarchy.isMixin(valueClass) ? hierarchy.getBaseClass(valueClass) : valueClass diff --git a/foundations/core/packages/text-markdown/src/serializer.ts b/foundations/core/packages/text-markdown/src/serializer.ts index dd204f3d79..09daf1a478 100644 --- a/foundations/core/packages/text-markdown/src/serializer.ts +++ b/foundations/core/packages/text-markdown/src/serializer.ts @@ -172,6 +172,7 @@ export const storeNodes: Record = { state.write('') }, + /* eslint-disable secure-coding/no-improper-sanitization -- values are escaped with state.esc / state.quote, the rule cannot follow them */ image: (state, node) => { const attrs = nodeAttrs(node) if (attrs.token != null && attrs['file-id'] != null) { @@ -224,6 +225,7 @@ export const storeNodes: Record = { } } }, + /* eslint-enable secure-coding/no-improper-sanitization */ reference: (state, node) => { const attrs = nodeAttrs(node) let url = state.refUrl @@ -715,6 +717,7 @@ export class MarkdownState implements IState { // leading and trailing accordingly. const node = state?.node if (this.isText(node) && this.isMarksHasExpelEnclosingWhitespace(state)) { + // eslint-disable-next-line secure-coding/no-redos-vulnerable-regex -- text nodes are short, behaviour kept as is const match = /^(\s*)(.*?)(\s*)$/m.exec(node?.text ?? '') if (match !== null) { const [leadMatch, innerMatch, trailMatch] = [match[1], match[2], match[3]] From 77133e7154a561bca0656a707f0af3d6b71887d0 Mon Sep 17 00:00:00 2001 From: Artem Savchenko Date: Wed, 7 Oct 2026 18:15:00 +0700 Subject: [PATCH 49/55] Formatting and validation fixes Signed-off-by: Artem Savchenko --- .../packages/account-client/src/client.ts | 2 +- .../core/packages/api-client/src/client.ts | 26 +++--- .../core/packages/api-client/src/index.ts | 2 +- .../packages/api-client/src/rest/adapter.ts | 10 +- .../core/packages/api-client/src/rest/rest.ts | 24 ++--- .../core/packages/api-client/src/rest/tx.ts | 10 +- .../packages/api-client/src/storage/client.ts | 2 +- .../core/packages/api-client/src/types.ts | 16 ++-- .../src/__tests__/connection.test.ts | 4 +- .../src/__tests__/integration.test.ts | 2 +- .../client-resources/src/connection.ts | 4 +- .../client/src/__tests__/client.test.ts | 2 +- .../collaborator-client/src/client.ts | 2 +- .../core/src/__tests__/client.test.ts | 3 +- .../core/src/__tests__/hierarchy.test.ts | 18 ++-- .../packages/core/src/__tests__/memdb.test.ts | 10 +- foundations/core/packages/core/src/client.ts | 15 +-- .../core/packages/core/src/hierarchy.ts | 42 ++++----- foundations/core/packages/core/src/memdb.ts | 22 ++--- .../core/packages/core/src/operations.ts | 43 ++++----- foundations/core/packages/core/src/storage.ts | 20 ++-- foundations/core/packages/core/src/tx.ts | 32 +++---- foundations/core/packages/core/src/utils.ts | 14 +-- .../packages/hulylake-client/src/client.ts | 4 +- .../measurements-otlp/src/telemetry.ts | 4 +- .../src/__tests__/context.test.ts | 2 +- .../src/__tests__/performance.test.ts | 6 +- .../core/packages/measurements/src/context.ts | 64 ++++++------- .../core/packages/measurements/src/metrics.ts | 38 ++++---- foundations/core/packages/model/src/dsl.ts | 4 +- .../platform/src/__tests__/i18n.test.ts | 2 +- .../core/packages/platform/src/event.ts | 10 +- .../core/packages/platform/src/i18n.ts | 20 ++-- .../core/packages/platform/src/ident.ts | 2 +- .../core/packages/platform/src/metadata.ts | 6 +- .../core/packages/platform/src/platform.ts | 20 ++-- .../core/packages/platform/src/resource.ts | 16 ++-- .../core/packages/platform/src/status.ts | 20 ++-- .../core/packages/platform/src/testUtils.ts | 4 +- .../core/packages/postgres-base/src/index.ts | 58 ++++++------ .../query/src/__tests__/connection.ts | 24 ++--- .../query/src/__tests__/query.test.ts | 2 +- foundations/core/packages/query/src/index.ts | 30 +++--- foundations/core/packages/query/src/refs.ts | 2 +- .../core/packages/query/src/results.ts | 4 +- .../retry/src/__test__/decorator.test.ts | 26 +++--- .../packages/retry/src/__test__/retry.test.ts | 2 +- .../retry/src/__test__/retryable.test.ts | 2 +- .../core/packages/retry/src/decorator.ts | 2 +- foundations/core/packages/retry/src/delay.ts | 22 ++--- foundations/core/packages/retry/src/retry.ts | 4 +- foundations/core/packages/rpc/src/rpc.ts | 4 +- .../src/__tests__/markdown.test.ts | 88 +++++++++--------- .../core/packages/text/src/marks/colors.ts | 32 +++---- .../text/src/markup/__tests__/utils.test.ts | 4 +- .../packages/collaboration/src/storage.ts | 2 +- .../core/src/__tests__/shared-integration.ts | 6 +- foundations/server/packages/core/src/base.ts | 8 +- .../packages/core/src/benchmark/index.ts | 2 +- foundations/server/packages/core/src/index.ts | 4 +- foundations/server/packages/core/src/mem.ts | 14 +-- .../server/packages/core/src/pagination.ts | 2 +- .../server/packages/core/src/pipeline.ts | 6 +- .../packages/core/src/queue/dummyQueue.ts | 4 +- foundations/server/packages/core/src/types.ts | 3 +- foundations/server/packages/core/src/utils.ts | 22 ++--- .../server/packages/datalake/src/client.ts | 2 +- .../server/packages/datalake/src/index.ts | 2 +- .../server/packages/kafka/src/index.ts | 16 +++- .../packages/middleware/src/domainFind.ts | 4 +- .../packages/middleware/src/findSecurity.ts | 2 +- .../packages/middleware/src/fulltext.ts | 8 +- .../middleware/src/guestPermissions.ts | 16 ++-- .../packages/middleware/src/liveQuery.ts | 4 +- .../server/packages/middleware/src/lookup.ts | 6 +- .../packages/middleware/src/lowLevel.ts | 8 +- .../server/packages/middleware/src/model.ts | 2 +- .../packages/middleware/src/normalizeTx.ts | 2 +- .../server/packages/middleware/src/private.ts | 4 +- .../packages/middleware/src/queryJoin.ts | 6 +- .../middleware/src/spacePermissions.ts | 3 +- .../packages/middleware/src/spaceSecurity.ts | 9 +- .../src/tests/guestPermissions.test.ts | 93 +++++++------------ .../src/tests/liveQuery.race.test.ts | 4 +- .../middleware/src/tests/txOrdering.test.ts | 14 +-- .../packages/middleware/src/transient.ts | 2 +- .../packages/middleware/src/triggers.ts | 2 +- .../packages/middleware/src/versioning.ts | 2 +- .../server/packages/mongo/src/storage.ts | 74 +++++++-------- .../server/packages/mongo/src/utils.ts | 6 +- .../server/packages/postgres/src/storage.ts | 66 ++++++------- .../server/packages/postgres/src/utils.ts | 20 ++-- .../packages/server-storage/src/fallback.ts | 7 +- .../src/tests/aggregator.spec.ts | 2 +- .../server-storage/src/tests/memAdapters.ts | 2 +- .../src/__tests__/sessionManager.test.ts | 76 +++++++-------- .../server/packages/server/src/client.ts | 24 ++--- .../packages/server/src/sessionManager.ts | 6 +- .../server/packages/server/src/workspace.ts | 2 +- models/chunter/src/migration.ts | 2 +- models/core/src/core.ts | 52 +++++------ models/core/src/migration.ts | 10 +- models/core/src/security.ts | 50 +++++----- models/document/src/index.ts | 2 +- models/notification/src/index.ts | 48 +++++----- models/notification/src/migration.ts | 8 +- models/setting/src/index.ts | 2 +- models/task/src/index.ts | 7 +- .../gantt/src/__tests__/pan-target.test.ts | 2 +- .../src/__tests__/sidebar-columns.test.ts | 2 +- .../src/__tests__/tree-expand-store.test.ts | 4 +- .../src/__tests__/y-viewport-perf.test.ts | 2 +- packages/gantt/src/breakpoint.ts | 8 +- packages/gantt/src/cascade-popup-layout.ts | 2 +- packages/gantt/src/cascade-token.ts | 2 +- packages/gantt/src/confirm-gate.ts | 2 +- packages/gantt/src/cp-scheduler.ts | 8 +- packages/gantt/src/drag-controller.ts | 16 ++-- packages/gantt/src/drag-state.ts | 4 +- packages/gantt/src/flash-store.ts | 10 +- packages/gantt/src/gantt-view-options.ts | 14 +-- packages/gantt/src/index.ts | 2 +- packages/gantt/src/long-press.ts | 12 +-- packages/gantt/src/pan-target.ts | 4 +- packages/gantt/src/pinch-zoom.ts | 24 ++--- packages/gantt/src/pointer-classify.ts | 2 +- packages/gantt/src/sidebar-columns.ts | 8 +- packages/gantt/src/time-scale.ts | 8 +- packages/gantt/src/toolbar-overflow.ts | 2 +- packages/gantt/src/tree-expand-store.ts | 8 +- packages/gantt/src/types.ts | 26 +++--- packages/gantt/src/viewport.ts | 12 +-- packages/gantt/src/working-days.ts | 30 +++--- packages/gantt/src/y-viewport.ts | 10 +- packages/gantt/src/zoom-dropdown.ts | 6 +- packages/gantt/src/zoom.ts | 12 +-- packages/importer/src/huly/cards.ts | 6 +- packages/importer/src/importer/builder.ts | 2 +- packages/importer/src/importer/importer.ts | 8 +- .../importer/src/importer/preprocessor.ts | 2 +- packages/integration-client/src/client.ts | 4 +- packages/integration-client/src/events.ts | 4 +- packages/kvs-client/src/client.ts | 6 +- .../src/___tests___/workspaceIdentity.test.ts | 6 +- .../src/__mocks__/svelte-store.ts | 8 +- packages/presentation/src/__mocks__/svelte.ts | 4 +- packages/presentation/src/communication.ts | 12 +-- .../src/components/DocPopup.svelte | 16 ++-- .../src/components/ObjectPopup.svelte | 2 +- packages/presentation/src/configuration.ts | 2 +- packages/presentation/src/drafts.ts | 2 +- packages/presentation/src/drawingUtils.ts | 11 ++- packages/presentation/src/index.ts | 4 +- packages/presentation/src/pipeline.ts | 70 +++++++------- packages/presentation/src/utils.ts | 20 ++-- packages/ui/src/colors.ts | 4 +- .../ui/src/components/FilterButton.svelte | 8 +- .../src/components/FilterCategoryPopup.svelte | 14 +-- packages/ui/src/components/Header.svelte | 2 +- packages/ui/src/components/ListView.svelte | 6 +- .../ui/src/components/ModeSelector.svelte | 16 ++-- .../src/components/SearchInputAdvanced.svelte | 6 +- .../ui/src/components/internal/Root.svelte | 10 +- packages/ui/src/types.ts | 2 +- packages/ui/src/utils.ts | 34 +++---- .../ActivityMessageTemplate.svelte | 16 ++-- .../DocUpdateMessageHeader.svelte | 2 +- plugins/activity/src/index.ts | 14 +-- plugins/ai-bot/src/index.ts | 2 +- .../src/stores/largestFiles.ts | 4 +- plugins/billing-resources/src/utils.ts | 3 +- plugins/bitrix/src/sync.ts | 4 +- .../src/components/CalendarSelector.svelte | 4 +- .../src/components/CalendarSettings.svelte | 8 +- .../src/components/VisibilityEditor.svelte | 4 +- .../components/EditChannelSettingsTab.svelte | 6 +- .../src/components/chat/ChannelAside.svelte | 10 +- plugins/chunter/src/index.ts | 32 +++---- .../communication-resources/src/actions.ts | 2 +- .../CreateCardFromMessagePopup.svelte | 6 +- .../src/components/CreateDirect.svelte | 4 +- .../src/components/DateSeparator.svelte | 2 +- .../src/components/DirectIcon.svelte | 2 +- .../src/components/MessagePreview.svelte | 4 +- .../src/components/MessagesList.svelte | 62 ++++++------- .../src/components/MessagesSection.svelte | 8 +- .../src/components/ReactionsList.svelte | 2 +- .../src/components/TextInput.svelte | 10 +- .../src/components/TypingPresenter.svelte | 4 +- .../src/components/input/MessageInput.svelte | 42 ++++----- .../message/MessageActionsPanel.svelte | 4 +- .../src/components/message/MessageBody.svelte | 2 +- .../message/MessageContentViewer.svelte | 2 +- .../components/message/MessageFooter.svelte | 8 +- .../message/MessagePresenter.svelte | 12 +-- .../message/MessagesGroupPresenter.svelte | 6 +- .../message/OneRowMessageBody.svelte | 2 +- .../ActivityCollaborativeContentViewer.svelte | 2 +- .../src/components/poll/CreatePoll.svelte | 16 ++-- .../poll/PollOptionPresenter.svelte | 6 +- .../src/components/poll/PollPresenter.svelte | 18 ++-- .../src/components/poll/PollResults.svelte | 4 +- .../preview/ExtendedMessagePreview.svelte | 2 +- .../components/preview/PreviewTemplate.svelte | 2 +- .../thread/ThreadCollaborators.svelte | 2 +- .../components/thread/ThreadLastReply.svelte | 2 +- plugins/communication-resources/src/utils.ts | 3 +- plugins/communication/src/index.ts | 2 +- plugins/communication/src/types.ts | 4 +- .../src/components/AccountArrayEditor.svelte | 4 +- .../src/components/ChannelsEditor.svelte | 6 +- .../src/components/ChannelsPresenter.svelte | 2 +- .../src/components/ContactList.svelte | 2 +- .../src/components/EditPerson.svelte | 8 +- .../src/components/SpaceMembers.svelte | 8 +- .../src/components/TranslationSettings.svelte | 4 +- .../src/components/UserBoxList.svelte | 4 +- plugins/contact-resources/src/index.ts | 2 +- plugins/contact-resources/src/utils.ts | 12 +-- plugins/contact/src/types.ts | 9 +- plugins/contact/src/utils.ts | 2 +- .../src/utils.ts | 1 + plugins/controlled-documents/src/docutils.ts | 30 +++--- plugins/controlled-documents/src/utils.ts | 2 +- .../src/formatter/utils.ts | 2 +- .../src/markdown/tableBuilder.ts | 4 +- .../src/model/headerGenerator.ts | 4 +- plugins/converter/src/plugin.ts | 4 +- plugins/devmodel-resources/src/index.ts | 4 +- plugins/emoji/src/utils.ts | 4 +- .../src/components/ExportSettings.svelte | 2 +- .../src/components/Form.svelte | 8 +- .../src/components/LoginApp.svelte | 4 +- .../src/components/LoginAppBase.svelte | 2 +- .../src/components/LoginForm.svelte | 4 +- .../src/components/SelectWorkspace.svelte | 8 +- .../src/components/SignupForm.svelte | 2 +- .../src/components/Settings.svelte | 8 +- .../src/components/CollaboratorEditor.svelte | 2 +- plugins/notification-resources/src/utils.ts | 12 +-- plugins/notification/src/index.ts | 4 +- .../src/components/DOCXViewer.svelte | 2 +- plugins/process/src/index.ts | 4 +- .../CreateProductVersion.svelte | 12 +-- .../product-version/EditProductVersion.svelte | 2 +- plugins/questions/src/doc-types/base.ts | 6 +- .../src/components/ApiDocsSection.svelte | 2 +- .../src/components/ApiTokenCreatePopup.svelte | 6 +- .../src/components/ApiTokens.svelte | 10 +- .../src/components/AssociationEditor.svelte | 10 +- .../src/components/Backup.svelte | 44 ++++----- .../src/components/ClassAttributesList.svelte | 30 +++--- .../src/components/CreateAttribute.svelte | 8 +- .../components/CreateAttributePopup.svelte | 8 +- .../src/components/CreateRelation.svelte | 6 +- .../src/components/EditAttribute.svelte | 16 ++-- .../src/components/EditRelation.svelte | 4 +- .../src/components/General.svelte | 14 +-- .../GuestPermissionsSettings.svelte | 40 ++++---- .../src/components/InviteSetting.svelte | 18 ++-- .../src/components/Members.svelte | 4 +- .../src/components/OfficeSettings.svelte | 4 +- .../src/components/Profile.svelte | 6 +- .../src/components/RelationSetting.svelte | 12 +-- .../src/components/Spaces.svelte | 2 +- .../src/components/TwoFactorSettings.svelte | 6 +- .../src/components/UserRoleSelect.svelte | 2 +- .../components/WorkspaceIdentityColor.svelte | 6 +- .../WorkspacePermissionEditor.svelte | 4 +- .../src/components/WorkspaceSettings.svelte | 4 +- .../socialIds/SocialIdsEditor.svelte | 4 +- .../components/typeEditors/RefEditor.svelte | 2 +- .../src/inviteSettingsUtils.ts | 10 +- plugins/setting/src/index.ts | 2 +- .../src/components/extension/embed/embed.ts | 4 +- .../extension/embed/providers/drive.ts | 2 +- .../src/components/extension/mathematics.ts | 2 +- .../extension/qms/qmsInlineCommentMark.ts | 4 +- .../src/components/extension/reference.ts | 10 +- .../extension/shortcuts/imageUpload.ts | 2 +- .../extension/shortcuts/tableMetadata.ts | 1 + .../decorations/tableDragMarkerDecoration.ts | 6 +- .../src/components/extension/todo/todo.ts | 2 +- .../src/components/extensions.ts | 8 +- plugins/text-editor-resources/src/index.ts | 2 +- .../src/components/Settings.svelte | 2 +- .../src/__tests__/objectIterator.test.ts | 2 +- .../src/__tests__/query-builder.test.ts | 6 +- plugins/view-resources/src/actionImpl.ts | 16 ++-- .../src/components/ArrayEditor.svelte | 2 +- .../src/components/ArrayEditorPopup.svelte | 2 +- .../src/components/ClassAttributeBar.svelte | 4 +- .../src/components/EditBoxPopup.svelte | 2 +- .../src/components/NumberEditor.svelte | 2 +- .../src/components/RelationEditor.svelte | 12 +-- .../components/RelationsSelectorPopup.svelte | 2 +- .../src/components/RelationshipTable.svelte | 44 ++++----- .../RelationshipTableBrowser.svelte | 2 +- .../src/components/SearchEmptyState.svelte | 2 +- .../src/components/SpaceHeader.svelte | 2 +- .../src/components/StringEditor.svelte | 2 +- .../src/components/TableBrowser.svelte | 2 +- .../src/components/ValueSelector.svelte | 14 +-- .../src/components/ViewOptions.svelte | 4 +- .../src/components/ViewOptionsButton.svelte | 6 +- .../src/components/ViewletSetting.svelte | 42 ++++----- .../components/ViewletSettingButton.svelte | 6 +- .../components/ViewletsSettingButton.svelte | 2 +- .../src/components/filter/FilterBar.svelte | 10 +- .../src/components/filter/FilterButton.svelte | 10 +- .../filter/InlineFilterChips.svelte | 8 +- .../src/components/list/List.svelte | 10 +- .../masterDetail/MasterDetailBrowser.svelte | 2 +- .../masterDetail/MasterDetailView.svelte | 4 +- .../relation/AddRelationPopup.svelte | 6 +- .../src/filter/query-builder.ts | 4 +- plugins/view-resources/src/middleware.ts | 6 +- plugins/view-resources/src/utils.ts | 26 +++--- plugins/view-resources/src/viewletUtils.ts | 2 +- plugins/view/src/types.ts | 42 ++++----- .../src/components/Applications.svelte | 6 +- .../src/components/SelectWorkspaceMenu.svelte | 16 ++-- .../src/components/Workbench.svelte | 32 +++---- plugins/workbench/src/types.ts | 2 +- pods/media/src/client.ts | 10 +- pods/preview/src/server.ts | 6 +- pods/server/src/server_http.ts | 1 + .../activity-resources/src/index.ts | 6 +- .../activity-resources/src/references.ts | 15 ++- server-plugins/activity/src/index.ts | 2 +- server-plugins/ai-bot/src/index.ts | 2 +- .../calendar-resources/src/index.ts | 22 ++--- server-plugins/gmail-resources/src/index.ts | 2 +- server-plugins/hr-resources/src/index.ts | 2 +- server-plugins/love-resources/src/index.ts | 2 +- .../src/__tests__/push.test.ts | 2 +- .../notification-resources/src/index.ts | 16 ++-- server-plugins/notification/src/index.ts | 18 ++-- server-plugins/process-resources/src/index.ts | 2 +- server-plugins/process/src/index.ts | 2 +- server-plugins/time/src/index.ts | 2 +- .../dependency-shift-trigger.test.ts | 2 - server-plugins/tracker-resources/src/index.ts | 19 +--- .../account/src/__tests__/operations.test.ts | 20 ++-- server/account/src/__tests__/utils.test.ts | 5 +- server/account/src/collections/mongo.ts | 7 +- .../src/collections/postgres/postgres.ts | 9 +- server/account/src/operations.ts | 70 +++++++------- server/account/src/serviceOperations.ts | 2 +- server/account/src/utils.ts | 14 +-- server/indexer/src/indexer/indexer.ts | 6 +- server/server-pipeline/src/blobStorage.ts | 12 +-- server/tool/src/index.ts | 2 +- server/tool/src/initializer.ts | 20 ++-- server/tool/src/upgrade.ts | 18 ++-- .../pod-analytics-collector/src/server.ts | 2 +- .../billing/pod-billing/src/db/postgres.ts | 2 +- services/calendar/pod-calendar/src/sync.ts | 8 +- .../datalake/pod-datalake/src/datalake/db.ts | 2 +- services/gmail/pod-gmail/src/gmail.ts | 1 + services/love/src/workspaceClient.ts | 2 +- .../mail-common/src/__tests__/thread.test.ts | 2 +- services/mail/mail-common/src/utils.ts | 1 + .../src/__tests__/worker.test.ts | 4 +- .../pod-events-processor/src/worker.ts | 10 +- .../stripe/__tests__/provider.test.ts | 2 +- .../stripe/__tests__/webhook.test.ts | 2 +- services/print/pod-print/src/preview.ts | 2 +- services/print/pod-print/src/server.ts | 6 +- services/rekoni/src/extractors/index.ts | 2 +- services/rekoni/src/server.ts | 2 +- .../pod-telegram-bot/src/limiter.ts | 4 +- .../pod-telegram-bot/src/workspace.ts | 4 +- services/telegram/pod-telegram/src/config.ts | 2 +- .../telegram/pod-telegram/src/telegram.ts | 2 +- services/telegram/pod-telegram/src/utils.ts | 4 +- .../telegram/pod-telegram/src/workspace.ts | 2 +- services/translate/src/utils.ts | 36 +++---- services/worker/src/activities.ts | 2 +- 379 files changed, 1904 insertions(+), 1905 deletions(-) diff --git a/foundations/core/packages/account-client/src/client.ts b/foundations/core/packages/account-client/src/client.ts index bc3aac4aec..21d8ab109d 100644 --- a/foundations/core/packages/account-client/src/client.ts +++ b/foundations/core/packages/account-client/src/client.ts @@ -327,7 +327,7 @@ class AccountClientImpl implements AccountClient { })() } - private async _rpc(request: Request): Promise { + private async _rpc (request: Request): Promise { const timezone = getClientTimezone() const meta: Record = timezone !== undefined ? { 'x-timezone': timezone } : {} const response = await fetch(this.url, { diff --git a/foundations/core/packages/api-client/src/client.ts b/foundations/core/packages/api-client/src/client.ts index cc52f7035c..9caf0cac73 100644 --- a/foundations/core/packages/api-client/src/client.ts +++ b/foundations/core/packages/api-client/src/client.ts @@ -143,7 +143,7 @@ class PlatformClientImpl implements PlatformClient { return this.account } - async findOne( + async findOne ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -151,7 +151,7 @@ class PlatformClientImpl implements PlatformClient { return await this.client.findOne(_class, query, options) } - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -159,7 +159,7 @@ class PlatformClientImpl implements PlatformClient { return await this.client.findAll(_class, query, options) } - async findAllPage( + async findAllPage ( _class: Ref>, query: DocumentQuery, options: FindPageOptions @@ -167,7 +167,7 @@ class PlatformClientImpl implements PlatformClient { return await this.client.findAllPage(_class, query, options) } - iterateAll( + iterateAll ( _class: Ref>, query: DocumentQuery, options?: IterateOptions @@ -179,7 +179,7 @@ class PlatformClientImpl implements PlatformClient { await this.connection.close() } - private async processMarkup(_class: Ref>, id: Ref, data: WithMarkup): Promise { + private async processMarkup (_class: Ref>, id: Ref, data: WithMarkup): Promise { const result: any = {} for (const [key, value] of Object.entries(data)) { @@ -195,7 +195,7 @@ class PlatformClientImpl implements PlatformClient { // DocOperations - async createDoc( + async createDoc ( _class: Ref>, space: Ref, attributes: WithMarkup>, @@ -206,7 +206,7 @@ class PlatformClientImpl implements PlatformClient { return await this.client.createDoc(_class, space, data, id) } - async updateDoc( + async updateDoc ( _class: Ref>, space: Ref, objectId: Ref, @@ -217,13 +217,13 @@ class PlatformClientImpl implements PlatformClient { return await this.client.updateDoc(_class, space, objectId, update, retrieve) } - async removeDoc(_class: Ref>, space: Ref, objectId: Ref): Promise { + async removeDoc (_class: Ref>, space: Ref, objectId: Ref): Promise { return await this.client.removeDoc(_class, space, objectId) } // CollectionOperations - async addCollection( + async addCollection ( _class: Ref>, space: Ref, attachedTo: Ref, @@ -237,7 +237,7 @@ class PlatformClientImpl implements PlatformClient { return await this.client.addCollection(_class, space, attachedTo, attachedToClass, collection, data, id) } - async updateCollection( + async updateCollection ( _class: Ref>, space: Ref, objectId: Ref

, @@ -260,7 +260,7 @@ class PlatformClientImpl implements PlatformClient { ) } - async removeCollection( + async removeCollection ( _class: Ref>, space: Ref, objectId: Ref

, @@ -273,7 +273,7 @@ class PlatformClientImpl implements PlatformClient { // MixinOperations - async createMixin( + async createMixin ( objectId: Ref, objectClass: Ref>, objectSpace: Ref, @@ -284,7 +284,7 @@ class PlatformClientImpl implements PlatformClient { return await this.client.createMixin(objectId, objectClass, objectSpace, mixin, data) } - async updateMixin( + async updateMixin ( objectId: Ref, objectClass: Ref>, objectSpace: Ref, diff --git a/foundations/core/packages/api-client/src/index.ts b/foundations/core/packages/api-client/src/index.ts index 2379b838de..136511a1f9 100644 --- a/foundations/core/packages/api-client/src/index.ts +++ b/foundations/core/packages/api-client/src/index.ts @@ -16,7 +16,7 @@ export * from './client' export * from './markup/types' export * from './socket' -export * from './types' +export type * from './types' export * from './rest' export * from './config' export * from './utils' diff --git a/foundations/core/packages/api-client/src/rest/adapter.ts b/foundations/core/packages/api-client/src/rest/adapter.ts index ea0039e6e4..29850d96fd 100644 --- a/foundations/core/packages/api-client/src/rest/adapter.ts +++ b/foundations/core/packages/api-client/src/rest/adapter.ts @@ -47,7 +47,7 @@ export class RestClientAdapter implements Client { private readonly model: ModelDb | undefined ) {} - async domainRequest( + async domainRequest ( domain: OperationDomain, params: DomainParams, options?: DomainRequestOptions @@ -55,7 +55,7 @@ export class RestClientAdapter implements Client { return await this.client.domainRequest(domain, params, options) } - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -63,7 +63,7 @@ export class RestClientAdapter implements Client { return await this.client.findAll(_class, query, options) } - async findAllPage( + async findAllPage ( _class: Ref>, query: DocumentQuery, options: FindPageOptions @@ -71,7 +71,7 @@ export class RestClientAdapter implements Client { return await this.client.findAllPage(_class, query, options) } - iterateAll( + iterateAll ( _class: Ref>, query: DocumentQuery, options?: IterateOptions @@ -83,7 +83,7 @@ export class RestClientAdapter implements Client { return await this.client.tx(tx) } - async findOne( + async findOne ( _class: Ref>, query: DocumentQuery, options?: FindOptions diff --git a/foundations/core/packages/api-client/src/rest/rest.ts b/foundations/core/packages/api-client/src/rest/rest.ts index a098ca9703..aef5464182 100644 --- a/foundations/core/packages/api-client/src/rest/rest.ts +++ b/foundations/core/packages/api-client/src/rest/rest.ts @@ -106,7 +106,7 @@ export class RestClientImpl implements RestClient { } } - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -168,7 +168,7 @@ export class RestClientImpl implements RestClient { return result } - async findAllPage( + async findAllPage ( _class: Ref>, query: DocumentQuery, options: FindPageOptions @@ -224,7 +224,7 @@ export class RestClientImpl implements RestClient { return result } - async * iterateAll( + async *iterateAll ( _class: Ref>, query: DocumentQuery, options?: IterateOptions @@ -332,7 +332,7 @@ export class RestClientImpl implements RestClient { return result } - async findOne( + async findOne ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -395,7 +395,7 @@ export class RestClientImpl implements RestClient { return result } - async domainRequest( + async domainRequest ( domain: OperationDomain, params: DomainParams, options?: DomainRequestOptions @@ -455,7 +455,7 @@ export class RestClientImpl implements RestClient { return result } - private async v1op(op: string, data: any): Promise

{ + private async v1op (op: string, data: any): Promise

{ const requestUrl = concatLink(this.endpoint, `/api/v1/${op}/${this.workspace}`) await this.checkRate() const result = await withRetry<{ result?: Ref, error?: Status }>(async () => { @@ -478,7 +478,7 @@ export class RestClientImpl implements RestClient { return result as P } - createDoc( + createDoc ( _class: Ref>, space: Ref, attributes: Data, @@ -496,7 +496,7 @@ export class RestClientImpl implements RestClient { }) } - addCollection( + addCollection ( _class: Ref>, space: Ref, attachedTo: Ref, @@ -520,7 +520,7 @@ export class RestClientImpl implements RestClient { }) } - update( + update ( doc: T, update: DocumentUpdate, retrieve?: boolean, @@ -545,7 +545,7 @@ export class RestClientImpl implements RestClient { return this.v1op('update', req) } - remove(doc: T, modifiedOn?: Timestamp, modifiedBy?: PersonId): Promise { + remove (doc: T, modifiedOn?: Timestamp, modifiedBy?: PersonId): Promise { const req = { _class: doc._class, _id: doc._id, @@ -562,7 +562,7 @@ export class RestClientImpl implements RestClient { return this.v1op('remove', req) } - createMixin( + createMixin ( objectId: Ref, objectClass: Ref>, objectSpace: Ref, @@ -582,7 +582,7 @@ export class RestClientImpl implements RestClient { }) } - updateMixin( + updateMixin ( objectId: Ref, objectClass: Ref>, objectSpace: Ref, diff --git a/foundations/core/packages/api-client/src/rest/tx.ts b/foundations/core/packages/api-client/src/rest/tx.ts index 592b16ade0..aacdbe0aff 100644 --- a/foundations/core/packages/api-client/src/rest/tx.ts +++ b/foundations/core/packages/api-client/src/rest/tx.ts @@ -68,7 +68,7 @@ class RestTxClient implements Client { return Promise.resolve() } - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -80,7 +80,7 @@ class RestTxClient implements Client { return toFindResult(result, data.total) } - async findAllPage( + async findAllPage ( _class: Ref>, query: DocumentQuery, options: FindPageOptions @@ -92,7 +92,7 @@ class RestTxClient implements Client { } } - async * iterateAll( + async *iterateAll ( _class: Ref>, query: DocumentQuery, options?: IterateOptions @@ -111,7 +111,7 @@ class RestTxClient implements Client { } while (cursor !== undefined) } - async domainRequest( + async domainRequest ( domain: OperationDomain, params: DomainParams, options?: DomainRequestOptions @@ -119,7 +119,7 @@ class RestTxClient implements Client { return await this.client.domainRequest(domain, params, options) } - async findOne( + async findOne ( _class: Ref>, query: DocumentQuery, options?: FindOptions diff --git a/foundations/core/packages/api-client/src/storage/client.ts b/foundations/core/packages/api-client/src/storage/client.ts index 025d7d8ac5..b628d8b742 100644 --- a/foundations/core/packages/api-client/src/storage/client.ts +++ b/foundations/core/packages/api-client/src/storage/client.ts @@ -173,7 +173,7 @@ async function toBuffer (data: Buffer | string | Readable): Promise { for await (const chunk of data) { chunks.push(chunk) } - return Buffer.concat(chunks as any) + return Buffer.concat(chunks) } else { throw new TypeError('Unsupported data type') } diff --git a/foundations/core/packages/api-client/src/types.ts b/foundations/core/packages/api-client/src/types.ts index 086d7af464..607e98145f 100644 --- a/foundations/core/packages/api-client/src/types.ts +++ b/foundations/core/packages/api-client/src/types.ts @@ -47,9 +47,9 @@ type WithPropertyType = { /** @public */ export type WithMarkup = WithPropertyType< -WithPropertyType, -CollaborativeDoc, -MarkupContent + WithPropertyType, + CollaborativeDoc, + MarkupContent > /** @@ -65,11 +65,11 @@ export type PlatformClient = { close: () => Promise } & FindOperations & -DocOperations & -CollectionOperations & -MixinOperations & -MarkupOperations & -AsyncDisposable + DocOperations & + CollectionOperations & + MixinOperations & + MarkupOperations & + AsyncDisposable /** * @public diff --git a/foundations/core/packages/client-resources/src/__tests__/connection.test.ts b/foundations/core/packages/client-resources/src/__tests__/connection.test.ts index 7fb4f195be..ec33251c2b 100644 --- a/foundations/core/packages/client-resources/src/__tests__/connection.test.ts +++ b/foundations/core/packages/client-resources/src/__tests__/connection.test.ts @@ -303,7 +303,7 @@ describe('connect function', () => { mockWebSockets.push(mockWs) const client = connect('ws://localhost:3333', handler, workspaceId, userId, { - socketFactory: (url: string) => mockWs as any + socketFactory: (url: string) => mockWs }) connections.push(client) @@ -333,7 +333,7 @@ describe('connect function', () => { const mockWs = new MockWebSocket('ws://localhost:3333') const client = connect('ws://localhost:3333', handler, workspaceId, userId, { - socketFactory: (url: string) => mockWs as any + socketFactory: (url: string) => mockWs }) connections.push(client) diff --git a/foundations/core/packages/client-resources/src/__tests__/integration.test.ts b/foundations/core/packages/client-resources/src/__tests__/integration.test.ts index c0f6b2642e..f144c2e3eb 100644 --- a/foundations/core/packages/client-resources/src/__tests__/integration.test.ts +++ b/foundations/core/packages/client-resources/src/__tests__/integration.test.ts @@ -167,7 +167,7 @@ export class MockClientConnection implements ClientConnection { this.handlers.push(handler) } - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions diff --git a/foundations/core/packages/client-resources/src/connection.ts b/foundations/core/packages/client-resources/src/connection.ts index d1757cff4d..3d470af14d 100644 --- a/foundations/core/packages/client-resources/src/connection.ts +++ b/foundations/core/packages/client-resources/src/connection.ts @@ -896,7 +896,7 @@ class Connection implements ClientConnection { return this.sendRequest({ method: 'getAccount', params: [] }) } - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -959,7 +959,7 @@ class Connection implements ClientConnection { return result } - async findAllPage( + async findAllPage ( _class: Ref>, query: DocumentQuery, options: FindPageOptions diff --git a/foundations/core/packages/client/src/__tests__/client.test.ts b/foundations/core/packages/client/src/__tests__/client.test.ts index 8e71ac8fb6..6b2c77d0ae 100644 --- a/foundations/core/packages/client/src/__tests__/client.test.ts +++ b/foundations/core/packages/client/src/__tests__/client.test.ts @@ -161,7 +161,7 @@ class TestConnection implements ClientConnection { this.handlers.push(handler) } - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions diff --git a/foundations/core/packages/collaborator-client/src/client.ts b/foundations/core/packages/collaborator-client/src/client.ts index 8cabaf1285..c4b77aeae3 100644 --- a/foundations/core/packages/collaborator-client/src/client.ts +++ b/foundations/core/packages/collaborator-client/src/client.ts @@ -66,7 +66,7 @@ class CollaboratorClientImpl implements CollaboratorClient { private readonly collaboratorUrl: string ) {} - private async rpc(document: CollaborativeDoc, method: string, payload: P): Promise { + private async rpc (document: CollaborativeDoc, method: string, payload: P): Promise { const workspace = this.workspace const documentId = encodeDocumentId(workspace, document) diff --git a/foundations/core/packages/core/src/__tests__/client.test.ts b/foundations/core/packages/core/src/__tests__/client.test.ts index b7a7874f59..2a063625df 100644 --- a/foundations/core/packages/core/src/__tests__/client.test.ts +++ b/foundations/core/packages/core/src/__tests__/client.test.ts @@ -122,7 +122,8 @@ describe('client', () => { } get onConnect (): - ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) | undefined { + | ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) + | undefined { return this.handler } diff --git a/foundations/core/packages/core/src/__tests__/hierarchy.test.ts b/foundations/core/packages/core/src/__tests__/hierarchy.test.ts index cf0d467ad4..331810c8eb 100644 --- a/foundations/core/packages/core/src/__tests__/hierarchy.test.ts +++ b/foundations/core/packages/core/src/__tests__/hierarchy.test.ts @@ -15,7 +15,7 @@ import type { AnyAttribute, Class, Doc, Obj, Ref } from '../classes' import { ClassifierKind, DOMAIN_MODEL } from '../classes' -import type { TxCreateDoc } from '../tx' +import type { MixinUpdate, TxCreateDoc } from '../tx' import { TxFactory } from '../tx' import core from '../component' import { Hierarchy } from '../hierarchy' @@ -607,9 +607,7 @@ describe('hierarchy', () => { const hierarchy = prepare() // Should throw for non-existent class - expect(() => hierarchy.getAncestors('class:NonExistent' as any)).toThrow( - 'ancestors not found: class:NonExistent' - ) + expect(() => hierarchy.getAncestors('class:NonExistent' as any)).toThrow('ancestors not found: class:NonExistent') }) it('should handle getDescendants error case', async () => { @@ -816,11 +814,11 @@ describe('hierarchy', () => { // Create a TxMixin transaction const txFactory = new TxFactory(core.account.System) const mixinTx = txFactory.createTxMixin( - core.class.Space as any, - core.class.Class as any, + core.class.Space, + core.class.Class, core.space.Model, test.mixin.TestMixin, - { arr: ['test'] } + { arr: ['test'] } as unknown as MixinUpdate, Class> ) // Apply the mixin transaction @@ -992,7 +990,7 @@ describe('hierarchy', () => { } } - const result = hierarchy.updateLookupMixin(test.class.Task, doc as any, options as any) + const result = hierarchy.updateLookupMixin(test.class.Task, doc as any, options) expect(result).toBeDefined() expect(result.$lookup).toBeDefined() }) @@ -1029,7 +1027,7 @@ describe('hierarchy', () => { } } - const result = hierarchy.updateLookupMixin(test.class.Task, doc as any, options as any) + const result = hierarchy.updateLookupMixin(test.class.Task, doc as any, options) expect(result).toBeDefined() }) @@ -1091,7 +1089,7 @@ describe('hierarchy', () => { } } - const result = hierarchy.updateLookupMixin(test.class.Task, doc as any, options as any) + const result = hierarchy.updateLookupMixin(test.class.Task, doc as any, options) expect(result).toBeDefined() expect(result.$lookup?.space).toBeNull() }) diff --git a/foundations/core/packages/core/src/__tests__/memdb.test.ts b/foundations/core/packages/core/src/__tests__/memdb.test.ts index a9b2c34515..304b79b0ef 100644 --- a/foundations/core/packages/core/src/__tests__/memdb.test.ts +++ b/foundations/core/packages/core/src/__tests__/memdb.test.ts @@ -47,7 +47,7 @@ class ClientModel extends ModelDb implements Client { return this } - async findOne( + async findOne ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -55,7 +55,7 @@ class ClientModel extends ModelDb implements Client { return (await this.findAll(_class, query, options)).shift() } - async findAllPage( + async findAllPage ( _class: Ref>, query: DocumentQuery, options: FindPageOptions @@ -73,7 +73,7 @@ class ClientModel extends ModelDb implements Client { } } - async * iterateAll( + async *iterateAll ( _class: Ref>, query: DocumentQuery, options?: IterateOptions @@ -85,7 +85,7 @@ class ClientModel extends ModelDb implements Client { limit: options?.limit ?? 500, cursor }) - yield * page.docs + yield* page.docs cursor = page.nextCursor } while (cursor !== undefined) } @@ -94,7 +94,7 @@ class ClientModel extends ModelDb implements Client { return { docs: [] } } - async domainRequest( + async domainRequest ( domain: OperationDomain, params: DomainParams, options?: DomainRequestOptions diff --git a/foundations/core/packages/core/src/client.ts b/foundations/core/packages/core/src/client.ts index 8afc676e28..eda8843d76 100644 --- a/foundations/core/packages/core/src/client.ts +++ b/foundations/core/packages/core/src/client.ts @@ -157,7 +157,7 @@ class ClientImpl implements Client, BackupClient { return this.model } - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -175,7 +175,7 @@ class ClientImpl implements Client, BackupClient { return toFindResult(result, data.total) } - async findAllPage( + async findAllPage ( _class: Ref>, query: DocumentQuery, options: FindPageOptions @@ -194,7 +194,7 @@ class ClientImpl implements Client, BackupClient { } } - async * iterateAll( + async *iterateAll ( _class: Ref>, query: DocumentQuery, options?: IterateOptions @@ -213,7 +213,7 @@ class ClientImpl implements Client, BackupClient { } while (cursor !== undefined) } - private async findModelPage( + private async findModelPage ( _class: Ref>, query: DocumentQuery, options: FindPageOptions @@ -232,7 +232,7 @@ class ClientImpl implements Client, BackupClient { } } - private async findConnectionPage( + private async findConnectionPage ( _class: Ref>, query: DocumentQuery, options: FindPageOptions @@ -262,7 +262,7 @@ class ClientImpl implements Client, BackupClient { return await this.conn.domainRequest(ctx, params, options) } - async findOne( + async findOne ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -407,7 +407,8 @@ export async function createClient ( txBuffer = undefined const oldOnConnect: - ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) | undefined = conn.onConnect + | ((event: ClientConnectEvent, lastTx: string | undefined, data: any) => Promise) + | undefined = conn.onConnect conn.onConnect = async (event, _lastTx, data) => { console.log('Client: onConnect', event) if (event === ClientConnectEvent.Maintenance) { diff --git a/foundations/core/packages/core/src/hierarchy.ts b/foundations/core/packages/core/src/hierarchy.ts index 32d055c7a4..dff9e8e557 100644 --- a/foundations/core/packages/core/src/hierarchy.ts +++ b/foundations/core/packages/core/src/hierarchy.ts @@ -52,46 +52,46 @@ export class Hierarchy { return handler } - as(doc: D, mixin: Ref>): M { + as (doc: D, mixin: Ref>): M { if ((doc as any)[PROXY_MIXIN_CLASS_KEY] === mixin) return doc as M return new Proxy(Hierarchy.toDoc(doc), this.getMixinProxyHandler(mixin)) as M } - asIf(doc: D | undefined, mixin: Ref>): M | undefined { + asIf (doc: D | undefined, mixin: Ref>): M | undefined { if (doc === undefined) { return undefined } return this.hasMixin(doc, mixin) ? this.as(doc, mixin) : undefined } - asIfArray(docs: D[], mixin: Ref>): M[] { + asIfArray (docs: D[], mixin: Ref>): M[] { return docs.map((it) => this.asIf(it, mixin)).filter((it) => it !== undefined) } - static toDoc(doc: D): D { + static toDoc (doc: D): D { return _toDoc(doc) } - static mixinClass(doc: D): Ref> | undefined { + static mixinClass (doc: D): Ref> | undefined { return _mixinClass(doc) } - static mixinOrClass(doc: D): Ref | Class> { + static mixinOrClass (doc: D): Ref | Class> { const m = _mixinClass(doc) return m ?? doc._class } - static hasMixin(doc: D, mixin: Ref>): boolean { + static hasMixin (doc: D, mixin: Ref>): boolean { const d = Hierarchy.toDoc(doc) return typeof (d as any)[mixin] === 'object' } - hasMixin(doc: D, mixin: Ref>): boolean { + hasMixin (doc: D, mixin: Ref>): boolean { return Hierarchy.hasMixin(doc, mixin) } - classHierarchyMixin( + classHierarchyMixin ( _class: Ref>, mixin: Ref>, filter?: (value: M) => boolean @@ -109,7 +109,7 @@ export class Hierarchy { } } - findClassOrMixinMixin(doc: Doc, mixin: Ref>): M | undefined { + findClassOrMixinMixin (doc: Doc, mixin: Ref>): M | undefined { const cc = this.classHierarchyMixin(doc._class, mixin) if (cc !== undefined) { return cc @@ -127,7 +127,7 @@ export class Hierarchy { } } - findMixinMixins(doc: Doc, mixin: Ref>): M[] { + findMixinMixins (doc: Doc, mixin: Ref>): M[] { const _doc = _toDoc(doc) const result: M[] = [] const resultSet = new Set() @@ -147,7 +147,7 @@ export class Hierarchy { return result } - findAllMixins(doc: Doc): Ref>[] { + findAllMixins (doc: Doc): Ref>[] { const _doc = _toDoc(doc) const resultSet = new Set>>() for (const [k, v] of Object.entries(_doc)) { @@ -192,7 +192,7 @@ export class Hierarchy { return result } - getClass(_class: Ref>): Class { + getClass (_class: Ref>): Class { const data = this.classifiers.get(_class) if (data === undefined || this.isInterface(data)) { throw new Error('class not found: ' + _class) @@ -200,7 +200,7 @@ export class Hierarchy { return data } - findClass(_class: Ref>): Class | undefined { + findClass (_class: Ref>): Class | undefined { const data = this.classifiers.get(_class) if (data === undefined || this.isInterface(data)) { return undefined @@ -208,7 +208,7 @@ export class Hierarchy { return data } - hasClass(_class: Ref>): boolean { + hasClass (_class: Ref>): boolean { const data = this.classifiers.get(_class) return !(data === undefined || this.isInterface(data)) @@ -334,14 +334,14 @@ export class Hierarchy { * Check if passed _class is derived from `from` class. * It will iterate over parents. */ - isDerived(_class: Ref>, from: Ref>): boolean { + isDerived (_class: Ref>, from: Ref>): boolean { return this.ancestors.get(_class)?.includes(from) ?? false } /** * Return first non interface/mixin parent */ - getBaseClass(_class: Ref>): Ref> { + getBaseClass (_class: Ref>): Ref> { let cl: Ref> | undefined = _class while (cl !== undefined) { const clz: Class = this.getClass(cl) @@ -355,7 +355,7 @@ export class Hierarchy { * Check if passed _class implements passed interfaces `from`. * It will check for class parents and their interfaces. */ - isImplements(_class: Ref>, from: Ref>): boolean { + isImplements (_class: Ref>, from: Ref>): boolean { let cl: Ref> | undefined = _class while (cl !== undefined) { const klazz: Class = this.getClass(cl) @@ -370,7 +370,7 @@ export class Hierarchy { /** * Check if interface extends passed interface. */ - private isExtends(extendsOrImplements: Ref>[], from: Ref>): boolean { + private isExtends (extendsOrImplements: Ref>[], from: Ref>): boolean { const result: Ref>[] = [] const toVisit = [...extendsOrImplements] while (toVisit.length > 0) { @@ -384,7 +384,7 @@ export class Hierarchy { return false } - getDescendants(_class: Ref>): Ref>[] { + getDescendants (_class: Ref>): Ref>[] { const data = this.descendants.get(_class) if (data === undefined) { throw new Error('descendants not found: ' + _class) @@ -571,7 +571,7 @@ export class Hierarchy { } } - updateLookupMixin( + updateLookupMixin ( _class: Ref>, result: WithLookup, options?: FindOptions diff --git a/foundations/core/packages/core/src/memdb.ts b/foundations/core/packages/core/src/memdb.ts index 5a0896e919..13bd5b4f8b 100644 --- a/foundations/core/packages/core/src/memdb.ts +++ b/foundations/core/packages/core/src/memdb.ts @@ -62,7 +62,7 @@ export abstract class MemDb extends TxProcessor implements Storage { } } - private getByIdQuery(query: DocumentQuery, _class: Ref>): T[] { + private getByIdQuery (query: DocumentQuery, _class: Ref>): T[] { const result: T[] = [] if (typeof query._id === 'string') { const obj = this.objectById.get(query._id) as T @@ -77,7 +77,7 @@ export abstract class MemDb extends TxProcessor implements Storage { return result } - getObject(_id: Ref): T { + getObject (_id: Ref): T { const doc = this.objectById.get(_id) if (doc === undefined) { throw new PlatformError(new Status(Severity.ERROR, core.status.ObjectNotFound, { _id })) @@ -85,12 +85,12 @@ export abstract class MemDb extends TxProcessor implements Storage { return doc as T } - findObject(_id: Ref): T | undefined { + findObject (_id: Ref): T | undefined { const doc = this.objectById.get(_id) return doc as T } - private async getLookupValue( + private async getLookupValue ( _class: Ref>, doc: T, lookup: Lookup, @@ -120,7 +120,7 @@ export abstract class MemDb extends TxProcessor implements Storage { } } - private async getReverseLookupValue( + private async getReverseLookupValue ( doc: T, lookup: ReverseLookups, result: LookupData @@ -137,7 +137,7 @@ export abstract class MemDb extends TxProcessor implements Storage { } } - private async lookup(_class: Ref>, docs: T[], lookup: Lookup): Promise[]> { + private async lookup (_class: Ref>, docs: T[], lookup: Lookup): Promise[]> { const withLookup: WithLookup[] = [] for (const doc of docs) { const result: LookupData = {} @@ -147,7 +147,7 @@ export abstract class MemDb extends TxProcessor implements Storage { return withLookup } - private async fillAssociations(docs: T[], associations: AssociationQuery[]): Promise[]> { + private async fillAssociations (docs: T[], associations: AssociationQuery[]): Promise[]> { const withLookup: WithLookup[] = [] for (const doc of docs) { const result = await this.getAssociationValue(doc, associations) @@ -156,7 +156,7 @@ export abstract class MemDb extends TxProcessor implements Storage { return withLookup } - private async getAssociationValue( + private async getAssociationValue ( doc: T, associations: AssociationQuery[] ): Promise[]>> { @@ -179,7 +179,7 @@ export abstract class MemDb extends TxProcessor implements Storage { return result } - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -219,7 +219,7 @@ export abstract class MemDb extends TxProcessor implements Storage { return toFindResult(res, total) } - async findOne( + async findOne ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -231,7 +231,7 @@ export abstract class MemDb extends TxProcessor implements Storage { * Only in model find without lookups and sorting. * Do not clone results, so be aware modifications are not allowed. */ - findAllSync(_class: Ref>, query: DocumentQuery, options?: FindOptions): FindResult { + findAllSync (_class: Ref>, query: DocumentQuery, options?: FindOptions): FindResult { let result: WithLookup[] const baseClass = this.hierarchy.getBaseClass(_class) if ( diff --git a/foundations/core/packages/core/src/operations.ts b/foundations/core/packages/core/src/operations.ts index 697ffb5655..aa1460a7b0 100644 --- a/foundations/core/packages/core/src/operations.ts +++ b/foundations/core/packages/core/src/operations.ts @@ -73,7 +73,7 @@ export class TxOperations implements Omit { await this.client.close() } - findAll( + findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions | undefined @@ -81,7 +81,7 @@ export class TxOperations implements Omit { return this.client.findAll(_class, query, options) } - findAllPage( + findAllPage ( _class: Ref>, query: DocumentQuery, options: FindPageOptions @@ -89,7 +89,7 @@ export class TxOperations implements Omit { return this.client.findAllPage(_class, query, options) } - iterateAll( + iterateAll ( _class: Ref>, query: DocumentQuery, options?: IterateOptions @@ -97,7 +97,7 @@ export class TxOperations implements Omit { return this.client.iterateAll(_class, query, options) } - findOne( + findOne ( _class: Ref>, query: DocumentQuery, options?: FindOptions | undefined @@ -105,7 +105,7 @@ export class TxOperations implements Omit { return this.client.findOne(_class, query, options) } - domainRequest(domain: OperationDomain, params: DomainParams): Promise> { + domainRequest (domain: OperationDomain, params: DomainParams): Promise> { return this.client.domainRequest(domain, params) } @@ -117,7 +117,7 @@ export class TxOperations implements Omit { return this.client.tx(tx) } - async createDoc( + async createDoc ( _class: Ref>, space: Ref, attributes: Data, @@ -137,7 +137,7 @@ export class TxOperations implements Omit { return tx.objectId } - async addCollection( + async addCollection ( _class: Ref>, space: Ref, attachedTo: Ref, @@ -158,10 +158,10 @@ export class TxOperations implements Omit { modifiedBy ) await this.tx(tx) - return tx.objectId as unknown as Ref

+ return tx.objectId } - async updateCollection( + async updateCollection ( _class: Ref>, space: Ref, objectId: Ref

, @@ -186,7 +186,7 @@ export class TxOperations implements Omit { return attachedTo } - async removeCollection( + async removeCollection ( _class: Ref>, space: Ref, objectId: Ref

, @@ -209,7 +209,7 @@ export class TxOperations implements Omit { return attachedTo } - updateDoc( + updateDoc ( _class: Ref>, space: Ref, objectId: Ref, @@ -222,7 +222,7 @@ export class TxOperations implements Omit { return this.tx(tx) } - removeDoc( + removeDoc ( _class: Ref>, space: Ref, objectId: Ref, @@ -233,7 +233,7 @@ export class TxOperations implements Omit { return this.tx(tx) } - createMixin( + createMixin ( objectId: Ref, objectClass: Ref>, objectSpace: Ref, @@ -254,7 +254,7 @@ export class TxOperations implements Omit { return this.tx(tx) } - updateMixin( + updateMixin ( objectId: Ref, objectClass: Ref>, objectSpace: Ref, @@ -275,7 +275,7 @@ export class TxOperations implements Omit { return this.tx(tx) } - async update( + async update ( doc: T, update: DocumentUpdate, retrieve?: boolean, @@ -331,7 +331,7 @@ export class TxOperations implements Omit { return await this.updateDoc(doc._class, doc.space, doc._id, update, retrieve, modifiedOn, modifiedBy) } - remove(doc: T, modifiedOn?: Timestamp, modifiedBy?: PersonId): Promise { + remove (doc: T, modifiedOn?: Timestamp, modifiedBy?: PersonId): Promise { if (this.client.getHierarchy().isDerived(doc._class, core.class.AttachedDoc)) { const adoc = doc as unknown as AttachedDoc return this.removeCollection( @@ -352,7 +352,7 @@ export class TxOperations implements Omit { return new ApplyOperations(this, scope, measure, derived ?? this.isDerived) } - async diffUpdate( + async diffUpdate ( doc: T, update: T | Data | DocumentUpdate, date?: Timestamp, @@ -376,7 +376,8 @@ export class TxOperations implements Omit { // We need to update fields if they are different. if (!this.getHierarchy().hasMixin(doc, mixin)) { - await this.createMixin(doc._id, doc._class, doc.space, mixin, raw as MixinData, modifiedOn, modifiedBy) + const mixinData = raw as MixinData> + await this.createMixin(doc._id, doc._class, doc.space, mixin, mixinData, modifiedOn, modifiedBy) TxProcessor.applyUpdate(this.getHierarchy().as(doc, mixin), raw) return doc } @@ -507,12 +508,12 @@ export class ApplyOperations extends TxOperations { super(txClient, ops.user, isDerived ?? false) } - match(_class: Ref>, query: DocumentQuery): ApplyOperations { + match (_class: Ref>, query: DocumentQuery): ApplyOperations { this.matches.push({ _class, query }) return this } - notMatch(_class: Ref>, query: DocumentQuery): ApplyOperations { + notMatch (_class: Ref>, query: DocumentQuery): ApplyOperations { this.notMatches.push({ _class, query }) return this } @@ -599,7 +600,7 @@ export class TxBuilder extends TxOperations { findOne: async (_class, query, options?) => undefined, findAll: async (_class, query, options?) => toFindResult([]), findAllPage: async (_class, query, options) => ({ docs: [] }), - iterateAll: async function * () {}, + iterateAll: async function* () {}, searchFulltext: async (query, options) => ({ docs: [] }), domainRequest: async (domain, params) => ({ domain, value: null as any }), tx: async (tx): Promise => { diff --git a/foundations/core/packages/core/src/storage.ts b/foundations/core/packages/core/src/storage.ts index 95d9aaaff1..fac6d1b305 100644 --- a/foundations/core/packages/core/src/storage.ts +++ b/foundations/core/packages/core/src/storage.ts @@ -22,17 +22,17 @@ import { VersionableDoc } from './versioning' export type ArraySizeSelector = | { - $gt: number - } + $gt: number + } | { - $lt: number - } + $lt: number + } | { - $gte: number - } + $gte: number + } | { - $lte: number - } + $lte: number + } /** * @public @@ -312,8 +312,8 @@ export interface SearchResultDoc { emojiIcon?: string score?: number doc: Pick & - Partial> & - Partial> + Partial> & + Partial> } /** diff --git a/foundations/core/packages/core/src/tx.ts b/foundations/core/packages/core/src/tx.ts index 32bd47e0de..126c4157b6 100644 --- a/foundations/core/packages/core/src/tx.ts +++ b/foundations/core/packages/core/src/tx.ts @@ -343,7 +343,7 @@ export abstract class TxProcessor implements WithTx { return result } - static createDoc2Doc(tx: TxCreateDoc, doClone = true): T { + static createDoc2Doc (tx: TxCreateDoc, doClone = true): T { const attached = tx.attachedTo !== undefined ? { @@ -367,7 +367,7 @@ export abstract class TxProcessor implements WithTx { } as T } - static updateDoc2Doc(rawDoc: T, tx: TxUpdateDoc): T { + static updateDoc2Doc (rawDoc: T, tx: TxUpdateDoc): T { const doc = _toDoc(rawDoc) TxProcessor.applyUpdate(doc, tx.operations as any) doc.modifiedBy = tx.modifiedBy @@ -375,7 +375,7 @@ export abstract class TxProcessor implements WithTx { return rawDoc } - static applyUpdate(doc: T, ops: any): void { + static applyUpdate (doc: T, ops: any): void { for (const key in ops) { if (key.startsWith('$')) { const operator = _getOperator(key) @@ -386,7 +386,7 @@ export abstract class TxProcessor implements WithTx { } } - static updateMixin4Doc(rawDoc: D, tx: TxMixin): D { + static updateMixin4Doc (rawDoc: D, tx: TxMixin): D { const ops = tx.attributes as any const doc = _toDoc(rawDoc) const mixin = (doc as any)[tx.mixin] ?? {} @@ -404,7 +404,7 @@ export abstract class TxProcessor implements WithTx { return rawDoc } - static buildDoc2Doc(txes: Tx[]): D | undefined | null { + static buildDoc2Doc (txes: Tx[]): D | undefined | null { let doc: Doc const deleteTx = txes.find((tx) => tx._class === core.class.TxRemoveDoc) if (deleteTx !== undefined) { @@ -435,11 +435,11 @@ export abstract class TxProcessor implements WithTx { ) } - static txHasUpdate(tx: TxUpdateDoc, attribute: string): boolean { + static txHasUpdate (tx: TxUpdateDoc, attribute: string): boolean { return TxProcessor.hasUpdate(tx.operations, attribute) } - static hasUpdate(ops: DocumentUpdate, attribute: string): boolean { + static hasUpdate (ops: DocumentUpdate, attribute: string): boolean { if ((ops as any)[attribute] !== undefined) return true for (const op in ops) { if (op.startsWith('$')) { @@ -454,10 +454,10 @@ export abstract class TxProcessor implements WithTx { return false } - protected abstract txCreateDoc (tx: TxCreateDoc): Promise - protected abstract txUpdateDoc (tx: TxUpdateDoc): Promise - protected abstract txRemoveDoc (tx: TxRemoveDoc): Promise - protected abstract txMixin (tx: TxMixin): Promise + protected abstract txCreateDoc(tx: TxCreateDoc): Promise + protected abstract txUpdateDoc(tx: TxUpdateDoc): Promise + protected abstract txRemoveDoc(tx: TxRemoveDoc): Promise + protected abstract txMixin(tx: TxMixin): Promise } /** @@ -472,7 +472,7 @@ export class TxFactory { this.txSpace = isDerived ? core.space.DerivedTx : core.space.Tx } - createTxCreateDoc( + createTxCreateDoc ( _class: Ref>, space: Ref, attributes: Data, @@ -494,7 +494,7 @@ export class TxFactory { } } - createTxCollectionCUD( + createTxCollectionCUD ( _class: Ref>, objectId: Ref, space: Ref, @@ -513,7 +513,7 @@ export class TxFactory { } } - createTxUpdateDoc( + createTxUpdateDoc ( _class: Ref>, space: Ref, objectId: Ref, @@ -536,7 +536,7 @@ export class TxFactory { } } - createTxRemoveDoc( + createTxRemoveDoc ( _class: Ref>, space: Ref, objectId: Ref, @@ -555,7 +555,7 @@ export class TxFactory { } } - createTxMixin( + createTxMixin ( objectId: Ref, objectClass: Ref>, objectSpace: Ref, diff --git a/foundations/core/packages/core/src/utils.ts b/foundations/core/packages/core/src/utils.ts index 568c34a415..9d081b31a5 100644 --- a/foundations/core/packages/core/src/utils.ts +++ b/foundations/core/packages/core/src/utils.ts @@ -305,7 +305,7 @@ export class RateLimiter { notify: (() => void)[] = [] - async exec = any>(op: (args?: B) => Promise, args?: B): Promise { + async exec = any> (op: (args?: B) => Promise, args?: B): Promise { const processingId = this.idCounter++ while (this.processingQueue.size >= this.rate) { @@ -326,7 +326,7 @@ export class RateLimiter { } } - async add = any>( + async add = any> ( op: (args?: B) => Promise, args?: B, errHandler?: (err: any) => void @@ -556,10 +556,10 @@ export function includesAny (arr1: string[] | null | undefined, arr2: string[] | } export const isEnum = - (e: T) => - (token: any): token is T[keyof T] => { - return typeof token === 'string' && Object.values(e as Record).includes(token) - } + (e: T) => + (token: any): token is T[keyof T] => { + return typeof token === 'string' && Object.values(e as Record).includes(token) + } export async function checkPermission ( client: TxOperations, @@ -893,7 +893,7 @@ export class TimeRateLimiter { this.executions = this.executions.filter((time) => time.running || now - time.time < this.period) } - async exec = any>(op: (args?: B) => Promise, args?: B): Promise { + async exec = any> (op: (args?: B) => Promise, args?: B): Promise { while (this.active >= this.rate || this.executions.length >= this.rate) { this.cleanupExecutions() if (this.executions.length < this.rate) { diff --git a/foundations/core/packages/hulylake-client/src/client.ts b/foundations/core/packages/hulylake-client/src/client.ts index af88ca5199..8445b55448 100644 --- a/foundations/core/packages/hulylake-client/src/client.ts +++ b/foundations/core/packages/hulylake-client/src/client.ts @@ -64,13 +64,13 @@ class WorkspaceClient implements HulylakeWorkspaceClient { return this.client.delete(this.workspace, key, retryOptions) } - public async getJson(key: string, retryOptions?: RetryOptions): Promise> { + public async getJson (key: string, retryOptions?: RetryOptions): Promise> { const res = await this.client.get(this.workspace, key, retryOptions) const body = res.ok && res.body != null ? ((await new Response(res.body).json()) as T) : undefined return { ...res, body } } - public async putJson( + public async putJson ( key: string, json: T, options?: Omit, diff --git a/foundations/core/packages/measurements-otlp/src/telemetry.ts b/foundations/core/packages/measurements-otlp/src/telemetry.ts index d8c7e71733..55adf342b4 100644 --- a/foundations/core/packages/measurements-otlp/src/telemetry.ts +++ b/foundations/core/packages/measurements-otlp/src/telemetry.ts @@ -189,7 +189,7 @@ export class OpenTelemetryMetricsContext implements MeasureContext { return headers } - with( + with ( name: string, params: ParamsType, op: (ctx: MeasureContext) => T | Promise, @@ -249,7 +249,7 @@ export class OpenTelemetryMetricsContext implements MeasureContext { } } - withSync( + withSync ( name: string, params: ParamsType, op: (ctx: MeasureContext) => T, diff --git a/foundations/core/packages/measurements/src/__tests__/context.test.ts b/foundations/core/packages/measurements/src/__tests__/context.test.ts index 349b18230e..818ecbd616 100644 --- a/foundations/core/packages/measurements/src/__tests__/context.test.ts +++ b/foundations/core/packages/measurements/src/__tests__/context.test.ts @@ -344,7 +344,7 @@ describe('context', () => { it('should wrap method with context', async () => { class TestClass { @withContext('testOperation', { service: 'test' }) - async testMethod(ctx: MeasureContext, value: number): Promise { + async testMethod (ctx: MeasureContext, value: number): Promise { return value * 2 } } diff --git a/foundations/core/packages/measurements/src/__tests__/performance.test.ts b/foundations/core/packages/measurements/src/__tests__/performance.test.ts index c05308ef04..fdb6065973 100644 --- a/foundations/core/packages/measurements/src/__tests__/performance.test.ts +++ b/foundations/core/packages/measurements/src/__tests__/performance.test.ts @@ -202,7 +202,7 @@ describe('performance', () => { // Helper functions -async function simulateWork(durationMs: number): Promise { +async function simulateWork (durationMs: number): Promise { const end = performance.now() + durationMs while (performance.now() < end) { // Busy wait to simulate work @@ -211,7 +211,7 @@ async function simulateWork(durationMs: number): Promise { } } -async function deepNestedExecution( +async function deepNestedExecution ( ctx: MeasureContext, depth: number, workMs: number, @@ -227,7 +227,7 @@ async function deepNestedExecution( }) } -async function simulateAPIRequest(ctx: MeasureContext | null, requestId: number): Promise { +async function simulateAPIRequest (ctx: MeasureContext | null, requestId: number): Promise { const method = ['GET', 'POST', 'PUT'][requestId % 3] const endpoint = `/api/resource/${requestId % 10}` diff --git a/foundations/core/packages/measurements/src/context.ts b/foundations/core/packages/measurements/src/context.ts index 4f364a3956..6a2da671a8 100644 --- a/foundations/core/packages/measurements/src/context.ts +++ b/foundations/core/packages/measurements/src/context.ts @@ -19,7 +19,7 @@ const errorPrinter = ({ message, stack, ...rest }: Error): object => ({ stack, ...rest }) -function replacer(value: any): any { +function replacer (value: any): any { return value instanceof Error ? errorPrinter(value) : value } @@ -75,11 +75,11 @@ export class MeasureMetricsContext implements MeasureContext { st = platformNow() contextData: object = {} - private done(value?: number, override?: boolean): void { + private done (value?: number, override?: boolean): void { updateMeasure(this.metrics, this.st, this.params, this.fullParams, (spend) => {}, value, override) } - constructor( + constructor ( name: string, params: ParamsType, fullParams: FullParamsType | (() => FullParamsType) = {}, @@ -106,7 +106,7 @@ export class MeasureMetricsContext implements MeasureContext { this.logger = logger ?? (this.logParams != null ? consoleLogger(this.logParams ?? {}) : noParamsLogger) } - measure(name: string, value: number, override?: boolean): void { + measure (name: string, value: number, override?: boolean): void { const c = new MeasureMetricsContext( '#' + name, {}, @@ -121,7 +121,7 @@ export class MeasureMetricsContext implements MeasureContext { c.done(value, override) } - newChild( + newChild ( name: string, params: ParamsType, opt?: { @@ -147,7 +147,7 @@ export class MeasureMetricsContext implements MeasureContext { return result } - with( + with ( name: string, params: ParamsType, op: (ctx: MeasureContext) => T | Promise, @@ -182,11 +182,11 @@ export class MeasureMetricsContext implements MeasureContext { } } - extractMeta(): Record { + extractMeta (): Record { return {} } - withSync( + withSync ( name: string, params: ParamsType, op: (ctx: MeasureContext) => T, @@ -200,28 +200,28 @@ export class MeasureMetricsContext implements MeasureContext { } } - error(message: string, args?: Record): void { + error (message: string, args?: Record): void { this.logger.error(message, { ...this.params, ...args, ...(this.logParams ?? {}) }) } - info(message: string, args?: Record): void { + info (message: string, args?: Record): void { this.logger.info(message, { ...this.params, ...args, ...(this.logParams ?? {}) }) } - warn(message: string, args?: Record): void { + warn (message: string, args?: Record): void { this.logger.warn(message, { ...this.params, ...args, ...(this.logParams ?? {}) }) } - debug(message: string, args?: Record): void { + debug (message: string, args?: Record): void { if (this.logLevel !== 'debug') return this.logger.debug(message, { ...this.params, ...args, ...(this.logParams ?? {}) }) } - end(): void { + end (): void { this.done() } - getParams(): ParamsType { + getParams (): ParamsType { return this.params } } @@ -234,14 +234,14 @@ export class NoMetricsContext implements MeasureContext { private readonly logLevel: MeasureLogLevel - constructor(logger?: MeasureLogger, logLevel: MeasureLogLevel = 'info') { + constructor (logger?: MeasureLogger, logLevel: MeasureLogLevel = 'info') { this.logger = logger ?? consoleLogger({}) this.logLevel = logLevel } - measure(name: string, value: number, override?: boolean): void {} + measure (name: string, value: number, override?: boolean): void {} - newChild( + newChild ( name: string, params: ParamsType, opt?: { @@ -258,7 +258,7 @@ export class NoMetricsContext implements MeasureContext { return result } - with( + with ( name: string, params: ParamsType, op: (ctx: MeasureContext) => T | Promise, @@ -268,11 +268,11 @@ export class NoMetricsContext implements MeasureContext { return r instanceof Promise ? r : Promise.resolve(r) } - extractMeta(): Record { + extractMeta (): Record { return {} } - withSync( + withSync ( name: string, params: ParamsType, op: (ctx: MeasureContext) => T, @@ -282,7 +282,7 @@ export class NoMetricsContext implements MeasureContext { return op(c) } - withLog( + withLog ( name: string, params: ParamsType, op: (ctx: MeasureContext) => T | Promise, @@ -292,26 +292,26 @@ export class NoMetricsContext implements MeasureContext { return r instanceof Promise ? r : Promise.resolve(r) } - error(message: string, args?: Record): void { + error (message: string, args?: Record): void { this.logger.error(message, { ...args }) } - info(message: string, args?: Record): void { + info (message: string, args?: Record): void { this.logger.info(message, { ...args }) } - warn(message: string, args?: Record): void { + warn (message: string, args?: Record): void { this.logger.warn(message, { ...args }) } - debug(message: string, args?: Record): void { + debug (message: string, args?: Record): void { if (this.logLevel !== 'debug') return this.logger.debug(message, { ...args }) } - end(): void {} + end (): void {} - getParams(): ParamsType { + getParams (): ParamsType { return {} } } @@ -319,7 +319,7 @@ export class NoMetricsContext implements MeasureContext { /** * Allow to use decorator for context enabled functions */ -export function withContext(name: string, params: ParamsType = {}, options?: WithOptions): any { +export function withContext (name: string, params: ParamsType = {}, options?: WithOptions): any { return (target: any, propertyKey: string, descriptor: PropertyDescriptor): PropertyDescriptor => { const originalMethod = descriptor.value descriptor.value = function (...args: any[]): Promise { @@ -338,13 +338,13 @@ export function withContext(name: string, params: ParamsType = {}, options?: Wit let operationProfiling = false -export function setOperationLogProfiling(value: boolean): void { +export function setOperationLogProfiling (value: boolean): void { operationProfiling = value } let globalId: number = 0 -export function registerOperationLog(ctx: MeasureContext): { opLogMetrics?: Metrics; op?: OperationLog } { +export function registerOperationLog (ctx: MeasureContext): { opLogMetrics?: Metrics, op?: OperationLog } { if (!operationProfiling) { return {} } @@ -364,7 +364,7 @@ export function registerOperationLog(ctx: MeasureContext): { opLogMetrics?: Metr return { opLogMetrics, op } } -export function updateOperationLog(opLogMetrics: Metrics | undefined, op: OperationLog | undefined): void { +export function updateOperationLog (opLogMetrics: Metrics | undefined, op: OperationLog | undefined): void { if (!operationProfiling) { return } @@ -386,7 +386,7 @@ export function updateOperationLog(opLogMetrics: Metrics | undefined, op: Operat } } -export function addOperation( +export function addOperation ( ctx: MeasureContext, name: string, params: ParamsType, diff --git a/foundations/core/packages/measurements/src/metrics.ts b/foundations/core/packages/measurements/src/metrics.ts index 0d25f68ebb..695dc0372a 100644 --- a/foundations/core/packages/measurements/src/metrics.ts +++ b/foundations/core/packages/measurements/src/metrics.ts @@ -12,7 +12,7 @@ export const globals: Metrics = newMetrics() * @public * @returns */ -export function newMetrics(): Metrics { +export function newMetrics (): Metrics { return { operations: 0, value: 0, @@ -22,7 +22,7 @@ export function newMetrics(): Metrics { } } -function getUpdatedTopResult( +function getUpdatedTopResult ( current: Metrics['topResult'], time: number, params: FullParamsType @@ -59,7 +59,7 @@ function getUpdatedTopResult( * Measure with tree expansion. Operation counter will be added only to leaf's. * @public */ -export function measure( +export function measure ( metrics: Metrics, params: ParamsType, fullParams: FullParamsType | (() => FullParamsType) = {}, @@ -70,7 +70,7 @@ export function measure( updateMeasure(metrics, st, params, fullParams, endOp) } } -export function updateMeasure( +export function updateMeasure ( metrics: Metrics, st: number, params: ParamsType, @@ -145,7 +145,7 @@ export function updateMeasure( /** * @public */ -export function childMetrics(root: Metrics, path: string[]): Metrics { +export function childMetrics (root: Metrics, path: string[]): Metrics { const segments = path let oop = root for (const p of segments) { @@ -159,7 +159,7 @@ export function childMetrics(root: Metrics, path: string[]): Metrics { /** * @public */ -export function metricsAggregate(m: Metrics, limit: number = -1, roundMath: boolean = false): Metrics { +export function metricsAggregate (m: Metrics, limit: number = -1, roundMath: boolean = false): Metrics { let ms = aggregateMetrics(m.measurements, limit) // Use child overage, if there is no top level value specified. @@ -200,7 +200,7 @@ export function metricsAggregate(m: Metrics, limit: number = -1, roundMath: bool } } -function aggregateMetrics(m: Record, limit: number = -1): Record { +function aggregateMetrics (m: Record, limit: number = -1): Record { const result: Record = {} for (const [k, v] of Object.entries(m).sort((a, b) => b[1].value - a[1].value)) { result[k] = metricsAggregate(v, limit) @@ -208,14 +208,14 @@ function aggregateMetrics(m: Record, limit: number = -1): Recor return result } -function toLen(val: string, sep: string, len: number): string { +function toLen (val: string, sep: string, len: number): string { while (val.length < len) { val += sep } return val } -function printMetricsChildren(params: Record, offset: number, length: number): string { +function printMetricsChildren (params: Record, offset: number, length: number): string { let r = '' if (Object.keys(params).length > 0) { r += '\n' + toLen('', ' ', offset) @@ -227,7 +227,7 @@ function printMetricsChildren(params: Record, offset: number, l return r } -function printMetricsParams( +function printMetricsParams ( params: Record>, offset: number, length: number @@ -250,7 +250,7 @@ function printMetricsParams( return r } -function toString(name: string, m: Metrics, offset: number, length: number): string { +function toString (name: string, m: Metrics, offset: number, length: number): string { let r = `${toLen('', ' ', offset)}${toLen(name, '-', length - offset)}: avg ${ Math.round((m.value / (m.operations > 0 ? m.operations : 1)) * 100) / 100 } total: ${Math.round(m.value * 100) / 100} ops: ${m.operations}`.trim() @@ -259,7 +259,7 @@ function toString(name: string, m: Metrics, offset: number, length: number): str return r } -function toJson(m: Metrics): any { +function toJson (m: Metrics): any { const obj: any = { $total: m.value, $ops: m.operations @@ -284,20 +284,20 @@ function toJson(m: Metrics): any { /** * @public */ -export function metricsToString(metrics: Metrics, name = 'System', length: number): string { +export function metricsToString (metrics: Metrics, name = 'System', length: number): string { return toString(name, metricsAggregate(metrics, 50, true), 0, length) } -export function metricsToJson(metrics: Metrics): any { +export function metricsToJson (metrics: Metrics): any { return toJson(metricsAggregate(metrics)) } -function printMetricsParamsRows( +function printMetricsParamsRows ( params: Record>, offset: number ): (string | number)[][] { const r: (string | number)[][] = [] - function joinP(key: string, data: Record): (string | number)[][] { + function joinP (key: string, data: Record): (string | number)[][] { return Object.entries(data).map(([k, vv]) => [ offset, `${key}=${k}`, @@ -312,7 +312,7 @@ function printMetricsParamsRows( return r } -function printMetricsChildrenRows(params: Record, offset: number): (string | number)[][] { +function printMetricsChildrenRows (params: Record, offset: number): (string | number)[][] { const r: (string | number)[][] = [] if (Object.keys(params).length > 0) { Object.entries(params).forEach(([k, vv]) => r.push(...toStringRows(k, vv, offset))) @@ -320,7 +320,7 @@ function printMetricsChildrenRows(params: Record, offset: numbe return r } -function toStringRows(name: string, m: Metrics, offset: number): (number | string)[][] { +function toStringRows (name: string, m: Metrics, offset: number): (number | string)[][] { const r: (number | string)[][] = [ [ offset, @@ -338,6 +338,6 @@ function toStringRows(name: string, m: Metrics, offset: number): (number | strin /** * @public */ -export function metricsToRows(metrics: Metrics, name = 'System'): (number | string)[][] { +export function metricsToRows (metrics: Metrics, name = 'System'): (number | string)[][] { return toStringRows(name, metricsAggregate(metrics, 50, true), 0) } diff --git a/foundations/core/packages/model/src/dsl.ts b/foundations/core/packages/model/src/dsl.ts index d8e086d15d..20d4957307 100644 --- a/foundations/core/packages/model/src/dsl.ts +++ b/foundations/core/packages/model/src/dsl.ts @@ -349,7 +349,7 @@ export class Builder { } // do we need this? - createDoc( + createDoc ( _class: Ref>, space: Ref, attributes: Data, @@ -366,7 +366,7 @@ export class Builder { return TxProcessor.createDoc2Doc(tx) } - mixin( + mixin ( objectId: Ref, objectClass: Ref>, mixin: Ref>, diff --git a/foundations/core/packages/platform/src/__tests__/i18n.test.ts b/foundations/core/packages/platform/src/__tests__/i18n.test.ts index 05840a8d90..9b2b04d21d 100644 --- a/foundations/core/packages/platform/src/__tests__/i18n.test.ts +++ b/foundations/core/packages/platform/src/__tests__/i18n.test.ts @@ -21,7 +21,7 @@ import { Severity, Status } from '../status' import { addStringsLoader, loadPluginStrings, translate, translateCB } from '../i18n' import { addEventListener, PlatformEvent, removeEventListener } from '../event' -function translateCBAsync( +function translateCBAsync ( message: IntlString, params: Record, language: string | undefined diff --git a/foundations/core/packages/platform/src/event.ts b/foundations/core/packages/platform/src/event.ts index ff6231d295..138dbe6087 100644 --- a/foundations/core/packages/platform/src/event.ts +++ b/foundations/core/packages/platform/src/event.ts @@ -33,7 +33,7 @@ const eventListeners = new Map() * @param event - * @param listener - */ -export function addEventListener(event: string, listener: EventListener): void { +export function addEventListener (event: string, listener: EventListener): void { const listeners = eventListeners.get(event) if (listeners !== undefined) { listeners.push(listener) @@ -47,7 +47,7 @@ export function addEventListener(event: string, listener: EventListener): void { * @param event - * @param listener - */ -export function removeEventListener(event: string, listener: EventListener): void { +export function removeEventListener (event: string, listener: EventListener): void { const listeners = eventListeners.get(event) if (listeners !== undefined) { listeners.splice(listeners.indexOf(listener), 1) @@ -57,7 +57,7 @@ export function removeEventListener(event: string, listener: EventListener): voi /** * @public */ -export async function broadcastEvent(event: string, data: any): Promise { +export async function broadcastEvent (event: string, data: any): Promise { const listeners = eventListeners.get(event) if (listeners !== undefined) { const promises = listeners.map(async (listener) => { @@ -72,7 +72,7 @@ export async function broadcastEvent(event: string, data: any): Promise { * @param status - * @returns */ -export async function setPlatformStatus(status: Status): Promise { +export async function setPlatformStatus (status: Status): Promise { if (status.severity === Severity.ERROR) { console.trace('Platform Error Status', status) } @@ -85,7 +85,7 @@ export async function setPlatformStatus(status: Status): Promise { * @param promise - * @returns */ -export async function monitor(status: Status, promise: Promise): Promise { +export async function monitor (status: Status, promise: Promise): Promise { void setPlatformStatus(status) // eslint-disable-line no-void try { const result = await promise diff --git a/foundations/core/packages/platform/src/i18n.ts b/foundations/core/packages/platform/src/i18n.ts index 9db5214f45..e4658b087b 100644 --- a/foundations/core/packages/platform/src/i18n.ts +++ b/foundations/core/packages/platform/src/i18n.ts @@ -39,7 +39,7 @@ const englishTranslationsForMissing = new Map() * @param plugin - * @param loader - */ -export function addStringsLoader(plugin: Plugin, loader: Loader): void { +export function addStringsLoader (plugin: Plugin, loader: Loader): void { loaders.set(plugin, loader) } @@ -47,7 +47,7 @@ export function addStringsLoader(plugin: Plugin, loader: Loader): void { * Perform load of all internationalization sources for all plugins available. * @public */ -export async function loadPluginStrings(locale: string, force: boolean = false): Promise { +export async function loadPluginStrings (locale: string, force: boolean = false): Promise { if (force) { cache.clear() } @@ -64,14 +64,14 @@ export async function loadPluginStrings(locale: string, force: boolean = false): } } -async function setStatus(status: Status, skipError?: boolean): Promise { +async function setStatus (status: Status, skipError?: boolean): Promise { if (skipError !== true) { await setPlatformStatus(status) } } /** Notify platform and return a Status for load/resolve paths that do not use the per-message format cache. */ -async function pipelineErrorToStatus(err: unknown, skipError?: boolean): Promise { +async function pipelineErrorToStatus (err: unknown, skipError?: boolean): Promise { const status = unknownError(err) await setStatus(status, skipError) return status @@ -80,7 +80,7 @@ async function pipelineErrorToStatus(err: unknown, skipError?: boolean): Promise /** * On compile/resolve failure: cache failure for this intl id, notify platform, return `message` as UI fallback. */ -async function handleIntlPipelineFailure( +async function handleIntlPipelineFailure ( err: unknown, message: IntlString, localeCache: Map, @@ -92,7 +92,7 @@ async function handleIntlPipelineFailure( return message } -async function loadTranslationsForComponent( +async function loadTranslationsForComponent ( plugin: Plugin, locale: string, skipError?: boolean @@ -115,7 +115,7 @@ async function loadTranslationsForComponent( } } -function getCachedTranslation(id: _IdInfo, locale: string): IntlString | Status | undefined { +function getCachedTranslation (id: _IdInfo, locale: string): IntlString | Status | undefined { const localtTanslations = translations.get(locale) if (localtTanslations === undefined) { return undefined @@ -134,7 +134,7 @@ function getCachedTranslation(id: _IdInfo, locale: string): IntlString | Status } } -async function getTranslation( +async function getTranslation ( id: _IdInfo, locale: string, skipError?: boolean @@ -180,7 +180,7 @@ async function getTranslation( * @param params - * @returns */ -export async function translate

>( +export async function translate

> ( message: IntlString

, params: P, language?: string, @@ -236,7 +236,7 @@ export async function translate

>( /** * Will do a translation in case language file already in cache, a translate is called and Promise is returned overwise */ -export function translateCB

>( +export function translateCB

> ( message: IntlString

, params: P, language: string | undefined, diff --git a/foundations/core/packages/platform/src/ident.ts b/foundations/core/packages/platform/src/ident.ts index 06199b8a1d..52caa1d9ff 100644 --- a/foundations/core/packages/platform/src/ident.ts +++ b/foundations/core/packages/platform/src/ident.ts @@ -30,7 +30,7 @@ export interface _IdInfo { /** * @internal */ -export function _parseId(id: Id): _IdInfo { +export function _parseId (id: Id): _IdInfo { const path = id.split(_ID_SEPARATOR) if (path.length < 3) { throw new PlatformError(new Status(Severity.ERROR, platform.status.InvalidId, { id })) diff --git a/foundations/core/packages/platform/src/metadata.ts b/foundations/core/packages/platform/src/metadata.ts index df7ba9c788..df8774f7e8 100644 --- a/foundations/core/packages/platform/src/metadata.ts +++ b/foundations/core/packages/platform/src/metadata.ts @@ -40,7 +40,7 @@ const metadata = new Map, any>() * @param id - * @returns */ -export function getMetadata(id: Metadata): T | undefined { +export function getMetadata (id: Metadata): T | undefined { return metadata.get(id) } @@ -49,7 +49,7 @@ export function getMetadata(id: Metadata): T | undefined { * @param id - * @param value - */ -export function setMetadata(id: Metadata, value: T): void { +export function setMetadata (id: Metadata, value: T): void { metadata.set(id, value) } @@ -58,7 +58,7 @@ export function setMetadata(id: Metadata, value: T): void { * @param ids - * @param data - */ -export function loadMetadata>>(ids: X, data: ExtractType): void { +export function loadMetadata>> (ids: X, data: ExtractType): void { for (const key in ids) { const id = ids[key] const resource = data[key] diff --git a/foundations/core/packages/platform/src/platform.ts b/foundations/core/packages/platform/src/platform.ts index c34887c725..241a31dfb4 100644 --- a/foundations/core/packages/platform/src/platform.ts +++ b/foundations/core/packages/platform/src/platform.ts @@ -75,7 +75,7 @@ export const _ID_SEPARATOR = ':' */ export const _EmbeddedId = 'embedded' -function identify(result: Record, prefix: string, namespace: Record): Namespace { +function identify (result: Record, prefix: string, namespace: Record): Namespace { for (const key in namespace) { const value = namespace[key] if (typeof result[key] === 'string') { @@ -90,7 +90,7 @@ function identify(result: Record, prefix: string, namespace: Record /** * @public */ -export function getEmbeddedLabel(str: string): IntlString { +export function getEmbeddedLabel (str: string): IntlString { return (_EmbeddedId + _ID_SEPARATOR + _EmbeddedId + _ID_SEPARATOR + str) as IntlString } @@ -102,7 +102,7 @@ export function getEmbeddedLabel(str: string): IntlString { * @param namespace - * @returns */ -export function plugin(plugin: Plugin, namespace: N): N { +export function plugin (plugin: Plugin, namespace: N): N { return identify({}, plugin, namespace) as N } @@ -115,7 +115,7 @@ export function plugin(plugin: Plugin, namespace: N): N { * @param merge - * @returns */ -export function mergeIds(plugin: Plugin, ns: N, merge: M): N & M { +export function mergeIds (plugin: Plugin, ns: N, merge: M): N & M { return identify({ ...ns }, plugin, merge) as N & M } @@ -148,17 +148,17 @@ export default plugin(platformId, { ExpiredLink: '' as StatusCode, UnknownMethod: '' as StatusCode<{ method: string }>, InternalServerError: '' as StatusCode, - MaintenanceWarning: '' as StatusCode<{ time: number; message?: string }>, + MaintenanceWarning: '' as StatusCode<{ time: number, message?: string }>, MaintenanceWarningTime: '' as IntlString, AccountNotFound: '' as StatusCode<{ account?: string }>, - AccountMismatch: '' as StatusCode<{ account?: string; requiredAccount?: string }>, + AccountMismatch: '' as StatusCode<{ account?: string, requiredAccount?: string }>, AccountNotConfirmed: '' as StatusCode, - WorkspaceNotFound: '' as StatusCode<{ workspaceUuid?: string; workspaceName?: string; workspaceUrl?: string }>, + WorkspaceNotFound: '' as StatusCode<{ workspaceUuid?: string, workspaceName?: string, workspaceUrl?: string }>, WorkspaceArchived: '' as StatusCode<{ workspaceUuid: string }>, WorkspaceMigration: '' as StatusCode<{ workspaceUuid: string }>, - SocialIdNotFound: '' as StatusCode<{ value?: string; type?: string; _id?: string }>, - SocialIdNotConfirmed: '' as StatusCode<{ socialId: string; type: string }>, - SocialIdAlreadyConfirmed: '' as StatusCode<{ socialId: string; type: string }>, + SocialIdNotFound: '' as StatusCode<{ value?: string, type?: string, _id?: string }>, + SocialIdNotConfirmed: '' as StatusCode<{ socialId: string, type: string }>, + SocialIdAlreadyConfirmed: '' as StatusCode<{ socialId: string, type: string }>, IntegrationExists: '' as StatusCode, IntegrationAlreadyExists: '' as StatusCode, IntegrationNotFound: '' as StatusCode, diff --git a/foundations/core/packages/platform/src/resource.ts b/foundations/core/packages/platform/src/resource.ts index 9ede59c780..890c8306b0 100644 --- a/foundations/core/packages/platform/src/resource.ts +++ b/foundations/core/packages/platform/src/resource.ts @@ -46,7 +46,7 @@ const locations = new Map>() * @param plugin - * @param module - */ -export function addLocation(plugin: Plugin, module: PluginLoader): void { +export function addLocation (plugin: Plugin, module: PluginLoader): void { locations.set(plugin, module) } @@ -54,11 +54,11 @@ export function addLocation(plugin: Plugin, module: PluginL * @public * return list of registred plugins. */ -export function getPlugins(): Plugin[] { +export function getPlugins (): Plugin[] { return Array.from(locations.keys()) } -function getLocation(plugin: Plugin): PluginLoader { +function getLocation (plugin: Plugin): PluginLoader { const location = locations.get(plugin) if (location === undefined) { throw new PlatformError( @@ -72,7 +72,7 @@ function getLocation(plugin: Plugin): PluginLoader { const loading = new Map>() -function loadPlugin(id: Plugin): Resources | Promise { +function loadPlugin (id: Plugin): Resources | Promise { let pluginLoader = loading.get(id) if (pluginLoader === undefined) { const status = new Status(Severity.INFO, platform.status.LoadingPlugin, { @@ -109,7 +109,7 @@ const cachedResource = new Map() * @param resource - * @returns */ -export async function getResource(resource: Resource): Promise { +export async function getResource (resource: Resource): Promise { const cached = cachedResource.get(resource) if (cached !== undefined) { return cached @@ -133,7 +133,7 @@ export async function getResource(resource: Resource): Promise { * @param resource - * @returns */ -export function getResourceP(resource: Resource): T | Promise { +export function getResourceP (resource: Resource): T | Promise { return cachedResource.get(resource) ?? getResource(resource) } @@ -142,7 +142,7 @@ export function getResourceP(resource: Resource): T | Promise { * @param resource - * @returns */ -export function getResourceC(resource: Resource | undefined, callback: (resource: T | undefined) => void): void { +export function getResourceC (resource: Resource | undefined, callback: (resource: T | undefined) => void): void { if (resource === undefined) { callback(undefined) return @@ -164,7 +164,7 @@ export function getResourceC(resource: Resource | undefined, callback: (re /** * @public */ -export function getResourcePlugin(resource: Resource): Plugin { +export function getResourcePlugin (resource: Resource): Plugin { const info = _parseId(resource) return info.component } diff --git a/foundations/core/packages/platform/src/status.ts b/foundations/core/packages/platform/src/status.ts index b17136b9b6..1a6728736b 100644 --- a/foundations/core/packages/platform/src/status.ts +++ b/foundations/core/packages/platform/src/status.ts @@ -41,7 +41,7 @@ export class Status

= any> { readonly code: StatusCode

readonly params: P - constructor(severity: Severity, code: StatusCode

, params: P) { + constructor (severity: Severity, code: StatusCode

, params: P) { this.severity = severity this.code = code this.params = params @@ -55,7 +55,7 @@ export class Status

= any> { export class PlatformError

> extends Error { readonly status: Status

- constructor(status: Status

) { + constructor (status: Status

) { super(`${status.severity}: ${status.code} ${JSON.stringify(status.params)}`) this.status = status } @@ -84,11 +84,11 @@ export const UNAUTHORIZED = new Status(Severity.ERROR, platform.status.Unauthori * @param message - * @returns */ -export function unknownStatus(message: string): Status { +export function unknownStatus (message: string): Status { return new Status(Severity.ERROR, platform.status.UnknownError, { message }) } -function isStatusLike(err: unknown): err is Pick { +function isStatusLike (err: unknown): err is Pick { if (typeof err !== 'object' || err === null) return false const o = err as Record return ( @@ -96,22 +96,22 @@ function isStatusLike(err: unknown): err is Pick ({ ...obj, @@ -17,7 +17,7 @@ const langs = ['en', 'ru'] * @param loader - * @returns */ -export function makeLocalesTest(loader: Loader) { +export function makeLocalesTest (loader: Loader) { return async () => { const [target, ...rest] = await Promise.all(langs.map(loader)) const matcher = makeLocaleMatcher(target) diff --git a/foundations/core/packages/postgres-base/src/index.ts b/foundations/core/packages/postgres-base/src/index.ts index 70f8ef5f38..d7ec7f4ba5 100644 --- a/foundations/core/packages/postgres-base/src/index.ts +++ b/foundations/core/packages/postgres-base/src/index.ts @@ -30,7 +30,7 @@ export interface DBClient { raw: () => postgres.Sql } -export function createDBClient(client: postgres.Sql, release: () => void = () => {}): DBClient { +export function createDBClient (client: postgres.Sql, release: () => void = () => {}): DBClient { return { execute: (query, parameters) => client.unsafe(query, doFetchTypes ? parameters : convertArrayParams(parameters), getPrepare()), @@ -45,7 +45,7 @@ export function createDBClient(client: postgres.Sql, release: () => void = () => } } -export function convertArrayParams(params?: unknown[]): any[] | undefined { +export function convertArrayParams (params?: unknown[]): any[] | undefined { if (params === undefined) return undefined return params.map((param) => { @@ -74,7 +74,7 @@ export function convertArrayParams(params?: unknown[]): any[] | undefined { }) } -export async function retryTxn( +export async function retryTxn ( pool: postgres.Sql, operation: (client: postgres.TransactionSql) => Promise ): Promise { @@ -87,7 +87,7 @@ export async function retryTxn( /** * @public */ -export async function shutdownPostgres(): Promise { +export async function shutdownPostgres (): Promise { for (const c of connections.values()) { c.close(true) } @@ -108,7 +108,7 @@ class PostgresClientReferenceImpl { mgr: ConnectionMgr - constructor( + constructor ( readonly connectionString: string, client: postgres.Sql, readonly onclose: () => void @@ -118,15 +118,15 @@ class PostgresClientReferenceImpl { this.mgr = new ConnectionMgr(createDBClient(this.client)) } - url(): string { + url (): string { return this.connectionString } - getClient(): postgres.Sql { + getClient (): postgres.Sql { return this.client } - close(force: boolean = false): void { + close (force: boolean = false): void { this.count-- if (this.count === 0 || force) { if (force) { @@ -141,25 +141,25 @@ class PostgresClientReferenceImpl { } } - addRef(): void { + addRef (): void { this.count++ } } export class ClientRef implements PostgresClientReference { id = ++clId - constructor( + constructor ( readonly client: PostgresClientReferenceImpl, readonly mgr: ConnectionMgr ) { clientRefs.set(this.id, this) } - url(): string { + url (): string { return this.client.url() } closed = false - async getClient(): Promise { + async getClient (): Promise { if (!this.closed) { return this.client.getClient() } else { @@ -167,7 +167,7 @@ export class ClientRef implements PostgresClientReference { } } - close(): void { + close (): void { // Do not allow double close of mongo connection client if (!this.closed) { clientRefs.delete(this.id) @@ -178,11 +178,11 @@ export class ClientRef implements PostgresClientReference { } export let dbExtraOptions: Partial> = {} -export function setDBExtraOptions(options: Partial>): void { +export function setDBExtraOptions (options: Partial>): void { dbExtraOptions = options } -export function getPrepare(): { prepare: boolean } { +export function getPrepare (): { prepare: boolean } { return { prepare: dbExtraOptions.prepare ?? false } } @@ -194,7 +194,7 @@ const connections = new Map() * Initialize a connection to DB * @public */ -export function getDBClient( +export function getDBClient ( connectionString: string, database?: string, serviceName: string = 'transactor' @@ -219,8 +219,8 @@ export function getDBClient( }, debug: false, notice: false, - onnotice(notice) {}, - onparameter(key, value) {}, + onnotice (notice) {}, + onparameter (key, value) {}, ...dbExtraOptions, ...extraOptions, fetch_types: doFetchTypes @@ -242,14 +242,14 @@ class ConnectionInfo { released: boolean = false - constructor( + constructor ( readonly connectionId: string, protected readonly client: DBClient, readonly managed: boolean, readonly mgrId: string ) {} - async withReserve(action: (reservedClient: DBClient) => Promise, forced: boolean = false): Promise { + async withReserve (action: (reservedClient: DBClient) => Promise, forced: boolean = false): Promise { let reserved: DBClient | undefined // Check if we have at least one available connection and reserve one more if required. @@ -258,7 +258,7 @@ class ConnectionInfo { reserved = await this.client.reserve() } } else { - reserved = this.available.shift() as DBClient + reserved = this.available.shift() } try { @@ -284,7 +284,7 @@ class ConnectionInfo { } } - release(): void { + release (): void { for (const c of [...this.available]) { c.release() } @@ -294,9 +294,9 @@ class ConnectionInfo { export class ConnectionMgr { private readonly connections = new Map() - constructor(protected readonly client: DBClient) {} + constructor (protected readonly client: DBClient) {} - async write(id: string | undefined, mgrId: string, fn: (client: DBClient) => Promise): Promise { + async write (id: string | undefined, mgrId: string, fn: (client: DBClient) => Promise): Promise { const backoffInterval = 25 // millis const maxTries = 5 let tries = 0 @@ -345,7 +345,7 @@ export class ConnectionMgr { } } - async retry(id: string | undefined, mgrId: string, fn: (client: DBClient) => Promise): Promise { + async retry (id: string | undefined, mgrId: string, fn: (client: DBClient) => Promise): Promise { const backoffInterval = 25 // millis const maxTries = 5 let tries = 0 @@ -390,7 +390,7 @@ export class ConnectionMgr { } } - release(id: string): void { + release (id: string): void { const conn = this.connections.get(id) if (conn !== undefined) { conn.released = true @@ -399,7 +399,7 @@ export class ConnectionMgr { } } - close(mgrId?: string): void { + close (mgrId?: string): void { const cnts = this.connections for (const [k, conn] of Array.from(cnts.entries())) { if (mgrId !== undefined && conn.mgrId !== mgrId) { @@ -414,7 +414,7 @@ export class ConnectionMgr { } } - getConnection(id: string, mgrId: string, managed: boolean = true): ConnectionInfo { + getConnection (id: string, mgrId: string, managed: boolean = true): ConnectionInfo { let conn = this.connections.get(id) if (conn === undefined) { conn = new ConnectionInfo(id, this.client, managed, mgrId) @@ -425,7 +425,7 @@ export class ConnectionMgr { return conn } - private isRetryableError(err: any): boolean { + private isRetryableError (err: any): boolean { const msg: string = err?.message ?? '' return ( diff --git a/foundations/core/packages/query/src/__tests__/connection.ts b/foundations/core/packages/query/src/__tests__/connection.ts index d217ff4ea0..4604d749f0 100644 --- a/foundations/core/packages/query/src/__tests__/connection.ts +++ b/foundations/core/packages/query/src/__tests__/connection.ts @@ -52,13 +52,13 @@ import core, { import { genMinModel } from './minmodel' export async function connect (handler: (tx: Tx) => void): Promise< -Client & -BackupClient & -FulltextStorage & { - isConnected: () => boolean - loadModel: (last: Timestamp, hash?: string) => Promise - pushHandler: (handler: TxHandler) => void -} + Client & + BackupClient & + FulltextStorage & { + isConnected: () => boolean + loadModel: (last: Timestamp, hash?: string) => Promise + pushHandler: (handler: TxHandler) => void + } > { const txes = genMinModel() @@ -89,7 +89,7 @@ FulltextStorage & { pushHandler (): void {} - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -99,7 +99,7 @@ FulltextStorage & { return await this.model.findAll(_class, query, options) } - async findOne( + async findOne ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -107,7 +107,7 @@ FulltextStorage & { return (await this.findAll(_class, query, { ...options, limit: 1 })).shift() } - async findAllPage( + async findAllPage ( _class: Ref>, query: DocumentQuery, options: FindPageOptions @@ -125,7 +125,7 @@ FulltextStorage & { } } - async * iterateAll( + async *iterateAll ( _class: Ref>, query: DocumentQuery, options?: IterateOptions @@ -137,7 +137,7 @@ FulltextStorage & { limit: options?.limit ?? 500, cursor }) - yield * page.docs + yield* page.docs cursor = page.nextCursor } while (cursor !== undefined) } diff --git a/foundations/core/packages/query/src/__tests__/query.test.ts b/foundations/core/packages/query/src/__tests__/query.test.ts index bd6ea9526c..7fea01fed4 100644 --- a/foundations/core/packages/query/src/__tests__/query.test.ts +++ b/foundations/core/packages/query/src/__tests__/query.test.ts @@ -930,7 +930,7 @@ describe('query', () => { const pp = await new Promise((resolve) => { liveQuery.query( test.class.ParticipantsHolder, - { participants: 'a' as Ref }, + { participants: 'a' }, (result) => { if (attempt > 0) { resolvePpv(result) diff --git a/foundations/core/packages/query/src/index.ts b/foundations/core/packages/query/src/index.ts index f082461d44..491c2a92ad 100644 --- a/foundations/core/packages/query/src/index.ts +++ b/foundations/core/packages/query/src/index.ts @@ -248,7 +248,7 @@ export class LiveQuery implements WithTx, Client { return true } - private createDumpQuery( + private createDumpQuery ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -261,7 +261,7 @@ export class LiveQuery implements WithTx, Client { return q } - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -296,7 +296,7 @@ export class LiveQuery implements WithTx, Client { return toFindResult(q.result.getClone(), q.total) } - findAllPage( + findAllPage ( _class: Ref>, query: DocumentQuery, options: FindPageOptions @@ -304,7 +304,7 @@ export class LiveQuery implements WithTx, Client { return this.client.findAllPage(_class, query, options) } - iterateAll( + iterateAll ( _class: Ref>, query: DocumentQuery, options?: IterateOptions @@ -312,7 +312,7 @@ export class LiveQuery implements WithTx, Client { return this.client.iterateAll(_class, query, options) } - async domainRequest( + async domainRequest ( domain: OperationDomain, params: DomainParams, options?: DomainRequestOptions @@ -324,7 +324,7 @@ export class LiveQuery implements WithTx, Client { return this.client.searchFulltext(query, options) } - async findOne( + async findOne ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -375,7 +375,7 @@ export class LiveQuery implements WithTx, Client { return deepEqual(q1, q2) } - private findQuery( + private findQuery ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -422,7 +422,7 @@ export class LiveQuery implements WithTx, Client { }, 0) } - private getQuery( + private getQuery ( _class: Ref>, query: DocumentQuery, callback: { @@ -449,7 +449,7 @@ export class LiveQuery implements WithTx, Client { return cq } - private createQuery( + private createQuery ( _class: Ref>, query: DocumentQuery, callback: { callback: (result: FindResult) => void, callbackId: string } | undefined, @@ -464,7 +464,7 @@ export class LiveQuery implements WithTx, Client { query: _query, result: result.then((docs) => new ResultArray(docs, this.getHierarchy())), total: 0, - options: options as FindOptions, + options, callbacks: new Map(), refresh: reduceCalls(() => this.doRefresh(q)), refreshId: 0 @@ -513,7 +513,7 @@ export class LiveQuery implements WithTx, Client { } } - query( + query ( _class: Ref>, query: DocumentQuery, callback: (result: FindResult) => void, @@ -547,7 +547,7 @@ export class LiveQuery implements WithTx, Client { } } - async queryFind( + async queryFind ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -1049,7 +1049,7 @@ export class LiveQuery implements WithTx, Client { return false } - private async getLookupValue( + private async getLookupValue ( _class: Ref>, doc: T, lookup: Lookup, @@ -1079,7 +1079,7 @@ export class LiveQuery implements WithTx, Client { } } - private async getReverseLookupValue( + private async getReverseLookupValue ( doc: T, lookup: ReverseLookups, result: LookupData @@ -1104,7 +1104,7 @@ export class LiveQuery implements WithTx, Client { } } - private async lookup(_class: Ref>, doc: T, lookup: Lookup): Promise { + private async lookup (_class: Ref>, doc: T, lookup: Lookup): Promise { const result: LookupData = {} await this.getLookupValue(_class, doc, lookup, result) ;(doc as WithLookup).$lookup = result diff --git a/foundations/core/packages/query/src/refs.ts b/foundations/core/packages/query/src/refs.ts index a044270328..49d26c51c5 100644 --- a/foundations/core/packages/query/src/refs.ts +++ b/foundations/core/packages/query/src/refs.ts @@ -55,7 +55,7 @@ export class Refs { } } - public findFromDocs( + public findFromDocs ( _class: Ref>, query: DocumentQuery, options?: FindOptions diff --git a/foundations/core/packages/query/src/results.ts b/foundations/core/packages/query/src/results.ts index bc10576de8..a669b58ffb 100644 --- a/foundations/core/packages/query/src/results.ts +++ b/foundations/core/packages/query/src/results.ts @@ -37,7 +37,7 @@ export class ResultArray { return this.docs.get(_id) } - getClone(): T[] { + getClone (): T[] { return this.hierarchy.clone(this.getDocs()) } @@ -89,7 +89,7 @@ export class ResultArray { return undefined } - sort(_class: Ref>, sort: SortingQuery, hierarchy: Hierarchy, memdb: MemDb): void { + sort (_class: Ref>, sort: SortingQuery, hierarchy: Hierarchy, memdb: MemDb): void { const docs = Array.from(this.docs.values()) resultSort(docs, sort, _class, hierarchy, memdb) this.docs = new Map(docs.map((it) => [it._id, it])) diff --git a/foundations/core/packages/retry/src/__test__/decorator.test.ts b/foundations/core/packages/retry/src/__test__/decorator.test.ts index 8a6d81692b..557661d011 100644 --- a/foundations/core/packages/retry/src/__test__/decorator.test.ts +++ b/foundations/core/packages/retry/src/__test__/decorator.test.ts @@ -54,7 +54,7 @@ describe('Retryable decorator', () => { callCount = 0 @Retryable(mockOptions) - async testMethod(param1: string, param2: number): Promise { + async testMethod (param1: string, param2: number): Promise { this.callCount++ if (this.callCount === 1) { throw error @@ -87,7 +87,7 @@ describe('Retryable decorator', () => { callCount = 0 @Retryable() - async testMethod(): Promise { + async testMethod (): Promise { this.callCount++ if (this.callCount === 1) { throw new Error('network error') @@ -108,7 +108,7 @@ describe('Retryable decorator', () => { private counter = 0 @Retryable(mockOptions) - async incrementAndGet(): Promise { + async incrementAndGet (): Promise { if (this.counter === 0) { this.counter++ throw new Error('network error') @@ -117,7 +117,7 @@ describe('Retryable decorator', () => { return this.counter } - getCounter(): number { + getCounter (): number { return this.counter } } @@ -140,7 +140,7 @@ describe('Retryable decorator', () => { logger: mockLogger, isRetryable: retryAllErrors }) - async alwaysFailingMethod(): Promise { + async alwaysFailingMethod (): Promise { throw new Error('Persistent failure') } } @@ -163,7 +163,7 @@ describe('Retryable decorator', () => { // Create a class with an async method that fails then resolves class TestService { @Retryable(mockOptions) - async delayedMethod(): Promise { + async delayedMethod (): Promise { return await new Promise((resolve, reject) => { resolutionCount++ if (resolutionCount === 1) { @@ -195,7 +195,7 @@ describe('Retryable decorator', () => { logger: mockLogger, isRetryable: retryAllErrors }) - async unstableMethod(): Promise { + async unstableMethod (): Promise { callCount++ if (callCount < 4) { // Succeed on the 4th attempt @@ -235,7 +235,7 @@ describe('Retryable decorator', () => { }), isRetryable: retryAllErrors }) - async delayingMethod(): Promise { + async delayingMethod (): Promise { callCount++ if (callCount < 4) { throw new Error(`Attempt ${callCount} failed`) @@ -274,7 +274,7 @@ describe('Retryable decorator', () => { }), isRetryable: retryAllErrors }) - async method(): Promise { + async method (): Promise { callCount++ if (callCount < 3) { throw new Error(`Attempt ${callCount} failed`) @@ -299,7 +299,7 @@ describe('Retryable decorator', () => { }), isRetryable: retryAllErrors }) - async method(): Promise { + async method (): Promise { callCount++ if (callCount < 4) { throw new Error(`Attempt ${callCount} failed`) @@ -319,7 +319,7 @@ describe('Retryable decorator', () => { class TestService { @Retryable(mockOptions) - nonAsyncMethod(input: string): string { + nonAsyncMethod (input: string): string { callCount++ if (callCount === 1) { throw new Error('Sync error') @@ -344,7 +344,7 @@ describe('Retryable decorator', () => { // eslint-disable-next-line @typescript-eslint/no-extraneous-class class TestService { @Retryable(mockOptions) - static async staticMethod(input: string): Promise { + static async staticMethod (input: string): Promise { callCount++ if (callCount === 1) { throw new Error('Static method error') @@ -372,7 +372,7 @@ describe('Retryable decorator', () => { return err instanceof Error && err.message.includes('Please retry') } }) - async conditionalRetryMethod(): Promise { + async conditionalRetryMethod (): Promise { this.callCount++ if (this.callCount === 1) { throw new Error('Please retry this') // should be retried diff --git a/foundations/core/packages/retry/src/__test__/retry.test.ts b/foundations/core/packages/retry/src/__test__/retry.test.ts index c8df6134d0..7118520e46 100644 --- a/foundations/core/packages/retry/src/__test__/retry.test.ts +++ b/foundations/core/packages/retry/src/__test__/retry.test.ts @@ -315,7 +315,7 @@ describe('Using retry in class methods', () => { class TestService { counter = 0 - async unstableFunction(): Promise { + async unstableFunction (): Promise { this.counter++ if (this.counter < 3) { throw new Error(`network error ${this.counter}`) diff --git a/foundations/core/packages/retry/src/__test__/retryable.test.ts b/foundations/core/packages/retry/src/__test__/retryable.test.ts index 65062d49bb..8814cc8008 100644 --- a/foundations/core/packages/retry/src/__test__/retryable.test.ts +++ b/foundations/core/packages/retry/src/__test__/retryable.test.ts @@ -151,7 +151,7 @@ describe('retryNetworkErrors', () => { /** * Helper function to create an Error object with a status property */ -function createErrorWithStatus(status: number): Error { +function createErrorWithStatus (status: number): Error { const error: any = new Error(`HTTP Error ${status}`) error.status = status return error diff --git a/foundations/core/packages/retry/src/decorator.ts b/foundations/core/packages/retry/src/decorator.ts index f51fd0527a..cb6080e0ae 100644 --- a/foundations/core/packages/retry/src/decorator.ts +++ b/foundations/core/packages/retry/src/decorator.ts @@ -21,7 +21,7 @@ import { type RetryOptions, DEFAULT_RETRY_OPTIONS, withRetry } from './retry' * @param operationName - Name of the operation for logging (defaults to method name) * @returns Method decorator */ -export function Retryable(options: Partial = DEFAULT_RETRY_OPTIONS): MethodDecorator { +export function Retryable (options: Partial = DEFAULT_RETRY_OPTIONS): MethodDecorator { return function (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) { const originalMethod = descriptor.value as (...args: any[]) => any diff --git a/foundations/core/packages/retry/src/delay.ts b/foundations/core/packages/retry/src/delay.ts index 4826a598ef..5adbd17d36 100644 --- a/foundations/core/packages/retry/src/delay.ts +++ b/foundations/core/packages/retry/src/delay.ts @@ -17,21 +17,21 @@ export const DelayStrategyFactory = { /** * Create a fixed delay strategy */ - fixed(options: FixedDelayOptions): DelayStrategy { + fixed (options: FixedDelayOptions): DelayStrategy { return new FixedDelayStrategy(options) }, /** * Create an exponential backoff delay strategy */ - exponentialBackoff(options: ExponentialBackoffOptions): DelayStrategy { + exponentialBackoff (options: ExponentialBackoffOptions): DelayStrategy { return new ExponentialBackoffStrategy(options) }, /** * Create a Fibonacci delay strategy */ - fibonacci(options: FibonacciDelayOptions): DelayStrategy { + fibonacci (options: FibonacciDelayOptions): DelayStrategy { return new FibonacciDelayStrategy(options) } } @@ -54,12 +54,12 @@ export class FixedDelayStrategy implements DelayStrategy { private readonly delayMs: number private readonly jitter: number - constructor(options: FixedDelayOptions) { + constructor (options: FixedDelayOptions) { this.delayMs = options.delayMs this.jitter = options.jitter ?? 0 } - getDelay(_attempt: number): number { + getDelay (_attempt: number): number { if (this.jitter > 0) { const jitterAmount = this.delayMs * this.jitter * (Math.random() * 2 - 1) return Math.max(0, this.delayMs + jitterAmount) @@ -88,14 +88,14 @@ export class ExponentialBackoffStrategy implements DelayStrategy { private readonly backoffFactor: number private readonly jitter: number - constructor(options: ExponentialBackoffOptions) { + constructor (options: ExponentialBackoffOptions) { this.initialDelayMs = options.initialDelayMs this.maxDelayMs = options.maxDelayMs this.backoffFactor = options.backoffFactor this.jitter = options.jitter ?? 0 } - getDelay(attempt: number): number { + getDelay (attempt: number): number { const baseDelay = Math.min(this.initialDelayMs * Math.pow(this.backoffFactor, attempt - 1), this.maxDelayMs) if (this.jitter > 0) { @@ -124,7 +124,7 @@ export class FibonacciDelayStrategy implements DelayStrategy { // Cache for Fibonacci numbers to improve performance private readonly fibCache: Map - constructor(options: FibonacciDelayOptions) { + constructor (options: FibonacciDelayOptions) { this.baseDelayMs = options.baseDelayMs this.maxDelayMs = options.maxDelayMs this.jitter = options.jitter ?? 0 @@ -134,7 +134,7 @@ export class FibonacciDelayStrategy implements DelayStrategy { ]) } - private fibonacci(n: number): number { + private fibonacci (n: number): number { // Return from cache if available if (this.fibCache.has(n)) { return this.fibCache.get(n) as number @@ -150,7 +150,7 @@ export class FibonacciDelayStrategy implements DelayStrategy { return result } - getDelay(attempt: number): number { + getDelay (attempt: number): number { const fibNumber = this.fibonacci(attempt + 1) const baseDelay = Math.min(fibNumber * this.baseDelayMs, this.maxDelayMs) @@ -166,6 +166,6 @@ export class FibonacciDelayStrategy implements DelayStrategy { /** * Promise-based sleep function */ -export function sleep(ms: number): Promise { +export function sleep (ms: number): Promise { return new Promise((resolve) => setTimeout(resolve, ms)) } diff --git a/foundations/core/packages/retry/src/retry.ts b/foundations/core/packages/retry/src/retry.ts index 5df6936a09..692b602660 100644 --- a/foundations/core/packages/retry/src/retry.ts +++ b/foundations/core/packages/retry/src/retry.ts @@ -54,7 +54,7 @@ export const DEFAULT_RETRY_OPTIONS: RetryOptions = { * @returns The result of the operation * @throws The last error encountered after all retries have been exhausted */ -export async function withRetry( +export async function withRetry ( operation: () => Promise, options: Partial = {}, operationName: string = 'operation' @@ -117,7 +117,7 @@ export async function withRetry( * @param operationName - Name of the operation for logging * @returns A wrapped function that applies retry logic */ -export function createRetryableFunction Promise>( +export function createRetryableFunction Promise> ( fn: T, options: Partial = {}, operationName: string = 'operation' diff --git a/foundations/core/packages/rpc/src/rpc.ts b/foundations/core/packages/rpc/src/rpc.ts index cab4593d11..08dc996873 100644 --- a/foundations/core/packages/rpc/src/rpc.ts +++ b/foundations/core/packages/rpc/src/rpc.ts @@ -182,7 +182,7 @@ export class RPCHandler { * @param response - * @returns */ - readResponse(response: any, binary: boolean): Response { + readResponse (response: any, binary: boolean): Response { const data = this.protoDeserialize(response, binary) if (data.result !== undefined) { data.result = rpcJSONReceiver('result', data.result) @@ -195,7 +195,7 @@ export class RPCHandler { * @param request - * @returns */ - readRequest

(request: any, binary: boolean): Request

{ + readRequest

(request: any, binary: boolean): Request

{ const result: Request

= this.protoDeserialize(request, binary) if (typeof result.method !== 'string') { throw new PlatformError(new Status(Severity.ERROR, platform.status.BadRequest, {})) diff --git a/foundations/core/packages/text-markdown/src/__tests__/markdown.test.ts b/foundations/core/packages/text-markdown/src/__tests__/markdown.test.ts index 7861452564..33f1481d5e 100644 --- a/foundations/core/packages/text-markdown/src/__tests__/markdown.test.ts +++ b/foundations/core/packages/text-markdown/src/__tests__/markdown.test.ts @@ -1196,58 +1196,58 @@ describe('markdownToMarkup -> markupToMarkdown', () => { }) }) -describe('normalizeMarkdown', () => { - it('handles null and undefined inputs', () => { - expect(normalizeMarkdown(null as any)).toBe('') - expect(normalizeMarkdown(undefined as any)).toBe('') - expect(normalizeMarkdown('')).toBe('') - }) + describe('normalizeMarkdown', () => { + it('handles null and undefined inputs', () => { + expect(normalizeMarkdown(null as any)).toBe('') + expect(normalizeMarkdown(undefined as any)).toBe('') + expect(normalizeMarkdown('')).toBe('') + }) - it('handles non-string inputs', () => { - expect(normalizeMarkdown(123 as any)).toBe('') - expect(normalizeMarkdown({} as any)).toBe('') - expect(normalizeMarkdown([] as any)).toBe('') - }) + it('handles non-string inputs', () => { + expect(normalizeMarkdown(123 as any)).toBe('') + expect(normalizeMarkdown({} as any)).toBe('') + expect(normalizeMarkdown([] as any)).toBe('') + }) - it('normalizes line endings', () => { - expect(normalizeMarkdown('line1\r\nline2\rline3\nline4')).toBe('line1\nline2\nline3\nline4') - }) + it('normalizes line endings', () => { + expect(normalizeMarkdown('line1\r\nline2\rline3\nline4')).toBe('line1\nline2\nline3\nline4') + }) - it('removes trailing whitespace and empty lines', () => { - expect(normalizeMarkdown('line1 \n \nline2 \n\n\nline3')).toBe('line1\nline2\nline3') - }) + it('removes trailing whitespace and empty lines', () => { + expect(normalizeMarkdown('line1 \n \nline2 \n\n\nline3')).toBe('line1\nline2\nline3') + }) - it('normalizes HTML tag attributes', () => { - const input = 'test' - const expected = 'test' - expect(normalizeMarkdown(input)).toBe(expected) - }) + it('normalizes HTML tag attributes', () => { + const input = 'test' + const expected = 'test' + expect(normalizeMarkdown(input)).toBe(expected) + }) - it('handles void elements correctly', () => { - expect(normalizeMarkdown('')).toBe('') - expect(normalizeMarkdown('
')).toBe('
') - expect(normalizeMarkdown('


')).toBe('
') - }) + it('handles void elements correctly', () => { + expect(normalizeMarkdown('')).toBe('') + expect(normalizeMarkdown('
')).toBe('
') + expect(normalizeMarkdown('
')).toBe('
') + }) - it('handles non-void elements correctly', () => { - expect(normalizeMarkdown('
')).toBe('
') - expect(normalizeMarkdown('')).toBe('') - }) + it('handles non-void elements correctly', () => { + expect(normalizeMarkdown('
')).toBe('
') + expect(normalizeMarkdown('')).toBe('') + }) - it('sorts attributes alphabetically', () => { - const input = 'test' - const expected = 'test' - expect(normalizeMarkdown(input)).toBe(expected) - }) + it('sorts attributes alphabetically', () => { + const input = 'test' + const expected = 'test' + expect(normalizeMarkdown(input)).toBe(expected) + }) - it('handles attributes without values', () => { - expect(normalizeMarkdown('')).toBe('') - }) + it('handles attributes without values', () => { + expect(normalizeMarkdown('')).toBe('') + }) - it('handles mixed content', () => { - const input = 'Text before\r\ntest \n\nText after ' - const expected = 'Text before\ntest\nText after' - expect(normalizeMarkdown(input)).toBe(expected) + it('handles mixed content', () => { + const input = 'Text before\r\ntest \n\nText after ' + const expected = 'Text before\ntest\nText after' + expect(normalizeMarkdown(input)).toBe(expected) + }) }) }) -}) diff --git a/foundations/core/packages/text/src/marks/colors.ts b/foundations/core/packages/text/src/marks/colors.ts index a29f83a49f..1de3411932 100644 --- a/foundations/core/packages/text/src/marks/colors.ts +++ b/foundations/core/packages/text/src/marks/colors.ts @@ -69,19 +69,19 @@ export const BackgroundColor = Extension.create({ return { setBackgroundColor: (backgroundColor: string) => - ({ commands }) => { - return this.options.types - .map((type) => commands.updateAttributes(type, { backgroundColor })) - .every((response) => response) - }, + ({ commands }) => { + return this.options.types + .map((type) => commands.updateAttributes(type, { backgroundColor })) + .every((response) => response) + }, unsetBackgroundColor: () => - ({ commands }) => { - return this.options.types - .map((type) => commands.resetAttributes(type, 'backgroundColor')) - .every((response) => response) - } + ({ commands }) => { + return this.options.types + .map((type) => commands.resetAttributes(type, 'backgroundColor')) + .every((response) => response) + } } } }) @@ -128,15 +128,15 @@ export const TextColor = Extension.create({ return { setTextColor: (color: string) => - ({ chain }) => { - return chain().setMark('textStyle', { color }).run() - }, + ({ chain }) => { + return chain().setMark('textStyle', { color }).run() + }, unsetTextColor: () => - ({ chain }) => { - return chain().unsetMark('textStyle').run() - } + ({ chain }) => { + return chain().unsetMark('textStyle').run() + } } } }) diff --git a/foundations/core/packages/text/src/markup/__tests__/utils.test.ts b/foundations/core/packages/text/src/markup/__tests__/utils.test.ts index 1fb1554f17..6a4b55e6ee 100644 --- a/foundations/core/packages/text/src/markup/__tests__/utils.test.ts +++ b/foundations/core/packages/text/src/markup/__tests__/utils.test.ts @@ -284,7 +284,7 @@ describe('pmNodeToJSON', () => { const json: MarkupNode = { type: MarkupNodeType.paragraph, - attrs: { textAlign: null as any }, + attrs: { textAlign: null }, content: [nodeText('Hello, world!')] } expect(pmNodeToJSON(node)).toEqual(json) @@ -310,7 +310,7 @@ describe('jsonToPmNode', () => { content: [ { type: MarkupNodeType.paragraph, - attrs: { textAlign: null as any }, + attrs: { textAlign: null }, content: [ { type: MarkupNodeType.text, diff --git a/foundations/server/packages/collaboration/src/storage.ts b/foundations/server/packages/collaboration/src/storage.ts index e0dc833f3d..efe678d71e 100644 --- a/foundations/server/packages/collaboration/src/storage.ts +++ b/foundations/server/packages/collaboration/src/storage.ts @@ -105,7 +105,7 @@ export async function loadCollabJson ( } const buffer = await storageAdapter.read(ctx, wsIds, blobId) - return Buffer.concat(buffer as any).toString() + return Buffer.concat(buffer).toString() } /** @public */ diff --git a/foundations/server/packages/core/src/__tests__/shared-integration.ts b/foundations/server/packages/core/src/__tests__/shared-integration.ts index 777927422c..ecc7978f86 100644 --- a/foundations/server/packages/core/src/__tests__/shared-integration.ts +++ b/foundations/server/packages/core/src/__tests__/shared-integration.ts @@ -135,14 +135,14 @@ export function runSharedIntegrationTests (adapterName: string, getContext: () = await operations.updateDoc(taskPlugin.class.Task, '' as Ref, taskId, { $push: { arr: 10 } - } as any) + }) let task: any = await client.findOne(taskPlugin.class.Task, { _id: taskId }) expect(task?.arr).toEqual([10]) await operations.updateDoc(taskPlugin.class.Task, '' as Ref, taskId, { $push: { arr: 20 } - } as any) + }) task = await client.findOne(taskPlugin.class.Task, { _id: taskId }) expect(task?.arr).toEqual([10, 20]) @@ -160,7 +160,7 @@ export function runSharedIntegrationTests (adapterName: string, getContext: () = await operations.updateDoc(taskPlugin.class.Task, '' as Ref, taskId, { $pull: { arr: 3 } - } as any) + }) const task: any = await client.findOne(taskPlugin.class.Task, { _id: taskId }) expect(task?.arr).toEqual([1, 2, 4, 5]) diff --git a/foundations/server/packages/core/src/base.ts b/foundations/server/packages/core/src/base.ts index 36d3faa507..8e5a84389f 100644 --- a/foundations/server/packages/core/src/base.ts +++ b/foundations/server/packages/core/src/base.ts @@ -50,7 +50,7 @@ export abstract class BaseMiddleware implements Middleware { protected readonly next?: Middleware ) {} - findAll( + findAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -75,7 +75,7 @@ export abstract class BaseMiddleware implements Middleware { return this.provideLoadModel(ctx, lastModelTx, hash) } - provideGroupBy( + provideGroupBy ( ctx: MeasureContext, domain: Domain, field: string, @@ -89,7 +89,7 @@ export abstract class BaseMiddleware implements Middleware { async close (): Promise {} - groupBy( + groupBy ( ctx: MeasureContext, domain: Domain, field: string, @@ -121,7 +121,7 @@ export abstract class BaseMiddleware implements Middleware { return this.provideTx(ctx, tx) } - protected provideFindAll( + protected provideFindAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, diff --git a/foundations/server/packages/core/src/benchmark/index.ts b/foundations/server/packages/core/src/benchmark/index.ts index 6468b9a80a..ba93882acc 100644 --- a/foundations/server/packages/core/src/benchmark/index.ts +++ b/foundations/server/packages/core/src/benchmark/index.ts @@ -50,7 +50,7 @@ function genData (dataSize: number): string { let benchData = '' class BenchmarkDbAdapter extends DummyDbAdapter { - async findAll>( + async findAll> ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, diff --git a/foundations/server/packages/core/src/index.ts b/foundations/server/packages/core/src/index.ts index e79fee2d6b..d94ed44006 100644 --- a/foundations/server/packages/core/src/index.ts +++ b/foundations/server/packages/core/src/index.ts @@ -15,10 +15,10 @@ // export type { StorageAdapter } from '@hcengineering/storage' -export * from './adapter' +export type * from './adapter' export * from './base' export * from './benchmark' -export * from './configuration' +export type * from './configuration' export * from './limitter' export * from './mem' export * from './pagination' diff --git a/foundations/server/packages/core/src/mem.ts b/foundations/server/packages/core/src/mem.ts index 511dd92009..929bd9e61e 100644 --- a/foundations/server/packages/core/src/mem.ts +++ b/foundations/server/packages/core/src/mem.ts @@ -44,7 +44,7 @@ import type { ServerFindOptions } from './types' export class DummyDbAdapter implements DbAdapter { on?: ((handler: DbAdapterHandler) => void) | undefined - async traverse( + async traverse ( domain: Domain, query: DocumentQuery, options?: Pick, 'sort' | 'limit' | 'projection'> @@ -55,7 +55,7 @@ export class DummyDbAdapter implements DbAdapter { } } - async findAll( + async findAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -114,7 +114,7 @@ export class DummyDbAdapter implements DbAdapter { return Promise.resolve('') } - async groupBy( + async groupBy ( ctx: MeasureContext, domain: Domain, field: string, @@ -123,17 +123,17 @@ export class DummyDbAdapter implements DbAdapter { return new Map() } - async rawFindAll(domain: Domain, query: DocumentQuery, options?: FindOptions): Promise { + async rawFindAll (domain: Domain, query: DocumentQuery, options?: FindOptions): Promise { return [] } - async rawUpdate( + async rawUpdate ( domain: Domain, query: DocumentQuery, operations: DocumentUpdate ): Promise {} - async rawDeleteMany(domain: Domain, query: DocumentQuery): Promise {} + async rawDeleteMany (domain: Domain, query: DocumentQuery): Promise {} } class InMemoryAdapter extends DummyDbAdapter implements DbAdapter { @@ -144,7 +144,7 @@ class InMemoryAdapter extends DummyDbAdapter implements DbAdapter { this.modeldb = new ModelDb(hierarchy) } - findAll( + findAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, diff --git a/foundations/server/packages/core/src/pagination.ts b/foundations/server/packages/core/src/pagination.ts index d9073966b7..89bc4baedd 100644 --- a/foundations/server/packages/core/src/pagination.ts +++ b/foundations/server/packages/core/src/pagination.ts @@ -256,7 +256,7 @@ export function preparePageProjection ( added.add(field) } } - return { projection: patched as FindOptions['projection'], added } + return { projection: patched, added } } /** diff --git a/foundations/server/packages/core/src/pipeline.ts b/foundations/server/packages/core/src/pipeline.ts index 31763f75b1..c59912ef85 100644 --- a/foundations/server/packages/core/src/pipeline.ts +++ b/foundations/server/packages/core/src/pipeline.ts @@ -102,7 +102,7 @@ class PipelineImpl implements Pipeline { return current } - findAll( + findAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -115,7 +115,7 @@ class PipelineImpl implements Pipeline { return this.head?.loadModel(ctx, lastModelTx, hash) ?? Promise.resolve([]) } - groupBy( + groupBy ( ctx: MeasureContext, domain: Domain, field: string, @@ -136,7 +136,7 @@ class PipelineImpl implements Pipeline { return this.head?.handleBroadcast(ctx) ?? emptyBroadcastResult } - domainRequest( + domainRequest ( ctx: MeasureContext, domain: OperationDomain, params: DomainParams diff --git a/foundations/server/packages/core/src/queue/dummyQueue.ts b/foundations/server/packages/core/src/queue/dummyQueue.ts index b4c1d9e9ce..e3c7a17120 100644 --- a/foundations/server/packages/core/src/queue/dummyQueue.ts +++ b/foundations/server/packages/core/src/queue/dummyQueue.ts @@ -22,7 +22,7 @@ class DummyQueueProducer implements PlatformQueueProducer { * A dummy implementation of PlatformQueue for testing and development */ export class DummyQueue implements PlatformQueue { - getProducer(ctx: MeasureContext, topic: QueueTopic | string): PlatformQueueProducer { + getProducer (ctx: MeasureContext, topic: QueueTopic | string): PlatformQueueProducer { return new DummyQueueProducer() } @@ -34,7 +34,7 @@ export class DummyQueue implements PlatformQueue { async createTopic (topics: string | string[], partitions: number): Promise {} - createConsumer( + createConsumer ( ctx: MeasureContext, topic: QueueTopic | string, groupId: string, diff --git a/foundations/server/packages/core/src/types.ts b/foundations/server/packages/core/src/types.ts index 9f8f1d5ba9..dedcc4420e 100644 --- a/foundations/server/packages/core/src/types.ts +++ b/foundations/server/packages/core/src/types.ts @@ -734,7 +734,8 @@ export interface AddSessionActive { } export type GetWorkspaceResponse = - { upgrade: true, progress?: number } | { error: any, terminate?: boolean, specialError?: 'archived' | 'migration' } + | { upgrade: true, progress?: number } + | { error: any, terminate?: boolean, specialError?: 'archived' | 'migration' } export type AddSessionResponse = AddSessionActive | GetWorkspaceResponse diff --git a/foundations/server/packages/core/src/utils.ts b/foundations/server/packages/core/src/utils.ts index c9586d9149..a438b0c631 100644 --- a/foundations/server/packages/core/src/utils.ts +++ b/foundations/server/packages/core/src/utils.ts @@ -197,11 +197,11 @@ export class SessionDataImpl implements SessionData { _contextCache: Map | undefined, readonly modelDb: ModelDb, readonly socialStringsToUsers: Map< - PersonId, - { - accontUuid: AccountUuid - role: AccountRole - } + PersonId, + { + accontUuid: AccountUuid + role: AccountRole + } >, readonly service: string, readonly grant?: PermissionsGrant @@ -332,7 +332,7 @@ export function wrapPipeline ( docs: page.docs.map((doc) => pipeline.context.hierarchy.updateLookupMixin(_class, doc, options)) } }, - iterateAll: async function * (_class, query, options) { + iterateAll: async function* (_class, query, options) { let cursor: string | undefined do { const page = await this.findAllPage(_class, query, { @@ -340,7 +340,7 @@ export function wrapPipeline ( limit: options?.limit ?? 500, cursor }) - yield * page.docs + yield* page.docs cursor = page.nextCursor } while (cursor !== undefined) }, @@ -388,7 +388,7 @@ export function wrapAdapterToClient (ctx: MeasureContext, storageAdapter: DbAdap pushHandler (): void {} - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -396,7 +396,7 @@ export function wrapAdapterToClient (ctx: MeasureContext, storageAdapter: DbAdap return (await storageAdapter.findAll(ctx, _class, query, options)) as any } - async findAllPage( + async findAllPage ( _class: Ref>, query: DocumentQuery, options: FindPageOptions @@ -417,7 +417,7 @@ export function wrapAdapterToClient (ctx: MeasureContext, storageAdapter: DbAdap ) } - async domainRequest(domain: OperationDomain, params: DomainParams): Promise> { + async domainRequest (domain: OperationDomain, params: DomainParams): Promise> { return { domain, value: null as any } } @@ -497,7 +497,7 @@ export class OneSecondCountersImpl implements OneSecondCounters { this.counters.set(counter, (this.counters.get(counter) ?? 0) + count) } - async withCounter(counter: string, count: number, op: () => Promise): Promise { + async withCounter (counter: string, count: number, op: () => Promise): Promise { this.add(counter, count) const id = ++this.ids const vv: TimerOp = [platformNow(), counter, count, false] diff --git a/foundations/server/packages/datalake/src/client.ts b/foundations/server/packages/datalake/src/client.ts index db128038df..99fee800de 100644 --- a/foundations/server/packages/datalake/src/client.ts +++ b/foundations/server/packages/datalake/src/client.ts @@ -490,7 +490,7 @@ async function toBuffer (data: Buffer | string | Readable): Promise { for await (const chunk of data) { chunks.push(chunk) } - return Buffer.concat(chunks as any) + return Buffer.concat(chunks) } else { throw new TypeError('Unsupported data type') } diff --git a/foundations/server/packages/datalake/src/index.ts b/foundations/server/packages/datalake/src/index.ts index 1884e6b09a..c2e5c6fef1 100644 --- a/foundations/server/packages/datalake/src/index.ts +++ b/foundations/server/packages/datalake/src/index.ts @@ -246,7 +246,7 @@ export class DatalakeService implements StorageAdapter { return this.client.getObjectUrl(ctx, wsIds.uuid, objectName) } - async retry(ctx: MeasureContext, op: () => Promise): Promise { + async retry (ctx: MeasureContext, op: () => Promise): Promise { return await withRetry(ctx, this.retryCount, op, this.retryInterval) } } diff --git a/foundations/server/packages/kafka/src/index.ts b/foundations/server/packages/kafka/src/index.ts index d35c81b43c..9e28fff069 100644 --- a/foundations/server/packages/kafka/src/index.ts +++ b/foundations/server/packages/kafka/src/index.ts @@ -95,7 +95,7 @@ class PlatformQueueImpl implements PlatformQueue { } } - getProducer(ctx: MeasureContext, topic: QueueTopic | string): PlatformQueueProducer { + getProducer (ctx: MeasureContext, topic: QueueTopic | string): PlatformQueueProducer { const producer = this.producers.get(topic) if (producer !== undefined && !producer.isClosed()) return producer @@ -105,7 +105,7 @@ class PlatformQueueImpl implements PlatformQueue { return created } - createConsumer( + createConsumer ( ctx: MeasureContext, topic: QueueTopic | string, groupId: string, @@ -295,7 +295,8 @@ class PlatformQueueConsumerImpl implements ConsumerHandle { await this.doSubscribe() await this.cc.run({ - eachMessage: async ({ topic, message, pause, heartbeat }) => { + eachMessage: async (payload) => { + const { message } = payload const msgKey = message.key?.toString() ?? '' const msgData = JSON.parse(message.value?.toString() ?? '{}') const meta = JSON.parse(message.headers?.meta?.toString() ?? '{}') @@ -309,7 +310,12 @@ class PlatformQueueConsumerImpl implements ConsumerHandle { await this.ctx.with( 'handle-msg', {}, - (ctx) => this.onMessage(ctx, { workspace, value: msgData }, { heartbeat, pause }), + (ctx) => + this.onMessage( + ctx, + { workspace, value: msgData }, + { heartbeat: () => payload.heartbeat(), pause: () => payload.pause() } + ), {}, { meta @@ -318,7 +324,7 @@ class PlatformQueueConsumerImpl implements ConsumerHandle { break } catch (err: any) { this.ctx.error('failed to process message', { err, msgKey, msgData, workspace }) - await heartbeat() + await payload.heartbeat() await new Promise((resolve) => setTimeout(resolve, to * retryDelay)) if (to < maxRetryDelay) { to++ diff --git a/foundations/server/packages/middleware/src/domainFind.ts b/foundations/server/packages/middleware/src/domainFind.ts index d5b1b996bf..685ae07656 100644 --- a/foundations/server/packages/middleware/src/domainFind.ts +++ b/foundations/server/packages/middleware/src/domainFind.ts @@ -50,7 +50,7 @@ export class DomainFindMiddleware extends BaseMiddleware implements Middleware { return opt } - findAll( + findAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -79,7 +79,7 @@ export class DomainFindMiddleware extends BaseMiddleware implements Middleware { ) } - groupBy( + groupBy ( ctx: MeasureContext, domain: Domain, field: string, diff --git a/foundations/server/packages/middleware/src/findSecurity.ts b/foundations/server/packages/middleware/src/findSecurity.ts index e2d1e818bc..334d54b567 100644 --- a/foundations/server/packages/middleware/src/findSecurity.ts +++ b/foundations/server/packages/middleware/src/findSecurity.ts @@ -44,7 +44,7 @@ export class FindSecurityMiddleware extends BaseMiddleware implements Middleware return new FindSecurityMiddleware(context, next) } - findAll( + findAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, diff --git a/foundations/server/packages/middleware/src/fulltext.ts b/foundations/server/packages/middleware/src/fulltext.ts index 08ca12eb64..46147d1ac1 100644 --- a/foundations/server/packages/middleware/src/fulltext.ts +++ b/foundations/server/packages/middleware/src/fulltext.ts @@ -74,7 +74,7 @@ export class FullTextMiddleware extends BaseMiddleware implements Middleware { ) } - async search( + async search ( _classes: Ref>[], query: DocumentQuery, fullTextLimit: number @@ -108,7 +108,7 @@ export class FullTextMiddleware extends BaseMiddleware implements Middleware { addExtraFind?: (_class: Ref>, childs: Set>>) => void - async findAll( + async findAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -245,7 +245,7 @@ export class FullTextMiddleware extends BaseMiddleware implements Middleware { return result } - private async findDocuments( + private async findDocuments ( classes: Ref>[], findQuery: DocumentQuery, fullTextLimit: number, @@ -277,7 +277,7 @@ export class FullTextMiddleware extends BaseMiddleware implements Middleware { return { docs, indexedDocMap } } - private async findChildDocuments( + private async findChildDocuments ( classes: Ref>[], findQuery: DocumentQuery, fullTextLimit: number, diff --git a/foundations/server/packages/middleware/src/guestPermissions.ts b/foundations/server/packages/middleware/src/guestPermissions.ts index ac038ee824..9577a68f74 100644 --- a/foundations/server/packages/middleware/src/guestPermissions.ts +++ b/foundations/server/packages/middleware/src/guestPermissions.ts @@ -63,9 +63,10 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle const allPermissionIds = new Set>() for (const group of docs as any[]) { if (group.enabled === false) continue - const role = ((group.role as AccountRole | undefined) ?? + const role = + (group.role as AccountRole | undefined) ?? (Array.isArray(group.roles) && group.roles.length > 0 ? (group.roles[0] as AccountRole) : undefined) ?? - AccountRole.Guest) as AccountRole + AccountRole.Guest const permissions = (group.permissions ?? []) as Ref[] const disabled = new Set>((group.disabledPermissions ?? []) as Ref[]) const current = rolePermissions.get(role) ?? new Set>() @@ -78,11 +79,9 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle } const classPermissions = allPermissionIds.size > 0 - ? await this.findAll( - ctx, - core.class.ClassPermission as Ref>, - { _id: { $in: Array.from(allPermissionIds) } } as any - ) + ? await this.findAll(ctx, core.class.ClassPermission, { + _id: { $in: Array.from(allPermissionIds) as Array> } + }) : [] const permissionToClass = new Map, Ref>>( classPermissions @@ -354,7 +353,8 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle } if (accessLevelMixin.isIdentity === true && h.isDerived(tx.objectClass, contact.class.Person)) { const person = (await this.findAll(ctx, tx.objectClass, { _id: tx.objectId }, { limit: 1 }))[0] as - Person | undefined + | Person + | undefined return person?.personUuid === account.uuid } return accessLevelMixin.updateAccessLevel === AccountRole.Guest diff --git a/foundations/server/packages/middleware/src/liveQuery.ts b/foundations/server/packages/middleware/src/liveQuery.ts index 794ff127e6..831e1ceaea 100644 --- a/foundations/server/packages/middleware/src/liveQuery.ts +++ b/foundations/server/packages/middleware/src/liveQuery.ts @@ -74,9 +74,9 @@ export class LiveQueryMiddleware extends BaseMiddleware implements Middleware { total: options.total === true ? results.length : undefined } }, - iterateAll: async function * (_class, query, options) { + iterateAll: async function* (_class, query, options) { const results = await this.findAll(_class, query, options) - yield * results + yield* results }, findOne: async (_class, query, options) => { const _ctx: MeasureContext = (options as ServerFindOptions)?.ctx ?? metrics diff --git a/foundations/server/packages/middleware/src/lookup.ts b/foundations/server/packages/middleware/src/lookup.ts index ebf3aaf096..f7b600ecb9 100644 --- a/foundations/server/packages/middleware/src/lookup.ts +++ b/foundations/server/packages/middleware/src/lookup.ts @@ -45,7 +45,7 @@ export class LookupMiddleware extends BaseMiddleware implements Middleware { return new LookupMiddleware(context, next) } - override async findAll( + override async findAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -99,7 +99,7 @@ export class LookupMiddleware extends BaseMiddleware implements Middleware { return this.cleanQuery(result, query, undefined, new Set(options?.pagination?.fields.map(({ field }) => field))) } - private cleanQuery( + private cleanQuery ( result: FindResult, query: DocumentQuery, lookupMap?: Record, @@ -116,7 +116,7 @@ export class LookupMiddleware extends BaseMiddleware implements Middleware { if (typeof v === 'string' || typeof v === 'number' || typeof v === 'boolean') { if ((_doc as any)[k] === v) { if (!cloned) { - _doc = { ...doc } as any + _doc = { ...doc } cloned = true } // eslint-disable-next-line @typescript-eslint/no-dynamic-delete diff --git a/foundations/server/packages/middleware/src/lowLevel.ts b/foundations/server/packages/middleware/src/lowLevel.ts index 51ac86472b..ad2a7b2b98 100644 --- a/foundations/server/packages/middleware/src/lowLevel.ts +++ b/foundations/server/packages/middleware/src/lowLevel.ts @@ -58,7 +58,7 @@ export class LowLevelMiddleware extends BaseMiddleware implements Middleware { clean (ctx: MeasureContext, domain: Domain, docs: Ref[]): Promise { return adapterManager.getAdapter(domain, true).clean(ctx, domain, docs) }, - groupBy( + groupBy ( ctx: MeasureContext, domain: Domain, field: string, @@ -66,10 +66,10 @@ export class LowLevelMiddleware extends BaseMiddleware implements Middleware { ): Promise> { return adapterManager.getAdapter(domain, false).groupBy(ctx, domain, field, query) }, - rawFindAll(domain: Domain, query: DocumentQuery, options?: FindOptions): Promise { + rawFindAll (domain: Domain, query: DocumentQuery, options?: FindOptions): Promise { return adapterManager.getAdapter(domain, false).rawFindAll(domain, query, options) }, - rawUpdate(domain: Domain, query: DocumentQuery, operations: DocumentUpdate): Promise { + rawUpdate (domain: Domain, query: DocumentQuery, operations: DocumentUpdate): Promise { return adapterManager.getAdapter(domain, true).rawUpdate(domain, query, operations) }, rawDeleteMany (domain, query) { @@ -78,7 +78,7 @@ export class LowLevelMiddleware extends BaseMiddleware implements Middleware { getDomainHash (ctx: MeasureContext, domain: Domain): Promise { return adapterManager.getAdapter(domain, false).getDomainHash(ctx, domain) }, - traverse( + traverse ( domain: Domain, query: DocumentQuery, options?: Pick, 'sort' | 'limit' | 'projection'> diff --git a/foundations/server/packages/middleware/src/model.ts b/foundations/server/packages/middleware/src/model.ts index 2388afd385..c028d5e34f 100644 --- a/foundations/server/packages/middleware/src/model.ts +++ b/foundations/server/packages/middleware/src/model.ts @@ -86,7 +86,7 @@ export class ModelMiddleware extends BaseMiddleware implements Middleware { return allUserTxes.filter((it) => !isAccountTx(it as TxCUD)) } - findAll( + findAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, diff --git a/foundations/server/packages/middleware/src/normalizeTx.ts b/foundations/server/packages/middleware/src/normalizeTx.ts index b85ceab684..ec9d3a0fc3 100644 --- a/foundations/server/packages/middleware/src/normalizeTx.ts +++ b/foundations/server/packages/middleware/src/normalizeTx.ts @@ -121,7 +121,7 @@ export class NormalizeTxMiddleware extends BaseMiddleware implements Middleware createdBy: createdBy as PersonId | undefined, createdOn, objectSpace: objectSpace as Ref, - meta: meta as Record | undefined + meta } return baseTx } diff --git a/foundations/server/packages/middleware/src/private.ts b/foundations/server/packages/middleware/src/private.ts index a0489657fd..f785355e6e 100644 --- a/foundations/server/packages/middleware/src/private.ts +++ b/foundations/server/packages/middleware/src/private.ts @@ -96,7 +96,7 @@ export class PrivateMiddleware extends BaseMiddleware implements Middleware { return this.provideTx(ctx, txes) } - override async findAll( + override async findAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -151,7 +151,7 @@ export class PrivateMiddleware extends BaseMiddleware implements Middleware { return (doc.createdBy !== undefined && socialStrings.includes(doc.createdBy)) || account.uuid === systemAccountUuid } - filterLookup(ctx: MeasureContext, lookup: LookupData): void { + filterLookup (ctx: MeasureContext, lookup: LookupData): void { for (const key in lookup) { const val = lookup[key] if (Array.isArray(val)) { diff --git a/foundations/server/packages/middleware/src/queryJoin.ts b/foundations/server/packages/middleware/src/queryJoin.ts index 64df144fc0..52c8527d39 100644 --- a/foundations/server/packages/middleware/src/queryJoin.ts +++ b/foundations/server/packages/middleware/src/queryJoin.ts @@ -48,7 +48,7 @@ interface Query { export class QueryJoiner { private readonly queries: Map = new Map() - async query(ctx: MeasureContext, key: string, retrieve: (ctx: MeasureContext) => Promise): Promise { + async query (ctx: MeasureContext, key: string, retrieve: (ctx: MeasureContext) => Promise): Promise { // Will find a query or add + 1 to callbacks const q = this.getQuery(key) try { @@ -121,7 +121,7 @@ export class QueryJoinMiddleware extends BaseMiddleware implements Middleware { return new QueryJoinMiddleware(context, next) } - override findAll( + override findAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -138,7 +138,7 @@ export class QueryJoinMiddleware extends BaseMiddleware implements Middleware { ) } - groupBy( + groupBy ( ctx: MeasureContext, domain: Domain, field: string, diff --git a/foundations/server/packages/middleware/src/spacePermissions.ts b/foundations/server/packages/middleware/src/spacePermissions.ts index 6acd7f1634..3637605c72 100644 --- a/foundations/server/packages/middleware/src/spacePermissions.ts +++ b/foundations/server/packages/middleware/src/spacePermissions.ts @@ -27,7 +27,6 @@ import core, { type TxCreateDoc, type TxMixin, TxProcessor, - type TxRemoveDoc, type TxUpdateDoc, type TypedSpace, type MeasureContext, @@ -305,7 +304,7 @@ export class SpacePermissionsMiddleware extends BaseMiddleware implements Middle } private handleRemove (tx: TxCUD): void { - const removeTx = tx as TxRemoveDoc + const removeTx = tx if (!this.context.hierarchy.isDerived(removeTx.objectClass, core.class.Space)) return if (removeTx._class !== core.class.TxCreateDoc) return // eslint-disable-next-line @typescript-eslint/no-dynamic-delete diff --git a/foundations/server/packages/middleware/src/spaceSecurity.ts b/foundations/server/packages/middleware/src/spaceSecurity.ts index 4c8bd4223e..2b4f29aa9c 100644 --- a/foundations/server/packages/middleware/src/spaceSecurity.ts +++ b/foundations/server/packages/middleware/src/spaceSecurity.ts @@ -45,7 +45,6 @@ import core, { type TxCreateDoc, type TxCUD, TxProcessor, - type TxRemoveDoc, type TxUpdateDoc, type TxWorkspaceEvent, WorkspaceEvent @@ -360,7 +359,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } private handleRemove (tx: TxCUD): void { - const removeTx = tx as TxRemoveDoc + const removeTx = tx if (!this.context.hierarchy.isDerived(removeTx.objectClass, core.class.Space)) return if (removeTx._class !== core.class.TxRemoveDoc) return this.removeSpace(tx.objectId) @@ -571,7 +570,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar } } - private async mergeQuery( + private async mergeQuery ( ctx: MeasureContext, account: Account, query: ObjQueryType, @@ -613,7 +612,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar return domain === 'tx' ? 'objectSpace' : domain === 'space' ? '_id' : 'space' } - override async findAll( + override async findAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -733,7 +732,7 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar return result } - filterLookup(ctx: MeasureContext, lookup: LookupData, showArchived: boolean): void { + filterLookup (ctx: MeasureContext, lookup: LookupData, showArchived: boolean): void { if (Object.keys(lookup).length === 0) return const account = ctx.contextData.account if (isSystem(account, ctx)) return diff --git a/foundations/server/packages/middleware/src/tests/guestPermissions.test.ts b/foundations/server/packages/middleware/src/tests/guestPermissions.test.ts index 762de8348d..d14c67c90b 100644 --- a/foundations/server/packages/middleware/src/tests/guestPermissions.test.ts +++ b/foundations/server/packages/middleware/src/tests/guestPermissions.test.ts @@ -41,7 +41,7 @@ import core, { type Tx, TxFactory } from '@hcengineering/core' -import contact from '@hcengineering/contact' +import contact, { type ChannelProvider } from '@hcengineering/contact' import type { PipelineContext, TxMiddlewareResult } from '@hcengineering/server-core' import { GuestPermissionsMiddleware } from '../guestPermissions' @@ -80,14 +80,14 @@ function makePipelineContext (findAll?: FindAllFn): PipelineContext { workspace: { uuid: 'test-workspace' as any, url: 'test', dataId: 'test' as any }, hierarchy, modelDb: model, - branding: null as any, + branding: null, adapterManager: {} as any, storageAdapter: {} as any, contextVars: {}, lastTx: '', lastHash: '', broadcastEvent: async () => {} - } as any + } } function makeMiddleware ( @@ -191,12 +191,9 @@ describe('GuestPermissionsMiddleware', () => { patchContactHierarchy(mw) const factory = new TxFactory(account.primarySocialId) - const tx = factory.createTxUpdateDoc( - contact.class.Person as Ref>, - 'core:space:Workspace' as Ref, - otherPersonId, - { name: 'Changed' } as any - ) + const tx = factory.createTxUpdateDoc(contact.class.Person, 'core:space:Workspace' as Ref, otherPersonId, { + name: 'Changed' + } as any) await expect(mw.tx(makeCtx(account), [tx])).rejects.toThrow() }) @@ -218,12 +215,9 @@ describe('GuestPermissionsMiddleware', () => { patchContactHierarchy(mw) const factory = new TxFactory(account.primarySocialId) - const tx = factory.createTxUpdateDoc( - contact.class.Person as Ref>, - 'core:space:Workspace' as Ref, - personId, - { name: 'Changed' } as any - ) + const tx = factory.createTxUpdateDoc(contact.class.Person, 'core:space:Workspace' as Ref, personId, { + name: 'Changed' + } as any) await mw.tx(makeCtx(account), [tx]) expect(nextCalled).toBe(true) @@ -256,12 +250,9 @@ describe('GuestPermissionsMiddleware', () => { patchContactHierarchy(mw) const factory = new TxFactory(account.primarySocialId) - const tx = factory.createTxUpdateDoc( - contact.class.Channel as Ref>, - 'core:space:Workspace' as Ref, - channelId, - { value: 'new@example.com' } as any - ) + const tx = factory.createTxUpdateDoc(contact.class.Channel, 'core:space:Workspace' as Ref, channelId, { + value: 'new@example.com' + } as any) await expect(mw.tx(makeCtx(account), [tx])).rejects.toThrow() }) @@ -297,12 +288,9 @@ describe('GuestPermissionsMiddleware', () => { patchContactHierarchy(mw) const factory = new TxFactory(account.primarySocialId) - const tx = factory.createTxUpdateDoc( - contact.class.Channel as Ref>, - 'core:space:Workspace' as Ref, - channelId, - { value: 'new@example.com' } as any - ) + const tx = factory.createTxUpdateDoc(contact.class.Channel, 'core:space:Workspace' as Ref, channelId, { + value: 'new@example.com' + } as any) tx.attachedTo = ownPersonId tx.attachedToClass = contact.class.Person @@ -322,17 +310,13 @@ describe('GuestPermissionsMiddleware', () => { patchContactHierarchy(mw) const factory = new TxFactory(account.primarySocialId) - const tx = factory.createTxCreateDoc( - contact.class.Channel as Ref>, - 'contact:space:Contacts' as Ref, - { - attachedTo: otherPersonId, - attachedToClass: contact.class.Person, - collection: 'channels', - provider: 'contact:channelProvider:Email', - value: 'new@example.com' - } as any - ) + const tx = factory.createTxCreateDoc(contact.class.Channel, 'contact:space:Contacts' as Ref, { + attachedTo: otherPersonId, + attachedToClass: contact.class.Person, + collection: 'channels', + provider: 'contact:channelProvider:Email' as Ref, + value: 'new@example.com' + }) await expect(mw.tx(makeCtx(account), [tx])).rejects.toThrow() }) @@ -368,12 +352,10 @@ describe('GuestPermissionsMiddleware', () => { patchContactHierarchy(mw) const factory = new TxFactory(account.primarySocialId) - const tx = factory.createTxUpdateDoc( - contact.class.Channel as Ref>, - 'core:space:Workspace' as Ref, - channelId, - { attachedTo: otherPersonId, attachedToClass: contact.class.Person } as any - ) + const tx = factory.createTxUpdateDoc(contact.class.Channel, 'core:space:Workspace' as Ref, channelId, { + attachedTo: otherPersonId, + attachedToClass: contact.class.Person + } as any) await expect(mw.tx(makeCtx(account), [tx])).rejects.toThrow() }) @@ -397,10 +379,10 @@ describe('GuestPermissionsMiddleware', () => { const factory = new TxFactory(account.primarySocialId) const tx = factory.createTxMixin( personId, - contact.class.Person as Ref>, + contact.class.Person, 'contact:space:Contacts' as Ref, contact.mixin.Employee, - { active: true } as any + { active: true } ) await mw.tx(makeCtx(account), [tx]) @@ -422,10 +404,10 @@ describe('GuestPermissionsMiddleware', () => { const factory = new TxFactory(account.primarySocialId) const tx = factory.createTxMixin( personId, - contact.class.Person as Ref>, + contact.class.Person, 'contact:space:Contacts' as Ref, contact.mixin.Employee, - { active: true } as any + { active: true } ) await expect(mw.tx(makeCtx(account), [tx])).rejects.toThrow() @@ -445,12 +427,9 @@ describe('GuestPermissionsMiddleware', () => { patchContactHierarchy(mw) const factory = new TxFactory(account.primarySocialId) - const tx = factory.createTxUpdateDoc( - contact.class.Person as Ref>, - 'core:space:Workspace' as Ref, - otherPersonId, - { name: 'Changed' } as any - ) + const tx = factory.createTxUpdateDoc(contact.class.Person, 'core:space:Workspace' as Ref, otherPersonId, { + name: 'Changed' + } as any) await mw.tx(makeCtx(account), [tx]) expect(nextCalled).toBe(true) @@ -678,7 +657,7 @@ describe('GuestPermissionsMiddleware', () => { modifiedOn: Date.now(), modifiedBy: GUEST_SOCIAL, createdBy: GUEST_SOCIAL - } as any + } ] } return [] @@ -707,7 +686,7 @@ describe('GuestPermissionsMiddleware', () => { modifiedOn: Date.now(), modifiedBy: GUEST_SOCIAL, createdBy: GUEST_SOCIAL - } as any + } ] } return [] @@ -737,7 +716,7 @@ describe('GuestPermissionsMiddleware', () => { modifiedOn: Date.now(), modifiedBy: otherSocial, createdBy: otherSocial - } as any + } ] } return [] diff --git a/foundations/server/packages/middleware/src/tests/liveQuery.race.test.ts b/foundations/server/packages/middleware/src/tests/liveQuery.race.test.ts index a6d2c1a15b..fa10c09bbe 100644 --- a/foundations/server/packages/middleware/src/tests/liveQuery.race.test.ts +++ b/foundations/server/packages/middleware/src/tests/liveQuery.race.test.ts @@ -180,7 +180,7 @@ describe('LiveQuery Race Condition Tests', () => { workspace: { uuid: 'test-workspace' as any, url: 'test', dataId: 'test' as any }, hierarchy, modelDb: model, - branding: null as any, + branding: null, adapterManager: {} as any, storageAdapter: {} as any, contextVars: {}, @@ -350,7 +350,7 @@ describe('LiveQuery with TxOrderingMiddleware - Solution', () => { workspace: { uuid: 'test-workspace' as any, url: 'test', dataId: 'test' as any }, hierarchy, modelDb: model, - branding: null as any, + branding: null, adapterManager: {} as any, storageAdapter: {} as any, contextVars: {}, diff --git a/foundations/server/packages/middleware/src/tests/txOrdering.test.ts b/foundations/server/packages/middleware/src/tests/txOrdering.test.ts index cc082759b1..62e044cbba 100644 --- a/foundations/server/packages/middleware/src/tests/txOrdering.test.ts +++ b/foundations/server/packages/middleware/src/tests/txOrdering.test.ts @@ -88,7 +88,7 @@ describe('TxOrderingMiddleware', () => { workspace: { uuid: 'test-workspace' as any, url: 'test', dataId: 'test' as any }, hierarchy, modelDb: model, - branding: null as any, + branding: null, adapterManager: {} as any, storageAdapter: {} as any, contextVars: {}, @@ -222,7 +222,7 @@ describe('TxOrderingMiddleware', () => { workspace: { uuid: 'test-workspace' as any, url: 'test', dataId: 'test' as any }, hierarchy: new Hierarchy(), modelDb: new ModelDb(new Hierarchy()), - branding: null as any, + branding: null, adapterManager: {} as any, storageAdapter: {} as any, contextVars: {}, @@ -324,7 +324,7 @@ describe('TxOrderingMiddleware', () => { workspace: { uuid: 'test-workspace' as any, url: 'test', dataId: 'test' as any }, hierarchy: new Hierarchy(), modelDb: new ModelDb(new Hierarchy()), - branding: null as any, + branding: null, adapterManager: {} as any, storageAdapter: {} as any, contextVars: {}, @@ -353,7 +353,7 @@ describe('TxOrderingMiddleware', () => { describe('TxOrderingMiddleware Integration', () => { it('should work with provideTx flow', async () => { const ctx = new MeasureMetricsContext('test', {}) - ctx.contextData = { broadcast: { txes: [], queue: [], sessions: {} } } as any + ctx.contextData = { broadcast: { txes: [], queue: [], sessions: {} } } const hierarchy = new Hierarchy() const model = new ModelDb(hierarchy) @@ -375,7 +375,7 @@ describe('TxOrderingMiddleware Integration', () => { workspace: { uuid: 'test-workspace' as any, url: 'test', dataId: 'test' as any }, hierarchy, modelDb: model, - branding: null as any, + branding: null, adapterManager: {} as any, storageAdapter: {} as any, contextVars: {}, @@ -392,10 +392,10 @@ describe('TxOrderingMiddleware Integration', () => { const txFactory = new TxFactory(core.account.System) const docId = generateId() - const tx1 = txFactory.createTxUpdateDoc('test:class' as any, 'test:space' as any, docId as any, {} as any) + const tx1 = txFactory.createTxUpdateDoc('test:class' as any, 'test:space' as any, docId, {}) tx1.modifiedOn = 102 - const tx2 = txFactory.createTxUpdateDoc('test:class' as any, 'test:space' as any, docId as any, {} as any) + const tx2 = txFactory.createTxUpdateDoc('test:class' as any, 'test:space' as any, docId, {}) tx2.modifiedOn = 101 // Process in parallel - they should be serialized diff --git a/foundations/server/packages/middleware/src/transient.ts b/foundations/server/packages/middleware/src/transient.ts index b4038ee867..614e0d9ad8 100644 --- a/foundations/server/packages/middleware/src/transient.ts +++ b/foundations/server/packages/middleware/src/transient.ts @@ -55,7 +55,7 @@ export class TransientMiddleware extends BaseMiddleware implements Middleware { // Need to find all classes with TTL enabled const classes = context.modelDb.findAllSync(core.mixin.TransientTTL, {}) for (const cl of classes) { - this.ttlValues.set(cl._id as Ref>, cl.ttl) + this.ttlValues.set(cl._id, cl.ttl) } this.dbProvider = context.adapterManager?.getAdapter?.(DOMAIN_TRANSIENT, true) diff --git a/foundations/server/packages/middleware/src/triggers.ts b/foundations/server/packages/middleware/src/triggers.ts index 51fb2b95f2..4e2d2aa292 100644 --- a/foundations/server/packages/middleware/src/triggers.ts +++ b/foundations/server/packages/middleware/src/triggers.ts @@ -271,7 +271,7 @@ export class TriggersMiddleware extends BaseMiddleware implements Middleware { } } - private getCollectionUpdateTx( + private getCollectionUpdateTx ( _id: Ref, _class: Ref>, modifiedBy: PersonId, diff --git a/foundations/server/packages/middleware/src/versioning.ts b/foundations/server/packages/middleware/src/versioning.ts index 48b45bf2ae..a612767b77 100644 --- a/foundations/server/packages/middleware/src/versioning.ts +++ b/foundations/server/packages/middleware/src/versioning.ts @@ -54,7 +54,7 @@ export class VersioningMiddleware extends BaseMiddleware implements Middleware { return new VersioningMiddleware(context, next) } - override async findAll( + override async findAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, diff --git a/foundations/server/packages/mongo/src/storage.ts b/foundations/server/packages/mongo/src/storage.ts index 0e219e073e..3b43de8d34 100644 --- a/foundations/server/packages/mongo/src/storage.ts +++ b/foundations/server/packages/mongo/src/storage.ts @@ -165,7 +165,7 @@ abstract class MongoAdapterBase implements DbAdapter { this._db = new DBCollectionHelper(db) } - async traverse( + async traverse ( domain: Domain, query: DocumentQuery, options?: Pick, 'sort' | 'limit' | 'projection'> @@ -206,7 +206,7 @@ abstract class MongoAdapterBase implements DbAdapter { } } - private translateRawQuery(query: DocumentQuery): Filter { + private translateRawQuery (query: DocumentQuery): Filter { const translated: any = {} for (const key in query) { const value = (query as any)[key] @@ -226,7 +226,7 @@ abstract class MongoAdapterBase implements DbAdapter { return translated } - async rawFindAll(domain: Domain, query: DocumentQuery, options?: FindOptions): Promise { + async rawFindAll (domain: Domain, query: DocumentQuery, options?: FindOptions): Promise { let cursor = this.db.collection(domain).find(this.translateRawQuery(query)) if (options?.limit !== undefined) { cursor = cursor.limit(options.limit) @@ -251,7 +251,7 @@ abstract class MongoAdapterBase implements DbAdapter { return await cursor.toArray() } - async rawUpdate( + async rawUpdate ( domain: Domain, query: DocumentQuery, operations: DocumentUpdate @@ -268,13 +268,13 @@ abstract class MongoAdapterBase implements DbAdapter { } } - rawDeleteMany(domain: Domain, query: DocumentQuery): Promise { + rawDeleteMany (domain: Domain, query: DocumentQuery): Promise { return this.db.collection(domain).deleteMany(this.translateRawQuery(query)).then() } - abstract init (ctx: MeasureContext): Promise + abstract init(ctx: MeasureContext): Promise - collection(domain: Domain): Collection { + collection (domain: Domain): Collection { return this._db.collection(domain) } @@ -291,7 +291,7 @@ abstract class MongoAdapterBase implements DbAdapter { return Promise.resolve() } - private translateQuery( + private translateQuery ( clazz: Ref>, query: DocumentQuery, options?: ServerFindOptions @@ -373,7 +373,7 @@ abstract class MongoAdapterBase implements DbAdapter { return { base: translatedBase, lookup: translatedLookup } } - private getLookupValue( + private getLookupValue ( clazz: Ref>, lookup: Lookup, result: LookupStep[], @@ -456,7 +456,7 @@ abstract class MongoAdapterBase implements DbAdapter { } } - private getLookups( + private getLookups ( _class: Ref>, lookup: Lookup | undefined, parent?: string @@ -498,7 +498,7 @@ abstract class MongoAdapterBase implements DbAdapter { return res } - private fillLookup( + private fillLookup ( _class: Ref>, object: any, key: string, @@ -559,7 +559,7 @@ abstract class MongoAdapterBase implements DbAdapter { return res } - private fillLookupValue( + private fillLookupValue ( ctx: MeasureContext, clazz: Ref>, lookup: Lookup | undefined, @@ -587,7 +587,7 @@ abstract class MongoAdapterBase implements DbAdapter { } } - private fillReverseLookup( + private fillReverseLookup ( clazz: Ref>, lookup: ReverseLookups, object: any, @@ -622,7 +622,7 @@ abstract class MongoAdapterBase implements DbAdapter { } } - private fillSortPipeline( + private fillSortPipeline ( clazz: Ref>, options: FindOptions | undefined, pipeline: any[] @@ -652,7 +652,7 @@ abstract class MongoAdapterBase implements DbAdapter { } } - private async findWithPipeline( + private async findWithPipeline ( ctx: MeasureContext, domain: Domain, clazz: Ref>, @@ -779,7 +779,7 @@ abstract class MongoAdapterBase implements DbAdapter { return toFindResult(this.stripHash(result) as T[], total) } - private fillAssociations( + private fillAssociations ( obj: WithLookup, associations: AssociationQuery[], parentId: string = '', @@ -792,7 +792,7 @@ abstract class MongoAdapterBase implements DbAdapter { return obj } - private translateKey( + private translateKey ( key: string, clazz: Ref>, mixins?: Set>> @@ -831,7 +831,7 @@ abstract class MongoAdapterBase implements DbAdapter { } } - private checkMixinKey(key: string, clazz: Ref>, mixins?: Set>>): string { + private checkMixinKey (key: string, clazz: Ref>, mixins?: Set>>): string { if (!key.includes('.')) { try { const attr = this.hierarchy.findAttribute(clazz, key) @@ -847,7 +847,7 @@ abstract class MongoAdapterBase implements DbAdapter { return key } - private getEnumById(_class: Ref>, key: string): Enum | undefined { + private getEnumById (_class: Ref>, key: string): Enum | undefined { const attr = this.hierarchy.findAttribute(_class, key) if (attr !== undefined) { if (attr.type._class === core.class.EnumOf) { @@ -858,14 +858,14 @@ abstract class MongoAdapterBase implements DbAdapter { return undefined } - private isEnumSort(_class: Ref>, options?: FindOptions): boolean { + private isEnumSort (_class: Ref>, options?: FindOptions): boolean { if (options?.sort === undefined) return false return Object.keys(options.sort).some( (key) => this.hierarchy.findAttribute(_class, key)?.type?._class === core.class.EnumOf ) } - private isDate(_class: Ref>, key: string): boolean { + private isDate (_class: Ref>, key: string): boolean { const attr = this.hierarchy.findAttribute(_class, key) if (attr !== undefined) { return attr.type._class === core.class.TypeDate @@ -873,7 +873,7 @@ abstract class MongoAdapterBase implements DbAdapter { return false } - private isRulesSort(options?: FindOptions): boolean { + private isRulesSort (options?: FindOptions): boolean { if (options?.sort !== undefined) { return Object.values(options.sort).some((it) => typeof it === 'object') } @@ -881,7 +881,7 @@ abstract class MongoAdapterBase implements DbAdapter { } @withContext('groupBy') - groupBy( + groupBy ( ctx: MeasureContext, domain: Domain, field: string, @@ -904,7 +904,7 @@ abstract class MongoAdapterBase implements DbAdapter { }) } - findAll( + findAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -1028,12 +1028,12 @@ abstract class MongoAdapterBase implements DbAdapter { }) } - private collectSort( + private collectSort ( options: - | (FindOptions & { - domain?: Domain | undefined // Allow to find for Doc's in specified domain only. - }) - | undefined, + | (FindOptions & { + domain?: Domain | undefined // Allow to find for Doc's in specified domain only. + }) + | undefined, _class: Ref> ): Sort | undefined { if (options?.sort === undefined) { @@ -1053,7 +1053,7 @@ abstract class MongoAdapterBase implements DbAdapter { return sort } - private buildPaginationQuery( + private buildPaginationQuery ( _class: Ref>, options?: ServerFindOptions ): Filter | undefined { @@ -1087,12 +1087,12 @@ abstract class MongoAdapterBase implements DbAdapter { return { $or: branches } } - private calcProjection( + private calcProjection ( options: - | (FindOptions & { - domain?: Domain | undefined // Allow to find for Doc's in specified domain only. - }) - | undefined, + | (FindOptions & { + domain?: Domain | undefined // Allow to find for Doc's in specified domain only. + }) + | undefined, _class: Ref> ): Projection | undefined { if (options?.projection === undefined) { @@ -1118,7 +1118,7 @@ abstract class MongoAdapterBase implements DbAdapter { return projection } - stripHash(docs: T | T[]): T | T[] { + stripHash (docs: T | T[]): T | T[] { if (Array.isArray(docs)) { docs.forEach((it) => { if ('%hash%' in it) { @@ -1553,7 +1553,7 @@ class MongoAdapter extends MongoAdapterBase { modifiedOn: tx.modifiedOn, '%hash%': this.curHash() } - } as unknown as UpdateFilter, + }, { returnDocument: 'after', includeResultMetadata: true } ) this.handleEvent(domain, 'read', 1) diff --git a/foundations/server/packages/mongo/src/utils.ts b/foundations/server/packages/mongo/src/utils.ts index f1fc4105c4..4716485500 100644 --- a/foundations/server/packages/mongo/src/utils.ts +++ b/foundations/server/packages/mongo/src/utils.ts @@ -166,10 +166,10 @@ export class DBCollectionHelper implements DomainHelperOperations { } } - collection(domain: Domain): Collection { + collection (domain: Domain): Collection { let info = this.collections.get(domain) if (info === undefined) { - info = this.db.collection(domain as string) + info = this.db.collection(domain) this.collections.set(domain, info) } return info @@ -177,7 +177,7 @@ export class DBCollectionHelper implements DomainHelperOperations { async create (domain: Domain): Promise { if (this.collections.get(domain) === undefined) { - const coll = this.db.collection(domain as string) + const coll = this.db.collection(domain) this.collections.set(domain, coll) while (true) { diff --git a/foundations/server/packages/postgres/src/storage.ts b/foundations/server/packages/postgres/src/storage.ts index 2850c4bcc4..85e8c9bde6 100644 --- a/foundations/server/packages/postgres/src/storage.ts +++ b/foundations/server/packages/postgres/src/storage.ts @@ -111,7 +111,7 @@ import { simpleEscape, toWithLookup } from './utils' -async function * createCursorGenerator ( +async function* createCursorGenerator ( client: postgres.Sql, sql: string, params: any, @@ -236,7 +236,7 @@ abstract class PostgresAdapterBase implements DbAdapter { } } - async traverse( + async traverse ( _domain: Domain, query: DocumentQuery, options?: Pick, 'sort' | 'limit' | 'projection'> @@ -281,7 +281,7 @@ abstract class PostgresAdapterBase implements DbAdapter { on?: ((handler: DbAdapterHandler) => void) | undefined - abstract init ( + abstract init( ctx: MeasureContext, contextVars: Record, domains?: string[], @@ -293,7 +293,7 @@ abstract class PostgresAdapterBase implements DbAdapter { this.refClient.close() } - async rawFindAll(_domain: Domain, query: DocumentQuery, options?: FindOptions): Promise { + async rawFindAll (_domain: Domain, query: DocumentQuery, options?: FindOptions): Promise { const domain = translateDomain(_domain) const vars = new ValuesVariables() const select = `SELECT ${this.getProjection(vars, domain, options?.projection, [])} FROM ${domain}` @@ -312,7 +312,7 @@ abstract class PostgresAdapterBase implements DbAdapter { return result.map((p) => parseDocWithProjection(p, domain, options?.projection)) } - buildRawOrder(domain: string, sort: SortingQuery): string { + buildRawOrder (domain: string, sort: SortingQuery): string { const res: string[] = [] for (const key in sort) { const val = sort[key] @@ -332,7 +332,7 @@ abstract class PostgresAdapterBase implements DbAdapter { } } - buildRawQuery( + buildRawQuery ( vars: ValuesVariables, domain: string, query: DocumentQuery, @@ -351,7 +351,7 @@ abstract class PostgresAdapterBase implements DbAdapter { return res.join(' AND ') } - async rawUpdate( + async rawUpdate ( domain: Domain, query: DocumentQuery, operations: DocumentUpdate @@ -410,7 +410,7 @@ abstract class PostgresAdapterBase implements DbAdapter { } } - private async rawUpdateDoc( + private async rawUpdateDoc ( domain: Domain, query: DocumentQuery, operations: DocumentUpdate, @@ -443,7 +443,7 @@ abstract class PostgresAdapterBase implements DbAdapter { }) } - async rawDeleteMany(domain: Domain, query: DocumentQuery): Promise { + async rawDeleteMany (domain: Domain, query: DocumentQuery): Promise { const vars = new ValuesVariables() const translatedQuery = this.buildRawQuery(vars, domain, query) await this.mgr.retry(undefined, this.mgrId, async (client) => { @@ -451,7 +451,7 @@ abstract class PostgresAdapterBase implements DbAdapter { }) } - findAll( + findAll ( ctx: MeasureContext, _class: Ref>, query: DocumentQuery, @@ -577,7 +577,7 @@ abstract class PostgresAdapterBase implements DbAdapter { ) } - private localizeProjection( + private localizeProjection ( _class: Ref>, projection: Projection | undefined ): Projection | undefined { @@ -612,12 +612,12 @@ abstract class PostgresAdapterBase implements DbAdapter { return res } - private buildJoins(_class: Ref>, options: ServerFindOptions | undefined): JoinProps[] { + private buildJoins (_class: Ref>, options: ServerFindOptions | undefined): JoinProps[] { const joins = this.buildJoin(_class, options?.lookup) return joins } - addSecurity( + addSecurity ( _class: Ref>, vars: ValuesVariables, query: DocumentQuery, @@ -654,7 +654,7 @@ abstract class PostgresAdapterBase implements DbAdapter { } } - private async parseLookup( + private async parseLookup ( ctx: MeasureContext, rows: any[], joins: JoinProps[], @@ -850,9 +850,9 @@ abstract class PostgresAdapterBase implements DbAdapter { shouldCreate: boolean = true ): | { - obj: any - key: string - } + obj: any + key: string + } | undefined { const path = fullPath.split('.') for (let i = 0; i < path.length; i++) { @@ -878,7 +878,7 @@ abstract class PostgresAdapterBase implements DbAdapter { } } - private getModelLookupValue(doc: WithLookup, join: JoinProps, otherJoins: JoinProps[]): any { + private getModelLookupValue (doc: WithLookup, join: JoinProps, otherJoins: JoinProps[]): any { if (join.fromAlias.startsWith('lookup_')) { const other = otherJoins.find((j) => j.toAlias === join.fromAlias) if (other !== undefined) { @@ -913,7 +913,7 @@ abstract class PostgresAdapterBase implements DbAdapter { return res.join(' ') } - private buildJoin(clazz: Ref>, lookup: Lookup | undefined): JoinProps[] { + private buildJoin (clazz: Ref>, lookup: Lookup | undefined): JoinProps[] { const res: JoinProps[] = [] if (lookup !== undefined) { this.buildJoinValue(clazz, lookup, res) @@ -928,7 +928,7 @@ abstract class PostgresAdapterBase implements DbAdapter { return false } - private buildJoinValue( + private buildJoinValue ( clazz: Ref>, lookup: Lookup, res: JoinProps[], @@ -1041,7 +1041,7 @@ abstract class PostgresAdapterBase implements DbAdapter { } catch {} } - private buildOrder( + private buildOrder ( _class: Ref>, baseDomain: string, sort: SortingQuery, @@ -1097,7 +1097,7 @@ abstract class PostgresAdapterBase implements DbAdapter { } } - private buildPaginationQuery( + private buildPaginationQuery ( vars: ValuesVariables, _class: Ref>, baseDomain: string, @@ -1149,7 +1149,7 @@ abstract class PostgresAdapterBase implements DbAdapter { * Builds a keyset comparison term: an SQL expression for a cursor field along with a value * normalized to the type the expression yields. */ - private getPaginationTerm( + private getPaginationTerm ( _class: Ref>, baseDomain: string, field: string, @@ -1179,7 +1179,7 @@ abstract class PostgresAdapterBase implements DbAdapter { return { expression, value } } - private buildQuery( + private buildQuery ( vars: ValuesVariables, _class: Ref>, baseDomain: string, @@ -1213,7 +1213,7 @@ abstract class PostgresAdapterBase implements DbAdapter { return res.join(' AND ') } - private getValueType(_class: Ref>, key: string): ValueType { + private getValueType (_class: Ref>, key: string): ValueType { const splitted = key.split('.') const mixinOrKey = splitted[0] const domain = this.hierarchy.getDomain(_class) @@ -1233,7 +1233,7 @@ abstract class PostgresAdapterBase implements DbAdapter { } } - private fillClass( + private fillClass ( _class: Ref>, query: DocumentQuery ): ObjQueryType | undefined { @@ -1284,7 +1284,7 @@ abstract class PostgresAdapterBase implements DbAdapter { return value } - private getKey( + private getKey ( _class: Ref>, baseDomain: string, key: string, @@ -1317,7 +1317,7 @@ abstract class PostgresAdapterBase implements DbAdapter { return `${join.toAlias}."${tKey}"` } - private transformKey( + private transformKey ( domain: string, _class: Ref>, key: string, @@ -1351,7 +1351,7 @@ abstract class PostgresAdapterBase implements DbAdapter { return isDataArray || isNestedField ? `data->'${tKey}'` : `data#>>'{${tKey}}'` } - private checkMixinKey(key: string, _class: Ref>, isDataArray: boolean): string { + private checkMixinKey (key: string, _class: Ref>, isDataArray: boolean): string { if (!key.includes('.')) { try { const attr = this.hierarchy.findAttribute(_class, key) @@ -1556,7 +1556,7 @@ abstract class PostgresAdapterBase implements DbAdapter { return Date.now().toString(16) // Current hash value } - private getProjection( + private getProjection ( vars: ValuesVariables, baseDomain: string, projection: Projection | undefined, @@ -1596,7 +1596,7 @@ abstract class PostgresAdapterBase implements DbAdapter { return [] } - stripHash(docs: T | T[]): T | T[] { + stripHash (docs: T | T[]): T | T[] { if (Array.isArray(docs)) { docs.forEach((it) => { if ('%hash%' in it) { @@ -1802,7 +1802,7 @@ abstract class PostgresAdapterBase implements DbAdapter { } } - groupBy( + groupBy ( ctx: MeasureContext, domain: Domain, field: string, @@ -2060,7 +2060,7 @@ export class PostgresAdapter extends PostgresAdapterBase { return result } - private updateDoc( + private updateDoc ( ctx: MeasureContext, domain: Domain, txes: TxUpdateDoc[], diff --git a/foundations/server/packages/postgres/src/utils.ts b/foundations/server/packages/postgres/src/utils.ts index c747437137..959fa692c0 100644 --- a/foundations/server/packages/postgres/src/utils.ts +++ b/foundations/server/packages/postgres/src/utils.ts @@ -73,9 +73,9 @@ export async function createTables ( loadedTables = loadedTables.size === 0 ? new Set( - ( - await ctx.with('load-table', {}, () => - client.unsafe(` + ( + await ctx.with('load-table', {}, () => + client.unsafe(` SELECT table_name FROM information_schema.tables WHERE table_schema NOT IN ('pg_catalog', 'information_schema') @@ -83,9 +83,9 @@ export async function createTables ( AND table_name NOT LIKE 'cluster_%' AND table_name NOT LIKE 'kv_%' AND table_name NOT LIKE 'node_%'`) - ) - ).map((it) => it.table_name) - ) + ) + ).map((it) => it.table_name) + ) : loadedTables console.log('load-table', platformNowDiff(t)) @@ -273,9 +273,9 @@ export function parseUpdate ( ops: DocumentUpdate | MixinUpdate, schemaFields: SchemaAndFields ): { - extractedFields: Partial - remainingData: Partial - } { + extractedFields: Partial + remainingData: Partial +} { const extractedFields: Partial = {} const remainingData: Partial = {} @@ -424,7 +424,7 @@ export function filterProjection (data: any, projection: Projecti // Determine if this is an inclusion or exclusion projection // Exclusion: has any field with value 0 // Inclusion: has any field with value 1 - const projectionValues = Object.values(projection as any) + const projectionValues = Object.values(projection) const hasExclusion = projectionValues.some((v) => v === 0) const hasInclusion = projectionValues.some((v) => v === 1 || typeof v === 'object') diff --git a/foundations/server/packages/server-storage/src/fallback.ts b/foundations/server/packages/server-storage/src/fallback.ts index 354adff9c8..7d6f22f4a9 100644 --- a/foundations/server/packages/server-storage/src/fallback.ts +++ b/foundations/server/packages/server-storage/src/fallback.ts @@ -77,8 +77,11 @@ export class FallbackStorageAdapter implements StorageAdapter, StorageAdapterEx next: async () => { while (true) { if (iterator === undefined && adapters.length > 0) { - provider = adapters.shift() as NamedStorageAdapter - iterator = await provider.adapter.listStream(ctx, wsIds) + const nextProvider = adapters.shift() + if (nextProvider !== undefined) { + provider = nextProvider + iterator = await provider.adapter.listStream(ctx, wsIds) + } } if (iterator === undefined) { return [] diff --git a/foundations/server/packages/server-storage/src/tests/aggregator.spec.ts b/foundations/server/packages/server-storage/src/tests/aggregator.spec.ts index 8d75460c5f..2ebebaad36 100644 --- a/foundations/server/packages/server-storage/src/tests/aggregator.spec.ts +++ b/foundations/server/packages/server-storage/src/tests/aggregator.spec.ts @@ -47,7 +47,7 @@ describe('aggregator tests', () => { const stat2 = await aggr.stat(testCtx, wsIds1, 'test') expect(stat2?.provider).toEqual('mem2') - const dta = Buffer.concat((await aggr.read(testCtx, wsIds1, 'test')) as any).toString() + const dta = Buffer.concat((await aggr.read(testCtx, wsIds1, 'test'))).toString() expect(dta).toEqual('data2') }) }) diff --git a/foundations/server/packages/server-storage/src/tests/memAdapters.ts b/foundations/server/packages/server-storage/src/tests/memAdapters.ts index a298a667e2..f0a9161c2c 100644 --- a/foundations/server/packages/server-storage/src/tests/memAdapters.ts +++ b/foundations/server/packages/server-storage/src/tests/memAdapters.ts @@ -99,7 +99,7 @@ export class MemStorageAdapter implements StorageAdapter { }) }) } - const data = Buffer.concat(buffer as any) + const data = Buffer.concat(buffer) const dataId = getDataId(wsIds) const dta = { _class: core.class.Blob, diff --git a/foundations/server/packages/server/src/__tests__/sessionManager.test.ts b/foundations/server/packages/server/src/__tests__/sessionManager.test.ts index 77b51af923..7b134eaa59 100644 --- a/foundations/server/packages/server/src/__tests__/sessionManager.test.ts +++ b/foundations/server/packages/server/src/__tests__/sessionManager.test.ts @@ -244,7 +244,7 @@ describe('TSessionManager', () => { it('should count regular users correctly', () => { const mockSession = { session: { - getUser: jest.fn().mockReturnValue('user-uuid-123' as AccountUuid) + getUser: jest.fn().mockReturnValue('user-uuid-123') } } @@ -279,17 +279,17 @@ describe('TSessionManager', () => { }, { session: { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid) + getUser: jest.fn().mockReturnValue('user-1') } }, { session: { - getUser: jest.fn().mockReturnValue('b6996120-416f-49cd-841e-e4a5d2e49c9b' as AccountUuid) + getUser: jest.fn().mockReturnValue('b6996120-416f-49cd-841e-e4a5d2e49c9b') } }, { session: { - getUser: jest.fn().mockReturnValue('user-2' as AccountUuid) + getUser: jest.fn().mockReturnValue('user-2') } } ] @@ -322,7 +322,7 @@ describe('TSessionManager', () => { [ 'session-3', { - session: { getUser: jest.fn().mockReturnValue('other-user' as AccountUuid) } + session: { getUser: jest.fn().mockReturnValue('other-user') } } ] ]) @@ -339,7 +339,7 @@ describe('TSessionManager', () => { [ 'session-1', { - session: { getUser: jest.fn().mockReturnValue('other-user' as AccountUuid) } + session: { getUser: jest.fn().mockReturnValue('other-user') } } ] ]) @@ -368,7 +368,7 @@ describe('TSessionManager', () => { const now = Date.now() const mockSession = { session: { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-1'), lastRequest: now, requests: new Map() }, @@ -398,7 +398,7 @@ describe('TSessionManager', () => { sessionManager.sessions.set('ws-healthy', { session: { - getUser: jest.fn().mockReturnValue('user-healthy' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-healthy'), lastRequest: now, requests: new Map() } @@ -415,7 +415,7 @@ describe('TSessionManager', () => { // Add 1 hung session and 2 healthy sessions (33% hung, above 25% warn threshold) sessionManager.sessions.set('ws-hung', { session: { - getUser: jest.fn().mockReturnValue('user-hung' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-hung'), lastRequest: longTimeAgo, requests: new Map() } @@ -423,7 +423,7 @@ describe('TSessionManager', () => { sessionManager.sessions.set('ws-healthy-1', { session: { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-1'), lastRequest: now, requests: new Map() } @@ -431,7 +431,7 @@ describe('TSessionManager', () => { sessionManager.sessions.set('ws-healthy-2', { session: { - getUser: jest.fn().mockReturnValue('user-2' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-2'), lastRequest: now, requests: new Map() } @@ -467,7 +467,7 @@ describe('TSessionManager', () => { sessionManager.sessions.set('ws-1', { session: { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-1'), lastRequest: now, requests } @@ -482,7 +482,7 @@ describe('TSessionManager', () => { describe('checkRate', () => { it('should check rate limit for regular user', () => { const mockSession = { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-1'), token: { extra: {} }, workspace: { uuid: 'ws-1' as WorkspaceUuid } } as any @@ -520,7 +520,7 @@ describe('TSessionManager', () => { 'session-1', { session: { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-1'), current: { find: 10, tx: 5 }, mins5: { find: 50, tx: 25 }, total: { find: 100, tx: 50 } @@ -554,7 +554,7 @@ describe('TSessionManager', () => { 'session-1', { session: { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-1'), current: { find: 0, tx: 0 }, mins5: { find: 0, tx: 0 }, total: { find: 0, tx: 0 } @@ -569,7 +569,7 @@ describe('TSessionManager', () => { 'session-2', { session: { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), // Same user + getUser: jest.fn().mockReturnValue('user-1'), // Same user current: { find: 0, tx: 0 }, mins5: { find: 0, tx: 0 }, total: { find: 0, tx: 0 } @@ -584,7 +584,7 @@ describe('TSessionManager', () => { 'session-3', { session: { - getUser: jest.fn().mockReturnValue('user-2' as AccountUuid), // Different user + getUser: jest.fn().mockReturnValue('user-2'), // Different user current: { find: 0, tx: 0 }, mins5: { find: 0, tx: 0 }, total: { find: 0, tx: 0 } @@ -875,7 +875,7 @@ describe('TSessionManager', () => { 'session-1', { session: { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-1'), getUserSocialIds: jest.fn().mockReturnValue(['social-1', 'social-2']), getRawAccount: jest.fn().mockReturnValue({ role: AccountRole.User }) } @@ -903,7 +903,7 @@ describe('TSessionManager', () => { sessionManager.workspaces.set('ws-1' as WorkspaceUuid, mockWorkspace as any) const extraSession = { - getUser: jest.fn().mockReturnValue('user-extra' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-extra'), getUserSocialIds: jest.fn().mockReturnValue(['social-extra']), getRawAccount: jest.fn().mockReturnValue({ role: AccountRole.User }) } as any @@ -947,7 +947,7 @@ describe('TSessionManager', () => { it('should handle rate limiting edge cases', () => { const mockSession = { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-1'), token: { extra: {} }, workspace: { uuid: 'ws-1' as WorkspaceUuid } } as any @@ -1082,17 +1082,17 @@ describe('TSessionManager', () => { }, { session: { - getUser: jest.fn().mockReturnValue('regular-user-1' as AccountUuid) + getUser: jest.fn().mockReturnValue('regular-user-1') } }, { session: { - getUser: jest.fn().mockReturnValue('b6996120-416f-49cd-841e-e4a5d2e49c9b' as AccountUuid) + getUser: jest.fn().mockReturnValue('b6996120-416f-49cd-841e-e4a5d2e49c9b') } }, { session: { - getUser: jest.fn().mockReturnValue('regular-user-2' as AccountUuid) + getUser: jest.fn().mockReturnValue('regular-user-2') } }, { @@ -1115,14 +1115,14 @@ describe('TSessionManager', () => { const workspaceId = 'ws-broadcast' as WorkspaceUuid const mockSession1 = { session: { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-1'), broadcast: jest.fn() }, socket: { id: 'socket-1' } } const mockSession2 = { session: { - getUser: jest.fn().mockReturnValue('user-2' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-2'), broadcast: jest.fn() }, socket: { id: 'socket-2' } @@ -1158,7 +1158,7 @@ describe('TSessionManager', () => { } const mockSession2 = { session: { - getUser: jest.fn().mockReturnValue('user-2' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-2'), broadcast: jest.fn() }, socket: { id: 'socket-2' } @@ -1194,7 +1194,7 @@ describe('TSessionManager', () => { } const mockSession2 = { session: { - getUser: jest.fn().mockReturnValue('user-2' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-2'), broadcast: jest.fn() }, socket: { id: 'socket-2' } @@ -1222,7 +1222,7 @@ describe('TSessionManager', () => { const workspaceId = 'ws-broadcast' as WorkspaceUuid const mockSession = { session: { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-1'), broadcast: jest.fn() }, socket: { id: 'socket-1' } @@ -1356,7 +1356,7 @@ describe('TSessionManager', () => { it('should broadcast to all sessions', () => { const mockSession1 = { session: { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-1'), binaryMode: false, useCompression: false }, @@ -1366,7 +1366,7 @@ describe('TSessionManager', () => { } const mockSession2 = { session: { - getUser: jest.fn().mockReturnValue('user-2' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-2'), binaryMode: false, useCompression: false }, @@ -1404,7 +1404,7 @@ describe('TSessionManager', () => { } const mockSession2 = { session: { - getUser: jest.fn().mockReturnValue('user-2' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-2'), binaryMode: false, useCompression: false }, @@ -1441,7 +1441,7 @@ describe('TSessionManager', () => { } const mockSession2 = { session: { - getUser: jest.fn().mockReturnValue('user-2' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-2'), binaryMode: false, useCompression: false }, @@ -1467,7 +1467,7 @@ describe('TSessionManager', () => { it('should not broadcast if workspace in maintenance', () => { const mockSession = { session: { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-1'), binaryMode: false, useCompression: false }, @@ -1494,7 +1494,7 @@ describe('TSessionManager', () => { const requestId = 'req-123' const mockPipeline = {} as any const mockSession = { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-1'), getRawAccount: jest.fn().mockReturnValue({ primarySocialId: 'social-1' as any }), workspace: { uuid: 'ws-1' as WorkspaceUuid }, binaryMode: true, @@ -1536,7 +1536,7 @@ describe('TSessionManager', () => { sendPong: jest.fn() } as any const mockSession = { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-1'), getRawAccount: jest.fn().mockReturnValue({ primarySocialId: 'social-1' as any }), workspace: { uuid: 'ws-1' as WorkspaceUuid }, requests: new Map() @@ -1684,7 +1684,7 @@ describe('TSessionManager', () => { 'session-1', { session: { - getUser: jest.fn().mockReturnValue('user-1' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-1'), current: { find: 5, tx: 3 }, mins5: { find: 50, tx: 30 } } @@ -1720,7 +1720,7 @@ describe('TSessionManager', () => { const mockSession = { session: { - getUser: jest.fn().mockReturnValue('user-hung' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-hung'), lastRequest: longTimeAgo, lastPing: longTimeAgo, requests: new Map(), @@ -1751,7 +1751,7 @@ describe('TSessionManager', () => { const mockSession = { session: { - getUser: jest.fn().mockReturnValue('user-idle' as AccountUuid), + getUser: jest.fn().mockReturnValue('user-idle'), lastRequest: idleTime, lastPing: idleTime, requests: new Map(), diff --git a/foundations/server/packages/server/src/client.ts b/foundations/server/packages/server/src/client.ts index 3f3700d5b2..d276963e44 100644 --- a/foundations/server/packages/server/src/client.ts +++ b/foundations/server/packages/server/src/client.ts @@ -191,7 +191,7 @@ export class ClientSession implements Session { ctx.ctx.contextData = contextData } - findAllRaw( + findAllRaw ( ctx: ClientSessionCtx, _class: Ref>, query: DocumentQuery, @@ -208,7 +208,7 @@ export class ClientSession implements Session { return Math.round((estimateDocSize(doc) * 10) / (1024 * 1024)) / 10 } - async findAll( + async findAll ( ctx: ClientSessionCtx, _class: Ref>, query: DocumentQuery, @@ -238,7 +238,7 @@ export class ClientSession implements Session { } } - async findAllPageRaw( + async findAllPageRaw ( ctx: ClientSessionCtx, _class: Ref>, query: DocumentQuery, @@ -284,7 +284,7 @@ export class ClientSession implements Session { } } - async findAllPage( + async findAllPage ( ctx: ClientSessionCtx, _class: Ref>, query: DocumentQuery, @@ -342,10 +342,10 @@ export class ClientSession implements Session { ctx: ClientSessionCtx, tx: Tx ): Promise<{ - result: TxResult - broadcastPromise: Promise - asyncsPromise: Promise | undefined - }> { + result: TxResult + broadcastPromise: Promise + asyncsPromise: Promise | undefined + }> { this.lastRequest = Date.now() this.total.tx++ this.current.tx++ @@ -541,10 +541,10 @@ export class ClientSession implements Session { domain: OperationDomain, params: DomainParams ): Promise<{ - result: DomainResult - broadcastPromise: Promise - asyncsPromise: Promise | undefined - }> { + result: DomainResult + broadcastPromise: Promise + asyncsPromise: Promise | undefined + }> { this.lastRequest = Date.now() this.total.find++ this.current.find++ diff --git a/foundations/server/packages/server/src/sessionManager.ts b/foundations/server/packages/server/src/sessionManager.ts index 066fa06223..0bc863c824 100644 --- a/foundations/server/packages/server/src/sessionManager.ts +++ b/foundations/server/packages/server/src/sessionManager.ts @@ -1392,7 +1392,7 @@ export class TSessionManager implements SessionManager { return this.limitter.checkRateLimit(service.getUser() + (service.token.extra?.service ?? '')) } - async handleRequest( + async handleRequest ( requestCtx: MeasureContext, service: S, ws: ConnectionSocket, @@ -1528,7 +1528,7 @@ export class TSessionManager implements SessionManager { } } - async handleRPC( + async handleRPC ( requestCtx: MeasureContext, service: S, method: string, @@ -1626,7 +1626,7 @@ export class TSessionManager implements SessionManager { return Array.from(this.workspaces.values()).map((it) => this.workspaceToWorkspaceStats(it)) } - private async handleHello( + private async handleHello ( request: Request, service: S, ctx: MeasureContext, diff --git a/foundations/server/packages/server/src/workspace.ts b/foundations/server/packages/server/src/workspace.ts index 120b49b55f..eab082306f 100644 --- a/foundations/server/packages/server/src/workspace.ts +++ b/foundations/server/packages/server/src/workspace.ts @@ -63,7 +63,7 @@ export class Workspace { return this.pipeline } - async with(op: (pipeline: Pipeline) => Promise): Promise { + async with (op: (pipeline: Pipeline) => Promise): Promise { this.operations++ let pipeline = this.getPipeline() if (pipeline instanceof Promise) { diff --git a/models/chunter/src/migration.ts b/models/chunter/src/migration.ts index 87ed38f030..02d8bfc0df 100644 --- a/models/chunter/src/migration.ts +++ b/models/chunter/src/migration.ts @@ -172,7 +172,7 @@ async function removeBacklinks (client: MigrationClient): Promise { } await client.deleteMany(DOMAIN_ACTIVITY, { _class: activity.class.DocUpdateMessage, - objectClass: 'chunter:class:Backlink' as Ref> + objectClass: 'chunter:class:Backlink' }) } diff --git a/models/core/src/core.ts b/models/core/src/core.ts index 2839685927..8aa7eb1d49 100644 --- a/models/core/src/core.ts +++ b/models/core/src/core.ts @@ -89,7 +89,7 @@ export class TObj implements Obj { @Prop(TypeRef(core.class.Class), core.string.ClassLabel) @Index(IndexKind.Indexed) @Hidden() - _class!: Ref> + _class!: Ref> } @Model(core.class.Doc, core.class.Obj) @@ -98,29 +98,29 @@ export class TDoc extends TObj implements Doc { @Prop(TypeRef(core.class.Doc), core.string.Id) @Hidden() // @Index(IndexKind.Indexed) // - automatically indexed by default. - _id!: Ref + _id!: Ref @Prop(TypeRef(core.class.Space), core.string.Space) @Index(IndexKind.Indexed) @Hidden() - space!: Ref + space!: Ref @Prop(TypeTimestamp(), core.string.ModifiedDate) @Index(IndexKind.Indexed) - modifiedOn!: Timestamp + modifiedOn!: Timestamp @Prop(TypePersonId(), core.string.ModifiedBy) @Index(IndexKind.Indexed) - modifiedBy!: PersonId + modifiedBy!: PersonId @Prop(TypePersonId(), core.string.CreatedBy) @Index(IndexKind.Indexed) - createdBy!: PersonId + createdBy!: PersonId @Prop(TypeTimestamp(), core.string.CreatedDate) @ReadOnly() @Index(IndexKind.IndexedDsc) - createdOn!: Timestamp + createdOn!: Timestamp } @Model(core.class.AttachedDoc, core.class.Doc) @@ -128,16 +128,16 @@ export class TAttachedDoc extends TDoc implements AttachedDoc { @Prop(TypeRef(core.class.Doc), core.string.AttachedTo) @Index(IndexKind.Indexed) @Hidden() - attachedTo!: Ref + attachedTo!: Ref @Prop(TypeRef(core.class.Class), core.string.AttachedToClass) @Index(IndexKind.Indexed) @Hidden() - attachedToClass!: Ref> + attachedToClass!: Ref> @Prop(TypeString(), core.string.Collection) @Hidden() - collection!: string + collection!: string } @Model(core.class.Association, core.class.Doc, DOMAIN_MODEL) @@ -169,16 +169,16 @@ export class TRelation extends TDoc implements Relation { export class TRelationMetadata extends TDoc implements RelationMetadata { @Prop(TypeRef(core.class.Class), core.string.Class) @Index(IndexKind.Indexed) - sourceClass!: Ref> + sourceClass!: Ref> @Prop(TypeRef(core.class.Class), core.string.TargetClass) - targetClass!: Ref> + targetClass!: Ref> @Prop(TypeString(), core.string.ClassPropertyLabel) - field!: string + field!: string @Prop(TypeString(), core.string.Description) - direction?: 'forward' | 'inverse' + direction?: 'forward' | 'inverse' } @Model(core.class.Blob, core.class.Doc, DOMAIN_BLOB) @@ -187,27 +187,27 @@ export class TBlob extends TDoc implements Blob { @Prop(TypeString(), core.string.Blob) @ReadOnly() // @Index(IndexKind.Indexed) - provider!: string + provider!: string @Prop(TypeString(), core.string.BlobContentType) @ReadOnly() - contentType!: string + contentType!: string @Prop(TypeString(), core.string.BlobStorageId) @ReadOnly() - storageId!: string + storageId!: string @Prop(TypeString(), core.string.BlobEtag) @ReadOnly() - etag!: string + etag!: string @Prop(TypeString(), core.string.BlobVersion) @ReadOnly() - version!: string + version!: string @Prop(TypeFileSize(), core.string.BlobSize) @ReadOnly() - size!: number + size!: number } @UX(core.string.ClassLabel) @@ -216,7 +216,7 @@ export class TClass extends TDoc implements Class { kind!: ClassifierKind @Prop(TypeIntlString(), core.string.ClassPropertyLabel) - label!: IntlString + label!: IntlString extends!: Ref> domain!: Domain @@ -381,16 +381,16 @@ export class TFullTextSearchContext extends TDoc implements FullTextSearchContex @MMixin(core.mixin.ConfigurationElement, core.class.Class) export class TConfigurationElement extends TClass implements ConfigurationElement { @Prop(TypeIntlString(), core.string.Private) - title!: IntlString + title!: IntlString @Prop(TypeIntlString(), core.string.Private) - group!: IntlString + group!: IntlString } @Model(core.class.Configuration, core.class.Doc, DOMAIN_CONFIGURATION) export class TConfiguration extends TDoc implements Configuration { @Prop(TypeBoolean(), core.string.Private) - enabled!: boolean + enabled!: boolean } @MMixin(core.mixin.IndexConfiguration, core.class.Class) @@ -415,14 +415,14 @@ export class TTypeRank extends TType {} @MMixin(core.mixin.TransientConfiguration, core.class.Class) export class TTransientConfiguration extends TClass implements TransientConfiguration { @Prop(TypeBoolean(), core.string.Private) - broadcastOnly!: boolean + broadcastOnly!: boolean } @Model(core.class.Sequence, core.class.Doc, DOMAIN_SEQUENCE) export class TSequence extends TDoc implements Sequence { @Prop(TypeRef(core.class.Class), core.string.AttachedTo) @Index(IndexKind.Indexed) - attachedTo!: Ref> + attachedTo!: Ref> sequence!: number } diff --git a/models/core/src/migration.ts b/models/core/src/migration.ts index e259d04abc..6ea1daf8f6 100644 --- a/models/core/src/migration.ts +++ b/models/core/src/migration.ts @@ -367,7 +367,7 @@ export async function getSocialKeyByOldAccount (client: MigrationClient): Promis if (systemAccounts.includes(account._id)) { socialKeyByAccount[account._id] = account._id } else { - socialKeyByAccount[account._id] = buildSocialIdString(getSocialKeyByOldEmail(account.email)) as any + socialKeyByAccount[account._id] = buildSocialIdString(getSocialKeyByOldEmail(account.email)) } } @@ -526,8 +526,8 @@ async function migrateAccounts (client: MigrationClient): Promise { accountUuidBySocialKey ) const update: MigrateUpdate = { - members: newMembers as any, - owners: newOwners as any + members: newMembers, + owners: newOwners } const type = spaceTypesById.get((space as TypedSpace).type) @@ -594,7 +594,7 @@ async function migrateAccounts (client: MigrationClient): Promise { objectClass: spaceType._class, objectSpace: spaceType.space, operations: { - members: newMembers as any + members: newMembers }, modifiedOn: Date.now(), createdBy: core.account.ConfigUser, @@ -843,7 +843,7 @@ async function processMigrateJsonForDoc ( const stat = await storageAdapter.stat(client.ctx, wsIds, currentYdocId) if (stat !== undefined) { const data = await storageAdapter.read(client.ctx, wsIds, currentYdocId) - const buffer = Buffer.concat(data as any) + const buffer = Buffer.concat(data) await storageAdapter.put(client.ctx, wsIds, ydocId, buffer, 'application/ydoc', buffer.length) } }) diff --git a/models/core/src/security.ts b/models/core/src/security.ts index be3c300db4..7dc576ac05 100644 --- a/models/core/src/security.ts +++ b/models/core/src/security.ts @@ -62,31 +62,31 @@ import { TAttachedDoc, TClass, TDoc } from './core' export class TSpace extends TDoc implements Space { @Prop(TypeString(), core.string.Name) @Index(IndexKind.FullText) - name!: string + name!: string @Prop(TypeString(), core.string.Description) @Index(IndexKind.FullText) - description!: string + description!: string @Prop(TypeBoolean(), core.string.Private) - private!: boolean + private!: boolean @Prop(TypeBoolean(), core.string.Archived) @Index(IndexKind.Indexed) - archived!: boolean + archived!: boolean @Prop(ArrOf(TypeAccountUuid()), core.string.Members) @Index(IndexKind.Indexed) - members!: AccountUuid[] + members!: AccountUuid[] @Prop(ArrOf(TypeAccountUuid()), core.string.Owners) - owners?: AccountUuid[] + owners?: AccountUuid[] @Prop(TypeBoolean(), core.string.AutoJoin) - autoJoin?: boolean + autoJoin?: boolean @Prop(ArrOf(TypeString()), core.string.AutoJoinGuests) - autoJoinForRoles?: AccountRole[] + autoJoinForRoles?: AccountRole[] } @Model(core.class.SystemSpace, core.class.Space) @@ -97,7 +97,7 @@ export class TSystemSpace extends TSpace implements Space {} @UX(core.string.TypedSpace, undefined, undefined, 'name') export class TTypedSpace extends TSpace implements TypedSpace { @Prop(TypeRef(core.class.SpaceType), core.string.SpaceType) - type!: Ref + type!: Ref } @Model(core.class.SpaceTypeDescriptor, core.class.Doc, DOMAIN_MODEL) @@ -115,25 +115,25 @@ export class TSpaceTypeDescriptor extends TDoc implements SpaceTypeDescriptor { export class TSpaceType extends TDoc implements SpaceType { @Prop(TypeString(), core.string.Name) @Index(IndexKind.FullText) - name!: string + name!: string @Prop(TypeString(), core.string.ShortDescription) - shortDescription?: string + shortDescription?: string @Prop(TypeRef(core.class.SpaceTypeDescriptor), core.string.Descriptor) - descriptor!: Ref + descriptor!: Ref @Prop(TypeRef(core.class.Class), core.string.TargetClass) - targetClass!: Ref> + targetClass!: Ref> @Prop(Collection(core.class.Role), core.string.Roles) - roles!: CollectionSize + roles!: CollectionSize @Prop(ArrOf(TypeAccountUuid()), core.string.Members) - members!: AccountUuid[] + members!: AccountUuid[] @Prop(TypeBoolean(), core.string.AutoJoin) - autoJoin?: boolean + autoJoin?: boolean } @Model(core.class.Role, core.class.AttachedDoc, DOMAIN_MODEL) @@ -155,10 +155,10 @@ export class TRole extends TAttachedDoc implements Role { @Prop(TypeString(), core.string.Name) @Index(IndexKind.FullText) - name!: string + name!: string @Prop(ArrOf(TypeRef(core.class.Permission)), core.string.Permission) - permissions!: Ref[] + permissions!: Ref[] } @Model(core.class.Permission, core.class.Doc, DOMAIN_MODEL) @@ -202,23 +202,23 @@ export class TTxAccessLevel extends TClass implements TxAccessLevel { @Model(core.class.ModulePermissionGroup, core.class.Doc, DOMAIN_MODEL) export class TModulePermissionGroup extends TDoc implements ModulePermissionGroup { @Prop(TypeRef(core.class.Doc), core.string.AttachedTo) - application!: Ref + application!: Ref @Prop(TypeString(), core.string.Roles) - role!: AccountRole + role!: AccountRole @Prop(ArrOf(TypeRef(core.class.Permission)), core.string.Permission) - permissions!: Ref[] + permissions!: Ref[] @Prop(ArrOf(TypeRef(core.class.Permission)), core.string.Permission) - disabledPermissions?: Ref[] + disabledPermissions?: Ref[] @Prop(TypeRef(core.class.Class), core.string.Class) - spaceClass!: Ref> + spaceClass!: Ref> @Prop(TypeBoolean(), core.string.Name) - enabled!: boolean + enabled!: boolean @Prop(TypeNumber(), core.string.Order) - order?: number + order?: number } diff --git a/models/document/src/index.ts b/models/document/src/index.ts index 29ae90faf1..380a7efffd 100644 --- a/models/document/src/index.ts +++ b/models/document/src/index.ts @@ -50,7 +50,7 @@ import { createPublicLinkAction } from '@hcengineering/model-guest' import { generateClassNotificationTypes } from '@hcengineering/model-notification' import presentation from '@hcengineering/model-presentation' import tracker from '@hcengineering/model-tracker' -import view, { createAction } from '@hcengineering/model-view' +import view, { actionTemplates, createAction } from '@hcengineering/model-view' import workbench from '@hcengineering/model-workbench' import notification from '@hcengineering/notification' import { type Asset, getEmbeddedLabel } from '@hcengineering/platform' diff --git a/models/notification/src/index.ts b/models/notification/src/index.ts index ac808504f4..f4c00832ad 100644 --- a/models/notification/src/index.ts +++ b/models/notification/src/index.ts @@ -171,7 +171,7 @@ export class TNotificationProviderSetting extends TPreference implements Notific @UX(notification.string.Collaborators) export class TCollaborators extends TDoc implements Collaborators { @Prop(CollectionType(core.class.Collaborator), notification.string.Collaborators) - collaborators!: CollectionSize + collaborators!: CollectionSize } @Mixin(notification.mixin.NotificationObjectPresenter, core.class.Class) @@ -193,31 +193,31 @@ export class TNotificationContextPresenter extends TClass implements Notificatio export class TDocNotifyContext extends TDoc implements DocNotifyContext { @Prop(TypeAccountUuid(), core.string.Account) @Index(IndexKind.Indexed) - user!: AccountUuid + user!: AccountUuid @Prop(TypeRef(core.class.Doc), core.string.Object) @Index(IndexKind.Indexed) - objectId!: Ref + objectId!: Ref @Prop(TypeRef(core.class.Class), core.string.Class) - objectClass!: Ref> + objectClass!: Ref> @Prop(TypeRef(core.class.Space), core.string.Space) - objectSpace!: Ref + objectSpace!: Ref declare space: Ref @Prop(TypeDate(), core.string.Date) - lastViewedTimestamp?: Timestamp + lastViewedTimestamp?: Timestamp @Prop(TypeDate(), core.string.Date) - lastUpdateTimestamp?: Timestamp + lastUpdateTimestamp?: Timestamp @Prop(TypeBoolean(), notification.string.Pinned) - isPinned!: boolean + isPinned!: boolean @Prop(TypeBoolean(), view.string.Hide) - hidden!: boolean + hidden!: boolean tx?: Ref> } @@ -226,18 +226,18 @@ export class TDocNotifyContext extends TDoc implements DocNotifyContext { export class TInboxNotification extends TDoc implements InboxNotification { @Prop(TypeRef(notification.class.DocNotifyContext), core.string.AttachedTo) @Index(IndexKind.Indexed) - docNotifyContext!: Ref + docNotifyContext!: Ref @Prop(TypeAccountUuid(), core.string.Account) @Index(IndexKind.Indexed) - user!: AccountUuid + user!: AccountUuid @Prop(TypeBoolean(), core.string.Boolean) // @Index(IndexKind.Indexed) - isViewed!: boolean + isViewed!: boolean @Prop(TypeBoolean(), core.string.Boolean) - archived!: boolean + archived!: boolean objectId!: Ref objectClass!: Ref> @@ -255,30 +255,30 @@ export class TInboxNotification extends TDoc implements InboxNotification { @Model(notification.class.ActivityInboxNotification, notification.class.InboxNotification) export class TActivityInboxNotification extends TInboxNotification implements ActivityInboxNotification { @Prop(TypeRef(activity.class.ActivityMessage), core.string.AttachedTo) - attachedTo!: Ref + attachedTo!: Ref @Prop(TypeRef(activity.class.ActivityMessage), core.string.AttachedToClass) - attachedToClass!: Ref> + attachedToClass!: Ref> } @Model(notification.class.CommonInboxNotification, notification.class.InboxNotification) export class TCommonInboxNotification extends TInboxNotification implements CommonInboxNotification { @Prop(TypeIntlString(), core.string.String) - header?: IntlString + header?: IntlString @Prop(TypeRef(core.class.Doc), core.string.Object) - headerObjectId?: Ref + headerObjectId?: Ref @Prop(TypeRef(core.class.Doc), core.string.Class) - headerObjectClass?: Ref> + headerObjectClass?: Ref> @Prop(TypeIntlString(), notification.string.Message) - message?: IntlString + message?: IntlString headerIcon?: Asset @Prop(TypeMarkup(), notification.string.Message) - messageHtml?: Markup + messageHtml?: Markup props?: Record icon?: Asset @@ -288,10 +288,10 @@ export class TCommonInboxNotification extends TInboxNotification implements Comm @Model(notification.class.MentionInboxNotification, notification.class.CommonInboxNotification) export class TMentionInboxNotification extends TCommonInboxNotification implements MentionInboxNotification { @Prop(TypeRef(core.class.Doc), core.string.Object) - mentionedIn!: Ref + mentionedIn!: Ref @Prop(TypeRef(core.class.Doc), core.string.Class) - mentionedInClass!: Ref> + mentionedInClass!: Ref> } @Model(notification.class.ReactionInboxNotification, notification.class.CommonInboxNotification) @@ -299,10 +299,10 @@ export class TReactionInboxNotification extends TCommonInboxNotification impleme emoji!: string ref!: Ref @Prop(TypeRef(activity.class.ActivityMessage), core.string.AttachedTo) - attachedTo!: Ref + attachedTo!: Ref @Prop(TypeRef(activity.class.ActivityMessage), core.string.AttachedToClass) - attachedToClass!: Ref> + attachedToClass!: Ref> } @Model(notification.class.ActivityNotificationViewlet, core.class.Doc, DOMAIN_MODEL) diff --git a/models/notification/src/migration.ts b/models/notification/src/migration.ts index 5bc85e0183..8ae9c36e3c 100644 --- a/models/notification/src/migration.ts +++ b/models/notification/src/migration.ts @@ -584,7 +584,7 @@ export async function migrateSettings (client: MigrationClient): Promise { DOMAIN_PREFERENCE, { _class: 'notification:class:NotificationSetting' as Ref>, - attachedTo: 'notification:providers:BrowserNotification' as Ref + attachedTo: 'notification:providers:BrowserNotification' }, { _class: notification.class.NotificationTypeSetting, @@ -596,7 +596,7 @@ export async function migrateSettings (client: MigrationClient): Promise { DOMAIN_PREFERENCE, { _class: 'notification:class:NotificationSetting' as Ref>, - attachedTo: 'notification:providers:PlatformNotification' as Ref + attachedTo: 'notification:providers:PlatformNotification' }, { _class: notification.class.NotificationTypeSetting, @@ -656,7 +656,7 @@ export const notificationOperation: MigrateOperation = { state: 'delete-invalid-notifications', mode: 'upgrade', func: async (client) => { - await removeNotifications(client, { attachedToClass: 'chunter:class:Comment' as Ref> }) + await removeNotifications(client, { attachedToClass: 'chunter:class:Comment' }) } }, { @@ -664,7 +664,7 @@ export const notificationOperation: MigrateOperation = { mode: 'upgrade', func: async (client) => { await client.deleteMany(DOMAIN_NOTIFICATION, { _class: 'notification:class:DocUpdates' as Ref> }) - await client.deleteMany(DOMAIN_TX, { objectClass: 'notification:class:DocUpdates' as Ref> }) + await client.deleteMany(DOMAIN_TX, { objectClass: 'notification:class:DocUpdates' }) } }, { diff --git a/models/setting/src/index.ts b/models/setting/src/index.ts index f0c0038ea8..1ea9ec6207 100644 --- a/models/setting/src/index.ts +++ b/models/setting/src/index.ts @@ -121,7 +121,7 @@ export class TInviteSettings extends TConfiguration implements InviteSettings { @UX(setting.string.RoleCapabilitySettings) export class TRoleCapabilitySettings extends TConfiguration implements RoleCapabilitySettings { @Prop(TypeRecord(), setting.string.RoleCapabilitySettings) - roleByCapability!: Record + roleByCapability!: Record } @Model(setting.class.OfficeSettings, core.class.Configuration, DOMAIN_SETTING) diff --git a/models/task/src/index.ts b/models/task/src/index.ts index acc6091160..9259c85798 100644 --- a/models/task/src/index.ts +++ b/models/task/src/index.ts @@ -54,7 +54,12 @@ import core, { TTypedSpace } from '@hcengineering/model-core' import { createPublicLinkAction } from '@hcengineering/model-guest' -import view, { classPresenter, createAction, template } from '@hcengineering/model-view' +import view, { + classPresenter, + createAction, + template, + actionTemplates as viewTemplates +} from '@hcengineering/model-view' import { getEmbeddedLabel, type Asset, type IntlString, type Resource } from '@hcengineering/platform' import setting from '@hcengineering/setting' import tags from '@hcengineering/tags' diff --git a/packages/gantt/src/__tests__/pan-target.test.ts b/packages/gantt/src/__tests__/pan-target.test.ts index f8e961fb0e..213a69e56d 100644 --- a/packages/gantt/src/__tests__/pan-target.test.ts +++ b/packages/gantt/src/__tests__/pan-target.test.ts @@ -5,7 +5,7 @@ import { shouldPromoteCanvasPan, shouldStartCanvasPan } from '../pan-target' -function targetWithClosest(matches: Set): Pick { +function targetWithClosest (matches: Set): Pick { return { closest: (selector: string) => { for (const part of selector.split(',').map((s) => s.trim())) { diff --git a/packages/gantt/src/__tests__/sidebar-columns.test.ts b/packages/gantt/src/__tests__/sidebar-columns.test.ts index e4af36e340..1479bdb5f9 100644 --- a/packages/gantt/src/__tests__/sidebar-columns.test.ts +++ b/packages/gantt/src/__tests__/sidebar-columns.test.ts @@ -91,7 +91,7 @@ describe('sidebar-columns: constants', () => { it('DEFAULT_COLUMNS is a subset of ALL_COLUMN_KEYS', () => { for (const k of DEFAULT_COLUMNS) { - expect(ALL_COLUMN_KEYS).toContain(k as SidebarColumnKey) + expect(ALL_COLUMN_KEYS).toContain(k) } }) diff --git a/packages/gantt/src/__tests__/tree-expand-store.test.ts b/packages/gantt/src/__tests__/tree-expand-store.test.ts index e65e862396..e37475af91 100644 --- a/packages/gantt/src/__tests__/tree-expand-store.test.ts +++ b/packages/gantt/src/__tests__/tree-expand-store.test.ts @@ -5,10 +5,10 @@ import { createTreeExpandStore } from '../tree-expand-store' -function makeStorage(): Storage { +function makeStorage (): Storage { const map = new Map() return { - get length(): number { + get length (): number { return map.size }, clear: () => { diff --git a/packages/gantt/src/__tests__/y-viewport-perf.test.ts b/packages/gantt/src/__tests__/y-viewport-perf.test.ts index 8eb273b166..e89d384670 100644 --- a/packages/gantt/src/__tests__/y-viewport-perf.test.ts +++ b/packages/gantt/src/__tests__/y-viewport-perf.test.ts @@ -21,7 +21,7 @@ interface SynthRow { height: number } -function genRows(count: number, rowHeight: number): SynthRow[] { +function genRows (count: number, rowHeight: number): SynthRow[] { const rows: SynthRow[] = new Array(count) for (let i = 0; i < count; i++) { rows[i] = { id: `row-${i}`, y: i * rowHeight, height: rowHeight } diff --git a/packages/gantt/src/breakpoint.ts b/packages/gantt/src/breakpoint.ts index 2b14c91fa6..d5a01c088d 100644 --- a/packages/gantt/src/breakpoint.ts +++ b/packages/gantt/src/breakpoint.ts @@ -25,21 +25,21 @@ export type LayoutMode = 'phone' | 'tablet' | 'desktop' export const PHONE_MAX_WIDTH = 640 export const TABLET_MAX_WIDTH = 1024 -export function detectLayoutMode(width: number): LayoutMode { +export function detectLayoutMode (width: number): LayoutMode { if (!Number.isFinite(width) || width <= 0) return 'phone' if (width <= PHONE_MAX_WIDTH) return 'phone' if (width <= TABLET_MAX_WIDTH) return 'tablet' return 'desktop' } -export function isPhone(mode: LayoutMode): boolean { +export function isPhone (mode: LayoutMode): boolean { return mode === 'phone' } -export function isTablet(mode: LayoutMode): boolean { +export function isTablet (mode: LayoutMode): boolean { return mode === 'tablet' } -export function isDesktop(mode: LayoutMode): boolean { +export function isDesktop (mode: LayoutMode): boolean { return mode === 'desktop' } diff --git a/packages/gantt/src/cascade-popup-layout.ts b/packages/gantt/src/cascade-popup-layout.ts index 8232aa18d0..f9dd6723c9 100644 --- a/packages/gantt/src/cascade-popup-layout.ts +++ b/packages/gantt/src/cascade-popup-layout.ts @@ -26,7 +26,7 @@ export interface CascadePopupLayoutInput { bodyMaxHeight: number } -export function computeCascadeBodyHeight(input: CascadePopupLayoutInput): number { +export function computeCascadeBodyHeight (input: CascadePopupLayoutInput): number { const desired = input.rowCount * input.rowHeight + input.barTopPadding + input.bodyVerticalPadding + input.bodyBottomSafety return Math.min(desired, input.bodyMaxHeight) diff --git a/packages/gantt/src/cascade-token.ts b/packages/gantt/src/cascade-token.ts index 0fa4622a95..00a964f88e 100644 --- a/packages/gantt/src/cascade-token.ts +++ b/packages/gantt/src/cascade-token.ts @@ -55,7 +55,7 @@ let counter = 0 * for human-readable tx-logs, while the trailing `:` segment * identifies the cascade instance. */ -export function newCascadeToken(prefix: string = 'gantt-cascade'): string { +export function newCascadeToken (prefix: string = 'gantt-cascade'): string { counter = (counter + 1) | 0 return `${prefix}:${Date.now()}-${counter}` } diff --git a/packages/gantt/src/confirm-gate.ts b/packages/gantt/src/confirm-gate.ts index 3946b8f6be..ca04625d19 100644 --- a/packages/gantt/src/confirm-gate.ts +++ b/packages/gantt/src/confirm-gate.ts @@ -37,7 +37,7 @@ export interface ConfirmGate { } /** Create an independent gate. One per mounted GanttView. */ -export function createConfirmGate(): ConfirmGate { +export function createConfirmGate (): ConfirmGate { let confirming = false return { setConfirming: (value: boolean): void => { diff --git a/packages/gantt/src/cp-scheduler.ts b/packages/gantt/src/cp-scheduler.ts index 2fdefc3e8a..afda1cb25f 100644 --- a/packages/gantt/src/cp-scheduler.ts +++ b/packages/gantt/src/cp-scheduler.ts @@ -26,10 +26,10 @@ export class DebouncedRecompute { private handle: ReturnType | null = null - constructor(private readonly delayMs: number) {} + constructor (private readonly delayMs: number) {} /** Replace any pending run with a new one `delayMs` from now. */ - schedule(run: () => void): void { + schedule (run: () => void): void { this.cancel() this.handle = setTimeout(() => { this.handle = null @@ -38,7 +38,7 @@ export class DebouncedRecompute { } /** Drop a pending run, if any. Idempotent. */ - cancel(): void { + cancel (): void { if (this.handle !== null) { clearTimeout(this.handle) this.handle = null @@ -46,7 +46,7 @@ export class DebouncedRecompute { } /** True while a run is queued. */ - get pending(): boolean { + get pending (): boolean { return this.handle !== null } } diff --git a/packages/gantt/src/drag-controller.ts b/packages/gantt/src/drag-controller.ts index fb8027b25f..7aa7d82c13 100644 --- a/packages/gantt/src/drag-controller.ts +++ b/packages/gantt/src/drag-controller.ts @@ -18,7 +18,7 @@ import type { TimeScale } from './time-scale' * threaded through unchanged so commitDrag (in GanttView.svelte) can route * to the right update field. */ -export function reduce( +export function reduce ( state: DragState, event: DragEvent, timeScale: TimeScale @@ -27,13 +27,13 @@ export function reduce } -function reduceImpl(state: DragState, event: DragEvent, timeScale: TimeScale): DragState { +function reduceImpl (state: DragState, event: DragEvent, timeScale: TimeScale): DragState { switch (state.kind) { case 'idle': return reduceFromIdle(state, event) @@ -50,7 +50,7 @@ function reduceImpl(state: DragState, event: DragEvent, timeScale: TimeScale): D } } -function reduceFromIdle(state: DragState & { kind: 'idle' }, event: DragEvent): DragState { +function reduceFromIdle (state: DragState & { kind: 'idle' }, event: DragEvent): DragState { if (event.type === 'mouseenter-bar') { return { kind: 'hover-bar', issueId: event.issueId, edge: event.edge } } @@ -123,7 +123,7 @@ function reduceFromIdle(state: DragState & { kind: 'idle' }, event: DragEvent): return state } -function reduceFromHover(state: DragState & { kind: 'hover-bar' }, event: DragEvent, timeScale: TimeScale): DragState { +function reduceFromHover (state: DragState & { kind: 'hover-bar' }, event: DragEvent, timeScale: TimeScale): DragState { if (event.type === 'mouseleave-bar') { return { kind: 'idle' } } @@ -171,7 +171,7 @@ function reduceFromHover(state: DragState & { kind: 'hover-bar' }, event: DragEv return state } -function reduceFromActive(state: DragState, event: DragEvent, timeScale: TimeScale): DragState { +function reduceFromActive (state: DragState, event: DragEvent, timeScale: TimeScale): DragState { if (event.type === 'mouseup' || event.type === 'cancel') { return { kind: 'idle' } } @@ -236,7 +236,7 @@ function reduceFromActive(state: DragState, event: DragEvent, timeScale: TimeSca return state } -function reduceFromConnector( +function reduceFromConnector ( state: DragState & { kind: 'connector-drawing' | 'connector-target-hover' }, event: DragEvent ): DragState { @@ -276,6 +276,6 @@ function reduceFromConnector( } /** Convenience helper used by later tasks to clamp a date to a UTC midnight. */ -export function snapDate(t: number): number { +export function snapDate (t: number): number { return snapToUtcMidnight(t) } diff --git a/packages/gantt/src/drag-state.ts b/packages/gantt/src/drag-state.ts index ac24f5ea89..fde6da7eea 100644 --- a/packages/gantt/src/drag-state.ts +++ b/packages/gantt/src/drag-state.ts @@ -1,6 +1,6 @@ import type { DragState, DragTarget } from './types' -export function activeDragTargetId(state: DragState): string | null { +export function activeDragTargetId (state: DragState): string | null { if (!('target' in state)) return null const target = state.target @@ -10,7 +10,7 @@ export function activeDragTargetId(state: DragState): string | null { return id !== undefined ? String(id) : null } -function isDragTarget(target: unknown): target is DragTarget { +function isDragTarget (target: unknown): target is DragTarget { return ( typeof target === 'object' && target !== null && diff --git a/packages/gantt/src/flash-store.ts b/packages/gantt/src/flash-store.ts index 8b4ae81b37..fc4eb650f1 100644 --- a/packages/gantt/src/flash-store.ts +++ b/packages/gantt/src/flash-store.ts @@ -29,21 +29,21 @@ export interface FlashStore { const timers = new WeakMap>>() -export function createFlashStore(): FlashStore { +export function createFlashStore (): FlashStore { let value = new Set() const subs = new Set<(value: Set) => void>() const store: FlashStore = { - subscribe(run) { + subscribe (run) { subs.add(run) run(value) return () => { subs.delete(run) } }, - get() { + get () { return value }, - set(next) { + set (next) { value = next for (const fn of subs) fn(value) } @@ -52,7 +52,7 @@ export function createFlashStore(): FlashStore { return store } -export function flashIssues(ids: string[], durationMs: number, store: FlashStore): void { +export function flashIssues (ids: string[], durationMs: number, store: FlashStore): void { const perStoreTimers = timers.get(store) ?? new Map>() timers.set(store, perStoreTimers) diff --git a/packages/gantt/src/gantt-view-options.ts b/packages/gantt/src/gantt-view-options.ts index 551b606c02..ce875b2d48 100644 --- a/packages/gantt/src/gantt-view-options.ts +++ b/packages/gantt/src/gantt-view-options.ts @@ -29,11 +29,11 @@ export interface GanttSavedViewOptions { ganttShowSubIssueProgress?: boolean } -function isZoomLevel(v: unknown): v is ZoomLevel { +function isZoomLevel (v: unknown): v is ZoomLevel { return typeof v === 'string' && (ZOOM_LEVELS as readonly string[]).includes(v) } -function isValidIsoDate(v: unknown): v is string { +function isValidIsoDate (v: unknown): v is string { if (typeof v !== 'string' || !ISO_DATE_RE.test(v)) return false const t = Date.parse(v + 'T00:00:00Z') return Number.isFinite(t) @@ -42,12 +42,12 @@ function isValidIsoDate(v: unknown): v is string { const BAR_COLOR_MODES: readonly BarColorMode[] = ['status', 'priority', 'assignee', 'component', 'milestone', 'none'] /** Type-guard for a persisted bar-colour mode. Exported so GanttView can reuse it. */ -export function isBarColorMode(v: unknown): v is BarColorMode { +export function isBarColorMode (v: unknown): v is BarColorMode { return typeof v === 'string' && (BAR_COLOR_MODES as readonly string[]).includes(v) } /** Read the Gantt-specific keys back out of a (possibly mixed) viewOptions blob. */ -export function extractGanttSavedView(raw: Record | undefined): GanttSavedViewOptions { +export function extractGanttSavedView (raw: Record | undefined): GanttSavedViewOptions { if (raw == null) return { zoomLevel: 'week' } const zoom = isZoomLevel(raw.ganttZoomLevel) ? raw.ganttZoomLevel : 'week' const out: GanttSavedViewOptions = { zoomLevel: zoom } @@ -76,7 +76,7 @@ export function extractGanttSavedView(raw: Record | undefined): * `ganttPanAnchorDate` in the base is dropped — pinning the time window * unchecked must clear a previously-saved anchor. */ -export function mergeGanttSavedView( +export function mergeGanttSavedView ( base: Record | undefined, opts: GanttSavedViewOptions ): Record { @@ -108,7 +108,7 @@ export function mergeGanttSavedView( } /** Format a millisecond timestamp as 'YYYY-MM-DD' (UTC). */ -export function isoDateForTimestamp(t: number): string { +export function isoDateForTimestamp (t: number): string { const d = new Date(t) const yyyy = d.getUTCFullYear().toString().padStart(4, '0') const mm = (d.getUTCMonth() + 1).toString().padStart(2, '0') @@ -117,7 +117,7 @@ export function isoDateForTimestamp(t: number): string { } /** Parse 'YYYY-MM-DD' to UTC-midnight ms. Returns NaN on malformed input. */ -export function timestampForIsoDate(iso: string): number { +export function timestampForIsoDate (iso: string): number { if (!ISO_DATE_RE.test(iso)) return Number.NaN return Date.parse(iso + 'T00:00:00Z') } diff --git a/packages/gantt/src/index.ts b/packages/gantt/src/index.ts index 0ad795e211..4c048ef46b 100644 --- a/packages/gantt/src/index.ts +++ b/packages/gantt/src/index.ts @@ -6,7 +6,7 @@ // Domain-neutral Gantt engine: scheduling, zoom, drag/pointer, time-scale and // viewport primitives with no dependency on any platform package. -export * from './types' +export type * from './types' export * from './breakpoint' export * from './cascade-popup-layout' export * from './cascade-token' diff --git a/packages/gantt/src/long-press.ts b/packages/gantt/src/long-press.ts index b0c79da0ca..3a835f361a 100644 --- a/packages/gantt/src/long-press.ts +++ b/packages/gantt/src/long-press.ts @@ -29,21 +29,21 @@ export const MOVE_THRESHOLD_PX = 10 export type LongPressState = | { kind: 'idle' } - | { kind: 'pending'; startedAt: number; x: number; y: number } + | { kind: 'pending', startedAt: number, x: number, y: number } | { kind: 'fired' } | { kind: 'cancelled' } export type LongPressEvent = - | { type: 'start'; now: number; x: number; y: number } - | { type: 'tick'; now: number } - | { type: 'move'; now: number; x: number; y: number } + | { type: 'start', now: number, x: number, y: number } + | { type: 'tick', now: number } + | { type: 'move', now: number, x: number, y: number } | { type: 'cancel' } -export function initial(): LongPressState { +export function initial (): LongPressState { return { kind: 'idle' } } -export function reduceLongPress(state: LongPressState, event: LongPressEvent): LongPressState { +export function reduceLongPress (state: LongPressState, event: LongPressEvent): LongPressState { switch (event.type) { case 'start': if (state.kind === 'pending') return state // second start while pending is a no-op diff --git a/packages/gantt/src/pan-target.ts b/packages/gantt/src/pan-target.ts index 3f5fc33de9..8c48473432 100644 --- a/packages/gantt/src/pan-target.ts +++ b/packages/gantt/src/pan-target.ts @@ -24,11 +24,11 @@ export const PAN_EXCLUDED_SELECTOR = [ '.bar-resize-handle' ].join(', ') -export function shouldStartCanvasPan(target: Pick | null): boolean { +export function shouldStartCanvasPan (target: Pick | null): boolean { if (target === null) return false return target.closest(PAN_EXCLUDED_SELECTOR) === null } -export function shouldPromoteCanvasPan(dx: number, dy: number, threshold = 3): boolean { +export function shouldPromoteCanvasPan (dx: number, dy: number, threshold = 3): boolean { return Math.abs(dx) > threshold || Math.abs(dy) > threshold } diff --git a/packages/gantt/src/pinch-zoom.ts b/packages/gantt/src/pinch-zoom.ts index 669a5dc154..e47d586e11 100644 --- a/packages/gantt/src/pinch-zoom.ts +++ b/packages/gantt/src/pinch-zoom.ts @@ -28,7 +28,7 @@ export interface Point { export type PinchState = | { kind: 'idle' } - | { kind: 'single'; id: number; x: number; y: number } + | { kind: 'single', id: number, x: number, y: number } | { kind: 'pinch' idA: number @@ -42,22 +42,22 @@ export type PinchState = } export type PinchEvent = - | { type: 'down'; id: number; x: number; y: number; pxPerDay: number } - | { type: 'move'; id: number; x: number; y: number } - | { type: 'up'; id: number } + | { type: 'down', id: number, x: number, y: number, pxPerDay: number } + | { type: 'move', id: number, x: number, y: number } + | { type: 'up', id: number } | { type: 'cancel' } -export function initial(): PinchState { +export function initial (): PinchState { return { kind: 'idle' } } -export function computeDistance(a: Point, b: Point): number { +export function computeDistance (a: Point, b: Point): number { const dx = b.x - a.x const dy = b.y - a.y return Math.sqrt(dx * dx + dy * dy) } -export function computeCenter(a: Point, b: Point): Point { +export function computeCenter (a: Point, b: Point): Point { return { x: (a.x + b.x) / 2, y: (a.y + b.y) / 2 } } @@ -69,7 +69,7 @@ export function computeCenter(a: Point, b: Point): Point { * * Defensive: non-finite or zero ratios are treated as "no change". */ -export function computePxPerDayFromRatio(initialPpd: number, ratio: number): number { +export function computePxPerDayFromRatio (initialPpd: number, ratio: number): number { if (!Number.isFinite(ratio) || ratio <= 0) return initialPpd if (!Number.isFinite(initialPpd) || initialPpd <= 0) return MIN_PPD const next = initialPpd * ratio @@ -78,7 +78,7 @@ export function computePxPerDayFromRatio(initialPpd: number, ratio: number): num return next } -export function reducePinch(state: PinchState, event: PinchEvent): PinchState { +export function reducePinch (state: PinchState, event: PinchEvent): PinchState { switch (event.type) { case 'down': return onDown(state, event) @@ -91,7 +91,7 @@ export function reducePinch(state: PinchState, event: PinchEvent): PinchState { } } -function onDown(state: PinchState, event: Extract): PinchState { +function onDown (state: PinchState, event: Extract): PinchState { if (state.kind === 'idle') { return { kind: 'single', id: event.id, x: event.x, y: event.y } } @@ -115,7 +115,7 @@ function onDown(state: PinchState, event: Extract) return state } -function onMove(state: PinchState, event: Extract): PinchState { +function onMove (state: PinchState, event: Extract): PinchState { if (state.kind === 'single') { if (state.id !== event.id) return state return { ...state, x: event.x, y: event.y } @@ -129,7 +129,7 @@ function onMove(state: PinchState, event: Extract) return state } -function onUp(state: PinchState, event: Extract): PinchState { +function onUp (state: PinchState, event: Extract): PinchState { if (state.kind === 'single') { if (state.id !== event.id) return state return { kind: 'idle' } diff --git a/packages/gantt/src/pointer-classify.ts b/packages/gantt/src/pointer-classify.ts index 5603fe6c77..e91e3d96b4 100644 --- a/packages/gantt/src/pointer-classify.ts +++ b/packages/gantt/src/pointer-classify.ts @@ -24,7 +24,7 @@ export type PointerKind = PointerEvent['pointerType'] | 'mouse' | 'touch' | 'pen export type PointerAction = 'tap' | 'drag' | 'resize' | 'connector' export type PointerDecision = 'allow' | 'long-press' | 'block' -export function classifyPointer(mode: LayoutMode, pointerType: PointerKind, action: PointerAction): PointerDecision { +export function classifyPointer (mode: LayoutMode, pointerType: PointerKind, action: PointerAction): PointerDecision { if (mode === 'phone') { // Phone is strictly read-only regardless of input device. Only `tap` // (open Quick-Info / activate Sidebar drawer) is allowed. diff --git a/packages/gantt/src/sidebar-columns.ts b/packages/gantt/src/sidebar-columns.ts index 24410512ae..5aa138ef40 100644 --- a/packages/gantt/src/sidebar-columns.ts +++ b/packages/gantt/src/sidebar-columns.ts @@ -93,7 +93,7 @@ const KNOWN_SET: ReadonlySet = new Set(ALL_COLUMN_KEYS) * unknown keys, deduplicates, and falls back to {@link DEFAULT_COLUMNS} * when the input shape is wrong or the resulting list would be empty. */ -export function parseColumns(raw: unknown): SidebarColumnKey[] { +export function parseColumns (raw: unknown): SidebarColumnKey[] { if (!Array.isArray(raw)) return [...DEFAULT_COLUMNS] const seen = new Set() const out: SidebarColumnKey[] = [] @@ -120,7 +120,7 @@ export function parseColumns(raw: unknown): SidebarColumnKey[] { * the defaults so a partially-written blob can never leave a column * width-less. */ -export function parseWidths(raw: unknown): Record { +export function parseWidths (raw: unknown): Record { const out: Record = { ...DEFAULT_WIDTHS } if (raw == null || typeof raw !== 'object' || Array.isArray(raw)) return out for (const [key, value] of Object.entries(raw as Record)) { @@ -132,7 +132,7 @@ export function parseWidths(raw: unknown): Record { } /** Clamp + round a width value so persisted/dragged values stay sane. */ -export function clampWidth(px: number): number { +export function clampWidth (px: number): number { if (!Number.isFinite(px)) return MIN_WIDTH const rounded = Math.round(px) if (rounded < MIN_WIDTH) return MIN_WIDTH @@ -150,7 +150,7 @@ export function clampWidth(px: number): number { * coerced to {@link DEFAULT_WIDTHS} for that column — matches the * defensive parsing contract in {@link parseColumns}. */ -export function computeTotalWidth(cols: readonly SidebarColumnKey[], widths: Record): number { +export function computeTotalWidth (cols: readonly SidebarColumnKey[], widths: Record): number { let sum = 0 for (const c of cols) { const override = widths[c] diff --git a/packages/gantt/src/time-scale.ts b/packages/gantt/src/time-scale.ts index ae17adf095..94017e690e 100644 --- a/packages/gantt/src/time-scale.ts +++ b/packages/gantt/src/time-scale.ts @@ -15,7 +15,7 @@ const PX_PER_DAY: Record = { } /** Snap any Timestamp (ms) to the start of its UTC day. */ -export function snapToUtcMidnight(t: number): number { +export function snapToUtcMidnight (t: number): number { const d = new Date(t) return Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate()) } @@ -30,7 +30,7 @@ export function snapToUtcMidnight(t: number): number { * * `null`/`undefined` (unscheduled / no deadline) map to `null`. */ -export function toGanttDay(t: number | null | undefined): number | null { +export function toGanttDay (t: number | null | undefined): number | null { return t == null ? null : snapToUtcMidnight(t) } @@ -45,7 +45,7 @@ export interface TimeScale { ticks: (range: [number, number]) => Tick[] } -export function createTimeScale(zoom: ZoomLevel, origin: number, pxPerDayOverride?: number): TimeScale { +export function createTimeScale (zoom: ZoomLevel, origin: number, pxPerDayOverride?: number): TimeScale { const pxPerDay = pxPerDayOverride ?? PX_PER_DAY[zoom] const originSnapped = snapToUtcMidnight(origin) @@ -192,7 +192,7 @@ export function createTimeScale(zoom: ZoomLevel, origin: number, pxPerDayOverrid } /** ISO 8601 week number for a UTC date. */ -function isoWeekNumber(d: Date): number { +function isoWeekNumber (d: Date): number { const target = new Date(Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate())) const dayNum = (target.getUTCDay() + 6) % 7 target.setUTCDate(target.getUTCDate() - dayNum + 3) diff --git a/packages/gantt/src/toolbar-overflow.ts b/packages/gantt/src/toolbar-overflow.ts index 51f30e89b2..75011c7c6d 100644 --- a/packages/gantt/src/toolbar-overflow.ts +++ b/packages/gantt/src/toolbar-overflow.ts @@ -77,7 +77,7 @@ export interface ToolbarOverflowResult { * it is, see `ganttToolbarHiddenTiers` — so the arithmetic * neither reserves its width nor a gap for it. */ -export function computeToolbarOverflow( +export function computeToolbarOverflow ( present: readonly ToolbarTier[], widths: Readonly>>, available: number, diff --git a/packages/gantt/src/tree-expand-store.ts b/packages/gantt/src/tree-expand-store.ts index 55636355c6..bf37353626 100644 --- a/packages/gantt/src/tree-expand-store.ts +++ b/packages/gantt/src/tree-expand-store.ts @@ -47,7 +47,7 @@ export interface TreeExpandStore { subscribe: (cb: (collapsed: Set) => void) => () => void } -function readPersisted(storage: Storage, key: string): Set { +function readPersisted (storage: Storage, key: string): Set { try { const raw = storage.getItem(key) if (raw === null || raw === '') return new Set() @@ -63,7 +63,7 @@ function readPersisted(storage: Storage, key: string): Set { } } -function writePersisted(storage: Storage, key: string, value: Set): void { +function writePersisted (storage: Storage, key: string, value: Set): void { try { storage.setItem(key, JSON.stringify([...value])) } catch { @@ -78,12 +78,12 @@ function writePersisted(storage: Storage, key: string, value: Set): void * key would not be observed without a manual reload (acceptable since the * user typically has a single Gantt tab open per project). */ -export function createTreeExpandStore(projectId: string, storage: Storage): TreeExpandStore { +export function createTreeExpandStore (projectId: string, storage: Storage): TreeExpandStore { const key = KEY_PREFIX + projectId let current: Set = readPersisted(storage, key) const listeners = new Set<(c: Set) => void>() - function commit(next: Set): void { + function commit (next: Set): void { current = next writePersisted(storage, key, current) for (const cb of listeners) cb(current) diff --git a/packages/gantt/src/types.ts b/packages/gantt/src/types.ts index 2cb740c7a1..a564d1f0e9 100644 --- a/packages/gantt/src/types.ts +++ b/packages/gantt/src/types.ts @@ -113,7 +113,7 @@ export interface DragTarget { */ export type DragState = | { kind: 'idle' } - | { kind: 'hover-bar'; issueId: string; edge: 'left' | 'right' | 'body' | 'none' } + | { kind: 'hover-bar', issueId: string, edge: 'left' | 'right' | 'body' | 'none' } | { kind: 'dragging-body' target: TTarget @@ -124,7 +124,7 @@ export type DragState + members: Array<{ issueId: string, originStart: number, originEnd: number }> minDeltaMs: number maxDeltaMs: number anchorDeltaMs: number @@ -170,15 +170,15 @@ export type DragState = - | { type: 'mouseenter-bar'; issueId: string; edge: 'left' | 'right' | 'body' } + | { type: 'mouseenter-bar', issueId: string, edge: 'left' | 'right' | 'body' } | { type: 'mouseleave-bar' } | { type: 'mousedown-bar' @@ -217,24 +217,24 @@ export type DragEvent + members: Array<{ issueId: string, originStart: number, originEnd: number }> minDeltaMs: number maxDeltaMs: number } } - | { type: 'mousedown-unscheduled'; target: TTarget; cursorX: number } - | { type: 'mousemove'; cursorX: number; canvasX?: number } + | { type: 'mousedown-unscheduled', target: TTarget, cursorX: number } + | { type: 'mousemove', cursorX: number, canvasX?: number } | { type: 'mouseup' } | { type: 'cancel' } | { type: 'mousedown-connector' source: TNode - originPx: { x: number; y: number } - cursorPx: { x: number; y: number } + originPx: { x: number, y: number } + cursorPx: { x: number, y: number } } | { type: 'mousemove-connector' - cursorPx: { x: number; y: number } + cursorPx: { x: number, y: number } /** Bar under the cursor right now, or null when over empty canvas. */ hoveredBar: TNode | null } diff --git a/packages/gantt/src/viewport.ts b/packages/gantt/src/viewport.ts index 087e174a03..266faaadce 100644 --- a/packages/gantt/src/viewport.ts +++ b/packages/gantt/src/viewport.ts @@ -8,7 +8,7 @@ import { isWorkingDay } from './working-days' const DAY_MS = 86_400_000 -export function computeCanvasViewportWidth( +export function computeCanvasViewportWidth ( scrollerClientWidth: number, sidebarWidth: number, resizeCellWidth: number @@ -16,22 +16,22 @@ export function computeCanvasViewportWidth( return Math.max(1, scrollerClientWidth - sidebarWidth - resizeCellWidth) } -export function computeCanvasRenderWidth(dataRangeWidth: number, viewportWidth: number): number { +export function computeCanvasRenderWidth (dataRangeWidth: number, viewportWidth: number): number { return Math.max(1, dataRangeWidth, viewportWidth) } -export function computeAdaptivePxPerDay(basePxPerDay: number, dataRangeWidth: number, viewportWidth: number): number { +export function computeAdaptivePxPerDay (basePxPerDay: number, dataRangeWidth: number, viewportWidth: number): number { if (basePxPerDay <= 0 || dataRangeWidth <= 0 || viewportWidth <= 0) return basePxPerDay if (dataRangeWidth >= viewportWidth) return basePxPerDay return basePxPerDay * (viewportWidth / dataRangeWidth) } -export function computeTickViewport( +export function computeTickViewport ( viewportLeft: number, viewportRight: number, dataRangeWidth: number, overscan: number = 100 -): { left: number; right: number } { +): { left: number, right: number } { const maxRight = Math.max(1, dataRangeWidth) return { left: Math.min(Math.max(0, viewportLeft - overscan), maxRight), @@ -47,7 +47,7 @@ export function computeTickViewport( * viewport ranges; the default 366 covers a full year on screen, which is * already beyond the supported zoom-out scenarios. */ -export function nonWorkingDaysInRange( +export function nonWorkingDaysInRange ( fromMs: number, toMs: number, cfg: WorkingCalendar | undefined, diff --git a/packages/gantt/src/working-days.ts b/packages/gantt/src/working-days.ts index 116dca9096..ddf5c4ae57 100644 --- a/packages/gantt/src/working-days.ts +++ b/packages/gantt/src/working-days.ts @@ -20,11 +20,11 @@ const DAY_MS = 86_400_000 * a start move by calendar DAY rather than raw milliseconds (stored issues can * reach the scheduler with a time-of-day on the cascade-commit path). */ -export function utcMidnight(t: number): number { +export function utcMidnight (t: number): number { return Math.floor(t / DAY_MS) * DAY_MS } -function holidayHas(cfg: WorkingCalendar, midnight: number): boolean { +function holidayHas (cfg: WorkingCalendar, midnight: number): boolean { // Linear scan — typical configs have ≤ 30 entries. Switch to Set if // a very large holiday set would become slow; current usage is well below. for (const h of cfg.holidays) { @@ -38,7 +38,7 @@ function holidayHas(cfg: WorkingCalendar, midnight: number): boolean { * before comparing weekday and holiday entries — so any time-of-day on a * working date is still a working day. */ -export function isWorkingDay(t: number, cfg: WorkingCalendar): boolean { +export function isWorkingDay (t: number, cfg: WorkingCalendar): boolean { const midnight = utcMidnight(t) if (holidayHas(cfg, midnight)) return false const date = new Date(midnight) @@ -54,7 +54,7 @@ export function isWorkingDay(t: number, cfg: WorkingCalendar): boolean { * 60 calendar-day iterations as a safety bail when no working days are * configured (weekdayMask = 0 + no holidays granting any day). */ -export function nextWorkingDay(t: number, cfg: WorkingCalendar): number { +export function nextWorkingDay (t: number, cfg: WorkingCalendar): number { let cur = utcMidnight(t) for (let i = 0; i < 60; i++) { if (isWorkingDay(cur, cfg)) return cur @@ -71,7 +71,7 @@ export function nextWorkingDay(t: number, cfg: WorkingCalendar): number { * Safety: aborts after `|n| × 7 + 60` iterations to guard against * non-progressing loops when all weekdays are non-working. */ -export function addWorkingDays(t: number, n: number, cfg: WorkingCalendar): number { +export function addWorkingDays (t: number, n: number, cfg: WorkingCalendar): number { if (n === 0) return t const step = n > 0 ? DAY_MS : -DAY_MS let remaining = Math.abs(n) @@ -92,7 +92,7 @@ export function addWorkingDays(t: number, n: number, cfg: WorkingCalendar): numb * * Used by critical-path slack rendering and by potential UI summaries. */ -export function workingDaysBetween(a: number, b: number, cfg: WorkingCalendar): number { +export function workingDaysBetween (a: number, b: number, cfg: WorkingCalendar): number { const sign = a <= b ? 1 : -1 const start = utcMidnight(Math.min(a, b)) const end = utcMidnight(Math.max(a, b)) @@ -113,7 +113,7 @@ export function workingDaysBetween(a: number, b: number, cfg: WorkingCalendar): * equals `utcMidnight(to)` whenever `to` falls on a working day and `from` * is UTC-midnight-normalized. */ -export function workingDayDelta(from: number, to: number, cfg: WorkingCalendar): number { +export function workingDayDelta (from: number, to: number, cfg: WorkingCalendar): number { const a = utcMidnight(from) const b = utcMidnight(to) if (a === b) return 0 @@ -140,49 +140,49 @@ export function workingDayDelta(from: number, to: number, cfg: WorkingCalendar): * +1-day (causing FS-anchored successors to be scheduled one day too early * relative to CPM). */ -export function fsAnchor(predDue: number, lag: number, cfg: WorkingCalendar | undefined): number { +export function fsAnchor (predDue: number, lag: number, cfg: WorkingCalendar | undefined): number { if (cfg === undefined) return predDue + (1 + lag) * DAY_MS return addWorkingDays(predDue, 1 + lag, cfg) } /** Start-to-Start anchor: successor starts `lag` working days after `predStart`. */ -export function ssAnchor(predStart: number, lag: number, cfg: WorkingCalendar | undefined): number { +export function ssAnchor (predStart: number, lag: number, cfg: WorkingCalendar | undefined): number { if (cfg === undefined) return predStart + lag * DAY_MS return addWorkingDays(predStart, lag, cfg) } /** Finish-to-Finish anchor: successor finishes `lag` working days after `predDue`. */ -export function ffAnchor(predDue: number, lag: number, cfg: WorkingCalendar | undefined): number { +export function ffAnchor (predDue: number, lag: number, cfg: WorkingCalendar | undefined): number { if (cfg === undefined) return predDue + lag * DAY_MS return addWorkingDays(predDue, lag, cfg) } /** Start-to-Finish anchor: successor finishes `lag` working days after `predStart`. */ -export function sfAnchor(predStart: number, lag: number, cfg: WorkingCalendar | undefined): number { +export function sfAnchor (predStart: number, lag: number, cfg: WorkingCalendar | undefined): number { if (cfg === undefined) return predStart + lag * DAY_MS return addWorkingDays(predStart, lag, cfg) } /** Inverse of {@link fsAnchor} for backward (pull-predecessor) traversal. */ -export function fsReverseAnchor(succStart: number, lag: number, cfg: WorkingCalendar | undefined): number { +export function fsReverseAnchor (succStart: number, lag: number, cfg: WorkingCalendar | undefined): number { if (cfg === undefined) return succStart - (1 + lag) * DAY_MS return addWorkingDays(succStart, -(1 + lag), cfg) } /** Inverse of {@link ssAnchor}. */ -export function ssReverseAnchor(succStart: number, lag: number, cfg: WorkingCalendar | undefined): number { +export function ssReverseAnchor (succStart: number, lag: number, cfg: WorkingCalendar | undefined): number { if (cfg === undefined) return succStart - lag * DAY_MS return addWorkingDays(succStart, -lag, cfg) } /** Inverse of {@link ffAnchor}. */ -export function ffReverseAnchor(succDue: number, lag: number, cfg: WorkingCalendar | undefined): number { +export function ffReverseAnchor (succDue: number, lag: number, cfg: WorkingCalendar | undefined): number { if (cfg === undefined) return succDue - lag * DAY_MS return addWorkingDays(succDue, -lag, cfg) } /** Inverse of {@link sfAnchor}. */ -export function sfReverseAnchor(succDue: number, lag: number, cfg: WorkingCalendar | undefined): number { +export function sfReverseAnchor (succDue: number, lag: number, cfg: WorkingCalendar | undefined): number { if (cfg === undefined) return succDue - lag * DAY_MS return addWorkingDays(succDue, -lag, cfg) } diff --git a/packages/gantt/src/y-viewport.ts b/packages/gantt/src/y-viewport.ts index 4dde0fc9f5..f77256ff15 100644 --- a/packages/gantt/src/y-viewport.ts +++ b/packages/gantt/src/y-viewport.ts @@ -49,7 +49,7 @@ export interface YViewportInput { /** Output of {@link computeYViewport}. */ export interface YViewportSnapshot { /** Inclusive `startIndex`, exclusive `endIndex` of the rendered slice. */ - visibleRange: { startIndex: number; endIndex: number } + visibleRange: { startIndex: number, endIndex: number } /** Total scrollable height in pixels (`rowCount × rowHeight`). */ totalSize: number /** Spacer height above the first rendered row, in pixels. */ @@ -65,7 +65,7 @@ const DEFAULT_OVERSCAN = 5 * non-positive `rowHeight` (returns the full range) and negative scrollTop * (rubber-band → clamp to 0). */ -export function computeYViewport(input: YViewportInput): YViewportSnapshot { +export function computeYViewport (input: YViewportInput): YViewportSnapshot { const { rowCount, rowHeight, viewportHeight } = input const overscan = input.overscan ?? DEFAULT_OVERSCAN @@ -108,7 +108,7 @@ export function computeYViewport(input: YViewportInput): YViewportSnapshot { } /** Pixel-y of a given row index. Clamps negative indices to 0. */ -export function rowIndexToY(index: number, rowHeight: number): number { +export function rowIndexToY (index: number, rowHeight: number): number { return Math.max(0, index) * rowHeight } @@ -116,7 +116,7 @@ export function rowIndexToY(index: number, rowHeight: number): number { * Pixel-y → row index (floor). Clamps to `[0, totalRows-1]`. Returns 0 for * an empty list or non-positive `rowHeight` (defensive). */ -export function yToRowIndex(y: number, rowHeight: number, totalRows: number): number { +export function yToRowIndex (y: number, rowHeight: number, totalRows: number): number { if (totalRows <= 0 || rowHeight <= 0 || !Number.isFinite(rowHeight)) return 0 if (y <= 0) return 0 const idx = Math.floor(y / rowHeight) @@ -129,7 +129,7 @@ export function yToRowIndex(y: number, rowHeight: number, totalRows: number): nu * rows whose `[y, y + height)` intersects `bounds`. Used by the sidebar and * arrow layer when the canvas already emits rows in their layout-y space. */ -export function sliceVisibleRows(rows: readonly T[], bounds: YBounds): T[] { +export function sliceVisibleRows (rows: readonly T[], bounds: YBounds): T[] { if (rows.length === 0) return [] const out: T[] = [] for (const r of rows) { diff --git a/packages/gantt/src/zoom-dropdown.ts b/packages/gantt/src/zoom-dropdown.ts index 21f31fc601..d965149358 100644 --- a/packages/gantt/src/zoom-dropdown.ts +++ b/packages/gantt/src/zoom-dropdown.ts @@ -43,7 +43,7 @@ export const MAX_VISIBLE_DAYS = 999 * that preset (the user wheeled exactly back onto a preset). * - Else return `'custom'`. */ -export function dropdownSelectionForPxPerDay(userPxPerDay: number | null, zoom: ZoomLevel): DropdownSelection { +export function dropdownSelectionForPxPerDay (userPxPerDay: number | null, zoom: ZoomLevel): DropdownSelection { if (userPxPerDay === null) return zoom if (!Number.isFinite(userPxPerDay) || userPxPerDay <= 0) return 'custom' const levels: ZoomLevel[] = ['day', 'week', 'month', 'quarter'] @@ -61,7 +61,7 @@ export function dropdownSelectionForPxPerDay(userPxPerDay: number | null, zoom: * Always returns at least `MIN_VISIBLE_DAYS` (1) and defends against * NaN, zero or negative inputs so the UI never displays nonsense. */ -export function visibleDaysFromPxPerDay(viewportWidth: number, pxPerDay: number): number { +export function visibleDaysFromPxPerDay (viewportWidth: number, pxPerDay: number): number { if (!Number.isFinite(viewportWidth) || viewportWidth <= 0) return MIN_VISIBLE_DAYS if (!Number.isFinite(pxPerDay) || pxPerDay <= 0) return MIN_VISIBLE_DAYS const raw = Math.round(viewportWidth / pxPerDay) @@ -78,7 +78,7 @@ export function visibleDaysFromPxPerDay(viewportWidth: number, pxPerDay: number) * - Returns `MIN_PPD` for invalid viewport widths so the caller can * still apply the result without further error handling. */ -export function pxPerDayFromVisibleDays(viewportWidth: number, days: number): number { +export function pxPerDayFromVisibleDays (viewportWidth: number, days: number): number { if (!Number.isFinite(viewportWidth) || viewportWidth <= 0) return MIN_PPD let clamped: number if (!Number.isFinite(days)) { diff --git a/packages/gantt/src/zoom.ts b/packages/gantt/src/zoom.ts index bce0ba39af..243b908f1e 100644 --- a/packages/gantt/src/zoom.ts +++ b/packages/gantt/src/zoom.ts @@ -31,7 +31,7 @@ export const ZOOM_PX_PER_DAY: Record = { } /** Clamp px/day to the supported continuous range. */ -export function clampPxPerDay(ppd: number): number { +export function clampPxPerDay (ppd: number): number { if (Number.isNaN(ppd)) return MIN_PPD if (ppd <= 0) return MIN_PPD if (ppd < MIN_PPD) return MIN_PPD @@ -46,7 +46,7 @@ export function clampPxPerDay(ppd: number): number { * pixel range. Bump the factor for the low-density bands so users feel * the same responsiveness at every zoom level. */ -export function adaptiveWheelFactor(currentPpd: number): number { +export function adaptiveWheelFactor (currentPpd: number): number { if (!Number.isFinite(currentPpd) || currentPpd <= 0) return 0.012 if (currentPpd < 4) return 0.012 return 0.006 @@ -66,7 +66,7 @@ export function adaptiveWheelFactor(currentPpd: number): number { * `adaptiveWheelFactor` is used. Callers that need a fixed sensitivity * (e.g. tests) can pass an explicit factor. */ -export function applyWheelZoom(currentPpd: number, deltaY: number, factor?: number): number { +export function applyWheelZoom (currentPpd: number, deltaY: number, factor?: number): number { if (!Number.isFinite(currentPpd) || currentPpd <= 0) return clampPxPerDay(MIN_PPD) if (!Number.isFinite(deltaY) || deltaY === 0) return clampPxPerDay(currentPpd) const f = factor ?? adaptiveWheelFactor(currentPpd) @@ -81,7 +81,7 @@ export function applyWheelZoom(currentPpd: number, deltaY: number, factor?: numb * relative to the scroller, the current scrollLeft, and the old/new * px-per-day values. Origin is implicit (cancels out). */ -export function cursorAnchoredScrollLeft( +export function cursorAnchoredScrollLeft ( cursorX: number, oldScrollLeft: number, oldPpd: number, @@ -113,7 +113,7 @@ export function cursorAnchoredScrollLeft( * `createTimeScale(zoom, origin, pxPerDayOverride)` API: callers don't * need a new tick generator. */ -export function pxPerDayToTickZoom(ppd: number): ZoomLevel { +export function pxPerDayToTickZoom (ppd: number): ZoomLevel { if (!Number.isFinite(ppd) || ppd <= 0) return 'quarter' if (ppd > 20) return 'day' if (ppd > 7) return 'week' @@ -122,6 +122,6 @@ export function pxPerDayToTickZoom(ppd: number): ZoomLevel { } /** Inverse of `pxPerDayToTickZoom` for the toolbar "active preset" highlight. */ -export function presetForPxPerDay(ppd: number): ZoomLevel { +export function presetForPxPerDay (ppd: number): ZoomLevel { return pxPerDayToTickZoom(ppd) } diff --git a/packages/importer/src/huly/cards.ts b/packages/importer/src/huly/cards.ts index 26994d1bf7..7cbde4c97d 100644 --- a/packages/importer/src/huly/cards.ts +++ b/packages/importer/src/huly/cards.ts @@ -338,7 +338,7 @@ export class CardsProcessor { return { _class: card.class.MasterTag, props: { - _id: this.metadataRegistry.getRef(filePath) as Ref, + _id: this.metadataRegistry.getRef(filePath), space: core.space.Model, extends: parentMasterTagId ?? card.class.Card, label: ('embedded:embedded:' + title) as IntlString, @@ -407,7 +407,7 @@ export class CardsProcessor { return { _class: card.class.Tag, props: { - _id: this.metadataRegistry.getRef(filePath) as Ref, + _id: this.metadataRegistry.getRef(filePath), space: core.space.Model, extends: parentTagId ?? masterTagId, label: ('embedded:embedded:' + title) as IntlString, @@ -436,7 +436,7 @@ export class CardsProcessor { space: core.space.Model, attributeOf: masterTagId, name: generateId>(), - label: ('embedded:embedded:' + property.label) as IntlString, + label: ('embedded:embedded:' + property.label), isCustom: true, type, defaultValue: property.defaultValue ?? null diff --git a/packages/importer/src/importer/builder.ts b/packages/importer/src/importer/builder.ts index d53ec7bf01..52b4642477 100644 --- a/packages/importer/src/importer/builder.ts +++ b/packages/importer/src/importer/builder.ts @@ -313,7 +313,7 @@ export class ImportWorkspaceBuilder { } } - private validateAndAdd( + private validateAndAdd ( type: string, path: string, item: T, diff --git a/packages/importer/src/importer/importer.ts b/packages/importer/src/importer/importer.ts index 3d3562edb0..64b0489820 100644 --- a/packages/importer/src/importer/importer.ts +++ b/packages/importer/src/importer/importer.ts @@ -1145,7 +1145,7 @@ export class WorkspaceImporter { documents.mixin.DocumentTemplate, undefined, parentProjectDocumentId, - templateId as unknown as Ref, + templateId, template.docPrefix, template.code ?? '', template.title, @@ -1228,7 +1228,7 @@ export class WorkspaceImporter { requests: 0, labels: 0 }, - template.id as unknown as Ref + template.id ) await ops.createMixin(template.id, documents.class.Document, spaceId, documents.mixin.DocumentTemplate, { @@ -1420,7 +1420,7 @@ export class WorkspaceImporter { _id as Ref | undefined ) } else { - await this.client.createDoc(_class, props.space, props as Data>, _id) + await this.client.createDoc(_class, props.space, props, _id) } } @@ -1446,7 +1446,7 @@ export class WorkspaceImporter { _class, space, mixinClass, - data as Data> + data ) } } diff --git a/packages/importer/src/importer/preprocessor.ts b/packages/importer/src/importer/preprocessor.ts index 7275a7ca9f..475abc3ae0 100644 --- a/packages/importer/src/importer/preprocessor.ts +++ b/packages/importer/src/importer/preprocessor.ts @@ -31,7 +31,7 @@ export abstract class BaseMarkdownPreprocessor implements MarkdownPreprocessor { constructor (protected readonly personsByName: Map>) {} - abstract process (json: MarkupNode, id: Ref, spaceId: Ref): MarkupNode + abstract process(json: MarkupNode, id: Ref, spaceId: Ref): MarkupNode protected processMentions (node: MarkupNode): void { if (node.type !== MarkupNodeType.paragraph || node.content === undefined) return diff --git a/packages/integration-client/src/client.ts b/packages/integration-client/src/client.ts index a4e32ab8b6..403e97be6f 100644 --- a/packages/integration-client/src/client.ts +++ b/packages/integration-client/src/client.ts @@ -48,7 +48,7 @@ export class IntegrationClientImpl implements IntegrationClient { ) {} // Event methods - on(event: string, callback: EventCallback): () => void { + on (event: string, callback: EventCallback): () => void { return this.events.on(event, callback) } @@ -56,7 +56,7 @@ export class IntegrationClientImpl implements IntegrationClient { this.events.off(event, callback) } - private emit(event: string, data: T): void { + private emit (event: string, data: T): void { this.events.emit(event, data) } diff --git a/packages/integration-client/src/events.ts b/packages/integration-client/src/events.ts index e95efe92af..3290199770 100644 --- a/packages/integration-client/src/events.ts +++ b/packages/integration-client/src/events.ts @@ -25,7 +25,7 @@ export interface EventEmitter { export class IntegrationEventEmitter implements EventEmitter { private readonly listeners = new Map>() - on(event: string, callback: EventCallback): () => void { + on (event: string, callback: EventCallback): () => void { if (!this.listeners.has(event)) { this.listeners.set(event, new Set()) } @@ -46,7 +46,7 @@ export class IntegrationEventEmitter implements EventEmitter { } } - emit(event: string, data: T): void { + emit (event: string, data: T): void { const eventListeners = this.listeners.get(event) if (eventListeners === undefined) return diff --git a/packages/kvs-client/src/client.ts b/packages/kvs-client/src/client.ts index f209ab689b..71c4c8ac28 100644 --- a/packages/kvs-client/src/client.ts +++ b/packages/kvs-client/src/client.ts @@ -65,7 +65,7 @@ class KeyValueClientImpl implements KeyValueClient { } } - async setValue(key: string, value: T): Promise { + async setValue (key: string, value: T): Promise { const url = this.buildUrl(key) await this.sendRequest(url, { method: 'POST', @@ -75,7 +75,7 @@ class KeyValueClientImpl implements KeyValueClient { }) } - async getValue(key: string): Promise { + async getValue (key: string): Promise { const url = this.buildUrl(key) return await this.sendRequest(url, { method: 'GET', @@ -108,7 +108,7 @@ class KeyValueClientImpl implements KeyValueClient { return key !== undefined ? concatLink(baseApiUrl, encodeURIComponent(key)) : baseApiUrl } - private async sendRequest( + private async sendRequest ( url: string, options: { method: string diff --git a/packages/presentation/src/___tests___/workspaceIdentity.test.ts b/packages/presentation/src/___tests___/workspaceIdentity.test.ts index be20c4f68c..695c3ec6a7 100644 --- a/packages/presentation/src/___tests___/workspaceIdentity.test.ts +++ b/packages/presentation/src/___tests___/workspaceIdentity.test.ts @@ -5,9 +5,9 @@ import { mixLogoColor, normalizeIdentityColor, renderWorkspaceIdentity } from '. // The UI tsconfig profile does not include Node typings, so the few Node APIs this test needs are declared locally. // eslint-disable-next-line @typescript-eslint/naming-convention -- Node.js defines this global name. declare const __dirname: string -declare function require (id: 'fs'): { readFileSync: (path: string, encoding: 'utf8') => string } -declare function require (id: 'path'): { resolve: (...segments: string[]) => string } -declare function require (id: 'vm'): { runInNewContext: (code: string, context: Record) => unknown } +declare function require(id: 'fs'): { readFileSync: (path: string, encoding: 'utf8') => string } +declare function require(id: 'path'): { resolve: (...segments: string[]) => string } +declare function require(id: 'vm'): { runInNewContext: (code: string, context: Record) => unknown } const { readFileSync } = require('fs') const { resolve } = require('path') diff --git a/packages/presentation/src/__mocks__/svelte-store.ts b/packages/presentation/src/__mocks__/svelte-store.ts index e00680b945..ac190d5567 100644 --- a/packages/presentation/src/__mocks__/svelte-store.ts +++ b/packages/presentation/src/__mocks__/svelte-store.ts @@ -36,7 +36,7 @@ export interface Derived extends Readable { _getValue?: () => T } -export const writable = (initialValue: T): Writable => { +export const writable = (initialValue: T): Writable => { let value = initialValue const subscribers = new Set>() @@ -65,7 +65,7 @@ export const writable = (initialValue: T): Writable => { return store } -export const derived = ( +export const derived = ( stores: Readable | Array>, fn: (values: any) => T, initialValue?: T @@ -98,7 +98,7 @@ export const derived = ( return store } -export const readable = (initialValue: T, startStopNotifier?: StartStopNotifier): Readable => { +export const readable = (initialValue: T, startStopNotifier?: StartStopNotifier): Readable => { const store: Readable = { subscribe: (callback: Subscriber) => { callback(initialValue) @@ -123,7 +123,7 @@ export const readable = (initialValue: T, startStopNotifier?: StartStopNotifi return store } -export const get = (store: Readable): T => { +export const get = (store: Readable): T => { if (store?._getValue != null) { return store._getValue() } diff --git a/packages/presentation/src/__mocks__/svelte.ts b/packages/presentation/src/__mocks__/svelte.ts index 836e28d3d6..94ccfd9110 100644 --- a/packages/presentation/src/__mocks__/svelte.ts +++ b/packages/presentation/src/__mocks__/svelte.ts @@ -36,8 +36,8 @@ export const tick = async (): Promise => { await Promise.resolve() } -export const createEventDispatcher = = any>(): EventDispatcher => { - return (eventType: K, detail?: T[K]): boolean => { +export const createEventDispatcher = = any> (): EventDispatcher => { + return (eventType: K, detail?: T[K]): boolean => { return true } } diff --git a/packages/presentation/src/communication.ts b/packages/presentation/src/communication.ts index fd77c54a85..ed3893f413 100644 --- a/packages/presentation/src/communication.ts +++ b/packages/presentation/src/communication.ts @@ -125,8 +125,8 @@ export async function setCommunicationClient (platformClient: PlatformClient): P } export type AttachmentDataWithOptionalId

= Omit< -AttachmentData

, -'id' + AttachmentData

, + 'id' > & { id?: AttachmentID } @@ -236,7 +236,7 @@ class Client { await this.sendEvent(event) } - async attachmentPatch

( + async attachmentPatch

( cardId: CardID, messageId: MessageID, ops: { @@ -247,7 +247,7 @@ class Client { } ): Promise { const operations: Array< - AddAttachmentsOperation | RemoveAttachmentsOperation | SetAttachmentsOperation | UpdateAttachmentsOperation + AddAttachmentsOperation | RemoveAttachmentsOperation | SetAttachmentsOperation | UpdateAttachmentsOperation > = [] if (ops.add != null && ops.add.length > 0) { @@ -444,8 +444,8 @@ class Client { const eventPromise: Promise = this.connection .domainRequest(COMMUNICATION, { - event: ev - }) + event: ev + }) .then((result) => result.value) this.onRequest(ev, eventPromise) return await eventPromise diff --git a/packages/presentation/src/components/DocPopup.svelte b/packages/presentation/src/components/DocPopup.svelte index fa09225a2e..fb12ff9ba8 100644 --- a/packages/presentation/src/components/DocPopup.svelte +++ b/packages/presentation/src/components/DocPopup.svelte @@ -105,7 +105,7 @@ let selection = 0 let list: ListView - function handleSelection (evt: Event | undefined, objects: Doc[], selection: number): void { + function handleSelection(evt: Event | undefined, objects: Doc[], selection: number): void { const item = objects[selection] if (item === undefined) { return @@ -114,7 +114,7 @@ select(item) } - function select (item: Doc): void { + function select(item: Doc): void { onSelect?.(item) if (!multiSelect) { if (allowDeselect) { @@ -128,7 +128,7 @@ } } - function onKeydown (key: KeyboardEvent): void { + function onKeydown(key: KeyboardEvent): void { if (key.code === 'ArrowUp') { key.stopPropagation() key.preventDefault() @@ -147,7 +147,7 @@ } const manager = createFocusManager() - async function onCreate (): Promise { + async function onCreate(): Promise { if (create === undefined) { return } @@ -172,13 +172,13 @@ } } } - function toAny (obj: any): any { + function toAny(obj: any): any { return obj } const forbiddenDeselectItemIds = new Set(disallowDeselect) - function getGroup (doc: Doc, groupBy: any): any { + function getGroup(doc: Doc, groupBy: any): any { if (created.find((it) => it._id === doc._id) !== undefined) { return '_created' } @@ -188,7 +188,7 @@ return getObjectValue(groupBy, toAny(doc)) } - function findObjectPresenter (_class: Ref>): void { + function findObjectPresenter(_class: Ref>): void { const presenterMixin = getClient().getHierarchy().classHierarchyMixin(_class, view.mixin.ObjectPresenter) if (presenterMixin?.presenter !== undefined) { getResource(presenterMixin.presenter) @@ -201,7 +201,7 @@ } } - function isHasVersions (isVersionable: boolean, doc: Doc): VersionableDoc | undefined { + function isHasVersions(isVersionable: boolean, doc: Doc): VersionableDoc | undefined { if (!isVersionable) return const vDoc = doc as VersionableDoc if (vDoc.baseId === undefined) return diff --git a/packages/presentation/src/components/ObjectPopup.svelte b/packages/presentation/src/components/ObjectPopup.svelte index 5e651b0176..b254268297 100644 --- a/packages/presentation/src/components/ObjectPopup.svelte +++ b/packages/presentation/src/components/ObjectPopup.svelte @@ -160,7 +160,7 @@ } } - async function searchSpotlight (search: string): Promise { + async function searchSpotlight(search: string): Promise { return (await searchFor('spotlight', search, category, 50)).items } diff --git a/packages/presentation/src/configuration.ts b/packages/presentation/src/configuration.ts index eb9fde031d..63cd701bd4 100644 --- a/packages/presentation/src/configuration.ts +++ b/packages/presentation/src/configuration.ts @@ -40,7 +40,7 @@ export class ConfigurationManager { return configuration !== undefined && configuration.enabled } - hasResource(resource?: Resource | null): boolean | undefined { + hasResource (resource?: Resource | null): boolean | undefined { if (resource == null) { return false } diff --git a/packages/presentation/src/drafts.ts b/packages/presentation/src/drafts.ts index 1cd3964430..6d58804181 100644 --- a/packages/presentation/src/drafts.ts +++ b/packages/presentation/src/drafts.ts @@ -166,7 +166,7 @@ export class DraftController { removeDraft(id) } - static save(id: string, object: T, emptyObj: Partial | undefined = undefined): void { + static save (id: string, object: T, emptyObj: Partial | undefined = undefined): void { if (emptyObj !== undefined && isEmptyDraft(object, emptyObj)) { DraftController.remove(id) return diff --git a/packages/presentation/src/drawingUtils.ts b/packages/presentation/src/drawingUtils.ts index fd0e8e499f..9767e980d4 100644 --- a/packages/presentation/src/drawingUtils.ts +++ b/packages/presentation/src/drawingUtils.ts @@ -14,7 +14,16 @@ // export type ColorMetaName = - 'alpha' | 'beta' | 'gamma' | 'delta' | 'epsilon' | 'zeta' | 'eta' | 'theta' | 'iota' | 'kappa' + | 'alpha' + | 'beta' + | 'gamma' + | 'delta' + | 'epsilon' + | 'zeta' + | 'eta' + | 'theta' + | 'iota' + | 'kappa' // | 'lambda' // | 'mu' // | 'nu' diff --git a/packages/presentation/src/index.ts b/packages/presentation/src/index.ts index 305753389b..1e21076eb1 100644 --- a/packages/presentation/src/index.ts +++ b/packages/presentation/src/index.ts @@ -55,7 +55,7 @@ export { default as Image } from './components/Image.svelte' export { default as IconWithEmoji } from './components/IconWithEmoji.svelte' export { default as ObjectNode } from './components/markup/ObjectNode.svelte' export { default } from './plugin' -export * from './types' +export type * from './types' export * from './utils' export * from './file' export * from './filetypes' @@ -71,7 +71,7 @@ export * from './search' export * from './image' export * from './preview' export * from './sound' -export * from './stats' +export type * from './stats' export * from './drawing' export * from './drawingUtils' export * from './drawingColors' diff --git a/packages/presentation/src/pipeline.ts b/packages/presentation/src/pipeline.ts index 20f1e341df..df3987892c 100644 --- a/packages/presentation/src/pipeline.ts +++ b/packages/presentation/src/pipeline.ts @@ -115,7 +115,7 @@ export class PresentationPipelineImpl implements PresentationPipeline { return current } - async domainRequest( + async domainRequest ( domain: OperationDomain, params: DomainParams, options?: DomainRequestOptions @@ -136,7 +136,7 @@ export class PresentationPipelineImpl implements PresentationPipeline { } } - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -157,7 +157,7 @@ export class PresentationPipelineImpl implements PresentationPipeline { } } - async findAllPage( + async findAllPage ( _class: Ref>, query: DocumentQuery, options: FindPageOptions @@ -165,7 +165,7 @@ export class PresentationPipelineImpl implements PresentationPipeline { return await this.client.findAllPage(_class, query, options) } - iterateAll( + iterateAll ( _class: Ref>, query: DocumentQuery, options?: IterateOptions @@ -177,7 +177,7 @@ export class PresentationPipelineImpl implements PresentationPipeline { return await this.client.searchFulltext(query, options) } - async findOne( + async findOne ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -197,16 +197,16 @@ export class PresentationPipelineImpl implements PresentationPipeline { } } - async subscribe( + async subscribe ( _class: Ref>, query: DocumentQuery, options: FindOptions | undefined, refresh: () => void ): Promise<{ - unsubscribe: () => void - query?: DocumentQuery - options?: FindOptions - }> { + unsubscribe: () => void + query?: DocumentQuery + options?: FindOptions + }> { return this.head !== undefined ? await this.head.subscribe(_class, query, options, refresh) : { unsubscribe: () => {} } @@ -261,7 +261,7 @@ export abstract class BasePresentationMiddleware { await this.client.close() } - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -269,7 +269,7 @@ export abstract class BasePresentationMiddleware { return await this.provideFindAll(_class, query, options) } - async findOne( + async findOne ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -277,16 +277,16 @@ export abstract class BasePresentationMiddleware { return await this.provideFindOne(_class, query, options) } - async subscribe( + async subscribe ( _class: Ref>, query: DocumentQuery, options: FindOptions | undefined, refresh: () => void ): Promise<{ - unsubscribe: () => void - query?: DocumentQuery - options?: FindOptions - }> { + unsubscribe: () => void + query?: DocumentQuery + options?: FindOptions + }> { return await this.provideSubscribe(_class, query, options, refresh) } @@ -297,7 +297,7 @@ export abstract class BasePresentationMiddleware { return await this.client.tx(tx) } - protected async provideFindAll( + protected async provideFindAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -308,7 +308,7 @@ export abstract class BasePresentationMiddleware { return await this.client.findAll(_class, query, options) } - protected async provideFindOne( + protected async provideFindOne ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -319,7 +319,7 @@ export abstract class BasePresentationMiddleware { return await this.client.findOne(_class, query, options) } - async domainRequest( + async domainRequest ( domain: OperationDomain, params: DomainParams, options?: DomainRequestOptions @@ -327,7 +327,7 @@ export abstract class BasePresentationMiddleware { return await this.provideDomainRequest(domain, params, options) } - protected async provideDomainRequest( + protected async provideDomainRequest ( domain: OperationDomain, params: DomainParams, options?: DomainRequestOptions @@ -338,16 +338,16 @@ export abstract class BasePresentationMiddleware { return await this.client.domainRequest(domain, params, options) } - protected async provideSubscribe( + protected async provideSubscribe ( _class: Ref>, query: DocumentQuery, options: FindOptions | undefined, refresh: () => void ): Promise<{ - unsubscribe: () => void - query?: DocumentQuery - options?: FindOptions - }> { + unsubscribe: () => void + query?: DocumentQuery + options?: FindOptions + }> { if (this.next !== undefined) { return await this.next.subscribe(_class, query, options, refresh) } @@ -386,7 +386,7 @@ export class OptimizeQueryMiddleware extends BasePresentationMiddleware implemen return await this.provideTx(tx) } - async domainRequest( + async domainRequest ( domain: OperationDomain, params: DomainParams, options?: DomainRequestOptions @@ -394,20 +394,20 @@ export class OptimizeQueryMiddleware extends BasePresentationMiddleware implemen return await this.provideDomainRequest(domain, params, options) } - async subscribe( + async subscribe ( _class: Ref>, query: DocumentQuery, options: FindOptions | undefined, refresh: () => void ): Promise<{ - unsubscribe: () => void - query?: DocumentQuery - options?: FindOptions - }> { + unsubscribe: () => void + query?: DocumentQuery + options?: FindOptions + }> { return await this.provideSubscribe(_class, query, options, refresh) } - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions | undefined @@ -438,7 +438,7 @@ export class OptimizeQueryMiddleware extends BasePresentationMiddleware implemen return await this.provideFindAll(_class, fQuery, fOptions) } - private optimizeQuery(fQuery: DocumentQuery, fOptions: FindOptions): void { + private optimizeQuery (fQuery: DocumentQuery, fOptions: FindOptions): void { if (typeof fQuery._id === 'string' && fOptions.sort !== undefined) { delete fOptions.sort } @@ -447,7 +447,7 @@ export class OptimizeQueryMiddleware extends BasePresentationMiddleware implemen } } - async findOne( + async findOne ( _class: Ref>, query: DocumentQuery, options?: FindOptions | undefined diff --git a/packages/presentation/src/utils.ts b/packages/presentation/src/utils.ts index 395ac538c7..bdf4b7e8e1 100644 --- a/packages/presentation/src/utils.ts +++ b/packages/presentation/src/utils.ts @@ -162,7 +162,7 @@ class UIClient extends TxOperations implements Client { } } - override async findAll( + override async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -170,7 +170,7 @@ class UIClient extends TxOperations implements Client { return await this.liveQuery.findAll(_class, query, options) } - override async findOne( + override async findOne ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -309,7 +309,7 @@ class ClientHookImpl implements Client { return this.client.getModel() } - async findOne( + async findOne ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -324,7 +324,7 @@ class ClientHookImpl implements Client { await this.client.close() } - async findAll( + async findAll ( _class: Ref>, query: DocumentQuery, options?: FindOptions @@ -335,7 +335,7 @@ class ClientHookImpl implements Client { return await this.client.findAll(_class, query, options) } - async findAllPage( + async findAllPage ( _class: Ref>, query: DocumentQuery, options: FindPageOptions @@ -343,7 +343,7 @@ class ClientHookImpl implements Client { return await this.client.findAllPage(_class, query, options) } - iterateAll( + iterateAll ( _class: Ref>, query: DocumentQuery, options?: IterateOptions @@ -351,7 +351,7 @@ class ClientHookImpl implements Client { return this.client.iterateAll(_class, query, options) } - async domainRequest( + async domainRequest ( domain: OperationDomain, params: DomainParams, options?: DomainRequestOptions @@ -505,7 +505,7 @@ export class LiveQuery { } } - query( + query ( _class: Ref>, query: DocumentQuery, callback: (result: FindResult) => void | Promise, @@ -533,7 +533,7 @@ export class LiveQuery { } ) - private doQuery( + private doQuery ( id: number, _class: Ref>, query: DocumentQuery, @@ -602,7 +602,7 @@ export class LiveQuery { } } - private needUpdate( + private needUpdate ( _class: Ref>, query: DocumentQuery, callback: (result: FindResult) => void | Promise, diff --git a/packages/ui/src/colors.ts b/packages/ui/src/colors.ts index cd3ffd7899..863a29bbda 100644 --- a/packages/ui/src/colors.ts +++ b/packages/ui/src/colors.ts @@ -284,14 +284,14 @@ export function getPlatformColorByName (name: string, darkTheme: boolean): Color return getColorByName(name, darkTheme, whitePalette, darkPalette, defaultIndex) } -function getColorByName ( +function getColorByName( name: string, darkTheme: boolean, paletteLight: readonly ColorDefinition[], paletteDark: readonly ColorDefinition[], defaultIndex: number ): ColorDefinition -function getColorByName ( +function getColorByName( name: string, darkTheme: boolean, paletteLight: readonly ColorDefinition[], diff --git a/packages/ui/src/components/FilterButton.svelte b/packages/ui/src/components/FilterButton.svelte index 420b1b8d18..0c71b3f64f 100644 --- a/packages/ui/src/components/FilterButton.svelte +++ b/packages/ui/src/components/FilterButton.svelte @@ -36,24 +36,24 @@ change: ActiveFilter[] }>() - function clearFilters (): void { + function clearFilters(): void { dispatch('change', []) } - function addFilter (filter: ActiveFilter): void { + function addFilter(filter: ActiveFilter): void { // Remove any existing filter for the same category and add the new one const filtered = activeFilters.filter((f) => f.categoryId !== filter.categoryId) dispatch('change', [...filtered, filter]) } - function removeFilter (categoryId: string): void { + function removeFilter(categoryId: string): void { dispatch( 'change', activeFilters.filter((f) => f.categoryId !== categoryId) ) } - function showFilterPopup (e: MouseEvent): void { + function showFilterPopup(e: MouseEvent): void { const target = eventToHTMLElement(e) showPopup( FilterCategoryPopup, diff --git a/packages/ui/src/components/FilterCategoryPopup.svelte b/packages/ui/src/components/FilterCategoryPopup.svelte index 7139878c7f..009da4debc 100644 --- a/packages/ui/src/components/FilterCategoryPopup.svelte +++ b/packages/ui/src/components/FilterCategoryPopup.svelte @@ -30,17 +30,17 @@ let selectedCategory: FilterCategory | null = null let view: 'categories' | 'options' = 'categories' - function selectCategory (category: FilterCategory): void { + function selectCategory(category: FilterCategory): void { selectedCategory = category view = 'options' } - function goBackToCategories (): void { + function goBackToCategories(): void { selectedCategory = null view = 'categories' } - function selectOption (option: FilterOption): void { + function selectOption(option: FilterOption): void { if (selectedCategory === null) return const filter: ActiveFilter = { @@ -53,22 +53,22 @@ dispatch('close') } - function clearCategoryFilter (): void { + function clearCategoryFilter(): void { if (selectedCategory === null) return onFilterRemove(selectedCategory.id) dispatch('close') } - function isActive (categoryId: string): boolean { + function isActive(categoryId: string): boolean { return activeFilters.some((f) => f.categoryId === categoryId) } - function isOptionSelected (optionId: string): boolean { + function isOptionSelected(optionId: string): boolean { if (selectedCategory === null) return false return activeFilters.some((f) => f.categoryId === selectedCategory?.id && f.optionId === optionId) } - function getActiveOption (categoryId: string): string { + function getActiveOption(categoryId: string): string { const filter = activeFilters.find((f) => f.categoryId === categoryId) return filter !== undefined ? filter.optionLabel : '' } diff --git a/packages/ui/src/components/Header.svelte b/packages/ui/src/components/Header.svelte index c58ca2d26c..5da56ca694 100644 --- a/packages/ui/src/components/Header.svelte +++ b/packages/ui/src/components/Header.svelte @@ -86,7 +86,7 @@ if (closeButton) window.removeEventListener('keydown', _close) }) - function _close (ev: KeyboardEvent): void { + function _close(ev: KeyboardEvent): void { if (closeButton && ev.key === 'Escape' && closeOnEscape) { ev.preventDefault() ev.stopPropagation() diff --git a/packages/ui/src/components/ListView.svelte b/packages/ui/src/components/ListView.svelte index c1e98444ee..4e9ffde6b3 100644 --- a/packages/ui/src/components/ListView.svelte +++ b/packages/ui/src/components/ListView.svelte @@ -37,13 +37,13 @@ let oldSelection = Date.now() - function onRow (item: number): void { + function onRow(item: number): void { if (updateSelection(item)) { dispatch('on-select', item) } } - function updateSelection (item: number): boolean { + function updateSelection(item: number): boolean { const now = Date.now() if (now - oldSelection >= 25) { selection = item @@ -53,7 +53,7 @@ return false } - export function select (pos: number): void { + export function select(pos: number): void { if (pos < 0) { pos = 0 } diff --git a/packages/ui/src/components/ModeSelector.svelte b/packages/ui/src/components/ModeSelector.svelte index 48f14fcd25..4d8661b9e1 100644 --- a/packages/ui/src/components/ModeSelector.svelte +++ b/packages/ui/src/components/ModeSelector.svelte @@ -11,15 +11,15 @@ $: modeList = props.config != null ? props.config.map((c) => { - return { - id: c[0], - labelIntl: c[1], - labelParams: c[2], - action: () => { - props.onChange(c[0]) + return { + id: c[0], + labelIntl: c[1], + labelParams: c[2], + action: () => { + props.onChange(c[0]) + } } - } - }) + }) : [] diff --git a/packages/ui/src/components/SearchInputAdvanced.svelte b/packages/ui/src/components/SearchInputAdvanced.svelte index 27bee7591e..69a9806fd1 100644 --- a/packages/ui/src/components/SearchInputAdvanced.svelte +++ b/packages/ui/src/components/SearchInputAdvanced.svelte @@ -84,18 +84,18 @@ lastEmittedScope = scope } - function emit (): void { + function emit(): void { const raw = _search.trim() const encoded = encodeSearch(raw, scope) dispatch('change', { raw, encoded }) } - function restart (): void { + function restart(): void { clearTimeout(timer) timer = setTimeout(emit, delay) } - function clearSearch (): void { + function clearSearch(): void { _search = '' clearTimeout(timer) emit() diff --git a/packages/ui/src/components/internal/Root.svelte b/packages/ui/src/components/internal/Root.svelte index 3ef85713c2..2aea7bfddd 100644 --- a/packages/ui/src/components/internal/Root.svelte +++ b/packages/ui/src/components/internal/Root.svelte @@ -25,23 +25,23 @@ let application: AnyComponent | undefined - function updateAppFocused (isFocused: boolean): void { + function updateAppFocused(isFocused: boolean): void { const isFocusedCurrent = $isAppFocusedStore const isFocusedNew = isFocused && !document.hidden && document.hasFocus() if (isFocusedCurrent !== isFocusedNew) { isAppFocusedStore.set(isFocusedNew) } } - function visibilityChangeHandler (): void { + function visibilityChangeHandler(): void { updateAppFocused(!document.hidden) } - function handleWindowFocus (): void { + function handleWindowFocus(): void { updateAppFocused(true) } - function handleWindowBlur (): void { + function handleWindowBlur(): void { updateAppFocused(false) } - function handleWindowBeforeUnload (): void { + function handleWindowBeforeUnload(): void { // Many text inputs across the platform rely on the blur event to persist state, // but they don’t account for cases where the tab is forcefully closed, navigated away from, or destroyed. // Handling beforeunload for every input individually is impractical, diff --git a/packages/ui/src/types.ts b/packages/ui/src/types.ts index 61ea5aa497..18e16b457b 100644 --- a/packages/ui/src/types.ts +++ b/packages/ui/src/types.ts @@ -240,7 +240,7 @@ export const posAlignment = [ export type PopupPosAlignment = (typeof posAlignment)[number] export function isPopupPosAlignment (x: any): x is PopupPosAlignment { - return typeof x === 'string' && (posAlignment as typeof posAlignment).includes(x as PopupPosAlignment) + return typeof x === 'string' && posAlignment.includes(x as PopupPosAlignment) } export type PopupAlignment = PopupPosAlignment | PopupPositionElement | null diff --git a/packages/ui/src/utils.ts b/packages/ui/src/utils.ts index e3e8326994..4c4888efbd 100644 --- a/packages/ui/src/utils.ts +++ b/packages/ui/src/utils.ts @@ -326,17 +326,17 @@ export class DebouncedCaller { export const testing = (localStorage.getItem('#platform.testing.enabled') ?? 'false') === 'true' export const rootBarExtensions = writable< -Array< -[ - 'left' | 'right', - { - id: string - component: AnyComponent | AnySvelteComponent - props?: Record - order: number - } -] -> + Array< + [ + 'left' | 'right', + { + id: string + component: AnyComponent | AnySvelteComponent + props?: Record + order: number + } + ] + > >([]) export async function formatDuration (duration: number, language: string): Promise { @@ -389,12 +389,12 @@ export function removeRootBarComponent (id: string): void { } export const navFooterExtensions = writable< -Array<{ - id: string - component: AnyComponent | AnySvelteComponent - props?: Record - order: number -}> + Array<{ + id: string + component: AnyComponent | AnySvelteComponent + props?: Record + order: number + }> >([]) export function pushNavFooterComponent (component: AnyComponent, order?: number): void { diff --git a/plugins/activity-resources/src/components/activity-message/ActivityMessageTemplate.svelte b/plugins/activity-resources/src/components/activity-message/ActivityMessageTemplate.svelte index 34e98a6af9..6d90a8bd2e 100644 --- a/plugins/activity-resources/src/components/activity-message/ActivityMessageTemplate.svelte +++ b/plugins/activity-resources/src/components/activity-message/ActivityMessageTemplate.svelte @@ -87,7 +87,7 @@ menuActions = res }) - function scrollToMessage (): void { + function scrollToMessage(): void { if (element != null && shouldScroll) { element.scrollIntoView({ behavior: 'auto', block: 'end' }) shouldScroll = false @@ -98,15 +98,15 @@ setTimeout(scrollToMessage, 100) } - function handleActionsOpened (): void { + function handleActionsOpened(): void { isActionsOpened = true } - function handleActionsClosed (): void { + function handleActionsClosed(): void { isActionsOpened = false } - function handleAnimationEnd (event: AnimationEvent): void { + function handleAnimationEnd(event: AnimationEvent): void { const name = event.animationName.split('-').pop() if (name === 'highlight') { clearMessageInLocation() @@ -120,17 +120,17 @@ $: readonly = readonly || $restrictionStore.disableComments - function canDisplayShort (type: ActivityMessageViewType, isSaved: boolean): boolean { + function canDisplayShort(type: ActivityMessageViewType, isSaved: boolean): boolean { return type === 'short' && !isSaved && (message.replies ?? 0) === 0 } $: isShort = canDisplayShort(type, isSaved) - function isInside (x: number, y: number, rect: DOMRect): boolean { + function isInside(x: number, y: number, rect: DOMRect): boolean { return x >= rect.left && y >= rect.top && x <= rect.right && y <= rect.bottom } - function isTextClicked (element: HTMLElement | null, x: number, y: number): boolean { + function isTextClicked(element: HTMLElement | null, x: number, y: number): boolean { if (element == null) { return false } @@ -152,7 +152,7 @@ return false } - function handleContextMenu (event: MouseEvent): void { + function handleContextMenu(event: MouseEvent): void { if (readonly) return const showCustomPopup = !isTextClicked(event.target as HTMLElement, event.clientX, event.clientY) if (showCustomPopup) { diff --git a/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessageHeader.svelte b/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessageHeader.svelte index 20a2275b1c..062dbdb21b 100644 --- a/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessageHeader.svelte +++ b/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessageHeader.svelte @@ -41,7 +41,7 @@ linkData = data }) - function getTitle (attributeModel: AttributeModel): IntlString | undefined { + function getTitle(attributeModel: AttributeModel): IntlString | undefined { const isTextType = getIsTextType(attributeModel) if (!isTextType) { diff --git a/plugins/activity/src/index.ts b/plugins/activity/src/index.ts index 92ff57b0cb..54df4aba3f 100644 --- a/plugins/activity/src/index.ts +++ b/plugins/activity/src/index.ts @@ -137,12 +137,12 @@ export interface DocAttributeUpdates { export type DocUpdateAction = 'create' | 'update' | 'remove' export type DocUpdateMessageViewletAttributesConfig = Record< -string, -{ - presenter?: AnyComponent - icon?: Asset - iconPresenter?: AnyComponent -} + string, + { + presenter?: AnyComponent + icon?: Asset + iconPresenter?: AnyComponent + } > /** @@ -351,7 +351,7 @@ export default plugin(activityId, { function: { ShouldScrollToActivity: '' as Resource<() => boolean>, ActivityMessageTooltipProvider: '' as Resource< - (client: Client, doc?: Doc | null) => Promise + (client: Client, doc?: Doc | null) => Promise > }, backreference: { diff --git a/plugins/ai-bot/src/index.ts b/plugins/ai-bot/src/index.ts index d3b2350ced..b7aa11c9fd 100644 --- a/plugins/ai-bot/src/index.ts +++ b/plugins/ai-bot/src/index.ts @@ -17,7 +17,7 @@ import { buildSocialIdString, SocialIdType } from '@hcengineering/core' import type { Metadata, Plugin } from '@hcengineering/platform' import { plugin } from '@hcengineering/platform' -export * from './rest' +export type * from './rest' export const aiBotId = 'ai-bot' as Plugin diff --git a/plugins/billing-resources/src/stores/largestFiles.ts b/plugins/billing-resources/src/stores/largestFiles.ts index c86bafb436..8399c7b3cc 100644 --- a/plugins/billing-resources/src/stores/largestFiles.ts +++ b/plugins/billing-resources/src/stores/largestFiles.ts @@ -14,7 +14,7 @@ // import attachment, { type Attachment } from '@hcengineering/attachment' -import { type Class, type Client, type Ref, SortingOrder } from '@hcengineering/core' +import { type Client, SortingOrder } from '@hcengineering/core' import drive, { type File as DriveFile, type FileVersion } from '@hcengineering/drive' import { type LargestFileRow, type LargestFileRowRef, mergeBySizeDesc, topBySize } from './largestFilesLogic' @@ -82,7 +82,7 @@ export async function fetchLargestFiles (client: Client, limit: number): Promise {}, { limit, - lookup: { file: drive.class.FileVersion as unknown as Ref> } + lookup: { file: drive.class.FileVersion } } ) ]) diff --git a/plugins/billing-resources/src/utils.ts b/plugins/billing-resources/src/utils.ts index 2398b2f87c..0a5a55eec1 100644 --- a/plugins/billing-resources/src/utils.ts +++ b/plugins/billing-resources/src/utils.ts @@ -29,7 +29,6 @@ import drive, { type File as DriveFile } from '@hcengineering/drive' import { type Account, type AttachedDoc, - type Class, type Doc, type Ref, type UsageStatus, @@ -204,7 +203,7 @@ export async function deleteFilesBatch ( throw new Error('Attachment is missing parent reference') } await client.removeCollection( - ref._class as Ref>, + ref._class, ref.space, ref._id as Ref, ref.attachedTo, diff --git a/plugins/bitrix/src/sync.ts b/plugins/bitrix/src/sync.ts index 5f98643a58..effc1c97b1 100644 --- a/plugins/bitrix/src/sync.ts +++ b/plugins/bitrix/src/sync.ts @@ -1,5 +1,5 @@ import attachment, { Attachment } from '@hcengineering/attachment' -import contact, { Channel, Contact, Employee } from '@hcengineering/contact' +import contact, { Channel, Contact } from '@hcengineering/contact' import core, { PersonId, ApplyOperations, @@ -990,7 +990,7 @@ async function synchronizeUsers ( // } // ) } else if (account != null) { - const emp = employees.get(account.person as unknown as Ref) + const emp = employees.get(account.person) if (emp !== undefined && !ops.client.getHierarchy().hasMixin(emp, bitrix.mixin.BitrixSyncDoc)) { await ops.client.createMixin(emp._id, emp._class, emp.space, bitrix.mixin.BitrixSyncDoc, { type: 'employee', diff --git a/plugins/calendar-resources/src/components/CalendarSelector.svelte b/plugins/calendar-resources/src/components/CalendarSelector.svelte index 948f83c0d1..72b6179220 100644 --- a/plugins/calendar-resources/src/components/CalendarSelector.svelte +++ b/plugins/calendar-resources/src/components/CalendarSelector.svelte @@ -38,7 +38,7 @@ setCalendar(calendars, preference) }) - function setCalendar (calendars: Calendar[], primary: PrimaryCalendar | undefined): void { + function setCalendar(calendars: Calendar[], primary: PrimaryCalendar | undefined): void { if (value) return if (!calendarsLoaded || !prefsLoaded) return const target = getPrimaryCalendar(calendars, primary, getCurrentAccount().uuid) @@ -54,7 +54,7 @@ $: selected = value !== undefined ? items.find((p) => p._id === value) : undefined - function change (id: Ref) { + function change(id: Ref) { if (value !== id) { dispatch('change', { _id: id }) value = id diff --git a/plugins/calendar-resources/src/components/CalendarSettings.svelte b/plugins/calendar-resources/src/components/CalendarSettings.svelte index cefee8447c..a37dfb938b 100644 --- a/plugins/calendar-resources/src/components/CalendarSettings.svelte +++ b/plugins/calendar-resources/src/components/CalendarSettings.svelte @@ -32,14 +32,14 @@ return (c as ExternalCalendar).externalUser ?? 'HULY' }) - async function changeHidden (calendar: Calendar, value: boolean): Promise { + async function changeHidden(calendar: Calendar, value: boolean): Promise { if (value === undefined) return await client.update(calendar, { hidden: value }) } - async function changeVisibility (calendar: Calendar, value: Visibility): Promise { + async function changeVisibility(calendar: Calendar, value: Visibility): Promise { if (value === undefined) return await client.update(calendar, { visibility: value @@ -59,12 +59,12 @@ setPrimaryCalendar(calendars, pref) }) - function setPrimaryCalendar (calendars: Calendar[], pref: PrimaryCalendar | undefined): void { + function setPrimaryCalendar(calendars: Calendar[], pref: PrimaryCalendar | undefined): void { if (!prefsLoaded || !calendarsLoaded) return primaryCalendar = getPrimaryCalendar(calendars, pref, getCurrentAccount().uuid) } - async function changePrimary (e: CustomEvent): Promise { + async function changePrimary(e: CustomEvent): Promise { if (e.detail === undefined) return if (pref !== undefined) { if (pref.attachedTo === e.detail._id) return diff --git a/plugins/calendar-resources/src/components/VisibilityEditor.svelte b/plugins/calendar-resources/src/components/VisibilityEditor.svelte index edad997be2..5fb5b21154 100644 --- a/plugins/calendar-resources/src/components/VisibilityEditor.svelte +++ b/plugins/calendar-resources/src/components/VisibilityEditor.svelte @@ -57,14 +57,14 @@ $: selected = value !== undefined ? items.find((item) => item.id === value) : undefined - function change (val: Visibility): void { + function change(val: Visibility): void { if (value !== val) { dispatch('change', val) value = val } } - function openPopup (ev: MouseEvent): void { + function openPopup(ev: MouseEvent): void { if (!opened) { opened = true closeTooltip() diff --git a/plugins/chunter-resources/src/components/EditChannelSettingsTab.svelte b/plugins/chunter-resources/src/components/EditChannelSettingsTab.svelte index 01c6c6efb6..be7c58db57 100644 --- a/plugins/chunter-resources/src/components/EditChannelSettingsTab.svelte +++ b/plugins/chunter-resources/src/components/EditChannelSettingsTab.svelte @@ -32,18 +32,18 @@ let autoJoinForRoles: AccountRole[] = channel.autoJoinForRoles != null ? hierarchy.clone(channel.autoJoinForRoles) : [] - function normalizeAutoJoinForRoles (roles: AccountRole[]): AccountRole[] | undefined { + function normalizeAutoJoinForRoles(roles: AccountRole[]): AccountRole[] | undefined { return roles.length > 0 ? [...roles] : undefined } - async function persistAutoJoin (): Promise { + async function persistAutoJoin(): Promise { await client.diffUpdate(channel, { autoJoin, autoJoinForRoles: normalizeAutoJoinForRoles(autoJoinForRoles) }) } - function setGuestAutoJoin (enabled: boolean): void { + function setGuestAutoJoin(enabled: boolean): void { autoJoinForRoles = setWorkspaceGuestAutoJoinRoles(autoJoinForRoles, enabled) void persistAutoJoin() } diff --git a/plugins/chunter-resources/src/components/chat/ChannelAside.svelte b/plugins/chunter-resources/src/components/chat/ChannelAside.svelte index 39f925a442..da652c0a04 100644 --- a/plugins/chunter-resources/src/components/chat/ChannelAside.svelte +++ b/plugins/chunter-resources/src/components/chat/ChannelAside.svelte @@ -52,7 +52,7 @@ : [] $: updateMembers(object) - function updateMembers (object: Channel | undefined): void { + function updateMembers(object: Channel | undefined): void { if (object === undefined) { members = new Set() return @@ -61,11 +61,11 @@ members = new Set(object.members.map((account) => $employeeRefByAccountUuidStore.get(account)).filter(notEmpty)) } - function getAccountsByPersons (persons: Ref[]): AccountUuid[] { + function getAccountsByPersons(persons: Ref[]): AccountUuid[] { return persons.map((person) => $employeeByIdStore.get(person as Ref)?.personUuid).filter(notEmpty) } - async function changeMembers (personRefs: Ref[], object?: Channel): Promise { + async function changeMembers(personRefs: Ref[], object?: Channel): Promise { if (object === undefined) { return } @@ -78,7 +78,7 @@ await Promise.all([leaveChannel(object, accountsToLeave), joinChannel(object, accountsToJoin)]) } - async function removeMember (ev: CustomEvent): Promise { + async function removeMember(ev: CustomEvent): Promise { if (object === undefined) { return } @@ -94,7 +94,7 @@ await leaveChannel(object, accountsToLeave) } - function openSelectUsersPopup (): void { + function openSelectUsersPopup(): void { showPopup( SelectUsersPopup, { diff --git a/plugins/chunter/src/index.ts b/plugins/chunter/src/index.ts index 0bd96810fe..de7c42f511 100644 --- a/plugins/chunter/src/index.ts +++ b/plugins/chunter/src/index.ts @@ -236,24 +236,24 @@ export default plugin(chunterId, { CanTranslateMessage: '' as Resource<(doc?: Doc | Doc[]) => Promise>, CanSummarizeMessages: '' as Resource<(doc?: Doc | Doc[]) => Promise>, OpenThreadInSidebar: '' as Resource< - ( - _id: Ref, - msg?: ActivityMessage, - doc?: Doc, - selectedId?: Ref, - props?: Record, - force?: boolean - ) => Promise + ( + _id: Ref, + msg?: ActivityMessage, + doc?: Doc, + selectedId?: Ref, + props?: Record, + force?: boolean + ) => Promise >, OpenChannelInSidebar: '' as Resource< - ( - _id: Ref, - _class: Ref>, - doc?: Doc, - thread?: Ref, - newTab?: boolean, - selectedMessageId?: Ref - ) => Promise + ( + _id: Ref, + _class: Ref>, + doc?: Doc, + thread?: Ref, + newTab?: boolean, + selectedMessageId?: Ref + ) => Promise > } }) diff --git a/plugins/communication-resources/src/actions.ts b/plugins/communication-resources/src/actions.ts index f362bb2c39..30565cab55 100644 --- a/plugins/communication-resources/src/actions.ts +++ b/plugins/communication-resources/src/actions.ts @@ -97,7 +97,7 @@ export const replyInThread: MessageActionFunction = async (message: Message, par if (thread != null) { const client = getClient() const _id = thread.threadId - const card = await client.findOne(cardPlugin.class.Card, { _id: _id as Ref }) + const card = await client.findOne(cardPlugin.class.Card, { _id }) if (card === undefined) return const r = await getResource(cardPlugin.function.OpenCardInSidebar) await r(_id, card) diff --git a/plugins/communication-resources/src/components/CreateCardFromMessagePopup.svelte b/plugins/communication-resources/src/components/CreateCardFromMessagePopup.svelte index 5c2f4f4f74..a63b2cbd1b 100644 --- a/plugins/communication-resources/src/components/CreateCardFromMessagePopup.svelte +++ b/plugins/communication-resources/src/components/CreateCardFromMessagePopup.svelte @@ -42,14 +42,14 @@ let selectedType: Ref | undefined let inProgress = false - function getDefaultTitle (message: Message): string { + function getDefaultTitle(message: Message): string { const markup = toMarkup(message.content) const messageText = markupToText(markup).trim() return messageText.length > 0 ? messageText : '' } - async function attachCard (): Promise { + async function attachCard(): Promise { if (selectedType === undefined || title.trim() === '') return try { inProgress = true @@ -60,7 +60,7 @@ } } - function filterClasses (): [DropdownIntlItem, DropdownIntlItem[]][] { + function filterClasses(): [DropdownIntlItem, DropdownIntlItem[]][] { const descendants = hierarchy.getDescendants(cardPlugin.class.Card).filter((p) => p !== cardPlugin.class.Card) const added = new Set>>() const base = new Map>, Class[]>() diff --git a/plugins/communication-resources/src/components/CreateDirect.svelte b/plugins/communication-resources/src/components/CreateDirect.svelte index 5df54bf06c..73ab433362 100644 --- a/plugins/communication-resources/src/components/CreateDirect.svelte +++ b/plugins/communication-resources/src/components/CreateDirect.svelte @@ -25,14 +25,14 @@ $: updateData(collaborators) - function updateData (collaborators: Ref[]): void { + function updateData(collaborators: Ref[]): void { const title = getTitle(collaborators) if (data.title === title) return dispatch('change', { data: { title, members: collaborators } }) } - function getTitle (ids: Ref[]): string { + function getTitle(ids: Ref[]): string { const me = getCurrentEmployee() const employees = ids.map((id) => $employeeByIdStore.get(id)).filter(notEmpty) diff --git a/plugins/communication-resources/src/components/DateSeparator.svelte b/plugins/communication-resources/src/components/DateSeparator.svelte index 61635e0eb3..bbf312936d 100644 --- a/plugins/communication-resources/src/components/DateSeparator.svelte +++ b/plugins/communication-resources/src/components/DateSeparator.svelte @@ -21,7 +21,7 @@ export let date: Timestamp export let sticky: boolean = true - async function formatDate (timestamp: Timestamp, lang: string): Promise { + async function formatDate(timestamp: Timestamp, lang: string): Promise { const now = new Date() const date = new Date(timestamp) diff --git a/plugins/communication-resources/src/components/DirectIcon.svelte b/plugins/communication-resources/src/components/DirectIcon.svelte index cc699644fd..bceae31973 100644 --- a/plugins/communication-resources/src/components/DirectIcon.svelte +++ b/plugins/communication-resources/src/components/DirectIcon.svelte @@ -34,7 +34,7 @@ $: void updatePersons(value?.members ?? [], $employeeByIdStore) - async function updatePersons (members: Ref[], employeeById: Map, Employee>): Promise { + async function updatePersons(members: Ref[], employeeById: Map, Employee>): Promise { const res: Person[] = [] for (const member of members) { diff --git a/plugins/communication-resources/src/components/MessagePreview.svelte b/plugins/communication-resources/src/components/MessagePreview.svelte index ea7c789934..50a4f5a2db 100644 --- a/plugins/communication-resources/src/components/MessagePreview.svelte +++ b/plugins/communication-resources/src/components/MessagePreview.svelte @@ -37,7 +37,7 @@ $: void updatePerson(message.creator) - function getTooltipLabel (message: Message): IntlString { + function getTooltipLabel(message: Message): IntlString { const text = markupToText(jsonToMarkup(markdownToMarkup(message.content))) if (text.length > tooltipLimit) { return getEmbeddedLabel(text.substring(0, tooltipLimit) + '...') @@ -45,7 +45,7 @@ return getEmbeddedLabel(text) } - async function updatePerson (socialId: SocialID): Promise { + async function updatePerson(socialId: SocialID): Promise { person = $employeeByPersonIdStore.get(socialId) ?? (await getPersonByPersonId(socialId)) ?? undefined } diff --git a/plugins/communication-resources/src/components/MessagesList.svelte b/plugins/communication-resources/src/components/MessagesList.svelte index b9f71d8f3e..ef9d194727 100644 --- a/plugins/communication-resources/src/components/MessagesList.svelte +++ b/plugins/communication-resources/src/components/MessagesList.svelte @@ -83,14 +83,14 @@ const limit = $deviceInfo.isMobile ? 20 : 50 let queryDef = getBaseQuery() - export function scrollDown (): void { + export function scrollDown(): void { shouldScrollToEnd = true position = 'end' reinit(position, true) readAllReactions() } - export function canScrollDown (): boolean { + export function canScrollDown(): boolean { return window !== undefined && window.hasNextPage() } @@ -171,7 +171,7 @@ let ro: ResizeObserver | undefined = undefined let prev: number = -1 - function lastGroupObserver (node: HTMLDivElement): { destroy: () => void } { + function lastGroupObserver(node: HTMLDivElement): { destroy: () => void } { ro = ro ?? new ResizeObserver(() => { @@ -192,13 +192,13 @@ ro.observe(node) return { - destroy () { + destroy() { ro?.unobserve(node) } } } - function reinit (position: 'start' | 'end', force = false): void { + function reinit(position: 'start' | 'end', force = false): void { if (prevPosition === position && !force) return prevPosition = position @@ -220,7 +220,7 @@ } } - function getBaseQuery (): MessageQueryParams { + function getBaseQuery(): MessageQueryParams { if (position === 'start') { return { cardId: card._id, @@ -241,15 +241,15 @@ } } - function getBottomOffset (): number { + function getBottomOffset(): number { return Math.max(0, Math.floor(scrollDiv.scrollHeight - scrollDiv.scrollTop - scrollDiv.clientHeight)) } - function getTopOffset (): number { + function getTopOffset(): number { return Math.floor(scrollDiv.scrollTop - contentDiv.offsetTop) } - function updateShouldScrollToNew (): void { + function updateShouldScrollToNew(): void { if (window === undefined || window.hasNextPage()) { shouldScrollToNew = false atBottom = false @@ -260,15 +260,15 @@ atBottom = bottomOffset < 10 } - function shouldLoadPrevPage (): boolean { + function shouldLoadPrevPage(): boolean { return topOffset <= 10 } - function shouldLoadNextPage (): boolean { + function shouldLoadNextPage(): boolean { return bottomOffset <= 200 } - function loadMore (direction: 'up' | 'down'): void { + function loadMore(direction: 'up' | 'down'): void { if (window === undefined || !isScrollInitialized) return if (shouldLoadPrevPage() && window.hasPrevPage() && direction === 'up') { @@ -280,7 +280,7 @@ let shouldRestoreScrollTop = false - async function loadPrevPage (): Promise { + async function loadPrevPage(): Promise { if (window === undefined || isPageLoading || scrollDiv == null) return try { @@ -294,7 +294,7 @@ } } - async function loadNextPage (): Promise { + async function loadNextPage(): Promise { if (window === undefined || isPageLoading) return if ((restore?.scrollHeight ?? 0) !== 0) return @@ -308,12 +308,12 @@ } } - function scrollToBottom (forced = false): void { + function scrollToBottom(forced = false): void { if (!$isAppFocusedStore && !forced) return scrollDiv.scroll({ top: scrollDiv.scrollHeight, behavior: 'instant' }) } - function restoreScroll (): void { + function restoreScroll(): void { if (restore == null) return dispatch('action', { id: 'hideScrollBar' }) const newScrollHeight = scrollDiv.scrollHeight @@ -324,7 +324,7 @@ let rafId: any | null = null let lastScrollTop: number = 0 - function handleScroll (): void { + function handleScroll(): void { if (rafId !== null) return rafId = requestAnimationFrame(() => { const top = scrollDiv.scrollTop @@ -343,7 +343,7 @@ $: updateSeparator($isAppFocusedStore, context) $: readViewport($isAppFocusedStore) - function updateSeparator (isAppFocused: boolean, context: NotificationContext | undefined): void { + function updateSeparator(isAppFocused: boolean, context: NotificationContext | undefined): void { if (isAppFocused || context == null || window == null) return const separatorIndex = messages.findIndex( ({ created, creator }) => !me.socialIds.includes(creator) && created.getTime() > context.lastView.getTime() @@ -352,7 +352,7 @@ separatorDate = messages[separatorIndex].created } - function readAllReactions (): void { + function readAllReactions(): void { if (reactionNotifications.length === 0) return for (const notification of reactionNotifications) { void communicationClient.updateNotifications( @@ -364,7 +364,7 @@ ) } } - function readViewport (isAppFocused: boolean): void { + function readViewport(isAppFocused: boolean): void { if (!isAppFocused || context == null || window == null) return const containerRect = scrollDiv.getBoundingClientRect() @@ -406,7 +406,7 @@ } } - function scrollToStartOfNew (): void { + function scrollToStartOfNew(): void { if (!shouldScrollToNew) return updateSeparator($isAppFocusedStore, context) if (separatorDate == null) { @@ -436,7 +436,7 @@ } } - async function readAll (): Promise { + async function readAll(): Promise { if (window == null || context == null || !isScrollInitialized || window.hasNextPage() || !$isAppFocusedStore) return if ((newLastView ?? context.lastView).getTime() >= context.lastUpdate.getTime()) { @@ -447,7 +447,7 @@ } } - async function onMessagesReceive (res: Message[]): Promise { + async function onMessagesReceive(res: Message[]): Promise { if (messagesCount === res.length) return const prevCount = messagesCount messagesCount = res.length @@ -470,7 +470,7 @@ let readNotificationsTimer: any | undefined = undefined let unsubscribeObserver: (() => void) | undefined = undefined - function readNotifications (date: Date): void { + function readNotifications(date: Date): void { if (readNotificationsTimer != null) { clearTimeout(readNotificationsTimer) readNotificationsTimer = undefined @@ -483,7 +483,7 @@ $: initMessageObserver(contentDiv, isScrollInitialized, context) - function initMessageObserver ( + function initMessageObserver( contentDiv: HTMLDivElement, isScrollInitialized: boolean, context: NotificationContext | undefined @@ -520,7 +520,7 @@ $: void initializeScroll(isLoading, separatorDiv) - function scrollToWithOffset (container: HTMLElement, target: HTMLElement, offset: number): void { + function scrollToWithOffset(container: HTMLElement, target: HTMLElement, offset: number): void { const containerTop = container.getBoundingClientRect().top const targetTop = target.getBoundingClientRect().top const currentScroll = container.scrollTop @@ -533,7 +533,7 @@ $: if (isScrollInitialized) { dispatch('loaded') } - async function initializeScroll (isLoading: boolean, separatorDiv?: HTMLDivElement | null): Promise { + async function initializeScroll(isLoading: boolean, separatorDiv?: HTMLDivElement | null): Promise { if (isLoading || isScrollInitialized) return if (position === 'start') { @@ -549,9 +549,9 @@ const separatorIndex = initialLastView !== undefined ? messages.findIndex( - ({ created, creator }) => - initialLastView != null && !me.socialIds.includes(creator) && created > initialLastView - ) + ({ created, creator }) => + initialLastView != null && !me.socialIds.includes(creator) && created > initialLastView + ) : -1 if (separatorIndex === -1 || shouldScrollToEnd) { @@ -594,7 +594,7 @@ scrollDiv.addEventListener('scroll', handleScroll, { passive: true }) }) - export function editLastMessage (): void { + export function editLastMessage(): void { if (window == null || window.hasNextPage()) return if (!atBottom) return diff --git a/plugins/communication-resources/src/components/MessagesSection.svelte b/plugins/communication-resources/src/components/MessagesSection.svelte index 87a2ee47d5..c757589c5b 100644 --- a/plugins/communication-resources/src/components/MessagesSection.svelte +++ b/plugins/communication-resources/src/components/MessagesSection.svelte @@ -43,21 +43,21 @@ prevActive = active } - export function navigate () { + export function navigate() { position = 'end' list?.scrollDown() } - export function scrollDown (): void { + export function scrollDown(): void { position = 'end' list?.scrollDown() } - export function canScrollDown (): boolean { + export function canScrollDown(): boolean { return list?.canScrollDown() ?? false } - export function editLastMessage (): void { + export function editLastMessage(): void { list?.editLastMessage() } diff --git a/plugins/communication-resources/src/components/ReactionsList.svelte b/plugins/communication-resources/src/components/ReactionsList.svelte index da5da03a9b..a419401969 100644 --- a/plugins/communication-resources/src/components/ReactionsList.svelte +++ b/plugins/communication-resources/src/components/ReactionsList.svelte @@ -27,7 +27,7 @@ let emojiPopupOpened = false - function handleAdd (event: MouseEvent): void { + function handleAdd(event: MouseEvent): void { event.preventDefault() event.stopPropagation() emojiPopupOpened = true diff --git a/plugins/communication-resources/src/components/TextInput.svelte b/plugins/communication-resources/src/components/TextInput.svelte index eb1feec2a7..f71947b48d 100644 --- a/plugins/communication-resources/src/components/TextInput.svelte +++ b/plugins/communication-resources/src/components/TextInput.svelte @@ -49,7 +49,7 @@ $: setContent(content) - function canSubmit (loading: boolean, content: Markup, hasChanges: boolean): boolean { + function canSubmit(loading: boolean, content: Markup, hasChanges: boolean): boolean { if (loading) return false const isEmptyContent = isEmpty || isEmptyMarkup(content) @@ -60,7 +60,7 @@ return isContentChanged || hasChanges } - function setContent (content: Markup): void { + function setContent(content: Markup): void { editor?.setContent(content) } @@ -77,7 +77,7 @@ insertTemplate: (name, markup) => { editor?.insertMarkup(markup) }, - insertTable (options: { rows?: number, cols?: number, withHeaderRow?: boolean }) { + insertTable(options: { rows?: number, cols?: number, withHeaderRow?: boolean }) { editor?.insertTable(options) }, insertCodeBlock: () => { @@ -97,11 +97,11 @@ let sortedActions: TextInputAction[] = [] $: sortedActions = actions.sort((a, b) => a.order - b.order) - export function submit (): void { + export function submit(): void { editor?.submit() } - function handleAction (action: TextInputAction, evt?: Event): void { + function handleAction(action: TextInputAction, evt?: Event): void { action.action(evt?.target as HTMLElement, editorHandler) } diff --git a/plugins/communication-resources/src/components/TypingPresenter.svelte b/plugins/communication-resources/src/components/TypingPresenter.svelte index 4ffaedfa3c..66e39f0bf5 100644 --- a/plugins/communication-resources/src/components/TypingPresenter.svelte +++ b/plugins/communication-resources/src/components/TypingPresenter.svelte @@ -45,7 +45,7 @@ $: void updateTypingPersons(typingInfo) - async function updateTypingPersons (typingInfo: Map): Promise { + async function updateTypingPersons(typingInfo: Map): Promise { if (typingInfo.size === 0) { typingGroups = [] return @@ -85,7 +85,7 @@ typingGroups = groups } - function handleTyping (typing: Map): void { + function handleTyping(typing: Map): void { typingInfo = typing } diff --git a/plugins/communication-resources/src/components/input/MessageInput.svelte b/plugins/communication-resources/src/components/input/MessageInput.svelte index 46de459319..7320aebf7b 100644 --- a/plugins/communication-resources/src/components/input/MessageInput.svelte +++ b/plugins/communication-resources/src/components/input/MessageInput.svelte @@ -80,14 +80,14 @@ $: _saveDraft(markup, attachmentsDraft) - function initDraft (): void { + function initDraft(): void { const draft = message != null ? messageToDraft(message) : getDraft(card._id) attachmentsDraft = draft markup = draft.content previewUrls.clear() } - function _saveDraft (markup: Markup, draft: Omit): void { + function _saveDraft(markup: Markup, draft: Omit): void { for (const link of draft.links) { previewUrls.set(link.url, true) } @@ -96,7 +96,7 @@ } } - async function handleSubmit (event: CustomEvent): Promise { + async function handleSubmit(event: CustomEvent): Promise { event.preventDefault() event.stopPropagation() @@ -130,7 +130,7 @@ void clearTyping(acc.primarySocialId, card._id) } - async function fileSelected (): Promise { + async function fileSelected(): Promise { progress = true await tick() const list = inputElement.files @@ -147,7 +147,7 @@ progress = false } - async function addFile (file: File): Promise { + async function addFile(file: File): Promise { const { uuid, metadata } = await uploadFile(file) const blob = { @@ -174,7 +174,7 @@ order: 1000 } - async function handleCancel (): Promise { + async function handleCancel(): Promise { onCancel?.() for (const blob of attachmentsDraft.blobs) { const fromMessage = @@ -186,7 +186,7 @@ attachmentsDraft = getEmptyDraft() } - async function loadFiles (evt: ClipboardEvent): Promise { + async function loadFiles(evt: ClipboardEvent): Promise { progress = true const files = (evt.clipboardData?.files ?? []) as File[] @@ -197,7 +197,7 @@ progress = false } - function pasteAction (_: any, evt: ClipboardEvent): boolean { + function pasteAction(_: any, evt: ClipboardEvent): boolean { let target: HTMLElement | null = evt.target as HTMLElement let allowed = false const hasFiles = Array.from(evt.clipboardData?.items ?? []).some((i) => i.kind === 'file') @@ -219,7 +219,7 @@ return allowed } - async function fileDrop (e: DragEvent): Promise { + async function fileDrop(e: DragEvent): Promise { const list = e.dataTransfer?.files const limiter = new RateLimiter(10) @@ -235,7 +235,7 @@ progress = false } - function isValidUrl (s: string): boolean { + function isValidUrl(s: string): boolean { let url: URL try { url = new URL(s) @@ -245,7 +245,7 @@ return url.protocol.startsWith('http') } - function updateLinkPreview (): void { + function updateLinkPreview(): void { if (refContainer == null) return const hrefs = refContainer.getElementsByTagName('a') const validUrls = Array.from(hrefs) @@ -278,7 +278,7 @@ } } - async function loadLinks (urls: string[]): Promise { + async function loadLinks(urls: string[]): Promise { const draftId = attachmentsDraft._id for (const url of urls) { @@ -297,7 +297,7 @@ } } - async function onUpdate (event: CustomEvent): Promise { + async function onUpdate(event: CustomEvent): Promise { markup = event.detail const visiblePreviewUrls = Array.from(previewUrls.keys()).filter((it) => previewUrls.get(it) === true) if (isLinkPreviewEnabled() && visiblePreviewUrls.length < maxLinkPreviewCount) { @@ -311,11 +311,11 @@ } } - function isEmptyDraft (): boolean { + function isEmptyDraft(): boolean { return isEmptyMarkup(markup) && attachmentsDraft.blobs.length === 0 && attachmentsDraft.applets.length === 0 } - function hasChanges (blobs: BlobParams[], message: Message | undefined, appletDrafts: AppletDraft[]): boolean { + function hasChanges(blobs: BlobParams[], message: Message | undefined, appletDrafts: AppletDraft[]): boolean { if (isEmptyDraft()) return false if (message === undefined) return blobs.length > 0 || !isEmptyMarkup(markup) || appletDrafts.length > 0 const messageBlobs = message?.attachments.filter(isBlobAttachment) ?? [] @@ -351,7 +351,7 @@ } }) - async function uploadWith (uploader: UploadHandlerDefinition): Promise { + async function uploadWith(uploader: UploadHandlerDefinition): Promise { const cardId = card._id const onFileUploaded = async ({ uuid, name, file, metadata }: FileUploadCallbackParams): Promise => { @@ -396,7 +396,7 @@ } })) - function handleKeyDown (_: any, event: KeyboardEvent): boolean { + function handleKeyDown(_: any, event: KeyboardEvent): boolean { if (event.key === 'ArrowUp') { if (isEmptyDraft() && $messageEditingStore === undefined) { dispatch('arrowUp') @@ -410,21 +410,21 @@ return false } - function onChangeApplet (event: CustomEvent): void { + function onChangeApplet(event: CustomEvent): void { attachmentsDraft = { ...attachmentsDraft, applets: attachmentsDraft.applets.map((it) => (it.id === event.detail.id ? event.detail : it)) } } - function onDeleteApplet (event: CustomEvent): void { + function onDeleteApplet(event: CustomEvent): void { attachmentsDraft = { ...attachmentsDraft, applets: attachmentsDraft.applets.filter((it) => it.id !== event.detail) } } - function onDeleteBlob (event: CustomEvent): void { + function onDeleteBlob(event: CustomEvent): void { const blobId = event.detail attachmentsDraft = { ...attachmentsDraft, @@ -436,7 +436,7 @@ } } - function onDeleteLink (event: CustomEvent): void { + function onDeleteLink(event: CustomEvent): void { attachmentsDraft = { ...attachmentsDraft, links: attachmentsDraft.links.filter((it) => it.url !== event.detail) diff --git a/plugins/communication-resources/src/components/message/MessageActionsPanel.svelte b/plugins/communication-resources/src/components/message/MessageActionsPanel.svelte index 695ea3d7d8..fd6d3729dc 100644 --- a/plugins/communication-resources/src/components/message/MessageActionsPanel.svelte +++ b/plugins/communication-resources/src/components/message/MessageActionsPanel.svelte @@ -33,12 +33,12 @@ $: menuActions = actions.filter((a) => a.menu) $: inlineActions = actions.filter((a) => !(a.menu ?? false)) - async function handleAction (action: MessageAction, ev: MouseEvent): Promise { + async function handleAction(action: MessageAction, ev: MouseEvent): Promise { const actionFn = await getResource(action.action) await actionFn(message, card, ev, onOpen, onClose) } - function showMenu (ev: MouseEvent): void { + function showMenu(ev: MouseEvent): void { onOpen() const actions: Action[] = menuActions.map((action) => ({ diff --git a/plugins/communication-resources/src/components/message/MessageBody.svelte b/plugins/communication-resources/src/components/message/MessageBody.svelte index 5f8ae41194..15904dec0c 100644 --- a/plugins/communication-resources/src/components/message/MessageBody.svelte +++ b/plugins/communication-resources/src/components/message/MessageBody.svelte @@ -49,7 +49,7 @@ let isShowMoreActive: boolean = false - function formatDate (date: Date): string { + function formatDate(date: Date): string { return date.toLocaleTimeString('default', { hour: 'numeric', minute: 'numeric' diff --git a/plugins/communication-resources/src/components/message/MessageContentViewer.svelte b/plugins/communication-resources/src/components/message/MessageContentViewer.svelte index 56199b931e..d9af8734bc 100644 --- a/plugins/communication-resources/src/components/message/MessageContentViewer.svelte +++ b/plugins/communication-resources/src/components/message/MessageContentViewer.svelte @@ -65,7 +65,7 @@ } } - function getMaxSize (maxHeight: string): number { + function getMaxSize(maxHeight: string): number { const remValue = parseFloat(maxHeight.replace('rem', '')) if (isNaN(remValue) || remValue <= 0) { return 480 // 30rem * 16px diff --git a/plugins/communication-resources/src/components/message/MessageFooter.svelte b/plugins/communication-resources/src/components/message/MessageFooter.svelte index 56c1739c14..cf74639b21 100644 --- a/plugins/communication-resources/src/components/message/MessageFooter.svelte +++ b/plugins/communication-resources/src/components/message/MessageFooter.svelte @@ -51,18 +51,18 @@ threadCardsQuery.unsubscribe() } - function canReply (): boolean { + function canReply(): boolean { return message.type !== MessageType.Activity && message.extra?.threadRoot !== true } - async function handleReaction (event: CustomEvent): Promise { + async function handleReaction(event: CustomEvent): Promise { event.preventDefault() event.stopPropagation() const emoji = event.detail await toggleReaction(message, emoji) } - async function handleReply (event: CustomEvent | undefined>): Promise { + async function handleReply(event: CustomEvent | undefined>): Promise { if (!canReply()) return const threadID = event.detail if (threadID === undefined) return @@ -76,7 +76,7 @@ await r(_id, c) } - async function removeLinkPreview (id: AttachmentID): Promise { + async function removeLinkPreview(id: AttachmentID): Promise { await communicationClient.attachmentPatch(message.cardId, message.id, { remove: [id] }) diff --git a/plugins/communication-resources/src/components/message/MessagePresenter.svelte b/plugins/communication-resources/src/components/message/MessagePresenter.svelte index 73539a6555..0cce8ba7cd 100644 --- a/plugins/communication-resources/src/components/message/MessagePresenter.svelte +++ b/plugins/communication-resources/src/components/message/MessagePresenter.svelte @@ -56,7 +56,7 @@ $: isEditing = $messageEditingStore === message.id $: void updateAuthor(message.creator) - async function updateAuthor (socialId: SocialID): Promise { + async function updateAuthor(socialId: SocialID): Promise { author = $employeeByPersonIdStore.get(socialId) if (author === undefined) { @@ -65,17 +65,17 @@ } $: updateStore(message) - function updateStore (message: Message): void { + function updateStore(message: Message): void { if (!readonly && message.id === $threadCreateMessageStore?.id) { threadCreateMessageStore.set(message) } } - function isInside (x: number, y: number, rect: DOMRect): boolean { + function isInside(x: number, y: number, rect: DOMRect): boolean { return x >= rect.left && y >= rect.top && x <= rect.right && y <= rect.bottom } - function isContentClicked (element: HTMLElement | null, x: number, y: number): boolean { + function isContentClicked(element: HTMLElement | null, x: number, y: number): boolean { if (element == null) { return false } @@ -116,7 +116,7 @@ $: actions = allActions.filter((it) => !excludedActions.includes(it._id)) - function getExcludedActions (isTranslated: boolean): Ref[] { + function getExcludedActions(isTranslated: boolean): Ref[] { if (!isTranslated) { return [communication.messageAction.ShowOriginalMessage] } else { @@ -124,7 +124,7 @@ } } - function handleContextMenu (event: MouseEvent): void { + function handleContextMenu(event: MouseEvent): void { const showCustomPopup = !isContentClicked(event.target as HTMLElement, event.clientX, event.clientY) if (!showCustomPopup) return diff --git a/plugins/communication-resources/src/components/message/MessagesGroupPresenter.svelte b/plugins/communication-resources/src/components/message/MessagesGroupPresenter.svelte index 16e70509ab..a1556a332a 100644 --- a/plugins/communication-resources/src/components/message/MessagesGroupPresenter.svelte +++ b/plugins/communication-resources/src/components/message/MessagesGroupPresenter.svelte @@ -38,13 +38,13 @@ $: separatorIndex = separatorDate != null ? messages.findIndex( - ({ created, creator }) => separatorDate != null && !me.socialIds.includes(creator) && created >= separatorDate - ) + ({ created, creator }) => separatorDate != null && !me.socialIds.includes(creator) && created >= separatorDate + ) : -1 $: mergedMessages = mergeMessages(messages) - function mergeMessages (messages: Message[]): Message[] { + function mergeMessages(messages: Message[]): Message[] { const result: Message[] = [] for (let i = 0; i < messages.length; i++) { const currentMessage = messages[i] diff --git a/plugins/communication-resources/src/components/message/OneRowMessageBody.svelte b/plugins/communication-resources/src/components/message/OneRowMessageBody.svelte index 1c0b0825ee..3f74323d09 100644 --- a/plugins/communication-resources/src/components/message/OneRowMessageBody.svelte +++ b/plugins/communication-resources/src/components/message/OneRowMessageBody.svelte @@ -28,7 +28,7 @@ export let hideAvatar: boolean = false export let hideHeader: boolean = false - function formatDate (date: Date): string { + function formatDate(date: Date): string { return date.toLocaleTimeString('default', { hour: 'numeric', minute: 'numeric' diff --git a/plugins/communication-resources/src/components/message/activity/ActivityCollaborativeContentViewer.svelte b/plugins/communication-resources/src/components/message/activity/ActivityCollaborativeContentViewer.svelte index 884bf7f97c..b742db9b1d 100644 --- a/plugins/communication-resources/src/components/message/activity/ActivityCollaborativeContentViewer.svelte +++ b/plugins/communication-resources/src/components/message/activity/ActivityCollaborativeContentViewer.svelte @@ -27,7 +27,7 @@ let isDiffShown = false - function toggleShowMore (): void { + function toggleShowMore(): void { isDiffShown = !isDiffShown } diff --git a/plugins/communication-resources/src/components/poll/CreatePoll.svelte b/plugins/communication-resources/src/components/poll/CreatePoll.svelte index 4c72e9fa17..e4710cc0cc 100644 --- a/plugins/communication-resources/src/components/poll/CreatePoll.svelte +++ b/plugins/communication-resources/src/components/poll/CreatePoll.svelte @@ -43,7 +43,7 @@ $: updateOptions(params.options) - function getErrorMessage (params: PollConfig): IntlString | undefined { + function getErrorMessage(params: PollConfig): IntlString | undefined { if (params.question.trim() === '') return communication.string.QuestionIsRequired if (params.options.filter((it) => it.label.trim() !== '').length === 0) return communication.string.OptionIsRequired if (params.quiz === true && params.quizAnswer == null) return communication.string.AnswerIsRequired @@ -52,7 +52,7 @@ return undefined } - function canSave (params: PollConfig): boolean { + function canSave(params: PollConfig): boolean { if (params.question.trim() === '') return false if (params.options.filter((it) => it.label.trim() !== '').length === 0) return false if (params.quiz === true && params.quizAnswer == null) return false @@ -61,7 +61,7 @@ return true } - function okAction (): void { + function okAction(): void { const saveConfig = { ...params, options: params.options.filter((it) => it.label.trim() !== '') @@ -74,11 +74,11 @@ dispatch('close', saveConfig) } - function handleCancel (): void { + function handleCancel(): void { dispatch('close') } - function updateOptions (options: PollOption[]): void { + function updateOptions(options: PollOption[]): void { const lastOption = options[options.length - 1] const prevOption = options[options.length - 2] @@ -100,7 +100,7 @@ } } - function handleKeydown (e: KeyboardEvent, option?: PollOption): void { + function handleKeydown(e: KeyboardEvent, option?: PollOption): void { if (e.key === 'Enter' || e.key === 'ArrowDown') { e.preventDefault() e.stopPropagation() @@ -140,7 +140,7 @@ } } - function removeOption (option: PollOption): void { + function removeOption(option: PollOption): void { if (params.options.length === 1) return const index = params.options.indexOf(option) if (index === -1) return @@ -149,7 +149,7 @@ options: params.options.filter((it) => it !== option) } } - function showEmojiPicker (evt: MouseEvent, optionId: string): void { + function showEmojiPicker(evt: MouseEvent, optionId: string): void { showPopup( emoji.component.EmojiPopup, {}, diff --git a/plugins/communication-resources/src/components/poll/PollOptionPresenter.svelte b/plugins/communication-resources/src/components/poll/PollOptionPresenter.svelte index 560fb6ce7a..2426c4134e 100644 --- a/plugins/communication-resources/src/components/poll/PollOptionPresenter.svelte +++ b/plugins/communication-resources/src/components/poll/PollOptionPresenter.svelte @@ -32,7 +32,7 @@ const me = getCurrentAccount() const dispatch = createEventDispatcher() - function getOptionPercentage (optionId: string, result?: Poll): number { + function getOptionPercentage(optionId: string, result?: Poll): number { if (result == null) return 0 const votes: number = (result as any)[optionId] ?? 0 if (votes === 0) return 0 @@ -40,7 +40,7 @@ return Math.round((votes / total) * 100) } - function isOptionVotedByMe (optionId: string, result?: WithLookup, privateAnswers: PollAnswer[] = []): boolean { + function isOptionVotedByMe(optionId: string, result?: WithLookup, privateAnswers: PollAnswer[] = []): boolean { if (result == null) return false if (anonymous) { return privateAnswers.some((it: PollAnswer) => it.options.includes(optionId)) ?? false @@ -54,7 +54,7 @@ $: isVotedByMe = isOptionVotedByMe(option.id, result, privateAnswers) $: voteKind = getVoteKind(option.id, result) - function getVoteKind (optionId: string, result: Poll | undefined): 'todo' | 'positive' | 'negative' { + function getVoteKind(optionId: string, result: Poll | undefined): 'todo' | 'positive' | 'negative' { if (result == null) return 'todo' if (answer == null) return 'todo' if (optionId === answer) return 'positive' diff --git a/plugins/communication-resources/src/components/poll/PollPresenter.svelte b/plugins/communication-resources/src/components/poll/PollPresenter.svelte index a6120c24ab..63680d3795 100644 --- a/plugins/communication-resources/src/components/poll/PollPresenter.svelte +++ b/plugins/communication-resources/src/components/poll/PollPresenter.svelte @@ -72,13 +72,13 @@ $: voted = isVotedByMe(result, params.anonymous, privateAnswers) - function showResults (): void { + function showResults(): void { showPopup(PollResults, { params, result }, 'center') } let selectedOptions: PollOption[] = [] - function toggleOption (option: PollOption): void { + function toggleOption(option: PollOption): void { const index = selectedOptions.findIndex((it) => it.id === option.id) if (index === -1) { selectedOptions = [...selectedOptions, option] @@ -91,7 +91,7 @@ void vote() } - async function vote (): Promise { + async function vote(): Promise { if (result == null || selectedOptions.length === 0 || voted) return const client = getClient() @@ -141,17 +141,17 @@ $: started = params.startAt == null || !isFuture($ticker, params.startAt) $: ended = params.endAt != null && !isFuture($ticker, params.endAt) - function isFuture (now: number, time: number): boolean { + function isFuture(now: number, time: number): boolean { return time > now } - function isTomorrow (time: Timestamp): boolean { + function isTomorrow(time: Timestamp): boolean { const todayDay = getDay(Date.now()) const targetDay = getDay(time) return targetDay === todayDay + DAY } - function getFormattedDate (date: number, type: 'start' | 'end'): { label: IntlString, date: string } { + function getFormattedDate(date: number, type: 'start' | 'end'): { label: IntlString, date: string } { if (!isOtherDay(date, Date.now())) { return { label: type === 'start' ? communication.string.StartsAt : communication.string.EndsAt, @@ -183,7 +183,7 @@ } } - async function retractVote (): Promise { + async function retractVote(): Promise { if (result == null || !voted || params.quiz === true) return const client = getClient() const me = getCurrentAccount() @@ -229,12 +229,12 @@ voted = false } - function openPoll (): void { + function openPoll(): void { if (result == null) return void openDoc(getClient().getHierarchy(), result) } - function onContextMenu (event: MouseEvent): void { + function onContextMenu(event: MouseEvent): void { event.preventDefault() showPopup( diff --git a/plugins/communication-resources/src/components/poll/PollResults.svelte b/plugins/communication-resources/src/components/poll/PollResults.svelte index 9c55c27bec..37dbcc7536 100644 --- a/plugins/communication-resources/src/components/poll/PollResults.svelte +++ b/plugins/communication-resources/src/components/poll/PollResults.svelte @@ -26,14 +26,14 @@ $: total = result.totalVotes ?? 0 - function getVotedPersons (optionId: string, result: Poll, employeeByAccount: Map): Employee[] { + function getVotedPersons(optionId: string, result: Poll, employeeByAccount: Map): Employee[] { return (result.userVotes ?? []) .filter((it) => it.options.some((it) => it.id === optionId)) .map((it) => employeeByAccount.get(it.account)) .filter(notEmpty) } - function getOptionResult (optionId: string, result: Poll): number { + function getOptionResult(optionId: string, result: Poll): number { return (result as any)[optionId] ?? 0 } diff --git a/plugins/communication-resources/src/components/preview/ExtendedMessagePreview.svelte b/plugins/communication-resources/src/components/preview/ExtendedMessagePreview.svelte index e5908aca71..a8d0c58b3f 100644 --- a/plugins/communication-resources/src/components/preview/ExtendedMessagePreview.svelte +++ b/plugins/communication-resources/src/components/preview/ExtendedMessagePreview.svelte @@ -41,7 +41,7 @@ let person: WithLookup | undefined = undefined - function getTooltipLabel (message: Message | undefined): IntlString { + function getTooltipLabel(message: Message | undefined): IntlString { if (message == null) return getEmbeddedLabel('') const text = markupToText(jsonToMarkup(markdownToMarkup(message.content))) if (text.length > tooltipLimit) { diff --git a/plugins/communication-resources/src/components/preview/PreviewTemplate.svelte b/plugins/communication-resources/src/components/preview/PreviewTemplate.svelte index 2806526511..5f82f9001a 100644 --- a/plugins/communication-resources/src/components/preview/PreviewTemplate.svelte +++ b/plugins/communication-resources/src/components/preview/PreviewTemplate.svelte @@ -40,7 +40,7 @@ $: showPersonName = clientWidth > 300 && !hidePersonName $: updatePerson(socialId) - async function updatePerson (socialId: SocialID): Promise { + async function updatePerson(socialId: SocialID): Promise { person = $employeeByPersonIdStore.get(socialId) ?? (await getPersonByPersonId(socialId)) ?? undefined } diff --git a/plugins/communication-resources/src/components/thread/ThreadCollaborators.svelte b/plugins/communication-resources/src/components/thread/ThreadCollaborators.svelte index fc97da7cb1..cccfcac6b8 100644 --- a/plugins/communication-resources/src/components/thread/ThreadCollaborators.svelte +++ b/plugins/communication-resources/src/components/thread/ThreadCollaborators.svelte @@ -24,7 +24,7 @@ $: updatePersons(persons, $employeeByAccountStore) - function updatePersons (persons: Record, employeeByAccount: Map): void { + function updatePersons(persons: Record, employeeByAccount: Map): void { const newPersons: Person[] = [] for (const [personUuid, count] of Object.entries(persons)) { if (count < 1) continue diff --git a/plugins/communication-resources/src/components/thread/ThreadLastReply.svelte b/plugins/communication-resources/src/components/thread/ThreadLastReply.svelte index 41215bfe10..816d48f84b 100644 --- a/plugins/communication-resources/src/components/thread/ThreadLastReply.svelte +++ b/plugins/communication-resources/src/components/thread/ThreadLastReply.svelte @@ -19,7 +19,7 @@ export let lastReply: Date | string | number | undefined = undefined - function getTime (date: Date | string | number | undefined): Timestamp | undefined { + function getTime(date: Date | string | number | undefined): Timestamp | undefined { if (date === undefined) return undefined if (date instanceof Date) return date.getTime() if (typeof date === 'number') return date diff --git a/plugins/communication-resources/src/utils.ts b/plugins/communication-resources/src/utils.ts index 5757d57eba..602eab0691 100644 --- a/plugins/communication-resources/src/utils.ts +++ b/plugins/communication-resources/src/utils.ts @@ -34,7 +34,6 @@ import { type TextInputAction } from './types' import { get } from 'svelte/store' import view from '@hcengineering/view' import { type Direct } from '@hcengineering/communication' -import { type Employee } from '@hcengineering/contact' export async function unsubscribe (card: Card): Promise { const client = getCommunicationClient() @@ -178,7 +177,7 @@ export async function canCreateDirect (space: Ref, data: Partial)) return false + if (!createMembers.has(item)) return false } return true }) diff --git a/plugins/communication/src/index.ts b/plugins/communication/src/index.ts index 9854d12894..7ba8e39f25 100644 --- a/plugins/communication/src/index.ts +++ b/plugins/communication/src/index.ts @@ -17,7 +17,7 @@ import { Class, Ref } from '@hcengineering/core' import { GuestCommunicationSettings, Applet, CustomActivityPresenter, MessageAction, PollAnswer } from './types' -export * from './types' +export type * from './types' /** * @public diff --git a/plugins/communication/src/types.ts b/plugins/communication/src/types.ts index 8e6405a2f5..1b488bda43 100644 --- a/plugins/communication/src/types.ts +++ b/plugins/communication/src/types.ts @@ -18,8 +18,8 @@ import { Card, MasterTag } from '@hcengineering/card' import { AnyComponent } from '@hcengineering/ui' import { PersonSpace } from '@hcengineering/contact' -export * from './poll' -export * from './direct' +export type * from './poll' +export type * from './direct' export type MessageActionFunction = ( message: Message, diff --git a/plugins/contact-resources/src/components/AccountArrayEditor.svelte b/plugins/contact-resources/src/components/AccountArrayEditor.svelte index b404809450..327d739afe 100644 --- a/plugins/contact-resources/src/components/AccountArrayEditor.svelte +++ b/plugins/contact-resources/src/components/AccountArrayEditor.svelte @@ -64,7 +64,7 @@ .filter(notEmpty) ) - function onUpdate (evt: CustomEvent[]>): void { + function onUpdate(evt: CustomEvent[]>): void { if (timer !== null) { clearTimeout(timer) } @@ -121,7 +121,7 @@ const hierarchy = client.getHierarchy() const me = getCurrentEmployee() - function sort (a: Contact, b: Contact): number { + function sort(a: Contact, b: Contact): number { if (me === a._id) { return -1 } diff --git a/plugins/contact-resources/src/components/ChannelsEditor.svelte b/plugins/contact-resources/src/components/ChannelsEditor.svelte index 892b3c5892..6f26ce759f 100644 --- a/plugins/contact-resources/src/components/ChannelsEditor.svelte +++ b/plugins/contact-resources/src/components/ChannelsEditor.svelte @@ -75,14 +75,14 @@ const client = getClient() - async function remove (value: Channel | AttachedData): Promise { + async function remove(value: Channel | AttachedData): Promise { if (!effectiveEditable) return if ('_id' in value) { await client.remove(value) } } - async function saveHandler (value: Channel | AttachedData): Promise { + async function saveHandler(value: Channel | AttachedData): Promise { if (!effectiveEditable) return if ('_id' in value) { await client.update(value, { @@ -96,7 +96,7 @@ } } - function _open (ev: any) { + function _open(ev: any) { if (ev.detail.presenter !== undefined) { if (allowOpen) { closeTooltip() diff --git a/plugins/contact-resources/src/components/ChannelsPresenter.svelte b/plugins/contact-resources/src/components/ChannelsPresenter.svelte index beaf1e4cfc..bee8928dfd 100644 --- a/plugins/contact-resources/src/components/ChannelsPresenter.svelte +++ b/plugins/contact-resources/src/components/ChannelsPresenter.svelte @@ -57,7 +57,7 @@ ? editable === true && attachedPerson !== undefined && canEditPersonContactDetails(attachedPerson) : editable - async function _open (ev: CustomEvent): Promise { + async function _open(ev: CustomEvent): Promise { if (ev.detail.presenter !== undefined && Array.isArray(value)) { showPopup(ev.detail.presenter, { channel: ev.detail.channel }, 'float') } diff --git a/plugins/contact-resources/src/components/ContactList.svelte b/plugins/contact-resources/src/components/ContactList.svelte index 73191b952f..ed99cf89e0 100644 --- a/plugins/contact-resources/src/components/ContactList.svelte +++ b/plugins/contact-resources/src/components/ContactList.svelte @@ -48,7 +48,7 @@ const dispatch = createEventDispatcher() - async function addPerson (evt: Event): Promise { + async function addPerson(evt: Event): Promise { showPopup( UsersPopup, { diff --git a/plugins/contact-resources/src/components/EditPerson.svelte b/plugins/contact-resources/src/components/EditPerson.svelte index 84fada6b61..a76ddc9583 100644 --- a/plugins/contact-resources/src/components/EditPerson.svelte +++ b/plugins/contact-resources/src/components/EditPerson.svelte @@ -45,20 +45,20 @@ $: setName(object) - function setName (object: Person): void { + function setName(object: Person): void { firstName = getFirstName(object.name) lastName = getLastName(object.name) } const dispatch = createEventDispatcher() - async function firstNameChange (): Promise { + async function firstNameChange(): Promise { await client.update(object, { name: combineName(firstName, getLastName(object.name)) }) } - async function lastNameChange (): Promise { + async function lastNameChange(): Promise { await client.update(object, { name: combineName(getFirstName(object.name), lastName) }) @@ -77,7 +77,7 @@ const sendOpen = () => dispatch('open', { ignoreKeys: ['comments', 'name', 'channels', 'city'] }) onMount(sendOpen) - async function onAvatarDone (): Promise { + async function onAvatarDone(): Promise { if (object.avatar != null) { await avatarEditor.removeAvatar(object.avatar) } diff --git a/plugins/contact-resources/src/components/SpaceMembers.svelte b/plugins/contact-resources/src/components/SpaceMembers.svelte index 746aae678b..876096bcb9 100644 --- a/plugins/contact-resources/src/components/SpaceMembers.svelte +++ b/plugins/contact-resources/src/components/SpaceMembers.svelte @@ -50,7 +50,7 @@ $: isSearch = search.trim().length let members: Set> = new Set>() - async function getUsers (accounts: AccountUuid[], search: string): Promise { + async function getUsers(accounts: AccountUuid[], search: string): Promise { const employeeRefs = accounts.map((acc) => $employeeRefByAccountUuidStore.get(acc)).filter(notEmpty) const query: DocumentQuery = isSearch > 0 ? { name: { $like: '%' + search + '%' } } : { _id: { $in: employeeRefs } } @@ -62,7 +62,7 @@ return employees } - async function add (person: Ref): Promise { + async function add(person: Ref): Promise { const pid = initialMembers[person] ?? $employeeByIdStore.get(person)?.personUuid if (pid === undefined) return @@ -73,14 +73,14 @@ }) } - async function removeMember (person: Ref): Promise { + async function removeMember(person: Ref): Promise { const pid = initialMembers[person] ?? $employeeByIdStore.get(person)?.personUuid if (pid === undefined) return await client.update(space, { $pull: { members: pid } }) } - function openAddMembersPopup (): void { + function openAddMembersPopup(): void { showPopup(AddMembersPopup, { value: space }, undefined, async (accounts: AccountUuid[]) => { if (accounts != null) { for (const account of accounts) { diff --git a/plugins/contact-resources/src/components/TranslationSettings.svelte b/plugins/contact-resources/src/components/TranslationSettings.svelte index e66f0e19f3..8bff0033fc 100644 --- a/plugins/contact-resources/src/components/TranslationSettings.svelte +++ b/plugins/contact-resources/src/components/TranslationSettings.svelte @@ -32,7 +32,7 @@ $: settings = $translationStore $: enabled = settings?.enabled ?? false - async function toggle (data: Partial>): Promise { + async function toggle(data: Partial>): Promise { if (settings != null) { await client.update(settings, data) } else { @@ -45,7 +45,7 @@ } } - async function changeEnable (): Promise { + async function changeEnable(): Promise { enabled = !enabled await toggle({ enabled }) } diff --git a/plugins/contact-resources/src/components/UserBoxList.svelte b/plugins/contact-resources/src/components/UserBoxList.svelte index 1d82450ac1..4fe6212e9a 100644 --- a/plugins/contact-resources/src/components/UserBoxList.svelte +++ b/plugins/contact-resources/src/components/UserBoxList.svelte @@ -43,7 +43,7 @@ export let sort: ((a: Person, b: Person) => number) | undefined = undefined - function filter (items: Ref[] | undefined): Ref[] { + function filter(items: Ref[] | undefined): Ref[] { return (items ?? []).filter((it, idx, arr) => arr.indexOf(it) === idx) } @@ -55,7 +55,7 @@ const dispatch = createEventDispatcher() - async function addPerson (evt: Event): Promise { + async function addPerson(evt: Event): Promise { const popupProps: any = { _class, label, diff --git a/plugins/contact-resources/src/index.ts b/plugins/contact-resources/src/index.ts index f3fe477a2c..39f53965c9 100644 --- a/plugins/contact-resources/src/index.ts +++ b/plugins/contact-resources/src/index.ts @@ -312,7 +312,7 @@ async function kickEmployee (doc: Person): Promise { if (doc.personUuid != null) { const leaveWorkspace = await getResource(login.function.LeaveWorkspace) - await leaveWorkspace(doc.personUuid as AccountUuid) + await leaveWorkspace(doc.personUuid) } } }) diff --git a/plugins/contact-resources/src/utils.ts b/plugins/contact-resources/src/utils.ts index 5384ab6f31..5946f8c770 100644 --- a/plugins/contact-resources/src/utils.ts +++ b/plugins/contact-resources/src/utils.ts @@ -204,11 +204,11 @@ export async function getRefs ( const filteredRefs = docUpdates !== undefined && inboxNotificationsByContext !== undefined ? refs.filter((channel) => { - const docUpdate = docUpdates.get(channel._id) - return docUpdate != null - ? inboxNotificationsByContext.get(docUpdate._id)?.some(({ isViewed }) => !isViewed) - : (channel.items ?? 0) > 0 - }) + const docUpdate = docUpdates.get(channel._id) + return docUpdate != null + ? inboxNotificationsByContext.get(docUpdate._id)?.some(({ isViewed }) => !isViewed) + : (channel.items ?? 0) > 0 + }) : refs const result = Array.from(new Set(filteredRefs.map((p) => p.attachedTo))) FilterQuery.results.set(filter.index, result) @@ -433,7 +433,7 @@ export function getAnonymousRefs ( return [] } const ref = byAccount.get(readOnlyGuestAccountUuid) - return ref !== undefined ? [ref as unknown as Ref] : [] + return ref !== undefined ? [ref] : [] } /** diff --git a/plugins/contact/src/types.ts b/plugins/contact/src/types.ts index b12e989c30..c5fa89b182 100644 --- a/plugins/contact/src/types.ts +++ b/plugins/contact/src/types.ts @@ -23,7 +23,14 @@ import { Person } from './index' * @public */ export type GravatarPlaceholderType = - '404' | 'mp' | 'identicon' | 'monsterid' | 'wavatar' | 'retro' | 'robohash' | 'blank' + | '404' + | 'mp' + | 'identicon' + | 'monsterid' + | 'wavatar' + | 'retro' + | 'robohash' + | 'blank' /** * @public diff --git a/plugins/contact/src/utils.ts b/plugins/contact/src/utils.ts index eceb5ae392..835dc8ab1c 100644 --- a/plugins/contact/src/utils.ts +++ b/plugins/contact/src/utils.ts @@ -247,7 +247,7 @@ export async function findContacts ( */ export async function findPerson (client: Client, name: string, channels: AttachedData[]): Promise { const result = await findContacts(client, contact.class.Person, name, channels) - return result.contacts as Person[] + return result.contacts } const SEP = ',' diff --git a/plugins/controlled-documents-resources/src/utils.ts b/plugins/controlled-documents-resources/src/utils.ts index 538c54228a..d7cc3609d1 100644 --- a/plugins/controlled-documents-resources/src/utils.ts +++ b/plugins/controlled-documents-resources/src/utils.ts @@ -34,6 +34,7 @@ import documents, { type DocumentValidationState, ProjectDocumentTree, compareDocumentVersions, + emptyBundle, getDocumentName, getFirstRank, transferDocuments diff --git a/plugins/controlled-documents/src/docutils.ts b/plugins/controlled-documents/src/docutils.ts index ecdca27339..1e335e09bb 100644 --- a/plugins/controlled-documents/src/docutils.ts +++ b/plugins/controlled-documents/src/docutils.ts @@ -206,11 +206,11 @@ export async function createControlledDocMetadata ( specTitle: string, metaId?: Ref ): Promise<{ - success: boolean - seqNumber: number - documentMetaId: Ref - projectDocumentId: Ref - }> { + success: boolean + seqNumber: number + documentMetaId: Ref + projectDocumentId: Ref +}> { const projectId = project ?? documents.ids.NoProject const ops = client.apply('create-qms-document') @@ -370,12 +370,12 @@ export async function createDocumentTemplateMetadata ( specTitle: string, metaId?: Ref ): Promise<{ - success: boolean - seqNumber: number - code: string - documentMetaId: Ref - projectDocumentId: Ref - }> { + success: boolean + seqNumber: number + code: string + documentMetaId: Ref + projectDocumentId: Ref +}> { const projectId = project ?? documents.ids.NoProject const incResult = await client.updateDoc( @@ -476,10 +476,10 @@ export async function createNewFolder ( parent: Ref | undefined, title: string ): Promise<{ - success: boolean - documentMetaId: Ref - projectDocumentId: Ref - }> { + success: boolean + documentMetaId: Ref + projectDocumentId: Ref +}> { const projectId = project ?? documents.ids.NoProject const ops = client.apply() diff --git a/plugins/controlled-documents/src/utils.ts b/plugins/controlled-documents/src/utils.ts index 35b3b845b1..8a8dd3a4d7 100644 --- a/plugins/controlled-documents/src/utils.ts +++ b/plugins/controlled-documents/src/utils.ts @@ -56,7 +56,7 @@ import { * @public */ export const genRanks = (count: number): Generator => - (function * () { + (function* () { const sys = new LexoNumeralSystem36() const base = 36 const max = base ** 6 diff --git a/plugins/converter-resources/src/formatter/utils.ts b/plugins/converter-resources/src/formatter/utils.ts index 56f1f0283f..d62f3ffdac 100644 --- a/plugins/converter-resources/src/formatter/utils.ts +++ b/plugins/converter-resources/src/formatter/utils.ts @@ -141,7 +141,7 @@ export async function formatSingleValue ( const isRef = attrType?._class === core.class.RefTo if (isRef) { if (attrType.to !== undefined && hierarchy.isDerived(attrType.to, contact.mixin.Employee)) { - const name = await loadPersonNameByRef(value as any, hierarchy, userCache as any) + const name = await loadPersonNameByRef(value, hierarchy, userCache) return name } } diff --git a/plugins/converter-resources/src/markdown/tableBuilder.ts b/plugins/converter-resources/src/markdown/tableBuilder.ts index 30297054cf..3820630c01 100644 --- a/plugins/converter-resources/src/markdown/tableBuilder.ts +++ b/plugins/converter-resources/src/markdown/tableBuilder.ts @@ -74,7 +74,7 @@ async function preloadRefLookups ( const refDocs = await client.findAll(targetClass, { _id: { $in: ids as any } }) const byId = new Map() for (const d of refDocs) { - byId.set(d._id as string, d) + byId.set(d._id, d) } for (const doc of docs) { @@ -135,7 +135,7 @@ function collectRelationshipDocsForRefPreload ( ): Doc[] { const byId = new Map() const add = (d: Doc | undefined): void => { - if (d !== undefined) byId.set(d._id as string, d) + if (d !== undefined) byId.set(d._id, d) } for (const o of props.objects) add(o) diff --git a/plugins/converter-resources/src/model/headerGenerator.ts b/plugins/converter-resources/src/model/headerGenerator.ts index 78eb02c614..23dd01e557 100644 --- a/plugins/converter-resources/src/model/headerGenerator.ts +++ b/plugins/converter-resources/src/model/headerGenerator.ts @@ -14,7 +14,7 @@ // import type { Class, Doc, Hierarchy, Ref } from '@hcengineering/core' -import { translate, type IntlString } from '@hcengineering/platform' +import { translate } from '@hcengineering/platform' import type { AttributeModel } from '@hcengineering/view' import { isIntlString } from '../formatter/utils' @@ -61,7 +61,7 @@ export async function generateHeaders ( if (attr.label.startsWith('custom')) { label = await resolveCustomAttributeLabel(attr.label, firstDocClass, hierarchy, language) } else if (isIntlString(attr.label)) { - label = await translate(attr.label as unknown as IntlString, {}, language) + label = await translate(attr.label, {}, language) } else { label = attr.label } diff --git a/plugins/converter/src/plugin.ts b/plugins/converter/src/plugin.ts index 9c2a4d286e..f224f8f5cf 100644 --- a/plugins/converter/src/plugin.ts +++ b/plugins/converter/src/plugin.ts @@ -35,10 +35,10 @@ export const converterPlugin = plugin(converterId, { CopyAsMarkdownTable: '' as Resource, CopyRelationshipAsMarkdown: '' as Resource, BuildMarkdownTableFromMetadata: '' as Resource< - (docs: Doc[], metadata: BuildMarkdownTableMetadata, client: Client) => Promise + (docs: Doc[], metadata: BuildMarkdownTableMetadata, client: Client) => Promise >, BuildMarkdownTableFromDocs: '' as Resource< - (docs: Doc[], props: CopyAsMarkdownTableProps, client: Client) => Promise + (docs: Doc[], props: CopyAsMarkdownTableProps, client: Client) => Promise > }, extensions: { diff --git a/plugins/devmodel-resources/src/index.ts b/plugins/devmodel-resources/src/index.ts index 90ff300fb8..4c1c5b33a6 100644 --- a/plugins/devmodel-resources/src/index.ts +++ b/plugins/devmodel-resources/src/index.ts @@ -86,7 +86,7 @@ export class PresentationClientHook implements ClientHook { return candidate } - async findOne( + async findOne ( client: Client, _class: Ref>, query: DocumentQuery, @@ -113,7 +113,7 @@ export class PresentationClientHook implements ClientHook { return result } - async findAll( + async findAll ( client: Client, _class: Ref>, query: DocumentQuery, diff --git a/plugins/emoji/src/utils.ts b/plugins/emoji/src/utils.ts index 24fd921d96..4b297c16d6 100644 --- a/plugins/emoji/src/utils.ts +++ b/plugins/emoji/src/utils.ts @@ -40,9 +40,9 @@ export const emoticonGlobalRegex = new RegExp(EMOTICON_REGEX.source, EMOTICON_RE export const shortcodeRegex = new RegExp(`(?:^|\\s)(${SHORTCODE_REGEX.source})$`) export const shortcodeGlobalRegex = new RegExp(SHORTCODE_REGEX.source, SHORTCODE_REGEX.flags + 'g') -async function fetchEmojis (locale: Locale, options: FetchEmojisOptions & { compact: true }): Promise +async function fetchEmojis(locale: Locale, options: FetchEmojisOptions & { compact: true }): Promise -async function fetchEmojis (locale: Locale, options?: FetchEmojisOptions & { compact?: false }): Promise +async function fetchEmojis(locale: Locale, options?: FetchEmojisOptions & { compact?: false }): Promise async function fetchEmojis (locale: Locale, options: FetchEmojisExpandedOptions = {}): Promise { const { compact = false, shortcodes: presets = [] } = options diff --git a/plugins/export-resources/src/components/ExportSettings.svelte b/plugins/export-resources/src/components/ExportSettings.svelte index 2611b36a9f..c1679dd1a3 100644 --- a/plugins/export-resources/src/components/ExportSettings.svelte +++ b/plugins/export-resources/src/components/ExportSettings.svelte @@ -43,7 +43,7 @@ let selectedDetailLevel: string = 'everything' let isExporting = false - async function exportData (): Promise { + async function exportData(): Promise { if (isExporting) return try { diff --git a/plugins/login-resources/src/components/Form.svelte b/plugins/login-resources/src/components/Form.svelte index 396d3d08ec..5b8f7f42fb 100644 --- a/plugins/login-resources/src/components/Form.svelte +++ b/plugins/login-resources/src/components/Form.svelte @@ -52,7 +52,7 @@ export let actionButtonDataId: string | undefined = undefined export let secondaryButtonDataId: string | undefined = undefined - const validate = makeSequential(async function validateAsync (language: string): Promise { + const validate = makeSequential(async function validateAsync(language: string): Promise { if (ignoreInitialValidation || isLoading) return true for (const field of fields) { @@ -93,7 +93,7 @@ return true }) - export function invalidate (): void { + export function invalidate(): void { void validate($themeStore.language) } @@ -108,7 +108,7 @@ let inAction = false - function performAction (action: Action): void { + function performAction(action: Action): void { if (inAction) return for (const field of fields) { @@ -121,7 +121,7 @@ } onMount(() => (ignoreInitialValidation = false)) - function trim (field: string): void { + function trim(field: string): void { object[field] = (object[field] as string).trim() } diff --git a/plugins/login-resources/src/components/LoginApp.svelte b/plugins/login-resources/src/components/LoginApp.svelte index 2af6f572bd..f063df0184 100644 --- a/plugins/login-resources/src/components/LoginApp.svelte +++ b/plugins/login-resources/src/components/LoginApp.svelte @@ -65,7 +65,7 @@ onDestroy(location.subscribe(updatePageLoc)) - function updatePageLoc (loc: Location): void { + function updatePageLoc(loc: Location): void { const token = getMetadata(presentation.metadata.Token) page = (loc.path[1] as Pages) ?? (token != null ? 'selectWorkspace' : 'login') if (page === 'join' && loc.query?.autoJoin !== undefined) { @@ -93,7 +93,7 @@ tfaToken = loc.query?.token ?? undefined } - async function chooseToken (): Promise { + async function chooseToken(): Promise { if (page === 'auth') { // token handled by auth page return diff --git a/plugins/login-resources/src/components/LoginAppBase.svelte b/plugins/login-resources/src/components/LoginAppBase.svelte index 30f031e72c..3f0691f707 100644 --- a/plugins/login-resources/src/components/LoginAppBase.svelte +++ b/plugins/login-resources/src/components/LoginAppBase.svelte @@ -46,7 +46,7 @@ $: activeTheme = $loginTheme // themeStyle resolves to override theme vars when override is active, otherwise to store theme vars - function onDevThemeChange (e: Event): void { + function onDevThemeChange(e: Event): void { const v = (e.target as HTMLSelectElement).value as LoginThemeName // set local override and apply accent class immediately (no store change) setLoginTheme(v) diff --git a/plugins/login-resources/src/components/LoginForm.svelte b/plugins/login-resources/src/components/LoginForm.svelte index 02b752ec4b..c3d9009045 100644 --- a/plugins/login-resources/src/components/LoginForm.svelte +++ b/plugins/login-resources/src/components/LoginForm.svelte @@ -52,7 +52,7 @@ }) }) - function changeMethod (event: CustomEvent): void { + function changeMethod(event: CustomEvent): void { method = event.detail } @@ -70,7 +70,7 @@ } } - async function guestLogin (): Promise { + async function guestLogin(): Promise { let status = new Status(Severity.INFO, login.status.ConnectingToServer, {}) const [loginStatus, result] = await doLoginAsGuest() status = loginStatus diff --git a/plugins/login-resources/src/components/SelectWorkspace.svelte b/plugins/login-resources/src/components/SelectWorkspace.svelte index 357e7a3015..590e4a9312 100644 --- a/plugins/login-resources/src/components/SelectWorkspace.svelte +++ b/plugins/login-resources/src/components/SelectWorkspace.svelte @@ -61,14 +61,14 @@ let flagToUpdateWorkspaces = false - async function loadAccount (): Promise { + async function loadAccount(): Promise { accountPromise = getAccount() account = await accountPromise isReadOnlyGuest = await isReadOnlyGuestAccount(account) } // eslint-disable-next-line @typescript-eslint/no-unused-vars - const updateWorkspaces = reduceCalls(async function updateWorkspaces (_time?: number): Promise { + const updateWorkspaces = reduceCalls(async function updateWorkspaces(_time?: number): Promise { try { workspaces = await getWorkspaces() } catch (e) { @@ -84,7 +84,7 @@ void loadAccount() }) - async function select (workspaceUrl: string): Promise { + async function select(workspaceUrl: string): Promise { status = new Status(Severity.INFO, login.status.ConnectingToServer, {}) const [loginStatus, result] = await selectWorkspace(workspaceUrl) @@ -117,7 +117,7 @@ navigateToWorkspace(workspaceUrl, result, navigateUrl) } - async function _getWorkspaces (): Promise { + async function _getWorkspaces(): Promise { try { const res = await getWorkspaces() diff --git a/plugins/login-resources/src/components/SignupForm.svelte b/plugins/login-resources/src/components/SignupForm.svelte index d0eaba04dd..9a897e63b5 100644 --- a/plugins/login-resources/src/components/SignupForm.svelte +++ b/plugins/login-resources/src/components/SignupForm.svelte @@ -126,7 +126,7 @@ } } - function handleStep (event: CustomEvent): void { + function handleStep(event: CustomEvent): void { step = event.detail } diff --git a/plugins/love-resources/src/components/Settings.svelte b/plugins/love-resources/src/components/Settings.svelte index 17d70f25e2..805f04df57 100644 --- a/plugins/love-resources/src/components/Settings.svelte +++ b/plugins/love-resources/src/components/Settings.svelte @@ -9,7 +9,7 @@ const client = getClient() - async function saveMicPreference (myPreferences: DevicesPreference | undefined, value: boolean): Promise { + async function saveMicPreference(myPreferences: DevicesPreference | undefined, value: boolean): Promise { if (myPreferences !== undefined) { await client.update(myPreferences, { micEnabled: !value }) } else { @@ -24,7 +24,7 @@ } } - async function saveCamPreference (myPreferences: DevicesPreference | undefined, value: boolean): Promise { + async function saveCamPreference(myPreferences: DevicesPreference | undefined, value: boolean): Promise { if (myPreferences !== undefined) { await client.update(myPreferences, { camEnabled: !value }) } else { @@ -39,7 +39,7 @@ } } - async function saveNoiseCancellationPreference ( + async function saveNoiseCancellationPreference( myPreferences: DevicesPreference | undefined, value: boolean ): Promise { @@ -58,7 +58,7 @@ await liveKitClient.applyNoiseCancellation(value) } - async function saveSpeakingWhileMutedPreference ( + async function saveSpeakingWhileMutedPreference( myPreferences: DevicesPreference | undefined, value: boolean ): Promise { diff --git a/plugins/notification-resources/src/components/CollaboratorEditor.svelte b/plugins/notification-resources/src/components/CollaboratorEditor.svelte index c12341e401..2a0e1c62f1 100644 --- a/plugins/notification-resources/src/components/CollaboratorEditor.svelte +++ b/plugins/notification-resources/src/components/CollaboratorEditor.svelte @@ -37,7 +37,7 @@ $: accounts = collaborators.map((c) => c.collaborator) - async function change (res: AccountUuid[]): Promise { + async function change(res: AccountUuid[]): Promise { const toAdd: AccountUuid[] = res.filter((a) => !accounts.includes(a)) const toRemove: Collaborator[] = collaborators.filter((a) => !res.includes(a.collaborator)) for (const account of toAdd) { diff --git a/plugins/notification-resources/src/utils.ts b/plugins/notification-resources/src/utils.ts index 3246ac25e7..3949a667ce 100644 --- a/plugins/notification-resources/src/utils.ts +++ b/plugins/notification-resources/src/utils.ts @@ -659,12 +659,12 @@ export async function selectInboxContext ( object?._id === objectId ? (object as ThreadMessage) : await client.findOne( - chunter.class.ThreadMessage, - { - _id: objectId as Ref - }, - { projection: { _id: 1, attachedTo: 1 } } - ) + chunter.class.ThreadMessage, + { + _id: objectId as Ref + }, + { projection: { _id: 1, attachedTo: 1 } } + ) void navigateToInboxDoc( linkProviders, diff --git a/plugins/notification/src/index.ts b/plugins/notification/src/index.ts index 4a81d64179..9fc4c95a0a 100644 --- a/plugins/notification/src/index.ts +++ b/plugins/notification/src/index.ts @@ -44,7 +44,7 @@ import { PersonSpace } from '@hcengineering/contact' import { Readable, Writable } from './types' -export * from './types' +export type * from './types' export const DOMAIN_NOTIFICATION = 'notification' as Domain export const DOMAIN_DOC_NOTIFY = 'notification-dnc' as Domain @@ -476,7 +476,7 @@ const notification = plugin(notificationId, { CheckPushPermission: '' as Resource<(value: boolean) => Promise>, GetInboxNotificationsClient: '' as Resource, HasInboxNotifications: '' as Resource< - (notificationsByContext: Map, InboxNotification[]>) => Promise + (notificationsByContext: Map, InboxNotification[]>) => Promise >, IsNotificationAllowed: '' as Resource<(type: NotificationType, providerId: Ref) => boolean> }, diff --git a/plugins/print-resources/src/components/DOCXViewer.svelte b/plugins/print-resources/src/components/DOCXViewer.svelte index 0069571c32..c8f217a93b 100644 --- a/plugins/print-resources/src/components/DOCXViewer.svelte +++ b/plugins/print-resources/src/components/DOCXViewer.svelte @@ -24,7 +24,7 @@ const token = getMetadata(presentation.metadata.Token) ?? '' - async function loadPreview (file: Ref | undefined): Promise { + async function loadPreview(file: Ref | undefined): Promise { request?.abort() const controller = new AbortController() request = controller diff --git a/plugins/process/src/index.ts b/plugins/process/src/index.ts index 9568ea8602..74fc7dc35e 100644 --- a/plugins/process/src/index.ts +++ b/plugins/process/src/index.ts @@ -158,7 +158,7 @@ export interface ApproveRequest extends ProcessToDo { export type MethodParams = { [P in keyof T]?: ObjQueryType | string } & DocumentUpdate & -Record + Record export interface State extends Doc { process: Ref @@ -237,7 +237,7 @@ export interface UpdateCriteriaComponent extends Doc { export * from './dslContext' export * from './errors' -export * from './types' +export type * from './types' export * from './utils' export default plugin(processId, { diff --git a/plugins/products-resources/src/components/product-version/CreateProductVersion.svelte b/plugins/products-resources/src/components/product-version/CreateProductVersion.svelte index dd05046f52..8ca4edd84e 100644 --- a/plugins/products-resources/src/components/product-version/CreateProductVersion.svelte +++ b/plugins/products-resources/src/components/product-version/CreateProductVersion.svelte @@ -70,7 +70,7 @@ $: updateSeverity(parent, severity) - function updateSeverity (parent: ProductVersion | null | undefined, severity: Severity): void { + function updateSeverity(parent: ProductVersion | null | undefined, severity: Severity): void { if (parent != null) { object.major = severity === 'major' ? parent.major + 1 : parent.major object.minor = severity === 'minor' ? parent.minor + 1 : 0 @@ -82,15 +82,15 @@ } } - function formatProductVersion (object: ProductVersionDraft): string { + function formatProductVersion(object: ProductVersionDraft): string { return `${object.major}.${object.minor}.${object.patch}` } - function formatProductVersionName (object: ProductVersionDraft): string { + function formatProductVersionName(object: ProductVersionDraft): string { return `${formatProductVersion(object)}` + (object.codename != null ? ` ${object.codename}` : '') } - async function handleOkAction (): Promise { + async function handleOkAction(): Promise { if (space === undefined) { return } @@ -120,7 +120,7 @@ dispatch('close', id) } - async function handleClose (): Promise { + async function handleClose(): Promise { const noChanges = deepEqual(object, createDefaultObject()) if (noChanges) { dispatch('close') @@ -141,7 +141,7 @@ } } - function createDefaultObject (): ProductVersionDraft { + function createDefaultObject(): ProductVersionDraft { return { readonly: false, major: 1, diff --git a/plugins/products-resources/src/components/product-version/EditProductVersion.svelte b/plugins/products-resources/src/components/product-version/EditProductVersion.svelte index ad77c4fed3..4ca41bc11c 100644 --- a/plugins/products-resources/src/components/product-version/EditProductVersion.svelte +++ b/plugins/products-resources/src/components/product-version/EditProductVersion.svelte @@ -44,7 +44,7 @@ let lastId: Ref = _id $: read(_id) - function read (_id: Ref): void { + function read(_id: Ref): void { if (lastId !== _id) { const prev = lastId lastId = _id diff --git a/plugins/questions/src/doc-types/base.ts b/plugins/questions/src/doc-types/base.ts index 7ea62ca20e..c2a2313d3d 100644 --- a/plugins/questions/src/doc-types/base.ts +++ b/plugins/questions/src/doc-types/base.ts @@ -38,10 +38,8 @@ export interface Question> extends Attache export type QuestionDataOf> = Q extends Question ? R : never /** @public */ -export interface Assessment< - QuestionData extends NonNullable, - AssessmentData extends NonNullable -> extends Question { +export interface Assessment, AssessmentData extends NonNullable> + extends Question { assessmentData: AssessmentData } diff --git a/plugins/setting-resources/src/components/ApiDocsSection.svelte b/plugins/setting-resources/src/components/ApiDocsSection.svelte index 09b958c9d3..757d7d1911 100644 --- a/plugins/setting-resources/src/components/ApiDocsSection.svelte +++ b/plugins/setting-resources/src/components/ApiDocsSection.svelte @@ -35,7 +35,7 @@ (transactorEndpoint.endsWith('/') ? transactorEndpoint.slice(0, -1) : transactorEndpoint) + '/api/v1' $: curlExample = `curl -H "Authorization: Bearer YOUR_TOKEN" \\\n "${baseApiUrl}/find-all/WORKSPACE_ID?class=tracker:class:Project"` - async function copySnippet (text: string): Promise { + async function copySnippet(text: string): Promise { await copyTextToClipboard(text) } diff --git a/plugins/setting-resources/src/components/ApiTokenCreatePopup.svelte b/plugins/setting-resources/src/components/ApiTokenCreatePopup.svelte index c6ab441250..175b526d26 100644 --- a/plugins/setting-resources/src/components/ApiTokenCreatePopup.svelte +++ b/plugins/setting-resources/src/components/ApiTokenCreatePopup.svelte @@ -58,7 +58,7 @@ copied = false } - async function loadWorkspaces (): Promise { + async function loadWorkspaces(): Promise { try { const workspaces = await getAccountClient().getUserWorkspaces() wsItems = workspaces.map((w) => ({ _id: w.uuid, label: w.name ?? w.url })) @@ -71,7 +71,7 @@ } } - async function create (): Promise { + async function create(): Promise { if (selectedWs === undefined) return loading = true error = undefined @@ -90,7 +90,7 @@ } } - async function copyToken (): Promise { + async function copyToken(): Promise { if (createdToken === undefined) return if (!window.isSecureContext) { // No clipboard API outside a secure context. The token stays selectable above. diff --git a/plugins/setting-resources/src/components/ApiTokens.svelte b/plugins/setting-resources/src/components/ApiTokens.svelte index 830d915753..794a9e1fe0 100644 --- a/plugins/setting-resources/src/components/ApiTokens.svelte +++ b/plugins/setting-resources/src/components/ApiTokens.svelte @@ -36,7 +36,7 @@ expired: setting.string.ApiTokenStatusExpired } as const - function loadTokens (): void { + function loadTokens(): void { loading = true loadError = false getAccountClient() @@ -53,7 +53,7 @@ }) } - function create (): void { + function create(): void { showPopup(ApiTokenCreatePopup, {}, 'top', (res) => { if (res === true) { loadTokens() @@ -61,7 +61,7 @@ }) } - function revoke (token: ApiTokenInfo): void { + function revoke(token: ApiTokenInfo): void { showPopup(MessageBox, { label: setting.string.ApiTokenRevoke, message: setting.string.ApiTokenRevokeConfirm, @@ -79,7 +79,7 @@ }) } - function formatDate (ts: number): string { + function formatDate(ts: number): string { return new Date(ts).toLocaleDateString($themeStore.language ?? 'en', { month: 'short', day: 'numeric', @@ -87,7 +87,7 @@ }) } - function getStatus (token: ApiTokenInfo): 'active' | 'expiring' | 'revoked' | 'expired' { + function getStatus(token: ApiTokenInfo): 'active' | 'expiring' | 'revoked' | 'expired' { if (token.revoked) return 'revoked' const now = Date.now() if (token.expiresOn < now) return 'expired' diff --git a/plugins/setting-resources/src/components/AssociationEditor.svelte b/plugins/setting-resources/src/components/AssociationEditor.svelte index 473b890232..dcf8b660c4 100644 --- a/plugins/setting-resources/src/components/AssociationEditor.svelte +++ b/plugins/setting-resources/src/components/AssociationEditor.svelte @@ -49,7 +49,7 @@ .map((p) => p.attachTo) ) - function filterClasses ( + function filterClasses( descendants: Set>>, viewlets: Set>>, exclude: Ref>[] @@ -102,7 +102,7 @@ $: classA = isEmptyClass(classARef) ? undefined : hierarchy.getClass(classARef as Ref>) $: classB = isEmptyClass(classBRef) ? undefined : hierarchy.getClass(classBRef as Ref>) - function isEmptyClass (ref: Ref> | undefined): boolean { + function isEmptyClass(ref: Ref> | undefined): boolean { return ref === undefined || ref !== '' } @@ -110,7 +110,7 @@ $: fill(association) - function fill (association: Association | Data): void { + function fill(association: Association | Data): void { classBRef = !isEmptyClass(association.classB) ? association.classB : undefined classARef = !isEmptyClass(association.classA) ? association.classA : undefined nameA = association.nameA @@ -118,13 +118,13 @@ automationOnly = association.automationOnly ?? false } - function isAssociation (data: Data | Association): data is Association { + function isAssociation(data: Data | Association): data is Association { return (data as Association)._id !== undefined } const dispatch = createEventDispatcher() - async function save (): Promise { + async function save(): Promise { if (classBRef === undefined || classARef === undefined) { return } diff --git a/plugins/setting-resources/src/components/Backup.svelte b/plugins/setting-resources/src/components/Backup.svelte index 5ee991314b..1ba4a81e0c 100644 --- a/plugins/setting-resources/src/components/Backup.svelte +++ b/plugins/setting-resources/src/components/Backup.svelte @@ -41,22 +41,22 @@ const workspaceId = workspaceDataId ?? workspaceUuid let backupInfo: - | { - files: { name: string, size: number }[] - extraBlobs: { name: string, size: number, contentType: string }[] - extraBlobsTotal?: number - error?: string - info?: BackupInfo - } - | undefined + | { + files: { name: string, size: number }[] + extraBlobs: { name: string, size: number, contentType: string }[] + extraBlobsTotal?: number + error?: string + info?: BackupInfo + } + | undefined $: fileSizes = new Map(backupInfo?.files?.map((it) => [it.name, it.size ?? 0])) - function formatDate (timestamp: number): string { + function formatDate(timestamp: number): string { return new Date(timestamp).toLocaleString() } - function getSize (size: number): string { + function getSize(size: number): string { const mbSize = size / (1024 * 1024) if (size < 1024) { @@ -69,7 +69,7 @@ return `${Math.round(mbSize * 100) / 100}Mb` } - function getSnapshotSummary (snapshot: BackupSnapshot): string { + function getSnapshotSummary(snapshot: BackupSnapshot): string { let size = 0 Object.values(snapshot.domains).forEach((domain) => { @@ -80,7 +80,7 @@ return getSize(size) } - function getBackupSize (files: { name: string, size: number }[]): string { + function getBackupSize(files: { name: string, size: number }[]): string { let size = 0 files.forEach((file) => { @@ -90,7 +90,7 @@ return getSize(size) } - async function updateBackupInfo (): Promise { + async function updateBackupInfo(): Promise { if (owner && backupUrl !== '') { try { const response = await fetch(`${backupUrl}/${workspaceId}/index.json`, { @@ -111,7 +111,7 @@ void updateBackupInfo() }) - function formatAgoHours (timestamp: number): string { + function formatAgoHours(timestamp: number): string { const date = new Date(timestamp) const now = new Date() const diffMs = now.getTime() - date.getTime() @@ -127,11 +127,11 @@ return '' } - function getBackupFileUrl (filename: string): string { + function getBackupFileUrl(filename: string): string { return `${backupUrl}/${workspaceId}/${filename}` } - async function doDownload (downloadUrl: string, filename?: string): Promise { + async function doDownload(downloadUrl: string, filename?: string): Promise { const a = document.createElement('a') try { const response = await fetch(downloadUrl, { @@ -160,11 +160,11 @@ } } - async function downloadFile (filename: string): Promise { + async function downloadFile(filename: string): Promise { const url = getBackupFileUrl(filename) await doDownload(url, filename) } - async function downloadBlobFile (filename: string): Promise { + async function downloadBlobFile(filename: string): Promise { const url = getFileUrl(filename) await doDownload(url, filename) } @@ -176,7 +176,7 @@ let scriptCopied = false let tokenCopied = false - function copyToken (): void { + function copyToken(): void { void copyTextToClipboard(token).then(() => { tokenCopied = true setTimeout(() => { @@ -185,12 +185,12 @@ }) } - function backupArchiveName (): string { + function backupArchiveName(): string { const date = new Date().toISOString().slice(0, 10) return `huly-backup-${workspaceId}-${date}.zip` } - async function downloadFullBackup (): Promise { + async function downloadFullBackup(): Promise { if (downloading) { return } @@ -233,7 +233,7 @@ } } - function copyBackupScript (): void { + function copyBackupScript(): void { const files = collectBackupFileNames(backupInfo) const script = generateBackupScript({ baseUrl: downloadBase, diff --git a/plugins/setting-resources/src/components/ClassAttributesList.svelte b/plugins/setting-resources/src/components/ClassAttributesList.svelte index e65ab2cfc9..77094a4c47 100644 --- a/plugins/setting-resources/src/components/ClassAttributesList.svelte +++ b/plugins/setting-resources/src/components/ClassAttributesList.svelte @@ -52,12 +52,12 @@ export let showAll: boolean = false export let attributeMapper: - | { - component: AnySvelteComponent - label: IntlString - props: Record - } - | undefined = undefined + | { + component: AnySvelteComponent + label: IntlString + props: Record + } + | undefined = undefined const dispatch = createEventDispatcher() @@ -74,7 +74,7 @@ }) $: attributes = getCustomAttributes(_class) - function getCustomAttributes (_class: Ref>): AnyAttribute[] { + function getCustomAttributes(_class: Ref>): AnyAttribute[] { const cl = hierarchy.getClass(_class) const to = showAll ? ofClass : _class === ofClass && !notUseOfClass ? core.class.Doc : cl.extends const attributes = Array.from(hierarchy.getAllAttributes(_class, to).values()).sort((a, b) => { @@ -91,15 +91,15 @@ attributes = getCustomAttributes(_class) }) - function update (): void { + function update(): void { attributes = getCustomAttributes(_class) } - export async function editAttribute (attribute: AnyAttribute, exist: boolean): Promise { + export async function editAttribute(attribute: AnyAttribute, exist: boolean): Promise { showPopup(EditAttribute, { attribute, exist }, 'top', update) } - export async function overrideAttribute (source: AnyAttribute): Promise { + export async function overrideAttribute(source: AnyAttribute): Promise { const newSeq = await client.createDoc(core.class.CustomSequence, core.space.Workspace, { prefix: '', sequence: 0, @@ -116,7 +116,7 @@ } } - export async function removeAttribute (attribute: AnyAttribute, exist: boolean): Promise { + export async function removeAttribute(attribute: AnyAttribute, exist: boolean): Promise { showPopup( MessageBox, { @@ -131,7 +131,7 @@ ) } - async function showMenu (ev: MouseEvent, attribute: AnyAttribute): Promise { + async function showMenu(ev: MouseEvent, attribute: AnyAttribute): Promise { hovered = attribute._id const exist = (await client.findOne(attribute.attributeOf, { [attribute.name]: { $exists: true } })) !== undefined const actions: Action[] = [ @@ -177,7 +177,7 @@ }) } - function getAttrType (type: Type): IntlString | undefined { + function getAttrType(type: Type): IntlString | undefined { switch (type._class) { case core.class.RefTo: return client.getHierarchy().getClass((type as RefTo).to)?.label @@ -192,7 +192,7 @@ } } - function toRank (str: string | undefined): Rank | undefined { + function toRank(str: string | undefined): Rank | undefined { if (str === undefined) return if (str.startsWith('0|')) { return str @@ -200,7 +200,7 @@ return '0|' + str.replaceAll(/[-:_]/g, '').toLowerCase() } - async function moveHadler (e: CustomEvent): Promise { + async function moveHadler(e: CustomEvent): Promise { const { item, prev, next } = e.detail const rank = makeRank(prev?.rank ?? toRank(prev?._id), next?.rank ?? toRank(next?._id)) await client.update(item, { rank }) diff --git a/plugins/setting-resources/src/components/CreateAttribute.svelte b/plugins/setting-resources/src/components/CreateAttribute.svelte index d07b0c100d..9ec990e18c 100644 --- a/plugins/setting-resources/src/components/CreateAttribute.svelte +++ b/plugins/setting-resources/src/components/CreateAttribute.svelte @@ -61,7 +61,7 @@ const client = getClient() const hierarchy = client.getHierarchy() - async function save (): Promise { + async function save(): Promise { if (type === undefined) return const data: Data = { @@ -86,7 +86,7 @@ clearSettingsStore() } - function getTypes (): DropdownIntlItem[] { + function getTypes(): DropdownIntlItem[] { const descendants = hierarchy.getDescendants(core.class.Type) const res: DropdownIntlItem[] = [] for (const descendant of descendants) { @@ -106,7 +106,7 @@ $: selectType(selectedType) - function selectType (type: Ref>> | undefined): void { + function selectType(type: Ref>> | undefined): void { if (type === undefined) return const _class = hierarchy.getClass(type) const editor = hierarchy.as(_class, view.mixin.ObjectEditor) @@ -129,7 +129,7 @@ extra = e.detail?.extra ?? extra } } - function setIcon (): void { + function setIcon(): void { showPopup(IconPicker, { icon, showEmoji: false, showColor: false }, 'top', async (res) => { if (res !== undefined) { icon = res.icon diff --git a/plugins/setting-resources/src/components/CreateAttributePopup.svelte b/plugins/setting-resources/src/components/CreateAttributePopup.svelte index 35c0d62833..6106bd4d6a 100644 --- a/plugins/setting-resources/src/components/CreateAttributePopup.svelte +++ b/plugins/setting-resources/src/components/CreateAttributePopup.svelte @@ -60,7 +60,7 @@ const dispatch = createEventDispatcher() - async function save (): Promise { + async function save(): Promise { if (type === undefined) return const data: Data = { @@ -84,7 +84,7 @@ dispatch('close') } - function getTypes (): DropdownIntlItem[] { + function getTypes(): DropdownIntlItem[] { const descendants = hierarchy.getDescendants(core.class.Type) const res: DropdownIntlItem[] = [] for (const descendant of descendants) { @@ -103,7 +103,7 @@ $: selectType(selectedType) - function selectType (type: Ref>> | undefined): void { + function selectType(type: Ref>> | undefined): void { if (type === undefined) return const _class = hierarchy.getClass(type) const editor = hierarchy.as(_class, view.mixin.ObjectEditor) @@ -127,7 +127,7 @@ } } - function setIcon (): void { + function setIcon(): void { showPopup(IconPicker, { icon, showEmoji: false, showColor: false }, 'top', async (res) => { if (res !== undefined) { icon = res.icon diff --git a/plugins/setting-resources/src/components/CreateRelation.svelte b/plugins/setting-resources/src/components/CreateRelation.svelte index d616ffb526..68bd62fca5 100644 --- a/plugins/setting-resources/src/components/CreateRelation.svelte +++ b/plugins/setting-resources/src/components/CreateRelation.svelte @@ -39,7 +39,7 @@ .map((p) => p.attachTo) ) - function filterClasses ( + function filterClasses( descendants: Set>>, viewlets: Set>>, exclude: Ref>[] @@ -98,7 +98,7 @@ let nameB: string = '' let automationOnly = false - async function save (): Promise { + async function save(): Promise { if (classBRef === undefined || classARef === undefined) { return } @@ -132,7 +132,7 @@ $: classA = getAClass(aClass) - function getAClass (aClass: Ref> | undefined): DropdownIntlItem | undefined { + function getAClass(aClass: Ref> | undefined): DropdownIntlItem | undefined { if (aClass === undefined) { return undefined } diff --git a/plugins/setting-resources/src/components/EditAttribute.svelte b/plugins/setting-resources/src/components/EditAttribute.svelte index 7a113f6b16..e0a83645b5 100644 --- a/plugins/setting-resources/src/components/EditAttribute.svelte +++ b/plugins/setting-resources/src/components/EditAttribute.svelte @@ -67,7 +67,7 @@ name = p }) - async function save (): Promise { + async function save(): Promise { if (disabled) { return } @@ -106,7 +106,7 @@ clearSettingsStore() } - function getTypes (): DropdownIntlItem[] { + function getTypes(): DropdownIntlItem[] { const descendants = hierarchy.getDescendants(core.class.Type) const res: DropdownIntlItem[] = [] for (const descendant of descendants) { @@ -126,7 +126,7 @@ $: selectedType && selectType(selectedType) - function selectType (type: Ref>>): void { + function selectType(type: Ref>>): void { const _class = hierarchy.getClass(type) const editor = hierarchy.as(_class, view.mixin.ObjectEditor) if (editor.editor !== undefined) { @@ -149,7 +149,7 @@ } } - async function remove (evt: MouseEvent): Promise { + async function remove(evt: MouseEvent): Promise { const impl = await getResource(view.actionImpl.Delete) await impl(attribute, evt, { afterDelete: () => { @@ -158,13 +158,13 @@ }) } - async function hide (): Promise { + async function hide(): Promise { const value = !attribute.hidden attribute.hidden = value await client.update(attribute, { hidden: value }) } - function setIcon (): void { + function setIcon(): void { showPopup(IconPicker, { icon, showEmoji: false, showColor: false }, 'top', async (res) => { if (res !== undefined) { icon = res.icon @@ -176,11 +176,11 @@ client.getModel().findObject(getAttributePermissionRef(attribute, false)) !== undefined || client.getModel().findObject(getAttributePermissionRef(attribute, true)) !== undefined - function getAttributePermissionRef (attr: AnyAttribute, forbidden: boolean): Ref { + function getAttributePermissionRef(attr: AnyAttribute, forbidden: boolean): Ref { return `${attr._id}_${forbidden ? 'forbidden' : 'allowed'}` as Ref } - function changeRestricted (): void { + function changeRestricted(): void { showPopup( MessageBox, { diff --git a/plugins/setting-resources/src/components/EditRelation.svelte b/plugins/setting-resources/src/components/EditRelation.svelte index b3cf303e67..9670c37bc8 100644 --- a/plugins/setting-resources/src/components/EditRelation.svelte +++ b/plugins/setting-resources/src/components/EditRelation.svelte @@ -32,7 +32,7 @@ let nameB = association.nameB let automationOnly = association.automationOnly ?? false - async function save (): Promise { + async function save(): Promise { await client.diffUpdate(association, { nameA, nameB, @@ -58,7 +58,7 @@ const label = items.find((item) => item.id === association?.type)?.label ?? ('' as IntlString) - async function remove (): Promise { + async function remove(): Promise { showPopup(MessageBox, { label: view.string.DeleteObject, message: view.string.DeleteObjectConfirm, diff --git a/plugins/setting-resources/src/components/General.svelte b/plugins/setting-resources/src/components/General.svelte index 9aaee0ad0a..5e35484811 100644 --- a/plugins/setting-resources/src/components/General.svelte +++ b/plugins/setting-resources/src/components/General.svelte @@ -65,7 +65,7 @@ void loadWorkspaceName() - async function loadWorkspaceName (): Promise { + async function loadWorkspaceName(): Promise { const res = await accountClient.getWorkspaceInfo() workspaceUrl = res.url @@ -75,7 +75,7 @@ loading = false } - async function handleEditName (): Promise { + async function handleEditName(): Promise { if (editNameDisabled) { return } @@ -87,12 +87,12 @@ isEditingName = !isEditingName } - function handleCancelEditName (): void { + function handleCancelEditName(): void { name = oldName isEditingName = false } - async function handleDelete (): Promise { + async function handleDelete(): Promise { showPopup(MessageBox, { label: settingsRes.string.DeleteWorkspace, message: settingsRes.string.DeleteWorkspaceConfirm, @@ -118,7 +118,7 @@ } ) - async function handleAvatarDone (): Promise { + async function handleAvatarDone(): Promise { const existing = await client.findOne(settingsRes.class.WorkspaceSetting, { _id: settingsRes.ids.WorkspaceSetting }) if (existing !== undefined) { const avatar = await avatarEditor.createAvatar() @@ -153,12 +153,12 @@ } ) - async function changePasswordAgingRules (val: number | undefined): Promise { + async function changePasswordAgingRules(val: number | undefined): Promise { passwordAgingRule = val !== undefined ? Math.max(val, 1) : undefined await accountClient.updatePasswordAgingRule(passwordAgingRule) } - function handleTogglePermissions (): void { + function handleTogglePermissions(): void { const newState = !arePermissionsDisabled showPopup(MessageBox, { label: newState ? settingsRes.string.DisablePermissions : settingsRes.string.EnablePermissions, diff --git a/plugins/setting-resources/src/components/GuestPermissionsSettings.svelte b/plugins/setting-resources/src/components/GuestPermissionsSettings.svelte index 2c828b786e..98f857a576 100644 --- a/plugins/setting-resources/src/components/GuestPermissionsSettings.svelte +++ b/plugins/setting-resources/src/components/GuestPermissionsSettings.svelte @@ -117,9 +117,9 @@ $: workspaceApplications = client .getModel() .findAllSync(workbench.class.Application, { - hidden: false, - _id: { $nin: excludedApplicationIds } - }) + hidden: false, + _id: { $nin: excludedApplicationIds } + }) .filter((app) => !hiddenApplicationIds.includes(app._id)) $: applicationsMap = new Map, Application>( @@ -140,23 +140,23 @@ /** Anonymous (read-only guest) module rows are view-only until workspace allows anonymous guests. */ $: anonymousModulePermissionsReadOnly = guestPermissionsTab === 'anonymous' && !allowReadOnlyGuests - function getApplicationLabel (applicationId: Ref): IntlString { + function getApplicationLabel(applicationId: Ref): IntlString { return applicationsMap.get(applicationId)?.label ?? getEmbeddedLabel(applicationId) } - function getApplication (applicationId: Ref): Application | undefined { + function getApplication(applicationId: Ref): Application | undefined { return applicationsMap.get(applicationId) } - function getDisabledPermissions (group: ModulePermissionGroup): Set> { + function getDisabledPermissions(group: ModulePermissionGroup): Set> { return new Set(group.disabledPermissions ?? []) } - function isPermissionActive (group: ModulePermissionGroup, permissionId: Ref): boolean { + function isPermissionActive(group: ModulePermissionGroup, permissionId: Ref): boolean { return !getDisabledPermissions(group).has(permissionId) } - async function togglePermission ( + async function togglePermission( group: ModulePermissionGroup, permissionId: Ref, enabled: boolean @@ -174,44 +174,44 @@ } as any) } - async function toggleModule (group: ModulePermissionGroup, enabled: boolean): Promise { + async function toggleModule(group: ModulePermissionGroup, enabled: boolean): Promise { if (anonymousModulePermissionsReadOnly) return await client.updateDoc(core.class.ModulePermissionGroup, core.space.Model, group._id, { enabled } as any) } - function isModuleEnabled (group: ModulePermissionGroup): boolean { + function isModuleEnabled(group: ModulePermissionGroup): boolean { return group.enabled ?? true } - function getPermissionLabel (permissionId: Ref): IntlString { + function getPermissionLabel(permissionId: Ref): IntlString { return permissionsMap.get(permissionId)?.label ?? getEmbeddedLabel(permissionId) } - function onAccessToggle (group: ModulePermissionGroup, ev: Event): void { + function onAccessToggle(group: ModulePermissionGroup, ev: Event): void { const e = ev as CustomEvent void toggleModule(group, e.detail) } - function onPermissionToggle (group: ModulePermissionGroup, permissionId: Ref, ev: Event): void { + function onPermissionToggle(group: ModulePermissionGroup, permissionId: Ref, ev: Event): void { const e = ev as CustomEvent void togglePermission(group, permissionId, e.detail) } - function handleAccessToggle (group: ModulePermissionGroup): (ev: Event) => void { + function handleAccessToggle(group: ModulePermissionGroup): (ev: Event) => void { return (ev: Event) => { onAccessToggle(group, ev) } } - function handlePermissionToggle (group: ModulePermissionGroup, permissionId: Ref): (ev: Event) => void { + function handlePermissionToggle(group: ModulePermissionGroup, permissionId: Ref): (ev: Event) => void { return (ev: Event) => { onPermissionToggle(group, permissionId, ev) } } - async function handleToggleReadonlyAccess (e: CustomEvent): Promise { + async function handleToggleReadonlyAccess(e: CustomEvent): Promise { const enabled = e.detail const guestUserInfo = await accountClient.updateAllowReadOnlyGuests(enabled) allowReadOnlyGuests = enabled @@ -241,20 +241,20 @@ } } - async function handleToggleGuestSignUp (e: CustomEvent): Promise { + async function handleToggleGuestSignUp(e: CustomEvent): Promise { await accountClient.updateAllowGuestSignUp(e.detail) allowGuestSignUp = e.detail } - function onReadonlyGuestsToggle (e: CustomEvent): void { + function onReadonlyGuestsToggle(e: CustomEvent): void { void handleToggleReadonlyAccess(e) } - function onGuestSignUpToggle (e: CustomEvent): void { + function onGuestSignUpToggle(e: CustomEvent): void { void handleToggleGuestSignUp(e) } - async function onAllowedCardsChange (value: Ref[]): Promise { + async function onAllowedCardsChange(value: Ref[]): Promise { if (existingGuestChatSettings === undefined) { await client.createDoc(communication.class.GuestCommunicationSettings, core.space.Workspace, { allowedCards: value, diff --git a/plugins/setting-resources/src/components/InviteSetting.svelte b/plugins/setting-resources/src/components/InviteSetting.svelte index 73982e95e6..95b6164185 100644 --- a/plugins/setting-resources/src/components/InviteSetting.svelte +++ b/plugins/setting-resources/src/components/InviteSetting.svelte @@ -79,7 +79,7 @@ }) } - function applyInviteSettings (set: InviteSettings[]): void { + function applyInviteSettings(set: InviteSettings[]): void { existingInviteSettings = set const state = resolveInviteSettings(set[0]) expTime = state.expirationTime @@ -93,12 +93,12 @@ $: query.query(setting.class.InviteSettings, {}, applyInviteSettings) - function normalizeValues (): void { + function normalizeValues(): void { expTime = Math.max(1, expTime) limit = noLimit ? -1 : Math.max(1, limit ?? 1) } - async function setInviteSettings (): Promise { + async function setInviteSettings(): Promise { if (inviteLimitInvalid) return normalizeValues() const savedLimit = limit ?? -1 @@ -138,12 +138,12 @@ } } - async function autoSaveIfValid (): Promise { + async function autoSaveIfValid(): Promise { if (loading || inviteLimitInvalid) return await setInviteSettings() } - function handleNoLimitChange (e: CustomEvent): void { + function handleNoLimitChange(e: CustomEvent): void { noLimit = e.detail if (noLimit) { limit = -1 @@ -153,20 +153,20 @@ void autoSaveIfValid() } - function handleExpTimeChange (): void { + function handleExpTimeChange(): void { void autoSaveIfValid() } - function handleLimitChange (): void { + function handleLimitChange(): void { void autoSaveIfValid() } - function handleDefaultInviteRoleSelected (e: CustomEvent): void { + function handleDefaultInviteRoleSelected(e: CustomEvent): void { defaultInviteRole = e.detail void autoSaveIfValid() } - function handleGeneratorRolesSelected (e: CustomEvent): void { + function handleGeneratorRolesSelected(e: CustomEvent): void { if (e.detail != null) { inviteLinkGeneratorRoles = [...e.detail] } diff --git a/plugins/setting-resources/src/components/Members.svelte b/plugins/setting-resources/src/components/Members.svelte index 38ff03ee7b..61dc3564ca 100644 --- a/plugins/setting-resources/src/components/Members.svelte +++ b/plugins/setting-resources/src/components/Members.svelte @@ -57,7 +57,7 @@ .sort((a, b) => formatName(a.name).localeCompare(formatName(b.name))) }) - async function change (personUuid: string, value: AccountRole): Promise { + async function change(personUuid: string, value: AccountRole): Promise { if (accountClient == null) { return } @@ -81,7 +81,7 @@ (e) => e.personUuid != null && workspaceMembers[e.personUuid] === AccountRole.Owner ).length - function getItems (role: AccountRole, currentAccount: Account): DropdownIntlItem[] { + function getItems(role: AccountRole, currentAccount: Account): DropdownIntlItem[] { return items.filter((i) => i.id === role || hasAccountRole(currentAccount, i.id as AccountRole)) } diff --git a/plugins/setting-resources/src/components/OfficeSettings.svelte b/plugins/setting-resources/src/components/OfficeSettings.svelte index 27afde9299..7e61e7b97d 100644 --- a/plugins/setting-resources/src/components/OfficeSettings.svelte +++ b/plugins/setting-resources/src/components/OfficeSettings.svelte @@ -35,7 +35,7 @@ loading = false }) - async function toggleDefaultTranscription (e: CustomEvent): Promise { + async function toggleDefaultTranscription(e: CustomEvent): Promise { const enabled = e.detail defaultStartWithTranscription = enabled const newSettings = { @@ -55,7 +55,7 @@ } } - async function toggleDefaultRecording (e: CustomEvent): Promise { + async function toggleDefaultRecording(e: CustomEvent): Promise { const enabled = e.detail defaultStartWithRecording = enabled const newSettings = { diff --git a/plugins/setting-resources/src/components/Profile.svelte b/plugins/setting-resources/src/components/Profile.svelte index cf6f1173e5..2f5bd79d33 100644 --- a/plugins/setting-resources/src/components/Profile.svelte +++ b/plugins/setting-resources/src/components/Profile.svelte @@ -64,7 +64,7 @@ } let avatarEditor: EditableAvatar - async function onAvatarDone (): Promise { + async function onAvatarDone(): Promise { if ($myEmployeeStore === undefined) return if ($myEmployeeStore.avatar != null) { @@ -76,7 +76,7 @@ const manager = createFocusManager() - async function leave (): Promise { + async function leave(): Promise { showPopup(MessageBox, { label: setting.string.Leave, message: setting.string.LeaveDescr, @@ -111,7 +111,7 @@ }) } - async function nameChange (): Promise { + async function nameChange(): Promise { if ($myEmployeeStore !== undefined) { await client.diffUpdate($myEmployeeStore, { name: combineName(firstName, lastName) diff --git a/plugins/setting-resources/src/components/RelationSetting.svelte b/plugins/setting-resources/src/components/RelationSetting.svelte index a6a56bfb5e..2b18e0709d 100644 --- a/plugins/setting-resources/src/components/RelationSetting.svelte +++ b/plugins/setting-resources/src/components/RelationSetting.svelte @@ -34,7 +34,7 @@ $: filtered = filterAssociations(associations, _classes, exclude) - function filterAssociations ( + function filterAssociations( associations: Association[], _classes: Ref>[], exclude: Ref>[] @@ -63,7 +63,7 @@ return res } - function createRelation (): void { + function createRelation(): void { selected = { classA: '' as Ref>, classB: '' as Ref>, @@ -73,16 +73,16 @@ } } - function isAssociation (data: Data | Association | undefined): data is Association { + function isAssociation(data: Data | Association | undefined): data is Association { return (data as Association)?._id !== undefined } - function getClassLabel (_class: Ref>): IntlString | undefined { + function getClassLabel(_class: Ref>): IntlString | undefined { const _classLabel = client.getModel().findObject(_class) return _classLabel?.label } - async function getLabel (association: Association): Promise { + async function getLabel(association: Association): Promise { const aLabel = getClassLabel(association.classA) const bLabel = getClassLabel(association.classB) const aClass = aLabel !== undefined ? await translate(aLabel, {}) : undefined @@ -92,7 +92,7 @@ defineSeparators('workspaceSettings', twoPanelsSeparators) - async function remove (val: Association | Data | undefined): Promise { + async function remove(val: Association | Data | undefined): Promise { if (isAssociation(val)) { showPopup(MessageBox, { label: view.string.DeleteObject, diff --git a/plugins/setting-resources/src/components/Spaces.svelte b/plugins/setting-resources/src/components/Spaces.svelte index 39774c118f..602467fe24 100644 --- a/plugins/setting-resources/src/components/Spaces.svelte +++ b/plugins/setting-resources/src/components/Spaces.svelte @@ -69,7 +69,7 @@ } } - async function handleRoleAssignmentChanged (roleId: Ref, newMembers: AccountUuid[]): Promise { + async function handleRoleAssignmentChanged(roleId: Ref, newMembers: AccountUuid[]): Promise { await client.updateMixin(space._id, space._class, core.space.Space, spaceType.targetClass, { [roleId]: newMembers }) diff --git a/plugins/setting-resources/src/components/TwoFactorSettings.svelte b/plugins/setting-resources/src/components/TwoFactorSettings.svelte index a0678cba18..17393a0a3c 100644 --- a/plugins/setting-resources/src/components/TwoFactorSettings.svelte +++ b/plugins/setting-resources/src/components/TwoFactorSettings.svelte @@ -37,7 +37,7 @@ tfaEnabled = account.tfaEnabled }) - async function toggle2fa () { + async function toggle2fa() { if (tfaEnabled) { // Logic for disabling (needs code) showSetup = true @@ -56,7 +56,7 @@ } } - async function verifyAndEnable () { + async function verifyAndEnable() { isLoading = true try { await getAccountClient().enable2fa(secret, code) @@ -71,7 +71,7 @@ } } - async function verifyAndDisable () { + async function verifyAndDisable() { isLoading = true try { await getAccountClient().disable2fa(code) diff --git a/plugins/setting-resources/src/components/UserRoleSelect.svelte b/plugins/setting-resources/src/components/UserRoleSelect.svelte index 7294db9da9..81c65dda71 100644 --- a/plugins/setting-resources/src/components/UserRoleSelect.svelte +++ b/plugins/setting-resources/src/components/UserRoleSelect.svelte @@ -36,7 +36,7 @@ ? allInviteRoleItems.filter((item) => item.id !== AccountRole.Owner && item.id !== AccountRole.Maintainer) : allInviteRoleItems - function handleSelected (e: CustomEvent): void { + function handleSelected(e: CustomEvent): void { dispatch('selected', e.detail) } diff --git a/plugins/setting-resources/src/components/WorkspaceIdentityColor.svelte b/plugins/setting-resources/src/components/WorkspaceIdentityColor.svelte index 0c83aed920..0bfc03cb2f 100644 --- a/plugins/setting-resources/src/components/WorkspaceIdentityColor.svelte +++ b/plugins/setting-resources/src/components/WorkspaceIdentityColor.svelte @@ -32,7 +32,7 @@ $: logoUrl = workspaceSetting?.icon != null ? getFileUrl(workspaceSetting.icon) : undefined $: void updatePreview(logoUrl, manualColor, syncLogo, showColor) - async function updatePreview ( + async function updatePreview( url: string | undefined, color: string | undefined, syncLogo: boolean, @@ -53,12 +53,12 @@ } } - async function saveColor (value: string | null): Promise { + async function saveColor(value: string | null): Promise { const color = value === null ? null : normalizeIdentityColor(value) if (color !== undefined) await save({ identificationColor: color }) } - async function save ( + async function save( patch: Partial> ): Promise { if (!canEdit || busy) return diff --git a/plugins/setting-resources/src/components/WorkspacePermissionEditor.svelte b/plugins/setting-resources/src/components/WorkspacePermissionEditor.svelte index ce65e4c628..49225b2a3d 100644 --- a/plugins/setting-resources/src/components/WorkspacePermissionEditor.svelte +++ b/plugins/setting-resources/src/components/WorkspacePermissionEditor.svelte @@ -35,7 +35,7 @@ void loadPermissions() }) - async function loadPermissions (): Promise { + async function loadPermissions(): Promise { try { const result = await accountClient.getWorkspaceUsersWithPermission({ permission @@ -48,7 +48,7 @@ } } - async function handleUsersChange (newUsers: AccountUuid[]): Promise { + async function handleUsersChange(newUsers: AccountUuid[]): Promise { const currentUsers = new Set(users) const updatedUsers = new Set(newUsers) diff --git a/plugins/setting-resources/src/components/WorkspaceSettings.svelte b/plugins/setting-resources/src/components/WorkspaceSettings.svelte index c5be61c103..52289ac80b 100644 --- a/plugins/setting-resources/src/components/WorkspaceSettings.svelte +++ b/plugins/setting-resources/src/components/WorkspaceSettings.svelte @@ -52,7 +52,7 @@ { sort: { order: 1 } } ) - function findCategory (name: string): SettingsCategory | undefined { + function findCategory(name: string): SettingsCategory | undefined { return categories.find((x) => x.name === name) } @@ -70,7 +70,7 @@ }, 500) }) - function selectCategory (id: string): void { + function selectCategory(id: string): void { clearSettingsStore() const loc = getCurrentResolvedLocation() loc.path[3] = categoryName diff --git a/plugins/setting-resources/src/components/socialIds/SocialIdsEditor.svelte b/plugins/setting-resources/src/components/socialIds/SocialIdsEditor.svelte index afbcb4c5e4..d3a05a6005 100644 --- a/plugins/setting-resources/src/components/socialIds/SocialIdsEditor.svelte +++ b/plugins/setting-resources/src/components/socialIds/SocialIdsEditor.svelte @@ -53,14 +53,14 @@ }) .filter(notEmpty) - function handleAdd (ev: MouseEvent): void { + function handleAdd(ev: MouseEvent): void { showPopup(Menu, { actions: addActions }, ev.target as HTMLElement) } $: onlyHuly = socialIds.filter((it) => it.type === SocialIdType.HULY).length === 1 $: onlyLogin = socialIds.filter((it) => loginSocialTypes.includes(it.type)).length === 1 - function handleAccountUpdated (): void { + function handleAccountUpdated(): void { account = getCurrentAccount() } diff --git a/plugins/setting-resources/src/components/typeEditors/RefEditor.svelte b/plugins/setting-resources/src/components/typeEditors/RefEditor.svelte index 047b6effb9..46c0b19bfe 100644 --- a/plugins/setting-resources/src/components/typeEditors/RefEditor.svelte +++ b/plugins/setting-resources/src/components/typeEditors/RefEditor.svelte @@ -41,7 +41,7 @@ const classes = fillClasses(_classes, exclude) - function fillClasses (classes: Ref>[], exclude: Ref>[]): DropdownIntlItem[] { + function fillClasses(classes: Ref>[], exclude: Ref>[]): DropdownIntlItem[] { const res: DropdownIntlItem[] = [] const descendants = new Set(classes.map((p) => hierarchy.getDescendants(p)).reduce((a, b) => a.concat(b))) // exclude removed card types diff --git a/plugins/setting-resources/src/inviteSettingsUtils.ts b/plugins/setting-resources/src/inviteSettingsUtils.ts index d6d29454c4..4fc05c5a92 100644 --- a/plugins/setting-resources/src/inviteSettingsUtils.ts +++ b/plugins/setting-resources/src/inviteSettingsUtils.ts @@ -26,7 +26,7 @@ const numericAccountRoles = new Set(Object.values(AccountRole).filter((v export function normalizeInviteRole (value: string | AccountRole | undefined, fallback: AccountRole): AccountRole { if (value !== undefined && typeof value === 'number' && numericAccountRoles.has(value)) { - return value as AccountRole + return value } if (typeof value === 'string') { const n = value.toLowerCase() @@ -91,13 +91,13 @@ export function resolveInviteSettings (doc: InviteSettings | undefined): Resolve expirationTime: doc.expirationTime, emailMask: doc.emailMask, limit: doc.limit, - defaultInviteRole: normalizeInviteRole(doc.defaultInviteRole as string | AccountRole | undefined, metaRole), + defaultInviteRole: normalizeInviteRole(doc.defaultInviteRole, metaRole), inviteLinkGeneratorRoles: doc.inviteLinkGeneratorRoles != null && doc.inviteLinkGeneratorRoles.length > 0 ? normalizeInviteRoles( - doc.inviteLinkGeneratorRoles as Array, - DEFAULT_INVITE_LINK_GENERATOR_ROLES - ) + doc.inviteLinkGeneratorRoles, + DEFAULT_INVITE_LINK_GENERATOR_ROLES + ) : [...DEFAULT_INVITE_LINK_GENERATOR_ROLES], noLimit: doc.limit === -1 } diff --git a/plugins/setting/src/index.ts b/plugins/setting/src/index.ts index d7a65ffeac..52f303683f 100644 --- a/plugins/setting/src/index.ts +++ b/plugins/setting/src/index.ts @@ -33,7 +33,7 @@ import { type Integration as AccountIntegration } from '@hcengineering/account-c import { SpaceTypeCreator, SpaceTypeEditor } from './spaceTypeEditor' -export * from './spaceTypeEditor' +export type * from './spaceTypeEditor' export * from './utils' export * from './analytics' diff --git a/plugins/text-editor-resources/src/components/extension/embed/embed.ts b/plugins/text-editor-resources/src/components/extension/embed/embed.ts index 9ce13bb8ca..6d56c07e71 100644 --- a/plugins/text-editor-resources/src/components/extension/embed/embed.ts +++ b/plugins/text-editor-resources/src/components/extension/embed/embed.ts @@ -15,7 +15,7 @@ import { getMetadata, translate } from '@hcengineering/platform' import { type ActionContext, copyTextToClipboard } from '@hcengineering/presentation' -import { EmbedNode as BaseEmbedNode, type ReferenceNodeProps } from '@hcengineering/text' +import { EmbedNode as BaseEmbedNode } from '@hcengineering/text' import textEditor from '@hcengineering/text-editor' import { type Editor, type Range } from '@tiptap/core' import { Fragment, type Node, type ResolvedPos, Slice } from '@tiptap/pm/model' @@ -247,7 +247,7 @@ function getNodeUrl (node?: Node | null): string | undefined { return link?.attrs.href ?? undefined } case 'reference': { - return buildReferenceUrl(node.attrs as ReferenceNodeProps) + return buildReferenceUrl(node.attrs) } case 'embed': { return node.attrs.src diff --git a/plugins/text-editor-resources/src/components/extension/embed/providers/drive.ts b/plugins/text-editor-resources/src/components/extension/embed/providers/drive.ts index a850be0666..1d35e5002d 100644 --- a/plugins/text-editor-resources/src/components/extension/embed/providers/drive.ts +++ b/plugins/text-editor-resources/src/components/extension/embed/providers/drive.ts @@ -64,7 +64,7 @@ export const DriveEmbedProvider: EmbedNodeProviderConstructor const pos = typeof getPos === 'function' ? getPos() : 0 setLoadingState(editor.view, pos, loading) } - const renderer = new SvelteRenderer(FilePreview as any, { + const renderer = new SvelteRenderer(FilePreview, { element: root, props: { file: version.file, diff --git a/plugins/text-editor-resources/src/components/extension/mathematics.ts b/plugins/text-editor-resources/src/components/extension/mathematics.ts index d82dd2f4f1..4fb9a1bde2 100644 --- a/plugins/text-editor-resources/src/components/extension/mathematics.ts +++ b/plugins/text-editor-resources/src/components/extension/mathematics.ts @@ -305,7 +305,7 @@ export const MathematicsExtension = Mathematics.extend({ return [ createMathPlugin(/\$\$([\s\S]+?)\$\$/g, { displayMode: true, throwOnError: false }, this.editor, shouldRender), createMathPlugin( - /(?({ return { [qmsInlineCommentMarkName]: { default: null, - parseHTML: (el) => (el as HTMLSpanElement).getAttribute(qmsInlineCommentMarkName) + parseHTML: (el) => el.getAttribute(qmsInlineCommentMarkName) } } }, @@ -115,7 +115,7 @@ export const QMSInlineCommentMark = Mark.create({ { tag: `span[${qmsInlineCommentMarkName}]`, getAttrs: (el) => { - const value = (el as HTMLSpanElement).getAttribute(qmsInlineCommentMarkName)?.trim() + const value = el.getAttribute(qmsInlineCommentMarkName)?.trim() if (value === null || value === undefined || value.length === 0) { return false } diff --git a/plugins/text-editor-resources/src/components/extension/reference.ts b/plugins/text-editor-resources/src/components/extension/reference.ts index d657c99f74..1795bd9f26 100644 --- a/plugins/text-editor-resources/src/components/extension/reference.ts +++ b/plugins/text-editor-resources/src/components/extension/reference.ts @@ -24,7 +24,7 @@ import Suggestion, { type SuggestionKeyDownProps, type SuggestionOptions, type S import { type Blob, type Class, type Doc, type Ref } from '@hcengineering/core' import { getMetadata, getResource, translate } from '@hcengineering/platform' import presentation, { createQuery, getBlobRef, getClient, MessageBox } from '@hcengineering/presentation' -import view from '@hcengineering/view' +import view, { type ObjectTooltip, type ReferenceObjectProvider } from '@hcengineering/view' import activity, { type ActivityMessage } from '@hcengineering/activity' import contact from '@hcengineering/contact' import { parseLocation, showPopup, tooltip, type LabelAndProps, type Location, fromCodePoint } from '@hcengineering/ui' @@ -418,7 +418,7 @@ async function getReferenceTooltip ( const client = getClient() const hierarchy = client.getHierarchy() - const mixin = hierarchy.classHierarchyMixin(objectclass as Ref>, view.mixin.ObjectTooltip) + const mixin = hierarchy.classHierarchyMixin(objectclass, view.mixin.ObjectTooltip) if (mixin?.provider !== undefined) { const providerFn = await getResource(mixin.provider) @@ -489,8 +489,8 @@ export async function getReferenceObject ( return message } - const referenceObjectProvider = hierarchy.classHierarchyMixin( - objectclass as Ref>, + const referenceObjectProvider = hierarchy.classHierarchyMixin( + objectclass, view.mixin.ReferenceObjectProvider ) const referenceObjectProviderFn = @@ -641,7 +641,7 @@ function createEmojiElement (emojiCode: number | number[] | Ref): HTMLElem color: 'black' }) - const value = parseEmoji(emojiCode as any) + const value = parseEmoji(emojiCode) if (value !== undefined) { root.textContent = value return root diff --git a/plugins/text-editor-resources/src/components/extension/shortcuts/imageUpload.ts b/plugins/text-editor-resources/src/components/extension/shortcuts/imageUpload.ts index 7eacd1a0b3..cc3b898833 100644 --- a/plugins/text-editor-resources/src/components/extension/shortcuts/imageUpload.ts +++ b/plugins/text-editor-resources/src/components/extension/shortcuts/imageUpload.ts @@ -101,7 +101,7 @@ export const ImageUploadExtension = Extension.create { + document.querySelectorAll('img[src^="data:image/"]').forEach((image) => { const source = image.getAttribute('src') if (source !== null) { const placeholder = `[Uploading image ${generateId()}]` diff --git a/plugins/text-editor-resources/src/components/extension/shortcuts/tableMetadata.ts b/plugins/text-editor-resources/src/components/extension/shortcuts/tableMetadata.ts index 3aa596afa1..1e6816a655 100644 --- a/plugins/text-editor-resources/src/components/extension/shortcuts/tableMetadata.ts +++ b/plugins/text-editor-resources/src/components/extension/shortcuts/tableMetadata.ts @@ -12,6 +12,7 @@ // limitations under the License. // +// eslint-disable-next-line secure-coding/no-hardcoded-credentials -- clipboard marker string, not a credential export const TABLE_METADATA_TOKEN = 'huly-table-metadata:' export const TABLE_METADATA_MARKER = `